blob: d0f04a5d9842013e894f4f08846d8a7b5808c948 [file] [log] [blame]
{"version":3,"sources":["webpack:///./node_modules/antd/node_modules/rc-util/es/Dom/addEventListener.js","webpack:///./node_modules/async-validator/dist-web/index.js","webpack:///./node_modules/rc-util/es/Dom/contains.js","webpack:///./node_modules/rc-dialog/es/Dialog/Mask.js","webpack:///./node_modules/rc-dialog/es/util.js","webpack:///./node_modules/rc-dialog/es/Dialog/Content.js","webpack:///./node_modules/rc-dialog/es/Dialog/index.js","webpack:///./node_modules/rc-dialog/es/DialogWrap.js","webpack:///./node_modules/rc-dialog/es/index.js","webpack:///./node_modules/antd/es/modal/ActionButton.js","webpack:///./node_modules/antd/es/modal/ConfirmDialog.js","webpack:///./node_modules/antd/es/modal/useModal/HookModal.js","webpack:///./node_modules/antd/es/modal/confirm.js","webpack:///./node_modules/antd/es/modal/useModal/index.js","webpack:///./node_modules/antd/es/modal/Modal.js","webpack:///./node_modules/antd/es/_util/hooks/usePatchElement.js","webpack:///./node_modules/antd/es/modal/index.js","webpack:///./src/pages/resources.tsx","webpack:///./node_modules/antd/es/modal/locale.js","webpack:///./node_modules/rc-field-form/es/FieldContext.js","webpack:///./node_modules/rc-field-form/es/utils/typeUtil.js","webpack:///./node_modules/rc-util/es/utils/set.js","webpack:///./node_modules/rc-field-form/es/utils/valueUtil.js","webpack:///./node_modules/rc-util/es/utils/get.js","webpack:///./node_modules/rc-field-form/es/utils/messages.js","webpack:///./node_modules/rc-field-form/es/utils/validateUtil.js","webpack:///./node_modules/rc-field-form/es/Field.js","webpack:///./node_modules/rc-field-form/es/List.js","webpack:///./node_modules/rc-field-form/es/utils/NameMap.js","webpack:///./node_modules/rc-field-form/es/useForm.js","webpack:///./node_modules/rc-field-form/es/utils/asyncUtil.js","webpack:///./node_modules/rc-field-form/es/FormContext.js","webpack:///./node_modules/rc-field-form/es/Form.js","webpack:///./node_modules/rc-field-form/es/index.js","webpack:///./node_modules/antd/es/locale-provider/index.js","webpack:///./node_modules/rc-notification/es/Notice.js","webpack:///./node_modules/rc-notification/es/useNotification.js","webpack:///./node_modules/rc-notification/es/Notification.js","webpack:///./node_modules/antd/es/message/index.js","webpack:///./node_modules/rc-notification/es/index.js","webpack:///./node_modules/antd/es/message/hooks/useMessage.js","webpack:///./node_modules/antd/es/notification/index.js","webpack:///./node_modules/antd/es/notification/hooks/useNotification.js","webpack:///./node_modules/antd/es/config-provider/index.js"],"names":["addEventListenerWrap","target","eventType","cb","option","callback","unstable_batchedUpdates","e","addEventListener","remove","removeEventListener","_extends","Object","assign","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","_construct","Parent","args","Class","a","push","instance","Function","bind","_wrapNativeSuper","_cache","Map","undefined","fn","indexOf","TypeError","has","get","set","Wrapper","constructor","create","value","enumerable","writable","configurable","formatRegExp","warning","convertFieldsError","errors","fields","forEach","error","field","format","_len","Array","_key","f","len","slice","str","String","replace","x","Number","JSON","stringify","_","isEmptyValue","type","isArray","isNativeStringType","asyncSerialArray","arr","func","index","arrLength","next","original","AsyncValidationError","_Error","subClass","superClass","_this","Error","asyncMap","objArr","first","_pending","Promise","resolve","reject","ret","keys","k","flattenObjArr","firstFields","objArrKeys","objArrLength","total","results","pending","count","asyncParallelArray","complementError","rule","oe","message","fullField","deepMerge","s","required","options","messages","pattern","email","url","RegExp","hex","types","integer","number","parseInt","array","regexp","date","getTime","getMonth","getYear","isNaN","object","method","match","rules","whitespace","test","ruleType","range","min","max","val","num","join","lastIndex","mismatch","type$1","validators","string","dateObject","any","newMessages","parse","invalid","clone","cloned","Schema","descriptor","_messages","define","z","item","validate","source_","oc","messages$1","series","r","transform","validator","getValidationMethod","getType","errorFields","data","doIt","res","deep","defaultField","addFullfield","schema","suppressWarning","concat","map","fieldsSchema","fieldSchema","errs","finalErrors","asyncValidator","then","_errors","complete","messageIndex","splice","register","contains","root","n","node","parentNode","Mask","props","prefixCls","style","visible","maskProps","motionName","leavedClassName","_ref","motionClassName","className","motionStyle","getMotionName","transitionName","animationName","uuid","getScroll","w","top","d","document","documentElement","body","sentinelStyle","width","height","overflow","outline","Content","ref","closable","footer","title","closeIcon","forceRender","bodyStyle","bodyProps","children","destroyOnClose","modalRender","ariaId","onClose","onVisibleChanged","onClick","mousePosition","sentinelStartRef","sentinelEndRef","dialogRef","focus","_sentinelStartRef$cur","current","getDOM","changeActive","activeElement","footerNode","headerNode","closer","_React$useState","_React$useState2","transformOrigin","setTransformOrigin","contentStyle","onPrepare","el","rect","pos","doc","elementOffset","getBoundingClientRect","left","ownerDocument","defaultView","parentWindow","y","id","content","onAppearPrepare","onEnterPrepare","removeOnLeave","motionRef","role","tabIndex","displayName","Dialog","_props$prefixCls","zIndex","_props$visible","_props$keyboard","keyboard","_props$focusTriggerAf","focusTriggerAfterClose","_props$switchScrollin","switchScrollingEffect","wrapStyle","wrapClassName","wrapProps","afterClose","animation","_props$closable","_props$mask","mask","maskTransitionName","maskAnimation","_props$maskClosable","maskClosable","maskStyle","lastOutSideActiveElementRef","wrapperRef","contentRef","animatedVisible","setAnimatedVisible","ariaIdRef","onInternalClose","contentClickRef","contentTimeoutRef","onWrapperClick","clearTimeout","onKeyDown","keyCode","KeyCode","ESC","stopPropagation","TAB","shiftKey","display","setTimeout","newVisible","_contentRef$current","preventScroll","getContainer","_props$destroyOnClose","_afterClose","getOpenCount","childProps","clickedRef","loading","setLoading","timeoutId","autoFocus","$this","buttonProps","actionFn","closeModal","returnValueOfOnOk","console","handlePromiseOnOk","icon","onCancel","onOk","close","centered","okText","okButtonProps","cancelText","cancelButtonProps","direction","rootPrefixCls","devWarning","okType","contentPrefixCls","okCancel","autoFocusButton","classString","cancelButton","triggerCancel","config","setVisible","_React$useState3","_React$useState4","innerConfig","setInnerConfig","_React$useContext","getPrefixCls","destroy","update","newConfig","originConfig","LocaleReceiver","componentName","defaultLocale","Modal","modalLocale","justOkText","__rest","t","getOwnPropertySymbols","propertyIsEnumerable","defaultRootPrefixCls","getRootPrefixCls","div","createElement","appendChild","currentConfig","unmountResult","removeChild","some","param","destroyFns","render","_a","runtimeLocale","_len2","_key2","configUpdate","withWarn","withInfo","withSuccess","withError","withConfirm","window","pageX","pageY","_classNames","getContextPopupContainer","getPopupContainer","handleCancel","handleOk","renderFooter","locale","confirmLoading","customizePrefixCls","restProps","defaultFooter","closeIconToRender","wrapClassNameExtended","useModal","_usePatchElement","elements","setElements","element","originElements","filter","ele","usePatchElement","_usePatchElement2","patchElement","getConfirmFunc","withFunc","closeFunc","modalRef","modal","info","success","confirm","defaultProps","modalWarn","warn","destroyAll","pop","learningLinks","installationLinks","youtubeVideos","resourcesContainer","LinkSection","links","size","bordered","dataSource","renderItem","link","href","Item","rel","Resources","useState","showModal","setModal","videoId","setVideoId","cardTitle","setCardTitle","handleClose","css","gutter","md","sm","xs","src","frameBorder","allow","allowFullScreen","idx","Grid","alt","changeConfirmLocale","newLocale","getConfirmLocale","HOOK_MARK","getFieldValue","getFieldsValue","getFieldError","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldsValue","validateFields","submit","getInternalHooks","dispatch","registerField","useSubscribe","setInitialValues","setCallbacks","getFields","setValidateMessages","setPreserve","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_defineProperty","obj","defineProperty","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_toArray","_arrayWithHoles","_nonIterableRest","minLen","name","from","arr2","iter","Symbol","iterator","entity","paths","_paths","path","restPath","getOwnPropertyDescriptors","defineProperties","_objectSpread","getNamePath","getValue","store","namePath","setValue","cloneByNamePathList","namePathList","newStore","containsNamePath","matchNamePath","isObject","internalSetValues","values","prevValue","recursive","setValues","restValues","reduce","changedNamePath","every","nameUnit","defaultGetValueFromEvent","valuePropName","event","moveIndex","toIndex","diff","typeTemplate","defaultValidateMessages","default","enum","boolean","float","AsyncValidator","convertMessages","messageVariables","kv","replaceFunc","template","additionalKV","replaceMessage","fillTemplate","ruleName","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","mark","_callee2","cloneRule","subRuleField","result","subResults","wrap","_context2","prev","validateMessages","t0","_ref2","all","subValue","sent","abrupt","stop","validateRules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","promise","catch","err","_callee","_context","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_ref3","_callee4","_context4","requireUpdate","shouldUpdate","nextValue","_React$Component","Field","_super","state","resetCount","cancelRegisterFunc","mounted","touched","dirty","validatePromise","cancelRegister","_this$props","preserve","isListField","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","getRules","_this$props3","_this$props3$rules","refresh","setState","onStoreChange","prevStore","_this$props4","_this$props4$dependen","dependencies","onReset","curValue","namePathMatch","validating","reRender","dependency","relatedFields","_this$props5","_this$props5$validate","triggerName","filteredRules","validateTrigger","includes","isFieldDirty","getErrors","getMeta","prevValidating","getOnlyChild","meta","getControlled","isFunction","childList","child","_this$props6","trigger","getValueFromEvent","normalize","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","control","newValue","validateTriggerList","originTrigger","forceUpdate","returnChildNode","_this$getOnlyChild","contextType","FieldContext","_ref4","context","keyManager","parentPrefixName","Provider","_ref3$value","onChange","getNewValue","operations","add","defaultValue","indexSet","Set","keysIndex","valueIndex","move","to","listValue","__","NameMap","list","findIndex","find","updater","delete","json","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","callbacks","lastValidatePromise","getForm","init","getInitialValue","warningUnhooked","getFieldEntities","pure","getFieldsMap","cache","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","filteredNameList","_entity$isListField","arg0","arg1","isAllFieldsTouched","testTouched","fieldNamePath","testField","resetWithFieldInitialValue","initialValue","records","requiredFieldEntities","resetWithFields","entities","originValue","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","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","form","formRef","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","_ref$component","component","Component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","formInstance","_formInstance$getInte","rest","mountRef","childrenNode","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","preventDefault","RefForm","FormProvider","List","useForm","LocaleProvider","_ANT_MARK__","prevProps","exist","_Component","Notice","closeTimer","clearCloseTimer","noticeKey","startCloseTimer","duration","updateMark","restartCloseTimer","_this2","holder","componentClass","dataOrAriaAttributeProps","acc","substr","onMouseEnter","onMouseLeave","createPortal","notificationInstance","createdRef","noticeProps","noticeEle","seed","now","getUuid","Notification","notices","hookRefs","originNotice","holderCallback","notice","maxCount","previousState","noticeIndex","v","updatedNotices","userPassKey","shift","removeKey","_ref2$notice","noticePropsMap","noticeKeys","_notice$onClose","getTransitionName","changedVisible","_ref5","_this2$noticePropsMap","newInstance","properties","_ref6","called","notification","removeNotice","unmountComponentAtNode","useNotification","messageInstance","defaultTop","defaultDuration","localPrefixCls","rtl","getRCNotificationInstance","typeToIcon","IconComponent","messageClass","getRcNotificationInstance","getRCNoticeProps","api","open","closePromise","filled","rejected","messageKey","attachTypeApi","originalApi","isArgsProps","useMessage","innerInstance","_useRCNotification","_useRCNotification2","hookNotify","hookApiRef","mergedPrefixCls","defaultGetContainer","defaultCloseIcon","defaultBottom","defaultPrefixCls","defaultPlacement","getPlacementStyle","placement","bottom","right","_args$placement","_args$getContainer","_args$closeIcon","outerPrefixCls","cacheKey","cacheInstance","notificationClass","iconNode","autoMarginTag","description","btn","getNotificationInstance","createUseNotification","getPrefixClsWrapper","suffixCls","legacyLocale","getTargetContainer","renderEmpty","csp","autoInsertSpaceInButton","input","pageHeader","componentSize","space","virtual","dropdownMatchSelectWidth","childNode","Form","SizeContext","renderProvider","ConfigContext"],"mappings":"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","file":"component---src-pages-resources-tsx-05f8cf1d77db7217e56c.js","sourcesContent":["import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback);\n }\n }\n };\n}","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n/* eslint no-console:0 */\n\n\nvar formatRegExp = /%[sdj%]/g;\n\nvar warning = function warning() {}; // don't print warning message when in production env or node runtime\n\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn) {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nfunction convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var i = 1;\n var f = args[0];\n var len = args.length;\n\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n\n if (typeof f === 'string') {\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n\n if (i >= len) {\n return x;\n }\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n break;\n\n default:\n return x;\n }\n });\n return str;\n }\n\n return f;\n}\n\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\n\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n\n return false;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, errors);\n total++;\n\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(function (a) {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n\n var original = index;\n index = index + 1;\n\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\n\nvar AsyncValidationError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(AsyncValidationError, _Error);\n\n function AsyncValidationError(errors, fields) {\n var _this;\n\n _this = _Error.call(this, 'Async Validation Error') || this;\n _this.errors = errors;\n _this.fields = fields;\n return _this;\n }\n\n return AsyncValidationError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction asyncMap(objArr, option, func, callback) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve();\n };\n\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n\n _pending[\"catch\"](function (e) {\n return e;\n });\n\n return _pending;\n }\n\n var firstFields = option.firstFields || [];\n\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n results.push.apply(results, errors);\n total++;\n\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve();\n }\n };\n\n if (!objArrKeys.length) {\n callback(results);\n resolve();\n }\n\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending[\"catch\"](function (e) {\n return e;\n });\n return pending;\n}\n\nfunction complementError(rule) {\n return function (oe) {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n\n return {\n message: typeof oe === 'function' ? oe() : oe,\n field: oe.field || rule.fullField\n };\n };\n}\n\nfunction deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = _extends(_extends({}, target[s]), value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n\n return target;\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 */\n\n\nfunction required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\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 */\n\n\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n}\n/* eslint max-len:0 */\n\n\nvar 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(\"^(?!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]*)?$\", 'i'),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n \"float\": function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n\n return typeof value === 'number';\n },\n object: function object(value) {\n return typeof value === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\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 */\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\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n } // straight typeof check\n\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\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 */\n\n\nfunction range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number'; // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\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\n\n if (!key) {\n return false;\n }\n\n if (arr) {\n val = value.length;\n }\n\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n}\n\nvar ENUM = 'enum';\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 */\n\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\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 */\n\n\nfunction pattern$1(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\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n}\n\nvar rules = {\n required: required,\n whitespace: whitespace,\n type: type,\n range: range,\n \"enum\": enumerable,\n pattern: pattern$1\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 */\n\nfunction string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'string');\n\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\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n\n callback(errors);\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 */\n\n\nfunction method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\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 */\n\n\nfunction number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\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 */\n\n\nfunction _boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\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 */\n\n\nfunction regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\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 */\n\n\nfunction integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\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 */\n\n\nfunction floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\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 */\n\n\nfunction array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'array') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, 'array');\n\n if (!isEmptyValue(value, 'array')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\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 */\n\n\nfunction object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\nvar ENUM$1 = 'enum';\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 */\n\nfunction enumerable$1(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (value !== undefined) {\n rules[ENUM$1](rule, value, source, errors, options);\n }\n }\n\n callback(errors);\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 */\n\n\nfunction pattern$2(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\n}\n\nfunction date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); // console.log('validate on %s value', value);\n\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n\n if (!isEmptyValue(value, 'date')) {\n var 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\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n\n callback(errors);\n}\n\nfunction required$1(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n}\n\nfunction type$1(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options, ruleType);\n\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n\n callback(errors);\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 */\n\n\nfunction any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n\n rules.required(rule, value, source, errors, options);\n }\n\n callback(errors);\n}\n\nvar validators = {\n string: string,\n method: method,\n number: number,\n \"boolean\": _boolean,\n regexp: regexp,\n integer: integer,\n \"float\": floatFn,\n array: array,\n object: object,\n \"enum\": enumerable$1,\n pattern: pattern$2,\n date: date,\n url: type$1,\n hex: type$1,\n email: type$1,\n required: required$1,\n any: any\n};\n\nfunction 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: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\n\nvar messages = newMessages();\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\n\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = messages;\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n\n return this._messages;\n },\n define: function define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n\n this.rules = {};\n var z;\n var item;\n\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: function validate(source_, o, oc) {\n var _this = this;\n\n if (o === void 0) {\n o = {};\n }\n\n if (oc === void 0) {\n oc = function oc() {};\n }\n\n var source = source_;\n var options = o;\n var callback = oc;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback();\n }\n\n return Promise.resolve();\n }\n\n function complete(results) {\n var i;\n var errors = [];\n var fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n\n errors = (_errors = errors).concat.apply(_errors, e);\n } else {\n errors.push(e);\n }\n }\n\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = convertFieldsError(errors);\n }\n\n callback(errors, fields);\n }\n\n if (options.messages) {\n var messages$1 = this.messages();\n\n if (messages$1 === messages) {\n messages$1 = newMessages();\n }\n\n deepMerge(messages$1, options.messages);\n options.messages = messages$1;\n } else {\n options.messages = this.messages();\n }\n\n var arr;\n var value;\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n arr = _this.rules[z];\n value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _extends({}, source);\n }\n\n value = source[z] = rule.transform(value);\n }\n\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _extends({}, rule);\n }\n\n rule.validator = _this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this.getType(rule);\n\n if (!rule.validator) {\n return;\n }\n\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || 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 _extends(_extends({}, schema), {}, {\n fullField: rule.fullField + \".\" + key\n });\n }\n\n function cb(e) {\n if (e === void 0) {\n e = [];\n }\n\n var errors = e;\n\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n\n if (errors.length && rule.message) {\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\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) {\n errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [options.error(rule, format(options.messages.required, rule.field))];\n }\n\n return doIt(errors);\n }\n\n var fieldsSchema = {};\n\n if (rule.defaultField) {\n for (var k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n\n fieldsSchema = _extends(_extends({}, fieldsSchema), data.rule.fields);\n\n for (var f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n\n var schema = new Schema(fieldsSchema);\n schema.messages(options.messages);\n\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n\n if (errors && errors.length) {\n finalErrors.push.apply(finalErrors, errors);\n }\n\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, errs);\n }\n\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n var res;\n\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\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\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n });\n },\n getType: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n\n return rule.type || 'string';\n },\n getValidationMethod: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\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('Cannot register a validator by type, validator is not a function');\n }\n\n validators[type] = validator;\n};\n\nSchema.warning = warning;\nSchema.messages = messages;\nSchema.validators = validators;\nexport default Schema;","export default function contains(root, n) {\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n visible = props.visible,\n maskProps = props.maskProps,\n motionName = props.motionName;\n return React.createElement(CSSMotion, {\n key: \"mask\",\n visible: visible,\n motionName: motionName,\n leavedClassName: \"\".concat(prefixCls, \"-mask-hidden\")\n }, function (_ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return React.createElement(\"div\", Object.assign({\n style: _objectSpread(_objectSpread({}, motionStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionClassName)\n }, maskProps));\n });\n}","// =============================== Motion ===============================\nexport function getMotionName(prefixCls, transitionName, animationName) {\n var motionName = transitionName;\n\n if (!motionName && animationName) {\n motionName = \"\".concat(prefixCls, \"-\").concat(animationName);\n }\n\n return motionName;\n} // ================================ UUID ================================\n\nvar uuid = -1;\nexport function getUUID() {\n uuid += 1;\n return uuid;\n} // =============================== Offset ===============================\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document;\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nexport function offset(el) {\n var rect = el.getBoundingClientRect();\n var pos = {\n left: rect.left,\n top: rect.top\n };\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n pos.top += getScroll(w, true);\n return pos;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { offset } from '../util';\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none'\n};\nvar Content = React.forwardRef(function (props, ref) {\n var closable = props.closable,\n prefixCls = props.prefixCls,\n width = props.width,\n height = props.height,\n footer = props.footer,\n title = props.title,\n closeIcon = props.closeIcon,\n style = props.style,\n className = props.className,\n visible = props.visible,\n forceRender = props.forceRender,\n bodyStyle = props.bodyStyle,\n bodyProps = props.bodyProps,\n children = props.children,\n destroyOnClose = props.destroyOnClose,\n modalRender = props.modalRender,\n motionName = props.motionName,\n ariaId = props.ariaId,\n onClose = props.onClose,\n onVisibleChanged = props.onVisibleChanged,\n onClick = props.onClick,\n mousePosition = props.mousePosition;\n var sentinelStartRef = useRef();\n var sentinelEndRef = useRef();\n var dialogRef = useRef(); // ============================== Ref ===============================\n\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _sentinelStartRef$cur;\n\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 ? void 0 : _sentinelStartRef$cur.focus();\n },\n getDOM: function getDOM() {\n return dialogRef.current;\n },\n changeActive: function changeActive(next) {\n var _document = document,\n activeElement = _document.activeElement;\n\n if (next && activeElement === sentinelEndRef.current) {\n sentinelStartRef.current.focus();\n } else if (!next && activeElement === sentinelStartRef.current) {\n sentinelEndRef.current.focus();\n }\n }\n };\n }); // ============================= Style ==============================\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n transformOrigin = _React$useState2[0],\n setTransformOrigin = _React$useState2[1];\n\n var contentStyle = {};\n\n if (width !== undefined) {\n contentStyle.width = width;\n }\n\n if (height !== undefined) {\n contentStyle.height = height;\n }\n\n if (transformOrigin) {\n contentStyle.transformOrigin = transformOrigin;\n }\n\n function onPrepare() {\n var elementOffset = offset(dialogRef.current);\n setTransformOrigin(mousePosition ? \"\".concat(mousePosition.x - elementOffset.left, \"px \").concat(mousePosition.y - elementOffset.top, \"px\") : '');\n } // ============================= Render =============================\n\n\n var footerNode;\n\n if (footer) {\n footerNode = React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer);\n }\n\n var headerNode;\n\n if (title) {\n headerNode = React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\"),\n id: ariaId\n }, title));\n }\n\n var closer;\n\n if (closable) {\n closer = React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, closeIcon || React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }));\n }\n\n var content = React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, closer, headerNode, React.createElement(\"div\", Object.assign({\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, bodyProps), children), footerNode);\n return React.createElement(CSSMotion, {\n visible: visible,\n onVisibleChanged: onVisibleChanged,\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n forceRender: forceRender,\n motionName: motionName,\n removeOnLeave: destroyOnClose,\n ref: dialogRef\n }, function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return React.createElement(\"div\", {\n key: \"dialog-element\",\n role: \"document\",\n ref: motionRef,\n style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),\n className: classNames(prefixCls, className, motionClassName),\n onClick: onClick\n }, React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }), modalRender ? modalRender(content) : content, React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }));\n });\n});\nContent.displayName = 'Content';\nexport default Content;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport Mask from './Mask';\nimport { getMotionName, getUUID } from '../util';\nimport Content from './Content';\nexport default function Dialog(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dialog' : _props$prefixCls,\n zIndex = props.zIndex,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? false : _props$visible,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n _props$switchScrollin = props.switchScrollingEffect,\n switchScrollingEffect = _props$switchScrollin === void 0 ? function () {} : _props$switchScrollin,\n title = props.title,\n wrapStyle = props.wrapStyle,\n wrapClassName = props.wrapClassName,\n wrapProps = props.wrapProps,\n onClose = props.onClose,\n afterClose = props.afterClose,\n transitionName = props.transitionName,\n animation = props.animation,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n maskStyle = props.maskStyle,\n maskProps = props.maskProps;\n var lastOutSideActiveElementRef = useRef();\n var wrapperRef = useRef();\n var contentRef = useRef();\n\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1]; // ========================== Init ==========================\n\n\n var ariaIdRef = useRef();\n\n if (!ariaIdRef.current) {\n ariaIdRef.current = \"rcDialogTitle\".concat(getUUID());\n } // ========================= Events =========================\n\n\n function onDialogVisibleChanged(newVisible) {\n if (newVisible) {\n // Try to focus\n if (!contains(wrapperRef.current, document.activeElement)) {\n var _contentRef$current;\n\n lastOutSideActiveElementRef.current = document.activeElement;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.focus();\n }\n } else {\n // Clean up scroll bar & focus back\n setAnimatedVisible(false);\n switchScrollingEffect();\n\n if (mask && lastOutSideActiveElementRef.current && focusTriggerAfterClose) {\n try {\n lastOutSideActiveElementRef.current.focus({\n preventScroll: true\n });\n } catch (e) {// Do nothing\n }\n\n lastOutSideActiveElementRef.current = null;\n }\n\n afterClose === null || afterClose === void 0 ? void 0 : afterClose();\n }\n }\n\n function onInternalClose(e) {\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n } // >>> Content\n\n\n var contentClickRef = useRef(false);\n var contentTimeoutRef = useRef(); // We need record content click incase content popup out of dialog\n\n var onContentClick = function onContentClick() {\n clearTimeout(contentTimeoutRef.current);\n contentClickRef.current = true;\n contentTimeoutRef.current = setTimeout(function () {\n contentClickRef.current = false;\n });\n }; // >>> Wrapper\n // Close only when element not on dialog\n\n\n var onWrapperClick = null;\n\n if (maskClosable) {\n onWrapperClick = function onWrapperClick(e) {\n if (!contentClickRef.current && !contains(contentRef.current.getDOM(), e.target)) {\n onInternalClose(e);\n }\n };\n }\n\n function onWrapperKeyDown(e) {\n if (keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n onInternalClose(e);\n return;\n } // keep focus inside dialog\n\n\n if (visible) {\n if (e.keyCode === KeyCode.TAB) {\n contentRef.current.changeActive(!e.shiftKey);\n }\n }\n } // ========================= Effect =========================\n\n\n useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n switchScrollingEffect();\n }\n }, [visible]); // Remove direct should also check the scroll bar update\n\n useEffect(function () {\n return function () {\n switchScrollingEffect();\n clearTimeout(contentTimeoutRef.current);\n };\n }, []); // ========================= Render =========================\n\n return React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-root\")\n }, React.createElement(Mask, {\n prefixCls: prefixCls,\n visible: mask && visible,\n motionName: getMotionName(prefixCls, maskTransitionName, maskAnimation),\n style: _objectSpread({\n zIndex: zIndex\n }, maskStyle),\n maskProps: maskProps\n }), React.createElement(\"div\", Object.assign({\n tabIndex: -1,\n onKeyDown: onWrapperKeyDown,\n className: classNames(\"\".concat(prefixCls, \"-wrap\"), wrapClassName),\n ref: wrapperRef,\n onClick: onWrapperClick,\n role: \"dialog\",\n \"aria-labelledby\": title ? ariaIdRef.current : null,\n style: _objectSpread(_objectSpread({\n zIndex: zIndex\n }, wrapStyle), {}, {\n display: !animatedVisible ? 'none' : null\n })\n }, wrapProps), React.createElement(Content, Object.assign({}, props, {\n onClick: onContentClick,\n ref: contentRef,\n closable: closable,\n ariaId: ariaIdRef.current,\n prefixCls: prefixCls,\n visible: visible,\n onClose: onInternalClose,\n onVisibleChanged: onDialogVisibleChanged,\n motionName: getMotionName(prefixCls, transitionName, animation)\n }))));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Portal from \"rc-util/es/PortalWrapper\";\nimport Dialog from './Dialog'; // fix issue #10656\n\n/*\n * getContainer remarks\n * Custom container should not be return, because in the Portal component, it will remove the\n * return container element here, if the custom container is the only child of it's component,\n * like issue #10656, It will has a conflict with removeChild method in react-dom.\n * So here should add a child (div element) to custom container.\n * */\n\nvar DialogWrap = function DialogWrap(props) {\n var visible = props.visible,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n _props$destroyOnClose = props.destroyOnClose,\n destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,\n _afterClose = props.afterClose;\n\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n\n React.useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n }\n }, [visible]); // 渲染在当前 dom 里;\n\n if (getContainer === false) {\n return React.createElement(Dialog, Object.assign({}, props, {\n getOpenCount: function getOpenCount() {\n return 2;\n }\n }));\n } // Destroy on close will remove wrapped div\n\n\n if (!forceRender && destroyOnClose && !animatedVisible) {\n return null;\n }\n\n return React.createElement(Portal, {\n visible: visible,\n forceRender: forceRender,\n getContainer: getContainer\n }, function (childProps) {\n return React.createElement(Dialog, Object.assign({}, props, {\n destroyOnClose: destroyOnClose,\n afterClose: function afterClose() {\n _afterClose === null || _afterClose === void 0 ? void 0 : _afterClose();\n setAnimatedVisible(false);\n }\n }, childProps));\n });\n};\n\nDialogWrap.displayName = 'Dialog';\nexport default DialogWrap;","import DialogWrap from './DialogWrap';\nexport default DialogWrap;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\n\nvar ActionButton = function ActionButton(props) {\n var clickedRef = React.useRef(false);\n var ref = React.useRef();\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n loading = _React$useState2[0],\n setLoading = _React$useState2[1];\n\n React.useEffect(function () {\n var timeoutId;\n\n if (props.autoFocus) {\n var $this = ref.current;\n timeoutId = setTimeout(function () {\n return $this.focus();\n });\n }\n\n return function () {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, []);\n\n var handlePromiseOnOk = function handlePromiseOnOk(returnValueOfOnOk) {\n var closeModal = props.closeModal;\n\n if (!returnValueOfOnOk || !returnValueOfOnOk.then) {\n return;\n }\n\n setLoading(true);\n returnValueOfOnOk.then(function () {\n // It's unnecessary to set loading=false, for the Modal will be unmounted after close.\n // setState({ loading: false });\n closeModal.apply(void 0, arguments);\n }, function (e) {\n // Emit error when catch promise reject\n // eslint-disable-next-line no-console\n console.error(e); // See: https://github.com/ant-design/ant-design/issues/6183\n\n setLoading(false);\n clickedRef.current = false;\n });\n };\n\n var onClick = function onClick() {\n var actionFn = props.actionFn,\n closeModal = props.closeModal;\n\n if (clickedRef.current) {\n return;\n }\n\n clickedRef.current = true;\n\n if (!actionFn) {\n closeModal();\n return;\n }\n\n var returnValueOfOnOk;\n\n if (actionFn.length) {\n returnValueOfOnOk = actionFn(closeModal); // https://github.com/ant-design/ant-design/issues/23358\n\n clickedRef.current = false;\n } else {\n returnValueOfOnOk = actionFn();\n\n if (!returnValueOfOnOk) {\n closeModal();\n return;\n }\n }\n\n handlePromiseOnOk(returnValueOfOnOk);\n };\n\n var type = props.type,\n children = props.children,\n prefixCls = props.prefixCls,\n buttonProps = props.buttonProps;\n return /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(type), {\n onClick: onClick,\n loading: loading,\n prefixCls: prefixCls\n }, buttonProps, {\n ref: ref\n }), children);\n};\n\nexport default ActionButton;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Dialog from './Modal';\nimport ActionButton from './ActionButton';\nimport devWarning from '../_util/devWarning';\nimport ConfigProvider from '../config-provider';\n\nvar ConfirmDialog = function ConfirmDialog(props) {\n var icon = props.icon,\n onCancel = props.onCancel,\n onOk = props.onOk,\n close = props.close,\n zIndex = props.zIndex,\n afterClose = props.afterClose,\n visible = props.visible,\n keyboard = props.keyboard,\n centered = props.centered,\n getContainer = props.getContainer,\n maskStyle = props.maskStyle,\n okText = props.okText,\n okButtonProps = props.okButtonProps,\n cancelText = props.cancelText,\n cancelButtonProps = props.cancelButtonProps,\n direction = props.direction,\n prefixCls = props.prefixCls,\n rootPrefixCls = props.rootPrefixCls,\n bodyStyle = props.bodyStyle,\n modalRender = props.modalRender;\n devWarning(!(typeof icon === 'string' && icon.length > 2), 'Modal', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")); // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n\n var okType = props.okType || 'primary';\n var contentPrefixCls = \"\".concat(prefixCls, \"-confirm\"); // 默认为 true,保持向下兼容\n\n var okCancel = 'okCancel' in props ? props.okCancel : true;\n var width = props.width || 416;\n var style = props.style || {};\n var mask = props.mask === undefined ? true : props.mask; // 默认为 false,保持旧版默认行为\n\n var maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n var autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n var transitionName = props.transitionName || 'zoom';\n var maskTransitionName = props.maskTransitionName || 'fade';\n var classString = classNames(contentPrefixCls, \"\".concat(contentPrefixCls, \"-\").concat(props.type), _defineProperty({}, \"\".concat(contentPrefixCls, \"-rtl\"), direction === 'rtl'), props.className);\n var cancelButton = okCancel && /*#__PURE__*/React.createElement(ActionButton, {\n actionFn: onCancel,\n closeModal: close,\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, cancelText);\n return /*#__PURE__*/React.createElement(Dialog, {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: classNames(_defineProperty({}, \"\".concat(contentPrefixCls, \"-centered\"), !!props.centered)),\n onCancel: function onCancel() {\n return close({\n triggerCancel: true\n });\n },\n visible: visible,\n title: \"\",\n transitionName: transitionName,\n footer: \"\",\n maskTransitionName: maskTransitionName,\n mask: mask,\n maskClosable: maskClosable,\n maskStyle: maskStyle,\n style: style,\n width: width,\n zIndex: zIndex,\n afterClose: afterClose,\n keyboard: keyboard,\n centered: centered,\n getContainer: getContainer,\n modalRender: modalRender\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body-wrapper\")\n }, /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body\"),\n style: bodyStyle\n }, icon, props.title === undefined ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(contentPrefixCls, \"-title\")\n }, props.title), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-content\")\n }, props.content))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-btns\")\n }, cancelButton, /*#__PURE__*/React.createElement(ActionButton, {\n type: okType,\n actionFn: onOk,\n closeModal: close,\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, okText))));\n};\n\nexport default ConfirmDialog;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport * as React from 'react';\nimport ConfirmDialog from '../ConfirmDialog';\nimport defaultLocale from '../../locale/default';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport { ConfigContext } from '../../config-provider';\n\nvar HookModal = function HookModal(_ref, ref) {\n var afterClose = _ref.afterClose,\n config = _ref.config;\n\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n\n var _React$useState3 = React.useState(config),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerConfig = _React$useState4[0],\n setInnerConfig = _React$useState4[1];\n\n var _React$useContext = React.useContext(ConfigContext),\n direction = _React$useContext.direction,\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('modal');\n var rootPrefixCls = getPrefixCls();\n\n function close() {\n setVisible(false);\n }\n\n React.useImperativeHandle(ref, function () {\n return {\n destroy: close,\n update: function update(newConfig) {\n setInnerConfig(function (originConfig) {\n return _extends(_extends({}, originConfig), newConfig);\n });\n }\n };\n });\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: defaultLocale.Modal\n }, function (modalLocale) {\n return /*#__PURE__*/React.createElement(ConfirmDialog, _extends({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls\n }, innerConfig, {\n close: close,\n visible: visible,\n afterClose: afterClose,\n okText: innerConfig.okText || (innerConfig.okCancel ? modalLocale.okText : modalLocale.justOkText),\n direction: direction,\n cancelText: innerConfig.cancelText || modalLocale.cancelText\n }));\n });\n};\n\nexport default /*#__PURE__*/React.forwardRef(HookModal);","import _extends from \"@babel/runtime/helpers/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport InfoCircleOutlined from '@ant-design/icons/InfoCircleOutlined';\nimport CheckCircleOutlined from '@ant-design/icons/CheckCircleOutlined';\nimport CloseCircleOutlined from '@ant-design/icons/CloseCircleOutlined';\nimport ExclamationCircleOutlined from '@ant-design/icons/ExclamationCircleOutlined';\nimport { getConfirmLocale } from './locale';\nimport { destroyFns } from './Modal';\nimport ConfirmDialog from './ConfirmDialog';\nvar defaultRootPrefixCls = 'ant';\n\nfunction getRootPrefixCls() {\n return defaultRootPrefixCls;\n}\n\nexport default function confirm(config) {\n var div = document.createElement('div');\n document.body.appendChild(div); // eslint-disable-next-line @typescript-eslint/no-use-before-define\n\n var currentConfig = _extends(_extends({}, config), {\n close: close,\n visible: true\n });\n\n function destroy() {\n var unmountResult = ReactDOM.unmountComponentAtNode(div);\n\n if (unmountResult && div.parentNode) {\n div.parentNode.removeChild(div);\n }\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 triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n\n if (config.onCancel && triggerCancel) {\n config.onCancel.apply(config, args);\n }\n\n for (var i = 0; i < destroyFns.length; i++) {\n var fn = destroyFns[i]; // eslint-disable-next-line @typescript-eslint/no-use-before-define\n\n if (fn === close) {\n destroyFns.splice(i, 1);\n break;\n }\n }\n }\n\n function render(_a) {\n var okText = _a.okText,\n cancelText = _a.cancelText,\n prefixCls = _a.prefixCls,\n props = __rest(_a, [\"okText\", \"cancelText\", \"prefixCls\"]);\n /**\n * https://github.com/ant-design/ant-design/issues/23623\n * Sync render blocks React event. Let's make this async.\n */\n\n\n setTimeout(function () {\n var runtimeLocale = getConfirmLocale();\n ReactDOM.render( /*#__PURE__*/React.createElement(ConfirmDialog, _extends({}, props, {\n prefixCls: prefixCls || \"\".concat(getRootPrefixCls(), \"-modal\"),\n rootPrefixCls: getRootPrefixCls(),\n okText: okText || (props.okCancel ? runtimeLocale.okText : runtimeLocale.justOkText),\n cancelText: cancelText || runtimeLocale.cancelText\n })), div);\n });\n }\n\n function close() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n currentConfig = _extends(_extends({}, currentConfig), {\n visible: false,\n afterClose: destroy.bind.apply(destroy, [this].concat(args))\n });\n render(currentConfig);\n }\n\n function update(configUpdate) {\n if (typeof configUpdate === 'function') {\n currentConfig = configUpdate(currentConfig);\n } else {\n currentConfig = _extends(_extends({}, currentConfig), configUpdate);\n }\n\n render(currentConfig);\n }\n\n render(currentConfig);\n destroyFns.push(close);\n return {\n destroy: close,\n update: update\n };\n}\nexport function withWarn(props) {\n return _extends({\n type: 'warning',\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: false\n }, props);\n}\nexport function withInfo(props) {\n return _extends({\n type: 'info',\n icon: /*#__PURE__*/React.createElement(InfoCircleOutlined, null),\n okCancel: false\n }, props);\n}\nexport function withSuccess(props) {\n return _extends({\n type: 'success',\n icon: /*#__PURE__*/React.createElement(CheckCircleOutlined, null),\n okCancel: false\n }, props);\n}\nexport function withError(props) {\n return _extends({\n type: 'error',\n icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null),\n okCancel: false\n }, props);\n}\nexport function withConfirm(props) {\n return _extends({\n type: 'confirm',\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: true\n }, props);\n}\nexport function globalConfig(_ref) {\n var rootPrefixCls = _ref.rootPrefixCls;\n\n if (rootPrefixCls) {\n defaultRootPrefixCls = rootPrefixCls;\n }\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport HookModal from './HookModal';\nimport { withConfirm, withInfo, withSuccess, withError, withWarn } from '../confirm';\nvar uuid = 0;\nexport default function useModal() {\n var _usePatchElement = usePatchElement(),\n _usePatchElement2 = _slicedToArray(_usePatchElement, 2),\n elements = _usePatchElement2[0],\n patchElement = _usePatchElement2[1];\n\n function getConfirmFunc(withFunc) {\n return function hookConfirm(config) {\n uuid += 1;\n var modalRef = /*#__PURE__*/React.createRef();\n var closeFunc;\n var modal = /*#__PURE__*/React.createElement(HookModal, {\n key: \"modal-\".concat(uuid),\n config: withFunc(config),\n ref: modalRef,\n afterClose: function afterClose() {\n closeFunc();\n }\n });\n closeFunc = patchElement(modal);\n return {\n destroy: function destroy() {\n if (modalRef.current) {\n modalRef.current.destroy();\n }\n },\n update: function update(newConfig) {\n if (modalRef.current) {\n modalRef.current.update(newConfig);\n }\n }\n };\n };\n }\n\n return [{\n info: getConfirmFunc(withInfo),\n success: getConfirmFunc(withSuccess),\n error: getConfirmFunc(withError),\n warning: getConfirmFunc(withWarn),\n confirm: getConfirmFunc(withConfirm)\n }, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport Dialog from 'rc-dialog';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport CloseOutlined from '@ant-design/icons/CloseOutlined';\nimport useModal from './useModal';\nimport { getConfirmLocale } from './locale';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigContext } from '../config-provider';\nvar mousePosition;\nexport var destroyFns = []; // ref: https://github.com/ant-design/ant-design/issues/15795\n\nvar getClickPosition = function getClickPosition(e) {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n }; // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n\n setTimeout(function () {\n mousePosition = null;\n }, 100);\n}; // 只有点击事件支持从鼠标位置动画展开\n\n\nif (typeof window !== 'undefined' && window.document && window.document.documentElement) {\n addEventListener(document.documentElement, 'click', getClickPosition);\n}\n\nvar Modal = function Modal(props) {\n var _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var handleCancel = function handleCancel(e) {\n var onCancel = props.onCancel;\n\n if (onCancel) {\n onCancel(e);\n }\n };\n\n var handleOk = function handleOk(e) {\n var onOk = props.onOk;\n\n if (onOk) {\n onOk(e);\n }\n };\n\n var renderFooter = function renderFooter(locale) {\n var okText = props.okText,\n okType = props.okType,\n cancelText = props.cancelText,\n confirmLoading = props.confirmLoading;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, _extends({\n onClick: handleCancel\n }, props.cancelButtonProps), cancelText || locale.cancelText), /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(okType), {\n loading: confirmLoading,\n onClick: handleOk\n }, props.okButtonProps), okText || locale.okText));\n };\n\n var customizePrefixCls = props.prefixCls,\n footer = props.footer,\n visible = props.visible,\n wrapClassName = props.wrapClassName,\n centered = props.centered,\n getContainer = props.getContainer,\n closeIcon = props.closeIcon,\n restProps = __rest(props, [\"prefixCls\", \"footer\", \"visible\", \"wrapClassName\", \"centered\", \"getContainer\", \"closeIcon\"]);\n\n var prefixCls = getPrefixCls('modal', customizePrefixCls);\n var defaultFooter = /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: getConfirmLocale()\n }, renderFooter);\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 wrapClassNameExtended = classNames(wrapClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-centered\"), !!centered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrap-rtl\"), direction === 'rtl'), _classNames));\n return /*#__PURE__*/React.createElement(Dialog, _extends({}, restProps, {\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n wrapClassName: wrapClassNameExtended,\n footer: footer === undefined ? defaultFooter : footer,\n visible: visible,\n mousePosition: mousePosition,\n onClose: handleCancel,\n closeIcon: closeIconToRender\n }));\n};\n\nModal.useModal = useModal;\nModal.defaultProps = {\n width: 520,\n transitionName: 'zoom',\n maskTransitionName: 'fade',\n confirmLoading: false,\n visible: false,\n okType: 'primary'\n};\nexport default Modal;","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\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 patchElement(element) {\n // append a new element to elements (and create a new ref)\n setElements(function (originElements) {\n return [].concat(_toConsumableArray(originElements), [element]);\n }); // return a function that removes the new element out of elements (and create a new ref)\n // it works a little like useEffect\n\n return function () {\n setElements(function (originElements) {\n return originElements.filter(function (ele) {\n return ele !== element;\n });\n });\n };\n }\n\n return [elements, patchElement];\n}","import OriginModal, { destroyFns } from './Modal';\nimport confirm, { withWarn, withInfo, withSuccess, withError, withConfirm, globalConfig } from './confirm';\n\nfunction modalWarn(props) {\n return confirm(withWarn(props));\n}\n\nvar Modal = OriginModal;\n\nModal.info = function infoFn(props) {\n return confirm(withInfo(props));\n};\n\nModal.success = function successFn(props) {\n return confirm(withSuccess(props));\n};\n\nModal.error = function errorFn(props) {\n return confirm(withError(props));\n};\n\nModal.warning = modalWarn;\nModal.warn = modalWarn;\n\nModal.confirm = function confirmFn(props) {\n return confirm(withConfirm(props));\n};\n\nModal.destroyAll = function destroyAllFn() {\n while (destroyFns.length) {\n var close = destroyFns.pop();\n\n if (close) {\n close();\n }\n }\n};\n\nModal.config = globalConfig;\nexport default Modal;","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport React, { useState } from 'react';\nimport { css } from '@emotion/core';\nimport {\n Card, Row, Col, List, Modal, Button,\n} from 'antd';\nimport SEO from '../components/seo';\nimport Layout from '../components/layout';\n\nconst learningLinks = [\n [\n \"O'Reilly Live Training: Rapid Data Exploration and Analysis with Apache Superset\",\n 'https://learning.oreilly.com/live-training/courses/rapid-data-exploration-and-analysis-with-apache-superset/0636920457251/',\n ],\n [\n 'Unlocking Advanced Data Analytics on The Data Lake Using Apache Superset and Dremio from Dremio',\n 'https://www.dremio.com/tutorials/dremio-apache-superset/',\n ],\n [\n 'Test-driving Apache Superset from SmartCat',\n 'https://blog.smartcat.io/2018/test-driving-apache-superset/',\n ],\n];\n\nconst installationLinks = [\n [\n 'Official Apache releases',\n 'https://dist.apache.org/repos/dist/release/superset/',\n ],\n [\n 'Locally with Docker',\n 'https://superset.apache.org/installation.html#start-with-docker',\n ],\n [\n 'Superset on the Python Package Index (PyPI)',\n 'https://dist.apache.org/repos/dist/release/superset/',\n ],\n [\n 'Install on CentOS',\n 'https://aichamp.wordpress.com/2019/11/20/installing-apache-superset-into-centos-7-with-python-3-7/',\n ],\n [\n 'Build Apache Superset from source',\n 'https://hackernoon.com/a-better-guide-to-build-apache-superset-from-source-6f2ki32n0',\n ],\n [\n 'Installing Apache Superset on IBM Kubernetes Cluster',\n 'https://aklin.github.io/guides/kubernetes/2020/10/05/ibm-superset-guide/',\n ],\n];\n\nconst youtubeVideos = [\n [\n '24XDOkGJrEY',\n 'The history and anatomy of Apache Superset',\n ],\n [\n 'AqousXQ7YHw',\n 'Apache Superset for visualization and for data science',\n ],\n [\n 'JGeIHrQYhIs',\n 'Apache Superset- Interactive Multi Tab Multiple Dashboards Samples',\n ],\n [\n 'z350Gbi463I',\n 'Apache Superset - Interactive Sales Dashboard (Demo 1)',\n ],\n];\n\nconst resourcesContainer = css`\n .link-section {\n margin-bottom: 24px;\n a {\n display: block;\n }\n }\n .links {\n .videos {\n margin-top: 50px;\n text-align: left;\n iframe {\n margin: 15px;\n }\n }\n }\n`;\n\ninterface featureProps {\n title: string,\n links: string[][],\n}\nconst LinkSection = ({ title, links }: featureProps) => (\n <div className=\"link-section\">\n <h3>{title}</h3>\n <List\n size=\"small\"\n bordered\n dataSource={links}\n renderItem={([link, href]) => (\n <List.Item>\n <a href={href} target=\"_blank\" rel=\"noreferrer\">\n {link}\n </a>\n </List.Item>\n )}\n />\n </div>\n);\n\nconst Resources = () => {\n const [showModal, setModal] = useState(false);\n const [videoId, setVideoId] = useState(null);\n const [cardTitle, setCardTitle] = useState(null);\n const handleClose = () => {\n setModal(false);\n setVideoId(null);\n setCardTitle(null);\n };\n return (\n <Layout>\n <div className=\"contentPage\">\n <SEO title=\"Resources\" />\n <div css={resourcesContainer}>\n <section>\n <h1 className=\"title\">Resources</h1>\n <span>\n Here’s a collection of resources and blogs about Apache Superset\n from around the Internet. For a more more extensive and dynamic\n list of resources, check out the\n {' '}\n <a href=\"https://github.com/apache-superset/awesome-apache-superset\">\n Awesome Apache Superset\n </a>\n {' '}\n repository\n </span>\n </section>\n <section className=\"links\">\n <Row gutter={24}>\n <Col md={12} sm={24} xs={24}>\n <LinkSection title=\"Learning Content\" links={learningLinks} />\n </Col>\n <Col md={12} sm={24} xs={24}>\n <LinkSection title=\"Installation\" links={installationLinks} />\n </Col>\n </Row>\n </section>\n <section className=\"videos\">\n <Modal\n title={cardTitle}\n visible={showModal}\n onOk={handleClose}\n onCancel={handleClose}\n width={610}\n footer={[\n <Button key=\"back\" onClick={handleClose}>\n Close\n </Button>,\n ]}\n >\n <iframe\n width=\"560\"\n height=\"315\"\n src={`https://www.youtube.com/embed/${(youtubeVideos[videoId] && youtubeVideos[videoId][0])}`}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n </Modal>\n <h2>Videos</h2>\n <Card>\n {youtubeVideos.map(([id, title], idx) => (\n <Card.Grid>\n <div\n role=\"button\"\n onClick={() => {\n setModal(true);\n setVideoId(idx);\n setCardTitle(title);\n }}\n >\n <h4>{title}</h4>\n <img\n width=\"100%\"\n alt=\"youtube vid\"\n src={`http://img.youtube.com/vi/${id}/maxresdefault.jpg`}\n />\n </div>\n </Card.Grid>\n ))}\n </Card>\n </section>\n </div>\n </div>\n </Layout>\n );\n};\n\nexport default Resources;\n","import _extends from \"@babel/runtime/helpers/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 * 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 = 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 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}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nexport default function set(entity, paths, value) {\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 }\n\n clone[path] = set(clone[path], restPath, value);\n return clone;\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 newStore = set(store, namePath, value);\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}","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}","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 React.isValidElement(message) ? 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 } // Wait a tick to make sure return type is a promise\n\n\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 _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); // ============================== Subscriptions ==============================\n\n\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\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve);\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 <List name=\"list\"><Field name={['list', 0]}></List>\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 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 namePath = _this.getNamePath();\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, _this.getValue(), filteredRules, options, validateFirst, messageVariables);\n _this.dirty = true;\n _this.validatePromise = promise;\n _this.errors = []; // Force trigger re-render since we need sync renderProps with new meta\n\n _this.reRender();\n\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 === promise) {\n _this.validatePromise = null;\n _this.errors = errors;\n\n _this.reRender();\n }\n });\n return promise;\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 }; // ============================= 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 || !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 registerField = _getInternalHooks2.registerField;\n\n _this.cancelRegisterFunc = registerField(_assertThisInitialized(_this));\n }\n\n return _this;\n }\n\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var shouldUpdate = this.props.shouldUpdate;\n this.mounted = true; // One more render for component in case fields not ready\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 (React.isValidElement(child)) {\n returnChildNode = 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 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 }\n\n if (process.env.NODE_ENV !== 'production') {\n warning(restProps.preserve !== false || !restProps.isListField, '`preserve` should not apply on Form.List fields.');\n }\n\n return React.createElement(Field, Object.assign({\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 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 React.createElement(FieldContext.Provider, {\n value: _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n })\n }, React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger\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 _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport { matchNamePath } from './valueUtil';\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\n\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n\n this.list = [];\n }\n\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n var index = this.list.findIndex(function (item) {\n return matchNamePath(item.key, key);\n });\n\n if (index !== -1) {\n this.list[index].value = value;\n } else {\n this.list.push({\n key: key,\n value: value\n });\n }\n }\n }, {\n key: \"get\",\n value: function get(key) {\n var result = this.list.find(function (item) {\n return matchNamePath(item.key, key);\n });\n return result && result.value;\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.list = this.list.filter(function (item) {\n return !matchNamePath(item.key, key);\n });\n }\n }, {\n key: \"map\",\n value: function map(callback) {\n return this.list.map(callback);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref) {\n var key = _ref.key,\n value = _ref.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, 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 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 = window.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 testTouched = function testTouched(field) {\n // Not provide `nameList` will check all the fields\n if (!namePathList) {\n return field.isFieldTouched();\n }\n\n var fieldNamePath = field.getNamePath();\n\n if (containsNamePath(namePathList, fieldNamePath)) {\n return field.isFieldTouched();\n }\n\n return isAllFieldsTouched;\n };\n\n return isAllFieldsTouched ? _this.getFieldEntities(true).every(testTouched) : _this.getFieldEntities(true).some(testTouched);\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] : {}; // Create cache\n\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.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 _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n }); // Clean up store value if preserve\n\n var mergedPreserve = preserve !== undefined ? preserve : _this.preserve;\n\n if (mergedPreserve === false && !isListField) {\n var namePath = entity.getNamePath();\n\n if (namePath.length && _this.getFieldValue(namePath) !== undefined) {\n _this.store = setValue(_this.store, namePath, undefined);\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 (_ref) {\n var onStoreChange = _ref.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\n\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n\n _this.validateFields(childrenFields);\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 (_ref2) {\n var name = _ref2.name,\n errors = _ref2.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 (_ref3) {\n var fieldName = _ref3.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 } // 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 (_ref4) {\n var name = _ref4.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 = 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 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 _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 = React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n\n if (Component === false) {\n return wrapperNode;\n }\n\n return React.createElement(Component, Object.assign({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\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 = 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/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/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: \"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 _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 _this = _super.apply(this, arguments);\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) {\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 = React.createElement(\"div\", Object.assign({\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), React.createElement(\"div\", {\n className: \"\".concat(componentClass, \"-content\")\n }, children), closable ? React.createElement(\"a\", {\n tabIndex: 0,\n onClick: this.close,\n className: \"\".concat(componentClass, \"-close\")\n }, closeIcon || React.createElement(\"span\", {\n className: \"\".concat(componentClass, \"-close-x\")\n })) : null);\n\n if (holder) {\n return ReactDOM.createPortal(node, holder);\n }\n\n return node;\n }\n }]);\n\n return Notice;\n}(Component);\n\nexport { Notice as default };\nNotice.defaultProps = {\n onClose: function onClose() {},\n duration: 1.5\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\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 notificationInstance.add(noticeProps, function (div, props) {\n var key = props.key;\n\n if (div && !createdRef.current[key]) {\n var noticeEle = React.createElement(Notice, Object.assign({}, props, {\n holder: div\n }));\n createdRef.current[key] = noticeEle;\n setElements(function (originElements) {\n return [].concat(_toConsumableArray(originElements), [noticeEle]);\n });\n }\n });\n }\n\n return [notify, React.createElement(React.Fragment, null, elements)];\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\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 _this = _super.apply(this, arguments);\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 React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, 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 var _this2$noticePropsMap = _this2.noticePropsMap[key],\n noticeProps = _this2$noticePropsMap.props,\n holderCallback = _this2$noticePropsMap.holderCallback;\n\n if (holderCallback) {\n return 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 React.createElement(Notice, Object.assign({}, 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 }));\n }));\n }\n }]);\n\n return Notification;\n}(Component);\n\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(React.createElement(Notification, Object.assign({}, props, {\n ref: ref\n })));\n return;\n }\n\n ReactDOM.render(React.createElement(Notification, Object.assign({}, props, {\n ref: ref\n })), div);\n};\n\nexport default Notification;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RCNotification from 'rc-notification';\nimport LoadingOutlined from '@ant-design/icons/LoadingOutlined';\nimport ExclamationCircleFilled from '@ant-design/icons/ExclamationCircleFilled';\nimport CloseCircleFilled from '@ant-design/icons/CloseCircleFilled';\nimport CheckCircleFilled from '@ant-design/icons/CheckCircleFilled';\nimport InfoCircleFilled from '@ant-design/icons/InfoCircleFilled';\nimport createUseMessage from './hooks/useMessage';\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = 'ant-message';\nvar transitionName = 'move-up';\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\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 prefixCls = args.prefixCls || localPrefixCls;\n\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n instance: messageInstance\n });\n return;\n }\n\n RCNotification.newInstance({\n prefixCls: prefixCls,\n transitionName: transitionName,\n style: {\n top: defaultTop\n },\n getContainer: getContainer,\n maxCount: maxCount\n }, function (instance) {\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n instance: messageInstance\n });\n return;\n }\n\n messageInstance = instance;\n callback({\n prefixCls: prefixCls,\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 };\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 Notification from './Notification';\nexport default Notification;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/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 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 }), 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}","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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/CloseOutlined';\nimport classNames from 'classnames';\nimport CheckCircleOutlined from '@ant-design/icons/CheckCircleOutlined';\nimport CloseCircleOutlined from '@ant-design/icons/CloseCircleOutlined';\nimport ExclamationCircleOutlined from '@ant-design/icons/ExclamationCircleOutlined';\nimport InfoCircleOutlined from '@ant-design/icons/InfoCircleOutlined';\nimport createUseNotification from './hooks/useNotification';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = 'ant-notification';\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 var outerPrefixCls = args.prefixCls || defaultPrefixCls;\n var prefixCls = \"\".concat(outerPrefixCls, \"-notice\");\n var cacheKey = \"\".concat(outerPrefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: prefixCls,\n instance: instance\n });\n });\n return;\n }\n\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(outerPrefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(outerPrefixCls, \"-close-icon\")\n }));\n var notificationClass = classNames(\"\".concat(outerPrefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(outerPrefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n Notification.newInstance({\n prefixCls: outerPrefixCls,\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: prefixCls,\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 duration = args.duration === undefined ? defaultDuration : args.duration;\n var iconNode = null;\n\n if (args.icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (args.type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[args.type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(args.type)\n });\n }\n\n var autoMarginTag = !args.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, args.message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, args.description), args.btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, args.btn) : null),\n duration: duration,\n closable: true,\n onClose: args.onClose,\n onClick: args.onClick,\n key: args.key,\n style: args.style || {},\n className: args.className\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/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/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/extends\"; // TODO: remove this lint\n// SFC has specified a displayName, but not worked.\n\n/* eslint-disable react/display-name */\n\nimport * as React from 'react';\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport { SizeContextProvider } from './SizeContext';\nimport message from '../message';\nimport notification from '../notification';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\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\n var getPrefixClsWrapper = function getPrefixClsWrapper(context) {\n return function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || context.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n };\n };\n\n var renderProvider = function renderProvider(context, legacyLocale) {\n var children = props.children,\n getTargetContainer = props.getTargetContainer,\n getPopupContainer = props.getPopupContainer,\n renderEmpty = props.renderEmpty,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n input = props.input,\n locale = props.locale,\n pageHeader = props.pageHeader,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth;\n\n var config = _extends(_extends({}, context), {\n getPrefixCls: getPrefixClsWrapper(context),\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n });\n\n if (getTargetContainer) {\n config.getTargetContainer = getTargetContainer;\n }\n\n if (getPopupContainer) {\n config.getPopupContainer = getPopupContainer;\n }\n\n if (renderEmpty) {\n config.renderEmpty = renderEmpty;\n }\n\n if (pageHeader) {\n config.pageHeader = pageHeader;\n }\n\n if (input) {\n config.input = input;\n }\n\n if (form) {\n config.form = form;\n }\n\n var childNode = children; // Additional Form provider\n\n var validateMessages = {};\n\n if (locale && locale.Form && locale.Form.defaultValidateMessages) {\n validateMessages = locale.Form.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 return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: config\n }, /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale || legacyLocale,\n _ANT_MARK__: ANT_MARK\n }, childNode)));\n };\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return renderProvider(context, legacyLocale);\n });\n });\n};\n/** @private internal usage. do not use in your production */\n\n\nConfigProvider.ConfigContext = ConfigContext;\nexport default ConfigProvider;"],"sourceRoot":""}