maxLength.js 1.2 KB

1234567891011121314151617181920212223242526
  1. 'use strict';
  2. var isElementType = require('../misc/isElementType.js');
  3. var maxLengthSupportedTypes = /*#__PURE__*/ function(maxLengthSupportedTypes) {
  4. maxLengthSupportedTypes["email"] = "email";
  5. maxLengthSupportedTypes["password"] = "password";
  6. maxLengthSupportedTypes["search"] = "search";
  7. maxLengthSupportedTypes["telephone"] = "telephone";
  8. maxLengthSupportedTypes["text"] = "text";
  9. maxLengthSupportedTypes["url"] = "url";
  10. return maxLengthSupportedTypes;
  11. }(maxLengthSupportedTypes || {});
  12. // can't use .maxLength property because of a jsdom bug:
  13. // https://github.com/jsdom/jsdom/issues/2927
  14. function getMaxLength(element) {
  15. var _element_getAttribute;
  16. const attr = (_element_getAttribute = element.getAttribute('maxlength')) !== null && _element_getAttribute !== undefined ? _element_getAttribute : '';
  17. return /^\d+$/.test(attr) && Number(attr) >= 0 ? Number(attr) : undefined;
  18. }
  19. function supportsMaxLength(element) {
  20. return isElementType.isElementType(element, 'textarea') || isElementType.isElementType(element, 'input') && element.type in maxLengthSupportedTypes;
  21. }
  22. exports.getMaxLength = getMaxLength;
  23. exports.supportsMaxLength = supportsMaxLength;