tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 75.3 kB
Source Map (JSON)
{"version":3,"file":"form-model.mjs","sources":["../../node_modules/validator/lib/util/merge.js","../../node_modules/validator/lib/isDate.js","../../node_modules/validator/lib/util/assertString.js","../../node_modules/validator/lib/isByteLength.js","../../node_modules/validator/lib/isFQDN.js","../../node_modules/validator/lib/isIP.js","../../node_modules/validator/lib/isEmail.js","../../node_modules/validator/lib/isURL.js","../../src/form/form-model.ts"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.min(date.length, format.length);\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n return zippedArr;\n}\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatibility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n if (typeof input === 'string' && isValidFormat(options.format)) {\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n if (dateWord.length !== formatWord.length) {\n return false;\n }\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var fullYear = dateObj.y;\n\n // Check if the year starts with a hyphen\n if (fullYear.startsWith('-')) {\n return false; // Hyphen before year is not allowed\n }\n if (dateObj.y.length === 2) {\n var parsedYear = parseInt(dateObj.y, 10);\n if (isNaN(parsedYear)) {\n return false;\n }\n var currentYearLastTwoDigits = new Date().getFullYear() % 100;\n if (parsedYear < currentYearLastTwoDigits) {\n fullYear = \"20\".concat(dateObj.y);\n } else {\n fullYear = \"19\".concat(dateObj.y);\n }\n }\n var month = dateObj.m;\n if (dateObj.m.length === 1) {\n month = \"0\".concat(dateObj.m);\n }\n var day = dateObj.d;\n if (dateObj.d.length === 1) {\n day = \"0\".concat(dateObj.d);\n }\n return new Date(\"\".concat(fullYear, \"-\").concat(month, \"-\").concat(day, \"T00:00:00.000Z\")).getUTCDate() === +dateObj.d;\n }\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n <zone_id> part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as <zone_id>, those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A1-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\nfunction validateDisplayName(display_name) {\n var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1');\n // display name with only spaces is not valid\n if (!display_name_without_quotes.trim()) {\n return false;\n }\n\n // check whether display name contains illegal character\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname <address@gmail.com>\n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import isBoolean from 'lodash/isBoolean';\nimport isObject from 'lodash/isObject';\n// https://github.com/validatorjs/validator.js\n\nimport isDate from 'validator/lib/isDate';\nimport isEmail from 'validator/lib/isEmail';\nimport isEmpty from 'lodash/isEmpty';\nimport isURL from 'validator/lib/isURL';\nimport isNumber from 'lodash/isNumber';\n\nimport {\n CustomValidator,\n FormRule,\n ValueType,\n AllValidateResult,\n ValidateResultType,\n CustomValidateResolveType,\n} from './type';\n\n/**\n * 计算字符串字符的长度并可以截取字符串。\n * @param str 传入字符串\n * @param maxCharacter 规定最大字符串长度\n * @returns 当没有传入maxCharacter时返回字符串字符长度,当传入maxCharacter时返回截取之后的字符串和长度。\n */\nfunction getCharacterLength(str: string, maxCharacter?: number) {\n const hasMaxCharacter = isNumber(maxCharacter);\n if (!str || str.length === 0) {\n if (hasMaxCharacter) {\n return {\n length: 0,\n characters: str,\n };\n }\n return 0;\n }\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n let currentStringLength = 0;\n if (str.charCodeAt(i) > 127 || str.charCodeAt(i) === 94) {\n currentStringLength = 2;\n } else {\n currentStringLength = 1;\n }\n if (hasMaxCharacter && len + currentStringLength > maxCharacter) {\n return {\n length: len,\n characters: str.slice(0, i),\n };\n }\n len += currentStringLength;\n }\n if (hasMaxCharacter) {\n return {\n length: len,\n characters: str,\n };\n }\n return len;\n}\n\n// `{} / [] / '' / undefined / null` 等内容被认为是空; 0 和 false 被认为是正常数据,部分数据的值就是 0 或者 false\nexport function isValueEmpty(val: ValueType): boolean {\n const type: string = Object.prototype.toString.call(val);\n const typeMap: Record<string, any> = {\n Date: '[object Date]',\n };\n if (type === typeMap.Date) {\n return false;\n }\n return isObject(val) ? isEmpty(val) : ['', undefined, null].includes(val);\n}\n\nconst VALIDATE_MAP = {\n date: isDate,\n url: isURL,\n email: isEmail,\n required: (val: ValueType): boolean => !isValueEmpty(val),\n whitespace: (val: ValueType): boolean => !(/^\\s+$/.test(val) || val === ''),\n boolean: (val: ValueType): boolean => isBoolean(val),\n max: (val: ValueType, num: number): boolean =>\n isNumber(val) ? val <= num : (getCharacterLength(val) as number) <= num,\n min: (val: ValueType, num: number): boolean =>\n isNumber(val) ? val >= num : (getCharacterLength(val) as number) >= num,\n len: (val: ValueType, num: number): boolean => getCharacterLength(val) === num,\n number: (val: ValueType): boolean => isNumber(val),\n enum: (val: ValueType, strs: Array<string>): boolean => strs.includes(val),\n idcard: (val: ValueType): boolean => /^(\\d{18,18}|\\d{15,15}|\\d{17,17}x)$/i.test(val),\n telnumber: (val: ValueType): boolean => /^1[3-9]\\d{9}$/.test(val),\n pattern: (val: ValueType, regexp: RegExp): boolean => regexp.test(val),\n // 自定义校验规则,可能是异步校验\n validator: (val: ValueType, validate: CustomValidator): ReturnType<CustomValidator> => validate(val),\n};\n\nexport type ValidateFuncType = (typeof VALIDATE_MAP)[keyof typeof VALIDATE_MAP];\n\n/**\n * 校验某一条数据的某一条规则,一种校验规则不满足则不再进行校验。\n * @param value 值\n * @param rule 校验规则\n * @returns 两种校验结果,一种是内置校验规则的校验结果哦,二种是自定义校验规则(validator)的校验结果\n */\nexport async function validateOneRule(value: ValueType, rule: FormRule): Promise<AllValidateResult> {\n let validateResult: CustomValidateResolveType | ValidateResultType = { result: true };\n const keys = Object.keys(rule);\n let vOptions;\n let vValidateFun: ValidateFuncType;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n // 非必填选项,值为空,非自定义规则:无需校验,直接返回 true\n if (!rule.required && isValueEmpty(value) && !rule.validator) {\n return validateResult;\n }\n const validateRule: ValidateFuncType = VALIDATE_MAP[key];\n // 找到一个校验规则,则无需再找,因为参数只允许对一个规则进行校验\n if (validateRule && (rule[key] || rule[key] === 0)) {\n // rule 值为 true 则表示没有校验参数,只是对值进行默认规则校验\n vOptions = rule[key] === true ? undefined : rule[key];\n vValidateFun = validateRule;\n break;\n }\n }\n // @ts-ignore\n if (vValidateFun) {\n validateResult = await vValidateFun(value, vOptions);\n // 如果校验不通过,则返回校验不通过的规则\n if (isBoolean(validateResult)) {\n return { ...rule, result: validateResult };\n }\n // 校验结果为 CustomValidateObj,只有自定义校验规则会存在这种情况\n if (isObject(validateResult)) {\n return validateResult;\n }\n }\n return validateResult;\n}\n\n// 单个数据进行全规则校验,校验成功也可能会有 message\nexport async function validate(value: ValueType, rules: Array<FormRule>): Promise<AllValidateResult[]> {\n const all = rules.map((rule) => validateOneRule(value, rule));\n const r = await Promise.all(all);\n return r;\n}\n"],"names":["Object","defineProperty","exports","value","default","merge","obj","arguments","length","undefined","defaults","key","module","isDate","_merge","_interopRequireDefault","require$$0","__esModule","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","r","l","t","Symbol","iterator","e","n","u","a","f","o","call","next","done","push","return","Array","isArray","_createForOfIteratorHelper","allowArrayLike","it","F","s","_e","normalCompletion","didErr","err","step","_e2","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","len","arr2","default_date_options","format","delimiters","strictMode","isValidFormat","zip","date","zippedArr","Math","min","input","options","formatDelimiter","find","delimiter","indexOf","dateDelimiter","dateAndFormat","split","toLowerCase","dateObj","_iterator","_step","_step$value","dateWord","formatWord","charAt","fullYear","y","startsWith","parsedYear","parseInt","isNaN","currentYearLastTwoDigits","Date","getFullYear","concat","month","m","day","d","getUTCDate","isFinite","assertString","_typeof","isString","String","invalidType","isByteLength","_assertString","str","max","encodeURI","isFQDN","require$$1","default_fqdn_options","require_tld","allow_underscores","allow_trailing_dot","allow_numeric_tld","allow_wildcard","ignore_max_length","substring","parts","tld","every","part","isIP","IPv4SegmentFormat","IPv4AddressFormat","IPv4AddressRegExp","RegExp","IPv6SegmentFormat","IPv6AddressRegExp","version","isEmail","_isByteLength","_isFQDN","require$$2","_isIP","require$$3","require$$4","default_email_options","allow_display_name","require_display_name","allow_utf8_local_part","blacklisted_chars","host_blacklist","host_whitelist","splitNameAddress","emailUserPart","gmailUserPart","quotedEmailUser","emailUserUtf8Part","quotedEmailUserUtf8","defaultMaxEmailLength","validateDisplayName","display_name","display_name_without_quotes","replace","trim","contains_illegal","all_start_with_back_slash","display_email","match","endsWith","domain","pop","lower_domain","includes","user","join","domain_specific_validation","username","_user_parts","allow_ip_domain","noBracketdomain","pattern","user_parts","_i","search","isURL","default_url_options","protocols","require_protocol","require_host","require_port","require_valid_protocol","allow_protocol_relative_urls","allow_fragments","allow_query_components","validate_length","wrapped_ipv6","isRegExp","checkHost","host","matches","url","protocol","auth","hostname","port","port_str","ipv6","shift","disallow_auth","_auth$split","_auth$split2","password","ipv6_match","getCharacterLength","maxCharacter","hasMaxCharacter","isNumber","characters","currentStringLength","charCodeAt","isValueEmpty","val","type","typeMap","isObject","isEmpty","VALIDATE_MAP","email","required","whitespace","boolean","isBoolean","num","number","enum","strs","idcard","telnumber","regexp","validator","validate","validateOneRule","_x","_x2","_validateOneRule","apply","_asyncToGenerator","_regeneratorRuntime","mark","_callee","rule","validateResult","keys","vOptions","vValidateFun","validateRule","wrap","_callee$","_context","prev","result","abrupt","sent","_objectSpread","stop","_x3","_x4","_validate","_callee2","rules","all","_callee2$","_context2","map","Promise"],"mappings":"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