%PDF- %PDF-
Direktori : /home/opti/public_html/ncf/static/js/ |
Current File : /home/opti/public_html/ncf/static/js/3.80810870.chunk.js.map |
{"version":3,"sources":["../node_modules/lodash/_root.js","../node_modules/lodash/_getNative.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/isObjectLike.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../../../src/propertyUtils.js","../../../src/utils.js","../../../src/getOffsetParent.js","../../../src/isAncestorFixed.js","../../../src/getVisibleRectForElement.js","../../../src/getRegion.js","../../../src/getAlignOffset.js","../../../src/getElFuturePos.js","../../../src/align/align.js","../../../src/adjustForViewport.js","../../../src/align/alignElement.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../../../src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/isMobile.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/isArray.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/eq.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isLength.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/antd/es/_util/motion.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-util/es/Portal.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../../../src/util.js","../../../src/rule/required.js","../../../src/rule/type.js","../../../src/rule/index.js","../../../src/rule/whitespace.js","../../../src/rule/range.js","../../../src/rule/enum.js","../../../src/rule/pattern.js","../../../src/validator/type.js","../../../src/validator/index.js","../../../src/validator/string.js","../../../src/validator/method.js","../../../src/validator/number.js","../../../src/validator/boolean.js","../../../src/validator/regexp.js","../../../src/validator/integer.js","../../../src/validator/float.js","../../../src/validator/array.js","../../../src/validator/object.js","../../../src/validator/enum.js","../../../src/validator/pattern.js","../../../src/validator/date.js","../../../src/validator/required.js","../../../src/validator/any.js","../../../src/messages.js","../../../src/index.js","../node_modules/rc-tooltip/es/Content.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/index.js","../node_modules/antd/es/form/context.js","../../src/index.ts","../node_modules/scroll-into-view-if-needed/es/index.js","../node_modules/antd/es/form/util.js","../node_modules/antd/es/form/hooks/useForm.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/form/Form.js","../node_modules/antd/es/grid/RowContext.js","../node_modules/antd/es/_util/responsiveObserve.js","../node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../node_modules/antd/es/grid/row.js","../node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","../node_modules/antd/es/grid/col.js","../node_modules/antd/es/tooltip/placements.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/form/FormItemLabel.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/form/ErrorList.js","../node_modules/antd/es/form/hooks/useCacheErrors.js","../node_modules/antd/es/form/FormItemInput.js","../node_modules/antd/es/form/FormItem.js","../node_modules/antd/es/form/hooks/useFrameState.js","../node_modules/antd/es/form/hooks/useItemRef.js","../node_modules/antd/es/form/FormList.js","../node_modules/antd/es/form/index.js"],"names":["freeGlobal","require","freeSelf","self","Object","root","Function","module","exports","baseIsNative","getValue","object","key","value","undefined","runtime","Op","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","constructor","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","index","clear","set","get","has","eq","array","getRawTag","objectToString","symToStringTag","nativeCreate","getNative","isKeyable","map","data","__data__","isPointsEq","a1","a2","isAlignPoint","getMotion","_ref","prefixCls","motion","animation","transitionName","motionName","concat","Mask","props","visible","zIndex","mask","maskMotion","maskAnimation","maskTransitionName","_objectSpread","motionAppear","React","CSSMotion","_extends","removeOnLeave","className","style","classNames","jsCssMap","Webkit","Moz","ms","O","getVendorPrefix","vendorPrefix","document","getTransitionName","getTransformName","setTransitionProperty","node","setTransform","matrix2d","matrix3d","forceRelayout","elem","originalStyle","css","el","v","getComputedStyleX","getScroll","w","top","ret","d","getScrollLeft","getScrollTop","getOffset","pos","doc","body","docElem","x","box","y","left","getClientPosition","isWindow","_RE_NUM_NO_PX","RegExp","RE_POS","getOffsetDirection","dir","option","oppositeOffsetDirection","setLeftTop","offset","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","getTransitionProperty","old","preset","off","originalXY","window","transform","matrix","parseFloat","getTransformXY","resultXY","xy","match2d","arr","item","setTransformXY","each","isBorderBoxFn","cs","computedStyle","val","getDocument","rsLeft","BOX_MODELS","swap","options","callback","getPBMWidth","which","j","prop","cssProp","domUtils","getParent","parent","getWH","ex","extra","borderBoxValue","isBorderBox","cssBoxValue","Number","borderBoxValueOrIsBorderBox","refWin","Math","win","documentElementProp","cssShow","position","visibility","display","getWHIgnoreDisplay","args","mix","to","from","first","includeMargin","utils","getWindow","oriOffset","oLeft","oTop","tLeft","tTop","setOffset","clone","getWindowScrollLeft","getWindowScrollTop","merge","viewportWidth","viewportHeight","getOffsetParent","element","positionStyle","getVisibleRectForElement","alwaysByViewport","visibleRect","right","bottom","Infinity","documentElement","navigator","originalPosition","scrollX","scrollY","documentWidth","documentHeight","bodyStyle","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","h","getAlignOffset","region","align","V","H","getElFuturePos","elRegion","refNodeRegion","points","targetOffset","p1","p2","diff","isFailX","elFuturePos","isFailY","flip","reg","p","m","flipOffset","convertOffset","str","offsetLen","test","parseInt","n","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","overflow","source","newOverflowCfg","fail","newElRegion","newPoints","l","r","newOffset","newTargetOffset","isCompleteFailX","t","b","isCompleteFailY","isStillFailX","isStillFailY","size","width","height","adjustForViewport","useCssRight","useCssBottom","useCssTransform","ignoreShake","alignElement","refNode","target","targetRegion","isOutOfVisibleRect","monitorResize","prevWidth","prevHeight","resizeObserver","ResizeObserver","_slicedToArray","contains","_target$getBoundingCl","getBoundingClientRect","fixedWidth","floor","fixedHeight","observe","disconnect","getElement","func","getPoint","point","_typeof","Align","ref","children","disabled","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","useRef","nodeRef","childNode","Children","only","forceAlignPropsRef","current","_useBuffer","buffer","calledRef","timeoutRef","cancelTrigger","clearTimeout","trigger","force","setTimeout","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestAlign","latestOnAlign","activeElement","isVisible","pageX","tgtPoint","pageY","pointInView","alignPoint","container","focus","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","cancel","sourceResizeMonitor","useEffect","clientX","clientY","isEqual","winResizeRef","addEventListener","remove","useImperativeHandle","forceAlign","isValidElement","cloneElement","composeRef","RcAlign","forwardRef","StatusQueue","PopupInner","stretch","destroyPopupOnHide","forceRender","getRootDomNode","getClassNameFromAlign","onMouseEnter","onMouseLeave","onMouseDown","onTouchStart","alignRef","elementRef","_useState","useState","_useState2","alignedClassName","setAlignedClassName","_useStretchStyle","_React$useState","_React$useState2","targetSize","setTargetSize","sizeStyle","indexOf","minHeight","minWidth","offsetWidth","offsetHeight","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","doMeasure","status","setInternalStatus","rafRef","destroyRef","setStatus","nextStatus","cancelRaf","raf","_asyncToGenerator","_regeneratorRuntime","_callee","_context","useVisibleStatus","_useVisibleStatus2","goNextStatus","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","eventName","originHandler","event","mergedStyle","opacity","pointerEvents","alignDisabled","count","leavedClassName","onAppearPrepare","onEnterPrepare","motionRef","motionClassName","motionStyle","mergedClassName","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","mobile","popupClassName","popupStyle","_props$mobile$popupMo","popupMotion","popupRender","_excluded","Popup","_objectWithoutProperties","innerVisible","serInnerVisible","_useState3","_useState4","inMobile","setInMobile","cloneProps","isMobile","popupNode","TriggerContext","noop","returnEmptyString","returnDocument","ownerDocument","ALL_HANDLERS","generateTrigger","PortalComponent","Trigger","_React$Component","_inherits","_super","_createSuper","_this","_popupVisible","_classCallCheck","popupRef","triggerRef","attachId","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","mouseDownTimeout","focusTime","preClickTime","preTouchTime","delayTimer","hasPopupMouseDown","e","mouseEnterDelay","fireEvents","delaySetPopupVisible","onMouseMove","setPoint","mouseLeaveDelay","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","relatedTarget","onFocus","isFocusToShow","Date","now","focusDelay","onBlur","isBlurToHide","blurDelay","onContextMenu","preventDefault","setPopupVisible","onContextMenuClose","isContextMenuToShow","close","onClick","preTime","min","abs","isClickToShow","isClickToHide","nextVisible","popupVisible","onPopupMouseDown","_this$context","apply","arguments","onDocumentClick","maskClosable","getPopupDomNode","isContextMenuOnly","getTriggerDOMNode","domNode","findDOMNode","ReactDOM","_assertThisInitialized","getPopupClassNameFromAlign","_this$props","popupPlacement","builtinPlacements","placements","placement","getAlignPopupClassName","join","getComponent","_this$props2","onPopupAlign","popupAnimation","popupTransitionName","popup","_this$state","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","attachParent","popupContainer","mountNode","_this$props3","getPopupContainer","appendChild","getContainer","createElement","setState","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","triggerContextValue","defaultPopupVisible","_createClass","componentDidUpdate","currentDocument","clearOutsideHandler","_this$popupRef$curren2","popupAlign","placementStr","baseAlign","getAlignFromPlacement","onPopupVisibleChange","delayS","_this2","delay","childPros","_this$props4","action","showAction","_this$props5","_this$props6","hideAction","_this$props7","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","child","newChildProps","createTwoChains","childrenClassName","supportRef","portal","didUpdate","Provider","prevState","newState","contextType","defaultProps","Portal","useMemo","condition","shouldUpdate","agent","userAgent","vendor","opera","substr","Map","isArray","Array","_toArray","addEventListenerWrap","eventType","cb","unstable_batchedUpdates","removeEventListener","offsetParent","getBBox","_box","baseIsEqual","other","baseGetTag","isObject","tag","global","funcToString","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","SetCache","arraySome","cacheHas","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","asyncGeneratorStep","gen","_next","_throw","rootPrefixCls","autoAdjustOverflow","adjustX","adjustY","topLeft","leftTop","topRight","rightTop","bottomRight","rightBottom","bottomLeft","leftBottom","containerRef","initRef","canUseDom","_containerRef$current","_containerRef$current2","parentNode","removeChild","createPortal","baseIsEqualDeep","isObjectLike","Stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","stackClear","stackDelete","stackGet","stackHas","stackSet","assocIndexOf","splice","pairs","LARGE_ARRAY_SIZE","isFunction","isMasked","toSource","reIsHostCtor","funcProto","objectProto","reIsNative","replace","nativeObjectToString","isOwn","unmasked","coreJsData","maskSrcKey","uid","exec","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","setCacheAdd","setCacheHas","add","predicate","cache","Uint8Array","mapToArray","setToArray","symbolProto","symbolValueOf","valueOf","byteLength","byteOffset","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","baseGetAllKeys","getSymbols","arrayPush","keysFunc","symbolsFunc","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","symbol","resIndex","arrayLikeKeys","baseKeys","isArrayLike","baseTimes","isArguments","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","iteratee","baseIsArguments","reIsUint","isLength","typedArrayTags","freeProcess","process","types","binding","isPrototype","nativeKeys","Ctor","overArg","DataView","Set","WeakMap","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","ctorString","formatRegExp","warning","convertFieldsError","errors","fields","field","format","f","len","JSON","_","isEmptyValue","isNativeStringType","asyncSerialArray","original","AsyncValidationError","asyncMap","objArr","pending","k","flattenObjArr","firstFields","objArrKeys","objArrLength","total","results","a","asyncParallelArray","complementError","rule","oe","fullField","deepMerge","required","util","pattern","email","url","hex","integer","regexp","date","number","whitespace","ruleType","custom","range","max","num","enum","_pattern","rules","string","boolean","float","dateObject","any","newMessages","default","parse","invalid","mismatch","cloned","messages","Schema","descriptor","validate","o","oc","series","z","validator","errorFields","deep","doIt","fieldsSchema","fieldSchema","addFullfield","schema","errs","finalErrors","res","getType","validators","getValidationMethod","messageIndex","Content","overlay","id","overlayInnerStyle","role","Tooltip","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","restProps","domRef","extraProps","destroyTooltip","keepParent","_props$arrowContent","arrowContent","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldsValue","validateFields","submit","getInternalHooks","dispatch","initEntityValue","registerField","useSubscribe","setInitialValues","setCallbacks","getFields","setValidateMessages","setPreserve","toArray","entity","path","internalSet","paths","removeIfUndefined","_paths","restPath","_toConsumableArray","getNamePath","store","namePath","setValue","newStore","cloneByNamePathList","namePathList","containsNamePath","some","matchNamePath","internalSetValues","prevValue","recursive","setValues","_len","restValues","_key","reduce","changedNamePath","every","nameUnit","defaultGetValueFromEvent","valuePropName","move","moveIndex","toIndex","typeTemplate","defaultValidateMessages","AsyncValidator","RawAsyncValidator","convertMessages","messageVariables","kv","replaceFunc","template","additionalKV","replaceMessage","fillTemplate","ruleName","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","_callee2","cloneRule","subRuleField","subResults","_context2","defaultField","_defineProperty","validateMessages","t0","_ref2","console","all","subValue","validateRules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","promise","catch","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_ref3","_callee4","_context4","requireUpdate","nextValue","Field","resetCount","cancelRegisterFunc","mounted","touched","dirty","validatePromise","cancelRegister","preserve","isListField","_fieldContext$prefixN","fieldContext","prefixName","getRules","_this$props3$rules","refresh","onStoreChange","prevStore","_this$props4$dependen","dependencies","onReset","curValue","namePathMatch","validating","reRender","dependency","relatedFields","currentValue","rootPromise","_this$props5$validate","triggerName","filteredRules","filter","validateTrigger","includes","isFieldDirty","getErrors","isList","isPreserve","getMeta","prevValidating","getOnlyChild","meta","getControlled","childList","toChildrenArray","childProps","getValueFromEvent","normalize","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","control","newValue","validateTriggerList","originTrigger","forceUpdate","returnChildNode","_this$getOnlyChild","FieldContext","WrapperField","_ref4","List","initialValue","keyManager","parentPrefixName","_ref3$value","onChange","getNewValue","operations","defaultValue","indexSet","keysIndex","valueIndex","_move","listValue","__","SPLIT","cell","NameMap","kvs","updater","delete","cells","split","_cell$match","match","_cell$match2","unit","json","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","callbacks","lastValidatePromise","getForm","init","getInitialValue","timeoutId","warningUnhooked","getFieldEntities","pure","getFieldsMap","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","filteredNameList","_entity$isListField","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","update","list","isNamePathListTouched","entities","namePathListEntities","testField","resetWithFieldInitialValue","records","requiredFieldEntities","resetWithFields","originValue","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","subNamePath","mergedPreserve","updateValue","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","fieldName","provideNameList","promiseList","hasError","allPromiseFinish","resultNamePathList","_ref5","returnPromise","errorList","outOfDate","onFinish","onFinishFailed","useForm","form","formRef","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","Form","_ref$component","component","Component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","formInstance","_formInstance$getInte","rest","mountRef","childrenNode","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","stopPropagation","_restProps$onReset","RefForm","FieldForm","labelAlign","vertical","itemRef","FormItemContext","updateItemErrors","FormItemPrefixContext","isElement","canOverflow","skipOverflowHiddenElements","isScrollable","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflowY","overflowX","frame","defaultView","frameElement","alignNearest","scrollingEdgeStart","scrollingEdgeEnd","scrollingSize","scrollingBorderStart","scrollingBorderEnd","elementEdgeStart","elementEdgeEnd","elementSize","windowWithViewport","scrollMode","block","inline","boundary","checkBoundary","scrollingElement","frames","cursor","parentElement","visualViewport","innerWidth","innerHeight","viewportX","pageXOffset","viewportY","pageYOffset","targetHeight","targetWidth","targetTop","targetRight","targetBottom","targetLeft","targetBlock","targetInline","computations","frameStyle","borderLeft","borderLeftWidth","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","blockScroll","inlineScroll","scrollbarWidth","scrollbarHeight","scrollLeft","scrollTop","isOptionsObject","scrollIntoView","targetIsDetached","behavior","compute","computeOptions","getOptions","actions","canSmoothScroll","scroll","defaultBehavior","candidate","getFieldId","formName","mergedId","toNamePathStr","_useRcForm","useRcForm","rcForm","itemsRef","wrapForm","__INTERNAL__","namePathStr","scrollToField","fieldId","getElementById","getFieldInstance","flexGapSupported","__rest","s","InternalForm","_classNames","contextSize","SizeContext","_React$useContext","ConfigContext","getPrefixCls","direction","contextForm","customizePrefixCls","_props$className","_props$size","colon","labelCol","wrapperCol","hideRequiredMark","_props$layout","layout","scrollToFirstError","requiredMark","restFormProps","mergedRequiredMark","formClassName","SizeContextProvider","errorInfo","defaultScrollToFirstError","RowContext","createContext","responsiveArray","responsiveMap","xs","sm","md","lg","xl","xxl","subscribers","subUid","screens","responsiveObserve","matchHandlers","pointMap","subscribe","register","unsubscribe","token","unregister","screen","matchMediaQuery","handler","mql","removeListener","listener","matches","matchMedia","addListener","canUseDocElement","flexible","setFlexible","flex","flexDirection","rowGap","detectFlexGapSupported","Row","tuple","justify","_props$gutter","gutter","others","setScreens","supportFlexGap","useFlexGapSupport","gutterRef","ResponsiveObserve","currentGutter","gutters","g","breakpoint","getGutter","classes","rowStyle","horizontalGutter","verticalGutter","marginLeft","marginRight","_gutters","marginTop","marginBottom","rowContext","QuestionCircleOutlined","AntdIcon","icon","QuestionCircleOutlinedSvg","sizes","Col","_React$useContext2","span","order","pull","sizeClassObj","_extends2","sizeProps","propSize","paddingLeft","paddingRight","paddingTop","paddingBottom","parseFlex","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","PresetColorTypes","PresetColorRegex","getDisabledCompatibleChildren","elementType","__ANT_BUTTON","__ANT_SWITCH","__ANT_CHECKBOX","_splitObject","picked","omitted","splitObject","spanStyle","buttonStyle","_classNames2","getContextPopupContainer","_useMergedState","useMergedState","_useMergedState2","setVisible","isNoTitle","title","getTooltipPlacements","arrowPointAtCenter","config","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","placementMap","getPlacements","otherProps","openClassName","color","tempVisible","arrowContentStyle","childCls","customOverlayClassName","formattedOverlayInnerStyle","background","RcTooltip","getOverlay","vis","_a","rect","transformOrigin","motionDeadline","FormItemLabel","label","htmlFor","tooltip","_useLocaleReceiver","useLocaleReceiver","formLocale","Consumer","contextLabelAlign","contextLabelCol","contextColon","mergedLabelCol","mergedLabelAlign","labelClsBasic","labelColClassName","labelChildren","computedColon","trim","tooltipProps","toTooltipProps","_tooltipProps$icon","restTooltipProps","tooltipNode","optional","defaultLocale","labelClassName","CheckCircleFilled","CheckCircleFilledSvg","ExclamationCircleFilled","ExclamationCircleFilledSvg","useForceUpdate","_React$useReducer","EMPTY_LIST","ErrorList","_ref$errors","help","onDomErrorVisibleChange","_useCacheErrors","changeTrigger","directly","prevVisible","newVisible","prevErrors","prevErr","timeout","useCacheErrors","changedVisible","_useCacheErrors2","cacheErrors","memoErrors","innerStatus","setInnerStatus","baseClassName","onLeaveEnd","iconMap","success","CloseCircleFilled","LoadingOutlined","FormItemInput","hasFeedback","formItemRender","_internalItemRender","validateStatus","mergedWrapperCol","IconNode","subFormContext","inputDom","errorListDom","extraDom","dom","render","input","NAME_SPLIT","MemoInput","FormItem","fieldKey","noStyle","hidden","useContext","_useContext2","domErrorVisible","innerSetDomErrorVisible","_useFrameState","frameRef","batchRef","useFrameState","_useFrameState2","inlineErrors","setInlineErrors","contextValidateTrigger","setDomErrorVisible","hasName","devWarning","hasValidName","nameRef","updateChildItemErrors","subName","subErrors","originSubName","prevInlineErrors","getItemRef","childrenRef","nameStr","originRef","useItemRef","renderLayout","baseChildren","isRequired","_itemClassName","mergedErrors","subErrorList","mergedValidateStatus","itemClassName","omit","isRenderProps","updateRef","variables","mergedName","originErrorName","fieldKeys","ruleEntity","mergedControl","_a2","_c2","_b","_c","FormList","operation","Item","providerProps","RcFormProvider"],"mappings":"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","file":"static/js/3.80810870.chunk.js","sourcesContent":["var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","let vendorPrefix;\n\nconst jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n const style = document.createElement('p').style;\n const testProp = 'Transform';\n for (const key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix()\n ? `${getVendorPrefix()}TransitionProperty`\n : 'transitionProperty';\n}\n\nexport function getTransformName() {\n return getVendorPrefix() ? `${getVendorPrefix()}Transform` : 'transform';\n}\n\nexport function setTransitionProperty(node, value) {\n const name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n const name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nexport function getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nexport function getTransformXY(node) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n const matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0),\n };\n }\n return {\n x: 0,\n y: 0,\n };\n}\n\nconst matrix2d = /matrix\\((.*)\\)/;\nconst matrix3d = /matrix3d\\((.*)\\)/;\n\nexport function setTransformXY(node, xy) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n let arr;\n let match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, `matrix(${arr.join(',')})`);\n } else {\n const match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, `matrix3d(${arr.join(',')})`);\n }\n } else {\n setTransform(\n node,\n `translateX(${xy.x}px) translateY(${xy.y}px) translateZ(0)`,\n );\n }\n}\n","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top;\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n const style = elem.style;\n const left = style[LEFT];\n const rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const off = offset[key] - originalOffset[key];\n if (key === dir) {\n ret[dir] = originalStyle[dir] + off;\n } else {\n ret[dir] = originalStyle[dir] - off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${which[i]}Width`;\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\nconst domUtils = {\n getParent(element) {\n let parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n },\n};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[`scroll${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? elem.getBoundingClientRect().width\n : elem.getBoundingClientRect().height;\n const isBorderBox = isBorderBoxFn(elem);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return (\n val - getPBMWidth(elem, ['border', 'padding'], which)\n );\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which)\n : getPBMWidth(elem, ['margin'], which))\n );\n }\n return (\n cssBoxValue +\n getPBMWidth(elem, BOX_MODELS.slice(extra), which)\n );\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","import utils from './utils';\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nconst { getParent } = utils;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n 元素 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent;\n let positionStyle = utils.css(element, 'position');\n const skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html'\n ? null\n : getParent(element);\n }\n\n for (\n parent = getParent(element);\n parent && parent !== body && parent.nodeType !== 9;\n parent = getParent(parent)\n ) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexport default getOffsetParent;\n","import utils from './utils';\n\nconst { getParent } = utils;\n\nexport default function isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent = null;\n for (\n parent = getParent(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc;\n parent = getParent(parent)\n ) {\n const positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n","import utils from './utils';\nimport getOffsetParent from './getOffsetParent';\nimport isAncestorFixed from './isAncestorFixed';\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n const visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity,\n };\n let el = getOffsetParent(element);\n const doc = utils.getDocument(element);\n const win = doc.defaultView || doc.parentWindow;\n const body = doc.body;\n const documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if (\n (navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n (el !== body &&\n el !== documentElement &&\n utils.css(el, 'overflow') !== 'visible')\n ) {\n const pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(\n visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth,\n );\n visibleRect.bottom = Math.min(\n visibleRect.bottom,\n pos.top + el.clientHeight,\n );\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n let originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n const position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n let documentWidth = documentElement.scrollWidth;\n let documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n const bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n const maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n\n const maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 &&\n visibleRect.left >= 0 &&\n visibleRect.bottom > visibleRect.top &&\n visibleRect.right > visibleRect.left\n ? visibleRect\n : null;\n}\n\nexport default getVisibleRectForElement;\n","import utils from './utils';\n\nfunction getRegion(node) {\n let offset;\n let w;\n let h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n const win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win),\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexport default getRegion;\n","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n\n let x = region.left;\n let y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y,\n };\n}\n\nexport default getAlignOffset;\n","import getAlignOffset from './getAlignOffset';\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1]),\n };\n}\n\nexport default getElFuturePos;\n","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nimport utils from '../utils';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport adjustForViewport from '../adjustForViewport';\nimport getRegion from '../getRegion';\nimport getElFuturePos from '../getElFuturePos';\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left < visibleRect.left ||\n elFuturePos.left + elRegion.width > visibleRect.right\n );\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top < visibleRect.top ||\n elFuturePos.top + elRegion.height > visibleRect.bottom\n );\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left > visibleRect.right ||\n elFuturePos.left + elRegion.width < visibleRect.left\n );\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top > visibleRect.bottom ||\n elFuturePos.top + elRegion.height < visibleRect.top\n );\n}\n\nfunction flip(points, reg, map) {\n const ret = [];\n utils.each(points, p => {\n ret.push(\n p.replace(reg, m => {\n return map[m];\n }),\n );\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n let n;\n if (/%$/.test(str)) {\n n = (parseInt(str.substring(0, str.length - 1), 10) / 100) * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n let points = align.points;\n let offset = align.offset || [0, 0];\n let targetOffset = align.targetOffset || [0, 0];\n let overflow = align.overflow;\n const source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n const newOverflowCfg = {};\n let fail = 0;\n const alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n const visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n const elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n let elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n // 当前节点将要所处的区域\n let newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (\n visibleRect &&\n (overflow.adjustX || overflow.adjustY) &&\n isTgtRegionVisible\n ) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 1);\n const newTargetOffset = flipOffset(targetOffset, 1);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n utils.mix(newElRegion, elFuturePos);\n }\n const isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n const isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n let newPoints = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n }\n if (isStillFailY) {\n newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n }\n\n points = newPoints;\n\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(\n elFuturePos,\n elRegion,\n visibleRect,\n newOverflowCfg,\n );\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(\n source,\n 'width',\n utils.width(source) + newElRegion.width - elRegion.width,\n );\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(\n source,\n 'height',\n utils.height(source) + newElRegion.height - elRegion.height,\n );\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如 <div 'relative'><el absolute></div>\n utils.offset(\n source,\n {\n left: newElRegion.left,\n top: newElRegion.top,\n },\n {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake,\n },\n );\n\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n\nexport default doAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n","import utils from './utils';\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = utils.clone(elFuturePos);\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (\n overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right\n ) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (\n overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom\n ) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;\n","import doAlign from './align';\nimport getOffsetParent from '../getOffsetParent';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport getRegion from '../getRegion';\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n const visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n const targetRegion = getRegion(target);\n\n return (\n !visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom\n );\n}\n\nfunction alignElement(el, refNode, align) {\n const target = align.target || refNode;\n const refNodeRegion = getRegion(target);\n\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(\n target,\n align.overflow && align.overflow.alwaysByViewport,\n );\n\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\n\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\nexport default alignElement;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport isEqual from 'lodash/isEqual';\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.align = align;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestAlign = _forceAlignPropsRef$c.align,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point;\n cacheRef.current.align = latestAlign; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n // IE lose focus after element realign\n // We should record activeElement and restore later\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n // We only align when element is visible\n if (element && isVisible(element)) {\n result = alignElement(source, element, latestAlign);\n } else if (point) {\n result = alignPoint(source, point, latestAlign);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point) || !isEqual(cacheRef.current.align, align)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if ( /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RcAlign = /*#__PURE__*/React.forwardRef(Align);\nRcAlign.displayName = 'Align';\nexport default RcAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import utils from '../utils';\nimport doAlign from './align';\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n let pageX;\n let pageY;\n\n const doc = utils.getDocument(el);\n const win = doc.defaultView || doc.parentWindow;\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n const tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0,\n };\n\n const pointInView =\n pageX >= 0 &&\n pageX <= scrollX + viewportWidth &&\n (pageY >= 0 && pageY <= scrollY + viewportHeight);\n\n // Provide default target point\n const points = [align.points[0], 'cc'];\n\n return doAlign(el, tgtRegion, { ...align, points }, pointInView);\n}\n\nexport default alignPoint;\n","// export this package's api\nimport Align from './Align';\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nvar StatusQueue = ['measure', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n var destroyRef = useRef(false);\n\n function setStatus(nextStatus) {\n if (!destroyRef.current) {\n setInternalStatus(nextStatus);\n }\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n\n var prepareResolveRef = useRef(); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n\n if (alignedClassName !== nextAlignedClassName) {\n setAlignedClassName(nextAlignedClassName);\n }\n\n if (status === 'align') {\n // Repeat until not more align needed\n if (alignedClassName !== nextAlignedClassName) {\n Promise.resolve().then(function () {\n forceAlign();\n });\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // ======================== Motion ========================\n\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n pointerEvents: status === 'stable' ? undefined : 'none'\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"mobile\"];\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nimport MobilePopupInner from './MobilePopupInner';\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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 * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n _this.attachId = void 0;\n _this.clickOutsideHandler = void 0;\n _this.touchOutsideHandler = void 0;\n _this.contextMenuOutsideHandler1 = void 0;\n _this.contextMenuOutsideHandler2 = void 0;\n _this.mouseDownTimeout = void 0;\n _this.focusTime = void 0;\n _this.preClickTime = void 0;\n _this.preTouchTime = void 0;\n _this.delayTimer = void 0;\n _this.hasPopupMouseDown = void 0;\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n\n _this.attachParent(popupContainer);\n\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n _this.triggerContextValue = {\n onPopupMouseDown: _this.onPopupMouseDown\n };\n\n var _popupVisible;\n\n if ('popupVisible' in props) {\n _popupVisible = !!props.popupVisible;\n } else {\n _popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: _popupVisible,\n popupVisible: _popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n }, {\n key: \"setPopupVisible\",\n value:\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n\n return cacheRef.current.value;\n}","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4))) {\n return true;\n }\n\n return false;\n});","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n return root.contains(n);\n}","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}","export default (function (element) {\n if (!element) {\n return false;\n }\n\n if (element.offsetParent) {\n return true;\n }\n\n if (element.getBBox) {\n var box = element.getBBox();\n\n if (box.width || box.height) {\n return true;\n }\n }\n\n if (element.getBoundingClientRect) {\n var _box = element.getBoundingClientRect();\n\n if (_box.width || _box.height) {\n return true;\n }\n }\n\n return false;\n});","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","module.exports = require(\"regenerator-runtime\");\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","// ================== Collapse Motion ==================\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\n\nvar getRealHeight = function getRealHeight(node) {\n return {\n height: node.scrollHeight,\n opacity: 1\n };\n};\n\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node ? node.offsetHeight : 0\n };\n};\n\nvar skipOpacityTransition = function skipOpacityTransition(_, event) {\n return (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\n};\n\nvar collapseMotion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n};\n\nvar getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {\n if (transitionName !== undefined) {\n return transitionName;\n }\n\n return \"\".concat(rootPrefixCls, \"-\").concat(motion);\n};\n\nexport { getTransitionName };\nexport default collapseMotion;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from './Dom/canUseDom';\nvar Portal = /*#__PURE__*/forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var containerRef = useRef(); // Ref return nothing, only for wrapper check exist\n\n useImperativeHandle(ref, function () {\n return {};\n }); // Create container in client side with sync to avoid useEffect not get ref\n\n var initRef = useRef(false);\n\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n initRef.current = true;\n } // [Legacy] Used by `rc-trigger`\n\n\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 ? void 0 : didUpdate(props);\n });\n useEffect(function () {\n return function () {\n var _containerRef$current, _containerRef$current2;\n\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.parentNode) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? /*#__PURE__*/ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/* eslint no-console:0 */\n\nconst formatRegExp = /%[sdj%]/g;\n\nexport let warning = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (typeof console !== 'undefined' && console.warn) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(...args) {\n let i = 1;\n const f = args[0];\n const len = args.length;\n if (typeof f === 'function') {\n return f.apply(null, args.slice(1));\n }\n if (typeof f === 'string') {\n let str = String(f).replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return f;\n}\n\nfunction isNativeStringType(type) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n const results = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors) {\n results.push.apply(results, errors);\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr) {\n const ret = [];\n Object.keys(objArr).forEach(k => {\n ret.push.apply(ret, objArr[k]);\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n constructor(errors, fields) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\nexport function asyncMap(objArr, option, func, callback) {\n if (option.first) {\n const pending = new Promise((resolve, reject) => {\n const next = errors => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve();\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n let firstFields = option.firstFields || [];\n if (firstFields === true) {\n firstFields = Object.keys(objArr);\n }\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results = [];\n const pending = new Promise((resolve, reject) => {\n const next = errors => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve();\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve();\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nexport function complementError(rule) {\n return oe => {\n if (oe && oe.message) {\n oe.field = oe.field || rule.fullField;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n field: oe.field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge(target, source) {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import * as util from '../util';\n\n/**\n * Rule for validating required fields.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction required(rule, value, source, errors, options, type) {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n util.isEmptyValue(value, type || rule.type))\n ) {\n errors.push(util.format(options.messages.required, rule.fullField));\n }\n}\n\nexport default required;\n","import * as util from '../util';\nimport required from './required';\n\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n url: new RegExp(\n '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n 'i',\n ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value) {\n return types.number(value) && !types.integer(value);\n },\n array(value) {\n return Array.isArray(value);\n },\n regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value) {\n return typeof value === 'function';\n },\n email(value) {\n return (\n typeof value === 'string' &&\n !!value.match(pattern.email) &&\n value.length < 255\n );\n },\n url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\n/**\n * Rule for validating the type of a value.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n util.format(\n options.messages.types[ruleType],\n rule.fullField,\n rule.type,\n ),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n util.format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n}\n\nexport default type;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import * as util from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(util.format(options.messages.whitespace, rule.fullField));\n }\n}\n\nexport default whitespace;\n","import * as util from '../util';\n\n/**\n * Rule for validating minimum and maximum allowed values.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction range(rule, value, source, errors, options) {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(\n util.format(options.messages[key].len, rule.fullField, rule.len),\n );\n }\n } else if (min && !max && val < rule.min) {\n errors.push(\n util.format(options.messages[key].min, rule.fullField, rule.min),\n );\n } else if (max && !min && val > rule.max) {\n errors.push(\n util.format(options.messages[key].max, rule.fullField, rule.max),\n );\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n util.format(\n options.messages[key].range,\n rule.fullField,\n rule.min,\n rule.max,\n ),\n );\n }\n}\n\nexport default range;\n","import * as util from '../util';\n\nconst ENUM = 'enum';\n\n/**\n * Rule for validating a value exists in an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n util.format(\n options.messages[ENUM],\n rule.fullField,\n rule[ENUM].join(', '),\n ),\n );\n }\n}\n\nexport default enumerable;\n","import * as util from '../util';\n\n/**\n * Rule for validating a regular expression pattern.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n util.format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n util.format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n}\n\nexport default pattern;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\nfunction type(rule, value, callback, source, options) {\n const ruleType = rule.type;\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Performs validation for string types.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction string(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\nexport default string;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a function.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction method(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default method;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction number(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule/index.js';\n\n/**\n * Validates a boolean.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction boolean(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default boolean;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates the regular expression type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction regexp(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default regexp;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number is an integer.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction integer(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default integer;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a number is a floating point number.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction floatFn(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default floatFn;\n","import rules from '../rule/index';\nimport { isEmptyValue } from '../util';\n/**\n * Validates an array.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction array(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default array;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates an object.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction object(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default object;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum';\n\n/**\n * Validates an enumerable list.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default enumerable;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Validates a regular expression pattern.\n *\n * Performs validation when a rule only contains\n * a pattern property but is not declared as a string type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction pattern(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n}\n\nexport default pattern;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\nfunction date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n}\n\nexport default date;\n","import rules from '../rule/index.js';\n\nfunction required(rule, value, callback, source, options) {\n const errors = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n}\n\nexport default required;\n","import rules from '../rule/index.js';\nimport { isEmptyValue } from '../util';\n\n/**\n * Performs validation for any type.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param callback The callback function.\n * @param source The source object being validated.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nfunction any(rule, value, callback, source, options) {\n const errors = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n}\n\nexport default any;\n","export function newMessages() {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nfunction Schema(descriptor) {\n this.rules = null;\n this._messages = defaultMessages;\n this.define(descriptor);\n}\n\nSchema.prototype = {\n messages(messages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n },\n define(rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n let z;\n let item;\n for (z in rules) {\n if (rules.hasOwnProperty(z)) {\n item = rules[z];\n this.rules[z] = Array.isArray(item) ? item : [item];\n }\n }\n },\n validate(source_, o = {}, oc = () => {}) {\n let source = source_;\n let options = o;\n let callback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback();\n }\n return Promise.resolve();\n }\n\n function complete(results) {\n let i;\n let errors = [];\n let fields = {};\n\n function add(e) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n errors = null;\n fields = null;\n } else {\n fields = convertFieldsError(errors);\n }\n callback(errors, fields);\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n let arr;\n let value;\n const series = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n arr = this.rules[z];\n value = source[z];\n arr.forEach(r => {\n let rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n rule.validator = this.getValidationMethod(rule);\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n if (!rule.validator) {\n return;\n }\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullfield(key, schema) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n };\n }\n\n function cb(e = []) {\n let errors = e;\n if (!Array.isArray(errors)) {\n errors = [errors];\n }\n if (!options.suppressWarning && errors.length) {\n Schema.warning('async-validator:', errors);\n }\n if (errors.length && rule.message !== undefined) {\n errors = [].concat(rule.message);\n }\n\n errors = errors.map(complementError(rule));\n\n if (options.first && errors.length) {\n errorFields[rule.field] = 1;\n return doIt(errors);\n }\n if (!deep) {\n doIt(errors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n errors = [].concat(rule.message).map(complementError(rule));\n } else if (options.error) {\n errors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(errors);\n }\n\n let fieldsSchema = {};\n if (rule.defaultField) {\n for (const k in data.value) {\n if (data.value.hasOwnProperty(k)) {\n fieldsSchema[k] = rule.defaultField;\n }\n }\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n for (const f in fieldsSchema) {\n if (fieldsSchema.hasOwnProperty(f)) {\n const fieldSchema = Array.isArray(fieldsSchema[f])\n ? fieldsSchema[f]\n : [fieldsSchema[f]];\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n }\n }\n const schema = new Schema(fieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (errors && errors.length) {\n finalErrors.push(...errors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n res = rule.validator(rule, data.value, cb, data.source, options);\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(rule.message || `${rule.field} fails`);\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && res.then) {\n res.then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n );\n },\n getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n },\n getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || false;\n },\n};\n\nSchema.register = function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n};\n\nSchema.warning = warning;\n\nSchema.messages = defaultMessages;\n\nSchema.validators = validators;\n\nexport default Schema;\n","import * as React from 'react';\n\nvar Content = function Content(props) {\n var overlay = props.overlay,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof overlay === 'function' ? overlay() : overlay);\n};\n\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n var _props$arrowContent = props.arrowContent,\n arrowContent = _props$arrowContent === void 0 ? null : _props$arrowContent,\n overlay = props.overlay,\n id = props.id;\n return [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(Content, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlay: overlay,\n overlayInnerStyle: overlayInnerStyle\n })];\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nexport default Tooltip;","import * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS'; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\n\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n setCallbacks: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc\n };\n }\n});\nexport default Context;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n\n return Array.isArray(value) ? value : [value];\n}","export default function get(entity, path) {\n var current = entity;\n\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n current = current[path[i]];\n }\n\n return current;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from './get';\n\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n\n var clone;\n\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n } // Delete prop if `removeIfUndefined` and value is undefined\n\n\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n\n return clone;\n}\n\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n\n return internalSet(entity, paths, value, removeIfUndefined);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\n\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function getValue(store, namePath) {\n var value = get(store, namePath);\n return value;\n}\nexport function setValue(store, namePath, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var newStore = set(store, namePath, value, removeIfUndefined);\n return newStore;\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\n\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\n\n\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n\n if (!values) {\n return newStore;\n }\n\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key]; // If both are object (but target is not array), we use recursion to set deep value\n\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : value;\n });\n return newStore;\n}\n\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n\n if (!source && target || source && !target) {\n return false;\n }\n\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(_toConsumableArray(sourceKeys), _toConsumableArray(targetKeys)));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n\n if (event && event.target && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\n\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n\n return array;\n}","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { setValues } from './valueUtil';\nimport { defaultValidateMessages } from './messages'; // Remove incorrect original ts define\n\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\n\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\n/**\n * We use `async-validator` to validate rules. So have to hot replace the message with validator.\n * { required: '${name} is required' } => { required: () => 'field is required' }\n */\n\n\nfunction convertMessages(messages, name, rule, messageVariables) {\n var kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n });\n\n var replaceFunc = function replaceFunc(template, additionalKV) {\n return function () {\n return replaceMessage(template, _objectSpread(_objectSpread({}, kv), additionalKV));\n };\n };\n /* eslint-disable no-param-reassign */\n\n\n function fillTemplate(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Object.keys(source).forEach(function (ruleName) {\n var value = source[ruleName];\n\n if (typeof value === 'string') {\n target[ruleName] = replaceFunc(value, messageVariables);\n } else if (value && _typeof(value) === 'object') {\n target[ruleName] = {};\n fillTemplate(value, target[ruleName]);\n } else {\n target[ruleName] = value;\n }\n });\n return target;\n }\n /* eslint-enable */\n\n\n return fillTemplate(setValues({}, defaultValidateMessages, messages));\n}\n\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\n\n\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, subRuleField, validator, messages, result, subResults;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // We should special handle array validate\n\n subRuleField = null;\n\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = convertMessages(options.validateMessages, name, cloneRule, messageVariables);\n validator.messages(messages);\n result = [];\n _context2.prev = 7;\n _context2.next = 10;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n\n case 10:\n _context2.next = 15;\n break;\n\n case 12:\n _context2.prev = 12;\n _context2.t0 = _context2[\"catch\"](7);\n\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref2, index) {\n var message = _ref2.message;\n return (// Wrap ReactNode with `key`\n\n /*#__PURE__*/\n React.isValidElement(message) ? /*#__PURE__*/React.cloneElement(message, {\n key: \"error_\".concat(index)\n }) : message\n );\n });\n } else {\n console.error(_context2.t0);\n result = [messages.default()];\n }\n\n case 15:\n if (!(!result.length && subRuleField)) {\n _context2.next = 20;\n break;\n }\n\n _context2.next = 18;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n\n case 18:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n\n case 20:\n return _context2.abrupt(\"return\", result);\n\n case 21:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[7, 12]]);\n }));\n return _validateRule.apply(this, arguments);\n}\n\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.'); // Fill rule with context\n\n var filledRules = rules.map(function (currentRule) {\n var originValidatorFunc = currentRule.validator;\n\n if (!originValidatorFunc) {\n return currentRule;\n }\n\n return _objectSpread(_objectSpread({}, currentRule), {}, {\n validator: function validator(rule, val, callback) {\n var hasPromise = false; // Wrap callback only accept when promise not provided\n\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n }; // Get promise\n\n\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n }\n });\n });\n var summaryPromise;\n\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {\n var i, errors;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 11;\n break;\n }\n\n _context.next = 4;\n return validateRule(name, value, filledRules[i], options, messageVariables);\n\n case 4:\n errors = _context.sent;\n\n if (!errors.length) {\n _context.next = 8;\n break;\n }\n\n reject(errors);\n return _context.abrupt(\"return\");\n\n case 8:\n i += 1;\n _context.next = 1;\n break;\n\n case 11:\n /* eslint-enable */\n resolve([]);\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x6, _x7) {\n return _ref.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables);\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n if (!errors.length) {\n return [];\n }\n\n return Promise.reject(errors);\n });\n } // Internal catch error to avoid console error log.\n\n\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\n\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rulePromises) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref3;\n\n var errors = (_ref3 = []).concat.apply(_ref3, _toConsumableArray(errorsList));\n\n return errors;\n }));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\n\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (errors) {\n if (errors.length) {\n resolve(errors);\n }\n\n count += 1;\n\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\n\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n\n return prevValue !== nextValue;\n} // We use Class instead of Hooks here since it will cost much code by using Hooks.\n\n\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n\n var _super = _createSuper(Field);\n\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n\n _classCallCheck(this, Field);\n\n _this = _super.call(this, props);\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n\n _this.touched = false;\n /** Mark when touched & validated. Currently only used for `dependencies` */\n\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = [];\n\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n\n _this.cancelRegisterFunc = null;\n }; // ================================== Utils ==================================\n\n\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n\n return rule;\n });\n };\n\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n }; // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n\n\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n\n var namePath = _this.getNamePath();\n\n var prevValue = _this.getValue(prevStore);\n\n var curValue = _this.getValue(store);\n\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath); // `setFieldsValue` is a quick access to update related status\n\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = [];\n }\n\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = [];\n\n if (onReset) {\n onReset();\n }\n\n _this.refresh();\n\n return;\n }\n\n break;\n\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n\n if ('errors' in data) {\n _this.errors = data.errors || [];\n }\n\n _this.dirty = true;\n\n _this.reRender();\n\n return;\n } // Handle update by `setField` with `shouldUpdate`\n\n\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath); // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n\n return;\n }\n\n break;\n }\n\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example <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 // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n\n var currentValue = _this.getValue(); // Force change to async to avoid rule OOD under renderProps field\n\n\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n\n var filteredRules = _this.getRules();\n\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n\n if (!validateTrigger) {\n return true;\n }\n\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var errors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (_this.validatePromise === rootPromise) {\n _this.validatePromise = null;\n _this.errors = errors;\n\n _this.reRender();\n }\n });\n return promise;\n });\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = []; // Force trigger re-render since we need sync renderProps with new meta\n\n _this.reRender();\n\n return rootPromise;\n };\n\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n\n _this.isFieldDirty = function () {\n return _this.dirty;\n };\n\n _this.getErrors = function () {\n return _this.errors;\n };\n\n _this.isListField = function () {\n return _this.props.isListField;\n };\n\n _this.isList = function () {\n return _this.props.isList;\n };\n\n _this.isPreserve = function () {\n return _this.props.preserve;\n }; // ============================= Child Component =============================\n\n\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n name: _this.getNamePath()\n };\n return meta;\n }; // Only return validate child node. If invalidate, will do nothing about field.\n\n\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n } // Filed element only\n\n\n var childList = toChildrenArray(children);\n\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n\n return {\n child: childList[0],\n isFunction: false\n };\n }; // ============================== Field Control ==============================\n\n\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n\n var namePath = _this.getNamePath();\n\n return getValue(store || getFieldsValue(true), namePath);\n };\n\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n\n var namePath = _this.getNamePath();\n\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n\n var value = _this.getValue();\n\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n }; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n var originTriggerFunc = childProps[trigger];\n\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value)); // Add trigger\n\n\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n var newValue;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n }; // Add validateTrigger\n\n\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n } // Always use latest rules\n\n\n var rules = _this.props.rules;\n\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n }; // Register on init\n\n\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n\n initEntityValue(_assertThisInitialized(_this));\n }\n\n return _this;\n }\n\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true; // Register on init\n\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n\n this.cancelRegisterFunc = registerField(this);\n } // One more render for component in case fields not ready\n\n\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction; // Not need to `cloneElement` since user can handle this in render function self\n\n\n var returnChildNode;\n\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n\n return Field;\n}(React.Component);\n\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\n\nfunction WrapperField(_ref4) {\n var name = _ref4.name,\n restProps = _objectWithoutProperties(_ref4, [\"name\"]);\n\n var fieldContext = React.useContext(FieldContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n } // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n\n\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\n\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\n\nvar List = function List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current; // User should not pass `children` as other type.\n\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n\n var parentPrefixName = getNamePath(context.prefixName) || [];\n var prefixName = [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n\n if (source === 'internal') {\n return false;\n }\n\n return prevValue !== nextValue;\n };\n\n return /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n })\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n\n\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n\n if (indexSet.size <= 0) {\n return;\n }\n\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n }); // Trigger store change\n\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n\n var newValue = getNewValue(); // Do not handle out of range\n\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n\n keyManager.keys = _move(keyManager.keys, from, to); // Trigger store change\n\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n\n if (!Array.isArray(listValue)) {\n listValue = [];\n\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n }));\n};\n\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\n\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n }) // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\n\n\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n\n this.kvs = new Map();\n }\n\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n } // Since we only use this in test, let simply realize this\n\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n\n return NameMap;\n}();\n\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport NameMap from './utils/NameMap';\nimport { defaultValidateMessages } from './utils/messages';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = function FormStore(forceRootUpdate) {\n var _this = this;\n\n _classCallCheck(this, FormStore);\n\n this.formHooked = false;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n getInternalHooks: _this.getInternalHooks\n };\n }; // ======================== Internal Hooks ========================\n\n\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve\n };\n }\n\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n /**\n * First time `setInitialValues` should update store with initial value\n */\n\n\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n\n if (init) {\n _this.store = setValues({}, initialValues, _this.store);\n }\n };\n\n this.getInitialValue = function (namePath) {\n return getValue(_this.initialValues, namePath);\n };\n\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n }; // ========================== Dev Warning =========================\n\n\n this.timeoutId = null;\n\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n }; // ============================ Fields ============================\n\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n\n\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!pure) {\n return _this.fieldEntities;\n }\n\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n\n return cache;\n };\n\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n\n var cache = _this.getFieldsMap(true);\n\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath(); // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n\n if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors()\n };\n }\n\n return {\n name: getNamePath(nameList[index]),\n errors: []\n };\n });\n };\n\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n\n var namePath = getNamePath(name);\n\n var fieldError = _this.getFieldsError([namePath])[0];\n\n return fieldError.errors;\n };\n\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n\n var fieldEntities = _this.getFieldEntities(true);\n\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n }; // ===== Will get fully compare when not config namePathList =====\n\n\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n } // Generate a nest tree for validate\n\n\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath(); // Find matched entity and put into list\n\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n }); // Check if NameMap value is touched\n\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n\n var namePathListEntities = map.map(function (_ref) {\n var value = _ref.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsTouched([name]);\n };\n\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n\n var fieldEntities = _this.getFieldEntities();\n\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n\n return _this.isFieldsValidating([name]);\n };\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n\n\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n\n var fieldEntities = _this.getFieldEntities(true);\n\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath(); // Record only if has `initialValue`\n\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n }); // Reset\n\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n\n var formInitialValue = _this.getInitialValue(namePath);\n\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath); // Set `initialValue`\n\n\n if (!info.skipExist || originValue === undefined) {\n _this.store = setValue(_this.store, namePath, _toConsumableArray(records)[0].value);\n }\n }\n }\n }\n });\n };\n\n var requiredFieldEntities;\n\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n\n if (records) {\n var _requiredFieldEntitie;\n\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n\n resetWithFields(requiredFieldEntities);\n };\n\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (!nameList) {\n _this.store = setValues({}, _this.initialValues);\n\n _this.resetWithFieldInitialValue();\n\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n\n return;\n } // Reset by `nameList`\n\n\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n\n _this.store = setValue(_this.store, namePath, initialValue);\n });\n\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n };\n\n this.setFields = function (fields) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n errors = fieldData.errors,\n data = _objectWithoutProperties(fieldData, [\"name\", \"errors\"]);\n\n var namePath = getNamePath(name); // Value\n\n if ('value' in data) {\n _this.store = setValue(_this.store, namePath, data.value);\n }\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n };\n\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n }; // =========================== Observer ===========================\n\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n\n\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n\n if (prevValue === undefined) {\n _this.store = setValue(_this.store, namePath, initialValue);\n }\n }\n };\n\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity); // Set initial values\n\n\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n } // un-register field callback\n\n\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n }); // Clean up store value if not preserve\n\n var mergedPreserve = preserve !== undefined ? preserve : _this.preserve;\n\n if (mergedPreserve === false && (!isListField || subNamePath.length > 1)) {\n var namePath = entity.getNamePath();\n var defaultValue = isListField ? undefined : getValue(_this.initialValues, namePath);\n\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (// Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n _this.store = setValue(_this.store, namePath, defaultValue, true);\n }\n }\n };\n };\n\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n\n _this.updateValue(namePath, value);\n\n break;\n }\n\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n\n break;\n }\n\n default: // Currently we don't have other action. Do nothing.\n\n }\n };\n\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n\n _this.getFieldEntities().forEach(function (_ref2) {\n var onStoreChange = _ref2.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.store = setValue(_this.store, namePath, value);\n\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n }); // Notify dependencies children with parent update\n // We need delay to trigger validate in case Field is under render props\n\n\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n }); // trigger callback function\n\n\n var onValuesChange = _this.callbacks.onValuesChange;\n\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n }; // Let all child Field get update.\n\n\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n\n var prevStore = _this.store;\n\n if (store) {\n _this.store = setValues(_this.store, store);\n }\n\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n };\n\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n\n fillChildren(rootNamePath);\n return childrenFields;\n };\n\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n\n\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref3) {\n var name = _ref3.name,\n errors = _ref3.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n\n var changedFields = fields.filter(function (_ref4) {\n var fieldName = _ref4.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n }; // =========================== Validate ===========================\n\n\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : []; // Collect result in promise list\n\n var promiseList = [];\n\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n /**\n * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n\n\n if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n\n if ( // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n } // Skip if without rule\n\n\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n\n var fieldNamePath = field.getNamePath(); // Add field validate rule in to promise list\n\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options)); // Wrap promise with field\n\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: []\n };\n }).catch(function (errors) {\n return Promise.reject({\n name: fieldNamePath,\n errors: errors\n });\n }));\n }\n });\n\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise; // Notify fields with rule that validate has finished and need update\n\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref5) {\n var name = _ref5.name;\n return name;\n });\n\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n }); // Do not throw in console\n\n returnPromise.catch(function (e) {\n return e;\n });\n return returnPromise;\n }; // ============================ Submit ============================\n\n\n this.submit = function () {\n _this.warningUnhooked();\n\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n\n this.forceRootUpdate = forceRootUpdate;\n};\n\nfunction useForm(form) {\n var formRef = React.useRef();\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n\n return [formRef.current];\n}\n\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n\n if (count > 0) {\n return;\n }\n\n if (hasError) {\n reject(results);\n }\n\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\n\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\n\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\n\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"]);\n\n var formContext = React.useContext(FormContext); // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve; // Pass ref with form instance\n\n\n React.useImperativeHandle(ref, function () {\n return formInstance;\n }); // Register form into Context\n\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]); // Pass props to store\n\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve); // Set initial value, init store value when first mount\n\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n\n if (!mountRef.current) {\n mountRef.current = true;\n } // Prepare children by `children` type\n\n\n var childrenNode = children;\n var childrenRenderProps = typeof children === 'function';\n\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } // Not use subscribe when using render props\n\n\n useSubscribe(!childrenRenderProps); // Listen if fields provided. We use ref to save prev data here to avoid additional render\n\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n\n if (Component === false) {\n return wrapperNode;\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\n\nexport default Form;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nexport { Field, List, useForm, FormProvider };\nexport default RefForm;","import * as React from 'react';\nimport omit from \"rc-util/es/omit\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nexport var FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: function itemRef() {}\n});\nexport var FormItemContext = /*#__PURE__*/React.createContext({\n updateItemErrors: function updateItemErrors() {}\n});\nexport var FormProvider = function FormProvider(props) {\n var providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, providerProps);\n};\nexport var FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n// add support for visualViewport object currently implemented in chrome\ninterface visualViewport {\n height: number\n width: number\n}\n\ntype ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest'\n// This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\ntype ScrollMode = 'always' | 'if-needed'\n// New option that skips auto-scrolling all nodes with overflow: hidden set\n// See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\ntype SkipOverflowHiddenElements = boolean\n\ninterface Options {\n block?: ScrollLogicalPosition\n inline?: ScrollLogicalPosition\n scrollMode?: ScrollMode\n boundary?: CustomScrollBoundary\n skipOverflowHiddenElements?: SkipOverflowHiddenElements\n}\n\n// Custom behavior, not in any spec\ntype CustomScrollBoundaryCallback = (parent: Element) => boolean\ntype CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null\ninterface CustomScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nfunction isElement(el: any): el is Element {\n return typeof el === 'object' && el != null && el.nodeType === 1\n}\n\nfunction canOverflow(\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nfunction getFrameElement(el: Element) {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nfunction isHiddenByFrame(el: Element): boolean {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nfunction isScrollable(el: Element, skipOverflowHiddenElements?: boolean) {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nfunction alignNearest(\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nexport default (target: Element, options: Options): CustomScrollAction[] => {\n //TODO: remove this hack when microbundle will support typescript >= 4.0\n const windowWithViewport = (window as unknown) as Window & {\n visualViewport: visualViewport\n }\n\n const {\n scrollMode,\n block,\n inline,\n boundary,\n skipOverflowHiddenElements,\n } = options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor: Element | null = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = cursor.parentElement\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor != null &&\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.width\n : innerWidth\n const viewportHeight = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.height\n : innerHeight\n\n // Newer browsers supports scroll[X|Y], page[X|Y]Offset is\n const viewportX = window.scrollX || pageXOffset\n const viewportY = window.scrollY || pageYOffset\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop\n : block === 'end'\n ? targetBottom\n : targetTop + targetHeight / 2 // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2\n : inline === 'end'\n ? targetRight\n : targetLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: CustomScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const {\n height,\n width,\n top,\n right,\n bottom,\n left,\n } = frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n viewportY,\n viewportY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n viewportY + targetBlock,\n viewportY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n viewportX,\n viewportX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n viewportX + targetInline,\n viewportX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + viewportY)\n inlineScroll = Math.max(0, inlineScroll + viewportX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll = Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll,\n frame.scrollHeight - height + scrollbarHeight\n )\n )\n inlineScroll = Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll,\n frame.scrollWidth - width + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\n}\n","import compute from 'compute-scroll-into-view';\n\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\n\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\n\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n\n if (isOptionsObject(options)) {\n return options;\n }\n\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\n\nfunction scrollIntoView(target, options) {\n var targetIsDetached = !target.ownerDocument.documentElement.contains(target);\n\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(targetIsDetached ? [] : compute(target, options));\n }\n\n if (targetIsDetached) {\n return;\n }\n\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\n\nexport default scrollIntoView;","export function toArray(candidate) {\n if (candidate === undefined || candidate === false) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}\nexport function getFieldId(namePath, formName) {\n if (!namePath.length) return undefined;\n var mergedId = namePath.join('_');\n return formName ? \"\".concat(formName, \"_\").concat(mergedId) : mergedId;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useForm as useRcForm } from 'rc-field-form';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { toArray, getFieldId } from '../util';\n\nfunction toNamePathStr(name) {\n var namePath = toArray(name);\n return namePath.join('_');\n}\n\nexport default function useForm(form) {\n var _useRcForm = useRcForm(),\n _useRcForm2 = _slicedToArray(_useRcForm, 1),\n rcForm = _useRcForm2[0];\n\n var itemsRef = React.useRef({});\n var wrapForm = React.useMemo(function () {\n return form !== null && form !== void 0 ? form : _extends(_extends({}, rcForm), {\n __INTERNAL__: {\n itemRef: function itemRef(name) {\n return function (node) {\n var namePathStr = toNamePathStr(name);\n\n if (node) {\n itemsRef.current[namePathStr] = node;\n } else {\n delete itemsRef.current[namePathStr];\n }\n };\n }\n },\n scrollToField: function scrollToField(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var namePath = toArray(name);\n var fieldId = getFieldId(namePath, wrapForm.__INTERNAL__.name);\n var node = fieldId ? document.getElementById(fieldId) : null;\n\n if (node) {\n scrollIntoView(node, _extends({\n scrollMode: 'if-needed',\n block: 'nearest'\n }, options));\n }\n },\n getFieldInstance: function getFieldInstance(name) {\n var namePathStr = toNamePathStr(name);\n return itemsRef.current[namePathStr];\n }\n });\n }, [form, rcForm]);\n return [wrapForm];\n}","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nexport var canUseDocElement = function canUseDocElement() {\n return canUseDom() && window.document.documentElement;\n};\nexport var isStyleSupport = function isStyleSupport(styleName) {\n if (canUseDocElement()) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n\n return false;\n};\nvar flexGapSupported;\nexport var detectFlexGapSupported = function detectFlexGapSupported() {\n if (!canUseDocElement()) {\n return false;\n }\n\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n } // create flex container with row-gap set\n\n\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px'; // create two, elements inside it\n\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div')); // append to the DOM (needed to obtain scrollHeight)\n\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n\n document.body.removeChild(flex);\n return flexGapSupported;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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 { useMemo } from 'react';\nimport classNames from 'classnames';\nimport FieldForm, { List } from 'rc-field-form';\nimport { ConfigContext } from '../config-provider';\nimport { FormContext } from './context';\nimport useForm from './hooks/useForm';\nimport SizeContext, { SizeContextProvider } from '../config-provider/SizeContext';\n\nvar InternalForm = function InternalForm(props, ref) {\n var _classNames;\n\n var contextSize = React.useContext(SizeContext);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n contextForm = _React$useContext.form;\n\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n _props$size = props.size,\n size = _props$size === void 0 ? contextSize : _props$size,\n form = props.form,\n colon = props.colon,\n labelAlign = props.labelAlign,\n labelCol = props.labelCol,\n wrapperCol = props.wrapperCol,\n hideRequiredMark = props.hideRequiredMark,\n _props$layout = props.layout,\n layout = _props$layout === void 0 ? 'horizontal' : _props$layout,\n scrollToFirstError = props.scrollToFirstError,\n requiredMark = props.requiredMark,\n onFinishFailed = props.onFinishFailed,\n name = props.name,\n restFormProps = __rest(props, [\"prefixCls\", \"className\", \"size\", \"form\", \"colon\", \"labelAlign\", \"labelCol\", \"wrapperCol\", \"hideRequiredMark\", \"layout\", \"scrollToFirstError\", \"requiredMark\", \"onFinishFailed\", \"name\"]);\n\n var mergedRequiredMark = useMemo(function () {\n if (requiredMark !== undefined) {\n return requiredMark;\n }\n\n if (contextForm && contextForm.requiredMark !== undefined) {\n return contextForm.requiredMark;\n }\n\n if (hideRequiredMark) {\n return false;\n }\n\n return true;\n }, [hideRequiredMark, requiredMark, contextForm]);\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n var formClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(layout), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hide-required-mark\"), mergedRequiredMark === false), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _classNames), className);\n\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n wrapForm = _useForm2[0];\n\n var __INTERNAL__ = wrapForm.__INTERNAL__;\n __INTERNAL__.name = name;\n var formContextValue = useMemo(function () {\n return {\n name: name,\n labelAlign: labelAlign,\n labelCol: labelCol,\n wrapperCol: wrapperCol,\n vertical: layout === 'vertical',\n colon: colon,\n requiredMark: mergedRequiredMark,\n itemRef: __INTERNAL__.itemRef\n };\n }, [name, labelAlign, labelCol, wrapperCol, layout, colon, mergedRequiredMark]);\n React.useImperativeHandle(ref, function () {\n return wrapForm;\n });\n\n var onInternalFinishFailed = function onInternalFinishFailed(errorInfo) {\n onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);\n var defaultScrollToFirstError = {\n block: 'nearest'\n };\n\n if (scrollToFirstError && errorInfo.errorFields.length) {\n if (_typeof(scrollToFirstError) === 'object') {\n defaultScrollToFirstError = scrollToFirstError;\n }\n\n wrapForm.scrollToField(errorInfo.errorFields[0].name, defaultScrollToFirstError);\n }\n };\n\n return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, /*#__PURE__*/React.createElement(FieldForm, _extends({\n id: name\n }, restFormProps, {\n name: name,\n onFinishFailed: onInternalFinishFailed,\n form: wrapForm,\n className: formClassName\n }))));\n};\n\nvar Form = /*#__PURE__*/React.forwardRef(InternalForm);\nexport { useForm, List };\nexport default Form;","import { createContext } from 'react';\nvar RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport var responsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\nvar subscribers = new Map();\nvar subUid = -1;\nvar screens = {};\nvar responsiveObserve = {\n matchHandlers: {},\n dispatch: function dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(function (func) {\n return func(screens);\n });\n return subscribers.size >= 1;\n },\n subscribe: function subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe: function unsubscribe(token) {\n subscribers[\"delete\"](token);\n if (!subscribers.size) this.unregister();\n },\n unregister: function unregister() {\n var _this = this;\n\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var handler = _this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register: function register() {\n var _this2 = this;\n\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n\n _this2.dispatch(_extends(_extends({}, screens), _defineProperty({}, screen, matches)));\n };\n\n var mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n _this2.matchHandlers[matchMediaQuery] = {\n mql: mql,\n listener: listener\n };\n listener(mql);\n });\n }\n};\nexport default responsiveObserve;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (function () {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n flexible = _React$useState2[0],\n setFlexible = _React$useState2[1];\n\n React.useEffect(function () {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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 classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nimport { tuple } from '../_util/type';\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nvar RowAligns = tuple('top', 'middle', 'bottom', 'stretch');\nvar RowJustify = tuple('start', 'end', 'center', 'space-around', 'space-between');\nvar Row = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var customizePrefixCls = props.prefixCls,\n justify = props.justify,\n align = props.align,\n className = props.className,\n style = props.style,\n children = props.children,\n _props$gutter = props.gutter,\n gutter = _props$gutter === void 0 ? 0 : _props$gutter,\n wrap = props.wrap,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _React$useState = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n screens = _React$useState2[0],\n setScreens = _React$useState2[1];\n\n var supportFlexGap = useFlexGapSupport();\n var gutterRef = React.useRef(gutter); // ================================== Effect ==================================\n\n React.useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (screen) {\n var currentGutter = gutterRef.current || 0;\n\n if (!Array.isArray(currentGutter) && _typeof(currentGutter) === 'object' || Array.isArray(currentGutter) && (_typeof(currentGutter[0]) === 'object' || _typeof(currentGutter[1]) === 'object')) {\n setScreens(screen);\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []); // ================================== Render ==================================\n\n var getGutter = function getGutter() {\n var results = [0, 0];\n var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, 0];\n normalizedGutter.forEach(function (g, index) {\n if (_typeof(g) === 'object') {\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g || 0;\n }\n });\n return results;\n };\n\n var prefixCls = getPrefixCls('row', customizePrefixCls);\n var gutters = getGutter();\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-no-wrap\"), wrap === false), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(justify), justify), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(align), align), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className); // Add gutter related style\n\n var rowStyle = {};\n var horizontalGutter = gutters[0] > 0 ? gutters[0] / -2 : undefined;\n var verticalGutter = gutters[1] > 0 ? gutters[1] / -2 : undefined;\n\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n var _gutters = _slicedToArray(gutters, 2);\n\n rowStyle.rowGap = _gutters[1];\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n\n var rowContext = React.useMemo(function () {\n return {\n gutter: gutters,\n wrap: wrap,\n supportFlexGap: supportFlexGap\n };\n }, [gutters, wrap, supportFlexGap]);\n return /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes,\n style: _extends(_extends({}, rowStyle), style),\n ref: ref\n }), children));\n});\nRow.displayName = 'Row';\nexport default Row;","// This icon file is generated automatically.\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexport default QuestionCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport QuestionCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/QuestionCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: QuestionCircleOutlinedSvg\n }));\n};\n\nQuestionCircleOutlined.displayName = 'QuestionCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\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 classNames from 'classnames';\nimport RowContext from './RowContext';\nimport { ConfigContext } from '../config-provider';\n\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return \"\".concat(flex, \" \").concat(flex, \" auto\");\n }\n\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return \"0 0 \".concat(flex);\n }\n\n return flex;\n}\n\nvar sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nvar Col = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _React$useContext2 = React.useContext(RowContext),\n gutter = _React$useContext2.gutter,\n wrap = _React$useContext2.wrap,\n supportFlexGap = _React$useContext2.supportFlexGap;\n\n var customizePrefixCls = props.prefixCls,\n span = props.span,\n order = props.order,\n offset = props.offset,\n push = props.push,\n pull = props.pull,\n className = props.className,\n children = props.children,\n flex = props.flex,\n style = props.style,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n\n var prefixCls = getPrefixCls('col', customizePrefixCls);\n var sizeClassObj = {};\n sizes.forEach(function (size) {\n var _extends2;\n\n var sizeProps = {};\n var propSize = props[size];\n\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (_typeof(propSize) === 'object') {\n sizeProps = propSize || {};\n }\n\n delete others[size];\n sizeClassObj = _extends(_extends({}, sizeClassObj), (_extends2 = {}, _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-\").concat(sizeProps.span), sizeProps.span !== undefined), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-order-\").concat(sizeProps.order), sizeProps.order || sizeProps.order === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-offset-\").concat(sizeProps.offset), sizeProps.offset || sizeProps.offset === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-push-\").concat(sizeProps.push), sizeProps.push || sizeProps.push === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-\").concat(size, \"-pull-\").concat(sizeProps.pull), sizeProps.pull || sizeProps.pull === 0), _defineProperty(_extends2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _extends2));\n });\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(span), span !== undefined), _defineProperty(_classNames, \"\".concat(prefixCls, \"-order-\").concat(order), order), _defineProperty(_classNames, \"\".concat(prefixCls, \"-offset-\").concat(offset), offset), _defineProperty(_classNames, \"\".concat(prefixCls, \"-push-\").concat(push), push), _defineProperty(_classNames, \"\".concat(prefixCls, \"-pull-\").concat(pull), pull), _classNames), className, sizeClassObj);\n var mergedStyle = {}; // Horizontal gutter use padding\n\n if (gutter && gutter[0] > 0) {\n var horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n } // Vertical gutter use padding when gap not support\n\n\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n var verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n\n if (flex) {\n mergedStyle.flex = parseFlex(flex); // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n\n if (flex === 'auto' && wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n style: _extends(_extends({}, mergedStyle), style),\n className: classes,\n ref: ref\n }), children);\n});\nCol.displayName = 'Col';\nexport default Col;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { placements } from \"rc-tooltip/es/placements\";\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 4 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,\n autoAdjustOverflow = config.autoAdjustOverflow;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = config.arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import { tuple } from './type';\nexport var PresetStatusColorTypes = tuple('success', 'processing', 'error', 'default', 'warning'); // eslint-disable-next-line import/prefer-default-export\n\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/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 RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport classNames from 'classnames';\nimport getPlacements from './placements';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes } from '../_util/colors';\nimport { getTransitionName } from '../_util/motion';\n\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n\n var omitted = _extends({}, obj);\n\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\n\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\")); // Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\n\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n\n if ((elementType.__ANT_BUTTON === true || elementType.__ANT_SWITCH === true || elementType.__ANT_CHECKBOX === true || element.type === 'button') && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : null\n });\n\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n\n var child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, \"\".concat(prefixCls, \"-disabled-compatible-wrapper\"))\n }, child);\n }\n\n return element;\n}\n\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames2;\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 _useMergedState = useMergedState(false, {\n value: props.visible,\n defaultValue: props.defaultVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n visible = _useMergedState2[0],\n setVisible = _useMergedState2[1];\n\n var isNoTitle = function isNoTitle() {\n var title = props.title,\n overlay = props.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n var onVisibleChange = function onVisibleChange(vis) {\n var _a;\n\n setVisible(isNoTitle() ? false : vis);\n\n if (!isNoTitle()) {\n (_a = props.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n }\n };\n\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n arrowPointAtCenter = props.arrowPointAtCenter,\n autoAdjustOverflow = props.autoAdjustOverflow;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n }; // 动态设置动画点\n\n\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements(); // 当前返回的位置\n\n var placement = Object.keys(placements).filter(function (key) {\n return placements[key].points[0] === align.points[0] && placements[key].points[1] === align.points[1];\n })[0];\n\n if (!placement) {\n return;\n } // 根据当前坐标设置动画点\n\n\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n\n if (title === 0) {\n return title;\n }\n\n return overlay || title || '';\n };\n\n var getPopupContainer = props.getPopupContainer,\n otherProps = __rest(props, [\"getPopupContainer\"]);\n\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getTooltipContainer = props.getTooltipContainer,\n overlayClassName = props.overlayClassName,\n color = props.color,\n overlayInnerStyle = props.overlayInnerStyle,\n children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var tempVisible = visible; // Hide tooltip when there is no title\n\n if (!('visible' in props) && isNoTitle()) {\n tempVisible = false;\n }\n\n var child = getDisabledCompatibleChildren(isValidElement(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = classNames(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true));\n var customOverlayClassName = classNames(overlayClassName, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)), _classNames2));\n var formattedOverlayInnerStyle = overlayInnerStyle;\n var arrowContentStyle;\n\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = _extends(_extends({}, overlayInnerStyle), {\n background: color\n });\n arrowContentStyle = {\n background: color\n };\n }\n\n return /*#__PURE__*/React.createElement(RcTooltip, _extends({}, otherProps, {\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempVisible,\n onVisibleChange: onVisibleChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-arrow-content\"),\n style: arrowContentStyle\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n }\n }), tempVisible ? cloneElement(child, {\n className: childCls\n }) : child);\n});\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n placement: 'top',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n arrowPointAtCenter: false,\n autoAdjustOverflow: true\n};\nexport default Tooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\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 classNames from 'classnames';\nimport QuestionCircleOutlined from \"@ant-design/icons/es/icons/QuestionCircleOutlined\";\nimport Col from '../grid/col';\nimport { FormContext } from './context';\nimport { useLocaleReceiver } from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport Tooltip from '../tooltip';\n\nfunction toTooltipProps(tooltip) {\n if (!tooltip) {\n return null;\n }\n\n if (_typeof(tooltip) === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip)) {\n return tooltip;\n }\n\n return {\n title: tooltip\n };\n}\n\nvar FormItemLabel = function FormItemLabel(_ref) {\n var prefixCls = _ref.prefixCls,\n label = _ref.label,\n htmlFor = _ref.htmlFor,\n labelCol = _ref.labelCol,\n labelAlign = _ref.labelAlign,\n colon = _ref.colon,\n required = _ref.required,\n requiredMark = _ref.requiredMark,\n tooltip = _ref.tooltip;\n\n var _useLocaleReceiver = useLocaleReceiver('Form'),\n _useLocaleReceiver2 = _slicedToArray(_useLocaleReceiver, 1),\n formLocale = _useLocaleReceiver2[0];\n\n if (!label) return null;\n return /*#__PURE__*/React.createElement(FormContext.Consumer, {\n key: \"label\"\n }, function (_ref2) {\n var _classNames;\n\n var vertical = _ref2.vertical,\n contextLabelAlign = _ref2.labelAlign,\n contextLabelCol = _ref2.labelCol,\n contextColon = _ref2.colon;\n\n var _a;\n\n var mergedLabelCol = labelCol || contextLabelCol || {};\n var mergedLabelAlign = labelAlign || contextLabelAlign;\n var labelClsBasic = \"\".concat(prefixCls, \"-item-label\");\n var labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && \"\".concat(labelClsBasic, \"-left\"), mergedLabelCol.className);\n var labelChildren = label; // Keep label is original where there should have no colon\n\n var computedColon = colon === true || contextColon !== false && colon !== false;\n var haveColon = computedColon && !vertical; // Remove duplicated user input colon\n\n if (haveColon && typeof label === 'string' && label.trim() !== '') {\n labelChildren = label.replace(/[:|:]\\s*$/, '');\n } // Tooltip\n\n\n var tooltipProps = toTooltipProps(tooltip);\n\n if (tooltipProps) {\n var _tooltipProps$icon = tooltipProps.icon,\n icon = _tooltipProps$icon === void 0 ? /*#__PURE__*/React.createElement(QuestionCircleOutlined, null) : _tooltipProps$icon,\n restTooltipProps = __rest(tooltipProps, [\"icon\"]);\n\n var tooltipNode = /*#__PURE__*/React.createElement(Tooltip, restTooltipProps, /*#__PURE__*/React.cloneElement(icon, {\n className: \"\".concat(prefixCls, \"-item-tooltip\"),\n title: ''\n }));\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, tooltipNode);\n } // Add required mark if optional\n\n\n if (requiredMark === 'optional' && !required) {\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-optional\"),\n title: \"\"\n }, (formLocale === null || formLocale === void 0 ? void 0 : formLocale.optional) || ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.optional)));\n }\n\n var labelClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-required\"), required), _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-required-mark-optional\"), requiredMark === 'optional'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-no-colon\"), !computedColon), _classNames));\n return /*#__PURE__*/React.createElement(Col, _extends({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor,\n className: labelClassName,\n title: typeof label === 'string' ? label : ''\n }, labelChildren));\n });\n};\n\nexport default FormItemLabel;","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\n\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\n\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useForceUpdate() {\n var _React$useReducer = React.useReducer(function (x) {\n return x + 1;\n }, 0),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n forceUpdate = _React$useReducer2[1];\n\n return forceUpdate;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport useCacheErrors from './hooks/useCacheErrors';\nimport useForceUpdate from '../_util/hooks/useForceUpdate';\nimport { FormItemPrefixContext } from './context';\nimport { ConfigContext } from '../config-provider';\nvar EMPTY_LIST = [];\nexport default function ErrorList(_ref) {\n var _ref$errors = _ref.errors,\n errors = _ref$errors === void 0 ? EMPTY_LIST : _ref$errors,\n help = _ref.help,\n onDomErrorVisibleChange = _ref.onDomErrorVisibleChange;\n var forceUpdate = useForceUpdate();\n\n var _React$useContext = React.useContext(FormItemPrefixContext),\n prefixCls = _React$useContext.prefixCls,\n status = _React$useContext.status;\n\n var _React$useContext2 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext2.getPrefixCls;\n\n var _useCacheErrors = useCacheErrors(errors, function (changedVisible) {\n if (changedVisible) {\n /**\n * We trigger in sync to avoid dom shaking but this get warning in react 16.13.\n *\n * So use Promise to keep in micro async to handle this.\n * https://github.com/ant-design/ant-design/issues/21698#issuecomment-593743485\n */\n Promise.resolve().then(function () {\n onDomErrorVisibleChange === null || onDomErrorVisibleChange === void 0 ? void 0 : onDomErrorVisibleChange(true);\n });\n }\n\n forceUpdate();\n }, !!help),\n _useCacheErrors2 = _slicedToArray(_useCacheErrors, 2),\n visible = _useCacheErrors2[0],\n cacheErrors = _useCacheErrors2[1];\n\n var memoErrors = useMemo(function () {\n return cacheErrors;\n }, visible, function (_, nextVisible) {\n return nextVisible;\n }); // Memo status in same visible\n\n var _React$useState = React.useState(status),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerStatus = _React$useState2[0],\n setInnerStatus = _React$useState2[1];\n\n React.useEffect(function () {\n if (visible && status) {\n setInnerStatus(status);\n }\n }, [visible, status]);\n var baseClassName = \"\".concat(prefixCls, \"-item-explain\");\n var rootPrefixCls = getPrefixCls();\n return /*#__PURE__*/React.createElement(CSSMotion, {\n motionDeadline: 500,\n visible: visible,\n motionName: \"\".concat(rootPrefixCls, \"-show-help\"),\n onLeaveEnd: function onLeaveEnd() {\n onDomErrorVisibleChange === null || onDomErrorVisibleChange === void 0 ? void 0 : onDomErrorVisibleChange(false);\n }\n }, function (_ref2) {\n var motionClassName = _ref2.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(baseClassName, _defineProperty({}, \"\".concat(baseClassName, \"-\").concat(innerStatus), innerStatus), motionClassName),\n key: \"help\"\n }, memoErrors.map(function (error, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"div\", {\n key: index,\n role: \"alert\"\n }, error)\n );\n }));\n });\n}","import * as React from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\n/** Always debounce error to avoid [error -> null -> error] blink */\n\nexport default function useCacheErrors(errors, changeTrigger, directly) {\n var cacheRef = React.useRef({\n errors: errors,\n visible: !!errors.length\n });\n var forceUpdate = useForceUpdate();\n\n var update = function update() {\n var prevVisible = cacheRef.current.visible;\n var newVisible = !!errors.length;\n var prevErrors = cacheRef.current.errors;\n cacheRef.current.errors = errors;\n cacheRef.current.visible = newVisible;\n\n if (prevVisible !== newVisible) {\n changeTrigger(newVisible);\n } else if (prevErrors.length !== errors.length || prevErrors.some(function (prevErr, index) {\n return prevErr !== errors[index];\n })) {\n forceUpdate();\n }\n };\n\n React.useEffect(function () {\n if (!directly) {\n var timeout = setTimeout(update, 10);\n return function () {\n return clearTimeout(timeout);\n };\n }\n }, [errors]);\n\n if (directly) {\n update();\n }\n\n return [cacheRef.current.visible, cacheRef.current.errors];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport Col from '../grid/col';\nimport { FormContext, FormItemPrefixContext } from './context';\nimport ErrorList from './ErrorList';\nvar iconMap = {\n success: CheckCircleFilled,\n warning: ExclamationCircleFilled,\n error: CloseCircleFilled,\n validating: LoadingOutlined\n};\n\nvar FormItemInput = function FormItemInput(props) {\n var prefixCls = props.prefixCls,\n status = props.status,\n wrapperCol = props.wrapperCol,\n children = props.children,\n help = props.help,\n errors = props.errors,\n onDomErrorVisibleChange = props.onDomErrorVisibleChange,\n hasFeedback = props.hasFeedback,\n formItemRender = props._internalItemRender,\n validateStatus = props.validateStatus,\n extra = props.extra;\n var baseClassName = \"\".concat(prefixCls, \"-item\");\n var formContext = React.useContext(FormContext);\n var mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};\n var className = classNames(\"\".concat(baseClassName, \"-control\"), mergedWrapperCol.className);\n React.useEffect(function () {\n return function () {\n onDomErrorVisibleChange(false);\n };\n }, []); // Should provides additional icon if `hasFeedback`\n\n var IconNode = validateStatus && iconMap[validateStatus];\n var icon = hasFeedback && IconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(baseClassName, \"-children-icon\")\n }, /*#__PURE__*/React.createElement(IconNode, null)) : null; // Pass to sub FormItem should not with col info\n\n var subFormContext = _extends({}, formContext);\n\n delete subFormContext.labelCol;\n delete subFormContext.wrapperCol;\n var inputDom = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(baseClassName, \"-control-input\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(baseClassName, \"-control-input-content\")\n }, children), icon);\n var errorListDom = /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: {\n prefixCls: prefixCls,\n status: status\n }\n }, /*#__PURE__*/React.createElement(ErrorList, {\n errors: errors,\n help: help,\n onDomErrorVisibleChange: onDomErrorVisibleChange\n })); // If extra = 0, && will goes wrong\n // 0&&error -> 0\n\n var extraDom = extra ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(baseClassName, \"-extra\")\n }, extra) : null;\n var dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {\n input: inputDom,\n errorList: errorListDom,\n extra: extraDom\n }) : /*#__PURE__*/React.createElement(React.Fragment, null, inputDom, errorListDom, extraDom);\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: subFormContext\n }, /*#__PURE__*/React.createElement(Col, _extends({}, mergedWrapperCol, {\n className: className\n }), dom));\n};\n\nexport default FormItemInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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 { useContext, useRef } from 'react';\nimport isEqual from 'lodash/isEqual';\nimport classNames from 'classnames';\nimport { Field } from 'rc-field-form';\nimport FieldContext from \"rc-field-form/es/FieldContext\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport omit from \"rc-util/es/omit\";\nimport Row from '../grid/row';\nimport { ConfigContext } from '../config-provider';\nimport { tuple } from '../_util/type';\nimport devWarning from '../_util/devWarning';\nimport FormItemLabel from './FormItemLabel';\nimport FormItemInput from './FormItemInput';\nimport { FormContext, FormItemContext } from './context';\nimport { toArray, getFieldId } from './util';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport useFrameState from './hooks/useFrameState';\nimport useItemRef from './hooks/useItemRef';\nvar NAME_SPLIT = '__SPLIT__';\nvar ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '');\nvar MemoInput = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (prev, next) {\n return prev.value === next.value && prev.update === next.update;\n});\n\nfunction hasValidName(name) {\n if (name === null) {\n devWarning(false, 'Form.Item', '`null` is passed as `name` property');\n }\n\n return !(name === undefined || name === null);\n}\n\nfunction FormItem(props) {\n var name = props.name,\n fieldKey = props.fieldKey,\n noStyle = props.noStyle,\n dependencies = props.dependencies,\n customizePrefixCls = props.prefixCls,\n style = props.style,\n className = props.className,\n shouldUpdate = props.shouldUpdate,\n hasFeedback = props.hasFeedback,\n help = props.help,\n rules = props.rules,\n validateStatus = props.validateStatus,\n children = props.children,\n required = props.required,\n label = props.label,\n messageVariables = props.messageVariables,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'onChange' : _props$trigger,\n validateTrigger = props.validateTrigger,\n hidden = props.hidden,\n restProps = __rest(props, [\"name\", \"fieldKey\", \"noStyle\", \"dependencies\", \"prefixCls\", \"style\", \"className\", \"shouldUpdate\", \"hasFeedback\", \"help\", \"rules\", \"validateStatus\", \"children\", \"required\", \"label\", \"messageVariables\", \"trigger\", \"validateTrigger\", \"hidden\"]);\n\n var destroyRef = useRef(false);\n\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n\n var _useContext2 = useContext(FormContext),\n formName = _useContext2.name,\n requiredMark = _useContext2.requiredMark;\n\n var _useContext3 = useContext(FormItemContext),\n updateItemErrors = _useContext3.updateItemErrors;\n\n var _React$useState = React.useState(!!help),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n domErrorVisible = _React$useState2[0],\n innerSetDomErrorVisible = _React$useState2[1];\n\n var _useFrameState = useFrameState({}),\n _useFrameState2 = _slicedToArray(_useFrameState, 2),\n inlineErrors = _useFrameState2[0],\n setInlineErrors = _useFrameState2[1];\n\n var _useContext4 = useContext(FieldContext),\n contextValidateTrigger = _useContext4.validateTrigger;\n\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;\n\n function setDomErrorVisible(visible) {\n if (!destroyRef.current) {\n innerSetDomErrorVisible(visible);\n }\n }\n\n var hasName = hasValidName(name); // Cache Field NamePath\n\n var nameRef = useRef([]); // Should clean up if Field removed\n\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n updateItemErrors(nameRef.current.join(NAME_SPLIT), []);\n };\n }, []);\n var prefixCls = getPrefixCls('form', customizePrefixCls); // ======================== Errors ========================\n // Collect noStyle Field error to the top FormItem\n\n var updateChildItemErrors = noStyle ? updateItemErrors : function (subName, subErrors, originSubName) {\n setInlineErrors(function () {\n var prevInlineErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // Clean up origin error when name changed\n if (originSubName && originSubName !== subName) {\n delete prevInlineErrors[originSubName];\n }\n\n if (!isEqual(prevInlineErrors[subName], subErrors)) {\n return _extends(_extends({}, prevInlineErrors), _defineProperty({}, subName, subErrors));\n }\n\n return prevInlineErrors;\n });\n }; // ===================== Children Ref =====================\n\n var getItemRef = useItemRef();\n\n function renderLayout(baseChildren, fieldId, meta, isRequired) {\n var _itemClassName;\n\n var _a;\n\n if (noStyle && !hidden) {\n return baseChildren;\n } // ======================== Errors ========================\n // >>> collect sub errors\n\n\n var subErrorList = [];\n Object.keys(inlineErrors).forEach(function (subName) {\n subErrorList = [].concat(_toConsumableArray(subErrorList), _toConsumableArray(inlineErrors[subName] || []));\n }); // >>> merged errors\n\n var mergedErrors;\n\n if (help !== undefined && help !== null) {\n mergedErrors = toArray(help);\n } else {\n mergedErrors = meta ? meta.errors : [];\n mergedErrors = [].concat(_toConsumableArray(mergedErrors), _toConsumableArray(subErrorList));\n } // ======================== Status ========================\n\n\n var mergedValidateStatus = '';\n\n if (validateStatus !== undefined) {\n mergedValidateStatus = validateStatus;\n } else if (meta === null || meta === void 0 ? void 0 : meta.validating) {\n mergedValidateStatus = 'validating';\n } else if (((_a = meta === null || meta === void 0 ? void 0 : meta.errors) === null || _a === void 0 ? void 0 : _a.length) || subErrorList.length) {\n mergedValidateStatus = 'error';\n } else if (meta === null || meta === void 0 ? void 0 : meta.touched) {\n mergedValidateStatus = 'success';\n }\n\n var itemClassName = (_itemClassName = {}, _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item\"), true), _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item-with-help\"), domErrorVisible || !!help), _defineProperty(_itemClassName, \"\".concat(className), !!className), _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item-has-feedback\"), mergedValidateStatus && hasFeedback), _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item-has-success\"), mergedValidateStatus === 'success'), _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item-has-warning\"), mergedValidateStatus === 'warning'), _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item-has-error\"), mergedValidateStatus === 'error'), _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item-is-validating\"), mergedValidateStatus === 'validating'), _defineProperty(_itemClassName, \"\".concat(prefixCls, \"-item-hidden\"), hidden), _itemClassName); // ======================= Children =======================\n\n return /*#__PURE__*/React.createElement(Row, _extends({\n className: classNames(itemClassName),\n style: style,\n key: \"row\"\n }, omit(restProps, ['colon', 'extra', 'getValueFromEvent', 'getValueProps', 'htmlFor', 'id', 'initialValue', 'isListField', 'labelAlign', 'labelCol', 'normalize', 'preserve', 'tooltip', 'validateFirst', 'valuePropName', 'wrapperCol', '_internalItemRender'])), /*#__PURE__*/React.createElement(FormItemLabel, _extends({\n htmlFor: fieldId,\n required: isRequired,\n requiredMark: requiredMark\n }, props, {\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(FormItemInput, _extends({}, props, meta, {\n errors: mergedErrors,\n prefixCls: prefixCls,\n status: mergedValidateStatus,\n onDomErrorVisibleChange: setDomErrorVisible,\n validateStatus: mergedValidateStatus\n }), /*#__PURE__*/React.createElement(FormItemContext.Provider, {\n value: {\n updateItemErrors: updateChildItemErrors\n }\n }, baseChildren)));\n }\n\n var isRenderProps = typeof children === 'function'; // Record for real component render\n\n var updateRef = useRef(0);\n updateRef.current += 1;\n\n if (!hasName && !isRenderProps && !dependencies) {\n return renderLayout(children);\n }\n\n var variables = {};\n\n if (typeof label === 'string') {\n variables.label = label;\n } else if (name) {\n variables.label = String(name);\n }\n\n if (messageVariables) {\n variables = _extends(_extends({}, variables), messageVariables);\n }\n\n return /*#__PURE__*/React.createElement(Field, _extends({}, props, {\n messageVariables: variables,\n trigger: trigger,\n validateTrigger: mergedValidateTrigger,\n onReset: function onReset() {\n setDomErrorVisible(false);\n }\n }), function (control, meta, context) {\n var errors = meta.errors;\n var mergedName = toArray(name).length && meta ? meta.name : [];\n var fieldId = getFieldId(mergedName, formName);\n\n if (noStyle) {\n // Clean up origin one\n var originErrorName = nameRef.current.join(NAME_SPLIT);\n nameRef.current = _toConsumableArray(mergedName);\n\n if (fieldKey) {\n var fieldKeys = Array.isArray(fieldKey) ? fieldKey : [fieldKey];\n nameRef.current = [].concat(_toConsumableArray(mergedName.slice(0, -1)), _toConsumableArray(fieldKeys));\n }\n\n updateItemErrors(nameRef.current.join(NAME_SPLIT), errors, originErrorName);\n }\n\n var isRequired = required !== undefined ? required : !!(rules && rules.some(function (rule) {\n if (rule && _typeof(rule) === 'object' && rule.required) {\n return true;\n }\n\n if (typeof rule === 'function') {\n var ruleEntity = rule(context);\n return ruleEntity && ruleEntity.required;\n }\n\n return false;\n })); // ======================= Children =======================\n\n var mergedControl = _extends({}, control);\n\n var childNode = null;\n devWarning(!(shouldUpdate && dependencies), 'Form.Item', \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://ant.design/components/form/#dependencies.\");\n\n if (Array.isArray(children) && hasName) {\n devWarning(false, 'Form.Item', '`children` is array of render props cannot have `name`.');\n childNode = children;\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n devWarning(!!(shouldUpdate || dependencies), 'Form.Item', '`children` of render props only work with `shouldUpdate` or `dependencies`.');\n devWarning(!hasName, 'Form.Item', \"Do not use `name` with `children` of render props since it's not a field.\");\n } else if (dependencies && !isRenderProps && !hasName) {\n devWarning(false, 'Form.Item', 'Must set `name` or use render props when `dependencies` is set.');\n } else if (isValidElement(children)) {\n devWarning(children.props.defaultValue === undefined, 'Form.Item', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.');\n\n var childProps = _extends(_extends({}, children.props), mergedControl);\n\n if (!childProps.id) {\n childProps.id = fieldId;\n }\n\n if (supportRef(children)) {\n childProps.ref = getItemRef(mergedName, children);\n } // We should keep user origin event handler\n\n\n var triggers = new Set([].concat(_toConsumableArray(toArray(trigger)), _toConsumableArray(toArray(mergedValidateTrigger))));\n triggers.forEach(function (eventName) {\n childProps[eventName] = function () {\n var _a2, _c2;\n\n var _a, _b, _c;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [mergedControl].concat(args));\n (_c = (_b = children.props)[eventName]) === null || _c === void 0 ? void 0 : (_c2 = _c).call.apply(_c2, [_b].concat(args));\n };\n });\n childNode = /*#__PURE__*/React.createElement(MemoInput, {\n value: mergedControl[props.valuePropName || 'value'],\n update: updateRef.current\n }, cloneElement(children, childProps));\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = children(context);\n } else {\n devWarning(!mergedName.length, 'Form.Item', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.');\n childNode = children;\n }\n\n return renderLayout(childNode, fieldId, meta, isRequired);\n });\n}\n\nexport default FormItem;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useFrameState(defaultValue) {\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n\n var frameRef = useRef(null);\n var batchRef = useRef([]);\n var destroyRef = useRef(false);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n raf.cancel(frameRef.current);\n };\n }, []);\n\n function setFrameValue(updater) {\n if (destroyRef.current) {\n return;\n }\n\n if (frameRef.current === null) {\n batchRef.current = [];\n frameRef.current = raf(function () {\n frameRef.current = null;\n setValue(function (prevValue) {\n var current = prevValue;\n batchRef.current.forEach(function (func) {\n current = func(current);\n });\n return current;\n });\n });\n }\n\n batchRef.current.push(updater);\n }\n\n return [value, setFrameValue];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { FormContext } from '../context';\nexport default function useItemRef() {\n var _React$useContext = React.useContext(FormContext),\n itemRef = _React$useContext.itemRef;\n\n var cacheRef = React.useRef({});\n\n function getRef(name, children) {\n var childrenRef = children && _typeof(children) === 'object' && children.ref;\n var nameStr = name.join('_');\n\n if (cacheRef.current.name !== nameStr || cacheRef.current.originRef !== childrenRef) {\n cacheRef.current.name = nameStr;\n cacheRef.current.originRef = childrenRef;\n cacheRef.current.ref = composeRef(itemRef(name), childrenRef);\n }\n\n return cacheRef.current.ref;\n }\n\n return getRef;\n}","import _extends from \"@babel/runtime/helpers/esm/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 { List } from 'rc-field-form';\nimport devWarning from '../_util/devWarning';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemPrefixContext } from './context';\n\nvar FormList = function FormList(_a) {\n var customizePrefixCls = _a.prefixCls,\n children = _a.children,\n props = __rest(_a, [\"prefixCls\", \"children\"]);\n\n devWarning(!!props.name, 'Form.List', 'Miss `name` prop.');\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n return /*#__PURE__*/React.createElement(List, props, function (fields, operation, meta) {\n return /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: {\n prefixCls: prefixCls,\n status: 'error'\n }\n }, children(fields.map(function (field) {\n return _extends(_extends({}, field), {\n fieldKey: field.key\n });\n }), operation, {\n errors: meta.errors\n }));\n });\n};\n\nexport default FormList;","import InternalForm, { useForm } from './Form';\nimport Item from './FormItem';\nimport ErrorList from './ErrorList';\nimport List from './FormList';\nimport { FormProvider } from './context';\nimport devWarning from '../_util/devWarning';\nvar Form = InternalForm;\nForm.Item = Item;\nForm.List = List;\nForm.ErrorList = ErrorList;\nForm.useForm = useForm;\nForm.Provider = FormProvider;\n\nForm.create = function () {\n devWarning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.');\n};\n\nexport default Form;"],"sourceRoot":""}