{"version":3,"sources":["../node_modules/antd/lib/form/context.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-util/es/utils/get.js","../node_modules/antd/lib/_util/statusUtils.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../../../src/util.ts","../../../src/rule/required.ts","../../../src/rule/url.ts","../../../src/rule/type.ts","../../../src/rule/enum.ts","../../../src/rule/index.ts","../../../src/rule/whitespace.ts","../../../src/rule/range.ts","../../../src/rule/pattern.ts","../../../src/validator/type.ts","../../../src/validator/index.ts","../../../src/validator/string.ts","../../../src/validator/method.ts","../../../src/validator/number.ts","../../../src/validator/boolean.ts","../../../src/validator/regexp.ts","../../../src/validator/integer.ts","../../../src/validator/float.ts","../../../src/validator/array.ts","../../../src/validator/object.ts","../../../src/validator/enum.ts","../../../src/validator/pattern.ts","../../../src/validator/date.ts","../../../src/validator/required.ts","../../../src/validator/any.ts","../../../src/messages.ts","../../../src/index.ts"],"names":["_interopRequireWildcard","require","_interopRequireDefault","Object","defineProperty","exports","value","NoStyleItemContext","NoFormStyle","FormProvider","FormItemPrefixContext","FormItemInputContext","FormContext","_extends2","_rcFieldForm","_omit","_react","React","createContext","labelAlign","vertical","itemRef","props","providerProps","createElement","prefixCls","_ref","children","status","override","formItemInputContext","useContext","newFormItemInputContext","useMemo","newContext","isFormItemInput","hasFeedback","feedbackIcon","Provider","internalSet","entity","paths","removeIfUndefined","length","clone","_paths","_toArray","path","restPath","slice","Array","isArray","_toConsumableArray","_objectSpread","undefined","set","arguments","get","createEmpty","source","keys","Reflect","ownKeys","merge","_len","sources","_key","forEach","src","internalMerge","parentLoopSet","obj","loopSet","Set","isArr","_typeof","getPrototypeOf","prototype","has","add","originValue","key","concat","current","i","getMergedStatus","getStatusClassNames","_classnames","_defineProperty2","tuple","contextStatus","customStatus","HOOK_MARK","warningFunc","warning","Context","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldValue","setFieldsValue","validateFields","submit","getInternalHooks","dispatch","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","ListContext","toArray","typeTemplate","defaultValidateMessages","default","required","enum","whitespace","date","format","parse","invalid","types","string","method","array","object","number","boolean","integer","float","regexp","email","url","hex","len","min","max","range","pattern","mismatch","AsyncValidator","RawAsyncValidator","replaceMessage","template","kv","replace","str","CODE_LOGIC_ERROR","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","apply","this","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","name","rule","options","messageVariables","cloneRule","originValidator","subRuleField","validator","messages","result","subResults","fillVariableResult","wrap","_context2","prev","next","ruleIndex","error","console","Promise","reject","type","defaultField","_defineProperty","validateMessages","resolve","validate","t0","errors","map","_ref4","index","message","mergedMessage","all","subValue","sent","abrupt","reduce","join","stop","validateRules","namePath","rules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","val","callback","hasPromise","promise","args","then","catch","err","sort","_ref2","w1","warningOnly","i1","w2","i2","_ref3","_callee","_context","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","e","_callee3","_context3","errorsList","_ref5","_callee4","count","_context4","ruleError","getNamePath","cloneByNamePathList","store","namePathList","newStore","getValue","setValue","containsNamePath","partialMatch","some","matchNamePath","subNamePath","every","nameUnit","defaultGetValueFromEvent","valuePropName","event","target","move","moveIndex","toIndex","item","diff","_excluded","EMPTY_ERRORS","requireUpdate","shouldUpdate","prevValue","nextValue","info","Field","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","call","_assertThisInitialized","resetCount","_this$props","preserve","isListField","cancelRegisterFunc","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","_this$props3","_this$props3$rules","mounted","setState","destroy","onMetaChange","_meta","getMeta","isEqual","metaCache","prevStore","_this$props4","_this$props4$dependen","dependencies","onReset","curValue","namePathMatch","touched","dirty","validatePromise","warnings","triggerMetaEvent","refresh","reRender","data","validating","dependency","relatedFields","currentValue","triggerName","_ref2$validateOnly","validateOnly","rootPromise","_this$props5","_this$props5$validate","validateDebounce","filteredRules","getRules","filter","validateTrigger","includes","setTimeout","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref4$errors","push","initialValue","isList","prevValidating","validated","_meta2","getOnlyChild","getControlled","isFunction","childList","toChildrenArray","child","childProps","_this$props6","trigger","getValueFromEvent","normalize","getValueProps","mergedValidateTrigger","mergedGetValueProps","originTriggerFunc","control","newValue","originTrigger","_createClass","_this$props7","cancelRegister","forceUpdate","returnChildNode","state","_this$getOnlyChild","FieldContext","WrapperField","_ref6","restProps","_objectWithoutProperties","listContext","_extends","List","context","wrapperListContext","keyManager","id","parentPrefixName","getKey","pathName","meta","_ref3$value","onChange","getNewValue","operations","defaultValue","remove","indexSet","size","_","keysIndex","valueIndex","from","to","_move","listValue","__","SPLIT","cell","NameMap","Map","kvs","updater","delete","entries","_slicedToArray","cells","split","_cell$match","match","_cell$match2","unit","Number","json","FormStore","forceRootUpdate","_init","formHooked","subscribable","initialValues","init","_this$prevWithoutPres","nextStore","prevWithoutPreserves","updateStore","getFieldEntities","isMergedPreserve","isPreserve","initValue","callbacks","watchList","fn","values","allValues","process","fieldEntities","field","pure","cache","nameList","getFieldsMap","INVALIDATE_NAME_PATH","filterFunc","mergedNameList","mergedFilterFunc","mergedStrict","warningUnhooked","strict","getFieldEntitiesForNamePathList","filteredNameList","_isListField","_isList","getErrors","getWarnings","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","update","list","isNamePathListTouched","entities","namePathListEntities","testField","records","requiredFieldEntities","_requiredFieldEntitie","r","skipExist","resetWithFieldInitialValue","notifyObservers","notifyWatch","fields","fieldData","fieldPreserve","mergedPreserve","_prevStore","triggerDependenciesUpdate","action","updateValue","_namePath","mergedInfo","onStoreChange","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","isFieldDirty","filedErrors","onFieldsChange","changedFields","_ref7","fieldName","arg2","_options","provideNameList","promiseList","TMP_SPLIT","String","Date","now","validateNamePathList","recursive","mergedErrors","mergedWarnings","_ref8","hasError","results","allPromiseFinish","lastValidatePromise","resultNamePathList","_ref9","returnPromise","errorList","errorFields","outOfDate","triggerNamePathList","onFinish","onFinishFailed","useForm","form","formRef","_React$useState","formStore","getForm","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","onFormChange","onFormFinish","formContext","formsRef","forms","newForms","Form","ref","_ref$component","component","Component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","formInstance","_getInternalHooks","rest","childrenNode","mountRef","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","preventDefault","stopPropagation","_restProps$onReset","stringify","JSON","Math","random","useWatchWarning","useWatch","_args$","_args$2","_form","isFormInstance","_useState","useState","_useState2","valueStr","valueStrRef","useRef","isValidForm","namePathRef","useEffect","nextValueStr","RefForm","FieldForm","arr","formatRegExp","convertFieldsError","x","isEmptyValue","isNativeStringType","asyncSerialArray","func","arrLength","original","AsyncValidationError","_Error","_wrapNativeSuper","Error","asyncMap","objArr","option","first","_pending","flattenArr","ret","k","flattenObjArr","firstFields","objArrKeys","objArrLength","total","pending","indexOf","a","asyncParallelArray","complementError","oe","fieldValue","fullFields","v","fullField","deepMerge","s","hasOwnProperty","urlReg","required$1","pattern$2","parseInt","RegExp","getTime","getMonth","getYear","isNaN","word","b","includeBoundaries","v4","v6seg","v6","trim","v46Exact","v4exact","v6exact","ip","exact","ipv4","ipv6","getUrlRegex","ENUM$1","test","ruleType","num","lastIndex","validators","dateObject","any","newMessages","cloned","Schema","descriptor","_messages","define","_proto","source_","o","oc","_this2","messages$1","series","z","transform","getValidationMethod","getType","doIt","res","deep","addFullField","schema","cb","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","bind","errs","finalErrors","asyncValidator","suppressValidatorError","_errors","complete","messageIndex","splice","register"],"mappings":"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","file":"static/js/1.368b2c05.chunk.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\")[\"default\"];\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NoStyleItemContext = exports.NoFormStyle = exports.FormProvider = exports.FormItemPrefixContext = exports.FormItemInputContext = exports.FormContext = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _rcFieldForm = require(\"rc-field-form\");\nvar _omit = _interopRequireDefault(require(\"rc-util/lib/omit\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar React = _react;\nvar FormContext = exports.FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: function itemRef() {}\n});\nvar NoStyleItemContext = exports.NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nvar FormProvider = exports.FormProvider = function FormProvider(props) {\n var providerProps = (0, _omit[\"default\"])(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(_rcFieldForm.FormProvider, (0, _extends2[\"default\"])({}, providerProps));\n};\nvar FormItemPrefixContext = exports.FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nvar FormItemInputContext = exports.FormItemInputContext = /*#__PURE__*/React.createContext({});\nvar NoFormStyle = exports.NoFormStyle = function NoFormStyle(_ref) {\n var children = _ref.children,\n status = _ref.status,\n override = _ref.override;\n var formItemInputContext = (0, _react.useContext)(FormItemInputContext);\n var newFormItemInputContext = (0, _react.useMemo)(function () {\n var newContext = (0, _extends2[\"default\"])({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\")[\"default\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getMergedStatus = void 0;\nexports.getStatusClassNames = getStatusClassNames;\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _type = require(\"./type\");\nvar InputStatuses = (0, _type.tuple)('warning', 'error', '');\nfunction getStatusClassNames(prefixCls, status, hasFeedback) {\n return (0, _classnames[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])((0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-status-success\"), status === 'success'), \"\".concat(prefixCls, \"-status-warning\"), status === 'warning'), \"\".concat(prefixCls, \"-status-error\"), status === 'error'), \"\".concat(prefixCls, \"-status-validating\"), status === 'validating'), \"\".concat(prefixCls, \"-has-feedback\"), hasFeedback));\n}\nvar getMergedStatus = exports.getMergedStatus = function getMergedStatus(contextStatus, customStatus) {\n return customStatus || contextStatus;\n};","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n return form && !!form._init;\n}","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from \"./messages\";\nimport { merge } from \"rc-util/es/utils/set\";\n\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n\n // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n AsyncValidator.warning = function () {\n return void 0;\n };\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = merge(defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 10;\n _context2.next = 13;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 13:\n _context2.next = 18;\n break;\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](10);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 18:\n if (!(!result.length && subRuleField)) {\n _context2.next = 23;\n break;\n }\n _context2.next = 21;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 21:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 23:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 15]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from \"./typeUtil\";\nexport { getValue, setValue };\n\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\n\n/**\n * Check if `namePathList` includes `namePath`.\n * @param namePathList A list of `InternalNamePath[]`\n * @param namePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function containsNamePath(namePathList, namePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(namePath, path, partialMatch);\n });\n}\n\n/**\n * Check if `namePath` is super set or equal of `subNamePath`.\n * @param namePath A list of `InternalNamePath[]`\n * @param subNamePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function matchNamePath(namePath, subNamePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!namePath || !subNamePath) {\n return false;\n }\n if (!partialMatch && namePath.length !== subNamePath.length) {\n return false;\n }\n return subNamePath.every(function (nameUnit, i) {\n return namePath[i] === nameUnit;\n });\n}\n\n// Like `shallowEqual`, but we not check the data which may cause re-render\n\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport { toArray } from \"./utils/typeUtil\";\nimport { validateRules } from \"./utils/validateUtil\";\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from \"./utils/valueUtil\";\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n\n // Register on init\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n resetCount: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"cancelRegisterFunc\", null);\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n _defineProperty(_assertThisInitialized(_this), \"touched\", false);\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n _defineProperty(_assertThisInitialized(_this), \"dirty\", false);\n _defineProperty(_assertThisInitialized(_this), \"validatePromise\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"prevValidating\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"errors\", EMPTY_ERRORS);\n _defineProperty(_assertThisInitialized(_this), \"warnings\", EMPTY_ERRORS);\n _defineProperty(_assertThisInitialized(_this), \"cancelRegister\", function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n });\n // ================================== Utils ==================================\n _defineProperty(_assertThisInitialized(_this), \"getNamePath\", function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n });\n _defineProperty(_assertThisInitialized(_this), \"getRules\", function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"refresh\", function () {\n if (!_this.mounted) return;\n\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n });\n // Event should only trigger when meta changed\n _defineProperty(_assertThisInitialized(_this), \"metaCache\", null);\n _defineProperty(_assertThisInitialized(_this), \"triggerMetaEvent\", function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n if (onMetaChange) {\n var _meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n });\n if (!isEqual(_this.metaCache, _meta)) {\n onMetaChange(_meta);\n }\n _this.metaCache = _meta;\n } else {\n _this.metaCache = null;\n }\n });\n // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n _defineProperty(_assertThisInitialized(_this), \"onStoreChange\", function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = undefined;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n var data = info.data;\n if (namePathMatch) {\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n } else if ('value' in data && containsNamePath(namePathList, namePath, true)) {\n // Contains path with value should also check\n _this.reRender();\n return;\n }\n\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"validateRules\", function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n var _ref2 = options || {},\n triggerName = _ref2.triggerName,\n _ref2$validateOnly = _ref2.validateOnly,\n validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _this$props5, _this$props5$validate, validateFirst, messageVariables, validateDebounce, filteredRules, promise;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (_this.mounted) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\", []);\n case 2:\n _this$props5 = _this.props, _this$props5$validate = _this$props5.validateFirst, validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate, messageVariables = _this$props5.messageVariables, validateDebounce = _this$props5.validateDebounce; // Start validate\n filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n // Wait for debounce. Skip if no `triggerName` since its from `validateFields / submit`\n if (!(validateDebounce && triggerName)) {\n _context.next = 10;\n break;\n }\n _context.next = 8;\n return new Promise(function (resolve) {\n setTimeout(resolve, validateDebounce);\n });\n case 8:\n if (!(_this.validatePromise !== rootPromise)) {\n _context.next = 10;\n break;\n }\n return _context.abrupt(\"return\", []);\n case 10:\n promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref4) {\n var warningOnly = _ref4.rule.warningOnly,\n _ref4$errors = _ref4.errors,\n errors = _ref4$errors === void 0 ? EMPTY_ERRORS : _ref4$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return _context.abrupt(\"return\", promise);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n })));\n if (validateOnly) {\n return rootPromise;\n }\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldValidating\", function () {\n return !!_this.validatePromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldTouched\", function () {\n return _this.touched;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldDirty\", function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n });\n _defineProperty(_assertThisInitialized(_this), \"getErrors\", function () {\n return _this.errors;\n });\n _defineProperty(_assertThisInitialized(_this), \"getWarnings\", function () {\n return _this.warnings;\n });\n _defineProperty(_assertThisInitialized(_this), \"isListField\", function () {\n return _this.props.isListField;\n });\n _defineProperty(_assertThisInitialized(_this), \"isList\", function () {\n return _this.props.isList;\n });\n _defineProperty(_assertThisInitialized(_this), \"isPreserve\", function () {\n return _this.props.preserve;\n });\n // ============================= Child Component =============================\n _defineProperty(_assertThisInitialized(_this), \"getMeta\", function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath(),\n validated: _this.validatePromise === null\n };\n return meta;\n });\n // Only return validate child node. If invalidate, will do nothing about field.\n _defineProperty(_assertThisInitialized(_this), \"getOnlyChild\", function (children) {\n // Support render props\n if (typeof children === 'function') {\n var _meta2 = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), _meta2, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n });\n // ============================== Field Control ==============================\n _defineProperty(_assertThisInitialized(_this), \"getValue\", function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n });\n _defineProperty(_assertThisInitialized(_this), \"getControlled\", function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n });\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\n_defineProperty(Field, \"contextType\", FieldContext);\n_defineProperty(Field, \"defaultProps\", {\n trigger: 'onChange',\n valuePropName: 'value'\n});\nfunction WrapperField(_ref6) {\n var name = _ref6.name,\n restProps = _objectWithoutProperties(_ref6, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var listContext = React.useContext(ListContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath,\n isListField: !!listContext\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from \"./FieldContext\";\nimport Field from \"./Field\";\nimport { move as _move, getNamePath } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nfunction List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger,\n isListField = _ref.isListField;\n var context = React.useContext(FieldContext);\n var wrapperListContext = React.useContext(ListContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true,\n isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n}\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n _defineProperty(this, \"kvs\", new Map());\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from \"./FieldContext\";\nimport { allPromiseFinish } from \"./utils/asyncUtil\";\nimport { merge } from \"rc-util/es/utils/set\";\nimport { defaultValidateMessages } from \"./utils/messages\";\nimport NameMap from \"./utils/NameMap\";\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from \"./utils/valueUtil\";\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n _defineProperty(this, \"formHooked\", false);\n _defineProperty(this, \"forceRootUpdate\", void 0);\n _defineProperty(this, \"subscribable\", true);\n _defineProperty(this, \"store\", {});\n _defineProperty(this, \"fieldEntities\", []);\n _defineProperty(this, \"initialValues\", {});\n _defineProperty(this, \"callbacks\", {});\n _defineProperty(this, \"validateMessages\", null);\n _defineProperty(this, \"preserve\", null);\n _defineProperty(this, \"lastValidatePromise\", null);\n _defineProperty(this, \"getForm\", function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n });\n // ======================== Internal Hooks ========================\n _defineProperty(this, \"getInternalHooks\", function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n });\n _defineProperty(this, \"useSubscribe\", function (subscribable) {\n _this.subscribable = subscribable;\n });\n /**\n * Record prev Form unmount fieldEntities which config preserve false.\n * This need to be refill with initialValues instead of store value.\n */\n _defineProperty(this, \"prevWithoutPreserves\", null);\n /**\n * First time `setInitialValues` should update store with initial value\n */\n _defineProperty(this, \"setInitialValues\", function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = merge(initialValues, _this.store);\n\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n });\n _defineProperty(this, \"destroyForm\", function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n });\n _defineProperty(this, \"getInitialValue\", function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n\n // Not cloneDeep when without `namePath`\n return namePath.length ? merge(initValue) : initValue;\n });\n _defineProperty(this, \"setCallbacks\", function (callbacks) {\n _this.callbacks = callbacks;\n });\n _defineProperty(this, \"setValidateMessages\", function (validateMessages) {\n _this.validateMessages = validateMessages;\n });\n _defineProperty(this, \"setPreserve\", function (preserve) {\n _this.preserve = preserve;\n });\n // ============================= Watch ============================\n _defineProperty(this, \"watchList\", []);\n _defineProperty(this, \"registerWatch\", function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n });\n _defineProperty(this, \"notifyWatch\", function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n var allValues = _this.getFieldsValue(true);\n _this.watchList.forEach(function (callback) {\n callback(values, allValues, namePath);\n });\n }\n });\n // ========================== Dev Warning =========================\n _defineProperty(this, \"timeoutId\", null);\n _defineProperty(this, \"warningUnhooked\", function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n });\n // ============================ Store =============================\n _defineProperty(this, \"updateStore\", function (nextStore) {\n _this.store = nextStore;\n });\n // ============================ Fields ============================\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n _defineProperty(this, \"getFieldEntities\", function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n });\n _defineProperty(this, \"getFieldsMap\", function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n });\n _defineProperty(this, \"getFieldEntitiesForNamePathList\", function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n });\n _defineProperty(this, \"getFieldsValue\", function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n // Fill args\n var mergedNameList;\n var mergedFilterFunc;\n var mergedStrict;\n if (nameList === true || Array.isArray(nameList)) {\n mergedNameList = nameList;\n mergedFilterFunc = filterFunc;\n } else if (nameList && _typeof(nameList) === 'object') {\n mergedStrict = nameList.strict;\n mergedFilterFunc = nameList.filter;\n }\n if (mergedNameList === true && !mergedFilterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _isListField, _ref3;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (mergedStrict) {\n var _isList, _ref2;\n if ((_isList = (_ref2 = entity).isList) !== null && _isList !== void 0 && _isList.call(_ref2)) {\n return;\n }\n } else if (!mergedNameList && (_isListField = (_ref3 = entity).isListField) !== null && _isListField !== void 0 && _isListField.call(_ref3)) {\n return;\n }\n if (!mergedFilterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (mergedFilterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n });\n _defineProperty(this, \"getFieldValue\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n });\n _defineProperty(this, \"getFieldsError\", function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n });\n _defineProperty(this, \"getFieldError\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n });\n _defineProperty(this, \"getFieldWarning\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n });\n _defineProperty(this, \"isFieldsTouched\", function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref4) {\n var value = _ref4.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n });\n _defineProperty(this, \"isFieldTouched\", function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n });\n _defineProperty(this, \"isFieldsValidating\", function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n });\n _defineProperty(this, \"isFieldValidating\", function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n });\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n _defineProperty(this, \"resetWithFieldInitialValue\", function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n });\n _defineProperty(this, \"resetFields\", function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(merge(_this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n });\n _defineProperty(this, \"setFields\", function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n });\n _defineProperty(this, \"getFields\", function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n });\n // =========================== Observer ===========================\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n _defineProperty(this, \"initEntityValue\", function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n });\n _defineProperty(this, \"isMergedPreserve\", function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n });\n _defineProperty(this, \"registerField\", function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n });\n _defineProperty(this, \"dispatch\", function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n });\n _defineProperty(this, \"notifyObservers\", function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref5) {\n var onStoreChange = _ref5.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n });\n /**\n * Notify dependencies children with parent update\n * We need delay to trigger validate in case Field is under render props\n */\n _defineProperty(this, \"triggerDependenciesUpdate\", function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n });\n _defineProperty(this, \"updateValue\", function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n });\n // Let all child Field get update.\n _defineProperty(this, \"setFieldsValue\", function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = merge(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n });\n _defineProperty(this, \"setFieldValue\", function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n });\n _defineProperty(this, \"getDependencyChildrenFields\", function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n });\n _defineProperty(this, \"triggerOnFieldsChange\", function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref6) {\n var name = _ref6.name,\n errors = _ref6.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref7) {\n var fieldName = _ref7.name;\n return containsNamePath(namePathList, fieldName);\n });\n if (changedFields.length) {\n onFieldsChange(changedFields, fields);\n }\n }\n });\n // =========================== Validate ===========================\n _defineProperty(this, \"validateFields\", function (arg1, arg2) {\n var _options;\n _this.warningUnhooked();\n var nameList;\n var options;\n if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n nameList = arg1;\n options = arg2;\n } else {\n options = arg1;\n }\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n\n // Collect result in promise list\n var promiseList = [];\n\n // We temp save the path which need trigger for `onFieldsChange`\n var TMP_SPLIT = String(Date.now());\n var validateNamePathList = new Set();\n var recursive = (_options = options) === null || _options === void 0 ? void 0 : _options.recursive;\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath, recursive)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref8) {\n var warningOnly = _ref8.rule.warningOnly,\n errors = _ref8.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref9) {\n var name = _ref9.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n\n // `validating` changed. Trigger `onFieldsChange`\n var triggerNamePathList = namePathList.filter(function (namePath) {\n return validateNamePathList.has(namePath.join(TMP_SPLIT));\n });\n _this.triggerOnFieldsChange(triggerNamePathList);\n return returnPromise;\n });\n // ============================ Submit ============================\n _defineProperty(this, \"submit\", function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n });\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from \"./useForm\";\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport FormContext from \"./FormContext\";\nimport { isSimilar } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _getInternalHooks = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _getInternalHooks.useSubscribe,\n setInitialValues = _getInternalHooks.setInitialValues,\n setCallbacks = _getInternalHooks.setCallbacks,\n setValidateMessages = _getInternalHooks.setValidateMessages,\n setPreserve = _getInternalHooks.setPreserve,\n destroyForm = _getInternalHooks.destroyForm;\n\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var _values = formInstance.getFieldsValue(true);\n childrenNode = children(_values, formInstance);\n } else {\n childrenNode = children;\n }\n\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode));\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport { isFormInstance } from \"./utils/typeUtil\";\nimport { getNamePath, getValue } from \"./utils/valueUtil\";\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n var nameStrRef = useRef(fullyStr);\n warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n _args$2 = args[1],\n _form = _args$2 === void 0 ? {} : _args$2;\n var options = isFormInstance(_form) ? {\n form: _form\n } : _form;\n var form = options.form;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useWatchWarning(namePath);\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (values, allValues) {\n var newValue = getValue(options.preserve ? allValues : values, namePathRef.current);\n var nextValueStr = stringify(newValue);\n\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n\n // TODO: We can improve this perf in future\n var initialValue = getValue(options.preserve ? getFieldsValue(true) : getFieldsValue(), namePathRef.current);\n\n // React 18 has the bug that will queue update twice even the value is not changed\n // ref: https://github.com/facebook/react/issues/27213\n if (value !== initialValue) {\n setValue(initialValue);\n }\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from \"./Field\";\nimport List from \"./List\";\nimport useForm from \"./useForm\";\nimport FieldForm from \"./Form\";\nimport { FormProvider } from \"./FormContext\";\nimport FieldContext from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport useWatch from \"./useWatch\";\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","/* eslint no-console:0 */\n\nimport {\n ValidateError,\n ValidateOption,\n RuleValuePackage,\n InternalRuleItem,\n SyncErrorType,\n RuleType,\n Value,\n Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (\n typeof console !== 'undefined' &&\n console.warn &&\n typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n ) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(\n errors: ValidateError[],\n): Record {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(\n template: ((...args: any[]) => string) | string,\n ...args: any[]\n): string {\n let i = 0;\n const len = args.length;\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n let str = template.replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return (Number(args[i++]) as unknown) as string;\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\n\nfunction isNativeStringType(type: string) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n const results: ValidateError[] = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors: ValidateError[]) {\n results.push(...(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors: ValidateError[]) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr: Record) {\n const ret: RuleValuePackage[] = [];\n Object.keys(objArr).forEach(k => {\n ret.push(...(objArr[k] || []));\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n errors: ValidateError[];\n fields: Record;\n\n constructor(\n errors: ValidateError[],\n fields: Record,\n ) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\ntype ValidateFunc = (\n data: RuleValuePackage,\n doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n objArr: Record,\n option: ValidateOption,\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n source: Values,\n): Promise {\n if (option.first) {\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve(source);\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n const firstFields =\n option.firstFields === true\n ? Object.keys(objArr)\n : option.firstFields || [];\n\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results: ValidateError[] = [];\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nfunction isErrorObj(\n obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n let v = value;\n for (let i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n return (oe: ValidateError | (() => string) | string): ValidateError => {\n let fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[(oe as any).field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue,\n field: ((oe as unknown) as ValidateError).field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge(target: T, source: Partial): T {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n isEmptyValue(value, type || rule.type))\n ) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n if (urlReg) {\n return urlReg;\n }\n\n const word = '[a-fA-F\\\\d:]';\n const b = options =>\n options && options.includeBoundaries\n ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n : '';\n\n const v4 =\n '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n const v6seg = '[a-fA-F\\\\d]{1,4}';\n const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`\n .replace(/\\s*\\/\\/.*$/gm, '')\n .replace(/\\n/g, '')\n .trim();\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n const v4exact = new RegExp(`^${v4}$`);\n const v6exact = new RegExp(`^${v6}$`);\n\n const ip = options =>\n options && options.exact\n ? v46Exact\n : new RegExp(\n `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n options,\n )})`,\n 'g',\n );\n\n ip.v4 = (options?) =>\n options && options.exact\n ? v4exact\n : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n ip.v6 = (options?) =>\n options && options.exact\n ? v6exact\n : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n const protocol = `(?:(?:[a-z]+:)?//)`;\n const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n const ipv4 = ip.v4().source;\n const ipv6 = ip.v6().source;\n const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n const domain =\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n const port = '(?::\\\\d{2,5})?';\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value: Value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value: Value) {\n return types.number(value) && !types.integer(value);\n },\n array(value: Value) {\n return Array.isArray(value);\n },\n regexp(value: Value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value: Value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value: Value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value: Value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value: Value) {\n return typeof value === 'function';\n },\n email(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 320 &&\n !!value.match(pattern.email)\n );\n },\n url(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 2048 &&\n !!value.match(getUrlRegex())\n );\n },\n hex(value: Value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n};\n\nexport default type;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n );\n }\n};\n\nexport default enumerable;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n );\n }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n const ruleType = rule.type;\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n rule,\n value,\n callback,\n source,\n options,\n) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n // console.log('integer rule called %j', rule);\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n InternalRuleItem,\n InternalValidateMessages,\n Rule,\n RuleItem,\n Rules,\n ValidateCallback,\n ValidateMessages,\n ValidateOption,\n Values,\n RuleValuePackage,\n ValidateError,\n ValidateFieldsError,\n SyncErrorType,\n ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nclass Schema {\n // ========================= Static =========================\n static register = function register(type: string, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n };\n\n static warning = warning;\n\n static messages = defaultMessages;\n\n static validators = validators;\n\n // ======================== Instance ========================\n rules: Record = null;\n _messages: InternalValidateMessages = defaultMessages;\n\n constructor(descriptor: Rules) {\n this.define(descriptor);\n }\n\n define(rules: Rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n\n Object.keys(rules).forEach(name => {\n const item: Rule = rules[name];\n this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n\n messages(messages?: ValidateMessages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n }\n\n validate(\n source: Values,\n option?: ValidateOption,\n callback?: ValidateCallback,\n ): Promise;\n validate(source: Values, callback: ValidateCallback): Promise;\n validate(source: Values): Promise;\n\n validate(source_: Values, o: any = {}, oc: any = () => {}): Promise {\n let source: Values = source_;\n let options: ValidateOption = o;\n let callback: ValidateCallback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n\n function complete(results: (ValidateError | ValidateError[])[]) {\n let errors: ValidateError[] = [];\n let fields: ValidateFieldsError = {};\n\n function add(e: ValidateError | ValidateError[]) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (let i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n (callback as (\n errors: ValidateError[],\n fields: ValidateFieldsError,\n ) => void)(errors, fields);\n }\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n\n const series: Record = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n const arr = this.rules[z];\n let value = source[z];\n arr.forEach(r => {\n let rule: InternalRuleItem = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = this.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullField(key: string, schema: RuleItem) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n };\n }\n\n function cb(e: SyncErrorType | SyncErrorType[] = []) {\n let errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n let filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = []\n .concat(rule.message)\n .map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(filledErrors);\n }\n\n let fieldsSchema: Record = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(key => {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n\n const paredFieldsSchema: Record = {};\n\n Object.keys(fieldsSchema).forEach(field => {\n const fieldSchema = fieldsSchema[field];\n const fieldSchemaList = Array.isArray(fieldSchema)\n ? fieldSchema\n : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(\n addFullField.bind(null, field),\n );\n });\n const schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push(...filledErrors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res: ValidateResult;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error?.(error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(() => {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(\n typeof rule.message === 'function'\n ? rule.message(rule.fullField || rule.field)\n : rule.message || `${rule.fullField || rule.field} fails`,\n );\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && (res as Promise).then) {\n (res as Promise).then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n source,\n );\n }\n\n getType(rule: InternalRuleItem) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n\n getValidationMethod(rule: InternalRuleItem) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n}\n\nexport default Schema;\n"],"sourceRoot":""}