{"version":3,"sources":["../node_modules/antd/es/modal/locale.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/Notification.js","../node_modules/rc-notification/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","../../../src/util.js","../../../src/rule/required.js","../../../src/rule/type.js","../../../src/rule/index.js","../../../src/rule/whitespace.js","../../../src/rule/range.js","../../../src/rule/enum.js","../../../src/rule/pattern.js","../../../src/validator/type.js","../../../src/validator/index.js","../../../src/validator/string.js","../../../src/validator/method.js","../../../src/validator/number.js","../../../src/validator/boolean.js","../../../src/validator/regexp.js","../../../src/validator/integer.js","../../../src/validator/float.js","../../../src/validator/array.js","../../../src/validator/object.js","../../../src/validator/enum.js","../../../src/validator/pattern.js","../../../src/validator/date.js","../../../src/validator/required.js","../../../src/validator/any.js","../../../src/messages.js","../../../src/index.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-field-form/es/utils/valueUtil.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/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/index.js","../node_modules/antd/es/locale-provider/index.js","../node_modules/antd/es/notification/index.js","../node_modules/antd/es/notification/hooks/useNotification.js","../node_modules/antd/es/config-provider/index.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/antd/es/message/index.js","../node_modules/antd/es/message/hooks/useMessage.js"],"names":["runtimeLocale","_extends","defaultLocale","Modal","changeConfirmLocale","newLocale","getConfirmLocale","useNotification","notificationInstance","createdRef","React","_React$useState","_React$useState2","_slicedToArray","elements","setElements","noticeProps","firstMount","add","div","props","key","current","noticeEle","Notice","holder","originElements","index","findIndex","ele","concat","_toConsumableArray","cloneList","CheckCircleFilled","ref","AntdIcon","_objectSpread","icon","CheckCircleFilledSvg","displayName","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","this","_len","arguments","length","args","Array","_key","call","apply","closeTimer","close","e","stopPropagation","clearCloseTimer","_this$props","onClose","noticeKey","startCloseTimer","duration","window","setTimeout","clearTimeout","_createClass","value","prevProps","updateMark","visible","restartCloseTimer","_this2","_this$props2","prefixCls","className","closable","closeIcon","style","onClick","children","componentClass","dataOrAriaAttributeProps","Object","keys","reduce","acc","substr","node","classNames","_defineProperty","onMouseEnter","onMouseLeave","tabIndex","ReactDOM","createPortal","Component","defaultProps","seed","now","Date","getUuid","id","Notification","state","notices","hookRefs","Map","originNotice","holderCallback","notice","maxCount","setState","previousState","noticeIndex","map","v","indexOf","updatedNotices","splice","userPassKey","shift","push","remove","removeKey","_ref","filter","_ref2","_ref2$notice","noticePropsMap","animation","transitionName","noticeKeys","forEach","_ref3","undefined","_notice$onClose","content","CSSMotionList","motionName","getTransitionName","onVisibleChanged","changedVisible","_ref4","_ref5","motionClassName","motionStyle","_this2$noticePropsMap","set","delete","newInstance","top","left","properties","callback","_ref6","getContainer","_objectWithoutProperties","document","createElement","appendChild","body","called","render","notification","removeNotice","component","destroy","unmountComponentAtNode","parentNode","removeChild","_useNotification","CheckCircleOutlined","CheckCircleOutlinedSvg","InfoCircleOutlined","InfoCircleOutlinedSvg","CloseCircleOutlined","CloseCircleOutlinedSvg","ExclamationCircleOutlined","ExclamationCircleOutlinedSvg","formatRegExp","warning","convertFieldsError","errors","fields","error","field","format","i","f","len","str","String","x","Number","JSON","_","isEmptyValue","type","isNativeStringType","asyncSerialArray","arr","func","arrLength","original","next","process","AsyncValidationError","asyncMap","objArr","option","pending","Promise","flattenArr","ret","k","flattenObjArr","reject","resolve","firstFields","objArrKeys","objArrLength","total","results","a","asyncParallelArray","complementError","rule","oe","message","fullField","deepMerge","target","source","required","options","util","pattern","email","url","RegExp","hex","types","integer","parseInt","array","regexp","date","isNaN","number","object","method","whitespace","test","ruleType","custom","range","min","max","val","num","enum","_pattern","rules","string","boolean","float","dateObject","any","newMessages","default","parse","invalid","mismatch","clone","cloned","messages","Schema","descriptor","define","Error","item","validate","o","oc","series","z","r","validator","errorFields","data","deep","doIt","fieldsSchema","fieldSchema","addFullfield","schema","errs","finalErrors","res","cb","complete","getType","validators","getValidationMethod","messageIndex","HOOK_MARK","warningFunc","Context","getFieldValue","getFieldsValue","getFieldError","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldsValue","validateFields","submit","getInternalHooks","dispatch","initEntityValue","registerField","useSubscribe","setInitialValues","setCallbacks","getFields","setValidateMessages","setPreserve","toArray","isArray","get","entity","path","internalSet","paths","removeIfUndefined","_paths","_toArray","restPath","slice","getNamePath","getValue","store","namePath","setValue","newStore","cloneByNamePathList","namePathList","containsNamePath","some","matchNamePath","isObject","obj","_typeof","getPrototypeOf","prototype","internalSetValues","values","prevValue","recursive","setValues","restValues","changedNamePath","every","nameUnit","defaultGetValueFromEvent","valuePropName","event","move","moveIndex","toIndex","diff","typeTemplate","defaultValidateMessages","AsyncValidator","RawAsyncValidator","convertMessages","name","messageVariables","kv","join","replaceFunc","template","additionalKV","replace","replaceMessage","fillTemplate","ruleName","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","cloneRule","subRuleField","result","subResults","wrap","_context2","prev","defaultField","validateMessages","t0","console","all","subValue","sent","abrupt","stop","validateRules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","promise","then","catch","err","_callee","_context","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_callee4","count","_context4","requireUpdate","shouldUpdate","nextValue","info","Field","_React$Component","resetCount","cancelRegisterFunc","mounted","touched","dirty","validatePromise","cancelRegister","preserve","isListField","_fieldContext$prefixN","fieldContext","prefixName","getRules","_this$props3","_this$props3$rules","refresh","onStoreChange","prevStore","_this$props4","_this$props4$dependen","dependencies","onReset","curValue","namePathMatch","validating","reRender","dependency","relatedFields","currentValue","rootPromise","_this$props5","_this$props5$validate","triggerName","filteredRules","validateTrigger","includes","isFieldDirty","getErrors","isList","isPreserve","getMeta","prevValidating","getOnlyChild","meta","getControlled","isFunction","childList","toChildrenArray","child","childProps","_this$props6","trigger","getValueFromEvent","normalize","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","control","newValue","validateTriggerList","originTrigger","_assertThisInitialized","_this$props7","forceUpdate","returnChildNode","_this$getOnlyChild","contextType","FieldContext","WrapperField","restProps","List","initialValue","context","keyManager","parentPrefixName","Provider","_ref3$value","onChange","getNewValue","operations","defaultValue","indexSet","Set","size","keysIndex","has","valueIndex","from","to","_move","listValue","__","SPLIT","cell","NameMap","kvs","updater","entries","cells","split","_cell$match","match","_cell$match2","unit","json","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","callbacks","lastValidatePromise","getForm","init","getInitialValue","timeoutId","warningUnhooked","getFieldEntities","pure","getFieldsMap","cache","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","filteredNameList","_entity$isListField","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","update","list","isNamePathListTouched","entities","namePathListEntities","testField","resetWithFieldInitialValue","records","requiredFieldEntities","resetWithFields","originValue","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","defineProperty","subNamePath","mergedPreserve","action","updateValue","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","fieldName","provideNameList","promiseList","hasError","allPromiseFinish","resultNamePathList","returnPromise","errorList","outOfDate","onFinish","onFinishFailed","useForm","form","formRef","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","Form","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","formInstance","_formInstance$getInte","rest","mountRef","childrenNode","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","preventDefault","_restProps$onReset","RefForm","FieldForm","ANT_MARK","LocaleProvider","locale","devWarning","_ANT_MARK__","LocaleContext","exist","defaultGetContainer","defaultCloseIcon","defaultDuration","defaultTop","defaultBottom","defaultPrefixCls","defaultPlacement","rtl","getPlacementStyle","placement","bottom","right","getNotificationInstance","_args$placement","_args$getContainer","_args$closeIcon","customizePrefixCls","getPrefixCls","globalConfig","cacheKey","cacheInstance","instance","closeIconToRender","CloseOutlined","notificationClass","typeToIcon","success","getRCNoticeProps","durationArg","description","btn","iconNode","autoMarginTag","role","api","open","config","warn","innerInstance","proxy","_useRCNotification","useRCNotification","_useRCNotification2","hookNotify","hookApiRef","mergedPrefixCls","ConfigConsumer","globalPrefixCls","PASSED_PROPS","getGlobalPrefixCls","suffixCls","getRootPrefixCls","rootPrefixCls","ProviderChildren","_a","_b","csp","autoInsertSpaceInButton","componentSize","direction","space","virtual","dropdownMatchSelectWidth","legacyLocale","parentContext","iconPrefixCls","propName","propValue","memoedConfig","useMemo","prevConfig","currentConfig","prevKeys","currentKeys","memoIconContextValue","childNode","RcFormProvider","IconContext","SizeContextProvider","ConfigContext","ConfigProvider","LocaleReceiver","SizeContext","params","ExclamationCircleFilled","ExclamationCircleFilledSvg","InfoCircleFilled","InfoCircleFilledSvg","messageInstance","localPrefixCls","hasTransitionName","getKeyThenIncreaseKey","getRCNotificationInstance","_globalConfig","instanceConfig","RCNotification","CloseCircleFilled","loading","LoadingOutlined","_classNames","IconComponent","messageClass","getRcNotificationInstance","closePromise","filled","rejected","messageKey","attachTypeApi","originalApi","toString","isArgsProps","useMessage"],"mappings":"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","file":"static/js/1.e48f7307.chunk.js","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\n\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\n\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Notice from './Notice';\nexport default function useNotification(notificationInstance) {\n var createdRef = React.useRef({});\n\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n\n function notify(noticeProps) {\n var firstMount = true;\n notificationInstance.add(noticeProps, function (div, props) {\n var key = props.key;\n\n if (div && (!createdRef.current[key] || firstMount)) {\n var noticeEle = /*#__PURE__*/React.createElement(Notice, _extends({}, props, {\n holder: div\n }));\n createdRef.current[key] = noticeEle;\n setElements(function (originElements) {\n var index = originElements.findIndex(function (ele) {\n return ele.key === props.key;\n });\n\n if (index === -1) {\n return [].concat(_toConsumableArray(originElements), [noticeEle]);\n }\n\n var cloneList = _toConsumableArray(originElements);\n\n cloneList[index] = noticeEle;\n return cloneList;\n });\n }\n\n firstMount = false;\n });\n }\n\n return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\n\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\n\nvar Notice = /*#__PURE__*/function (_Component) {\n _inherits(Notice, _Component);\n\n var _super = _createSuper(Notice);\n\n function Notice() {\n var _this;\n\n _classCallCheck(this, Notice);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.closeTimer = null;\n\n _this.close = function (e) {\n if (e) {\n e.stopPropagation();\n }\n\n _this.clearCloseTimer();\n\n var _this$props = _this.props,\n onClose = _this$props.onClose,\n noticeKey = _this$props.noticeKey;\n\n if (onClose) {\n onClose(noticeKey);\n }\n };\n\n _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = window.setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n };\n\n _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n };\n\n return _this;\n }\n\n _createClass(Notice, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.duration !== prevProps.duration || this.props.updateMark !== prevProps.updateMark || // Visible again need reset timer\n this.props.visible !== prevProps.visible && this.props.visible) {\n this.restartCloseTimer();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: \"restartCloseTimer\",\n value: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closable = _this$props2.closable,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style,\n onClick = _this$props2.onClick,\n children = _this$props2.children,\n holder = _this$props2.holder;\n var componentClass = \"\".concat(prefixCls, \"-notice\");\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (acc, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n acc[key] = _this2.props[key];\n }\n\n return acc;\n }, {});\n var node = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(componentClass, className, _defineProperty({}, \"\".concat(componentClass, \"-closable\"), closable)),\n style: style,\n onMouseEnter: this.clearCloseTimer,\n onMouseLeave: this.startCloseTimer,\n onClick: onClick\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(componentClass, \"-content\")\n }, children), closable ? /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n onClick: this.close,\n className: \"\".concat(componentClass, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(componentClass, \"-close-x\")\n })) : null);\n\n if (holder) {\n return /*#__PURE__*/ReactDOM.createPortal(node, holder);\n }\n\n return node;\n }\n }]);\n\n return Notice;\n}(Component);\n\nNotice.defaultProps = {\n onClose: function onClose() {},\n duration: 1.5\n};\nexport { Notice as default };","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\n\nfunction getUuid() {\n var id = seed;\n seed += 1;\n return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\n\nvar Notification = /*#__PURE__*/function (_Component) {\n _inherits(Notification, _Component);\n\n var _super = _createSuper(Notification);\n\n function Notification() {\n var _this;\n\n _classCallCheck(this, Notification);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n notices: []\n };\n _this.hookRefs = new Map();\n\n _this.add = function (originNotice, holderCallback) {\n var key = originNotice.key || getUuid();\n\n var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n key: key\n });\n\n var maxCount = _this.props.maxCount;\n\n _this.setState(function (previousState) {\n var notices = previousState.notices;\n var noticeIndex = notices.map(function (v) {\n return v.notice.key;\n }).indexOf(key);\n var updatedNotices = notices.concat();\n\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice: notice,\n holderCallback: holderCallback\n });\n } else {\n if (maxCount && notices.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n // eslint-disable-next-line no-param-reassign\n // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n // Change to `updateMark` for compare instead.\n // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid(); // zombieJ: That's why. User may close by key directly.\n // We need record this but not re-render to avoid upper issue\n // https://github.com/react-component/notification/issues/129\n\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n\n updatedNotices.push({\n notice: notice,\n holderCallback: holderCallback\n });\n }\n\n return {\n notices: updatedNotices\n };\n });\n };\n\n _this.remove = function (removeKey) {\n _this.setState(function (_ref) {\n var notices = _ref.notices;\n return {\n notices: notices.filter(function (_ref2) {\n var _ref2$notice = _ref2.notice,\n key = _ref2$notice.key,\n userPassKey = _ref2$notice.userPassKey;\n var mergedKey = userPassKey || key;\n return mergedKey !== removeKey;\n })\n };\n });\n };\n\n _this.noticePropsMap = {};\n return _this;\n }\n\n _createClass(Notification, [{\n key: \"getTransitionName\",\n value: function getTransitionName() {\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n animation = _this$props.animation;\n var transitionName = this.props.transitionName;\n\n if (!transitionName && animation) {\n transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n }\n\n return transitionName;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var notices = this.state.notices;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style;\n var noticeKeys = [];\n notices.forEach(function (_ref3, index) {\n var notice = _ref3.notice,\n holderCallback = _ref3.holderCallback;\n var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n var key = notice.key,\n userPassKey = notice.userPassKey;\n\n var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n prefixCls: prefixCls,\n closeIcon: closeIcon\n }, notice), notice.props), {}, {\n key: key,\n noticeKey: userPassKey || key,\n updateMark: updateMark,\n onClose: function onClose(noticeKey) {\n var _notice$onClose;\n\n _this2.remove(noticeKey);\n\n (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n },\n onClick: notice.onClick,\n children: notice.content\n }); // Give to motion\n\n\n noticeKeys.push(key);\n _this2.noticePropsMap[key] = {\n props: noticeProps,\n holderCallback: holderCallback\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, /*#__PURE__*/React.createElement(CSSMotionList, {\n keys: noticeKeys,\n motionName: this.getTransitionName(),\n onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n var key = _ref4.key;\n\n if (!changedVisible) {\n delete _this2.noticePropsMap[key];\n }\n }\n }, function (_ref5) {\n var key = _ref5.key,\n motionClassName = _ref5.className,\n motionStyle = _ref5.style,\n visible = _ref5.visible;\n var _this2$noticePropsMap = _this2.noticePropsMap[key],\n noticeProps = _this2$noticePropsMap.props,\n holderCallback = _this2$noticePropsMap.holderCallback;\n\n if (holderCallback) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n style: _objectSpread({}, motionStyle),\n ref: function ref(div) {\n if (typeof key === 'undefined') {\n return;\n }\n\n if (div) {\n _this2.hookRefs.set(key, div);\n\n holderCallback(div, noticeProps);\n } else {\n _this2.hookRefs.delete(key);\n }\n }\n });\n }\n\n return /*#__PURE__*/React.createElement(Notice, _extends({}, noticeProps, {\n className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style),\n visible: visible\n }));\n }));\n }\n }]);\n\n return Notification;\n}(Component);\n\nNotification.newInstance = void 0;\nNotification.defaultProps = {\n prefixCls: 'rc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%'\n }\n};\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref6 = properties || {},\n getContainer = _ref6.getContainer,\n props = _objectWithoutProperties(_ref6, [\"getContainer\"]);\n\n var div = document.createElement('div');\n\n if (getContainer) {\n var root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n\n var called = false;\n\n function ref(notification) {\n if (called) {\n return;\n }\n\n called = true;\n callback({\n notice: function notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n notification.remove(key);\n },\n component: notification,\n destroy: function destroy() {\n ReactDOM.unmountComponentAtNode(div);\n\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n },\n // Hooks\n useNotification: function useNotification() {\n return _useNotification(notification);\n }\n });\n } // Only used for test case usage\n\n\n if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n properties.TEST_RENDER( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })));\n return;\n }\n\n ReactDOM.render( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })), div);\n};\n\nexport default Notification;","import Notification from './Notification';\nexport default Notification;","// This icon file is generated automatically.\nvar CheckCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"check-circle\", \"theme\": \"outlined\" };\nexport default CheckCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleOutlined = function CheckCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleOutlinedSvg\n }));\n};\n\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleOutlined);","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\n\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","// This icon file is generated automatically.\nvar CloseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"close-circle\", \"theme\": \"outlined\" };\nexport default CloseCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleOutlined = function CloseCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleOutlinedSvg\n }));\n};\n\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexport default ExclamationCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleOutlinedSvg\n }));\n};\n\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleOutlined);","/* eslint no-console:0 */\n\nconst formatRegExp = /%[sdj%]/g;\n\nexport let warning = () => {};\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 (typeof console !== 'undefined' && console.warn) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(errors) {\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(...args) {\n let i = 1;\n const f = args[0];\n const len = args.length;\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n if (typeof f === 'string') {\n let str = String(f).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++]);\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 f;\n}\n\nfunction isNativeStringType(type) {\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, type) {\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) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n const results = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, 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(arr, func, callback) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors) {\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) {\n const ret = [];\n Object.keys(objArr).forEach(k => {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n constructor(errors, fields) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\nexport function asyncMap(objArr, option, func, callback) {\n if (option.first) {\n const pending = new Promise((resolve, reject) => {\n const next = errors => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve();\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n let firstFields = option.firstFields || [];\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results = [];\n const pending = new Promise((resolve, reject) => {\n const next = errors => {\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();\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve();\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\nexport function complementError(rule) {\n return oe => {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n field: oe.field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge(target, source) {\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 * as util from '../util';\n\n/**\n * Rule for validating required fields.\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 */\nfunction required(rule, value, source, errors, options, type) {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n util.isEmptyValue(value, type || rule.type))\n ) {\n errors.push(util.format(options.messages.required, rule.fullField));\n }\n}\n\nexport default required;\n","import * as util from '../util';\nimport required from './required';\n\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]+\\.)+[a-zA-Z]{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) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value) {\n return types.number(value) && !types.integer(value);\n },\n array(value) {\n return Array.isArray(value);\n },\n regexp(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) {\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) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value) {\n return typeof value === 'function';\n },\n email(value) {\n return (\n typeof value === 'string' &&\n !!value.match(pattern.email) &&\n value.length < 255\n );\n },\n url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\n/**\n * Rule for validating the type of a value.\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 */\nfunction type(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 util.format(\n options.messages.types[ruleType],\n rule.fullField,\n rule.type,\n ),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n util.format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n}\n\nexport default type;\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 * as util 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 */\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(util.format(options.messages.whitespace, rule.fullField));\n }\n}\n\nexport default whitespace;\n","import * as util from '../util';\n\n/**\n * Rule for validating minimum and maximum allowed values.\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 */\nfunction range(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(\n util.format(options.messages[key].len, rule.fullField, rule.len),\n );\n }\n } else if (min && !max && val < rule.min) {\n errors.push(\n util.format(options.messages[key].min, rule.fullField, rule.min),\n );\n } else if (max && !min && val > rule.max) {\n errors.push(\n util.format(options.messages[key].max, rule.fullField, rule.max),\n );\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n util.format(\n options.messages[key].range,\n rule.fullField,\n rule.min,\n rule.max,\n ),\n );\n }\n}\n\nexport default range;\n","import * as util from '../util';\n\nconst ENUM = 'enum';\n\n/**\n * Rule for validating a value exists in an enumerable list.\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 */\nfunction enumerable(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 util.format(\n options.messages[ENUM],\n rule.fullField,\n rule[ENUM].join(', '),\n ),\n );\n }\n}\n\nexport default enumerable;\n","import * as util from '../util';\n\n/**\n * Rule for validating a regular expression pattern.\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 */\nfunction pattern(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 util.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 util.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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\nfunction type(rule, value, callback, source, options) {\n const ruleType = rule.type;\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Performs validation for string types.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction string(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a function.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction method(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction number(rule, value, callback, source, options) {\n const errors = [];\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/index.js';\n\n/**\n * Validates a boolean.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction boolean(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates the regular expression type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction regexp(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number is an integer.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction integer(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number is a floating point number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction floatFn(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index';\nimport { isEmptyValue } from '../util';\n/**\n * Validates an array.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction array(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates an object.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction object(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum';\n\n/**\n * Validates an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a regular expression pattern.\n *\n * Performs validation when a rule only contains\n * a pattern property but is not declared as a string type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction pattern(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\nfunction date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n const errors = [];\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 rules from '../rule/index.js';\n\nfunction required(rule, value, callback, source, options) {\n const errors = [];\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 rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Performs validation for any type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction any(rule, value, callback, source, options) {\n const errors = [];\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","export function newMessages() {\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';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = defaultMessages;\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages(messages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n },\n define(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 let z;\n let item;\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate(source_, o = {}, oc = () => {}) {\n let source = source_;\n let options = o;\n let callback = 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();\n }\n return Promise.resolve();\n }\n\n function complete(results) {\n let i;\n let errors = [];\n let fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = convertFieldsError(errors);\n }\n callback(errors, fields);\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 let arr;\n let value;\n const series = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n arr = this.rules[z];\n value = source[z];\n arr.forEach(r => {\n let rule = 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 rule.validator = this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n if (!rule.validator) {\n return;\n }\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, schema) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n };\n }\n\n function cb(e = []) {\n let errors = e;\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n if (errors.length && rule.message !== undefined) {\n errors = [].concat(rule.message);\n }\n\n errors = errors.map(complementError(rule));\n\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n if (!deep) {\n doIt(errors);\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 errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(errors);\n }\n\n let fieldsSchema = {};\n if (rule.defaultField) {\n for (const k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n for (const f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n const fieldSchema = Array.isArray(fieldsSchema[f])\n ? fieldsSchema[f]\n : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n const schema = new Schema(fieldsSchema);\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 (errors && errors.length) {\n finalErrors.push(...errors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n res = rule.validator(rule, data.value, cb, data.source, options);\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(rule.message || `${rule.field} fails`);\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.then) {\n res.then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n );\n },\n getType(rule) {\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 getValidationMethod(rule) {\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)] || false;\n },\n};\n\nSchema.register = function register(type, 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\nSchema.warning = warning;\n\nSchema.messages = defaultMessages;\n\nSchema.validators = validators;\n\nexport default Schema;\n","import * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS'; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\n\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: 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 setCallbacks: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc\n };\n }\n});\nexport default Context;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n}","export default function get(entity, path) {\n var current = entity;\n\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n current = current[path[i]];\n }\n\n return current;\n}","import _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';\n\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n\n var clone;\n\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 } // Delete prop if `removeIfUndefined` and value is undefined\n\n\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\n return clone;\n}\n\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\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\n return internalSet(entity, paths, value, removeIfUndefined);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\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 */\n\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function getValue(store, namePath) {\n var value = get(store, namePath);\n return value;\n}\nexport function setValue(store, namePath, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var newStore = set(store, namePath, value, removeIfUndefined);\n return newStore;\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}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\n\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\n\n\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n\n if (!values) {\n return newStore;\n }\n\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key]; // If both are object (but target is not array), we use recursion to set deep value\n\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : value;\n });\n return newStore;\n}\n\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n\n if (!source && target || source && !target) {\n return false;\n }\n\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(_toConsumableArray(sourceKeys), _toConsumableArray(targetKeys)));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n\n if (event && event.target && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n\n return event;\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 */\n\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n\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\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\n return array;\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/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { setValues } from './valueUtil';\nimport { defaultValidateMessages } from './messages'; // Remove incorrect original ts define\n\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\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}\n/**\n * We use `async-validator` to validate rules. So have to hot replace the message with validator.\n * { required: '${name} is required' } => { required: () => 'field is required' }\n */\n\n\nfunction convertMessages(messages, name, rule, messageVariables) {\n var kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n });\n\n var replaceFunc = function replaceFunc(template, additionalKV) {\n return function () {\n return replaceMessage(template, _objectSpread(_objectSpread({}, kv), additionalKV));\n };\n };\n /* eslint-disable no-param-reassign */\n\n\n function fillTemplate(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Object.keys(source).forEach(function (ruleName) {\n var value = source[ruleName];\n\n if (typeof value === 'string') {\n target[ruleName] = replaceFunc(value, messageVariables);\n } else if (value && _typeof(value) === 'object') {\n target[ruleName] = {};\n fillTemplate(value, target[ruleName]);\n } else {\n target[ruleName] = value;\n }\n });\n return target;\n }\n /* eslint-enable */\n\n\n return fillTemplate(setValues({}, defaultValidateMessages, messages));\n}\n\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 */\n\n\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, subRuleField, validator, messages, result, subResults;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // We should special handle array validate\n\n subRuleField = null;\n\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = convertMessages(options.validateMessages, name, cloneRule, messageVariables);\n validator.messages(messages);\n result = [];\n _context2.prev = 7;\n _context2.next = 10;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n\n case 10:\n _context2.next = 15;\n break;\n\n case 12:\n _context2.prev = 12;\n _context2.t0 = _context2[\"catch\"](7);\n\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref2, index) {\n var message = _ref2.message;\n return (// Wrap ReactNode with `key`\n\n /*#__PURE__*/\n React.isValidElement(message) ? /*#__PURE__*/React.cloneElement(message, {\n key: \"error_\".concat(index)\n }) : message\n );\n });\n } else {\n console.error(_context2.t0);\n result = [messages.default()];\n }\n\n case 15:\n if (!(!result.length && subRuleField)) {\n _context2.next = 20;\n break;\n }\n\n _context2.next = 18;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n\n case 18:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n\n case 20:\n return _context2.abrupt(\"return\", result);\n\n case 21:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[7, 12]]);\n }));\n return _validateRule.apply(this, arguments);\n}\n\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.'); // Fill rule with context\n\n var filledRules = rules.map(function (currentRule) {\n var originValidatorFunc = currentRule.validator;\n\n if (!originValidatorFunc) {\n return currentRule;\n }\n\n return _objectSpread(_objectSpread({}, currentRule), {}, {\n validator: function validator(rule, val, callback) {\n var hasPromise = false; // Wrap callback only accept when promise not provided\n\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\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\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n }; // Get promise\n\n\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n }\n });\n });\n var summaryPromise;\n\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {\n var i, errors;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 4;\n return validateRule(name, value, filledRules[i], options, messageVariables);\n\n case 4:\n errors = _context.sent;\n\n if (!errors.length) {\n _context.next = 8;\n break;\n }\n\n reject(errors);\n return _context.abrupt(\"return\");\n\n case 8:\n i += 1;\n _context.next = 1;\n break;\n\n case 11:\n /* eslint-enable */\n resolve([]);\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x6, _x7) {\n return _ref.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);\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n if (!errors.length) {\n return [];\n }\n\n return Promise.reject(errors);\n });\n } // Internal catch error to avoid console error log.\n\n\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\n\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rulePromises) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref3;\n\n var errors = (_ref3 = []).concat.apply(_ref3, _toConsumableArray(errorsList));\n\n return errors;\n }));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\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) {\n 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 (errors) {\n if (errors.length) {\n resolve(errors);\n }\n\n count += 1;\n\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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 toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\n\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\n return prevValue !== nextValue;\n} // We use Class instead of Hooks here since it will cost much code by using Hooks.\n\n\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n\n var _super = _createSuper(Field);\n\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n\n _classCallCheck(this, Field);\n\n _this = _super.call(this, props);\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _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\n _this.touched = false;\n /** Mark when touched & validated. Currently only used for `dependencies` */\n\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = [];\n\n _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\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n\n _this.cancelRegisterFunc = null;\n }; // ================================== Utils ==================================\n\n\n _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\n _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\n return rule;\n });\n };\n\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n }; // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n\n\n _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\n var namePath = _this.getNamePath();\n\n var prevValue = _this.getValue(prevStore);\n\n var curValue = _this.getValue(store);\n\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath); // `setFieldsValue` is a quick access to update related status\n\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 = [];\n }\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 = null;\n _this.errors = [];\n\n if (onReset) {\n onReset();\n }\n\n _this.refresh();\n\n return;\n }\n\n break;\n\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n\n if ('errors' in data) {\n _this.errors = data.errors || [];\n }\n\n _this.dirty = true;\n\n _this.reRender();\n\n return;\n } // Handle update by `setField` with `shouldUpdate`\n\n\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath); // 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\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\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\n return;\n }\n\n break;\n }\n\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n\n var currentValue = _this.getValue(); // Force change to async to avoid rule OOD under renderProps field\n\n\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n\n var filteredRules = _this.getRules();\n\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n\n if (!validateTrigger) {\n return true;\n }\n\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var errors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (_this.validatePromise === rootPromise) {\n _this.validatePromise = null;\n _this.errors = errors;\n\n _this.reRender();\n }\n });\n return promise;\n });\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = []; // Force trigger re-render since we need sync renderProps with new meta\n\n _this.reRender();\n\n return rootPromise;\n };\n\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n\n _this.isFieldDirty = function () {\n return _this.dirty;\n };\n\n _this.getErrors = function () {\n return _this.errors;\n };\n\n _this.isListField = function () {\n return _this.props.isListField;\n };\n\n _this.isList = function () {\n return _this.props.isList;\n };\n\n _this.isPreserve = function () {\n return _this.props.preserve;\n }; // ============================= Child Component =============================\n\n\n _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 name: _this.getNamePath()\n };\n return meta;\n }; // Only return validate child node. If invalidate, will do nothing about field.\n\n\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n } // Filed element only\n\n\n var childList = toChildrenArray(children);\n\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n\n return {\n child: childList[0],\n isFunction: false\n };\n }; // ============================== Field Control ==============================\n\n\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n\n var namePath = _this.getNamePath();\n\n return getValue(store || getFieldsValue(true), namePath);\n };\n\n _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\n var namePath = _this.getNamePath();\n\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n\n var value = _this.getValue();\n\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n }; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n var originTriggerFunc = childProps[trigger];\n\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value)); // Add trigger\n\n\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n var newValue;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n }; // Add validateTrigger\n\n\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\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n } // Always use latest rules\n\n\n var rules = _this.props.rules;\n\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 }; // Register on init\n\n\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n\n initEntityValue(_assertThisInitialized(_this));\n }\n\n return _this;\n }\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; // Register on init\n\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n\n this.cancelRegisterFunc = registerField(this);\n } // One more render for component in case fields not ready\n\n\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\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\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction; // Not need to `cloneElement` since user can handle this in render function self\n\n\n var returnChildNode;\n\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\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n\n return Field;\n}(React.Component);\n\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\n\nfunction WrapperField(_ref4) {\n var name = _ref4.name,\n restProps = _objectWithoutProperties(_ref4, [\"name\"]);\n\n var fieldContext = React.useContext(FieldContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n } // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n\n\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\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath\n }, restProps, {\n fieldContext: fieldContext\n }));\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';\n\nvar List = function List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current; // User should not pass `children` as other type.\n\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n\n var parentPrefixName = getNamePath(context.prefixName) || [];\n var prefixName = [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n\n if (source === 'internal') {\n return false;\n }\n\n return prevValue !== nextValue;\n };\n\n return /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n })\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true\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\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\n\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n\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\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\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\n if (indexSet.size <= 0) {\n return;\n }\n\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n }); // Trigger store change\n\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\n var newValue = getNewValue(); // Do not handle out of range\n\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n\n keyManager.keys = _move(keyManager.keys, from, to); // Trigger store change\n\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n\n if (!Array.isArray(listValue)) {\n listValue = [];\n\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n }));\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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\n\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n }) // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\n\n\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n\n this.kvs = new Map();\n }\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\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 } // Since we only use this in test, let simply realize this\n\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\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\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\n return NameMap;\n}();\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 _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport NameMap from './utils/NameMap';\nimport { defaultValidateMessages } from './utils/messages';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = function FormStore(forceRootUpdate) {\n var _this = this;\n\n _classCallCheck(this, FormStore);\n\n this.formHooked = false;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\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 setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n getInternalHooks: _this.getInternalHooks\n };\n }; // ======================== Internal Hooks ========================\n\n\n 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 setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve\n };\n }\n\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n /**\n * First time `setInitialValues` should update store with initial value\n */\n\n\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n\n if (init) {\n _this.store = setValues({}, initialValues, _this.store);\n }\n };\n\n this.getInitialValue = function (namePath) {\n return getValue(_this.initialValues, namePath);\n };\n\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n }; // ========================== Dev Warning =========================\n\n\n this.timeoutId = null;\n\n 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\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 }; // ============================ Fields ============================\n\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n\n\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!pure) {\n return _this.fieldEntities;\n }\n\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n\n return cache;\n };\n\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n\n var cache = _this.getFieldsMap(true);\n\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\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath(); // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n\n if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n\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 };\n }\n\n return {\n name: getNamePath(nameList[index]),\n errors: []\n };\n });\n };\n\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n\n var fieldError = _this.getFieldsError([namePath])[0];\n\n return fieldError.errors;\n };\n\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n\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\n var fieldEntities = _this.getFieldEntities(true);\n\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n }; // ===== Will get fully compare when not config namePathList =====\n\n\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n } // Generate a nest tree for validate\n\n\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(); // Find matched entity and put into list\n\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 }); // Check if NameMap value is touched\n\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n\n var namePathListEntities = map.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsTouched([name]);\n };\n\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntities();\n\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\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\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n\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\n\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n\n var fieldEntities = _this.getFieldEntities(true);\n\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath(); // Record only if has `initialValue`\n\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 }); // Reset\n\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n\n var formInitialValue = _this.getInitialValue(namePath);\n\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\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); // Set `initialValue`\n\n\n if (!info.skipExist || originValue === undefined) {\n _this.store = setValue(_this.store, namePath, _toConsumableArray(records)[0].value);\n }\n }\n }\n }\n });\n };\n\n var requiredFieldEntities;\n\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\n if (records) {\n var _requiredFieldEntitie;\n\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\n resetWithFields(requiredFieldEntities);\n };\n\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (!nameList) {\n _this.store = setValues({}, _this.initialValues);\n\n _this.resetWithFieldInitialValue();\n\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n\n return;\n } // Reset by `nameList`\n\n\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n\n _this.store = setValue(_this.store, namePath, initialValue);\n });\n\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n };\n\n this.setFields = function (fields) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n errors = fieldData.errors,\n data = _objectWithoutProperties(fieldData, [\"name\", \"errors\"]);\n\n var namePath = getNamePath(name); // Value\n\n if ('value' in data) {\n _this.store = setValue(_this.store, namePath, data.value);\n }\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n };\n\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n }; // =========================== Observer ===========================\n\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n\n\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n\n if (prevValue === undefined) {\n _this.store = setValue(_this.store, namePath, initialValue);\n }\n }\n };\n\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity); // Set initial values\n\n\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n } // un-register field callback\n\n\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 }); // Clean up store value if not preserve\n\n var mergedPreserve = preserve !== undefined ? preserve : _this.preserve;\n\n if (mergedPreserve === false && (!isListField || subNamePath.length > 1)) {\n var namePath = entity.getNamePath();\n var defaultValue = isListField ? undefined : getValue(_this.initialValues, namePath);\n\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (// Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n _this.store = setValue(_this.store, namePath, defaultValue, true);\n }\n }\n };\n };\n\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n\n _this.updateValue(namePath, value);\n\n break;\n }\n\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n\n break;\n }\n\n default: // Currently we don't have other action. Do nothing.\n\n }\n };\n\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n\n _this.getFieldEntities().forEach(function (_ref2) {\n var onStoreChange = _ref2.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.store = setValue(_this.store, namePath, value);\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n }); // Notify dependencies children with parent update\n // We need delay to trigger validate in case Field is under render props\n\n\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n }); // trigger callback function\n\n\n var onValuesChange = _this.callbacks.onValuesChange;\n\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n }; // Let all child Field get update.\n\n\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (store) {\n _this.store = setValues(_this.store, store);\n }\n\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n };\n\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\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\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\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n\n fillChildren(rootNamePath);\n return childrenFields;\n };\n\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n\n\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref3) {\n var name = _ref3.name,\n errors = _ref3.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\n var changedFields = fields.filter(function (_ref4) {\n var fieldName = _ref4.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n }; // =========================== Validate ===========================\n\n\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : []; // Collect result in promise list\n\n var promiseList = [];\n\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 * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n\n\n if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n\n if ( // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n } // Skip if without rule\n\n\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n\n var fieldNamePath = field.getNamePath(); // Add field validate rule in to promise list\n\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options)); // Wrap promise with field\n\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: []\n };\n }).catch(function (errors) {\n return Promise.reject({\n name: fieldNamePath,\n errors: errors\n });\n }));\n }\n });\n\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise; // Notify fields with rule that validate has finished and need update\n\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref5) {\n var name = _ref5.name;\n return name;\n });\n\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\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\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 }); // Do not throw in console\n\n returnPromise.catch(function (e) {\n return e;\n });\n return returnPromise;\n }; // ============================ Submit ============================\n\n\n this.submit = function () {\n _this.warningUnhooked();\n\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n\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\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n\n this.forceRootUpdate = forceRootUpdate;\n};\n\nfunction useForm(form) {\n var formRef = React.useRef();\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\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\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n\n return [formRef.current];\n}\n\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\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\n if (count > 0) {\n return;\n }\n\n if (hasError) {\n reject(results);\n }\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});\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\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\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\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\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\";\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\n\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, [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"]);\n\n var formContext = React.useContext(FormContext); // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve; // Pass ref with form instance\n\n\n React.useImperativeHandle(ref, function () {\n return formInstance;\n }); // Register form into Context\n\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]); // Pass props to store\n\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n\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\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve); // Set initial value, init store value when first mount\n\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n\n if (!mountRef.current) {\n mountRef.current = true;\n } // Prepare children by `children` type\n\n\n var childrenNode = children;\n var childrenRenderProps = typeof children === 'function';\n\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } // Not use subscribe when using render props\n\n\n useSubscribe(!childrenRenderProps); // Listen if fields provided. We use ref to save prev data here to avoid additional render\n\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\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(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n\n if (Component === false) {\n return wrapperNode;\n }\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\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};\n\nexport default Form;","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';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nexport { Field, List, useForm, FormProvider };\nexport default RefForm;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport devWarning from '../_util/devWarning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\n\nvar LocaleProvider = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleProvider, _React$Component);\n\n var _super = _createSuper(LocaleProvider);\n\n function LocaleProvider(props) {\n var _this;\n\n _classCallCheck(this, LocaleProvider);\n\n _this = _super.call(this, props);\n changeConfirmLocale(props.locale && props.locale.Modal);\n devWarning(props._ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale');\n return _this;\n }\n\n _createClass(LocaleProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n changeConfirmLocale(this.props.locale && this.props.locale.Modal);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var locale = this.props.locale;\n\n if (prevProps.locale !== locale) {\n changeConfirmLocale(locale && locale.Modal);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n changeConfirmLocale();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n locale = _this$props.locale,\n children = _this$props.children;\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: _extends(_extends({}, locale), {\n exist: true\n })\n }, children);\n }\n }]);\n\n return LocaleProvider;\n}(React.Component);\n\nexport { LocaleProvider as default };\nLocaleProvider.defaultProps = {\n locale: {}\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nimport * as React from 'react';\nimport Notification from 'rc-notification';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport createUseNotification from './hooks/useNotification';\nimport { globalConfig } from '../config-provider';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\n\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon,\n prefixCls = options.prefixCls;\n\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n\n if (placement !== undefined) {\n defaultPlacement = placement;\n } else if (options.rtl) {\n defaultPlacement = 'topLeft';\n }\n\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n\n if (top !== undefined) {\n defaultTop = top;\n }\n\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\n\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n\n switch (placement) {\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n\n return style;\n}\n\nfunction getNotificationInstance(args, callback) {\n var _args$placement = args.placement,\n placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n top = args.top,\n bottom = args.bottom,\n _args$getContainer = args.getContainer,\n getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n _args$closeIcon = args.closeIcon,\n closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon,\n customizePrefixCls = args.prefixCls;\n\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls;\n\n var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n instance: instance\n });\n });\n return;\n }\n\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var notificationClass = classNames(\"\".concat(prefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n Notification.newInstance({\n prefixCls: prefixCls,\n className: notificationClass,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n closeIcon: closeIconToRender\n }, function (notification) {\n resolve(notification);\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n instance: notification\n });\n });\n });\n}\n\nvar typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\n\nfunction getRCNoticeProps(args, prefixCls) {\n var durationArg = args.duration,\n icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn,\n onClose = args.onClose,\n onClick = args.onClick,\n key = args.key,\n style = args.style,\n className = args.className;\n var duration = durationArg === undefined ? defaultDuration : durationArg;\n var iconNode = null;\n\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n });\n }\n\n var autoMarginTag = !description && iconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n }) : null;\n return {\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n role: \"alert\"\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, btn) : null),\n duration: duration,\n closable: true,\n onClose: onClose,\n onClick: onClick,\n key: key,\n style: style || {},\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), !!type))\n };\n}\n\nfunction notice(args) {\n getNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(args, prefixCls));\n });\n}\n\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.removeNotice(key);\n });\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\napi.useNotification = createUseNotification(getNotificationInstance, getRCNoticeProps);\n/** @private test Only function. Not work on production */\n\nexport var getInstance = function getInstance(cacheKey) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseNotification(getNotificationInstance, getRCNoticeProps) {\n var useNotification = function useNotification() {\n // We can only get content by render\n var getPrefixCls; // We create a proxy to handle delay created instance\n\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n getNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(args, prefixCls));\n });\n } // Fill functions\n\n\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error'].forEach(function (type) {\n hookApiRef.current[type] = function (args) {\n return hookApiRef.current.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n\n return useNotification;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport message from '../message';\nimport notification from '../notification';\nimport defaultLocale from '../locale/default';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader']; // These props is used by `useContext` directly in sub component\n\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'form'];\nexport var defaultPrefixCls = 'ant';\nvar globalPrefixCls;\n\nvar setGlobalConfig = function setGlobalConfig(params) {\n if (params.prefixCls !== undefined) {\n globalPrefixCls = params.prefixCls;\n }\n};\n\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\n\nexport var globalConfig = function globalConfig() {\n return {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n },\n getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n // Customize rootPrefixCls is first priority\n if (rootPrefixCls) {\n return rootPrefixCls;\n } // If Global prefixCls provided, use this\n\n\n if (globalPrefixCls) {\n return globalPrefixCls;\n } // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n\n\n if (customizePrefixCls && customizePrefixCls.includes('-')) {\n return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n } // Fallback to default prefixCls\n\n\n return getGlobalPrefixCls();\n }\n };\n};\n\nvar ProviderChildren = function ProviderChildren(props) {\n var _a, _b;\n\n var children = props.children,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n locale = props.locale,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n legacyLocale = props.legacyLocale,\n parentContext = props.parentContext,\n iconPrefixCls = props.iconPrefixCls;\n var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n\n var config = _extends(_extends({}, parentContext), {\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n getPrefixCls: getPrefixCls\n }); // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n\n\n PASSED_PROPS.forEach(function (propName) {\n var propValue = props[propName];\n\n if (propValue) {\n config[propName] = propValue;\n }\n }); // https://github.com/ant-design/ant-design/issues/27617\n\n var memoedConfig = useMemo(function () {\n return config;\n }, config, function (prevConfig, currentConfig) {\n var prevKeys = Object.keys(prevConfig);\n var currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n return prevConfig[key] !== currentConfig[key];\n });\n });\n var memoIconContextValue = React.useMemo(function () {\n return {\n prefixCls: iconPrefixCls,\n csp: csp\n };\n }, [iconPrefixCls]);\n var childNode = children; // Additional Form provider\n\n var validateMessages = {};\n\n if (locale) {\n validateMessages = ((_a = locale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n }\n\n if (form && form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), form.validateMessages);\n }\n\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n\n if (iconPrefixCls) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\n\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n message.config({\n rtl: props.direction === 'rtl'\n });\n notification.config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ProviderChildren, _extends({\n parentContext: context,\n legacyLocale: legacyLocale\n }, props));\n });\n });\n};\n/** @private internal Usage. do not use in your production */\n\n\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nexport default ConfigProvider;","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\n\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\n\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RCNotification from 'rc-notification';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport createUseMessage from './hooks/useMessage';\nimport { globalConfig } from '../config-provider';\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = '';\nvar transitionName = 'move-up';\nvar hasTransitionName = false;\nvar getContainer;\nvar maxCount;\nvar rtl = false;\nexport function getKeyThenIncreaseKey() {\n return key++;\n}\n\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n }\n\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n\n hasTransitionName = true;\n }\n\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\n\nfunction getRCNotificationInstance(args, callback) {\n var customizePrefixCls = args.prefixCls;\n\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getRootPrefixCls = _globalConfig.getRootPrefixCls;\n\n var prefixCls = getPrefixCls('message', customizePrefixCls || localPrefixCls);\n var rootPrefixCls = getRootPrefixCls(args.rootPrefixCls, prefixCls);\n\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n instance: messageInstance\n });\n return;\n }\n\n var instanceConfig = {\n prefixCls: prefixCls,\n transitionName: hasTransitionName ? transitionName : \"\".concat(rootPrefixCls, \"-\").concat(transitionName),\n style: {\n top: defaultTop\n },\n getContainer: getContainer,\n maxCount: maxCount\n };\n RCNotification.newInstance(instanceConfig, function (instance) {\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n instance: messageInstance\n });\n return;\n }\n\n messageInstance = instance;\n\n if (process.env.NODE_ENV === 'test') {\n messageInstance.config = instanceConfig;\n }\n\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n instance: instance\n });\n });\n}\n\nvar typeToIcon = {\n info: InfoCircleFilled,\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n loading: LoadingOutlined\n};\n\nfunction getRCNoticeProps(args, prefixCls) {\n var _classNames;\n\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var IconComponent = typeToIcon[args.type];\n var messageClass = classNames(\"\".concat(prefixCls, \"-custom-content\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(args.type), args.type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl === true), _classNames));\n return {\n key: args.key,\n duration: duration,\n style: args.style || {},\n className: args.className,\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: messageClass\n }, args.icon || IconComponent && /*#__PURE__*/React.createElement(IconComponent, null), /*#__PURE__*/React.createElement(\"span\", null, args.content)),\n onClose: args.onClose,\n onClick: args.onClick\n };\n}\n\nfunction notice(args) {\n var target = args.key || key++;\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n\n return resolve(true);\n };\n\n getRCNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n\n var result = function result() {\n if (messageInstance) {\n messageInstance.removeNotice(target);\n }\n };\n\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n\n result.promise = closePromise;\n return result;\n}\n\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\n\nvar api = {\n open: notice,\n config: setMessageConfig,\n destroy: function destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n var _messageInstance = messageInstance,\n removeNotice = _messageInstance.removeNotice;\n removeNotice(messageKey);\n } else {\n var _messageInstance2 = messageInstance,\n destroy = _messageInstance2.destroy;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nexport function attachTypeApi(originalApi, type) {\n originalApi[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return originalApi.open(_extends(_extends({}, content), {\n type: type\n }));\n }\n\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n\n return originalApi.open({\n content: content,\n duration: duration,\n type: type,\n onClose: onClose\n });\n };\n}\n['success', 'info', 'warning', 'error', 'loading'].forEach(function (type) {\n return attachTypeApi(api, type);\n});\napi.warn = api.warning;\napi.useMessage = createUseMessage(getRCNotificationInstance, getRCNoticeProps);\n/** @private test Only function. Not work on production */\n\nexport var getInstance = function getInstance() {\n return process.env.NODE_ENV === 'test' ? messageInstance : null;\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport { ConfigConsumer } from '../../config-provider';\nimport { attachTypeApi, getKeyThenIncreaseKey } from '..';\nexport default function createUseMessage(getRcNotificationInstance, getRCNoticeProps) {\n var useMessage = function useMessage() {\n // We can only get content by render\n var getPrefixCls; // We create a proxy to handle delay created instance\n\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('message', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n\n return resolve(true);\n };\n\n getRcNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls,\n rootPrefixCls: rootPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n\n var result = function result() {\n if (innerInstance) {\n innerInstance.removeNotice(target);\n }\n };\n\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n\n result.promise = closePromise;\n return result;\n } // Fill functions\n\n\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error', 'loading'].forEach(function (type) {\n return attachTypeApi(hookApiRef.current, type);\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n\n return useMessage;\n}"],"sourceRoot":""}