Spaces:
Paused
Paused
OpenAiChatbot / frontend /node_modules /@testing-library /user-event /dist /utils /edit /maxLength.js
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| exports.getSpaceUntilMaxLength = getSpaceUntilMaxLength; | |
| var _isElementType = require("../misc/isElementType"); | |
| var _getValue = require("./getValue"); | |
| var maxLengthSupportedTypes; | |
| (function (maxLengthSupportedTypes) { | |
| maxLengthSupportedTypes["email"] = "email"; | |
| maxLengthSupportedTypes["password"] = "password"; | |
| maxLengthSupportedTypes["search"] = "search"; | |
| maxLengthSupportedTypes["telephone"] = "telephone"; | |
| maxLengthSupportedTypes["text"] = "text"; | |
| maxLengthSupportedTypes["url"] = "url"; | |
| })(maxLengthSupportedTypes || (maxLengthSupportedTypes = {})); | |
| function getSpaceUntilMaxLength(element) { | |
| const value = (0, _getValue.getValue)(element); | |
| /* istanbul ignore if */ | |
| if (value === null) { | |
| return undefined; | |
| } | |
| const maxLength = getSanitizedMaxLength(element); | |
| return maxLength ? maxLength - value.length : undefined; | |
| } // can't use .maxLength property because of a jsdom bug: | |
| // https://github.com/jsdom/jsdom/issues/2927 | |
| function getSanitizedMaxLength(element) { | |
| var _element$getAttribute; | |
| if (!supportsMaxLength(element)) { | |
| return undefined; | |
| } | |
| const attr = (_element$getAttribute = element.getAttribute('maxlength')) != null ? _element$getAttribute : ''; | |
| return /^\d+$/.test(attr) && Number(attr) >= 0 ? Number(attr) : undefined; | |
| } | |
| function supportsMaxLength(element) { | |
| return (0, _isElementType.isElementType)(element, 'textarea') || (0, _isElementType.isElementType)(element, 'input') && Boolean(maxLengthSupportedTypes[element.type]); | |
| } |