{"version":3,"mappings":"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","names":["factory","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","o","p","_isNativeReflectConstruct","e","_assertThisInitialized","self","_possibleConstructorReturn","call","_createSuper","Derived","hasNativeReflectConstruct","Super","result","NewTarget","_superPropBase","object","property","_get","receiver","base","desc","Emitter","type","callback","options","stack","l","event","stackToCall","listener","AbortSignal","_Emitter","_super","_this","AbortController","reason","signalReason","err","polyfillNeeded","abortableFetchDecorator","patchTargets","_patchTargets","fetch","_patchTargets$Request","NativeRequest","NativeAbortController","_patchTargets$__FORCE","__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL","Request","input","init","signal","request","realFetch","abortableFetch","abortError","cancellation","_","reject","_abortableFetch","global","check","it","this","fails","exec","error","require$$0","descriptors","functionBindNative","test","NATIVE_BIND","functionCall","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","objectPropertyIsEnumerable","V","createPropertyDescriptor","bitmap","value","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","uncurryThis","toString","stringSlice","classofRaw","require$$1","classof","require$$2","$Object","split","indexedObject","isNullOrUndefined","$TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","documentAll","IS_HTMLDDA","documentAll_1","$documentAll","isCallable","argument","isObject","aFunction","getBuiltIn","namespace","method","objectIsPrototypeOf","engineUserAgent","userAgent","process","Deno","versions","v8","match","version","engineV8Version","V8_VERSION","$String","symbolConstructorDetection","symbol","NATIVE_SYMBOL","useSymbolAsUid","isPrototypeOf","USE_SYMBOL_AS_UID","require$$3","isSymbol","$Symbol","tryToString","aCallable","getMethod","P","func","ordinaryToPrimitive","pref","val","defineProperty","defineGlobalProperty","key","SHARED","store","sharedStore","sharedModule","toObject","hasOwnProperty","hasOwnProperty_1","id","postfix","uid","shared","hasOwn","require$$4","require$$5","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","wellKnownSymbol","name","TO_PRIMITIVE","toPrimitive","exoticToPrim","toPropertyKey","document","EXISTS","documentCreateElement","DESCRIPTORS","createElement","ie8DomDefine","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","objectGetOwnPropertyDescriptor","O","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","Attributes","current","definePropertyModule","createNonEnumerableProperty","getDescriptor","PROPER","functionName","functionToString","inspectSource","WeakMap","weakMapBasicDetection","keys","sharedKey","hiddenKeys","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","TypeError","set","get","has","enforce","getterFor","TYPE","state","metadata","STATE","internalState","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","replace","join","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","defineBuiltIn","simple","ceil","floor","mathTrunc","x","n","trunc","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","length","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","indexOf","push","objectKeysInternal","names","enumBugKeys","internalObjectKeys","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptorModule","copyConstructorProperties","source","exceptions","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","isForced_1","_export","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","correctPrototypeGetter","F","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","objectGetPrototypeOf","constructor","objectKeys","propertyIsEnumerable","IE_BUG","TO_ENTRIES","IE_WORKAROUND","objectToArray","$","$values","path","thisArg","enUS$1","locale","TimePicker$6","_extends","CalendarLocale","TimePickerLocale","enUS","typeTemplate","localeValues","Pagination","DatePicker","TimePicker","Calendar","defaultLocale","runtimeLocale","changeConfirmLocale","newLocale","getConfirmLocale","LocaleContext","createContext","LocaleContext$1","ANT_MARK","LocaleProvider","_props$locale","children","React.useEffect","getMemoizedContextValue","React.useMemo","React.createElement","LocaleProvider$1","LocaleReceiver","_props$componentName","componentName","antLocale","React.useContext","getLocale","_a","defaultLocaleData","localeFromContext","getLocaleCode","localeCode","LocaleReceiver$1","useLocaleReceiver","createUseMessage","getRcNotificationInstance","getRCNoticeProps","useMessage","getPrefixCls","getPopupContainer","innerInstance","proxy","noticeProps","holderCallback","_useRCNotification","useRCNotification","_useRCNotification2","_slicedToArray","hookNotify","holder","notify","args","customizePrefixCls","mergedPrefixCls","rootPrefixCls","getKeyThenIncreaseKey","closePromise","resolve","_ref","prefixCls","filled","rejected","hookApiRef","React.useRef","typeList","attachTypeApi","ConfigConsumer","context","messageInstance","defaultDuration","defaultTop","localPrefixCls","transitionName","hasTransitionName","getContainer","maxCount","rtl","setMessageConfig","getRCNotificationInstance","getContextPopupContainer","_globalConfig","globalConfig","getRootPrefixCls","getIconPrefixCls","iconPrefixCls","instanceConfig","RCNotification","typeToIcon","InfoCircleFilled","CheckCircleFilled","CloseCircleFilled","ExclamationCircleFilled","LoadingOutlined","_classNames","duration","IconComponent","messageClass","classNames","_defineProperty","ConfigProvider","notice","isArgsProps","content","api","messageKey","_messageInstance","removeNotice","_messageInstance2","destroy","originalApi","onClose","message","createUseNotification","getNotificationInstance","useNotification","notificationInstance","defaultBottom","defaultPrefixCls","defaultPlacement","defaultGetContainer","defaultCloseIcon","setNotificationConfig","placement","bottom","top","closeIcon","getPlacementStyle","style","_args$placement","_args$getContainer","cacheKey","cacheInstance","notificationClass","Notification","notification","CheckCircleOutlined","InfoCircleOutlined","CloseCircleOutlined","ExclamationCircleOutlined","durationArg","icon","description","btn","onClick","className","_args$closeIcon","iconNode","closeIconToRender","CloseOutlined","autoMarginTag","defaultGetPrefixCls","suffixCls","ConfigContext","React.createContext","withConfigConsumer","config","Component","SFC","configProps","basicPrefixCls","cons","dynamicStyleMark","getStyle","globalPrefixCls","theme","variables","formatColor","color","updater","clone","fillColor","colorVal","baseColor","TinyColor","colorPalettes","generate","primaryColor","primaryColors","c","primaryActiveColor","cssList","registerTheme","canUseDom","updateCSS","DisabledContext","DisabledContextProvider","disabled","originDisabled","DisabledContext$1","SizeContext","SizeContextProvider","size","originSize","SizeContext$1","PASSED_PROPS","defaultIconPrefixCls","globalIconPrefixCls","getGlobalPrefixCls","getGlobalIconPrefixCls","setGlobalConfig","ProviderChildren","_b","csp","autoInsertSpaceInButton","form","componentSize","direction","space","virtual","dropdownMatchSelectWidth","legacyLocale","parentContext","componentDisabled","React.useCallback","propName","propValue","memoedConfig","useMemo","prevConfig","currentConfig","prevKeys","currentKeys","memoIconContextValue","childNode","validateMessages","RcFormProvider","IconContext","__","ConfigProvider$1","getDataOrAriaProps","prev","isValidElement","React.isValidElement","isFragment","child","React.Fragment","replaceElement","element","React.cloneElement","cloneElement","isWindow","getScroll","easeInOutCubic","t","b","d","cc","scrollTo","y","_options$getContainer","_options$duration","container","scrollTop","startTime","frameFunc","timestamp","time","nextScrollTop","raf","Empty","_React$useContext","DefaultEmptyImg","Simple","SimpleEmptyImg","__rest","s","defaultEmptyImg","simpleEmptyImg","_a$image","image","imageStyle","restProps","contextLocale","des","alt","imageNode","Empty$1","defaultRenderEmpty","prefix","defaultRenderEmpty$1","FormContext","NoStyleItemContext","FormProvider","providerProps","omit","FormItemPrefixContext","FormItemInputContext","NoFormStyle","status","override","formItemInputContext","useContext","newFormItemInputContext","newContext","tuple","_len","_key","tupleNum","_len2","_key2","getCollapsedHeight","getRealHeight","node","scrollHeight","getCurrentHeight","skipOpacityTransition","collapseMotion","getTransitionDirection","getTransitionName","motion","collapseMotion$1","getStatusClassNames","hasFeedback","getMergedStatus","contextStatus","customStatus","getIcons","suffixIcon","clearIcon","menuItemSelectedIcon","removeIcon","loading","multiple","showArrow","feedbackIcon","mergedClearIcon","getSuffixIconNode","arrowIcon","mergedSuffixIcon","iconCls","_ref2","open","showSearch","SearchOutlined","DownOutlined","mergedItemIcon","CheckOutlined","mergedRemoveIcon","SpaceCompactItemContext","useCompactItemContext","compactItemContext","compactItemClassnames","compactDirection","isFirstItem","isLastItem","separator","NoCompactStyle","CompactItem","otherProps","Compact","_classNames2","directionConfig","_props$size","block","clx","childNodes","toArray","nodes","Compact$1","SECRET_COMBOBOX_MODE_DO_NOT_USE","InternalSelect","ref","_a$bordered","bordered","dropdownClassName","popupClassName","_a$listHeight","listHeight","_a$listItemHeight","listItemHeight","customizeSize","customDisabled","notFoundContent","renderEmpty","_useCompactItemContex","compactSize","mode","m","isMultiple","mergedShowArrow","_useContext","isFormItemInput","mergedStatus","mergedNotFound","_getIcons","itemIcon","selectProps","rcSelectRtlDropdownClassName","mergedSize","mergedDisabled","mergedClassName","getPlacement","RcSelect","Select","React.forwardRef","Option","OptGroup","Select$1","useForceUpdate","_React$useReducer","React.useReducer","_React$useReducer2","forceUpdate","responsiveArray","responsiveMap","subscribers","subUid","screens","responsiveObserve","pointMap","token","screen","matchMediaQuery","handler","_this2","matches","mql","ResponsiveObserve","useBreakpoint","refreshOnChange","screensRef","useRef","useEffect","supportScreens","PresetStatusColorTypes","PresetColorTypes","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","targetOffset","getOverflowOptions","autoAdjustOverflow","getPlacements","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","arrowPointAtCenter","placementMap","placements","splitObject","picked","omitted","PresetColorRegex","getDisabledCompatibleChildren","elementType","_splitObject","spanStyle","buttonStyle","Tooltip","_useMergedState","useMergedState","_useMergedState2","setOpen","isNoTitle","title","overlay","onOpenChange","vis","getTooltipPlacements","builtinPlacements","_props$arrowPointAtCe","_props$autoAdjustOver","onPopupAlign","domNode","align","rect","transformOrigin","getOverlay","_props$placement","_props$mouseEnterDela","mouseEnterDelay","_props$mouseLeaveDela","mouseLeaveDelay","openClassName","getTooltipContainer","overlayClassName","overlayInnerStyle","tempOpen","childProps","childCls","customOverlayClassName","formattedOverlayInnerStyle","arrowContentStyle","RcTooltip","Tooltip$1","IdContext","getMenuId","uuid","eventKey","useMenuId","_excluded","MenuContext","mergeProps","origin","_objectSpread","InheritableContextProvider","locked","_objectWithoutProperties","inheritableContext","next","isEqual","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","_toConsumableArray","PathUserContext","PrivateContext","LEFT","KeyCode","RIGHT","UP","DOWN","ENTER","ESC","HOME","END","ArrowKeys","getOffset","isRootLevel","isRtl","which","_inline","_horizontal","_vertical","_offsets","parent","inline","horizontal","vertical","offsets","findContainerUL","getFocusElement","activeElement","elements","getFocusableElements","list","getFocusNodeList","ele","getNextFocusElement","parentQueryContainer","focusMenuElement","offset","sameLevelFocusableMenuElementList","count","focusIndex","useAccessibility","activeKey","containerRef","getKeys","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","activeRef","cleanRaf","key2element","element2key","refreshElements","focusMenuKey","offsetObj","tryFocus","menuElement","focusTargetElement","link","targetKey","targetElement","focusableElements","controlId","subQueryContainer","keyPath","parentKey","parentMenuElement","nextSlice","PATH_SPLIT","getPathStr","getPathKeys","keyPathStr","OVERFLOW_KEY","useKeyRecords","_React$useState","React.useState","_React$useState2","internalForceUpdate","key2pathRef","path2keyRef","_React$useState3","_React$useState4","overflowKeys","setOverflowKeys","updateRef","destroyRef","registerPath","useCallback","connectedPath","unregisterPath","refreshOverflowKeys","includeOverflow","fullPath","isSubPathKey","pathKeys","pathKey","pathKeyList","getSubPathKeys","useMemoCallback","funRef","_funRef$current","uniquePrefix","internalId","useUUID","setUUID","newId","useActive","onMouseEnter","onMouseLeave","onActive","onInactive","ret","domEvent","useDirectionStyle","level","inlineIndent","len","Icon","warnItemProp","item","restInfo","warning","_excluded2","_excluded3","LegacyMenuItem","_React$Component","_this$props","attribute","elementRef","passedProps","Overflow","React.Component","InternalMenuItem","role","onKeyDown","onFocus","domDataId","onItemClick","contextDisabled","overflowDisabled","contextItemIcon","selectedKeys","_React$useContext2","_internalRenderMenuItem","itemCls","legacyMenuItemRef","mergedEleRef","useComposeRef","connectedKeys","getEventInfo","_useActive","active","activeProps","selected","directionStyle","onInternalClick","info","onInternalKeyDown","onInternalFocus","optionRoleProps","renderNode","MenuItem","measure","connectedKeyPath","MenuItem$2","InternalSubMenuList","SubMenuList","parseChildren","_eventKey","_child$props","emptyKey","cloneProps","convertItemsToNodes","opt","_typeof","label","mergedKey","MenuItemGroup","SubMenu","Divider","parseItems","items","placementsRtl","getMotion","defaultMotions","popupPlacementMap","PopupTrigger","visible","popup","popupOffset","onVisibleChange","subMenuOpenDelay","subMenuCloseDelay","triggerSubMenuAction","forceSubMenuRender","rootClassName","innerVisible","setInnerVisible","popupPlacement","targetMotion","targetMotionRef","mergedMotion","visibleRef","Trigger","InlineSubMenuList","fixedMode","sameModeRef","setDestroy","mergedOpen","originOnVisibleChanged","newVisible","MenuContextProvider","CSSMotion","motionClassName","motionStyle","InternalSubMenu","internalPopupClose","expandIcon","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","_internalRenderSubMenuItem","_React$useContext3","subMenuPrefixCls","popupRef","mergedExpandIcon","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","onInternalMouseEnter","onInternalMouseLeave","mergedActive","onInternalTitleClick","onMergedItemClick","onPopupVisibleChange","popupId","titleNode","triggerModeRef","triggerMode","listNode","childList","EMPTY_LIST","Menu","_childList$","_ref$prefixCls","_ref$tabIndex","tabIndex","_ref$mode","inlineCollapsed","disabledOverflow","_ref$subMenuOpenDelay","_ref$subMenuCloseDela","defaultOpenKeys","defaultActiveFirst","_ref$selectable","selectable","_ref$multiple","defaultSelectedKeys","onSelect","onDeselect","_ref$inlineIndent","_ref$triggerSubMenuAc","_ref$overflowedIndica","overflowedIndicator","overflowedIndicatorPopupClassName","mounted","setMounted","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","forceFlush","doUpdate","flushSync","inlineCacheOpenKeys","setInlineCacheOpenKeys","mountRef","_React$useMemo","_React$useMemo2","mergedMode","mergedInlineCollapsed","isInlineMode","_React$useState5","_React$useState6","internalMode","setInternalMode","_React$useState7","_React$useState8","internalInlineCollapsed","setInternalInlineCollapsed","_React$useState9","_React$useState10","lastVisibleIndex","setLastVisibleIndex","allVisible","_useKeyRecords","registerPathContext","pathUserContext","_useMergedState3","_useMergedState4","mergedActiveKey","setMergedActiveKey","useImperativeHandle","_childList$find","shouldFocusKey","_containerRef$current","_containerRef$current2","_containerRef$current3","_useMergedState5","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","triggerSelection","exist","newSelectKeys","selectInfo","onInternalOpenChange","newOpenKeys","k","subPathKeys","getInternalPopupContainer","nextOpen","privateContext","wrappedChildList","omitItems","originOmitItems","newLastIndex","InternalMenuItemGroup","groupPrefixCls","ExportMenu","isNumeric","isNumeric$1","LayoutContext","generator","tagName","BasicComponent","Adapter","Basic","others","classString","BasicLayout","siders","setSiders","hasSider","Tag","contextValue","currentId","Layout","Header","Footer","Content","InternalLayout","dimensionMaxMap","SiderContext","generateId","Sider","trigger","_a$defaultCollapsed","defaultCollapsed","_a$theme","_a$style","_a$collapsible","collapsible","_a$reverseArrow","reverseArrow","_a$width","width","_a$collapsedWidth","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint","siderHook","_useState","useState","_useState2","collapsed","setCollapsed","_useState3","_useState4","below","setBelow","handleSetCollapsed","responsiveHandlerRef","responsiveHandler","_window","matchMedia","uniqueId","toggle","_useContext2","renderSider","divProps","rawWidth","siderWidth","zeroWidthTrigger","BarsOutlined","iconObj","RightOutlined","LeftOutlined","defaultTrigger","triggerDom","divStyle","siderCls","Sider$1","MenuDivider","dashed","MenuDivider$1","MenuContext$1","siderCollapsed","_this$context","firstLevel","disableMenuItemTitleTooltip","danger","rest","tooltipTitle","tooltipProps","childrenLength","returnNode","Item","_this$context2","_this$props2","wrapNode","antdMenuTheme","parentPath","titleIsSpan","RcSubMenu","ItemGroup","useItems","OverrideContext","OverrideProvider","OverrideContext$1","InternalMenu","forwardRef","_props$theme","_internalDisableMenuItemTitleTooltip","mergedChildren","useEvent","mergedSelectable","menuClassName","RcMenu","EllipsisOutlined","Menu$1","ids","wrapperRaf","delayFrames","myId","restFrames","internalCallback","pid","styleForPseudo","isHidden","getValidateContainer","nodeRoot","isNotGrey","Wave","React.createRef","waveColor","insertExtraNode","_assertThisInitialize","extraNode","attributeName","nodeBody","supportRef","composeRef","Wave$1","GroupSizeContext","ButtonGroup","sizeCls","classes","Group$4","getCollapsedWidth","getRealWidth","LoadingIcon","existIcon","React","LoadingIcon$1","rxTwoCNChar","isTwoCNChar","isString","str","isUnBorderedButtonType","insertSpace","needInserted","SPACE","spaceChildren","isPrevChildPure","React.Children","isCurrentChildPure","lastIndex","lastChild","convertLegacyProps","InternalButton","_props$loading","_props$type","_props$shape","shape","_props$ghost","ghost","_props$block","_props$htmlType","htmlType","groupSize","innerLoading","setLoading","hasTwoCNChar","setHasTwoCNChar","buttonRef","isNeedInserted","fixTwoCNChar","buttonText","loadingOrDelay","delayTimer","handleClick","autoInsertSpace","sizeClassNameMap","sizeFullname","iconType","linkButtonRestProps","kids","buttonNode","Button","Group","Button$2","canUseDocElement","flexGapSupported","detectFlexGapSupported","flex","useFlexGapSupport","flexible","setFlexible","marginDirection","wrap","SpaceContext","horizontalSize","verticalSize","latestIndex","supportFlexGap","spaceSize","getNumberSize","Space","_props$direction","_props$wrap","mergedAlign","cn","itemClassName","spaceContext","gapStyle","CompoundedSpace","Space$1","DropdownButton","menu","arrow","autoFocus","href","_props$icon","_props$buttonsRender","buttonsRender","buttons","overlayStyle","destroyPopupOnHide","dropdownProps","leftButton","rightButton","_buttonsRender","_buttonsRender2","leftButtonToRender","rightButtonToRender","Dropdown","DropdownButton$1","newPlacement","dropdownRender","dropdownTrigger","triggerActions","alignPoint","onInnerOpenChange","overlayClassNameCustomized","onMenuClick","renderOverlay","overlayNode","_ref3","RcDropdown","Dropdown$1","RadioGroupContext","RadioGroupContextProvider","RadioOptionTypeContext","RadioOptionTypeContextProvider","Checkbox","_props$prefixCls","checked","_props$defaultChecked","defaultChecked","onChange","inputProps","inputRef","rawValue","setRawValue","_inputRef$current","_inputRef$current2","handleChange","InternalRadio","groupContext","radioOptionTypeContext","innerRef","mergedRef","radioPrefixCls","radioProps","wrapperClassString","RcCheckbox","Radio","InternalRadio$1","RadioGroup","setValue","onRadioChange","ev","lastValue","_props$className","_props$buttonStyle","onBlur","childrenToRender","option","Group$3","React.memo","RadioButton","Radio$1","Element","shapeCls","sizeStyle","Element$2","SkeletonAvatar","cls","SkeletonAvatar$1","SkeletonButton","SkeletonButton$1","SkeletonNode","DotChartOutlined","SkeletonNode$1","SkeletonImage","SkeletonImage$1","SkeletonInput","SkeletonInput$1","Paragraph","getWidth","_props$rows","rows","rowList","Paragraph$3","Title","Title$3","getComponentProps","prop","getAvatarBasicProps","hasTitle","hasParagraph","getTitleBasicProps","hasAvatar","getParagraphBasicProps","basicProps","Skeleton","_props$avatar","avatar","_props$title","_props$paragraph","paragraph","round","avatarNode","avatarProps","contentNode","$title","titleProps","paragraphNode","paragraphProps","Skeleton$1","TabContext","TabPane","tabKey","TabPanelList","animated","tabPosition","destroyInactiveTabPane","tabs","tabPaneAnimated","tabPanePrefixCls","forceRender","paneStyle","paneClassName","restTabProps","DEFAULT_SIZE","useOffsets","tabSizes","holderScrollWidth","_tabs$","map","lastOffset","rightOffset","_tabs","entity","tab","useSyncState","defaultState","stateRef","setState","newValue","MIN_SWIPE_DISTANCE","STOP_SWIPE_DISTANCE","REFRESH_INTERVAL","SPEED_OFF_MULTIPLE","useTouchMove","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","_useState5","_useState6","lastTimeDiff","setLastTimeDiff","_useState7","_useState8","setLastOffset","motionRef","onTouchStart","_e$touches$","screenX","screenY","onTouchMove","_e$touches$2","offsetX","offsetY","now","onTouchEnd","distanceX","distanceY","absX","absY","currentX","currentY","lastWheelDirectionRef","onWheel","deltaX","deltaY","mixed","touchEventsRef","onProxyTouchStart","onProxyTouchMove","onProxyTouchEnd","onProxyWheel","useUpdate","setCount","effectRef","callbackRef","useLayoutUpdateEffect","_callbackRef$current","useUpdateState","batchRef","flushUpdate","useVisibleRange","tabOffsets","visibleTabContentValue","transform","tabContentSizeValue","addNodeSizeValue","operationNodeSizeValue","charUnit","position","transformSize","endIndex","startIndex","_i","_offset","stringify","tgt","v","RC_TABS_DOUBLE_QUOTE","genDataNodeKey","AddButton","editable","AddButton$1","ExtraContent","extra","assertExtra","OperationNode","mobile","_ref$moreIcon","moreIcon","moreTransitionName","tabBarGutter","removeAriaLabel","onTabClick","selectedKey","setSelectedKey","dropdownPrefix","selectedItemId","dropdownAriaLabel","onRemoveTab","removable","selectOffset","enabledTabs","selectedIndex","moreStyle","moreNode","OperationNode$1","TabNode","_ref$tab","closable","renderWrapper","tabPrefix","getSize","refObj","_ref$offsetWidth","offsetWidth","_ref$offsetHeight","offsetHeight","getUnitValue","tabPositionTopOrBottom","TabNavList","onTabScroll","extraLeftRef","extraRightRef","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useSyncState","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","containerExcludeExtraSize","setContainerExcludeExtraSize","tabContentSize","setTabContentSize","addSize","setAddSize","operationSize","setOperationSize","_useUpdateState","_useUpdateState2","setTabSizes","containerExcludeExtraSizeValue","addSizeValue","operationSizeValue","needScroll","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState9","_useState10","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","doMove","_useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","scrollToTab","tabOffset","newTransform","_newTransform","tabNodeStyle","tabNodes","updateTabSizes","newSizes","_tabListRef$current","btnNode","onListHolderResize","containerSize","extraLeftSize","extraRightSize","newAddSize","newOperationSize","tabContentFullSize","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState11","_useState12","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","hasDropdown","wrapPrefix","pingLeft","pingRight","pingTop","pingBottom","ResizeObserver","TabNavList$1","TabNavListWrapper","renderTabBar","tabNavBarProps","useAnimateConfig","mergedAnimated","Tabs","defaultActiveKey","_ref$tabPosition","tabBarStyle","tabBarExtraContent","setMobile","isMobile","activeIndex","setActiveIndex","newActiveIndex","_tabs$newActiveIndex","mergedId","setMergedId","onInternalTabClick","isActiveChanged","sharedProps","tabNavBar","ForwardTabs","filter","useLegacyItems","childrenItems","TabPane$1","propSize","_onEdit","hideAdd","centered","addIcon","_props$moreIcon","editType","PlusOutlined","mergedItems","contextSize","RcTabs","Grid","_a$hoverable","hoverable","Grid$1","getAction","actions","actionList","action","Card","_extends2","onTabChange","isContainGrid","containGrid","_props$headStyle","headStyle","_props$bodyStyle","bodyStyle","_props$bordered","cover","tabList","activeTabKey","defaultActiveTabKey","_props$tabProps","tabProps","loadingBlock","hasActiveTabKey","extraProps","head","coverDom","body","actionDom","InternalCard","Meta","avatarDom","titleDom","descriptionDom","MetaDetail","Meta$1","Card$1","removeFromCheckedKeys","halfCheckedKeys","checkedKeys","filteredKeys","isCheckDisabled","disableCheckbox","checkable","fillConductCheck","levelEntities","maxLevel","syntheticGetCheckDisabled","entities","_entity$children","childEntity","visitedKeys","_level","_entities","allChecked","partialChecked","cleanConductCheck","halfKeys","_entity$children2","_level2","_entities2","conductCheck","keyList","keyEntities","getCheckDisabled","warningMissKeys","hasEntity","levelSet","getPosition","isTreeNode","getKey","pos","fillFieldNames","fieldNames","_title","mergedTitle","convertTreeToData","rootNodes","dig","treeNodes","treeNode","_treeNode$props","dataNode","parsedChildren","flattenTreeData","treeNodeList","expandedKeys","_fillFieldNames","fieldTitles","fieldKey","fieldChildren","expandedKeySet","flattenList","fieldTitle","flattenNode","traverseDataNodes","dataNodes","mergedConfig","_mergedConfig","childrenPropName","externalGetKey","_fillFieldNames2","mergeChildrenPropName","syntheticGetKey","processNode","pathNodes","connectNodes","subNode","subIndex","convertDataToEntities","initWrapper","processEntity","onProcessFinished","legacyExternalGetKey","mergedExternalGetKey","posEntities","wrapper","parentPos","getTreeNodeProps","loadedKeys","loadingKeys","dragOverNodeKey","dropPosition","treeNodeProps","convertNodePropsToEventData","expanded","loaded","halfChecked","dragOver","dragOverGapTop","dragOverGapBottom","eventData","GroupContext","InternalCheckboxGroup","defaultValue","_a$options","registeredValues","setRegisteredValues","getOptions","cancelValue","prevValues","registerValue","toggleOption","optionIndex","opts","a","indexA","indexB","domProps","CheckboxGroup","Group$2","InternalCheckbox","_a$indeterminate","indeterminate","_a$skipGroup","skipGroup","checkboxGroup","prevValue","checkboxProps","checkboxClass","ariaChecked","InternalCheckbox$1","Checkbox$1","RowContext","RowContext$1","parseFlex","sizes","Col","gutter","span","order","pull","sizeClassObj","sizeProps","mergedStyle","horizontalGutter","verticalGutter","Col$1","useMergePropByScreen","oriProp","setProp","clacMergeAlignOrJustify","curVal","Row","justify","_props$gutter","setScreens","curScreens","setCurScreens","mergeAlign","mergeJustify","gutterRef","currentGutter","getGutter","results","normalizedGutter","g","gutters","rowStyle","_gutters","_gutters2","gutterH","gutterV","rowContext","Row$1","OrderContext","useDom","render","debug","defaultEle","appendedRef","queueCreate","queue","setQueue","mergedQueueCreate","appendFn","newQueue","append","cleanup","_ele$parentElement","useLayoutEffect","isBodyOverflowing","UNIQUE_ID","useScrollLocker","lock","mergedLock","scrollbarSize","getScrollBarSize","isOverflow","removeCSS","inlineMock","nextInline","getPortalContainer","Portal","autoLock","_props$autoDestroy","autoDestroy","shouldRender","setShouldRender","mergedRender","innerContainer","setInnerContainer","customizeContainer","_useDom","_useDom2","defaultContainer","mergedContainer","childRef","renderInline","reffedChildren","createPortal","DrawerPanel","DrawerContext","parseWidthHeight","sentinelStyle","DrawerPopup","_pushConfig$distance","_pushConfig","keyboard","rootStyle","zIndex","height","contentWrapperStyle","mask","maskClosable","maskMotion","maskClassName","maskStyle","afterOpenChange","panelRef","sentinelStartRef","sentinelEndRef","React.useImperativeHandle","onPanelKeyDown","keyCode","shiftKey","_sentinelStartRef$cur","_sentinelEndRef$curre","_panelRef$current","pushed","setPushed","pushConfig","pushDistance","mergedContext","_parentContext$push","_parentContext$pull","_parentContext$pull2","maskNode","maskRef","motionMaskClassName","motionMaskStyle","motionProps","wrapperStyle","panelNode","nextVisible","containerStyle","RefDrawerPopup","Drawer","_props$open","_props$autoFocus","_props$keyboard","_props$width","_props$mask","_props$maskClosable","destroyOnClose","animatedVisible","setAnimatedVisible","lastActiveRef","internalAfterOpenChange","_lastActiveRef$curren","drawerPopupProps","defaultPushState","_props$closable","_props$push","_props$closeIcon","drawerStyle","headerStyle","footer","footerStyle","customizeGetContainer","afterVisibleChange","_afterOpenChange","closeIconNode","renderHeader","renderFooter","footerClassName","drawerClassName","mergedWidth","mergedHeight","panelMotion","motionPlacement","RcDrawer","isOpen","Mask","maskProps","motionName","getMotionName","animationName","w","doc","MemoChildren","shouldUpdate","Panel","ariaId","bodyProps","modalRender","onMouseDown","onMouseUp","holderRef","_document","contentStyle","footerNode","headerNode","closer","onVisibleChanged","mousePosition","dialogRef","setTransformOrigin","onPrepare","elementOffset","Dialog","_props$visible","_props$focusTriggerAf","focusTriggerAfterClose","wrapStyle","wrapClassName","wrapProps","afterClose","animation","maskTransitionName","maskAnimation","lastOutSideActiveElementRef","wrapperRef","contentRef","useId","saveLastOutSideActiveElementRef","contains","focusDialogContent","_contentRef$current","onDialogVisibleChanged","onInternalClose","contentClickRef","contentTimeoutRef","onContentMouseDown","onContentMouseUp","onWrapperClick","onWrapperKeyDown","pickAttrs","DialogWrap","_props$destroyOnClose","_afterClose","formItemContext","groupFormItemContext","Group$1","useRemovePasswordTimeout","triggerOnMount","removePasswordTimeoutRef","removePasswordTimeout","_c","_d","timer","hasPrefixSuffix","fixControlledValue","resolveOnChange","targetValue","currentTarget","triggerFocus","cursor","Input","_classNames4","customSize","suffix","allowClear","addonAfter","addonBefore","inputHasPrefixSuffix","prevHasPrefixSuffix","handleBlur","handleFocus","suffixNode","mergedAllowClear","RcInput","InternalInput","defaultIconRender","EyeOutlined","EyeInvisibleOutlined","ActionMap","Password","_props$visibilityTogg","visibilityToggle","visibilityControlled","setVisible","prevState","newState","getIcon","_iconProps","_props$action","_props$iconRender","iconRender","iconTrigger","iconProps","renderPassword","customizeInputPrefixCls","inputPrefixCls","inputClassName","omittedProps","Password$1","Search","_props$enterButton","enterButton","customOnSearch","customOnChange","onCompositionStart","onCompositionEnd","composedRef","onSearch","onPressEnter","searchIcon","btnClassName","button","enterButtonAsElement","isAntdButton","handleOnCompositionStart","handleOnCompositionEnd","Search$1","HIDDEN_TEXTAREA_STYLE","SIZING_STYLE","computedStyleCache","hiddenTextarea","calculateNodeStyling","useCache","nodeRef","boxSizing","paddingSize","borderSize","sizingStyle","nodeInfo","calculateAutoSizeStyle","uiTextNode","minRows","maxRows","_calculateNodeStyling","minHeight","maxHeight","overflowY","singleRowHeight","RESIZE_START","RESIZE_MEASURING","RESIZE_STABLE","ResizableTextArea","autoSize","onResize","mergedValue","setMergedValue","onInternalChange","textareaRef","needAutoSize","fixFirefoxAutoScroll","_textareaRef$current","selectionStart","selectionEnd","resizeState","setResizeState","autoSizeStyle","setAutoSizeStyle","startResize","textareaStyles","resizeRafRef","onInternalResize","mergedAutoSizeStyle","TextArea","resizableTextArea","nextProps","ClearableInputType","hasAddon","ClearableLabeledInput","readOnly","handleReset","needClear","statusContext","focused","hidden","affixWrapperCls","_this$props3","inputType","ClearableLabeledInput$1","fixEmojiLength","maxLength","setTriggerValue","isCursorInEnd","preValue","triggerValue","newTriggerValue","_a$showCount","showCount","clearableInputRef","compositing","setCompositing","setFocused","oldCompositionValueRef","oldSelectionStartRef","handleSetValue","hasMaxLength","onInternalCompositionStart","onInternalCompositionEnd","textArea","RcTextArea","textareaNode","valueLength","dataCount","TextArea$1","Input$1","Pager","handleKeyPress","KEYCODE","Options","goButton","quickGo","goInputText","pageSize","pageSizeOptions","numberA","numberB","changeSize","selectComponentClass","buildOptionText","selectPrefixCls","changeSelect","goInput","gotoButton","triggerNode","Pagination$8","noop","isInteger","defaultItemRender","page","calculatePage","total","showQuickJumper","currentInputValue","newCurrent","_this$state","currentPage","newPage","restParams","hasOnChange","hasCurrent","_current","_pageSize","prevProps","lastCurrentNode","inputValue","allPages","showSizeChanger","totalBoundaryShowSizeChanger","prevPage","_this$props4","prevIcon","itemRender","prevButton","nextPage","_this$props5","nextIcon","nextButton","_this$props6","hideOnSinglePage","showLessItems","showTitle","showTotal","showPrevNextJumpers","jumpPrevIcon","jumpNextIcon","_this$state2","pagerList","jumpPrev","jumpNext","firstPager","lastPager","pageBufferSize","dataOrAriaAttributeProps","totalText","pagerProps","prevItemTitle","nextItemTitle","left","right","_active","prevDisabled","nextDisabled","LOCALE","MiniSelect","MiddleSelect","customizeSelectPrefixCls","customLocale","responsive","_useBreakpoint","xs","_React$useContext$pag","pagination","mergedShowSizeChanger","getIconsProps","ellipsis","DoubleLeftOutlined","DoubleRightOutlined","isSmall","extendedClassName","RcPagination","Pagination$6","defaultIndicator","renderIndicator","indicator","dotClassName","shouldDelay","spinning","delay","Spin","_props$spinning","customSpinning","tip","wrapperClassName","setSpinning","updateSpinning","debounce","isNestedPattern","renderSpin","spinClassName","spinElement","containerClassName","SpinFC","spinPrefixCls","spinClassProps","Spin$1","isThenable","thing","ActionButton","clickedRef","close","timeoutId","handlePromiseOnOk","returnValueOfOnOk","actionFn","buttonProps","ActionButton$1","getClickPosition","Modal","handleCancel","onCancel","handleOk","onOk","defaultFooter","okText","_props$okType","okType","cancelText","_props$confirmLoading","confirmLoading","wrapClassNameExtended","OriginModal","ConfirmDialog","okButtonProps","cancelButtonProps","contentPrefixCls","okCancel","autoFocusButton","cancelButton","ConfirmDialog$1","destroyFns","destroyFns$1","defaultRootPrefixCls","confirm","triggerCancel","param","reactUnmount","reactRender","update","configUpdate","withWarn","withInfo","withSuccess","withError","withConfirm","modalGlobalConfig","usePatchElement","setElements","patchElement","originElements","HookModal","innerConfig","setInnerConfig","newConfig","originConfig","HookModal$1","ElementsHolder","_props","_usePatchElement","_usePatchElement2","useModal","actionQueue","setActionQueue","cloneQueue","getConfirmFunc","withFunc","modalRef","closeFunc","modal","destroyAction","updateAction","fns","modalWarn","Modal$1","inlineStyle","TransButton","onKeyUp","noStyle","TransButton$1","StatisticNumber","formatter","precision","decimalSeparator","_props$groupSeparator","groupSeparator","valueNode","cells","negative","int","decimal","padEnd","StatisticNumber$1","Statistic","valueStyle","_props$value","valueRender","_props$decimalSeparat","WrapperStatistic","Statistic$1","timeUnits","formatTimeStr","format","leftDuration","escapeRegex","keepList","templateText","replacedText","unit","padStart","formatCountdown","_config$format","diff","getTime","Countdown","_props$format","onFinish","countdown","stopTimer","syncTimer","formatValue","Countdown$1","Column","ColumnGroup","renderExpandIcon","onExpand","record","expandable","iconPrefix","getColumnKey","column","defaultKey","getColumnPos","renderColumnTitle","safeColumnTitle","res","TreeContext","Indent","isStart","isEnd","baseClassName","Indent$1","ICON_OPEN","ICON_CLOSE","defaultTitle","InternalTreeNode","onNodeClick","onNodeDoubleClick","onNodeSelect","onNodeCheck","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onNodeDragStart","onNodeDragEnter","onNodeDragOver","onNodeDragLeave","onNodeDragEnd","onNodeDrop","onNodeExpand","isLeaf","loadData","hasChildren","treeDisabled","treeCheckable","_this$props$context","onNodeLoad","draggable","_this$props$context2","switcherIconFromProps","switcherIconFromCtx","switcherIcon","_switcherIconDom","switcherCls","switcherIconDom","$custom","dragNodeHighlight","_this$props6$title","_this$props$context3","showIcon","treeIcon","titleRender","wrapClass","$icon","currentIcon","_this$props7","_this$props$context4","dropLevelOffset","indent","dropIndicatorRender","rootDraggable","showIndicator","treeSelectable","_this$props8","domRef","onMouseMove","_this$props$context5","filterTreeNode","dropContainerKey","dropTargetKey","draggingNodeKey","isEndNode","mergedDraggable","draggableWithoutDisabled","dragging","ariaSelected","ContextTreeNode","arrDel","arrAdd","posToArr","getDragChildrenKeys","dragNodeKey","dragChildrenKeys","isLastChild","treeNodeEntity","posArr","isFirstChild","calcDropPosition","dragNode","targetNode","startMousePosition","allowDrop","flattenedNodes","expandKeys","_abstractDropNodeEnti","clientX","clientY","_event$target$getBoun","horizontalMouseOffset","rawDropLevelOffset","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeIndex","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","abstractDragDataNode","abstractDropDataNode","dropAllowed","calcSelectedKeys","parseCheckedKeys","keyProps","conductExpandParent","conductUp","_objectDestructuringEmpty","useUnmount","enabled","setEnabled","React.useLayoutEffect","MotionTreeNode","motionNodes","motionType","onOriginMotionStart","onOriginMotionEnd","treeNodeRequiredProps","targetVisible","triggerMotionEndRef","triggerMotionEnd","TreeNode","RefMotionTreeNode","findExpandedKeys","prevLen","nextLen","find","shorter","longer","cache","getExpandRange","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","HIDDEN_STYLE","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","itemHeight","itemKey","getAccessibilityPath","NodeList","focusable","activeItem","onActiveChange","onListChangeStart","onListChangeEnd","listRef","indentMeasurerRef","scroll","prevExpandedKeys","setPrevExpandedKeys","prevData","setPrevData","transitionData","setTransitionData","transitionRange","setTransitionRange","setMotionType","dataRef","onMotionEnd","latestData","diffExpanded","keyIndex","rangeNodes","newTransitionData","_keyIndex","_rangeNodes","_newTransitionData","mergedData","VirtualList","originList","fullList","originSet","restList","DropIndicator","MAX_RETRY_TIMES","Tree","_args","onDragStart","newExpandedKeys","flattenNodes","onDragEnter","_node$props","_calcDropPosition","dropTargetPos","_this$state3","onDragOver","_assertThisInitialize2","_calcDropPosition2","onDragLeave","onDragEnd","_this$getActiveItem","outsideTree","_this$state4","onDrop","abstractDropNodeProps","dropToChild","dropResult","_this$state5","nodeItem","eventNode","expandAction","onDoubleClick","_this$state6","targetSelected","selectedNodes","_this$state7","oriCheckedKeys","oriHalfCheckedKeys","checkStrictly","onCheck","checkedObj","eventObj","checkedKey","_conductCheck","_checkedKeys","_halfCheckedKeys","keySet","_conductCheck2","loadPromise","_ref$loadedKeys","_ref$loadingKeys","onLoad","promise","currentLoadedKeys","newLoadedKeys","onRightClick","_len3","_key3","_this$state8","_this$state9","treeData","_this$state10","listChanging","targetExpanded","newFlattenTreeData","currentExpandedKeys","expandedKeysToRestore","newActiveKey","_this$state11","_this$state12","_this$state13","_this$props9","atomic","forceState","needSync","allPassed","_this$state14","_this$props10","showLine","_this$props10$tabInde","onContextMenu","onScroll","draggableConfig","entitiesMap","cloneKeyEntities","checkedKeyEntity","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","_style","startPosition","endPosition","renderSwitcherIcon","showLeafIcon","leafIcon","leafCls","FileOutlined","switcher","MinusSquareOutlined","PlusSquareOutlined","CaretDownFilled","_props$showIcon","_switcherIcon","_props$blockNode","blockNode","_props$checkable","_props$selectable","_props$motion","newProps","HolderOutlined","RcTree","nodeProps","TreePure","Record","traverseNodesKey","calcRangeKeys","startKey","endKey","matchKey","convertDirectoryKeysToNodes","restKeys","FolderOpenOutlined","FolderOutlined","getTreeData","DirectoryTree","defaultExpandAll","defaultExpandParent","defaultExpandedKeys","lastSelectedKey","cachedSelectedKeys","getInitExpandedKeys","_convertDataToEntitie","initExpandedKeys","setSelectedKeys","setExpandedKeys","nativeEvent","_node$key","newEvent","ctrlPick","shiftPick","newSelectedKeys","_props$expandAction","connectClassName","ForwardDirectoryTree","DirectoryTree$1","Tree$1","initialValue","FilterSearch","filterSearch","tablePrefixCls","FilterDropdownMenuWrapper","FilterDropdownMenuWrapper$1","hasSubMenu","filters","searchValueMatched","searchValue","text","renderFilterItems","filterMultiple","FilterDropdown","dropdownPrefixCls","columnKey","_props$filterMode","filterMode","_props$filterSearch","filterState","triggerFilter","filterDropdownOpen","onFilterDropdownOpenChange","filterDropdownVisible","onFilterDropdownVisibleChange","filterResetToDefaultFilteredValue","defaultFilteredValue","filtered","triggerVisible","mergedVisible","propFilteredKeys","getFilteredKeysSync","setFilteredKeysSync","onSelectKeys","_ref4","setOpenKeys","setSearchValue","internalTriggerFilter","mergedKeys","onConfirm","onReset","_ref5","closeDropdown","doFilter","_ref6","dropdownMenuClass","onCheckAll","allFilterKeys","flattenKeys","_ref7","getFilterData","dropdownContent","getFilterComponent","getResetDisabled","filterIcon","FilterFilled","collectFilterStates","columns","filterStates","columnPos","filteredValues","injectFilter","_column$filterMultipl","newColumn","renderProps","generateFilterInfo","currentFilters","filterDropdown","originKey","currentData","_filterState$column","onFilter","realKey","useFilter","mergedColumns","onFilterChange","tableLocale","setFilterStates","mergedFilterStates","collectedStates","filteredKeysIsAllNotControlled","newFilterStates","transformColumns","innerColumns","useLazyKVMap","childrenColumnName","getRowKey","mapCacheRef","getRecordByKey","records","rowKey","kvMap","DEFAULT_PAGE_SIZE","getPaginationParam","mergedPagination","paginationObj","pageProp","extendsObject","usePagination","_a$total","paginationTotal","innerPagination","setInnerPagination","maxPage","refreshPagination","SELECTION_COLUMN","SELECTION_ALL","SELECTION_INVERT","SELECTION_NONE","flattenData","useSelection","rowSelection","preserveSelectedRowKeys","selectedRowKeys","defaultSelectedRowKeys","getCheckboxProps","onSelectionChange","onSelectAll","onSelectInvert","onSelectNone","onSelectMultiple","selectionColWidth","selectionType","selections","fixed","customizeRenderCell","hideSelectAll","_ref$checkStrictly","pageData","expandType","mergedSelectedKeys","setMergedSelectedKeys","preserveRecordsRef","updatePreserveRecordsCache","newCache","_useMemo","flattedData","checkboxPropsMap","isCheckboxDisabled","r","_useMemo2","_useMemo3","derivedSelectedKeys","derivedHalfSelectedKeys","derivedSelectedKeySet","derivedHalfSelectedKeySet","setLastSelectedKey","availableKeys","triggerSingleSelection","mergedSelections","selectionList","selection","checkProps","_a2","col","cloneColumns","recordKeys","checkedCurrentAll","checkedCurrentSome","onSelectAllChange","changeKeys","customizeSelections","onSelectionClick","allDisabledData","allDisabled","allDisabledAndChecked","allDisabledSomeChecked","renderCell","mergedIndeterminate","pointKeys","recordKey","recordIndex","rangeKeys","changedKeys","originCheckedKeys","nextCheckedKeys","tempKeySet","renderSelectionCell","_renderCell","INTERNAL_COL_DEFINE","_cloneColumns","_cloneColumns2","_toArray","expandColumn","restColumns","selectionColumnIndex","prevCol","nextCol","mergedFixed","selectionColumn","ASCEND","DESCEND","getMultiplePriority","getSortFunction","sorter","nextSortDirection","sortDirections","collectSortStates","sortStates","pushState","injectSorter","sorterStates","triggerSorter","defaultSortDirections","tableShowSorterTooltip","showSorterTooltip","sorterState","sorterOrder","nextSortOrder","upNode","CaretUpOutlined","downNode","CaretDownOutlined","cancelSort","triggerAsc","triggerDesc","sortTip","renderSortTitle","cell","originOnClick","originOKeyDown","renderTitle","displayTitle","stateToInfo","sortOrder","generateSorterInfo","getSortData","innerSorterStates","cloneData","runningSorters","record1","record2","compareFn","compareResult","subRecords","useFilterSorter","onSorterChange","setSortStates","mergedSorterStates","validate","validateStates","patchStates","multipleMode","columnTitleSorterProps","sortColumns","sortState","newSorterStates","getSorters","fillTitle","columnTitleProps","cloneColumn","useTitleColumns","filledColumns","InternalTable","_classNames3","customizeDropdownPrefixCls","dataSource","_props$rowKey","rowClassName","legacyChildrenColumnName","expandedRowRender","expandIconColumnIndex","indentSize","_props$showSorterTool","baseColumns","convertChildrenToColumns","needResponsive","matched","tableProps","_React$useContext$loc","rawData","mergedExpandable","_mergedExpandable$chi","internalRefs","_useLazyKVMap","_useLazyKVMap2","changeEventInfo","triggerOnChange","reset","changeInfo","_useSorter","useSorter","_useSorter2","transformSorterColumns","sorterTitleProps","sortedData","_useFilter","_useFilter2","transformFilterColumns","mergedFilters","filterKey","_useTitleColumns","_useTitleColumns2","transformTitleColumns","onPaginationChange","_usePagination","_usePagination2","resetPagination","_mergedPagination$cur","_mergedPagination$pag","_useSelection","_useSelection2","transformSelectionColumns","selectedKeySet","internalRowClassName","mergedRowClassName","topPaginationNode","bottomPaginationNode","paginationSize","renderPagination","defaultPosition","topPos","bottomPos","isDisable","spinProps","wrapperClassNames","RcTable","INTERNAL_HOOKS","ForwardTable","Table","Summary","Table$1","Editable","ariaLabel","_ref$autoSize","onSave","onEnd","component","_ref$enterIcon","enterIcon","EnterOutlined","inComposition","lastKeyCode","setCurrent","confirmChange","ctrlKey","altKey","metaKey","textClassName","textAreaClassName","Editable$1","useMergedConfig","propConfig","templateConfig","support","useUpdatedEffect","conditions","useUpdatedEffect$1","Typography","_a$component","setContentRef","typographyDirection","contextDirection","componentClassName","OriginTypography","cuttable","getNodesLen","nodeList","totalLen","sliceNodes","currLen","currentNodeList","canCut","nodeLen","restLen","NONE","PREPARE","WALKING","DONE_WITH_ELLIPSIS","DONE_WITHOUT_ELLIPSIS","Ellipsis","enabledMeasure","fontSize","onEllipsis","_React$useState2$","startLen","midLen","endLen","setCutLength","walkingState","setWalkingState","setSingleRowHeight","singleRowRef","midRowRef","useIsomorphicLayoutEffect","midHeight","_midHeight","_maxHeight","nextStartLen","nextEndLen","nextMidLen","measureStyle","renderMeasure","renderMeasureSlice","sliceNodeList","Ellipsis$1","EllipsisTooltip","enabledEllipsis","isEllipsis","EllipsisTooltip$1","wrapperDecorations","mark","code","underline","del","strong","italic","currentContent","needed","tag","getNode","dom","defaultNode","needDom","toList","ELLIPSIS_STR","Base","copyable","textLocale","typographyRef","editIconRef","textProps","_useMergedConfig","_useMergedConfig2","enableEdit","editConfig","editing","setEditing","_editConfig$triggerTy","triggerType","triggerEdit","edit","onEditClick","onEditChange","onEditCancel","_useMergedConfig3","_useMergedConfig4","enableCopy","copyConfig","copied","setCopied","copyIdRef","copyOptions","cleanCopyId","onCopyClick","copy","isLineClampSupport","setIsLineClampSupport","isTextOverflowSupport","setIsTextOverflowSupport","setExpanded","isJsEllipsis","setIsJsEllipsis","_React$useState11","_React$useState12","isNativeEllipsis","setIsNativeEllipsis","_React$useState13","_React$useState14","isNativeVisible","setIsNativeVisible","_useMergedConfig5","_useMergedConfig6","enableEllipsis","ellipsisConfig","mergedEnableEllipsis","_ellipsisConfig$rows","needMeasureEllipsis","isStyleSupport","cssEllipsis","isMergedEllipsis","cssTextOverflow","cssLineClamp","onExpandClick","_React$useState15","_React$useState16","ellipsisWidth","setEllipsisWidth","_React$useState17","_React$useState18","ellipsisFontSize","setEllipsisFontSize","onJsEllipsis","jsEllipsis","textEle","currentEllipsis","observer","topAriaLabel","isValid","renderExpand","expandContent","renderEdit","tooltip","editTitle","EditOutlined","renderCopy","tooltips","tooltipNodes","iconNodes","copyTitle","systemStr","CopyOutlined","renderOperations","renderExpanded","renderEllipsis","needEllipsis","resizeRef","wrappedContext","Base$1","Link","rel","mergedProps","Link$2","Paragraph$1","Text","mergedEllipsis","Text$1","TITLE_ELE_LIST","_props$level","Title$1","Typography$1","Pagination$4","TimePicker$5","DatePicker$5","ruRU","Pagination$3","TimePicker$4","DatePicker$4","idID","Pagination$2","TimePicker$3","DatePicker$3","ukUA","Pagination$1","TimePicker$2","DatePicker$2","esES","TimePicker$1","DatePicker$1","zhTW","zhCN","plural","word","num","forms","relativeTimeWithPlural","withoutSuffix","monthsParse","moment","hour","minute","isLower","period","weekdaysCaseReplace","weekdays","nounCase","processHoursFunction","meridiem","hours","minutes","monthsShortDot","monthsShort","monthsRegex","hm","StudentCourseFilter","ContactCourseFilter","changes","_Student","Contact","student","json","StudentSession","Student","__decorateClass","observable","_StudentSession","Entity","session","isEmpty","computed","_School","BaseSchool","settings","SchoolProfileSettings","School","_SchoolCourse","course","StudentCourse","ContactCert","allowUndefined","SchoolCourse","_StudentCourse","ContactCourse","Course","CourseItem","studentCourse","StudentCourseProgress","progress","StudentCourseItemProgress","StudentCourseItemBaseProgress","_StudentCourseItemProgress","SchoolContentItemProgressRating","StudentCourseSectionProgress","root","module","VERSION","zones","links","countries","guesses","cachedGuess","logError","momentVersion","major","minor","charCodeToInt","charCode","unpackBase60","parts","whole","fractional","multiplier","out","sign","arrayToInt","array","intToUntil","mapIndices","indices","unpack","untils","Zone","packedString","unpacked","zone_name","country_code","offsetNext","offsetPrev","tz","mom","Country","country_name","zone_names","OffsetAt","at","timeString","abbr","ZoneScore","zone","offsetAt","findChange","low","high","mid","userOffsets","startYear","last","change","sortZoneScores","addToGuesses","guessesForUserOffsets","offsetsLength","filteredGuesses","j","guessesOffset","rebuildGuess","intlName","normalizeName","zoneScores","zoneScore","getZone","guess","ignoreCache","addZone","packed","normalized","caller","getNames","getCountryNames","addLink","aliases","alias","normal0","normal1","addCountries","country_zones","getCountry","zonesForCountry","country","with_offset","zoneExists","needsOffset","isUnixTimestamp","keepTime","z","abbrWrap","old","resetZoneWrap","resetZoneWrap2","momentProperties","momentTimezoneModule","_StudentCourseItem","prevItemSection","_e","CourseItemType","isEveryChildCompleted","section","parentAvailability","FlowTimeDelayCondition","prevSection","targetDate","RegularTimeDelayCondition","CourseItemAvailability","prevRequiredItem","previousItem","studentCourseItem","CoursePlan","AccelFile","StudentCourseItemTask","StudentCourseItemTest","isNil","TimeSpan","baseDate","timeDelayValue","timeActive","waitUntilTime","daysOfWeekActive","waitUntilDaysOfWeek","targetTime","adjustedDelay","targetDays","day","dayOfWeekMap","currentTz","StudentCourseItem","StudentCourseItemFilter","BaseFilter","SortingDirection","_StudentCourseItemTest","_StudentCourseItemTask","CourseItemTask","CourseItemTaskAnswerStatus","CourseItemTaskAnswer","CourseItemTaskField","task","_SchoolLibrary","library","SchoolLibrary","_SchoolLibraryItemProgress","SchoolLibraryItemProgress","_SchoolLibraryItem","LibraryItem","LibraryItemType","step","steps","schoolLibraryItem","SchoolLibraryItem","SchoolLibraryItemFilter","_SchoolContentItem","SchoolContentSectionType","SchoolContentItemType","SchoolContentItem","SchoolContentItemFilter","FetchStudentCoursesResponse","ApiResponse","response","ApiRequest","courseItemId","fields","HttpMethod","StartCourseRequest","courseId","StartCourseResponse","SendFeedbackRequest","studentCourseId","SendFeedbackResponse","StudentCourseApi","FetchStudentCourseResponse","FetchSchoolCoursesRequest","FetchSchoolCoursesResponse","SchoolCourseApi","CompleteCourseItemTheoryRequest","studentCourseItemProgressId","CompleteCourseItemTheoryResponse","CreateTaskAnswerRequest","model","CreateTaskAnswerResponse","SaveTaskAnswerRequest","SaveTaskAnswerResponse","CreateTaskAnswerCommentRequest","CreateTaskAnswerCommentResponse","ResetTaskAnswerStatusRequest","answerId","ResetTaskAnswerStatusResponse","DeleteTaskAnswerCommentRequest","commentId","DeleteTaskAnswerCommentResponse","SaveTaskAnswerCommentRequest","SaveTaskAnswerCommentResponse","FetchTaskAnswerCommentsRequest","FetchTaskAnswerCommentsResponse","CourseItemTaskAnswerCommentFilter","CourseItemTaskAnswerComment","StudentCourseItemApi","courseItemTestId","isRight","FetchStudentCourseItemsResponse","FetchStudentCourseItemResponse","FetchSchoolSettingsRequest","FetchSchoolSettingsResponse","SchoolSettingsApi","SaveStudentRequest","SaveStudentResponse","ResendEmailConfirmationRequest","ResendEmailConfirmationResponse","SelectLangRequest","lang","SelectLangResponse","UpdatePasswordRequest","UpdatePasswordResponse","SubscriptionApi","FetchSubcriptionsResponse","FetchSubcriptionResponse","SaveSubscriptionResponse","FetchSubscriptionRequest","ContactLicense","FetchSubscriptionsRequest","ContactLicenseFilter","LicenseApi","FetchLicensesResponse","StudentApi","OrderApi","BonusTransactionApi","CrudApi","PurchaseOrder","StudentBonusTransaction","ContactInFilterRequest","filterId","contactId","ContactInFilterResponse","KeepaliveRequest","KeepaliveResponse","RunCustomEventRequest","RunCustomEventResponse","TrackFormRequest","TrackFormResponse","UpdateLocalizationRequest","UpdateLocalizationResponse","ServiceApi","FetchCourseItemsRequest","planId","FetchCourseItemsResponse","FetchCourseItemRequest","itemId","FetchCourseItemResponse","FetchCourseRequest","FetchCourseResponse","FetchCoursePlansRequest","FetchCoursePlansResponse","CoursePlanFilter","CoursePreviewApi","FetchStudentCourseRequest","FetchStudentCourseItemRequest","FetchStudentCourseItemsRequest","CompleteStudentCourseItemRequest","CompleteStudentCourseItemResponse","ResetStudentCourseItemRequest","ResetStudentCourseItemResponse","UnblockStudentCourseItemRequest","UnblockStudentCourseItemResponse","BlockStudentCourseItemRequest","BlockStudentCourseItemResponse","StudentCoursePreviewApi","FetchForumThreadRequest","threadId","FetchForumThreadResponse","ForumThread","ForumTopic","CreateTopicRequest","CreateTopicResponse","replyCommentFields","commentFields","FetchTopicCommentsRequest","FetchTopicCommentsResponse","TopicComment","TopicCommentFilter","FetchTopicRequest","topicId","FetchTopicResponse","CreateTopicCommentRequest","CreateTopicCommentResponse","UpdateTopicCommentRequest","UpdateTopicCommentResponse","DeleteTopicCommentRequest","DeleteTopicCommentResponse","UpdateTopicRequest","UpdateTopicResponse","FetchTopicCommentPositionRequest","sequenceNumber","FetchTopicCommentPositionResponse","DeleteTopicRequest","DeleteTopicResponse","BlockStudentRequest","BlockStudentResponse","CreateReactionRequest","CreateReactionResponse","ForumReaction","DeleteReactionRequest","reactionId","DeleteReactionResponse","ForumApi","FetchStatusRequest","studentId","messageId","FetchStatusResponse","UnsubscribeRequest","UnsubscribeResponse","StudentEmailBroadcastApi","FetchSchoolLibraryItemsRequest","libraryId","FetchSchoolLibraryItemsResponse","FetchSchoolLibraryItemRequest","FetchSchoolLibraryItemResponse","FetchSchoolLibraryRequest","FetchSchoolLibraryResponse","SchoolLibraryApi","FetchCourseItemRatingRequest","FetchCourseItemRatingsResponse","SchoolContentItemProgressRatingFilter","SaveCourseItemRatingRequest","rating","SaveCourseItemRatingResponse","CreateCourseItemRatingRequest","sectionType","targetItemId","targerProgressId","CreateCourseItemRatingResponse","CourseItemRatingApi","FetchCourseItemCommentsRequest","progressId","FetchCourseItemCommentsResponse","SchoolContentItemCommentFilter","SchoolContentItemComment","SaveCourseItemCommentRequest","comment","SaveCourseItemCommentResponse","CreateCourseItemCommentRequest","targetProgressId","ratingId","CreateCourseItemCommentResponse","RemoveCourseItemCommentRequest","RemoveCourseItemCommentResponse","CourseItemCommentApi","LoginRequest","email","password","LoginResponse","RefreshTokenRequest","refreshToken","RefreshTokenResponse","RegisterRequest","RegisterResponse","ResetPasswordRequest","confirmPassword","ResetPasswordResponse","ForgotPasswordRequest","ForgotPasswordResponse","ConfirmEmailRequest","ConfirmEmailResponse","ConfirmInviteRequest","ConfirmInviteResponse","CheckInviteRequest","CheckInviteResponse","LoginTokenRequest","LoginTokenResponse","LogoutRequest","LogoutResponse","ProlongSessionRequest","ProlongSessionResponse","FetchMeRequest","FetchMeResponse","LoginAsRequest","LoginAsResponse","SendInviteRequest","SendInviteResponse","FetchContactRequest","FetchContactResponse","RegisterContactResponse","FetchEmailNotificationsSubscriptionStatusRequest","FetchEmailNotificationsSubscriptionStatusResponse","UnsubscribeEmailNotificationsRequest","UnsubscribeEmailNotificationsResponse","AuthApi","SaveNotificationRequest","toOptional","SaveNotificationResponse","FetchNotificationsRequest","FetchNotificationsResponse","ApiListResponse","UserNotification","UserNotificationFilter","DeleteNotificationRequest","DeleteNotificationResponse","FetchNotificationSettingsRequest","FetchNotificationSettingsResponse","UserNotificationSettings","SaveNotificationSettingsRequest","SaveNotificationSettingsResponse","NotificationSettingsApi","FetchCountNotificationsRequest","FetchCountNotificationsResponse","MarkAllAsReadNotificationsRequest","MarkAllAsReadNotificationsResponse","CreateNotificationChannelRequest","CreateNotificationChannelResponse","SaveNotificationChannelRequest","SaveNotificationChannelResponse","NotificationChannelApi","NotificationApi","PartnershipApi","MemberApi","TransactionApi","TransactionRequestApi","OfferApi","PartnershipOrderApi","UtmTagApi","PartnershipTotalsFilter","PartnershipTransaction","PartnershipMember","PartnershipOffer","PartnershipTransactionRequest","AnnouncementApi","Announcement","GamificationApi","GamificationAchievement","GamificationAchievementFilter","GamificationLeader","GamificationLeaderFilter","GamificationProductApi","GamificationTransactionApi","GamificationProduct","GamificationTransaction","Api","BaseApi","client","FileApi","FileManagerApi","LocalizationApi","JwtApiClient","HttpApiClient","apiUrl","userStore","hub","headers","ResponseType","attempt","HttpStatusCode","UserStore","TokenStore","jwtDecoder","cookieClient","user","score","ServiceStore","locStore","inject","LocalizationStore","reloadPageIfSuccess","UIStore","langDetector","deviceStore","LangDetector","DeviceStore","defaultTab","Lang","includeTime","includeSeconds","chatController","phoneController","SchoolStore","runInAction","Action","PopStateEventType","createBrowserHistory","createBrowserLocation","window","globalHistory","pathname","search","hash","createLocation","createBrowserHref","to","createPath","getUrlBasedHistory","invariant","cond","createKey","getHistoryState","location","parsePath","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","getIndex","handlePop","nextIndex","delta","history","historyState","url","createURL","ResultType","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","flattenRoute","route","relativePath","meta","joinPaths","routesMeta","computeScore","_route$path","exploded","explodeOptionalSegments","segments","first","isOptional","required","restExploded","subpath","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","end","remainingPathname","matchPath","normalizePathname","pattern","matcher","compiledParams","compilePath","pathnameBase","captureGroups","memo","paramName","splatValue","safelyDecodeURIComponent","caseSensitive","params","regexpSource","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","char","field","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","idx","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","isRouteErrorResponse","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","useHref","_temp","relative","useInRouterContext","UNSAFE_invariant","navigator","useResolvedPath","joinedPathname","useLocation","useMatch","cb","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","future","routePathnamesJson","UNSAFE_getResolveToMatches","OutletContext","useOutlet","outlet","useParams","routeMatch","_temp2","useRoutes","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_renderMatches","DefaultErrorComponent","useRouteError","preStyles","devInfo","defaultErrorElement","RenderErrorBoundary","errorInfo","RenderedRoute","routeContext","_dataRouterState2","_dataRouterState","errors","errorIndex","renderFallback","fallbackIndex","loaderData","needsToRunLoader","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","warningOnce","getChildren","DataRouterHook","DataRouterStateHook","useDataRouterContext","hookName","ctx","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","_state$errors","routeId","router","alreadyWarned","Navigate","isStatic","navigate","jsonPath","Outlet","Router","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","useLoc","useInstance","Localization","PageContent","margin","backgroundColor","transparent","flex1","customStyles","styles","jsx","combineClasses","PageContent$1","useSchool","useLang","serviceStore","schoolStore","selectLang","ApiSettings","LocalizationSettings","AWSSettings","HubSettings","ChatSettings","NewRelicSettings","QuizSettings","CheckoutSettings","AppSettings","envSettings","env","Env","sharedSettings","devSettings","prodSettings","appSettings","useSettings","Price","price","currency","colon","priceClassName","fractionalClassname","truncateIfFractionalZero","school","priceComponent","NumberFormat","isUsd","Currency","curLoc","Loc","jsxs","EZEditorView","__vitePreload","SchoolEZEditorView","axlData","Suspense","ScriptInjection","script","executeJs","UtmTagFilter","UtmTagsStore","CRUDListStore","UtmTagSelect","loc","selectRef","SelectAsync","combineRefs","UtmTagSelect$1","provider","useApi","AnalyticStatistic","hideSubtitle","titleExtra","titleClassName","clickable","formattedValue","Duration","Humanize","Fragment","AnalyticStatisticSkeleton","ItemTreeSearch","searchOpen","setSearchOpen","handleSearch","useUpdateEffect","InputSearch","ItemTreeSearch$1","MissingWords","words","languages","project","newWordState","setNewWordState","setFilter","openWord","PlusCircleOutlined","DevActions","missingWordsDrawer","useDrawer","InfoOutlined","_objectWithoutPropertiesLoose","excluded","sourceKeys","isModifiedEvent","shouldProcessLinkClick","START_TRANSITION","startTransitionImpl","BrowserRouter","historyRef","setStateImpl","v7_startTransition","isBrowser","ABSOLUTE_URL_REGEX","reloadDocument","preventScrollReset","unstable_viewTransition","UNSAFE_NavigationContext","absoluteHref","isExternal","currentUrl","targetUrl","internalOnClick","useLinkClickHandler","replaceProp","useBeforeUnload","capture","AuthLayout","LearnLayout","Login","LoginToken","Register","ForgotPassword","ResetPassword","LearnPage","ConfirmEmail","ConfirmInvite","PreviewPage","StudentPreviewPage","ForumPage","UnsubscribeEmails","LearnLibraryPage","SchoolMaterialsPage","LoginAs","AuthContactPage","BillingPage","UnsubscribeEmailNotifications","AccessPage","PartnershipPage","GamificationPage","BasicLayoutRouting","isAuthenticated","LoadingOverlay","LayoutSelector","LocProvider","ready","setReady","targetLang","LocProvider$1","UserProvider","updateTokenTimer","useTimer","UserProvider$1","defineProperties","linkEl","faviconSize","drawIcon","src","img","canvas","radius","Favicon","_ret","activeInstance","isAnimated","intervalId","animateFavicon","nextAnimationIndex","reactFavicon","exports","_react","_propTypes","_interopRequireDefault","MetaTagsContext","_Component","_default","utils","filterAndArrangeTags","getDuplicateTitle","getDuplicateCanonical","getDuplicateMeta","appendChild","removeChild","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","arr2","camelCaseProps","uniqueIdentifiersI","uniqueIdentifiers","uniqueIdentifiersAll","filterOutMetaWithId","metas","headElms","canonicalLink","elm","removeDuplicateMetas","addedMeta","identifier","filteredMetas","_loop","addMeta","identifierValue","existing","duplicates","childrens","docFrag","ln","_interopRequireWildcard","_reactDom","_utils","newObj","MetaTags","oldProps","extract","headComponent","childStr","tempHead","headHtml","_meta_tags","ReactTitle","_meta_tags_context","_react_title","SchoolSupportChatChangedSubscription","HubSubscription","SchoolProvider","fileProvider","FileProvider","HubClient","sub","payload","SchoolProvider$1","GamificationBalanceSubscription","GamificationBalanceProvider","GamificationBalanceProvider$1","NotificationPayload","Updatable","GamificationAchievementPayload","NotificationSubscription","NotificationCenterStore","Disposable","clear","GamificationCard","header","ArrowRightOutlined","GamificationAchievementPreview","achievement","_ctx","headerExtra","hideDate","hideInfo","Context","Image","ValuePlaceholder","HelpText","DateTime","GamificationAchievementsCardPlaceholder","TrophyOutlined","GamificationAchievementsCard","drawer","main","isWorker","workerSize","canUseWorker","canUsePaths","canDrawBitmap","ModulePromise","Prom","bitmapMapper","skipTransform","TIME","frame","cancel","frames","lastFrameTime","onFrame","getWorker","worker","prom","resolves","decorate","execute","offscreen","done","workerDone","msg","defaults","convert","isOk","onlyPositiveInt","randomInt","toDecimal","colorsToRgb","colors","hexToRgb","getOrigin","setCanvasWindowSize","setCanvasRectSize","getCanvas","ellipse","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","randomPhysics","radAngle","radSpread","updateFetti","fetti","x1","y1","x2","y2","transformPath2D","scaleX","scaleY","matrix","rot","innerRadius","outerRadius","spikes","animate","fettis","resizer","animatingFettis","animationFrame","onDone","confettiCannon","globalOpts","isLibCanvas","allowResize","hasResizeEventRegistered","globalDisableForReducedMotion","shouldUseWorker","initialized","preferLessMotion","animationObj","fireLocal","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","shapes","scalar","flat","temp","startX","startY","fire","disableForReducedMotion","defaultFire","getDefaultFire","pathString","pathMatrix","path2d","t1","t2","shapeFromPath","pathData","tempCanvas","tempCtx","maxSize","minX","minY","maxX","maxY","maxDesiredSize","scale","shapeFromText","textData","fontFamily","font","padding","confetti","GamificationAchievementNotification","fireConfetti","particleRatio","GamificationAchievementNotification$1","NotificationCenter","renderNotification","NotificationCenter$1","App","NewRelic","AppConfig","keygen","geoLocator","useInstances","KeyGenerator","GeoLocator","AccelProvider","App$1","toValue","toFactory","JwtDecoder","CookieStorage","storage","ApiClient","toExisting","AuthCookieClient","decoder","mobxConfigure","ReactDOM"],"sources":["../../../node_modules/.pnpm/abortcontroller-polyfill@1.7.5/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/global.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/fails.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/descriptors.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/function-bind-native.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/function-call.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/function-uncurry-this.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/classof-raw.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/indexed-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-null-or-undefined.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/document-all.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-callable.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/get-built-in.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-is-prototype-of.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/engine-user-agent.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/engine-v8-version.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/symbol-constructor-detection.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-symbol.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/try-to-string.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/a-callable.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/get-method.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/ordinary-to-primitive.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/define-global-property.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/shared-store.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/shared.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/has-own-property.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/uid.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-primitive.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-property-key.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/document-create-element.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/v8-prototype-define-bug.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/an-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-define-property.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/function-name.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/inspect-source.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/weak-map-basic-detection.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/shared-key.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/hidden-keys.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/internal-state.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/make-built-in.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/define-built-in.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/math-trunc.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-integer-or-infinity.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-length.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/length-of-array-like.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/array-includes.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/own-keys.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-forced.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/export.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-keys.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-to-array.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.values.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/path.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/es/object/values.js","../../src/polyfills.ts","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/en_US.js","../../../node_modules/.pnpm/rc-picker@2.7.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/en_US.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/en_US.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/en_US.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/default.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/modal/locale.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale-provider/context.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale-provider/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale-provider/LocaleReceiver.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/message/hooks/useMessage.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/message/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/notification/hooks/useNotification.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/notification/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/config-provider/context.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/config-provider/cssVariables.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/config-provider/DisabledContext.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/config-provider/SizeContext.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/config-provider/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/getDataOrAriaProps.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/reactNode.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/getScroll.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/easings.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/scrollTo.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/empty/empty.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/empty/simple.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/empty/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/config-provider/defaultRenderEmpty.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/form/context.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/type.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/motion.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/statusUtils.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/select/utils/iconUtil.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/space/Compact.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/select/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/hooks/useForceUpdate.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/responsiveObserve.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/grid/hooks/useBreakpoint.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/colors.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/placements.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tooltip/index.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/context/IdContext.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/context/MenuContext.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/context/PathContext.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/context/PrivateContext.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/hooks/useAccessibility.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/utils/timeUtil.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/hooks/useKeyRecords.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/hooks/useMemoCallback.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/hooks/useUUID.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/hooks/useActive.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/hooks/useDirectionStyle.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/Icon.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/utils/warnUtil.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/MenuItem.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/SubMenu/SubMenuList.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/utils/nodeUtil.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/placements.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/utils/motionUtil.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/SubMenu/index.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/Menu.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/MenuItemGroup.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/Divider.js","../../../node_modules/.pnpm/rc-menu@9.8.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-menu/es/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/isNumeric.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/layout/layout.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/layout/Sider.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/menu/MenuDivider.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/menu/MenuContext.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/menu/MenuItem.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/menu/SubMenu.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/menu/hooks/useItems.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/menu/OverrideContext.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/menu/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/raf.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/wave.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/button/button-group.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/button/LoadingIcon.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/button/button.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/styleChecker.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/space/Item.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/space/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/dropdown/dropdown-button.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/dropdown/dropdown.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/radio/context.js","../../../node_modules/.pnpm/rc-checkbox@3.0.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-checkbox/es/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/radio/radio.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/radio/group.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/radio/radioButton.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/radio/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Element.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Avatar.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Button.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Node.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Image.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Input.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Paragraph.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Title.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/skeleton/Skeleton.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabContext.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabPanelList/TabPane.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabPanelList/index.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/hooks/useOffsets.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/hooks/useSyncState.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/hooks/useTouchMove.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/hooks/useUpdate.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/hooks/useVisibleRange.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/util.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabNavList/AddButton.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabNavList/OperationNode.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabNavList/TabNode.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabNavList/index.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/TabNavList/Wrapper.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../../../node_modules/.pnpm/rc-tabs@12.5.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tabs/es/Tabs.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tabs/hooks/useAnimateConfig.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tabs/hooks/useLegacyItems.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tabs/TabPane.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tabs/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/card/Grid.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/card/Card.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/card/Meta.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/card/index.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/utils/conductUtil.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/utils/treeUtil.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/checkbox/Group.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/checkbox/Checkbox.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/checkbox/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/grid/RowContext.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/grid/col.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/grid/row.js","../../../node_modules/.pnpm/@rc-component+portal@1.1.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/@rc-component/portal/es/Context.js","../../../node_modules/.pnpm/@rc-component+portal@1.1.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/@rc-component/portal/es/useDom.js","../../../node_modules/.pnpm/@rc-component+portal@1.1.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/@rc-component/portal/es/util.js","../../../node_modules/.pnpm/@rc-component+portal@1.1.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/@rc-component/portal/es/useScrollLocker.js","../../../node_modules/.pnpm/@rc-component+portal@1.1.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/@rc-component/portal/es/mock.js","../../../node_modules/.pnpm/@rc-component+portal@1.1.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/@rc-component/portal/es/Portal.js","../../../node_modules/.pnpm/rc-drawer@6.1.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-drawer/es/DrawerPanel.js","../../../node_modules/.pnpm/rc-drawer@6.1.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-drawer/es/context.js","../../../node_modules/.pnpm/rc-drawer@6.1.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-drawer/es/util.js","../../../node_modules/.pnpm/rc-drawer@6.1.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-drawer/es/DrawerPopup.js","../../../node_modules/.pnpm/rc-drawer@6.1.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-drawer/es/Drawer.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/drawer/index.js","../../../node_modules/.pnpm/rc-dialog@9.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-dialog/es/Dialog/Mask.js","../../../node_modules/.pnpm/rc-dialog@9.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-dialog/es/util.js","../../../node_modules/.pnpm/rc-dialog@9.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","../../../node_modules/.pnpm/rc-dialog@9.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-dialog/es/Dialog/Content/Panel.js","../../../node_modules/.pnpm/rc-dialog@9.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-dialog/es/Dialog/Content/index.js","../../../node_modules/.pnpm/rc-dialog@9.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-dialog/es/Dialog/index.js","../../../node_modules/.pnpm/rc-dialog@9.0.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-dialog/es/DialogWrap.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/Group.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/utils.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/Input.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/Password.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/Search.js","../../../node_modules/.pnpm/rc-textarea@0.4.7_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-textarea/es/calculateNodeHeight.js","../../../node_modules/.pnpm/rc-textarea@0.4.7_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-textarea/es/ResizableTextArea.js","../../../node_modules/.pnpm/rc-textarea@0.4.7_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-textarea/es/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/ClearableLabeledInput.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/TextArea.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/input/index.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/Pager.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/KeyCode.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/Options.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/zh_CN.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/Pagination.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/pagination/Select.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/pagination/Pagination.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/spin/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/ActionButton.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/modal/Modal.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/modal/ConfirmDialog.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/modal/destroyFns.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/modal/confirm.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/hooks/usePatchElement.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/modal/useModal/HookModal.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/modal/useModal/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/modal/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/transButton.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/statistic/Number.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/statistic/Statistic.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/statistic/utils.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/statistic/Countdown.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/statistic/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/Column.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/ColumnGroup.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/ExpandIcon.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/util.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/contextTypes.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/Indent.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/TreeNode.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/util.js","../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/useUnmount.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/MotionTreeNode.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/utils/diffUtil.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/NodeList.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/DropIndicator.js","../../../node_modules/.pnpm/rc-tree@5.7.6_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-tree/es/Tree.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tree/utils/dropIndicator.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tree/utils/iconUtil.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tree/Tree.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tree/utils/dictUtil.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tree/DirectoryTree.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/tree/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/_util/hooks/useSyncState.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/useFilter/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/useLazyKVMap.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/usePagination.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/useSelection.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/useSorter.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/hooks/useTitleColumns.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/table/Table.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Editable.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/hooks/useMergedConfig.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/hooks/useUpdatedEffect.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Typography.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Base/Ellipsis.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Base/EllipsisTooltip.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Base/index.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Link.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Paragraph.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Text.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/Title.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/typography/index.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/ru_RU.js","../../../node_modules/.pnpm/rc-picker@2.7.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/ru_RU.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/ru_RU.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/ru_RU.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/ru_RU.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/id_ID.js","../../../node_modules/.pnpm/rc-picker@2.7.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/id_ID.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/id_ID.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/id_ID.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/id_ID.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/uk_UA.js","../../../node_modules/.pnpm/rc-picker@2.7.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/uk_UA.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/uk_UA.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/uk_UA.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/uk_UA.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/es_ES.js","../../../node_modules/.pnpm/rc-picker@2.7.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/es_ES.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/es_ES.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/es_ES.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/es_ES.js","../../../node_modules/.pnpm/rc-pagination@3.2.0_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/zh_TW.js","../../../node_modules/.pnpm/rc-picker@2.7.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/zh_TW.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/zh_TW.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/zh_TW.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/zh_TW.js","../../../node_modules/.pnpm/rc-picker@2.7.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/zh_CN.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/zh_CN.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/zh_CN.js","../../../node_modules/.pnpm/antd@4.24.10_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/zh_CN.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/ru.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/uk.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/id.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/es.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/zh-tw.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/zh-cn.js","../../src/models/student-course/student-course-filter.ts","../../src/models/student/student.ts","../../src/models/student/student-session.ts","../../src/models/school/school.ts","../../src/models/school-course/school-course.ts","../../src/models/student-course/student-course.ts","../../src/models/student-course/student-course-progress/student-course-progress.ts","../../src/models/student-course-item/student-course-item-progress/student-course-item-progress.ts","../../../node_modules/.pnpm/moment-timezone@0.5.43/node_modules/moment-timezone/moment-timezone.js","../../../node_modules/.pnpm/moment-timezone@0.5.43/node_modules/moment-timezone/index.js","../../src/models/student-course-item/student-course-item.ts","../../src/models/student-course-item/student-course-item-filter.ts","../../src/models/student-course-item/student-course-item-test/student-course-item-test.ts","../../src/models/student-course-item/student-course-item-task/student-course-item-task.ts","../../src/models/school-library/school-library.ts","../../src/models/school-library/school-library-item-progress/school-library-item-progress.ts","../../src/models/school-library/school-library-item/school-library-item.ts","../../src/models/school-library/school-library-item/school-library-item-filter.ts","../../src/models/SchoolContent/SchoolContentItem.ts","../../src/api/methods/student/student-course/types/fetch-student-courses.ts","../../src/api/methods/student/student-course/types/fetch-student-course.ts","../../src/api/methods/student/student-course/types/start-course.ts","../../src/api/methods/student/student-course/types/send-feedback.ts","../../src/api/methods/student/student-course/index.ts","../../src/api/methods/school-course/types/fetch.ts","../../src/api/methods/school-course/index.ts","../../src/api/methods/student/student-course-item/types/fetch-student-course-items.ts","../../src/api/methods/student/student-course-item/types/fetch-student-course-item.ts","../../src/api/methods/student/student-course-item/types/complete-course-item-theory.ts","../../src/api/methods/student/student-course-item/types/create-task-answer.ts","../../src/api/methods/student/student-course-item/types/save-task-answer.ts","../../src/api/methods/student/student-course-item/types/create-task-answer-comment.ts","../../src/api/methods/student/student-course-item/types/reset-task-answer-status.ts","../../src/api/methods/student/student-course-item/types/delete-task-answer-comment.ts","../../src/api/methods/student/student-course-item/types/save-task-answer-comment.ts","../../src/api/methods/student/student-course-item/types/fetch-task-answer-comments.ts","../../src/api/methods/student/student-course-item/index.ts","../../src/api/methods/school-settings/types/fetch-school-settings.ts","../../src/api/methods/school-settings/types/index.ts","../../src/api/methods/student/student/types/save-student.ts","../../src/api/methods/student/student/types/resend-email-confirmation.ts","../../src/api/methods/student/student/types/select-lang.ts","../../src/api/methods/student/student/types/update-password.ts","../../src/api/methods/student/student/subscription/index.ts","../../src/api/methods/student/student/license/index.ts","../../src/api/methods/student/student/index.ts","../../src/api/methods/service/types/contact-in-filter.ts","../../src/api/methods/service/types/keepalive.ts","../../src/api/methods/service/types/run-custom-event.ts","../../src/api/methods/service/types/track-form.ts","../../src/api/methods/service/types/update-localization.ts","../../src/api/methods/service/index.ts","../../src/api/methods/course-preview/types/fetch-course-items.ts","../../src/api/methods/course-preview/types/fetch-course-item.ts","../../src/api/methods/course-preview/types/fetch-course.ts","../../src/api/methods/course-preview/types/fetch-course-plans.ts","../../src/api/methods/course-preview/index.ts","../../src/api/methods/student-course-preview/types/fetch-student-course.ts","../../src/api/methods/student-course-preview/types/fetch-student-course-item.ts","../../src/api/methods/student-course-preview/types/fetch-student-course-items.ts","../../src/api/methods/student-course-preview/types/complete-student-course-item.ts","../../src/api/methods/student-course-preview/types/reset-student-course-item.ts","../../src/api/methods/student-course-preview/types/unblock-student-course-item.ts","../../src/api/methods/student-course-preview/types/block-student-course-item.ts","../../src/api/methods/student-course-preview/index.ts","../../src/api/methods/forum/types/fetch-forum-thread.ts","../../src/api/methods/forum/types/create-topic.ts","../../src/api/methods/forum/types/fetch-topic-comments.ts","../../src/api/methods/forum/types/fetch-topic.ts","../../src/api/methods/forum/types/create-topic-comment.ts","../../src/api/methods/forum/types/update-topic-comment.ts","../../src/api/methods/forum/types/delete-topic-comment.ts","../../src/api/methods/forum/types/update-topic.ts","../../src/api/methods/forum/types/fetch-topic-comment-position.ts","../../src/api/methods/forum/types/delete-topic.ts","../../src/api/methods/forum/types/block-student.ts","../../src/api/methods/forum/types/create-reaction.ts","../../src/api/methods/forum/types/delete-reaction.ts","../../src/api/methods/forum/index.ts","../../src/api/methods/student/email-broadcast/types/fetch-status.ts","../../src/api/methods/student/email-broadcast/types/unsubscribe.ts","../../src/api/methods/student/email-broadcast/index.ts","../../src/api/methods/school-library/types/fetch-school-library-items.ts","../../src/api/methods/school-library/types/fetch-school-library-item.ts","../../src/api/methods/school-library/types/fetch-school-library.ts","../../src/api/methods/school-library/index.ts","../../src/api/methods/student/course-item-rating/types/fetch-course-item-ratings.ts","../../src/api/methods/student/course-item-rating/types/save-course-item-rating.ts","../../src/api/methods/student/course-item-rating/types/create-course-item-rating.ts","../../src/api/methods/student/course-item-rating/index.ts","../../src/api/methods/student/course-item-comment/types/fetch-course-item-comments.ts","../../src/api/methods/student/course-item-comment/types/save-course-item-comment.ts","../../src/api/methods/student/course-item-comment/types/create-course-item-comment.ts","../../src/api/methods/student/course-item-comment/types/remove-course-item-comment.ts","../../src/api/methods/student/course-item-comment/index.ts","../../src/api/methods/auth/types/login.ts","../../src/api/methods/auth/types/refresh-token.ts","../../src/api/methods/auth/types/register.ts","../../src/api/methods/auth/types/reset-password.ts","../../src/api/methods/auth/types/forgot-password.ts","../../src/api/methods/auth/types/confirm-email.ts","../../src/api/methods/auth/types/confirm-invite.ts","../../src/api/methods/auth/types/check-invite.ts","../../src/api/methods/auth/types/login-token.ts","../../src/api/methods/auth/types/logout.ts","../../src/api/methods/auth/types/prolong-session.ts","../../src/api/methods/auth/types/me.ts","../../src/api/methods/auth/types/login-as.ts","../../src/api/methods/auth/types/send-invite.ts","../../src/api/methods/auth/types/contact.ts","../../src/api/methods/auth/types/register-contact.ts","../../src/api/methods/auth/types/email-notifications-subscription-status.ts","../../src/api/methods/auth/types/unsubscribe-email-notifications.ts","../../src/api/methods/auth/index.ts","../../src/api/methods/Notification/types/save.ts","../../src/api/methods/Notification/types/fetch.ts","../../src/api/methods/Notification/types/delete.ts","../../src/api/methods/Notification/Settings/types/fetch.ts","../../src/api/methods/Notification/Settings/types/save.ts","../../src/api/methods/Notification/Settings/index.ts","../../src/api/methods/Notification/types/fetch-count.ts","../../src/api/methods/Notification/types/mark-all-as-read.ts","../../src/api/methods/Notification/Channel/types/create.ts","../../src/api/methods/Notification/Channel/types/save.ts","../../src/api/methods/Notification/Channel/index.ts","../../src/api/methods/Notification/index.ts","../../src/api/methods/partnership/index.ts","../../src/api/methods/announcement/index.ts","../../src/api/methods/gamification/index.ts","../../src/api/Api.ts","../../src/api/clients/JwtApiClient.ts","../../src/stores/UserStore/UserStore.ts","../../src/stores/ServiceStore/ServiceStore.ts","../../src/stores/UIStore/UIStore.ts","../../src/stores/SchoolStore/SchoolStore.ts","../../../node_modules/.pnpm/@remix-run+router@1.14.2/node_modules/@remix-run/router/dist/router.js","../../../node_modules/.pnpm/react-router@6.21.2_react@17.0.2/node_modules/react-router/dist/index.js","../../src/components/hooks/useLoc/useLoc.tsx","../../src/components/PageContent/PageContent.tsx","../../src/components/hooks/useSchool/useSchool.tsx","../../src/components/hooks/useLang/useLang.tsx","../../src/models/app-settings/api-settings.ts","../../src/models/app-settings/localization-settings.ts","../../src/models/app-settings/aws-settings.ts","../../src/models/app-settings/hub-settings.ts","../../src/models/app-settings/chat-settings.ts","../../src/models/app-settings/newrelic-settings.ts","../../src/models/app-settings/QuizSettings.ts","../../src/models/app-settings/checkout.ts","../../src/models/app-settings/app-settings.ts","../../src/models/app-settings/index.ts","../../src/components/hooks/useSettings/useSettings.tsx","../../src/components/Price/Price.tsx","../../src/components/EZEditor/SchoolEZEditorView.tsx","../../src/components/ScriptInjector/ScriptInjection.tsx","../../src/components/selects/UtmTagSelect/UtmTagSelect.tsx","../../src/components/hooks/useApi.tsx","../../src/components/AnalyticStatistic/AnalyticStatistic.tsx","../../src/components/ItemTreeSearch/ItemTreeSearch.tsx","../../src/App/shared/DevActions/MissingWords/MissingWords.tsx","../../src/App/shared/DevActions/DevActions.tsx","../../../node_modules/.pnpm/react-router-dom@6.21.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-router-dom/dist/index.js","../../src/App/Router.tsx","../../src/App/shared/providers/LocProvider/LocProvider.tsx","../../src/App/shared/providers/UserProvider/UserProvider.tsx","../../../node_modules/.pnpm/react-favicon@0.0.18_react@17.0.2/node_modules/react-favicon/dist/react-favicon.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/meta_tags_context.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/utils.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/meta_tags.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/react_title.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/index.js","../../src/hub-client/subscriptions/SchoolSupportChatChangedSubscription.ts","../../src/App/shared/providers/SchoolProvider/SchoolProvider.tsx","../../src/hub-client/subscriptions/gamification.ts","../../src/App/shared/providers/GamificationBalanceProvider/GamificationBalanceProvider.tsx","../../src/hub-client/payloads/notifications/index.ts","../../src/hub-client/subscriptions/NotificationSubscription.ts","../../src/App/shared/NotificationCenter/NotificationCenterStore.ts","../../src/views/gamification/pages/GamificationCard.tsx","../../src/views/gamification/pages/components/GamificationAchievementsCard/GamificationAchievementsCard.tsx","../../../node_modules/.pnpm/canvas-confetti@1.9.2/node_modules/canvas-confetti/dist/confetti.module.mjs","../../src/App/shared/NotificationCenter/Notifications/GamificationAchievement/GamificationAchievementNotification.tsx","../../src/App/shared/NotificationCenter/NotificationCenter.tsx","../../src/App/App.tsx","../../src/index.tsx"],"sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n})((function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n }\n\n var Emitter = /*#__PURE__*/function () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n Object.defineProperty(this, 'listeners', {\n value: {},\n writable: true,\n configurable: true\n });\n }\n\n _createClass(Emitter, [{\n key: \"addEventListener\",\n value: function addEventListener(type, callback, options) {\n if (!(type in this.listeners)) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push({\n callback: callback,\n options: options\n });\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, callback) {\n if (!(type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[type];\n\n for (var i = 0, l = stack.length; i < l; i++) {\n if (stack[i].callback === callback) {\n stack.splice(i, 1);\n return;\n }\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (!(event.type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[event.type];\n var stackToCall = stack.slice();\n\n for (var i = 0, l = stackToCall.length; i < l; i++) {\n var listener = stackToCall[i];\n\n try {\n listener.callback.call(this, event);\n } catch (e) {\n Promise.resolve().then(function () {\n throw e;\n });\n }\n\n if (listener.options && listener.options.once) {\n this.removeEventListener(event.type, listener.callback);\n }\n }\n\n return !event.defaultPrevented;\n }\n }]);\n\n return Emitter;\n }();\n\n var AbortSignal = /*#__PURE__*/function (_Emitter) {\n _inherits(AbortSignal, _Emitter);\n\n var _super = _createSuper(AbortSignal);\n\n function AbortSignal() {\n var _this;\n\n _classCallCheck(this, AbortSignal);\n\n _this = _super.call(this); // Some versions of babel does not transpile super() correctly for IE <= 10, if the parent\n // constructor has failed to run, then \"this.listeners\" will still be undefined and then we call\n // the parent constructor directly instead as a workaround. For general details, see babel bug:\n // https://github.com/babel/babel/issues/3041\n // This hack was added as a fix for the issue described here:\n // https://github.com/Financial-Times/polyfill-library/pull/59#issuecomment-477558042\n\n if (!_this.listeners) {\n Emitter.call(_assertThisInitialized(_this));\n } // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController().signal) to be [] for compat with the native impl\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'aborted', {\n value: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'onabort', {\n value: null,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'reason', {\n value: undefined,\n writable: true,\n configurable: true\n });\n return _this;\n }\n\n _createClass(AbortSignal, [{\n key: \"toString\",\n value: function toString() {\n return '[object AbortSignal]';\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (event.type === 'abort') {\n this.aborted = true;\n\n if (typeof this.onabort === 'function') {\n this.onabort.call(this, event);\n }\n }\n\n _get(_getPrototypeOf(AbortSignal.prototype), \"dispatchEvent\", this).call(this, event);\n }\n }]);\n\n return AbortSignal;\n }(Emitter);\n var AbortController = /*#__PURE__*/function () {\n function AbortController() {\n _classCallCheck(this, AbortController);\n\n // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController()) to be [] for compat with the native impl\n Object.defineProperty(this, 'signal', {\n value: new AbortSignal(),\n writable: true,\n configurable: true\n });\n }\n\n _createClass(AbortController, [{\n key: \"abort\",\n value: function abort(reason) {\n var event;\n\n try {\n event = new Event('abort');\n } catch (e) {\n if (typeof document !== 'undefined') {\n if (!document.createEvent) {\n // For Internet Explorer 8:\n event = document.createEventObject();\n event.type = 'abort';\n } else {\n // For Internet Explorer 11:\n event = document.createEvent('Event');\n event.initEvent('abort', false, false);\n }\n } else {\n // Fallback where document isn't available:\n event = {\n type: 'abort',\n bubbles: false,\n cancelable: false\n };\n }\n }\n\n var signalReason = reason;\n\n if (signalReason === undefined) {\n if (typeof document === 'undefined') {\n signalReason = new Error('This operation was aborted');\n signalReason.name = 'AbortError';\n } else {\n try {\n signalReason = new DOMException('signal is aborted without reason');\n } catch (err) {\n // IE 11 does not support calling the DOMException constructor, use a\n // regular error object on it instead.\n signalReason = new Error('This operation was aborted');\n signalReason.name = 'AbortError';\n }\n }\n }\n\n this.signal.reason = signalReason;\n this.signal.dispatchEvent(event);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return '[object AbortController]';\n }\n }]);\n\n return AbortController;\n }();\n\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n // These are necessary to make sure that we get correct output for:\n // Object.prototype.toString.call(new AbortController())\n AbortController.prototype[Symbol.toStringTag] = 'AbortController';\n AbortSignal.prototype[Symbol.toStringTag] = 'AbortSignal';\n }\n\n function polyfillNeeded(self) {\n if (self.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n console.log('__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill');\n return true;\n } // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // so the below feature detection needs the !self.AbortController part.\n // The Request.prototype check is also needed because Safari versions 11.1.2\n // up to and including 12.1.x has a window.AbortController present but still\n // does NOT correctly implement abortable fetch:\n // https://bugs.webkit.org/show_bug.cgi?id=174980#c2\n\n\n return typeof self.Request === 'function' && !self.Request.prototype.hasOwnProperty('signal') || !self.AbortController;\n }\n\n /**\n * Note: the \"fetch.Request\" default value is available for fetch imported from\n * the \"node-fetch\" package and not in browsers. This is OK since browsers\n * will be importing umd-polyfill.js from that path \"self\" is passed the\n * decorator so the default value will not be used (because browsers that define\n * fetch also has Request). One quirky setup where self.fetch exists but\n * self.Request does not is when the \"unfetch\" minimal fetch polyfill is used\n * on top of IE11; for this case the browser will try to use the fetch.Request\n * default value which in turn will be undefined but then then \"if (Request)\"\n * will ensure that you get a patched fetch but still no Request (as expected).\n * @param {fetch, Request = fetch.Request}\n * @returns {fetch: abortableFetch, Request: AbortableRequest}\n */\n\n function abortableFetchDecorator(patchTargets) {\n if ('function' === typeof patchTargets) {\n patchTargets = {\n fetch: patchTargets\n };\n }\n\n var _patchTargets = patchTargets,\n fetch = _patchTargets.fetch,\n _patchTargets$Request = _patchTargets.Request,\n NativeRequest = _patchTargets$Request === void 0 ? fetch.Request : _patchTargets$Request,\n NativeAbortController = _patchTargets.AbortController,\n _patchTargets$__FORCE = _patchTargets.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL = _patchTargets$__FORCE === void 0 ? false : _patchTargets$__FORCE;\n\n if (!polyfillNeeded({\n fetch: fetch,\n Request: NativeRequest,\n AbortController: NativeAbortController,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL: __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL\n })) {\n return {\n fetch: fetch,\n Request: Request\n };\n }\n\n var Request = NativeRequest; // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // hence we only patch it if it's available. Also we don't patch it if signal\n // is already available on the Request prototype because in this case support\n // is present and the patching below can cause a crash since it assigns to\n // request.signal which is technically a read-only property. This latter error\n // happens when you run the main5.js node-fetch example in the repo\n // \"abortcontroller-polyfill-examples\". The exact error is:\n // request.signal = init.signal;\n // ^\n // TypeError: Cannot set property signal of # which has only a getter\n\n if (Request && !Request.prototype.hasOwnProperty('signal') || __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n Request = function Request(input, init) {\n var signal;\n\n if (init && init.signal) {\n signal = init.signal; // Never pass init.signal to the native Request implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to construct 'Request': member signal is not of type AbortSignal.\n\n delete init.signal;\n }\n\n var request = new NativeRequest(input, init);\n\n if (signal) {\n Object.defineProperty(request, 'signal', {\n writable: false,\n enumerable: false,\n configurable: true,\n value: signal\n });\n }\n\n return request;\n };\n\n Request.prototype = NativeRequest.prototype;\n }\n\n var realFetch = fetch;\n\n var abortableFetch = function abortableFetch(input, init) {\n var signal = Request && Request.prototype.isPrototypeOf(input) ? input.signal : init ? init.signal : undefined;\n\n if (signal) {\n var abortError;\n\n try {\n abortError = new DOMException('Aborted', 'AbortError');\n } catch (err) {\n // IE 11 does not support calling the DOMException constructor, use a\n // regular error object on it instead.\n abortError = new Error('Aborted');\n abortError.name = 'AbortError';\n } // Return early if already aborted, thus avoiding making an HTTP request\n\n\n if (signal.aborted) {\n return Promise.reject(abortError);\n } // Turn an event into a promise, reject it once `abort` is dispatched\n\n\n var cancellation = new Promise(function (_, reject) {\n signal.addEventListener('abort', function () {\n return reject(abortError);\n }, {\n once: true\n });\n });\n\n if (init && init.signal) {\n // Never pass .signal to the native implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to execute 'fetch' on 'Window': member signal is not of type AbortSignal.\n delete init.signal;\n } // Return the fastest promise (don't need to wait for request to finish)\n\n\n return Promise.race([cancellation, realFetch(input, init)]);\n }\n\n return realFetch(input, init);\n };\n\n return {\n fetch: abortableFetch,\n Request: Request\n };\n }\n\n (function (self) {\n\n if (!polyfillNeeded(self)) {\n return;\n }\n\n if (!self.fetch) {\n console.warn('fetch() is not available, cannot install abortcontroller-polyfill');\n return;\n }\n\n var _abortableFetch = abortableFetchDecorator(self),\n fetch = _abortableFetch.fetch,\n Request = _abortableFetch.Request;\n\n self.fetch = fetch;\n self.Request = Request;\n Object.defineProperty(self, 'AbortController', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortController\n });\n Object.defineProperty(self, 'AbortSignal', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortSignal\n });\n })(typeof self !== 'undefined' ? self : global);\n\n}));\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.31.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.31.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","// abortcontroller-polyfill обеспечивает поддержку функциональности AbortController и метода fetch в старых браузерах (Chrome 66 и ниже)\r\nimport 'abortcontroller-polyfill/dist/polyfill-patch-fetch';\r\n\r\n// #region Chrome 49\r\nimport 'core-js/features/object/values';\r\nif (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n}\r\n// #endregion","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","var locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an 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: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nexport default localeValues;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import { createContext } from 'react';\nvar LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\nvar LocaleProvider = function LocaleProvider(props) {\n var _props$locale = props.locale,\n locale = _props$locale === void 0 ? {} : _props$locale,\n children = props.children,\n _ANT_MARK__ = props._ANT_MARK__;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(function () {\n changeConfirmLocale(locale && locale.Modal);\n return function () {\n changeConfirmLocale();\n };\n }, [locale]);\n var getMemoizedContextValue = React.useMemo(function () {\n return _extends(_extends({}, locale), {\n exist: true\n });\n }, [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nexport default LocaleProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './default';\nvar LocaleReceiver = function LocaleReceiver(props) {\n var _props$componentName = props.componentName,\n componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n defaultLocale = props.defaultLocale,\n children = props.children;\n var antLocale = React.useContext(LocaleContext);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || defaultLocaleData[componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return _extends(_extends({}, locale instanceof Function ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n var getLocaleCode = React.useMemo(function () {\n var localeCode = antLocale && antLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [antLocale]);\n return children(getLocale, getLocaleCode, antLocale);\n};\nexport default LocaleReceiver;\nexport var useLocaleReceiver = function useLocaleReceiver(componentName, defaultLocale) {\n var antLocale = React.useContext(LocaleContext);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || defaultLocaleData[componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [getLocale];\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { attachTypeApi, getKeyThenIncreaseKey, typeList } from '..';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseMessage(getRcNotificationInstance, getRCNoticeProps) {\n var useMessage = function useMessage() {\n // We can only get content by render\n var getPrefixCls;\n var getPopupContainer;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('message', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRcNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls,\n rootPrefixCls: rootPrefixCls,\n getPopupContainer: getPopupContainer\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n var result = function result() {\n if (innerInstance) {\n innerInstance.removeNotice(target);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n typeList.forEach(function (type) {\n return attachTypeApi(hookApiRef.current, type);\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n getPopupContainer = context.getPopupContainer;\n return holder;\n })];\n };\n return useMessage;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RCNotification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseMessage from './hooks/useMessage';\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = '';\nvar transitionName = 'move-up';\nvar hasTransitionName = false;\nvar getContainer;\nvar maxCount;\nvar rtl = false;\nexport function getKeyThenIncreaseKey() {\n return key++;\n}\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n messageInstance = null; // delete messageInstance for new getContainer\n }\n\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n hasTransitionName = true;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\nfunction getRCNotificationInstance(args, callback) {\n var customizePrefixCls = args.prefixCls,\n getContextPopupContainer = args.getPopupContainer;\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getRootPrefixCls = _globalConfig.getRootPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('message', customizePrefixCls || localPrefixCls);\n var rootPrefixCls = getRootPrefixCls(args.rootPrefixCls, prefixCls);\n var iconPrefixCls = getIconPrefixCls();\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n var instanceConfig = {\n prefixCls: prefixCls,\n transitionName: hasTransitionName ? transitionName : \"\".concat(rootPrefixCls, \"-\").concat(transitionName),\n style: {\n top: defaultTop\n },\n getContainer: getContainer || getContextPopupContainer,\n maxCount: maxCount\n };\n RCNotification.newInstance(instanceConfig, function (instance) {\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n messageInstance = instance;\n if (process.env.NODE_ENV === 'test') {\n messageInstance.config = instanceConfig;\n }\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n}\nvar typeToIcon = {\n info: InfoCircleFilled,\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n loading: LoadingOutlined\n};\nexport var typeList = Object.keys(typeToIcon);\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var _classNames;\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var IconComponent = typeToIcon[args.type];\n var messageClass = classNames(\"\".concat(prefixCls, \"-custom-content\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(args.type), args.type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl === true), _classNames));\n return {\n key: args.key,\n duration: duration,\n style: args.style || {},\n className: args.className,\n content: /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: messageClass\n }, args.icon || IconComponent && /*#__PURE__*/React.createElement(IconComponent, null), /*#__PURE__*/React.createElement(\"span\", null, args.content))),\n onClose: args.onClose,\n onClick: args.onClick\n };\n}\nfunction notice(args) {\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRCNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls, iconPrefixCls));\n });\n });\n var result = function result() {\n var _a;\n if (messageInstance) {\n messageInstance.removeNotice(target);\n (_a = args.onClose) === null || _a === void 0 ? void 0 : _a.call(args);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n}\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\nvar api = {\n open: notice,\n config: setMessageConfig,\n destroy: function destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n var _messageInstance = messageInstance,\n removeNotice = _messageInstance.removeNotice;\n removeNotice(messageKey);\n } else {\n var _messageInstance2 = messageInstance,\n destroy = _messageInstance2.destroy;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nexport function attachTypeApi(originalApi, type) {\n originalApi[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return originalApi.open(_extends(_extends({}, content), {\n type: type\n }));\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n return originalApi.open({\n content: content,\n duration: duration,\n type: type,\n onClose: onClose\n });\n };\n}\ntypeList.forEach(function (type) {\n return attachTypeApi(api, type);\n});\napi.warn = api.warning;\napi.useMessage = createUseMessage(getRCNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance() {\n return process.env.NODE_ENV === 'test' ? messageInstance : null;\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseNotification(getNotificationInstance, getRCNoticeProps) {\n var useNotification = function useNotification() {\n // We can only get content by render\n var getPrefixCls;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n getNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(args, prefixCls));\n });\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error'].forEach(function (type) {\n hookApiRef.current[type] = function (args) {\n return hookApiRef.current.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n return useNotification;\n}","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport classNames from 'classnames';\nimport Notification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseNotification from './hooks/useNotification';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\nvar maxCount;\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon,\n prefixCls = options.prefixCls;\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n } else if (options.rtl) {\n defaultPlacement = 'topLeft';\n }\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n if (top !== undefined) {\n defaultTop = top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n}\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom: bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n return style;\n}\nfunction getNotificationInstance(args, callback) {\n var _args$placement = args.placement,\n placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n top = args.top,\n bottom = args.bottom,\n _args$getContainer = args.getContainer,\n getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n customizePrefixCls = args.prefixCls;\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n var iconPrefixCls = getIconPrefixCls();\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n return;\n }\n var notificationClass = classNames(\"\".concat(prefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n Notification.newInstance({\n prefixCls: prefixCls,\n className: notificationClass,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n maxCount: maxCount\n }, function (notification) {\n resolve(notification);\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: notification\n });\n });\n });\n}\nvar typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var durationArg = args.duration,\n icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn,\n onClose = args.onClose,\n onClick = args.onClick,\n key = args.key,\n style = args.style,\n className = args.className,\n _args$closeIcon = args.closeIcon,\n closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon,\n props = args.props;\n var duration = durationArg === undefined ? defaultDuration : durationArg;\n var iconNode = null;\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n });\n }\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var autoMarginTag = !description && iconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n }) : null;\n return {\n content: /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n role: \"alert\"\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, btn) : null)),\n duration: duration,\n closable: true,\n closeIcon: closeIconToRender,\n onClose: onClose,\n onClick: onClick,\n key: key,\n style: style || {},\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), !!type)),\n props: props\n };\n}\nfunction notice(args) {\n getNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(args, prefixCls, iconPrefixCls));\n });\n}\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.removeNotice(key);\n });\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\n\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\napi.useNotification = createUseNotification(getNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance(cacheKey) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nvar defaultGetPrefixCls = function defaultGetPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will case circular dependency.\nexport var ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls\n});\nexport var ConfigConsumer = ConfigContext.Consumer;\n/** @deprecated Use hooks instead. This is a legacy function */\nexport function withConfigConsumer(config) {\n return function withConfigConsumerFunc(Component) {\n // Wrap with ConfigConsumer. Since we need compatible with react 15, be care when using ref methods\n var SFC = function SFC(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (configProps) {\n var basicPrefixCls = config.prefixCls;\n var getPrefixCls = configProps.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(basicPrefixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(Component, _extends({}, configProps, props, {\n prefixCls: prefixCls\n }));\n });\n };\n var cons = Component.constructor;\n var name = cons && cons.displayName || Component.name || 'Component';\n if (process.env.NODE_ENV !== 'production') {\n SFC.displayName = \"withConfigConsumer(\".concat(name, \")\");\n }\n return SFC;\n };\n}","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nvar dynamicStyleMark = \"-ant-\".concat(Date.now(), \"-\").concat(Math.random());\nexport function getStyle(globalPrefixCls, theme) {\n var variables = {};\n var formatColor = function formatColor(color, updater) {\n var clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n var fillColor = function fillColor(colorVal, type) {\n var baseColor = new TinyColor(colorVal);\n var colorPalettes = generate(baseColor.toRgbString());\n variables[\"\".concat(type, \"-color\")] = formatColor(baseColor);\n variables[\"\".concat(type, \"-color-disabled\")] = colorPalettes[1];\n variables[\"\".concat(type, \"-color-hover\")] = colorPalettes[4];\n variables[\"\".concat(type, \"-color-active\")] = colorPalettes[6];\n variables[\"\".concat(type, \"-color-outline\")] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[\"\".concat(type, \"-color-deprecated-bg\")] = colorPalettes[0];\n variables[\"\".concat(type, \"-color-deprecated-border\")] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n var primaryColor = new TinyColor(theme.primaryColor);\n var primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach(function (color, index) {\n variables[\"primary-\".concat(index + 1)] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, function (c) {\n return c.lighten(35);\n });\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, function (c) {\n return c.lighten(20);\n });\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, function (c) {\n return c.tint(20);\n });\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, function (c) {\n return c.tint(50);\n });\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.12);\n });\n var primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.3);\n });\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, function (c) {\n return c.darken(2);\n });\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n var cssList = Object.keys(variables).map(function (key) {\n return \"--\".concat(globalPrefixCls, \"-\").concat(key, \": \").concat(variables[key], \";\");\n });\n return \"\\n :root {\\n \".concat(cssList.join('\\n'), \"\\n }\\n \").trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n var style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, \"\".concat(dynamicStyleMark, \"-dynamic-theme\"));\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import * as React from 'react';\nvar DisabledContext = /*#__PURE__*/React.createContext(false);\nexport var DisabledContextProvider = function DisabledContextProvider(_ref) {\n var children = _ref.children,\n disabled = _ref.disabled;\n var originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport message from '../message';\nimport notification from '../notification';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form'];\nexport var defaultPrefixCls = 'ant';\nexport var defaultIconPrefixCls = 'anticon';\nvar globalPrefixCls;\nvar globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nvar setGlobalConfig = function setGlobalConfig(_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n theme = _ref.theme;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n registerTheme(getGlobalPrefixCls(), theme);\n }\n};\nexport var globalConfig = function globalConfig() {\n return {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n // Customize rootPrefixCls is first priority\n if (rootPrefixCls) {\n return rootPrefixCls;\n }\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n if (customizePrefixCls && customizePrefixCls.includes('-')) {\n return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n };\n};\nvar ProviderChildren = function ProviderChildren(props) {\n var _a, _b;\n var children = props.children,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n locale = props.locale,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n legacyLocale = props.legacyLocale,\n parentContext = props.parentContext,\n iconPrefixCls = props.iconPrefixCls,\n componentDisabled = props.componentDisabled;\n var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n var config = _extends(_extends({}, parentContext), {\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n getPrefixCls: getPrefixCls\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(function (propName) {\n var propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n var memoedConfig = useMemo(function () {\n return config;\n }, config, function (prevConfig, currentConfig) {\n var prevKeys = Object.keys(prevConfig);\n var currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n return prevConfig[key] !== currentConfig[key];\n });\n });\n var memoIconContextValue = React.useMemo(function () {\n return {\n prefixCls: iconPrefixCls,\n csp: csp\n };\n }, [iconPrefixCls, csp]);\n var childNode = children;\n // Additional Form provider\n var validateMessages = {};\n if (locale) {\n validateMessages = ((_a = locale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n }\n if (form && form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), form.validateMessages);\n }\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n message.config({\n rtl: props.direction === 'rtl'\n });\n notification.config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ProviderChildren, _extends({\n parentContext: context,\n legacyLocale: legacyLocale\n }, props));\n });\n });\n};\n/** @private internal Usage. do not use in your production */\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nexport default ConfigProvider;","export default function getDataOrAriaProps(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if ((key.startsWith('data-') || key.startsWith('aria-') || key === 'role') && !key.startsWith('data-__')) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","import * as React from 'react';\nvar isValidElement = React.isValidElement;\nexport { isValidElement };\nexport function isFragment(child) {\n return child && isValidElement(child) && child.type === React.Fragment;\n}\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","export function isWindow(obj) {\n return obj !== null && obj !== undefined && obj === obj.window;\n}\nexport default function getScroll(target, top) {\n var _a, _b;\n if (typeof window === 'undefined') {\n return 0;\n }\n var method = top ? 'scrollTop' : 'scrollLeft';\n var result = 0;\n if (isWindow(target)) {\n result = target[top ? 'pageYOffset' : 'pageXOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target instanceof HTMLElement) {\n result = target[method];\n } else if (target) {\n // According to the type inference, the `target` is `never` type.\n // Since we configured the loose mode type checking, and supports mocking the target with such shape below::\n // `{ documentElement: { scrollLeft: 200, scrollTop: 400 } }`,\n // the program may falls into this branch.\n // Check the corresponding tests for details. Don't sure what is the real scenario this happens.\n result = target[method];\n }\n if (target && !isWindow(target) && typeof result !== 'number') {\n result = (_b = ((_a = target.ownerDocument) !== null && _a !== void 0 ? _a : target).documentElement) === null || _b === void 0 ? void 0 : _b[method];\n }\n return result;\n}","// eslint-disable-next-line import/prefer-default-export\nexport function easeInOutCubic(t, b, c, d) {\n var cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n }\n // eslint-disable-next-line no-return-assign\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","import raf from \"rc-util/es/raf\";\nimport { easeInOutCubic } from './easings';\nimport getScroll, { isWindow } from './getScroll';\nexport default function scrollTo(y) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$getContainer = options.getContainer,\n getContainer = _options$getContainer === void 0 ? function () {\n return window;\n } : _options$getContainer,\n callback = options.callback,\n _options$duration = options.duration,\n duration = _options$duration === void 0 ? 450 : _options$duration;\n var container = getContainer();\n var scrollTop = getScroll(container, true);\n var startTime = Date.now();\n var frameFunc = function frameFunc() {\n var timestamp = Date.now();\n var time = timestamp - startTime;\n var nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n container.documentElement.scrollTop = nextScrollTop;\n } else {\n container.scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n raf(frameFunc);\n}","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar Empty = function Empty() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('empty-img-default');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-1\"),\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-2\"),\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-3\"),\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-4\"),\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-5\"),\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n transform: \"translate(149.65 15.383)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\nexport default Empty;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar Simple = function Simple() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('empty-img-simple');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n className: \"\".concat(prefixCls, \"-path\")\n }))));\n};\nexport default Simple;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nvar defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nvar simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nvar Empty = function Empty(_a) {\n var className = _a.className,\n customizePrefixCls = _a.prefixCls,\n _a$image = _a.image,\n image = _a$image === void 0 ? defaultEmptyImg : _a$image,\n description = _a.description,\n children = _a.children,\n imageStyle = _a.imageStyle,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Empty\"\n }, function (contextLocale) {\n var _classNames;\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : contextLocale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-image\"),\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, children));\n });\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nexport default Empty;","import * as React from 'react';\nimport { ConfigConsumer } from '.';\nimport Empty from '../empty';\nvar defaultRenderEmpty = function defaultRenderEmpty(componentName) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('empty');\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE\n });\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n className: \"\".concat(prefix, \"-small\")\n });\n /* istanbul ignore next */\n default:\n // Should never hit if we take all the component into consider.\n return /*#__PURE__*/React.createElement(Empty, null);\n }\n });\n};\nexport default defaultRenderEmpty;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nexport var FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: function itemRef() {}\n});\nexport var NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport var FormProvider = function FormProvider(props) {\n var providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, _extends({}, providerProps));\n};\nexport var FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport var FormItemInputContext = /*#__PURE__*/React.createContext({});\nexport var NoFormStyle = function NoFormStyle(_ref) {\n var children = _ref.children,\n status = _ref.status,\n override = _ref.override;\n var formItemInputContext = useContext(FormItemInputContext);\n var newFormItemInputContext = useMemo(function () {\n var newContext = _extends({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n};\nexport var tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return args;\n};","import { tuple } from './type';\n// ================== Collapse Motion ==================\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\nvar getRealHeight = function getRealHeight(node) {\n var scrollHeight = node.scrollHeight;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node ? node.offsetHeight : 0\n };\n};\nvar skipOpacityTransition = function skipOpacityTransition(_, event) {\n return (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\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};\nvar SelectPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight');\nvar getTransitionDirection = function getTransitionDirection(placement) {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return \"slide-down\";\n }\n return \"slide-up\";\n};\nvar getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return \"\".concat(rootPrefixCls, \"-\").concat(motion);\n};\nexport { getTransitionName, getTransitionDirection };\nexport default collapseMotion;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport { tuple } from './type';\nvar InputStatuses = tuple('warning', 'error', '');\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n var _classNames;\n return classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-success\"), status === 'success'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-warning\"), status === 'warning'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-error\"), status === 'error'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-validating\"), status === 'validating'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-feedback\"), hasFeedback), _classNames));\n}\nexport var getMergedStatus = function getMergedStatus(contextStatus, customStatus) {\n return customStatus || contextStatus;\n};","import CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nexport default function getIcons(_ref) {\n var suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n removeIcon = _ref.removeIcon,\n loading = _ref.loading,\n multiple = _ref.multiple,\n hasFeedback = _ref.hasFeedback,\n prefixCls = _ref.prefixCls,\n showArrow = _ref.showArrow,\n feedbackIcon = _ref.feedbackIcon;\n // Clear Icon\n var mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n // Validation Feedback Icon\n var getSuffixIconNode = function getSuffixIconNode(arrowIcon) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, showArrow !== false && arrowIcon, hasFeedback && feedbackIcon);\n };\n // Arrow item icon\n var mergedSuffixIcon = null;\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = getSuffixIconNode(suffixIcon);\n } else if (loading) {\n mergedSuffixIcon = getSuffixIconNode( /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n } else {\n var iconCls = \"\".concat(prefixCls, \"-suffix\");\n mergedSuffixIcon = function mergedSuffixIcon(_ref2) {\n var open = _ref2.open,\n showSearch = _ref2.showSearch;\n if (open && showSearch) {\n return getSuffixIconNode( /*#__PURE__*/React.createElement(SearchOutlined, {\n className: iconCls\n }));\n }\n return getSuffixIconNode( /*#__PURE__*/React.createElement(DownOutlined, {\n className: iconCls\n }));\n };\n }\n // Checked item icon\n var mergedItemIcon = null;\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n } else {\n mergedItemIcon = null;\n }\n var mergedRemoveIcon = null;\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n }\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nexport var SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport var useCompactItemContext = function useCompactItemContext(prefixCls, direction) {\n var compactItemContext = React.useContext(SpaceCompactItemContext);\n var compactItemClassnames = React.useMemo(function () {\n var _classNames;\n if (!compactItemContext) return '';\n var compactDirection = compactItemContext.compactDirection,\n isFirstItem = compactItemContext.isFirstItem,\n isLastItem = compactItemContext.isLastItem;\n var separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-compact\").concat(separator, \"item\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-compact\").concat(separator, \"first-item\"), isFirstItem), _defineProperty(_classNames, \"\".concat(prefixCls, \"-compact\").concat(separator, \"last-item\"), isLastItem), _defineProperty(_classNames, \"\".concat(prefixCls, \"-compact\").concat(separator, \"item-rtl\"), direction === 'rtl'), _classNames));\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames: compactItemClassnames\n };\n};\nexport var NoCompactStyle = function NoCompactStyle(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nvar CompactItem = function CompactItem(_a) {\n var children = _a.children,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nvar Compact = function Compact(props) {\n var _classNames2;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n directionConfig = _React$useContext.direction;\n var _props$size = props.size,\n size = _props$size === void 0 ? 'middle' : _props$size,\n direction = props.direction,\n block = props.block,\n customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"children\"]);\n var prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n var clx = classNames(prefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-block\"), block), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-vertical\"), direction === 'vertical'), _classNames2), className);\n var compactItemContext = React.useContext(SpaceCompactItemContext);\n var childNodes = toArray(children);\n var nodes = React.useMemo(function () {\n return childNodes.map(function (child, i) {\n var key = child && child.key || \"\".concat(prefixCls, \"-item-\").concat(i);\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: size,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n });\n }, [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clx\n }, restProps), nodes);\n};\nexport default Compact;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getTransitionDirection, getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport getIcons from './utils/iconUtil';\nimport warning from '../_util/warning';\nimport { useCompactItemContext } from '../space/Compact';\nvar SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nvar InternalSelect = function InternalSelect(_a, ref) {\n var _classNames2;\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n className = _a.className,\n getPopupContainer = _a.getPopupContainer,\n dropdownClassName = _a.dropdownClassName,\n popupClassName = _a.popupClassName,\n _a$listHeight = _a.listHeight,\n listHeight = _a$listHeight === void 0 ? 256 : _a$listHeight,\n placement = _a.placement,\n _a$listItemHeight = _a.listItemHeight,\n listItemHeight = _a$listItemHeight === void 0 ? 24 : _a$listItemHeight,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n notFoundContent = _a.notFoundContent,\n customStatus = _a.status,\n showArrow = _a.showArrow,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"className\", \"getPopupContainer\", \"dropdownClassName\", \"popupClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"showArrow\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth;\n var size = React.useContext(SizeContext);\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var mode = React.useMemo(function () {\n var m = props.mode;\n if (m === 'combobox') {\n return undefined;\n }\n if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n return m;\n }, [props.mode]);\n var isMultiple = mode === 'multiple' || mode === 'tags';\n var mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !(isMultiple || mode === 'combobox');\n // =================== Warning =====================\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Select', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // ===================== Form Status =====================\n var _useContext = useContext(FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n isFormItemInput = _useContext.isFormItemInput,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Empty =====================\n var mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = (renderEmpty || defaultRenderEmpty)('Select');\n }\n // ===================== Icons =====================\n var _getIcons = getIcons(_extends(_extends({}, props), {\n multiple: isMultiple,\n hasFeedback: hasFeedback,\n feedbackIcon: feedbackIcon,\n showArrow: mergedShowArrow,\n prefixCls: prefixCls\n })),\n suffixIcon = _getIcons.suffixIcon,\n itemIcon = _getIcons.itemIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n var selectProps = omit(props, ['suffixIcon', 'itemIcon']);\n var rcSelectRtlDropdownClassName = classNames(popupClassName || dropdownClassName, _defineProperty({}, \"\".concat(prefixCls, \"-dropdown-\").concat(direction), direction === 'rtl'));\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var mergedClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-borderless\"), !bordered), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-in-form-item\"), isFormItemInput), _classNames2), getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className);\n // ===================== Placement =====================\n var getPlacement = function getPlacement() {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n return /*#__PURE__*/React.createElement(RcSelect, _extends({\n ref: ref,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }, selectProps, {\n transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), props.transitionName),\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n placement: getPlacement(),\n direction: direction,\n inputIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropdownClassName,\n showArrow: hasFeedback || showArrow,\n disabled: mergedDisabled\n }));\n};\nvar Select = /*#__PURE__*/React.forwardRef(InternalSelect);\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport default Select;","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 return forceUpdate;\n}","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 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 Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n _this2.dispatch(_extends(_extends({}, screens), _defineProperty({}, screen, matches)));\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 { useEffect, useRef } from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\nfunction useBreakpoint() {\n var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var screensRef = useRef({});\n var forceUpdate = useForceUpdate();\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n screensRef.current = supportScreens;\n if (refreshOnChange) {\n forceUpdate();\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screensRef.current;\n}\nexport default useBreakpoint;","import { tuple } from './type';\nexport var PresetStatusColorTypes = tuple('success', 'processing', 'error', 'default', 'warning');\n// eslint-disable-next-line import/prefer-default-export\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","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 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 arrowPointAtCenter = config.arrowPointAtCenter;\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] = 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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes } from '../_util/colors';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isValidElement, isFragment } from '../_util/reactNode';\nimport warning from '../_util/warning';\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n var omitted = _extends({}, obj);\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};\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\"));\n// 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\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && 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 var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\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 return element;\n}\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames2;\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n }\n var _useMergedState = useMergedState(false, {\n value: props.open !== undefined ? props.open : props.visible,\n defaultValue: props.defaultOpen !== undefined ? props.defaultOpen : props.defaultVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\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 onOpenChange = function onOpenChange(vis) {\n var _a, _b;\n setOpen(isNoTitle() ? false : vis);\n if (!isNoTitle()) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n _props$arrowPointAtCe = props.arrowPointAtCenter,\n arrowPointAtCenter = _props$arrowPointAtCe === void 0 ? false : _props$arrowPointAtCe,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n };\n // 动态设置动画点\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements();\n // 当前返回的位置\n var placement = Object.keys(placements).find(function (key) {\n var _a, _b;\n return placements[key].points[0] === ((_a = align.points) === null || _a === void 0 ? void 0 : _a[0]) && placements[key].points[1] === ((_b = align.points) === null || _b === void 0 ? void 0 : _b[1]);\n });\n if (!placement) {\n return;\n }\n // 根据当前坐标设置动画点\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (/top|Bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (/Top|bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n if (/left|Right/.test(placement)) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (/right|Left/.test(placement)) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n };\n var getPopupContainer = props.getPopupContainer,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\"]);\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 tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && isNoTitle()) {\n tempOpen = false;\n }\n var child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true)) : childProps.className;\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 if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = _extends(_extends({}, overlayInnerStyle), {\n background: color\n });\n // @ts-ignore\n arrowContentStyle = {\n '--antd-arrow-background-color': color\n };\n }\n return /*#__PURE__*/React.createElement(RcTooltip, _extends({}, otherProps, {\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempOpen,\n onVisibleChange: onOpenChange,\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 }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child);\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nexport default Tooltip;","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport { getMenuId } from \"../context/IdContext\";\n\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent';\n\n // Inline enter is special that we use unique operation\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n case next:\n return {\n offset: 1,\n sibling: true\n };\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n case children:\n return {\n offset: 1,\n sibling: false\n };\n default:\n return null;\n }\n}\nfunction findContainerUL(element) {\n var current = element;\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n current = current.parentElement;\n }\n\n // Normally should not reach this line\n /* istanbul ignore next */\n return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n }\n\n // List current level menu item elements\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n // Find next focus index\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n focusIndex = (focusIndex + count) % count;\n\n // Focus menu item\n return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key;\n\n // >>> Wrap as function since we use raf for some case\n var refreshElements = function refreshElements() {\n elements = new Set();\n key2element = new Map();\n element2key = new Map();\n var keys = getKeys();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n refreshElements();\n\n // First we should find current focused MenuItem/SubMenu element\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n // Some mode do not have fully arrow operation like inline\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n }\n\n // Arrow prevent default to avoid page scroll\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement;\n\n // Focus to link instead of menu item if possible\n var link = menuElement.querySelector('a');\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n }\n\n // Get next focus element\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n }\n // Focus menu item\n tryFocus(targetElement);\n\n // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey);\n // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshElements();\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId);\n\n // Get sub focusable menu item\n var targetElement = getNextFocusElement(subQueryContainer, elements);\n\n // Focus menu item\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey);\n\n // Focus menu item\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n }\n\n // Pass origin key down event\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n }\n\n // Fill map\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n return keys;\n };\n\n /**\n * Find current key related child path keys\n */\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n var ret = {\n active: activeKey === eventKey\n };\n\n // Skip when disabled\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n if (mode !== 'inline') {\n return null;\n }\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else {\n // Compatible for origin definition\n iconNode = icon;\n }\n return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n var _super = _createSuper(LegacyMenuItem);\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n return _super.apply(this, arguments);\n }\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n // Here the props are eventually passed to the DOM element.\n // React does not recognize non-standard attributes.\n // Therefore, remove the props that is not used here.\n // ref: https://github.com/ant-design/ant-design/issues/41395\n var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var mergedEleRef = useComposeRef(ref, elementRef);\n var connectedKeys = useFullPath(eventKey);\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n }\n\n // ============================= Info =============================\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n };\n\n // ============================= Icon =============================\n var mergedItemIcon = itemIcon || contextItemIcon;\n\n // ============================ Active ============================\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n // ============================ Select ============================\n var selected = selectedKeys.includes(eventKey);\n\n // ======================== DirectionStyle ========================\n var directionStyle = useDirectionStyle(connectedKeys.length);\n\n // ============================ Events ============================\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e);\n\n // Legacy. Key will also trigger click event\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n // ============================ Render ============================\n var optionRoleProps = {};\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: mergedEleRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n return renderNode;\n});\nfunction MenuItem(props, ref) {\n var eventKey = props.eventKey;\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n if (measure) {\n return null;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n ref: ref\n }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n role: \"menu\"\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { Divider, MenuItem, MenuItemGroup, SubMenu } from '..';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n return child;\n });\n}\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n return parseChildren(childNodes, keyPath);\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n var targetMotionRef = React.useRef(targetMotion);\n if (mode !== 'inline') {\n /**\n * PopupTrigger is only used for vertical and horizontal types.\n * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n */\n targetMotionRef.current = targetMotion;\n }\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n });\n\n // Delay to change visible\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, children);\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 CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode;\n\n // Always use latest mode check\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode;\n\n // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n var mergedOpen = sameModeRef.current ? open : false;\n\n // ================================= Effect =================================\n // Reset destroy state when mode change back\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]);\n\n // ================================= Render =================================\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n // No need appear since nest inlineCollapse changed\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n }\n\n // Hide inline list when mode changed and motion end\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n if (destroy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _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 = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/nodeUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef();\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n }\n\n // ================================ Icon ================================\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon;\n\n // ================================ Open ================================\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen;\n\n // =============================== Select ===============================\n var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n // =============================== Active ===============================\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n // Fallback of active check to avoid hover on menu title or disabled item\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n // ========================== DirectionStyle ==========================\n var directionStyle = useDirectionStyle(connectedPath.length);\n\n // =============================== Events ===============================\n // >>>> Title click\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n });\n\n // Trigger open by click when mode is `inline`\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n };\n\n // >>>> Context for children click\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n });\n\n // >>>>> Visible change\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n };\n\n // =============================== Render ===============================\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n // >>>>> Title\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : null,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n })));\n\n // Cache mode if it change to `inline` which do not have popup motion\n var triggerModeRef = React.useRef(mode);\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current;\n\n // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider\n // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n }\n\n // >>>>> List node\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode;\n\n // ======================== Render ========================\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\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 _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getMenuId, IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl';\n\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n }\n\n // ========================= Open =========================\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n };\n\n // >>>>> Cache & Reset open keys when inlineCollapsed changed\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n var mountRef = React.useRef(false);\n\n // ========================= Mode =========================\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1];\n var isInlineMode = mergedMode === 'inline';\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n if (!mountRef.current) {\n return;\n }\n // Synchronously update MergedOpenKeys\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]);\n\n // ====================== Responsive ======================\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n // Cache\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []);\n\n // ========================= Path =========================\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]);\n\n // ======================== Active ========================\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n if (shouldFocusKey) {\n var _containerRef$current, _containerRef$current2, _containerRef$current3;\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.querySelector(\"li[data-menu-id='\".concat(getMenuId(uuid, shouldFocusKey), \"']\"))) === null || _containerRef$current2 === void 0 ? void 0 : (_containerRef$current3 = _containerRef$current2.focus) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.call(_containerRef$current2, options);\n }\n }\n };\n });\n\n // ======================== Select ========================\n // >>>>> Select keys\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1];\n\n // >>>>> Trigger select\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n setMergedSelectKeys(newSelectKeys);\n\n // Trigger event\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n if (exist) {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectInfo);\n }\n }\n\n // Whatever selectable, always close it\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n };\n\n // ========================= Open =========================\n /**\n * Click for item. SubMenu do not have selection status\n */\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n var getInternalPopupContainer = useMemoCallback(getPopupContainer);\n\n // ==================== Accessibility =====================\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n // ======================== Effect ========================\n React.useEffect(function () {\n setMounted(true);\n }, []);\n\n // ======================= Context ========================\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n // ======================== Render ========================\n\n // >>>>> Children\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n });\n\n // >>>>> Container\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps));\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl\n // Disabled\n ,\n disabled: disabled\n // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null\n // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive\n // Selection\n ,\n selectedKeys: mergedSelectKeys\n // Level\n ,\n inlineIndent: inlineIndent\n // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getInternalPopupContainer\n // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon\n // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/nodeUtil\";\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"presentation\"\n }, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n if (measure) {\n return childList;\n }\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var measure = useMeasure();\n if (measure) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","var isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n};\nexport default isNumeric;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nexport var LayoutContext = /*#__PURE__*/React.createContext({\n siderHook: {\n addSider: function addSider() {\n return null;\n },\n removeSider: function removeSider() {\n return null;\n }\n }\n});\nfunction generator(_ref) {\n var suffixCls = _ref.suffixCls,\n tagName = _ref.tagName,\n displayName = _ref.displayName;\n return function (BasicComponent) {\n var Adapter = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(suffixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(BasicComponent, _extends({\n ref: ref,\n prefixCls: prefixCls,\n tagName: tagName\n }, props));\n });\n if (process.env.NODE_ENV !== 'production') {\n Adapter.displayName = displayName;\n }\n return Adapter;\n };\n}\nvar Basic = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n tagName = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"tagName\"]);\n var classString = classNames(prefixCls, className);\n return /*#__PURE__*/React.createElement(tagName, _extends(_extends({\n className: classString\n }, others), {\n ref: ref\n }), children);\n});\nvar BasicLayout = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var _React$useContext2 = React.useContext(ConfigContext),\n direction = _React$useContext2.direction;\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n siders = _React$useState2[0],\n setSiders = _React$useState2[1];\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n hasSider = props.hasSider,\n Tag = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"hasSider\", \"tagName\"]);\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-sider\"), typeof hasSider === 'boolean' ? hasSider : siders.length > 0), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n var contextValue = React.useMemo(function () {\n return {\n siderHook: {\n addSider: function addSider(id) {\n setSiders(function (prev) {\n return [].concat(_toConsumableArray(prev), [id]);\n });\n },\n removeSider: function removeSider(id) {\n setSiders(function (prev) {\n return prev.filter(function (currentId) {\n return currentId !== id;\n });\n });\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Tag, _extends({\n ref: ref,\n className: classString\n }, others), children));\n});\nvar Layout = generator({\n suffixCls: 'layout',\n tagName: 'section',\n displayName: 'Layout'\n})(BasicLayout);\nvar Header = generator({\n suffixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nvar Footer = generator({\n suffixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nvar Content = generator({\n suffixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nexport { Header, Footer, Content };\nexport default Layout;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport isNumeric from '../_util/isNumeric';\nimport { LayoutContext } from './layout';\nvar dimensionMaxMap = {\n xs: '479.98px',\n sm: '575.98px',\n md: '767.98px',\n lg: '991.98px',\n xl: '1199.98px',\n xxl: '1599.98px'\n};\nexport var SiderContext = /*#__PURE__*/React.createContext({});\nvar generateId = function () {\n var i = 0;\n return function () {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return \"\".concat(prefix).concat(i);\n };\n}();\nvar Sider = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n trigger = _a.trigger,\n children = _a.children,\n _a$defaultCollapsed = _a.defaultCollapsed,\n defaultCollapsed = _a$defaultCollapsed === void 0 ? false : _a$defaultCollapsed,\n _a$theme = _a.theme,\n theme = _a$theme === void 0 ? 'dark' : _a$theme,\n _a$style = _a.style,\n style = _a$style === void 0 ? {} : _a$style,\n _a$collapsible = _a.collapsible,\n collapsible = _a$collapsible === void 0 ? false : _a$collapsible,\n _a$reverseArrow = _a.reverseArrow,\n reverseArrow = _a$reverseArrow === void 0 ? false : _a$reverseArrow,\n _a$width = _a.width,\n width = _a$width === void 0 ? 200 : _a$width,\n _a$collapsedWidth = _a.collapsedWidth,\n collapsedWidth = _a$collapsedWidth === void 0 ? 80 : _a$collapsedWidth,\n zeroWidthTriggerStyle = _a.zeroWidthTriggerStyle,\n breakpoint = _a.breakpoint,\n onCollapse = _a.onCollapse,\n onBreakpoint = _a.onBreakpoint,\n props = __rest(_a, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n var _useContext = useContext(LayoutContext),\n siderHook = _useContext.siderHook;\n var _useState = useState('collapsed' in props ? props.collapsed : defaultCollapsed),\n _useState2 = _slicedToArray(_useState, 2),\n collapsed = _useState2[0],\n setCollapsed = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n below = _useState4[0],\n setBelow = _useState4[1];\n useEffect(function () {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n var handleSetCollapsed = function handleSetCollapsed(value, type) {\n if (!('collapsed' in props)) {\n setCollapsed(value);\n }\n onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n };\n // ========================= Responsive =========================\n var responsiveHandlerRef = useRef();\n responsiveHandlerRef.current = function (mql) {\n setBelow(mql.matches);\n onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n if (collapsed !== mql.matches) {\n handleSetCollapsed(mql.matches, 'responsive');\n }\n };\n useEffect(function () {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n var mql;\n if (typeof window !== 'undefined') {\n var _window = window,\n matchMedia = _window.matchMedia;\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(\"(max-width: \".concat(dimensionMaxMap[breakpoint], \")\"));\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n }\n return function () {\n try {\n mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n }\n };\n }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n useEffect(function () {\n var uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return function () {\n return siderHook.removeSider(uniqueId);\n };\n }, []);\n var toggle = function toggle() {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n var _useContext2 = useContext(ConfigContext),\n getPrefixCls = _useContext2.getPrefixCls;\n var renderSider = function renderSider() {\n var _classNames;\n var prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n var divProps = omit(props, ['collapsed']);\n var rawWidth = collapsed ? collapsedWidth : width;\n // use \"px\" as fallback unit for width\n var siderWidth = isNumeric(rawWidth) ? \"\".concat(rawWidth, \"px\") : String(rawWidth);\n // special trigger when collapsedWidth == 0\n var zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(\"\".concat(prefixCls, \"-zero-width-trigger\"), \"\".concat(prefixCls, \"-zero-width-trigger-\").concat(reverseArrow ? 'right' : 'left')),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null)) : null;\n var iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n };\n var status = collapsed ? 'collapsed' : 'expanded';\n var defaultTrigger = iconObj[status];\n var triggerDom = trigger !== null ? zeroWidthTrigger || /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-trigger\"),\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger) : null;\n var divStyle = _extends(_extends({}, style), {\n flex: \"0 0 \".concat(siderWidth),\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n var siderCls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-collapsed\"), !!collapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-trigger\"), collapsible && trigger !== null && !zeroWidthTrigger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-below\"), !!below), _defineProperty(_classNames, \"\".concat(prefixCls, \"-zero-width\"), parseFloat(siderWidth) === 0), _classNames), className);\n return /*#__PURE__*/React.createElement(\"aside\", _extends({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-children\")\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n var contextValue = React.useMemo(function () {\n return {\n siderCollapsed: collapsed\n };\n }, [collapsed]);\n return /*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: contextValue\n }, renderSider());\n});\nif (process.env.NODE_ENV !== 'production') {\n Sider.displayName = 'Sider';\n}\nexport default Sider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar MenuDivider = function MenuDivider(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n dashed = _a.dashed,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"dashed\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var classString = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-item-divider-dashed\"), !!dashed), className);\n return /*#__PURE__*/React.createElement(Divider, _extends({\n className: classString\n }, restProps));\n};\nexport default MenuDivider;","import { createContext } from 'react';\nvar MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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 _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nvar MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n var _super = _createSuper(MenuItem);\n function MenuItem() {\n var _this;\n _classCallCheck(this, MenuItem);\n _this = _super.apply(this, arguments);\n _this.renderItem = function (_ref) {\n var _classNames;\n var siderCollapsed = _ref.siderCollapsed;\n var _a;\n var _this$context = _this.context,\n prefixCls = _this$context.prefixCls,\n firstLevel = _this$context.firstLevel,\n inlineCollapsed = _this$context.inlineCollapsed,\n direction = _this$context.direction,\n disableMenuItemTitleTooltip = _this$context.disableMenuItemTitleTooltip;\n var _this$props = _this.props,\n className = _this$props.className,\n children = _this$props.children;\n var _b = _this.props,\n title = _b.title,\n icon = _b.icon,\n danger = _b.danger,\n rest = __rest(_b, [\"title\", \"icon\", \"danger\"]);\n var tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n var tooltipProps = {\n title: tooltipTitle\n };\n if (!siderCollapsed && !inlineCollapsed) {\n tooltipProps.title = null;\n // Reset `open` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n tooltipProps.open = false;\n }\n var childrenLength = toArray(children).length;\n var returnNode = /*#__PURE__*/React.createElement(Item, _extends({}, rest, {\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-danger\"), danger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-item-only-child\"), (icon ? childrenLength + 1 : childrenLength) === 1), _classNames), className),\n title: typeof title === 'string' ? title : undefined\n }), cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), _this.renderItemChildren(inlineCollapsed));\n if (!disableMenuItemTitleTooltip) {\n returnNode = /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: \"\".concat(prefixCls, \"-inline-collapsed-tooltip\")\n }), returnNode);\n }\n return returnNode;\n };\n return _this;\n }\n _createClass(MenuItem, [{\n key: \"renderItemChildren\",\n value: function renderItemChildren(inlineCollapsed) {\n var _this$context2 = this.context,\n prefixCls = _this$context2.prefixCls,\n firstLevel = _this$context2.firstLevel;\n var _this$props2 = this.props,\n icon = _this$props2.icon,\n children = _this$props2.children;\n var wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, children);\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n if (!icon || isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && firstLevel && typeof children === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, children.charAt(0));\n }\n }\n return wrapNode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, this.renderItem);\n }\n }]);\n return MenuItem;\n}(React.Component);\nexport { MenuItem as default };\nMenuItem.contextType = MenuContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nfunction SubMenu(props) {\n var _a;\n var popupClassName = props.popupClassName,\n icon = props.icon,\n title = props.title,\n theme = props.theme;\n var context = React.useContext(MenuContext);\n var prefixCls = context.prefixCls,\n inlineCollapsed = context.inlineCollapsed,\n antdMenuTheme = context.antdMenuTheme;\n var parentPath = useFullPath();\n var titleNode;\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, title.charAt(0)) : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title);\n } else {\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n var titleIsSpan = isValidElement(title) && title.type === 'span';\n titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title));\n }\n var contextValue = React.useMemo(function () {\n return _extends(_extends({}, context), {\n firstLevel: false\n });\n }, [context]);\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, _extends({}, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme || antdMenuTheme), popupClassName)\n })));\n}\nexport default SubMenu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport MenuDivider from '../MenuDivider';\nimport MenuItem from '../MenuItem';\nimport SubMenu from '../SubMenu';\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _a = opt,\n label = _a.label,\n children = _a.children,\n key = _a.key,\n type = _a.type,\n restProps = __rest(_a, [\"label\", \"children\", \"key\", \"type\"]);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(ItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(MenuDivider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\n// FIXME: Move logic here in v5\n/**\n * We simply convert `items` to ReactNode for reuse origin component logic. But we need move all the\n * logic from component into this hooks when in v5\n */\nexport default function useItems(items) {\n return React.useMemo(function () {\n if (!items) {\n return items;\n }\n return convertItemsToNodes(items);\n }, [items]);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nvar OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport var OverrideProvider = function OverrideProvider(_a) {\n var children = _a.children,\n restProps = __rest(_a, [\"children\"]);\n var override = React.useContext(OverrideContext);\n var context = React.useMemo(function () {\n return _extends(_extends({}, override), restProps);\n }, [override, restProps.prefixCls,\n // restProps.expandIcon, Not mark as deps since this is a ReactNode\n restProps.mode, restProps.selectable\n // restProps.validator, Not mark as deps since this is a function\n ]);\n\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: context\n }, children);\n};\nexport default OverrideContext;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport RcMenu, { ItemGroup } from 'rc-menu';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { SiderContext } from '../layout/Sider';\nimport collapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport useItems from './hooks/useItems';\nimport MenuContext from './MenuContext';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport OverrideContext from './OverrideContext';\nimport SubMenu from './SubMenu';\nvar InternalMenu = /*#__PURE__*/forwardRef(function (props, ref) {\n var _a;\n var override = React.useContext(OverrideContext) || {};\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n getPopupContainer = _React$useContext.getPopupContainer,\n direction = _React$useContext.direction;\n var rootPrefixCls = getPrefixCls();\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$theme = props.theme,\n theme = _props$theme === void 0 ? 'light' : _props$theme,\n expandIcon = props.expandIcon,\n _internalDisableMenuItemTitleTooltip = props._internalDisableMenuItemTitleTooltip,\n inlineCollapsed = props.inlineCollapsed,\n siderCollapsed = props.siderCollapsed,\n items = props.items,\n children = props.children,\n mode = props.mode,\n selectable = props.selectable,\n onClick = props.onClick,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"items\", \"children\", \"mode\", \"selectable\", \"onClick\"]);\n var passedProps = omit(restProps, ['collapsedWidth']);\n // ========================= Items ===========================\n var mergedChildren = useItems(items) || children;\n // ======================== Warning ==========================\n process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning('items' in props && !children, 'Menu', '`children` will be removed in next major version. Please use `items` instead.') : void 0;\n (_a = override.validator) === null || _a === void 0 ? void 0 : _a.call(override, {\n mode: mode\n });\n // ========================== Click ==========================\n // Tell dropdown that item clicked\n var onItemClick = useEvent(function () {\n var _a;\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n (_a = override === null || override === void 0 ? void 0 : override.onClick) === null || _a === void 0 ? void 0 : _a.call(override);\n });\n // ========================== Mode ===========================\n var mergedMode = override.mode || mode;\n // ======================= Selectable ========================\n var mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : override.selectable;\n // ======================== Collapsed ========================\n // Inline Collapsed\n var mergedInlineCollapsed = React.useMemo(function () {\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n return inlineCollapsed;\n }, [inlineCollapsed, siderCollapsed]);\n var defaultMotions = {\n horizontal: {\n motionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n },\n inline: collapseMotion,\n other: {\n motionName: \"\".concat(rootPrefixCls, \"-zoom-big\")\n }\n };\n var prefixCls = getPrefixCls('menu', customizePrefixCls || override.prefixCls);\n var menuClassName = classNames(\"\".concat(prefixCls, \"-\").concat(theme), className);\n // ====================== Expand Icon ========================\n var mergedExpandIcon;\n if (typeof expandIcon === 'function') {\n mergedExpandIcon = expandIcon;\n } else {\n mergedExpandIcon = cloneElement(expandIcon || override.expandIcon, {\n className: \"\".concat(prefixCls, \"-submenu-expand-icon\")\n });\n }\n // ======================== Context ==========================\n var contextValue = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n inlineCollapsed: mergedInlineCollapsed || false,\n antdMenuTheme: theme,\n direction: direction,\n firstLevel: true,\n disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n };\n }, [prefixCls, mergedInlineCollapsed, theme, direction, _internalDisableMenuItemTitleTooltip]);\n // ========================= Render ==========================\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, _extends({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: \"\".concat(prefixCls, \"-\").concat(theme),\n mode: mergedMode,\n selectable: mergedSelectable,\n onClick: onItemClick\n }, passedProps, {\n inlineCollapsed: mergedInlineCollapsed,\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: mergedExpandIcon,\n ref: ref\n }), mergedChildren)));\n});\n// We should keep this as ref-able\nvar Menu = /*#__PURE__*/function (_React$Component) {\n _inherits(Menu, _React$Component);\n var _super = _createSuper(Menu);\n function Menu() {\n var _this;\n _classCallCheck(this, Menu);\n _this = _super.apply(this, arguments);\n _this.focus = function (options) {\n var _a;\n (_a = _this.menu) === null || _a === void 0 ? void 0 : _a.focus(options);\n };\n return _this;\n }\n _createClass(Menu, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalMenu, _extends({\n ref: function ref(node) {\n _this2.menu = node;\n }\n }, _this2.props, context));\n });\n }\n }]);\n return Menu;\n}(React.Component);\nMenu.Divider = MenuDivider;\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.ItemGroup = ItemGroup;\nexport default Menu;","import raf from \"rc-util/es/raf\";\nvar id = 0;\nvar ids = {};\n// Support call raf with delay specified frame\nexport default function wrapperRaf(callback) {\n var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var myId = id++;\n var restFrames = delayFrames;\n function internalCallback() {\n restFrames -= 1;\n if (restFrames <= 0) {\n callback();\n delete ids[myId];\n } else {\n ids[myId] = raf(internalCallback);\n }\n }\n ids[myId] = raf(internalCallback);\n return myId;\n}\nwrapperRaf.cancel = function cancel(pid) {\n if (pid === undefined) return;\n raf.cancel(ids[pid]);\n delete ids[pid];\n};\nwrapperRaf.ids = ids; // export this for test usage","import _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 { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigConsumer, ConfigContext } from '../config-provider';\nimport raf from './raf';\nimport { cloneElement } from './reactNode';\nvar styleForPseudo;\n// Where el is the DOM element you'd like to test for visibility\nfunction isHidden(element) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n return !element || element.offsetParent === null || element.hidden;\n}\nfunction getValidateContainer(nodeRoot) {\n if (nodeRoot instanceof Document) {\n return nodeRoot.body;\n }\n return Array.from(nodeRoot.childNodes).find(function (ele) {\n return (ele === null || ele === void 0 ? void 0 : ele.nodeType) === Node.ELEMENT_NODE;\n });\n}\nfunction isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n var match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n}\nvar Wave = /*#__PURE__*/function (_React$Component) {\n _inherits(Wave, _React$Component);\n var _super = _createSuper(Wave);\n function Wave() {\n var _this;\n _classCallCheck(this, Wave);\n _this = _super.apply(this, arguments);\n _this.containerRef = /*#__PURE__*/React.createRef();\n _this.animationStart = false;\n _this.destroyed = false;\n _this.onClick = function (node, waveColor) {\n var _a, _b;\n var _this$props = _this.props,\n insertExtraNode = _this$props.insertExtraNode,\n disabled = _this$props.disabled;\n if (disabled || !node || isHidden(node) || node.className.includes('-leave')) {\n return;\n }\n _this.extraNode = document.createElement('div');\n var _assertThisInitialize = _assertThisInitialized(_this),\n extraNode = _assertThisInitialize.extraNode;\n var getPrefixCls = _this.context.getPrefixCls;\n extraNode.className = \"\".concat(getPrefixCls(''), \"-click-animating-node\");\n var attributeName = _this.getAttributeName();\n node.setAttribute(attributeName, 'true');\n // Not white or transparent or grey\n if (waveColor && waveColor !== '#fff' && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && waveColor !== 'rgba(255, 255, 255, 1)' && isNotGrey(waveColor) && !/rgba\\((?:\\d*, ){3}0\\)/.test(waveColor) &&\n // any transparent rgba color\n waveColor !== 'transparent') {\n extraNode.style.borderColor = waveColor;\n var nodeRoot = ((_a = node.getRootNode) === null || _a === void 0 ? void 0 : _a.call(node)) || node.ownerDocument;\n var nodeBody = (_b = getValidateContainer(nodeRoot)) !== null && _b !== void 0 ? _b : nodeRoot;\n styleForPseudo = updateCSS(\"\\n [\".concat(getPrefixCls(''), \"-click-animating-without-extra-node='true']::after, .\").concat(getPrefixCls(''), \"-click-animating-node {\\n --antd-wave-shadow-color: \").concat(waveColor, \";\\n }\"), 'antd-wave', {\n csp: _this.csp,\n attachTo: nodeBody\n });\n }\n if (insertExtraNode) {\n node.appendChild(extraNode);\n }\n ['transition', 'animation'].forEach(function (name) {\n node.addEventListener(\"\".concat(name, \"start\"), _this.onTransitionStart);\n node.addEventListener(\"\".concat(name, \"end\"), _this.onTransitionEnd);\n });\n };\n _this.onTransitionStart = function (e) {\n if (_this.destroyed) {\n return;\n }\n var node = _this.containerRef.current;\n if (!e || e.target !== node || _this.animationStart) {\n return;\n }\n _this.resetEffect(node);\n };\n _this.onTransitionEnd = function (e) {\n if (!e || e.animationName !== 'fadeEffect') {\n return;\n }\n _this.resetEffect(e.target);\n };\n _this.bindAnimationEvent = function (node) {\n if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.includes('disabled')) {\n return;\n }\n var onClick = function onClick(e) {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || isHidden(e.target)) {\n return;\n }\n _this.resetEffect(node);\n // Get wave color from target\n var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') ||\n // Firefox Compatible\n getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');\n _this.clickWaveTimeoutId = window.setTimeout(function () {\n return _this.onClick(node, waveColor);\n }, 0);\n raf.cancel(_this.animationStartId);\n _this.animationStart = true;\n // Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.\n _this.animationStartId = raf(function () {\n _this.animationStart = false;\n }, 10);\n };\n node.addEventListener('click', onClick, true);\n return {\n cancel: function cancel() {\n node.removeEventListener('click', onClick, true);\n }\n };\n };\n _this.renderWave = function (_ref) {\n var csp = _ref.csp;\n var children = _this.props.children;\n _this.csp = csp;\n if (! /*#__PURE__*/React.isValidElement(children)) return children;\n var ref = _this.containerRef;\n if (supportRef(children)) {\n ref = composeRef(children.ref, _this.containerRef);\n }\n return cloneElement(children, {\n ref: ref\n });\n };\n return _this;\n }\n _createClass(Wave, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n var node = this.containerRef.current;\n if (!node || node.nodeType !== 1) {\n return;\n }\n this.instance = this.bindAnimationEvent(node);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.instance) {\n this.instance.cancel();\n }\n if (this.clickWaveTimeoutId) {\n clearTimeout(this.clickWaveTimeoutId);\n }\n this.destroyed = true;\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName() {\n var getPrefixCls = this.context.getPrefixCls;\n var insertExtraNode = this.props.insertExtraNode;\n return insertExtraNode ? \"\".concat(getPrefixCls(''), \"-click-animating\") : \"\".concat(getPrefixCls(''), \"-click-animating-without-extra-node\");\n }\n }, {\n key: \"resetEffect\",\n value: function resetEffect(node) {\n var _this2 = this;\n if (!node || node === this.extraNode || !(node instanceof Element)) {\n return;\n }\n var insertExtraNode = this.props.insertExtraNode;\n var attributeName = this.getAttributeName();\n node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466\n if (styleForPseudo) {\n styleForPseudo.innerHTML = '';\n }\n if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {\n node.removeChild(this.extraNode);\n }\n ['transition', 'animation'].forEach(function (name) {\n node.removeEventListener(\"\".concat(name, \"start\"), _this2.onTransitionStart);\n node.removeEventListener(\"\".concat(name, \"end\"), _this2.onTransitionEnd);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderWave);\n }\n }]);\n return Wave;\n}(React.Component);\nWave.contextType = ConfigContext;\nexport default Wave;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nexport var GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nvar ButtonGroup = function ButtonGroup(props) {\n var _classNames;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n size = props.size,\n className = props.className,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n var prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n // large => lg\n // small => sm\n var sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n case 'middle':\n case undefined:\n break;\n default:\n process.env.NODE_ENV !== \"production\" ? warning(!size, 'Button.Group', 'Invalid prop `size`.') : void 0;\n }\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n value: size\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes\n })));\n};\nexport default ButtonGroup;","import LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport CSSMotion from 'rc-motion';\nimport React from 'react';\nvar getCollapsedWidth = function getCollapsedWidth() {\n return {\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n };\n};\nvar getRealWidth = function getRealWidth(node) {\n return {\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n };\n};\nvar LoadingIcon = function LoadingIcon(_ref) {\n var prefixCls = _ref.prefixCls,\n loading = _ref.loading,\n existIcon = _ref.existIcon;\n var visible = !!loading;\n if (existIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\")\n }, /*#__PURE__*/React.createElement(LoadingOutlined, null));\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n // We do not really use this motionName\n motionName: \"\".concat(prefixCls, \"-loading-icon-motion\"),\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, function (_ref2, ref) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\"),\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: className\n }));\n });\n};\nexport default LoadingIcon;","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\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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/* eslint-disable react/button-has-type */\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nimport Group, { GroupSizeContext } from './button-group';\nimport LoadingIcon from './LoadingIcon';\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nfunction isString(str) {\n return typeof str === 'string';\n}\nfunction isUnBorderedButtonType(type) {\n return type === 'text' || type === 'link';\n}\n// Insert one space between two chinese characters automatically.\nfunction insertSpace(child, needInserted) {\n // Check the child if is undefined or null.\n if (child === null || child === undefined) {\n return;\n }\n var SPACE = needInserted ? ' ' : '';\n // strictNullChecks oops.\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n if (typeof child === 'string') {\n return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n if (isFragment(child)) {\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n return child;\n}\nfunction spaceChildren(children, needInserted) {\n var isPrevChildPure = false;\n var childList = [];\n React.Children.forEach(children, function (child) {\n var type = _typeof(child);\n var isCurrentChildPure = type === 'string' || type === 'number';\n if (isPrevChildPure && isCurrentChildPure) {\n var lastIndex = childList.length - 1;\n var lastChild = childList[lastIndex];\n childList[lastIndex] = \"\".concat(lastChild).concat(child);\n } else {\n childList.push(child);\n }\n isPrevChildPure = isCurrentChildPure;\n });\n // Pass to React.Children.map to auto fill key\n return React.Children.map(childList, function (child) {\n return insertSpace(child, needInserted);\n });\n}\nvar ButtonTypes = tuple('default', 'primary', 'ghost', 'dashed', 'link', 'text');\nvar ButtonShapes = tuple('default', 'circle', 'round');\nvar ButtonHTMLTypes = tuple('submit', 'button', 'reset');\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n return {\n type: type\n };\n}\nvar InternalButton = function InternalButton(props, ref) {\n var _classNames;\n var _props$loading = props.loading,\n loading = _props$loading === void 0 ? false : _props$loading,\n customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n danger = props.danger,\n _props$shape = props.shape,\n shape = _props$shape === void 0 ? 'default' : _props$shape,\n customizeSize = props.size,\n customDisabled = props.disabled,\n className = props.className,\n children = props.children,\n icon = props.icon,\n _props$ghost = props.ghost,\n ghost = _props$ghost === void 0 ? false : _props$ghost,\n _props$block = props.block,\n block = _props$block === void 0 ? false : _props$block,\n _props$htmlType = props.htmlType,\n htmlType = _props$htmlType === void 0 ? 'button' : _props$htmlType,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"type\", \"danger\", \"shape\", \"size\", \"disabled\", \"className\", \"children\", \"icon\", \"ghost\", \"block\", \"htmlType\"]);\n var size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var groupSize = React.useContext(GroupSizeContext);\n var _React$useState = React.useState(!!loading),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerLoading = _React$useState2[0],\n setLoading = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n hasTwoCNChar = _React$useState4[0],\n setHasTwoCNChar = _React$useState4[1];\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n autoInsertSpaceInButton = _React$useContext.autoInsertSpaceInButton,\n direction = _React$useContext.direction;\n var buttonRef = ref || /*#__PURE__*/React.createRef();\n var isNeedInserted = function isNeedInserted() {\n return React.Children.count(children) === 1 && !icon && !isUnBorderedButtonType(type);\n };\n var fixTwoCNChar = function fixTwoCNChar() {\n // Fix for HOC usage like \n if (!buttonRef || !buttonRef.current || autoInsertSpaceInButton === false) {\n return;\n }\n var buttonText = buttonRef.current.textContent;\n if (isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n };\n // =============== Update Loading ===============\n var loadingOrDelay = typeof loading === 'boolean' ? loading : (loading === null || loading === void 0 ? void 0 : loading.delay) || true;\n React.useEffect(function () {\n var delayTimer = null;\n if (typeof loadingOrDelay === 'number') {\n delayTimer = window.setTimeout(function () {\n delayTimer = null;\n setLoading(loadingOrDelay);\n }, loadingOrDelay);\n } else {\n setLoading(loadingOrDelay);\n }\n return function () {\n if (delayTimer) {\n // in order to not perform a React state update on an unmounted component\n // and clear timer after 'loadingOrDelay' updated.\n window.clearTimeout(delayTimer);\n delayTimer = null;\n }\n };\n }, [loadingOrDelay]);\n React.useEffect(fixTwoCNChar, [buttonRef]);\n var handleClick = function handleClick(e) {\n var onClick = props.onClick;\n // https://github.com/ant-design/ant-design/issues/30207\n if (innerLoading || mergedDisabled) {\n e.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Button', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonType(type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n var prefixCls = getPrefixCls('btn', customizePrefixCls);\n var autoInsertSpace = autoInsertSpaceInButton !== false;\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var sizeClassNameMap = {\n large: 'lg',\n small: 'sm',\n middle: undefined\n };\n var sizeFullname = compactSize || groupSize || customizeSize || size;\n var sizeCls = sizeFullname ? sizeClassNameMap[sizeFullname] || '' : '';\n var iconType = innerLoading ? 'loading' : icon;\n var linkButtonRestProps = omit(rest, ['navigate']);\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(shape), shape !== 'default' && shape), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-icon-only\"), !children && children !== 0 && !!iconType), _defineProperty(_classNames, \"\".concat(prefixCls, \"-background-ghost\"), ghost && !isUnBorderedButtonType(type)), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), innerLoading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-two-chinese-chars\"), hasTwoCNChar && autoInsertSpace && !innerLoading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block\"), block), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dangerous\"), !!danger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), linkButtonRestProps.href !== undefined && mergedDisabled), _classNames), compactItemClassnames, className);\n var iconNode = icon && !innerLoading ? icon : /*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: !!innerLoading\n });\n var kids = children || children === 0 ? spaceChildren(children, isNeedInserted() && autoInsertSpace) : null;\n if (linkButtonRestProps.href !== undefined) {\n return /*#__PURE__*/React.createElement(\"a\", _extends({}, linkButtonRestProps, {\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids);\n }\n var buttonNode = /*#__PURE__*/React.createElement(\"button\", _extends({}, rest, {\n type: htmlType,\n className: classes,\n onClick: handleClick,\n disabled: mergedDisabled,\n ref: buttonRef\n }), iconNode, kids);\n if (isUnBorderedButtonType(type)) {\n return buttonNode;\n }\n return /*#__PURE__*/React.createElement(Wave, {\n disabled: !!innerLoading\n }, buttonNode);\n};\nvar Button = /*#__PURE__*/React.forwardRef(InternalButton);\nif (process.env.NODE_ENV !== 'production') {\n Button.displayName = 'Button';\n}\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nexport default Button;","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport var canUseDocElement = function canUseDocElement() {\n return canUseDom() && window.document.documentElement;\n};\nexport { isStyleSupport };\nvar flexGapSupported;\nexport var detectFlexGapSupported = function detectFlexGapSupported() {\n if (!canUseDocElement()) {\n return false;\n }\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n // create flex container with row-gap set\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return flexGapSupported;\n};","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 React.useEffect(function () {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { SpaceContext } from '.';\nexport default function Item(_ref) {\n var className = _ref.className,\n direction = _ref.direction,\n index = _ref.index,\n marginDirection = _ref.marginDirection,\n children = _ref.children,\n split = _ref.split,\n wrap = _ref.wrap;\n var _React$useContext = React.useContext(SpaceContext),\n horizontalSize = _React$useContext.horizontalSize,\n verticalSize = _React$useContext.verticalSize,\n latestIndex = _React$useContext.latestIndex,\n supportFlexGap = _React$useContext.supportFlexGap;\n var style = {};\n if (!supportFlexGap) {\n if (direction === 'vertical') {\n if (index < latestIndex) {\n style = {\n marginBottom: horizontalSize / (split ? 2 : 1)\n };\n }\n } else {\n style = _extends(_extends({}, index < latestIndex && _defineProperty({}, marginDirection, horizontalSize / (split ? 2 : 1))), wrap && {\n paddingBottom: verticalSize\n });\n }\n }\n if (children === null || children === undefined) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, children), index < latestIndex && split && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(className, \"-split\"),\n style: style\n }, split));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport Item from './Item';\nimport Compact from './Compact';\nexport var SpaceContext = /*#__PURE__*/React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0,\n supportFlexGap: false\n});\nvar spaceSize = {\n small: 8,\n middle: 16,\n large: 24\n};\nfunction getNumberSize(size) {\n return typeof size === 'string' ? spaceSize[size] : size || 0;\n}\nvar Space = function Space(props) {\n var _classNames;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n space = _React$useContext.space,\n directionConfig = _React$useContext.direction;\n var _props$size = props.size,\n size = _props$size === void 0 ? (space === null || space === void 0 ? void 0 : space.size) || 'small' : _props$size,\n align = props.align,\n className = props.className,\n children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n customizePrefixCls = props.prefixCls,\n split = props.split,\n style = props.style,\n _props$wrap = props.wrap,\n wrap = _props$wrap === void 0 ? false : _props$wrap,\n otherProps = __rest(props, [\"size\", \"align\", \"className\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\"]);\n var supportFlexGap = useFlexGapSupport();\n var _React$useMemo = React.useMemo(function () {\n return (Array.isArray(size) ? size : [size, size]).map(function (item) {\n return getNumberSize(item);\n });\n }, [size]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n horizontalSize = _React$useMemo2[0],\n verticalSize = _React$useMemo2[1];\n var childNodes = toArray(children, {\n keepEmpty: true\n });\n var mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n var prefixCls = getPrefixCls('space', customizePrefixCls);\n var cn = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(direction), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-align-\").concat(mergedAlign), mergedAlign), _classNames), className);\n var itemClassName = \"\".concat(prefixCls, \"-item\");\n var marginDirection = directionConfig === 'rtl' ? 'marginLeft' : 'marginRight';\n // Calculate latest one\n var latestIndex = 0;\n var nodes = childNodes.map(function (child, i) {\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n var key = child && child.key || \"\".concat(itemClassName, \"-\").concat(i);\n return /*#__PURE__*/React.createElement(Item, {\n className: itemClassName,\n key: key,\n direction: direction,\n index: i,\n marginDirection: marginDirection,\n split: split,\n wrap: wrap\n }, child);\n });\n var spaceContext = React.useMemo(function () {\n return {\n horizontalSize: horizontalSize,\n verticalSize: verticalSize,\n latestIndex: latestIndex,\n supportFlexGap: supportFlexGap\n };\n }, [horizontalSize, verticalSize, latestIndex, supportFlexGap]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n var gapStyle = {};\n if (wrap) {\n gapStyle.flexWrap = 'wrap';\n // Patch for gap not support\n if (!supportFlexGap) {\n gapStyle.marginBottom = -verticalSize;\n }\n }\n if (supportFlexGap) {\n gapStyle.columnGap = horizontalSize;\n gapStyle.rowGap = verticalSize;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: cn,\n style: _extends(_extends({}, gapStyle), style)\n }, otherProps), /*#__PURE__*/React.createElement(SpaceContext.Provider, {\n value: spaceContext\n }, nodes));\n};\nvar CompoundedSpace = Space;\nCompoundedSpace.Compact = Compact;\nexport default CompoundedSpace;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport { useCompactItemContext } from '../space/Compact';\nimport Dropdown from './dropdown';\nimport Space from '../space';\nvar DropdownButton = function DropdownButton(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n danger = props.danger,\n disabled = props.disabled,\n loading = props.loading,\n onClick = props.onClick,\n htmlType = props.htmlType,\n children = props.children,\n className = props.className,\n menu = props.menu,\n arrow = props.arrow,\n autoFocus = props.autoFocus,\n overlay = props.overlay,\n trigger = props.trigger,\n align = props.align,\n visible = props.visible,\n open = props.open,\n onVisibleChange = props.onVisibleChange,\n onOpenChange = props.onOpenChange,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n href = props.href,\n _props$icon = props.icon,\n icon = _props$icon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$icon,\n title = props.title,\n _props$buttonsRender = props.buttonsRender,\n buttonsRender = _props$buttonsRender === void 0 ? function (buttons) {\n return buttons;\n } : _props$buttonsRender,\n mouseEnterDelay = props.mouseEnterDelay,\n mouseLeaveDelay = props.mouseLeaveDelay,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n destroyPopupOnHide = props.destroyPopupOnHide,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"danger\", \"disabled\", \"loading\", \"onClick\", \"htmlType\", \"children\", \"className\", \"menu\", \"arrow\", \"autoFocus\", \"overlay\", \"trigger\", \"align\", \"visible\", \"open\", \"onVisibleChange\", \"onOpenChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\", \"destroyPopupOnHide\"]);\n var prefixCls = getPrefixCls('dropdown-button', customizePrefixCls);\n var dropdownProps = {\n menu: menu,\n arrow: arrow,\n autoFocus: autoFocus,\n align: align,\n disabled: disabled,\n trigger: disabled ? [] : trigger,\n onOpenChange: onOpenChange || onVisibleChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayClassName: overlayClassName,\n overlayStyle: overlayStyle,\n destroyPopupOnHide: destroyPopupOnHide\n };\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var classes = classNames(prefixCls, compactItemClassnames, className);\n if ('overlay' in props) {\n dropdownProps.overlay = overlay;\n }\n if ('open' in props) {\n dropdownProps.open = open;\n } else if ('visible' in props) {\n dropdownProps.open = visible;\n }\n if ('placement' in props) {\n dropdownProps.placement = placement;\n } else {\n dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n }\n var leftButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n disabled: disabled,\n loading: loading,\n onClick: onClick,\n htmlType: htmlType,\n href: href,\n title: title\n }, children);\n var rightButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n icon: icon\n });\n var _buttonsRender = buttonsRender([leftButton, rightButton]),\n _buttonsRender2 = _slicedToArray(_buttonsRender, 2),\n leftButtonToRender = _buttonsRender2[0],\n rightButtonToRender = _buttonsRender2[1];\n return /*#__PURE__*/React.createElement(Space.Compact, _extends({\n className: classes,\n size: compactSize,\n block: true\n }, restProps), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps), rightButtonToRender));\n};\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcDropdown from 'rc-dropdown';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport Menu from '../menu';\nimport { ConfigContext } from '../config-provider';\nimport { OverrideProvider } from '../menu/OverrideContext';\nimport getPlacements from '../_util/placements';\nimport { cloneElement } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport DropdownButton from './dropdown-button';\nimport { NoCompactStyle } from '../space/Compact';\nvar Placements = tuple('topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight', 'top', 'bottom');\nvar Dropdown = function Dropdown(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Dropdown', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n process.env.NODE_ENV !== \"production\" ? warning(!('overlay' in props), 'Dropdown', '`overlay` is deprecated. Please use `menu` instead.') : void 0;\n }\n var getTransitionName = function getTransitionName() {\n var rootPrefixCls = getPrefixCls();\n var _props$placement = props.placement,\n placement = _props$placement === void 0 ? '' : _props$placement,\n transitionName = props.transitionName;\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.includes('top')) {\n return \"\".concat(rootPrefixCls, \"-slide-down\");\n }\n return \"\".concat(rootPrefixCls, \"-slide-up\");\n };\n var getPlacement = function getPlacement() {\n var placement = props.placement;\n if (!placement) {\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }\n if (placement.includes('Center')) {\n var newPlacement = placement.slice(0, placement.indexOf('Center'));\n process.env.NODE_ENV !== \"production\" ? warning(!placement.includes('Center'), 'Dropdown', \"You are using '\".concat(placement, \"' placement in Dropdown, which is deprecated. Try to use '\").concat(newPlacement, \"' instead.\")) : void 0;\n return newPlacement;\n }\n return placement;\n };\n var menu = props.menu,\n arrow = props.arrow,\n customizePrefixCls = props.prefixCls,\n children = props.children,\n trigger = props.trigger,\n disabled = props.disabled,\n dropdownRender = props.dropdownRender,\n getPopupContainer = props.getPopupContainer,\n overlayClassName = props.overlayClassName,\n visible = props.visible,\n open = props.open,\n onVisibleChange = props.onVisibleChange,\n onOpenChange = props.onOpenChange,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.15 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n var prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n var child = React.Children.only(children);\n var dropdownTrigger = cloneElement(child, {\n className: classNames(\"\".concat(prefixCls, \"-trigger\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), child.props.className),\n disabled: disabled\n });\n var triggerActions = disabled ? [] : trigger;\n var alignPoint;\n if (triggerActions && triggerActions.includes('contextMenu')) {\n alignPoint = true;\n }\n // =========================== Visible ============================\n var _useMergedState = useMergedState(false, {\n value: open !== undefined ? open : visible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpen = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n var onInnerOpenChange = useEvent(function (nextOpen) {\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);\n setOpen(nextOpen);\n });\n // =========================== Overlay ============================\n var overlayClassNameCustomized = classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n var builtinPlacements = getPlacements({\n arrowPointAtCenter: _typeof(arrow) === 'object' && arrow.pointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n var onMenuClick = React.useCallback(function () {\n setOpen(false);\n }, []);\n var renderOverlay = function renderOverlay() {\n // rc-dropdown already can process the function of overlay, but we have check logic here.\n // So we need render the element to check and pass back to rc-dropdown.\n var overlay = props.overlay;\n var overlayNode;\n if (menu === null || menu === void 0 ? void 0 : menu.items) {\n overlayNode = /*#__PURE__*/React.createElement(Menu, _extends({}, menu));\n } else if (typeof overlay === 'function') {\n overlayNode = overlay();\n } else {\n overlayNode = overlay;\n }\n if (dropdownRender) {\n overlayNode = dropdownRender(overlayNode);\n }\n overlayNode = React.Children.only(typeof overlayNode === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, overlayNode) : overlayNode);\n return /*#__PURE__*/React.createElement(OverrideProvider, {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n expandIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow\")\n }, /*#__PURE__*/React.createElement(RightOutlined, {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow-icon\")\n })),\n mode: \"vertical\",\n selectable: false,\n onClick: onMenuClick,\n validator: function validator(_ref3) {\n var mode = _ref3.mode;\n // Warning if use other mode\n process.env.NODE_ENV !== \"production\" ? warning(!mode || mode === 'vertical', 'Dropdown', \"mode=\\\"\".concat(mode, \"\\\" is not supported for Dropdown's Menu.\")) : void 0;\n }\n }, /*#__PURE__*/React.createElement(NoCompactStyle, null, overlayNode));\n };\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(RcDropdown, _extends({\n alignPoint: alignPoint\n }, props, {\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n visible: mergedOpen,\n builtinPlacements: builtinPlacements,\n arrow: !!arrow,\n overlayClassName: overlayClassNameCustomized,\n prefixCls: prefixCls,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n transitionName: getTransitionName(),\n trigger: triggerActions,\n overlay: renderOverlay,\n placement: getPlacement(),\n onVisibleChange: onInnerOpenChange\n }), dropdownTrigger);\n};\nDropdown.Button = DropdownButton;\nexport default Dropdown;","import * as React from 'react';\nvar RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport var RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;\nexport var RadioOptionTypeContext = /*#__PURE__*/React.createContext(null);\nexport var RadioOptionTypeContextProvider = RadioOptionTypeContext.Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"checked\", \"disabled\", \"defaultChecked\", \"type\", \"onChange\"];\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nexport var Checkbox = /*#__PURE__*/forwardRef(function (props, ref) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-checkbox' : _props$prefixCls,\n className = props.className,\n style = props.style,\n checked = props.checked,\n disabled = props.disabled,\n _props$defaultChecked = props.defaultChecked,\n defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,\n _props$type = props.type,\n type = _props$type === void 0 ? 'checkbox' : _props$type,\n onChange = props.onChange,\n inputProps = _objectWithoutProperties(props, _excluded);\n var inputRef = useRef(null);\n var _useMergedState = useMergedState(defaultChecked, {\n value: checked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValue = _useMergedState2[0],\n setRawValue = _useMergedState2[1];\n useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n blur: function blur() {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();\n },\n input: inputRef.current\n };\n });\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), rawValue), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n var handleChange = function handleChange(e) {\n if (disabled) {\n return;\n }\n if (!('checked' in props)) {\n setRawValue(e.target.checked);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange({\n target: _objectSpread(_objectSpread({}, props), {}, {\n type: type,\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n nativeEvent: e.nativeEvent\n });\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classString,\n style: style\n }, /*#__PURE__*/React.createElement(\"input\", _extends({}, inputProps, {\n className: \"\".concat(prefixCls, \"-input\"),\n ref: inputRef,\n onChange: handleChange,\n disabled: disabled,\n checked: !!rawValue,\n type: type\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }));\n});\nexport default Checkbox;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport RadioGroupContext, { RadioOptionTypeContext } from './context';\nvar InternalRadio = function InternalRadio(props, ref) {\n var _classNames;\n var groupContext = React.useContext(RadioGroupContext);\n var radioOptionTypeContext = React.useContext(RadioOptionTypeContext);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var innerRef = React.useRef();\n var mergedRef = composeRef(ref, innerRef);\n var _useContext = useContext(FormItemInputContext),\n isFormItemInput = _useContext.isFormItemInput;\n process.env.NODE_ENV !== \"production\" ? warning(!('optionType' in props), 'Radio', '`optionType` is only support in Radio.Group.') : void 0;\n var onChange = function onChange(e) {\n var _a, _b;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = groupContext === null || groupContext === void 0 ? void 0 : groupContext.onChange) === null || _b === void 0 ? void 0 : _b.call(groupContext, e);\n };\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n style = props.style,\n customDisabled = props.disabled,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"children\", \"style\", \"disabled\"]);\n var radioPrefixCls = getPrefixCls('radio', customizePrefixCls);\n var prefixCls = ((groupContext === null || groupContext === void 0 ? void 0 : groupContext.optionType) || radioOptionTypeContext) === 'button' ? \"\".concat(radioPrefixCls, \"-button\") : radioPrefixCls;\n var radioProps = _extends({}, restProps);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n radioProps.disabled = customDisabled || disabled;\n if (groupContext) {\n radioProps.name = groupContext.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === groupContext.value;\n radioProps.disabled = radioProps.disabled || groupContext.disabled;\n }\n var wrapperClassString = classNames(\"\".concat(prefixCls, \"-wrapper\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-checked\"), radioProps.checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-disabled\"), radioProps.disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-in-form-item\"), isFormItemInput), _classNames), className);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: wrapperClassString,\n style: style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({}, radioProps, {\n type: \"radio\",\n prefixCls: prefixCls,\n ref: mergedRef\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)\n );\n};\nvar Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nif (process.env.NODE_ENV !== 'production') {\n Radio.displayName = 'Radio';\n}\nexport default Radio;","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 classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport getDataOrAriaProps from '../_util/getDataOrAriaProps';\nimport { RadioGroupContextProvider } from './context';\nimport Radio from './radio';\nvar RadioGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var onRadioChange = function onRadioChange(ev) {\n var lastValue = value;\n var val = ev.target.value;\n if (!('value' in props)) {\n setValue(val);\n }\n var onChange = props.onChange;\n if (onChange && val !== lastValue) {\n onChange(ev);\n }\n };\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n options = props.options,\n _props$buttonStyle = props.buttonStyle,\n buttonStyle = _props$buttonStyle === void 0 ? 'outline' : _props$buttonStyle,\n disabled = props.disabled,\n children = props.children,\n customizeSize = props.size,\n style = props.style,\n id = props.id,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onFocus = props.onFocus,\n onBlur = props.onBlur;\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var childrenToRender = children;\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n childrenToRender = options.map(function (option) {\n if (typeof option === 'string' || typeof option === 'number') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option.toString(),\n prefixCls: prefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n }\n // 此处类型自动推导为 { label: string value: string }\n return /*#__PURE__*/React.createElement(Radio, {\n key: \"radio-group-value-options-\".concat(option.value),\n prefixCls: prefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n style: option.style\n }, option.label);\n });\n }\n var mergedSize = customizeSize || size;\n var classString = classNames(groupPrefixCls, \"\".concat(groupPrefixCls, \"-\").concat(buttonStyle), (_classNames = {}, _defineProperty(_classNames, \"\".concat(groupPrefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, getDataOrAriaProps(props), {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onFocus,\n onBlur: onBlur,\n id: id,\n ref: ref\n }), /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: {\n onChange: onRadioChange,\n value: value,\n disabled: props.disabled,\n name: props.name,\n optionType: props.optionType\n }\n }, childrenToRender));\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { RadioOptionTypeContextProvider } from './context';\nimport Radio from './radio';\nvar RadioButton = function RadioButton(props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var customizePrefixCls = props.prefixCls,\n radioProps = __rest(props, [\"prefixCls\"]);\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n return /*#__PURE__*/React.createElement(RadioOptionTypeContextProvider, {\n value: \"button\"\n }, /*#__PURE__*/React.createElement(Radio, _extends({\n prefixCls: prefixCls\n }, radioProps, {\n type: \"radio\",\n ref: ref\n })));\n};\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","import Group from './group';\nimport InternalRadio from './radio';\nimport Button from './radioButton';\nexport { Button, Group };\nvar Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nRadio.__ANT_RADIO = true;\nexport default Radio;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Element = function Element(props) {\n var _classNames, _classNames2;\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n size = props.size,\n shape = props.shape;\n var sizeCls = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _classNames));\n var shapeCls = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-circle\"), shape === 'circle'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-square\"), shape === 'square'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-round\"), shape === 'round'), _classNames2));\n var sizeStyle = React.useMemo(function () {\n return typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: \"\".concat(size, \"px\")\n } : {};\n }, [size]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(prefixCls, sizeCls, shapeCls, className),\n style: _extends(_extends({}, sizeStyle), style)\n });\n};\nexport default Element;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nvar SkeletonAvatar = function SkeletonAvatar(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n active = props.active,\n _props$shape = props.shape,\n shape = _props$shape === void 0 ? 'circle' : _props$shape,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var otherProps = omit(props, ['prefixCls', 'className']);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), _defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, _extends({\n prefixCls: \"\".concat(prefixCls, \"-avatar\"),\n shape: shape,\n size: size\n }, otherProps)));\n};\nexport default SkeletonAvatar;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nvar SkeletonButton = function SkeletonButton(props) {\n var _classNames;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n active = props.active,\n _props$block = props.block,\n block = _props$block === void 0 ? false : _props$block,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var otherProps = omit(props, ['prefixCls']);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block\"), block), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, _extends({\n prefixCls: \"\".concat(prefixCls, \"-button\"),\n size: size\n }, otherProps)));\n};\nexport default SkeletonButton;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport DotChartOutlined from \"@ant-design/icons/es/icons/DotChartOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar SkeletonNode = function SkeletonNode(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n active = props.active,\n children = props.children;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), _defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), className);\n var content = children !== null && children !== void 0 ? children : /*#__PURE__*/React.createElement(DotChartOutlined, null);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-image\"), className),\n style: style\n }, content));\n};\nexport default SkeletonNode;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar path = 'M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z';\nvar SkeletonImage = function SkeletonImage(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n active = props.active;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), _defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-image\"), className),\n style: style\n }, /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 1098 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"\".concat(prefixCls, \"-image-svg\")\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: path,\n className: \"\".concat(prefixCls, \"-image-path\")\n }))));\n};\nexport default SkeletonImage;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nvar SkeletonInput = function SkeletonInput(props) {\n var _classNames;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n active = props.active,\n block = props.block,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var otherProps = omit(props, ['prefixCls']);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block\"), block), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, _extends({\n prefixCls: \"\".concat(prefixCls, \"-input\"),\n size: size\n }, otherProps)));\n};\nexport default SkeletonInput;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Paragraph = function Paragraph(props) {\n var getWidth = function getWidth(index) {\n var width = props.width,\n _props$rows = props.rows,\n rows = _props$rows === void 0 ? 2 : _props$rows;\n if (Array.isArray(width)) {\n return width[index];\n }\n // last paragraph\n if (rows - 1 === index) {\n return width;\n }\n return undefined;\n };\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n rows = props.rows;\n var rowList = _toConsumableArray(Array(rows)).map(function (_, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: index,\n style: {\n width: getWidth(index)\n }\n })\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(prefixCls, className),\n style: style\n }, rowList);\n};\nexport default Paragraph;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/* eslint-disable jsx-a11y/heading-has-content */\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Title = function Title(_ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n width = _ref.width,\n style = _ref.style;\n return /*#__PURE__*/React.createElement(\"h3\", {\n className: classNames(prefixCls, className),\n style: _extends({\n width: width\n }, style)\n });\n};\nexport default Title;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonButton from './Button';\nimport SkeletonNode from './Node';\nimport Element from './Element';\nimport SkeletonImage from './Image';\nimport SkeletonInput from './Input';\nimport Paragraph from './Paragraph';\nimport Title from './Title';\nfunction getComponentProps(prop) {\n if (prop && _typeof(prop) === 'object') {\n return prop;\n }\n return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n if (hasTitle && !hasParagraph) {\n // Square avatar\n return {\n size: 'large',\n shape: 'square'\n };\n }\n return {\n size: 'large',\n shape: 'circle'\n };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n if (!hasAvatar && hasParagraph) {\n return {\n width: '38%'\n };\n }\n if (hasAvatar && hasParagraph) {\n return {\n width: '50%'\n };\n }\n return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n var basicProps = {};\n // Width\n if (!hasAvatar || !hasTitle) {\n basicProps.width = '61%';\n }\n // Rows\n if (!hasAvatar && hasTitle) {\n basicProps.rows = 3;\n } else {\n basicProps.rows = 2;\n }\n return basicProps;\n}\nvar Skeleton = function Skeleton(props) {\n var customizePrefixCls = props.prefixCls,\n loading = props.loading,\n className = props.className,\n style = props.style,\n children = props.children,\n _props$avatar = props.avatar,\n avatar = _props$avatar === void 0 ? false : _props$avatar,\n _props$title = props.title,\n title = _props$title === void 0 ? true : _props$title,\n _props$paragraph = props.paragraph,\n paragraph = _props$paragraph === void 0 ? true : _props$paragraph,\n active = props.active,\n round = props.round;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n if (loading || !('loading' in props)) {\n var _classNames;\n var hasAvatar = !!avatar;\n var hasTitle = !!title;\n var hasParagraph = !!paragraph;\n // Avatar\n var avatarNode;\n if (hasAvatar) {\n var avatarProps = _extends(_extends({\n prefixCls: \"\".concat(prefixCls, \"-avatar\")\n }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));\n // We direct use SkeletonElement as avatar in skeleton internal.\n avatarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(Element, _extends({}, avatarProps)));\n }\n var contentNode;\n if (hasTitle || hasParagraph) {\n // Title\n var $title;\n if (hasTitle) {\n var titleProps = _extends(_extends({\n prefixCls: \"\".concat(prefixCls, \"-title\")\n }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));\n $title = /*#__PURE__*/React.createElement(Title, _extends({}, titleProps));\n }\n // Paragraph\n var paragraphNode;\n if (hasParagraph) {\n var paragraphProps = _extends(_extends({\n prefixCls: \"\".concat(prefixCls, \"-paragraph\")\n }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));\n paragraphNode = /*#__PURE__*/React.createElement(Paragraph, _extends({}, paragraphProps));\n }\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, $title, paragraphNode);\n }\n var cls = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-avatar\"), hasAvatar), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-round\"), round), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: style\n }, avatarNode, contentNode);\n }\n return typeof children !== 'undefined' ? children : null;\n};\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nSkeleton.Image = SkeletonImage;\nSkeleton.Node = SkeletonNode;\nexport default Skeleton;","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import * as React from 'react';\nimport classNames from 'classnames';\nvar TabPane = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n tabKey = _ref.tabKey,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: style,\n className: classNames(prefixCls, active && \"\".concat(prefixCls, \"-active\"), className),\n ref: ref\n }, children);\n});\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'TabPane';\n}\nexport default TabPane;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"key\", \"forceRender\", \"style\", \"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"./TabPane\";\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var tabPaneAnimated = animated.tabPane;\n var tabPanePrefixCls = \"\".concat(prefixCls, \"-tabpane\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated))\n }, tabs.map(function (_ref2) {\n var key = _ref2.key,\n forceRender = _ref2.forceRender,\n paneStyle = _ref2.style,\n paneClassName = _ref2.className,\n restTabProps = _objectWithoutProperties(_ref2, _excluded);\n var active = key === activeKey;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: key,\n visible: active,\n forceRender: forceRender,\n removeOnLeave: !!destroyInactiveTabPane,\n leavedClassName: \"\".concat(tabPanePrefixCls, \"-hidden\")\n }, animated.tabPaneMotion), function (_ref3, ref) {\n var motionStyle = _ref3.style,\n motionClassName = _ref3.className;\n return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {\n prefixCls: tabPanePrefixCls,\n id: id,\n tabKey: key,\n animated: tabPaneAnimated,\n active: active,\n style: _objectSpread(_objectSpread({}, paneStyle), motionStyle),\n className: classNames(paneClassName, motionClassName),\n ref: ref\n }));\n });\n })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n return useMemo(function () {\n var _tabs$;\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key);\n\n // Reuse last one when not exist yet\n if (!data) {\n var _tabs;\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n var entity = map.get(key) || _objectSpread({}, data);\n\n // Right\n entity.right = rightOffset - entity.left - entity.width;\n\n // Update entity\n map.set(key, entity);\n }\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n stateRef.current = newValue;\n forceUpdate({});\n }\n return [stateRef.current, setState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);\n\n// ================================= Hook =================================\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n var motionRef = useRef();\n\n // ========================= Events =========================\n // >>> Touch events\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n function onTouchMove(e) {\n if (!touchPosition) return;\n e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null);\n\n // Swipe if needed\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY);\n\n // Skip swipe if low distance\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n }\n\n // >>> Wheel event\n var lastWheelDirectionRef = useRef();\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY;\n\n // Convert both to x & y since wheel only happened on PC\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n }\n\n // ========================= Effect =========================\n var touchEventsRef = useRef(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n });\n\n // No need to clean up since element removed\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n ref.current.addEventListener('wheel', onProxyWheel);\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport { useRef, useState } from 'react';\n\n/**\n * Help to merge callback with `useLayoutEffect`.\n * One time will only trigger once.\n */\nexport default function useUpdate(callback) {\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n count = _useState2[0],\n setCount = _useState2[1];\n var effectRef = useRef(0);\n var callbackRef = useRef();\n callbackRef.current = callback;\n\n // Trigger on `useLayoutEffect`\n useLayoutUpdateEffect(function () {\n var _callbackRef$current;\n (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef);\n }, [count]);\n\n // Trigger to update count\n return function () {\n if (effectRef.current !== count) {\n return;\n }\n effectRef.current += 1;\n setCount(effectRef.current);\n };\n}\nexport function useUpdateState(defaultState) {\n var batchRef = useRef([]);\n var _useState3 = useState({}),\n _useState4 = _slicedToArray(_useState3, 2),\n forceUpdate = _useState4[1];\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useUpdate(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n return [state.current, updater];\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport default function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var charUnit;\n var position;\n var transformSize;\n if (['top', 'bottom'].includes(tabPosition)) {\n charUnit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(transform);\n } else {\n charUnit = 'height';\n position = 'top';\n transformSize = -transform;\n }\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n var len = tabs.length;\n var endIndex = len;\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {\n endIndex = i - 1;\n break;\n }\n }\n var startIndex = 0;\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n return [startIndex, endIndex];\n }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","/**\n * We trade Map as deps which may change with same value but different ref object.\n * We should make it as hash for deps\n * */\nexport function stringify(obj) {\n var tgt;\n if (obj instanceof Map) {\n tgt = {};\n obj.forEach(function (v, k) {\n tgt[k] = v;\n });\n } else {\n tgt = obj;\n }\n return JSON.stringify(tgt);\n}\nvar RC_TABS_DOUBLE_QUOTE = 'TABS_DQ';\nexport function genDataNodeKey(key) {\n return String(key).replace(/\"/g, RC_TABS_DOUBLE_QUOTE);\n}","import * as React from 'react';\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n if (!editable || editable.showAdd === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n}\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nvar ExtraContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content;\n\n // Parse extra\n var assertExtra = {};\n if (_typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n if (position === 'right') {\n content = assertExtra.right;\n }\n if (position === 'left') {\n content = assertExtra.left;\n }\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\"),\n ref: ref\n }, content) : null;\n});\nif (process.env.NODE_ENV !== 'production') {\n ExtraContent.displayName = 'ExtraContent';\n}\nexport default ExtraContent;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport AddButton from \"./AddButton\";\nfunction OperationNode(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n tabs = _ref.tabs,\n locale = _ref.locale,\n mobile = _ref.mobile,\n _ref$moreIcon = _ref.moreIcon,\n moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n style = _ref.style,\n className = _ref.className,\n editable = _ref.editable,\n tabBarGutter = _ref.tabBarGutter,\n rtl = _ref.rtl,\n removeAriaLabel = _ref.removeAriaLabel,\n onTabClick = _ref.onTabClick,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName;\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var menu = /*#__PURE__*/React.createElement(Menu, {\n onClick: function onClick(_ref2) {\n var key = _ref2.key,\n domEvent = _ref2.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n prefixCls: \"\".concat(dropdownPrefix, \"-menu\"),\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var removable = editable && tab.closable !== false && !tab.disabled;\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: tab.key,\n id: \"\".concat(popupId, \"-\").concat(tab.key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(tab.key),\n disabled: tab.disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, tab.label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, tab.key);\n }\n }, tab.closeIcon || editable.removeIcon || '×'));\n }));\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n function onKeyDown(e) {\n var which = e.which;\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n return;\n }\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n case KeyCode.ESC:\n setOpen(false);\n break;\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n }\n\n // ========================= Effect =========================\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]);\n\n // ========================= Render =========================\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {\n prefixCls: dropdownPrefix,\n overlay: menu,\n trigger: ['hover'],\n visible: tabs.length ? open : false,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: classNames(overlayClassName, popupClassName),\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n}\nexport default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {\n return (\n // https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { genDataNodeKey } from \"../util\";\nfunction TabNode(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n label = _ref$tab.label,\n disabled = _ref$tab.disabled,\n closeIcon = _ref$tab.closeIcon,\n closable = _ref.closable,\n renderWrapper = _ref.renderWrapper,\n removeAriaLabel = _ref.removeAriaLabel,\n editable = _ref.editable,\n onClick = _ref.onClick,\n onFocus = _ref.onFocus,\n style = _ref.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n var removable = editable && closable !== false && !disabled;\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n onClick(e);\n }\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key\n // ref={ref}\n ,\n \"data-node-key\": genDataNodeKey(key),\n className: classNames(tabPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-active\"), active), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n}\nexport default TabNode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useOffsets from \"../hooks/useOffsets\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useUpdate, { useUpdateState } from \"../hooks/useUpdate\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport TabContext from \"../TabContext\";\nimport { genDataNodeKey, stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\nvar getSize = function getSize(refObj) {\n var _ref = refObj.current || {},\n _ref$offsetWidth = _ref.offsetWidth,\n offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n _ref$offsetHeight = _ref.offsetHeight,\n offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n return [offsetWidth, offsetHeight];\n};\n\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n return size[tabPositionTopOrBottom ? 0 : 1];\n};\nfunction TabNavList(props, ref) {\n var _classNames;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll;\n var containerRef = useRef();\n var extraLeftRef = useRef();\n var extraRightRef = useRef();\n var tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef();\n // const [getBtnRef, removeBtnRef] = useRefs();\n\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n var _useSyncState = useSyncState(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n var _useSyncState3 = useSyncState(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n var _useState = useState([0, 0]),\n _useState2 = _slicedToArray(_useState, 2),\n containerExcludeExtraSize = _useState2[0],\n setContainerExcludeExtraSize = _useState2[1];\n var _useState3 = useState([0, 0]),\n _useState4 = _slicedToArray(_useState3, 2),\n tabContentSize = _useState4[0],\n setTabContentSize = _useState4[1];\n var _useState5 = useState([0, 0]),\n _useState6 = _slicedToArray(_useState5, 2),\n addSize = _useState6[0],\n setAddSize = _useState6[1];\n var _useState7 = useState([0, 0]),\n _useState8 = _slicedToArray(_useState7, 2),\n operationSize = _useState8[0],\n setOperationSize = _useState8[1];\n var _useUpdateState = useUpdateState(new Map()),\n _useUpdateState2 = _slicedToArray(_useUpdateState, 2),\n tabSizes = _useUpdateState2[0],\n setTabSizes = _useUpdateState2[1];\n var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]);\n\n // ========================== Unit =========================\n var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue;\n\n // ========================== Util =========================\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n } else {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n }\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n if (value > transformMax) {\n return transformMax;\n }\n return value;\n }\n\n // ========================= Mobile ========================\n var touchMovingRef = useRef();\n var _useState9 = useState(),\n _useState10 = _slicedToArray(_useState9, 2),\n lockAnimation = _useState10[0],\n setLockAnimation = _useState10[1];\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\n useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n }\n\n // Skip scroll if place is enough\n if (!needScroll) {\n return false;\n }\n if (tabPositionTopOrBottom) {\n doMove(setTransformLeft, offsetX);\n } else {\n doMove(setTransformTop, offsetY);\n }\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n return clearTouchMoving;\n }, [lockAnimation]);\n\n // ===================== Visible Range =====================\n // Render tab node & collect tab offset\n var _useVisibleRange = useVisibleRange(tabOffsets,\n // Container\n visibleTabContentValue,\n // Transform\n tabPositionTopOrBottom ? transformLeft : transformTop,\n // Tabs\n tabContentSizeValue,\n // Add\n addSizeValue,\n // Operation\n operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n\n // ========================= Scroll ========================\n var scrollToTab = useEvent(function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft;\n\n // RTL\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n }\n }\n // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n }\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n }\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n });\n\n // ========================== Tab ==========================\n var tabNodeStyle = {};\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */,\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n if (!tabsWrapperRef.current) {\n return;\n }\n // Focus element will make scrollLeft change which we should reset back\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n\n // Update buttons records\n var updateTabSizes = function updateTabSizes() {\n return setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var _tabListRef$current;\n var key = _ref2.key;\n var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector(\"[data-node-key=\\\"\".concat(genDataNodeKey(key), \"\\\"]\"));\n if (btnNode) {\n newSizes.set(key, {\n width: btnNode.offsetWidth,\n height: btnNode.offsetHeight,\n left: btnNode.offsetLeft,\n top: btnNode.offsetTop\n });\n }\n });\n return newSizes;\n });\n };\n useEffect(function () {\n updateTabSizes();\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_')]);\n var onListHolderResize = useUpdate(function () {\n // Update wrapper records\n var containerSize = getSize(containerRef);\n var extraLeftSize = getSize(extraLeftRef);\n var extraRightSize = getSize(extraRightRef);\n setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n var newAddSize = getSize(innerAddButtonRef);\n setAddSize(newAddSize);\n var newOperationSize = getSize(operationsRef);\n setOperationSize(newOperationSize);\n\n // Which includes add button size\n var tabContentFullSize = getSize(tabListRef);\n setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]);\n\n // Update buttons records\n updateTabSizes();\n });\n\n // ======================== Dropdown =======================\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs));\n\n // =================== Link & Operations ===================\n var _useState11 = useState(),\n _useState12 = _slicedToArray(_useState11, 2),\n inkStyle = _useState12[0],\n setInkStyle = _useState12[1];\n var activeTabOffset = tabOffsets.get(activeKey);\n\n // Delay set ink style to avoid remove tab blink\n var inkBarRafRef = useRef();\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n useEffect(function () {\n var newInkStyle = {};\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]);\n\n // ========================= Effect ========================\n useEffect(function () {\n scrollToTab();\n // eslint-disable-next-line\n }, [activeKey, transformMin, transformMax, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]);\n\n // Should recalculate when rtl changed\n useEffect(function () {\n onListHolderResize();\n // eslint-disable-next-line\n }, [rtl]);\n\n // ========================= Render ========================\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft !== transformMax;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = transformLeft !== transformMin;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = transformTop !== transformMin;\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: useComposeRef(ref, containerRef),\n role: \"tablist\",\n className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraLeftRef,\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: inkStyle\n })))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraRightRef,\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n })));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"renderTabBar\"],\n _excluded2 = [\"label\", \"key\"];\n// zombieJ: To compatible with `renderTabBar` usage.\n\nimport * as React from 'react';\nimport TabNavList from '.';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"../TabPanelList/TabPane\";\n// We have to create a TabNavList components.\nexport default function TabNavListWrapper(_ref) {\n var renderTabBar = _ref.renderTabBar,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(TabContext),\n tabs = _React$useContext.tabs;\n if (renderTabBar) {\n var tabNavBarProps = _objectSpread(_objectSpread({}, restProps), {}, {\n // Legacy support. We do not use this actually\n panes: tabs.map(function (_ref2) {\n var label = _ref2.label,\n key = _ref2.key,\n restTabProps = _objectWithoutProperties(_ref2, _excluded2);\n return /*#__PURE__*/React.createElement(TabPane, _extends({\n tab: label,\n key: key,\n tabKey: key\n }, restTabProps));\n })\n });\n return renderTabBar(tabNavBarProps, TabNavList);\n }\n return /*#__PURE__*/React.createElement(TabNavList, restProps);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nexport default function useAnimateConfig() {\n var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: false\n };\n } else {\n mergedAnimated = _objectSpread({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n }\n\n // Enable tabPane animation if provide motion\n if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {\n mergedAnimated.tabPane = true;\n }\n if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');\n }\n mergedAnimated.tabPane = false;\n }\n return mergedAnimated;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"items\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\", \"getPopupContainer\", \"popupClassName\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabPanelList from \"./TabPanelList\";\nimport TabContext from \"./TabContext\";\nimport TabNavListWrapper from \"./TabNavList/Wrapper\";\nimport useAnimateConfig from \"./hooks/useAnimateConfig\";\n\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n\n// Used for accessibility\nvar uuid = 0;\nfunction Tabs(_ref, ref) {\n var _classNames;\n var id = _ref.id,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,\n className = _ref.className,\n items = _ref.items,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n animated = _ref.animated,\n _ref$tabPosition = _ref.tabPosition,\n tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,\n tabBarGutter = _ref.tabBarGutter,\n tabBarStyle = _ref.tabBarStyle,\n tabBarExtraContent = _ref.tabBarExtraContent,\n locale = _ref.locale,\n moreIcon = _ref.moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n renderTabBar = _ref.renderTabBar,\n onChange = _ref.onChange,\n onTabClick = _ref.onTabClick,\n onTabScroll = _ref.onTabScroll,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var tabs = React.useMemo(function () {\n return (items || []).filter(function (item) {\n return item && _typeof(item) === 'object' && 'key' in item;\n });\n }, [items]);\n var rtl = direction === 'rtl';\n var mergedAnimated = useAnimateConfig(animated);\n\n // ======================== Mobile ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ====================== Active Key ======================\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n var _useState3 = useState(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1];\n\n // Reset active key if not exist anymore\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]);\n\n // ===================== Accessibility ====================\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n\n // Async generate id to avoid ssr mapping failed\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []);\n\n // ======================== Events ========================\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n if (isActiveChanged) {\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n }\n }\n\n // ======================== Render ========================\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: tabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n moreIcon: moreIcon,\n moreTransitionName: moreTransitionName,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: null,\n getPopupContainer: getPopupContainer,\n popupClassName: popupClassName\n });\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n id: id,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(tabPosition), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n }, restProps), tabNavBar, /*#__PURE__*/React.createElement(TabNavListWrapper, _extends({}, tabNavBarProps, {\n renderTabBar: renderTabBar\n })), /*#__PURE__*/React.createElement(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\nif (process.env.NODE_ENV !== 'production') {\n ForwardTabs.displayName = 'Tabs';\n}\nexport default ForwardTabs;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getTransitionName } from '../../_util/motion';\nvar motion = {\n motionAppear: false,\n motionEnter: true,\n motionLeave: true\n};\nexport default function useAnimateConfig(prefixCls) {\n var animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: true\n };\n } else {\n mergedAnimated = _extends({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n }\n if (mergedAnimated.tabPane) {\n mergedAnimated.tabPaneMotion = _extends(_extends({}, motion), {\n motionName: getTransitionName(prefixCls, 'switch')\n });\n }\n return mergedAnimated;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from '../../_util/warning';\nfunction filter(items) {\n return items.filter(function (item) {\n return item;\n });\n}\nexport default function useLegacyItems(items, children) {\n if (items) {\n return items;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Tabs', 'Tabs.TabPane is deprecated. Please use `items` directly.') : void 0;\n var childrenItems = toArray(children).map(function (node) {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n var key = node.key,\n props = node.props;\n var _a = props || {},\n tab = _a.tab,\n restProps = __rest(_a, [\"tab\"]);\n var item = _extends(_extends({\n key: String(key)\n }, restProps), {\n label: tab\n });\n return item;\n }\n return null;\n });\n return filter(childrenItems);\n}","var TabPane = function TabPane() {\n return null;\n};\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'DeprecatedTabPane';\n}\nexport default TabPane;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport classNames from 'classnames';\nimport RcTabs from 'rc-tabs';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport warning from '../_util/warning';\nimport useAnimateConfig from './hooks/useAnimateConfig';\nimport useLegacyItems from './hooks/useLegacyItems';\nimport TabPane from './TabPane';\nfunction Tabs(_a) {\n var type = _a.type,\n className = _a.className,\n propSize = _a.size,\n _onEdit = _a.onEdit,\n hideAdd = _a.hideAdd,\n centered = _a.centered,\n addIcon = _a.addIcon,\n children = _a.children,\n items = _a.items,\n animated = _a.animated,\n props = __rest(_a, [\"type\", \"className\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\", \"children\", \"items\", \"animated\"]);\n var customizePrefixCls = props.prefixCls,\n _props$moreIcon = props.moreIcon,\n moreIcon = _props$moreIcon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$moreIcon;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n getPopupContainer = _React$useContext.getPopupContainer;\n var prefixCls = getPrefixCls('tabs', customizePrefixCls);\n var editable;\n if (type === 'editable-card') {\n editable = {\n onEdit: function onEdit(editType, _ref) {\n var key = _ref.key,\n event = _ref.event;\n _onEdit === null || _onEdit === void 0 ? void 0 : _onEdit(editType === 'add' ? event : key, editType);\n },\n removeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null),\n addIcon: addIcon || /*#__PURE__*/React.createElement(PlusOutlined, null),\n showAdd: hideAdd !== true\n };\n }\n var rootPrefixCls = getPrefixCls();\n process.env.NODE_ENV !== \"production\" ? warning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.') : void 0;\n var mergedItems = useLegacyItems(items, children);\n var mergedAnimated = useAnimateConfig(prefixCls, animated);\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (contextSize) {\n var _classNames;\n var size = propSize !== undefined ? propSize : contextSize;\n return /*#__PURE__*/React.createElement(RcTabs, _extends({\n direction: direction,\n getPopupContainer: getPopupContainer,\n moreTransitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n }, props, {\n items: mergedItems,\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-card\"), ['card', 'editable-card'].includes(type)), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable-card\"), type === 'editable-card'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-centered\"), centered), _classNames), className),\n editable: editable,\n moreIcon: moreIcon,\n prefixCls: prefixCls,\n animated: mergedAnimated\n }));\n });\n}\nTabs.TabPane = TabPane;\nexport default Tabs;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigConsumer } from '../config-provider';\nvar Grid = function Grid(_a) {\n var prefixCls = _a.prefixCls,\n className = _a.className,\n _a$hoverable = _a.hoverable,\n hoverable = _a$hoverable === void 0 ? true : _a$hoverable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('card', prefixCls);\n var classString = classNames(\"\".concat(prefix, \"-grid\"), className, _defineProperty({}, \"\".concat(prefix, \"-grid-hoverable\"), hoverable));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: classString\n }));\n });\n};\nexport default Grid;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport Skeleton from '../skeleton';\nimport Tabs from '../tabs';\nimport Grid from './Grid';\nfunction getAction(actions) {\n var actionList = actions.map(function (action, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: \"\".concat(100 / actions.length, \"%\")\n },\n key: \"action-\".concat(index)\n }, /*#__PURE__*/React.createElement(\"span\", null, action))\n );\n });\n return actionList;\n}\nvar Card = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _extends2, _classNames;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n var onTabChange = function onTabChange(key) {\n var _a;\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n var isContainGrid = function isContainGrid() {\n var containGrid;\n React.Children.forEach(props.children, function (element) {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n extra = props.extra,\n _props$headStyle = props.headStyle,\n headStyle = _props$headStyle === void 0 ? {} : _props$headStyle,\n _props$bodyStyle = props.bodyStyle,\n bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle,\n title = props.title,\n loading = props.loading,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customizeSize = props.size,\n type = props.type,\n cover = props.cover,\n actions = props.actions,\n tabList = props.tabList,\n children = props.children,\n activeTabKey = props.activeTabKey,\n defaultActiveTabKey = props.defaultActiveTabKey,\n tabBarExtraContent = props.tabBarExtraContent,\n hoverable = props.hoverable,\n _props$tabProps = props.tabProps,\n tabProps = _props$tabProps === void 0 ? {} : _props$tabProps,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var loadingBlock = /*#__PURE__*/React.createElement(Skeleton, {\n loading: true,\n active: true,\n paragraph: {\n rows: 4\n },\n title: false\n }, children);\n var hasActiveTabKey = activeTabKey !== undefined;\n var extraProps = _extends(_extends({}, tabProps), (_extends2 = {}, _defineProperty(_extends2, hasActiveTabKey ? 'activeKey' : 'defaultActiveKey', hasActiveTabKey ? activeTabKey : defaultActiveTabKey), _defineProperty(_extends2, \"tabBarExtraContent\", tabBarExtraContent), _extends2));\n var head;\n var tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(Tabs, _extends({\n size: \"large\"\n }, extraProps, {\n className: \"\".concat(prefixCls, \"-head-tabs\"),\n onChange: onTabChange,\n items: tabList.map(function (item) {\n var _a;\n return {\n label: item.tab,\n key: item.key,\n disabled: (_a = item.disabled) !== null && _a !== void 0 ? _a : false\n };\n })\n })) : null;\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head\"),\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-wrapper\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), tabs);\n }\n var coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-cover\")\n }, cover) : null;\n var body = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, loading ? loadingBlock : children);\n var actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-actions\")\n }, getAction(actions)) : null;\n var divProps = omit(others, ['onTabChange']);\n var mergedSize = customizeSize || size;\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hoverable\"), hoverable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-grid\"), isContainGrid()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-tabs\"), tabList && tabList.length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-type-\").concat(type), !!type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, divProps, {\n className: classString\n }), head, coverDom, body, actionDom);\n});\nexport default Card;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigConsumer } from '../config-provider';\nvar Meta = function Meta(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n avatar = props.avatar,\n title = props.title,\n description = props.description,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-meta\"), className);\n var avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-avatar\")\n }, avatar) : null;\n var titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-title\")\n }, title) : null;\n var descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-description\")\n }, description) : null;\n var MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-detail\")\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n });\n};\nexport default Meta;","import InternalCard from './Card';\nimport Grid from './Grid';\nimport Meta from './Meta';\nvar Card = InternalCard;\nCard.Grid = Grid;\nCard.Meta = Meta;\nexport default Card;","import warning from \"rc-util/es/warning\";\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!keyEntities[key];\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n // Add FlattenDataNode into list\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(data);\n }\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = keyEntities[key];\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Checkbox from './Checkbox';\nexport var GroupContext = /*#__PURE__*/React.createContext(null);\nvar InternalCheckboxGroup = function InternalCheckboxGroup(_a, ref) {\n var defaultValue = _a.defaultValue,\n children = _a.children,\n _a$options = _a.options,\n options = _a$options === void 0 ? [] : _a$options,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n style = _a.style,\n onChange = _a.onChange,\n restProps = __rest(_a, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"style\", \"onChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState = React.useState(restProps.value || defaultValue || []),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n registeredValues = _React$useState4[0],\n setRegisteredValues = _React$useState4[1];\n React.useEffect(function () {\n if ('value' in restProps) {\n setValue(restProps.value || []);\n }\n }, [restProps.value]);\n var getOptions = function getOptions() {\n return options.map(function (option) {\n if (typeof option === 'string' || typeof option === 'number') {\n return {\n label: option,\n value: option\n };\n }\n return option;\n });\n };\n var cancelValue = function cancelValue(val) {\n setRegisteredValues(function (prevValues) {\n return prevValues.filter(function (v) {\n return v !== val;\n });\n });\n };\n var registerValue = function registerValue(val) {\n setRegisteredValues(function (prevValues) {\n return [].concat(_toConsumableArray(prevValues), [val]);\n });\n };\n var toggleOption = function toggleOption(option) {\n var optionIndex = value.indexOf(option.value);\n var newValue = _toConsumableArray(value);\n if (optionIndex === -1) {\n newValue.push(option.value);\n } else {\n newValue.splice(optionIndex, 1);\n }\n if (!('value' in restProps)) {\n setValue(newValue);\n }\n var opts = getOptions();\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(function (val) {\n return registeredValues.includes(val);\n }).sort(function (a, b) {\n var indexA = opts.findIndex(function (opt) {\n return opt.value === a;\n });\n var indexB = opts.findIndex(function (opt) {\n return opt.value === b;\n });\n return indexA - indexB;\n }));\n };\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var domProps = omit(restProps, ['value', 'disabled']);\n if (options && options.length > 0) {\n children = getOptions().map(function (option) {\n return /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n value: option.value,\n checked: value.includes(option.value),\n onChange: option.onChange,\n className: \"\".concat(groupPrefixCls, \"-item\"),\n style: option.style\n }, option.label);\n });\n }\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n var context = {\n toggleOption: toggleOption,\n value: value,\n disabled: restProps.disabled,\n name: restProps.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue: registerValue,\n cancelValue: cancelValue\n };\n var classString = classNames(groupPrefixCls, _defineProperty({}, \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, domProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n value: context\n }, children));\n};\nvar CheckboxGroup = /*#__PURE__*/React.forwardRef(InternalCheckboxGroup);\nexport default /*#__PURE__*/React.memo(CheckboxGroup);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport { GroupContext } from './Group';\nimport DisabledContext from '../config-provider/DisabledContext';\nvar InternalCheckbox = function InternalCheckbox(_a, ref) {\n var _classNames;\n var _b;\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n children = _a.children,\n _a$indeterminate = _a.indeterminate,\n indeterminate = _a$indeterminate === void 0 ? false : _a$indeterminate,\n style = _a.style,\n onMouseEnter = _a.onMouseEnter,\n onMouseLeave = _a.onMouseLeave,\n _a$skipGroup = _a.skipGroup,\n skipGroup = _a$skipGroup === void 0 ? false : _a$skipGroup,\n disabled = _a.disabled,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\", \"disabled\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var checkboxGroup = React.useContext(GroupContext);\n var _useContext = useContext(FormItemInputContext),\n isFormItemInput = _useContext.isFormItemInput;\n var contextDisabled = useContext(DisabledContext);\n var mergedDisabled = (_b = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _b !== void 0 ? _b : contextDisabled;\n var prevValue = React.useRef(restProps.value);\n React.useEffect(function () {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'Checkbox', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n }, []);\n React.useEffect(function () {\n if (skipGroup) {\n return;\n }\n if (restProps.value !== prevValue.current) {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n prevValue.current = restProps.value;\n }\n return function () {\n return checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n };\n }, [restProps.value]);\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var checkboxProps = _extends({}, restProps);\n if (checkboxGroup && !skipGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n if (checkboxGroup.toggleOption) {\n checkboxGroup.toggleOption({\n label: children,\n value: restProps.value\n });\n }\n };\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.includes(restProps.value);\n }\n var classString = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-checked\"), checkboxProps.checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-disabled\"), mergedDisabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrapper-in-form-item\"), isFormItemInput), _classNames), className);\n var checkboxClass = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-indeterminate\"), indeterminate));\n var ariaChecked = indeterminate ? 'mixed' : undefined;\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({\n \"aria-checked\": ariaChecked\n }, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n disabled: mergedDisabled,\n ref: ref\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))\n );\n};\nvar Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import InternalCheckbox from './Checkbox';\nimport Group from './Group';\nvar Checkbox = InternalCheckbox;\nCheckbox.Group = Group;\nCheckbox.__ANT_CHECKBOX = true;\nexport default Checkbox;","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\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return \"\".concat(flex, \" \").concat(flex, \" auto\");\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return \"0 0 \".concat(flex);\n }\n return flex;\n}\nvar sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nvar Col = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useContext2 = React.useContext(RowContext),\n gutter = _React$useContext2.gutter,\n wrap = _React$useContext2.wrap,\n supportFlexGap = _React$useContext2.supportFlexGap;\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 var prefixCls = getPrefixCls('col', customizePrefixCls);\n var sizeClassObj = {};\n sizes.forEach(function (size) {\n var _extends2;\n var sizeProps = {};\n var propSize = props[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (_typeof(propSize) === 'object') {\n sizeProps = propSize || {};\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 = {};\n // Horizontal gutter use padding\n if (gutter && gutter[0] > 0) {\n var horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n }\n // Vertical gutter use padding when gap not support\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n var verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n if (flex) {\n mergedStyle.flex = parseFlex(flex);\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\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});\nif (process.env.NODE_ENV !== 'production') {\n Col.displayName = 'Col';\n}\nexport default Col;","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\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve';\nimport { tuple } from '../_util/type';\nimport RowContext from './RowContext';\nvar RowAligns = tuple('top', 'middle', 'bottom', 'stretch');\nvar RowJustify = tuple('start', 'end', 'center', 'space-around', 'space-between', 'space-evenly');\nfunction useMergePropByScreen(oriProp, screen) {\n var _React$useState = React.useState(typeof oriProp === 'string' ? oriProp : ''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prop = _React$useState2[0],\n setProp = _React$useState2[1];\n var clacMergeAlignOrJustify = function clacMergeAlignOrJustify() {\n if (typeof oriProp === 'string') {\n setProp(oriProp);\n }\n if (_typeof(oriProp) !== 'object') {\n return;\n }\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n // if do not match, do nothing\n if (!screen[breakpoint]) continue;\n var curVal = oriProp[breakpoint];\n if (curVal !== undefined) {\n setProp(curVal);\n return;\n }\n }\n };\n React.useEffect(function () {\n clacMergeAlignOrJustify();\n }, [JSON.stringify(oriProp), screen]);\n return prop;\n}\nvar Row = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\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 var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState3 = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n screens = _React$useState4[0],\n setScreens = _React$useState4[1];\n // to save screens info when responsiveObserve callback had been call\n var _React$useState5 = React.useState({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n curScreens = _React$useState6[0],\n setCurScreens = _React$useState6[1];\n // ================================== calc reponsive data ==================================\n var mergeAlign = useMergePropByScreen(align, curScreens);\n var mergeJustify = useMergePropByScreen(justify, curScreens);\n var supportFlexGap = useFlexGapSupport();\n var gutterRef = React.useRef(gutter);\n // ================================== Effect ==================================\n React.useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (screen) {\n setCurScreens(screen);\n var currentGutter = gutterRef.current || 0;\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 }, []);\n // ================================== Render ==================================\n var getGutter = function getGutter() {\n var results = [undefined, undefined];\n var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\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 if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\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(mergeJustify), mergeJustify), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergeAlign), mergeAlign), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n // Add gutter related style\n var rowStyle = {};\n var horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n var verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n var _gutters = _slicedToArray(gutters, 2);\n rowStyle.rowGap = _gutters[1];\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n var _gutters2 = _slicedToArray(gutters, 2),\n gutterH = _gutters2[0],\n gutterV = _gutters2[1];\n var rowContext = React.useMemo(function () {\n return {\n gutter: [gutterH, gutterV],\n wrap: wrap,\n supportFlexGap: supportFlexGap\n };\n }, [gutterH, gutterV, 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});\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\nexport default Row;","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getScrollBarSize();\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar DrawerPanel = function DrawerPanel(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n containerRef = props.containerRef;\n // =============================== Render ===============================\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: _objectSpread({}, style),\n \"aria-modal\": \"true\",\n role: \"dialog\",\n ref: containerRef\n }, children));\n};\nif (process.env.NODE_ENV !== 'production') {\n DrawerPanel.displayName = 'DrawerPanel';\n}\nexport default DrawerPanel;","import * as React from 'react';\nvar DrawerContext = /*#__PURE__*/React.createContext(null);\nexport default DrawerContext;","import warning from \"rc-util/es/warning\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nexport function parseWidthHeight(value) {\n if (typeof value === 'string' && String(Number(value)) === value) {\n warning(false, 'Invalid value type of `width` or `height` which should be number type instead.');\n return Number(value);\n }\n return value;\n}\nexport function warnCheck(props) {\n warning(!('wrapperClassName' in props), \"'wrapperClassName' is removed. Please use 'rootClassName' instead.\");\n warning(canUseDom() || !props.open, \"Drawer with 'open' in SSR is not work since no place to createPortal. Please move to 'useEffect' instead.\");\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _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 classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport DrawerPanel from './DrawerPanel';\nimport DrawerContext from './context';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { parseWidthHeight } from './util';\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none',\n position: 'absolute'\n};\nfunction DrawerPopup(props, ref) {\n var _ref, _pushConfig$distance, _pushConfig, _classNames;\n var prefixCls = props.prefixCls,\n open = props.open,\n placement = props.placement,\n inline = props.inline,\n push = props.push,\n forceRender = props.forceRender,\n autoFocus = props.autoFocus,\n keyboard = props.keyboard,\n rootClassName = props.rootClassName,\n rootStyle = props.rootStyle,\n zIndex = props.zIndex,\n className = props.className,\n style = props.style,\n motion = props.motion,\n width = props.width,\n height = props.height,\n children = props.children,\n contentWrapperStyle = props.contentWrapperStyle,\n mask = props.mask,\n maskClosable = props.maskClosable,\n maskMotion = props.maskMotion,\n maskClassName = props.maskClassName,\n maskStyle = props.maskStyle,\n afterOpenChange = props.afterOpenChange,\n onClose = props.onClose;\n // ================================ Refs ================================\n var panelRef = React.useRef();\n var sentinelStartRef = React.useRef();\n var sentinelEndRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return panelRef.current;\n });\n var onPanelKeyDown = function onPanelKeyDown(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n switch (keyCode) {\n // Tab active\n case KeyCode.TAB:\n {\n if (keyCode === KeyCode.TAB) {\n if (!shiftKey && document.activeElement === sentinelEndRef.current) {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 ? void 0 : _sentinelStartRef$cur.focus({\n preventScroll: true\n });\n } else if (shiftKey && document.activeElement === sentinelStartRef.current) {\n var _sentinelEndRef$curre;\n (_sentinelEndRef$curre = sentinelEndRef.current) === null || _sentinelEndRef$curre === void 0 ? void 0 : _sentinelEndRef$curre.focus({\n preventScroll: true\n });\n }\n }\n break;\n }\n // Close\n case KeyCode.ESC:\n {\n if (onClose && keyboard) {\n event.stopPropagation();\n onClose(event);\n }\n break;\n }\n }\n };\n // ========================== Control ===========================\n // Auto Focus\n React.useEffect(function () {\n if (open && autoFocus) {\n var _panelRef$current;\n (_panelRef$current = panelRef.current) === null || _panelRef$current === void 0 ? void 0 : _panelRef$current.focus({\n preventScroll: true\n });\n }\n }, [open]);\n // ============================ Push ============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n pushed = _React$useState2[0],\n setPushed = _React$useState2[1];\n var parentContext = React.useContext(DrawerContext);\n // Merge push distance\n var pushConfig;\n if (push === false) {\n pushConfig = {\n distance: 0\n };\n } else if (push === true) {\n pushConfig = {};\n } else {\n pushConfig = push || {};\n }\n var pushDistance = (_ref = (_pushConfig$distance = (_pushConfig = pushConfig) === null || _pushConfig === void 0 ? void 0 : _pushConfig.distance) !== null && _pushConfig$distance !== void 0 ? _pushConfig$distance : parentContext === null || parentContext === void 0 ? void 0 : parentContext.pushDistance) !== null && _ref !== void 0 ? _ref : 180;\n var mergedContext = React.useMemo(function () {\n return {\n pushDistance: pushDistance,\n push: function push() {\n setPushed(true);\n },\n pull: function pull() {\n setPushed(false);\n }\n };\n }, [pushDistance]);\n // ========================= ScrollLock =========================\n // Tell parent to push\n React.useEffect(function () {\n if (open) {\n var _parentContext$push;\n parentContext === null || parentContext === void 0 ? void 0 : (_parentContext$push = parentContext.push) === null || _parentContext$push === void 0 ? void 0 : _parentContext$push.call(parentContext);\n } else {\n var _parentContext$pull;\n parentContext === null || parentContext === void 0 ? void 0 : (_parentContext$pull = parentContext.pull) === null || _parentContext$pull === void 0 ? void 0 : _parentContext$pull.call(parentContext);\n }\n }, [open]);\n // Clean up\n React.useEffect(function () {\n return function () {\n var _parentContext$pull2;\n parentContext === null || parentContext === void 0 ? void 0 : (_parentContext$pull2 = parentContext.pull) === null || _parentContext$pull2 === void 0 ? void 0 : _parentContext$pull2.call(parentContext);\n };\n }, []);\n // ============================ Mask ============================\n var maskNode = mask && /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: \"mask\"\n }, maskMotion, {\n visible: open\n }), function (_ref2, maskRef) {\n var motionMaskClassName = _ref2.className,\n motionMaskStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionMaskClassName, maskClassName),\n style: _objectSpread(_objectSpread({}, motionMaskStyle), maskStyle),\n onClick: maskClosable && open ? onClose : undefined,\n ref: maskRef\n });\n });\n // =========================== Panel ============================\n var motionProps = typeof motion === 'function' ? motion(placement) : motion;\n var wrapperStyle = {};\n if (pushed && pushDistance) {\n switch (placement) {\n case 'top':\n wrapperStyle.transform = \"translateY(\".concat(pushDistance, \"px)\");\n break;\n case 'bottom':\n wrapperStyle.transform = \"translateY(\".concat(-pushDistance, \"px)\");\n break;\n case 'left':\n wrapperStyle.transform = \"translateX(\".concat(pushDistance, \"px)\");\n break;\n default:\n wrapperStyle.transform = \"translateX(\".concat(-pushDistance, \"px)\");\n break;\n }\n }\n if (placement === 'left' || placement === 'right') {\n wrapperStyle.width = parseWidthHeight(width);\n } else {\n wrapperStyle.height = parseWidthHeight(height);\n }\n var panelNode = /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: \"panel\"\n }, motionProps, {\n visible: open,\n forceRender: forceRender,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n afterOpenChange === null || afterOpenChange === void 0 ? void 0 : afterOpenChange(nextVisible);\n },\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-content-wrapper-hidden\")\n }), function (_ref3, motionRef) {\n var motionClassName = _ref3.className,\n motionStyle = _ref3.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-wrapper\"), motionClassName),\n style: _objectSpread(_objectSpread(_objectSpread({}, wrapperStyle), motionStyle), contentWrapperStyle)\n }, /*#__PURE__*/React.createElement(DrawerPanel, {\n containerRef: motionRef,\n prefixCls: prefixCls,\n className: className,\n style: style\n }, children));\n });\n // =========================== Render ===========================\n var containerStyle = _objectSpread({}, rootStyle);\n if (zIndex) {\n containerStyle.zIndex = zIndex;\n }\n return /*#__PURE__*/React.createElement(DrawerContext.Provider, {\n value: mergedContext\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(placement), rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline\"), inline), _classNames)),\n style: containerStyle,\n tabIndex: -1,\n ref: panelRef,\n onKeyDown: onPanelKeyDown\n }, maskNode, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\",\n \"data-sentinel\": \"start\"\n }), panelNode, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\",\n \"data-sentinel\": \"end\"\n })));\n}\nvar RefDrawerPopup = /*#__PURE__*/React.forwardRef(DrawerPopup);\nif (process.env.NODE_ENV !== 'production') {\n RefDrawerPopup.displayName = 'DrawerPopup';\n}\nexport default RefDrawerPopup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport DrawerPopup from './DrawerPopup';\nimport { warnCheck } from './util';\nvar Drawer = function Drawer(props) {\n var _props$open = props.open,\n open = _props$open === void 0 ? false : _props$open,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-drawer' : _props$prefixCls,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$width = props.width,\n width = _props$width === void 0 ? 378 : _props$width,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n afterOpenChange = props.afterOpenChange,\n destroyOnClose = props.destroyOnClose;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n // ============================= Warn =============================\n if (process.env.NODE_ENV !== 'production') {\n warnCheck(props);\n }\n // ============================= Open =============================\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n mounted = _React$useState4[0],\n setMounted = _React$useState4[1];\n useLayoutEffect(function () {\n setMounted(true);\n }, []);\n var mergedOpen = mounted ? open : false;\n // ============================ Focus =============================\n var panelRef = React.useRef();\n var lastActiveRef = React.useRef();\n useLayoutEffect(function () {\n if (mergedOpen) {\n lastActiveRef.current = document.activeElement;\n }\n }, [mergedOpen]);\n // ============================= Open =============================\n var internalAfterOpenChange = function internalAfterOpenChange(nextVisible) {\n var _panelRef$current;\n setAnimatedVisible(nextVisible);\n afterOpenChange === null || afterOpenChange === void 0 ? void 0 : afterOpenChange(nextVisible);\n if (!nextVisible && lastActiveRef.current && !((_panelRef$current = panelRef.current) === null || _panelRef$current === void 0 ? void 0 : _panelRef$current.contains(lastActiveRef.current))) {\n var _lastActiveRef$curren;\n (_lastActiveRef$curren = lastActiveRef.current) === null || _lastActiveRef$curren === void 0 ? void 0 : _lastActiveRef$curren.focus({\n preventScroll: true\n });\n }\n };\n // ============================ Render ============================\n if (!forceRender && !animatedVisible && !mergedOpen && destroyOnClose) {\n return null;\n }\n var drawerPopupProps = _objectSpread(_objectSpread({}, props), {}, {\n open: mergedOpen,\n prefixCls: prefixCls,\n placement: placement,\n autoFocus: autoFocus,\n keyboard: keyboard,\n width: width,\n mask: mask,\n maskClosable: maskClosable,\n inline: getContainer === false,\n afterOpenChange: internalAfterOpenChange,\n ref: panelRef\n });\n return /*#__PURE__*/React.createElement(Portal, {\n open: mergedOpen || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: mask && (mergedOpen || animatedVisible)\n }, /*#__PURE__*/React.createElement(DrawerPopup, drawerPopupProps));\n};\nif (process.env.NODE_ENV !== 'production') {\n Drawer.displayName = 'Drawer';\n}\nexport default Drawer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport RcDrawer from 'rc-drawer';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { NoFormStyle } from '../form/context';\nimport { getTransitionName } from '../_util/motion';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport { NoCompactStyle } from '../space/Compact';\nvar SizeTypes = tuple('default', 'large');\nvar defaultPushState = {\n distance: 180\n};\nfunction Drawer(props) {\n var width = props.width,\n height = props.height,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n _props$push = props.push,\n push = _props$push === void 0 ? defaultPushState : _props$push,\n _props$closeIcon = props.closeIcon,\n closeIcon = _props$closeIcon === void 0 ? /*#__PURE__*/React.createElement(CloseOutlined, null) : _props$closeIcon,\n bodyStyle = props.bodyStyle,\n drawerStyle = props.drawerStyle,\n className = props.className,\n visible = props.visible,\n open = props.open,\n children = props.children,\n style = props.style,\n title = props.title,\n headerStyle = props.headerStyle,\n onClose = props.onClose,\n footer = props.footer,\n footerStyle = props.footerStyle,\n customizePrefixCls = props.prefixCls,\n customizeGetContainer = props.getContainer,\n extra = props.extra,\n afterVisibleChange = props.afterVisibleChange,\n _afterOpenChange = props.afterOpenChange,\n rest = __rest(props, [\"width\", \"height\", \"size\", \"closable\", \"mask\", \"push\", \"closeIcon\", \"bodyStyle\", \"drawerStyle\", \"className\", \"visible\", \"open\", \"children\", \"style\", \"title\", \"headerStyle\", \"onClose\", \"footer\", \"footerStyle\", \"prefixCls\", \"getContainer\", \"extra\", \"afterVisibleChange\", \"afterOpenChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('drawer', customizePrefixCls);\n var getContainer =\n // 有可能为 false,所以不能直接判断\n customizeGetContainer === undefined && getPopupContainer ? function () {\n return getPopupContainer(document.body);\n } : customizeGetContainer;\n var closeIconNode = closable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, closeIcon);\n [['visible', 'open'], ['afterVisibleChange', 'afterOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Drawer', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n function renderHeader() {\n if (!title && !closable) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-header\"), _defineProperty({}, \"\".concat(prefixCls, \"-header-close-only\"), closable && !title && !extra)),\n style: headerStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header-title\")\n }, closeIconNode, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title)), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra));\n }\n function renderFooter() {\n if (!footer) {\n return null;\n }\n var footerClassName = \"\".concat(prefixCls, \"-footer\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: footerClassName,\n style: footerStyle\n }, footer);\n }\n var drawerClassName = classNames(_defineProperty({\n 'no-mask': !mask\n }, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n // ============================ Size ============================\n var mergedWidth = React.useMemo(function () {\n return width !== null && width !== void 0 ? width : size === 'large' ? 736 : 378;\n }, [width, size]);\n var mergedHeight = React.useMemo(function () {\n return height !== null && height !== void 0 ? height : size === 'large' ? 736 : 378;\n }, [height, size]);\n // =========================== Motion ===========================\n var maskMotion = {\n motionName: getTransitionName(prefixCls, 'mask-motion'),\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n motionDeadline: 500\n };\n var panelMotion = function panelMotion(motionPlacement) {\n return {\n motionName: getTransitionName(prefixCls, \"panel-motion-\".concat(motionPlacement)),\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n motionDeadline: 500\n };\n };\n // =========================== Render ===========================\n return /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, /*#__PURE__*/React.createElement(RcDrawer, _extends({\n prefixCls: prefixCls,\n onClose: onClose\n }, rest, {\n open: open !== null && open !== void 0 ? open : visible,\n mask: mask,\n push: push,\n width: mergedWidth,\n height: mergedHeight,\n rootClassName: drawerClassName,\n getContainer: getContainer,\n afterOpenChange: function afterOpenChange(isOpen) {\n _afterOpenChange === null || _afterOpenChange === void 0 ? void 0 : _afterOpenChange(isOpen);\n afterVisibleChange === null || afterVisibleChange === void 0 ? void 0 : afterVisibleChange(isOpen);\n },\n maskMotion: maskMotion,\n motion: panelMotion,\n rootStyle: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-wrapper-body\"),\n style: _extends({}, drawerStyle)\n }, renderHeader(), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, children), renderFooter()))));\n}\nif (process.env.NODE_ENV !== 'production') {\n Drawer.displayName = 'Drawer';\n}\nexport default Drawer;","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';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n visible = props.visible,\n maskProps = props.maskProps,\n motionName = props.motionName;\n return /*#__PURE__*/React.createElement(CSSMotion, {\n key: \"mask\",\n visible: visible,\n motionName: motionName,\n leavedClassName: \"\".concat(prefixCls, \"-mask-hidden\")\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n style: _objectSpread(_objectSpread({}, motionStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionClassName)\n }, maskProps));\n });\n}","// =============================== Motion ===============================\nexport function getMotionName(prefixCls, transitionName, animationName) {\n var motionName = transitionName;\n if (!motionName && animationName) {\n motionName = \"\".concat(prefixCls, \"-\").concat(animationName);\n }\n return motionName;\n}\n// =============================== Offset ===============================\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n ret = d.body[method];\n }\n }\n return ret;\n}\nexport function offset(el) {\n var rect = el.getBoundingClientRect();\n var pos = {\n left: rect.left,\n top: rect.top\n };\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n pos.top += getScroll(w, true);\n return pos;\n}","import * as React from 'react';\nexport default /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, _ref2) {\n var shouldUpdate = _ref2.shouldUpdate;\n return !shouldUpdate;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport MemoChildren from './MemoChildren';\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none'\n};\nvar Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n title = props.title,\n ariaId = props.ariaId,\n footer = props.footer,\n closable = props.closable,\n closeIcon = props.closeIcon,\n onClose = props.onClose,\n children = props.children,\n bodyStyle = props.bodyStyle,\n bodyProps = props.bodyProps,\n modalRender = props.modalRender,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n holderRef = props.holderRef,\n visible = props.visible,\n forceRender = props.forceRender,\n width = props.width,\n height = props.height;\n // ================================= Refs =================================\n var sentinelStartRef = useRef();\n var sentinelEndRef = useRef();\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 ? void 0 : _sentinelStartRef$cur.focus();\n },\n changeActive: function changeActive(next) {\n var _document = document,\n activeElement = _document.activeElement;\n if (next && activeElement === sentinelEndRef.current) {\n sentinelStartRef.current.focus();\n } else if (!next && activeElement === sentinelStartRef.current) {\n sentinelEndRef.current.focus();\n }\n }\n };\n });\n // ================================ Style =================================\n var contentStyle = {};\n if (width !== undefined) {\n contentStyle.width = width;\n }\n if (height !== undefined) {\n contentStyle.height = height;\n }\n // ================================ Render ================================\n var footerNode;\n if (footer) {\n footerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer);\n }\n var headerNode;\n if (title) {\n headerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\"),\n id: ariaId\n }, title));\n }\n var closer;\n if (closable) {\n closer = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }));\n }\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, closer, headerNode, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, bodyProps), children), footerNode);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"dialog-element\",\n role: \"dialog\",\n \"aria-labelledby\": title ? ariaId : null,\n \"aria-modal\": \"true\",\n ref: holderRef,\n style: _objectSpread(_objectSpread({}, style), contentStyle),\n className: classNames(prefixCls, className),\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }), /*#__PURE__*/React.createElement(MemoChildren, {\n shouldUpdate: visible || forceRender\n }, modalRender ? modalRender(content) : content), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Panel.displayName = 'Panel';\n}\nexport default Panel;","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 } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { offset } from '../../util';\nimport Panel from './Panel';\nvar Content = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n title = props.title,\n style = props.style,\n className = props.className,\n visible = props.visible,\n forceRender = props.forceRender,\n destroyOnClose = props.destroyOnClose,\n motionName = props.motionName,\n ariaId = props.ariaId,\n onVisibleChanged = props.onVisibleChanged,\n mousePosition = props.mousePosition;\n var dialogRef = useRef();\n // ============================= Style ==============================\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n transformOrigin = _React$useState2[0],\n setTransformOrigin = _React$useState2[1];\n var contentStyle = {};\n if (transformOrigin) {\n contentStyle.transformOrigin = transformOrigin;\n }\n function onPrepare() {\n var elementOffset = offset(dialogRef.current);\n setTransformOrigin(mousePosition ? \"\".concat(mousePosition.x - elementOffset.left, \"px \").concat(mousePosition.y - elementOffset.top, \"px\") : '');\n }\n // ============================= Render =============================\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n onVisibleChanged: onVisibleChanged,\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n forceRender: forceRender,\n motionName: motionName,\n removeOnLeave: destroyOnClose,\n ref: dialogRef\n }, function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(Panel, _extends({}, props, {\n ref: ref,\n title: title,\n ariaId: ariaId,\n prefixCls: prefixCls,\n holderRef: motionRef,\n style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),\n className: classNames(className, motionClassName)\n }));\n });\n});\nContent.displayName = 'Content';\nexport default Content;","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, useEffect } from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Mask from './Mask';\nimport { getMotionName } from '../util';\nimport Content from './Content';\nexport default function Dialog(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dialog' : _props$prefixCls,\n zIndex = props.zIndex,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? false : _props$visible,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n wrapStyle = props.wrapStyle,\n wrapClassName = props.wrapClassName,\n wrapProps = props.wrapProps,\n onClose = props.onClose,\n afterClose = props.afterClose,\n transitionName = props.transitionName,\n animation = props.animation,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n maskStyle = props.maskStyle,\n maskProps = props.maskProps,\n rootClassName = props.rootClassName;\n var lastOutSideActiveElementRef = useRef();\n var wrapperRef = useRef();\n var contentRef = useRef();\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n // ========================== Init ==========================\n var ariaId = useId();\n function saveLastOutSideActiveElementRef() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n lastOutSideActiveElementRef.current = document.activeElement;\n }\n }\n function focusDialogContent() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n var _contentRef$current;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.focus();\n }\n }\n // ========================= Events =========================\n function onDialogVisibleChanged(newVisible) {\n // Try to focus\n if (newVisible) {\n focusDialogContent();\n } else {\n // Clean up scroll bar & focus back\n setAnimatedVisible(false);\n if (mask && lastOutSideActiveElementRef.current && focusTriggerAfterClose) {\n try {\n lastOutSideActiveElementRef.current.focus({\n preventScroll: true\n });\n } catch (e) {\n // Do nothing\n }\n lastOutSideActiveElementRef.current = null;\n }\n // Trigger afterClose only when change visible from true to false\n if (animatedVisible) {\n afterClose === null || afterClose === void 0 ? void 0 : afterClose();\n }\n }\n }\n function onInternalClose(e) {\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n }\n // >>> Content\n var contentClickRef = useRef(false);\n var contentTimeoutRef = useRef();\n // We need record content click incase content popup out of dialog\n var onContentMouseDown = function onContentMouseDown() {\n clearTimeout(contentTimeoutRef.current);\n contentClickRef.current = true;\n };\n var onContentMouseUp = function onContentMouseUp() {\n contentTimeoutRef.current = setTimeout(function () {\n contentClickRef.current = false;\n });\n };\n // >>> Wrapper\n // Close only when element not on dialog\n var onWrapperClick = null;\n if (maskClosable) {\n onWrapperClick = function onWrapperClick(e) {\n if (contentClickRef.current) {\n contentClickRef.current = false;\n } else if (wrapperRef.current === e.target) {\n onInternalClose(e);\n }\n };\n }\n function onWrapperKeyDown(e) {\n if (keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n onInternalClose(e);\n return;\n }\n // keep focus inside dialog\n if (visible) {\n if (e.keyCode === KeyCode.TAB) {\n contentRef.current.changeActive(!e.shiftKey);\n }\n }\n }\n // ========================= Effect =========================\n useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n saveLastOutSideActiveElementRef();\n }\n }, [visible]);\n // Remove direct should also check the scroll bar update\n useEffect(function () {\n return function () {\n clearTimeout(contentTimeoutRef.current);\n };\n }, []);\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-root\"), rootClassName)\n }, pickAttrs(props, {\n data: true\n })), /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n visible: mask && visible,\n motionName: getMotionName(prefixCls, maskTransitionName, maskAnimation),\n style: _objectSpread({\n zIndex: zIndex\n }, maskStyle),\n maskProps: maskProps\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n tabIndex: -1,\n onKeyDown: onWrapperKeyDown,\n className: classNames(\"\".concat(prefixCls, \"-wrap\"), wrapClassName),\n ref: wrapperRef,\n onClick: onWrapperClick,\n style: _objectSpread(_objectSpread({\n zIndex: zIndex\n }, wrapStyle), {}, {\n display: !animatedVisible ? 'none' : null\n })\n }, wrapProps), /*#__PURE__*/React.createElement(Content, _extends({}, props, {\n onMouseDown: onContentMouseDown,\n onMouseUp: onContentMouseUp,\n ref: contentRef,\n closable: closable,\n ariaId: ariaId,\n prefixCls: prefixCls,\n visible: visible && animatedVisible,\n onClose: onInternalClose,\n onVisibleChanged: onDialogVisibleChanged,\n motionName: getMotionName(prefixCls, transitionName, animation)\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport Dialog from './Dialog';\n// fix issue #10656\n/*\n * getContainer remarks\n * Custom container should not be return, because in the Portal component, it will remove the\n * return container element here, if the custom container is the only child of it's component,\n * like issue #10656, It will has a conflict with removeChild method in react-dom.\n * So here should add a child (div element) to custom container.\n * */\nvar DialogWrap = function DialogWrap(props) {\n var visible = props.visible,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n _props$destroyOnClose = props.destroyOnClose,\n destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,\n _afterClose = props.afterClose;\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n React.useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n }\n }, [visible]);\n // // 渲染在当前 dom 里;\n // if (getContainer === false) {\n // return (\n // 2} // 不对 body 做任何操作。。\n // />\n // );\n // }\n // Destroy on close will remove wrapped div\n if (!forceRender && destroyOnClose && !animatedVisible) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: visible || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: visible || animatedVisible\n }, /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {\n destroyOnClose: destroyOnClose,\n afterClose: function afterClose() {\n _afterClose === null || _afterClose === void 0 ? void 0 : _afterClose();\n setAnimatedVisible(false);\n }\n })));\n};\nDialogWrap.displayName = 'Dialog';\nexport default DialogWrap;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nvar Group = function Group(props) {\n var _classNames;\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls,\n direction = _useContext.direction;\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className;\n var prefixCls = getPrefixCls('input-group', customizePrefixCls);\n var cls = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), props.size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), props.size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-compact\"), props.compact), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n var formItemContext = useContext(FormItemInputContext);\n var groupFormItemContext = useMemo(function () {\n return _extends(_extends({}, formItemContext), {\n isFormItemInput: false\n });\n }, [formItemContext]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: cls,\n style: props.style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onFocus: props.onFocus,\n onBlur: props.onBlur\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: groupFormItemContext\n }, props.children));\n};\nexport default Group;","import { useEffect, useRef } from 'react';\nexport default function useRemovePasswordTimeout(inputRef, triggerOnMount) {\n var removePasswordTimeoutRef = useRef([]);\n var removePasswordTimeout = function removePasswordTimeout() {\n removePasswordTimeoutRef.current.push(setTimeout(function () {\n var _a, _b, _c, _d;\n if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n }\n }));\n };\n useEffect(function () {\n if (triggerOnMount) {\n removePasswordTimeout();\n }\n return function () {\n return removePasswordTimeoutRef.current.forEach(function (timer) {\n if (timer) {\n clearTimeout(timer);\n }\n });\n };\n }, []);\n return removePasswordTimeout;\n}","// eslint-disable-next-line import/prefer-default-export\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport { hasPrefixSuffix } from './utils';\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return String(value);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n var event = e;\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n var currentTarget = target.cloneNode(true);\n // click clear icon\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n }\n // Trigger by composition event, this means we need force change the input value\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n var _ref = option || {},\n cursor = _ref.cursor;\n if (cursor) {\n var len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n break;\n }\n }\n}\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n var _classNames, _classNames2, _classNames4;\n var customizePrefixCls = props.prefixCls,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customStatus = props.status,\n customSize = props.size,\n customDisabled = props.disabled,\n onBlur = props.onBlur,\n onFocus = props.onFocus,\n suffix = props.suffix,\n allowClear = props.allowClear,\n addonAfter = props.addonAfter,\n addonBefore = props.addonBefore,\n className = props.className,\n onChange = props.onChange,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"onChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n input = _React$useContext.input;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n var inputRef = useRef(null);\n // ===================== Compact Item =====================\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n // ===================== Size =====================\n var size = React.useContext(SizeContext);\n var mergedSize = compactSize || customSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n var _useContext = useContext(FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Focus warning =====================\n var inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n var prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n useEffect(function () {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'Input', \"When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ\") : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n // ===================== Remove Password value =====================\n var removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n var handleBlur = function handleBlur(e) {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleFocus = function handleFocus(e) {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n var handleChange = function handleChange(e) {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n var suffixNode = (hasFeedback || suffix) && /*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon);\n // Allow clear\n var mergedAllowClear;\n if (_typeof(allowClear) === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n return /*#__PURE__*/React.createElement(RcInput, _extends({\n ref: composeRef(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled || undefined,\n onBlur: handleBlur,\n onFocus: handleFocus,\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: classNames(className, compactItemClassnames),\n onChange: handleChange,\n addonAfter: addonAfter && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonAfter)),\n addonBefore: addonBefore && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonBefore)),\n inputClassName: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-borderless\"), !bordered), _classNames), !inputHasPrefixSuffix && getStatusClassNames(prefixCls, mergedStatus)),\n affixWrapperClassName: classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-sm\"), mergedSize === 'small'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-lg\"), mergedSize === 'large'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), _classNames2), getStatusClassNames(\"\".concat(prefixCls, \"-affix-wrapper\"), mergedStatus, hasFeedback)),\n wrapperClassName: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-group-rtl\"), direction === 'rtl')),\n groupClassName: classNames((_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-group-wrapper-sm\"), mergedSize === 'small'), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-group-wrapper-lg\"), mergedSize === 'large'), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-group-wrapper-rtl\"), direction === 'rtl'), _classNames4), getStatusClassNames(\"\".concat(prefixCls, \"-group-wrapper\"), mergedStatus, hasFeedback))\n }));\n});\nexport default Input;","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\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport EyeInvisibleOutlined from \"@ant-design/icons/es/icons/EyeInvisibleOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { ConfigConsumer } from '../config-provider';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport Input from './Input';\nvar defaultIconRender = function defaultIconRender(visible) {\n return visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);\n};\nvar ActionMap = {\n click: 'onClick',\n hover: 'onMouseOver'\n};\nvar Password = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visibilityTogg = props.visibilityToggle,\n visibilityToggle = _props$visibilityTogg === void 0 ? true : _props$visibilityTogg;\n var visibilityControlled = _typeof(visibilityToggle) === 'object' && visibilityToggle.visible !== undefined;\n var _useState = useState(function () {\n return visibilityControlled ? visibilityToggle.visible : false;\n }),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n var inputRef = useRef(null);\n React.useEffect(function () {\n if (visibilityControlled) {\n setVisible(visibilityToggle.visible);\n }\n }, [visibilityControlled, visibilityToggle]);\n // Remove Password value\n var removePasswordTimeout = useRemovePasswordTimeout(inputRef);\n var onVisibleChange = function onVisibleChange() {\n var disabled = props.disabled;\n if (disabled) {\n return;\n }\n if (visible) {\n removePasswordTimeout();\n }\n setVisible(function (prevState) {\n var _a;\n var newState = !prevState;\n if (_typeof(visibilityToggle) === 'object') {\n (_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);\n }\n return newState;\n });\n };\n var getIcon = function getIcon(prefixCls) {\n var _iconProps;\n var _props$action = props.action,\n action = _props$action === void 0 ? 'click' : _props$action,\n _props$iconRender = props.iconRender,\n iconRender = _props$iconRender === void 0 ? defaultIconRender : _props$iconRender;\n var iconTrigger = ActionMap[action] || '';\n var icon = iconRender(visible);\n var iconProps = (_iconProps = {}, _defineProperty(_iconProps, iconTrigger, onVisibleChange), _defineProperty(_iconProps, \"className\", \"\".concat(prefixCls, \"-icon\")), _defineProperty(_iconProps, \"key\", 'passwordIcon'), _defineProperty(_iconProps, \"onMouseDown\", function onMouseDown(e) {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n }), _defineProperty(_iconProps, \"onMouseUp\", function onMouseUp(e) {\n // Prevent caret position change\n // https://github.com/ant-design/ant-design/issues/23524\n e.preventDefault();\n }), _iconProps);\n return /*#__PURE__*/React.cloneElement( /*#__PURE__*/React.isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(\"span\", null, icon), iconProps);\n };\n var renderPassword = function renderPassword(_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var className = props.className,\n customizePrefixCls = props.prefixCls,\n customizeInputPrefixCls = props.inputPrefixCls,\n size = props.size,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\"]);\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n var prefixCls = getPrefixCls('input-password', customizePrefixCls);\n var suffixIcon = visibilityToggle && getIcon(prefixCls);\n var inputClassName = classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size), !!size));\n var omittedProps = _extends(_extends({}, omit(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {\n type: visible ? 'text' : 'password',\n className: inputClassName,\n prefixCls: inputPrefixCls,\n suffix: suffixIcon\n });\n if (size) {\n omittedProps.size = size;\n }\n return /*#__PURE__*/React.createElement(Input, _extends({\n ref: composeRef(ref, inputRef)\n }, omittedProps));\n };\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, renderPassword);\n});\nif (process.env.NODE_ENV !== 'production') {\n Password.displayName = 'Password';\n}\nexport default Password;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { cloneElement } from '../_util/reactNode';\nimport Input from './Input';\nvar Search = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var customizePrefixCls = props.prefixCls,\n customizeInputPrefixCls = props.inputPrefixCls,\n className = props.className,\n customizeSize = props.size,\n suffix = props.suffix,\n _props$enterButton = props.enterButton,\n enterButton = _props$enterButton === void 0 ? false : _props$enterButton,\n addonAfter = props.addonAfter,\n loading = props.loading,\n disabled = props.disabled,\n customOnSearch = props.onSearch,\n customOnChange = props.onChange,\n onCompositionStart = props.onCompositionStart,\n onCompositionEnd = props.onCompositionEnd,\n restProps = __rest(props, [\"prefixCls\", \"inputPrefixCls\", \"className\", \"size\", \"suffix\", \"enterButton\", \"addonAfter\", \"loading\", \"disabled\", \"onSearch\", \"onChange\", \"onCompositionStart\", \"onCompositionEnd\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var contextSize = React.useContext(SizeContext);\n var composedRef = React.useRef(false);\n var prefixCls = getPrefixCls('input-search', customizePrefixCls);\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize;\n var size = compactSize || customizeSize || contextSize;\n var inputRef = React.useRef(null);\n var onChange = function onChange(e) {\n if (e && e.target && e.type === 'click' && customOnSearch) {\n customOnSearch(e.target.value, e);\n }\n if (customOnChange) {\n customOnChange(e);\n }\n };\n var onMouseDown = function onMouseDown(e) {\n var _a;\n if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {\n e.preventDefault();\n }\n };\n var onSearch = function onSearch(e) {\n var _a, _b;\n if (customOnSearch) {\n customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e);\n }\n };\n var onPressEnter = function onPressEnter(e) {\n if (composedRef.current || loading) {\n return;\n }\n onSearch(e);\n };\n var searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(SearchOutlined, null) : null;\n var btnClassName = \"\".concat(prefixCls, \"-button\");\n var button;\n var enterButtonAsElement = enterButton || {};\n var isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n if (isAntdButton || enterButtonAsElement.type === 'button') {\n button = cloneElement(enterButtonAsElement, _extends({\n onMouseDown: onMouseDown,\n onClick: function onClick(e) {\n var _a, _b;\n (_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n onSearch(e);\n },\n key: 'enterButton'\n }, isAntdButton ? {\n className: btnClassName,\n size: size\n } : {}));\n } else {\n button = /*#__PURE__*/React.createElement(Button, {\n className: btnClassName,\n type: enterButton ? 'primary' : undefined,\n size: size,\n disabled: disabled,\n key: \"enterButton\",\n onMouseDown: onMouseDown,\n onClick: onSearch,\n loading: loading,\n icon: searchIcon\n }, enterButton);\n }\n if (addonAfter) {\n button = [button, cloneElement(addonAfter, {\n key: 'addonAfter'\n })];\n }\n var cls = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), !!size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-button\"), !!enterButton), _classNames), className);\n var handleOnCompositionStart = function handleOnCompositionStart(e) {\n composedRef.current = true;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var handleOnCompositionEnd = function handleOnCompositionEnd(e) {\n composedRef.current = false;\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n return /*#__PURE__*/React.createElement(Input, _extends({\n ref: composeRef(inputRef, ref),\n onPressEnter: onPressEnter\n }, restProps, {\n size: size,\n onCompositionStart: handleOnCompositionStart,\n onCompositionEnd: handleOnCompositionEnd,\n prefixCls: inputPrefixCls,\n addonAfter: button,\n suffix: suffix,\n onChange: onChange,\n className: cls,\n disabled: disabled\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\nvar HIDDEN_TEXTAREA_STYLE = \"\\n min-height:0 !important;\\n max-height:none !important;\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important;\\n pointer-events: none !important;\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', 'word-break'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\nexport function calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n var style = window.getComputedStyle(node);\n var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n var sizingStyle = SIZING_STYLE.map(function (name) {\n return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n }).join(';');\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateAutoSizeStyle(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tab-index', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n document.body.appendChild(hiddenTextarea);\n }\n // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n }\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n var minHeight = undefined;\n var maxHeight = undefined;\n var overflowY;\n var height = hiddenTextarea.scrollHeight;\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n var style = {\n height: height,\n overflowY: overflowY,\n resize: 'none'\n };\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n return style;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"onPressEnter\", \"defaultValue\", \"value\", \"autoSize\", \"onResize\", \"className\", \"style\", \"disabled\", \"onChange\", \"onInternalAutoSize\"];\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport raf from \"rc-util/es/raf\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport classNames from 'classnames';\nimport calculateAutoSizeStyle from './calculateNodeHeight';\nvar RESIZE_START = 0;\nvar RESIZE_MEASURING = 1;\nvar RESIZE_STABLE = 2;\nvar ResizableTextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-textarea' : _props$prefixCls,\n onPressEnter = props.onPressEnter,\n defaultValue = props.defaultValue,\n value = props.value,\n autoSize = props.autoSize,\n onResize = props.onResize,\n className = props.className,\n style = props.style,\n disabled = props.disabled,\n onChange = props.onChange,\n onInternalAutoSize = props.onInternalAutoSize,\n restProps = _objectWithoutProperties(props, _excluded);\n // =============================== Value ================================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: function postState(val) {\n return val !== null && val !== void 0 ? val : '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n var onInternalChange = function onInternalChange(event) {\n setMergedValue(event.target.value);\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n };\n // ================================ Ref =================================\n var textareaRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n textArea: textareaRef.current\n };\n });\n // ============================== AutoSize ==============================\n var _React$useMemo = React.useMemo(function () {\n if (autoSize && _typeof(autoSize) === 'object') {\n return [autoSize.minRows, autoSize.maxRows];\n }\n return [];\n }, [autoSize]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n minRows = _React$useMemo2[0],\n maxRows = _React$useMemo2[1];\n var needAutoSize = !!autoSize;\n // =============================== Scroll ===============================\n // https://github.com/ant-design/ant-design/issues/21870\n var fixFirefoxAutoScroll = function fixFirefoxAutoScroll() {\n try {\n // FF has bug with jump of scroll to top. We force back here.\n if (document.activeElement === textareaRef.current) {\n var _textareaRef$current = textareaRef.current,\n selectionStart = _textareaRef$current.selectionStart,\n selectionEnd = _textareaRef$current.selectionEnd,\n scrollTop = _textareaRef$current.scrollTop;\n // Fix Safari bug which not rollback when break line\n // This makes Chinese IME can't input. Do not fix this\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n textareaRef.current.scrollTop = scrollTop;\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n // =============================== Resize ===============================\n var _React$useState = React.useState(RESIZE_STABLE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n resizeState = _React$useState2[0],\n setResizeState = _React$useState2[1];\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n autoSizeStyle = _React$useState4[0],\n setAutoSizeStyle = _React$useState4[1];\n var startResize = function startResize() {\n setResizeState(RESIZE_START);\n if (process.env.NODE_ENV === 'test') {\n onInternalAutoSize === null || onInternalAutoSize === void 0 ? void 0 : onInternalAutoSize();\n }\n };\n // Change to trigger resize measure\n useLayoutEffect(function () {\n if (needAutoSize) {\n startResize();\n }\n }, [value, minRows, maxRows, needAutoSize]);\n useLayoutEffect(function () {\n if (resizeState === RESIZE_START) {\n setResizeState(RESIZE_MEASURING);\n } else if (resizeState === RESIZE_MEASURING) {\n var textareaStyles = calculateAutoSizeStyle(textareaRef.current, false, minRows, maxRows);\n // Safari has bug that text will keep break line on text cut when it's prev is break line.\n // ZombieJ: This not often happen. So we just skip it.\n // const { selectionStart, selectionEnd, scrollTop } = textareaRef.current;\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n // if (document.activeElement === textareaRef.current) {\n // textareaRef.current.scrollTop = scrollTop;\n // textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n // }\n setResizeState(RESIZE_STABLE);\n setAutoSizeStyle(textareaStyles);\n } else {\n fixFirefoxAutoScroll();\n }\n }, [resizeState]);\n // We lock resize trigger by raf to avoid Safari warning\n var resizeRafRef = React.useRef();\n var cleanRaf = function cleanRaf() {\n raf.cancel(resizeRafRef.current);\n };\n var onInternalResize = function onInternalResize(size) {\n if (resizeState === RESIZE_STABLE) {\n onResize === null || onResize === void 0 ? void 0 : onResize(size);\n if (autoSize) {\n cleanRaf();\n resizeRafRef.current = raf(function () {\n startResize();\n });\n }\n }\n };\n React.useEffect(function () {\n return cleanRaf;\n }, []);\n // =============================== Render ===============================\n var mergedAutoSizeStyle = needAutoSize ? autoSizeStyle : null;\n var mergedStyle = _objectSpread(_objectSpread({}, style), mergedAutoSizeStyle);\n if (resizeState === RESIZE_START || resizeState === RESIZE_MEASURING) {\n mergedStyle.overflowY = 'hidden';\n mergedStyle.overflowX = 'hidden';\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onInternalResize,\n disabled: !(autoSize || onResize)\n }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, restProps, {\n ref: textareaRef,\n style: mergedStyle,\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n disabled: disabled,\n value: mergedValue,\n onChange: onInternalChange\n })));\n});\nexport default ResizableTextArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ResizableTextArea from './ResizableTextArea';\nvar TextArea = /*#__PURE__*/function (_React$Component) {\n _inherits(TextArea, _React$Component);\n var _super = _createSuper(TextArea);\n function TextArea(props) {\n var _this;\n _classCallCheck(this, TextArea);\n _this = _super.call(this, props);\n _this.resizableTextArea = void 0;\n _this.focus = function () {\n _this.resizableTextArea.textArea.focus();\n };\n _this.saveTextArea = function (resizableTextArea) {\n _this.resizableTextArea = resizableTextArea;\n };\n _this.handleChange = function (e) {\n var onChange = _this.props.onChange;\n _this.setValue(e.target.value);\n if (onChange) {\n onChange(e);\n }\n };\n _this.handleKeyDown = function (e) {\n var _this$props = _this.props,\n onPressEnter = _this$props.onPressEnter,\n onKeyDown = _this$props.onKeyDown;\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n var value = typeof props.value === 'undefined' || props.value === null ? props.defaultValue : props.value;\n _this.state = {\n value: value\n };\n return _this;\n }\n _createClass(TextArea, [{\n key: \"setValue\",\n value: function setValue(value, callback) {\n if (!('value' in this.props)) {\n this.setState({\n value: value\n }, callback);\n }\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.resizableTextArea.textArea.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ResizableTextArea, _extends({}, this.props, {\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n ref: this.saveTextArea\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value\n };\n }\n return null;\n }\n }]);\n return TextArea;\n}(React.Component);\nexport { ResizableTextArea };\nexport default TextArea;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { FormItemInputContext } from '../form/context';\nimport { cloneElement } from '../_util/reactNode';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { tuple } from '../_util/type';\nvar ClearableInputType = tuple('text', 'input');\nfunction hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nvar ClearableLabeledInput = /*#__PURE__*/function (_React$Component) {\n _inherits(ClearableLabeledInput, _React$Component);\n var _super = _createSuper(ClearableLabeledInput);\n function ClearableLabeledInput() {\n _classCallCheck(this, ClearableLabeledInput);\n return _super.apply(this, arguments);\n }\n _createClass(ClearableLabeledInput, [{\n key: \"renderClearIcon\",\n value: function renderClearIcon(prefixCls) {\n var _classNames;\n var _this$props = this.props,\n value = _this$props.value,\n disabled = _this$props.disabled,\n readOnly = _this$props.readOnly,\n handleReset = _this$props.handleReset,\n suffix = _this$props.suffix;\n var needClear = !disabled && !readOnly && value;\n var className = \"\".concat(prefixCls, \"-clear-icon\");\n return /*#__PURE__*/React.createElement(CloseCircleFilled, {\n onClick: handleReset,\n // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(className, \"-hidden\"), !needClear), _defineProperty(_classNames, \"\".concat(className, \"-has-suffix\"), !!suffix), _classNames), className),\n role: \"button\"\n });\n }\n }, {\n key: \"renderTextAreaWithClearIcon\",\n value: function renderTextAreaWithClearIcon(prefixCls, element, statusContext) {\n var _classNames2;\n var _this$props2 = this.props,\n value = _this$props2.value,\n allowClear = _this$props2.allowClear,\n className = _this$props2.className,\n focused = _this$props2.focused,\n style = _this$props2.style,\n direction = _this$props2.direction,\n bordered = _this$props2.bordered,\n hidden = _this$props2.hidden,\n customStatus = _this$props2.status;\n var contextStatus = statusContext.status,\n hasFeedback = statusContext.hasFeedback;\n if (!allowClear) {\n return cloneElement(element, {\n value: value\n });\n }\n var affixWrapperCls = classNames(\"\".concat(prefixCls, \"-affix-wrapper\"), \"\".concat(prefixCls, \"-affix-wrapper-textarea-with-clear-btn\"), getStatusClassNames(\"\".concat(prefixCls, \"-affix-wrapper\"), getMergedStatus(contextStatus, customStatus), hasFeedback), (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-focused\"), focused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), _defineProperty(_classNames2, \"\".concat(className), !hasAddon(this.props) && className), _classNames2));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style,\n hidden: hidden\n }, cloneElement(element, {\n style: null,\n value: value\n }), this.renderClearIcon(prefixCls));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n return /*#__PURE__*/React.createElement(FormItemInputContext.Consumer, null, function (statusContext) {\n var _this$props3 = _this.props,\n prefixCls = _this$props3.prefixCls,\n inputType = _this$props3.inputType,\n element = _this$props3.element;\n if (inputType === ClearableInputType[0]) {\n return _this.renderTextAreaWithClearIcon(prefixCls, element, statusContext);\n }\n });\n }\n }]);\n return ClearableLabeledInput;\n}(React.Component);\nexport default ClearableLabeledInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport RcTextArea from 'rc-textarea';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport ClearableLabeledInput from './ClearableLabeledInput';\nimport { fixControlledValue, resolveOnChange, triggerFocus } from './Input';\nfunction fixEmojiLength(value, maxLength) {\n return _toConsumableArray(value || '').slice(0, maxLength).join('');\n}\nfunction setTriggerValue(isCursorInEnd, preValue, triggerValue, maxLength) {\n var newTriggerValue = triggerValue;\n if (isCursorInEnd) {\n // 光标在尾部,直接截断\n newTriggerValue = fixEmojiLength(triggerValue, maxLength);\n } else if (_toConsumableArray(preValue || '').length < triggerValue.length && _toConsumableArray(triggerValue || '').length > maxLength) {\n // 光标在中间,如果最后的值超过最大值,则采用原先的值\n newTriggerValue = preValue;\n }\n return newTriggerValue;\n}\nvar TextArea = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var _classNames;\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n _a$showCount = _a.showCount,\n showCount = _a$showCount === void 0 ? false : _a$showCount,\n maxLength = _a.maxLength,\n className = _a.className,\n style = _a.style,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n onCompositionStart = _a.onCompositionStart,\n onCompositionEnd = _a.onCompositionEnd,\n onChange = _a.onChange,\n onFocus = _a.onFocus,\n onBlur = _a.onBlur,\n customStatus = _a.status,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"showCount\", \"maxLength\", \"className\", \"style\", \"size\", \"disabled\", \"onCompositionStart\", \"onCompositionEnd\", \"onChange\", \"onFocus\", \"onBlur\", \"status\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var _React$useContext2 = React.useContext(FormItemInputContext),\n contextStatus = _React$useContext2.status,\n hasFeedback = _React$useContext2.hasFeedback,\n isFormItemInput = _React$useContext2.isFormItemInput,\n feedbackIcon = _React$useContext2.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n var innerRef = React.useRef(null);\n var clearableInputRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n compositing = _React$useState2[0],\n setCompositing = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n focused = _React$useState4[0],\n setFocused = _React$useState4[1];\n var oldCompositionValueRef = React.useRef();\n var oldSelectionStartRef = React.useRef(0);\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var hidden = props.hidden;\n var handleSetValue = function handleSetValue(val, callback) {\n if (props.value === undefined) {\n setValue(val);\n callback === null || callback === void 0 ? void 0 : callback();\n }\n };\n // =========================== Value Update ===========================\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n var onInternalCompositionStart = function onInternalCompositionStart(e) {\n setCompositing(true);\n // 拼音输入前保存一份旧值\n oldCompositionValueRef.current = value;\n // 保存旧的光标位置\n oldSelectionStartRef.current = e.currentTarget.selectionStart;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n var _a;\n setCompositing(false);\n var triggerValue = e.currentTarget.value;\n if (hasMaxLength) {\n var isCursorInEnd = oldSelectionStartRef.current >= maxLength + 1 || oldSelectionStartRef.current === ((_a = oldCompositionValueRef.current) === null || _a === void 0 ? void 0 : _a.length);\n triggerValue = setTriggerValue(isCursorInEnd, oldCompositionValueRef.current, triggerValue, maxLength);\n }\n // Patch composition onChange when value changed\n if (triggerValue !== value) {\n handleSetValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n }\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n var handleChange = function handleChange(e) {\n var triggerValue = e.target.value;\n if (!compositing && hasMaxLength) {\n // 1. 复制粘贴超过maxlength的情况 2.未超过maxlength的情况\n var isCursorInEnd = e.target.selectionStart >= maxLength + 1 || e.target.selectionStart === triggerValue.length || !e.target.selectionStart;\n triggerValue = setTriggerValue(isCursorInEnd, value, triggerValue, maxLength);\n }\n handleSetValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n React.useEffect(function () {\n setFocused(function (prev) {\n return !mergedDisabled && prev;\n });\n }, [mergedDisabled]);\n // ============================== Reset ===============================\n var handleReset = function handleReset(e) {\n var _a, _b, _c;\n handleSetValue('');\n (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n resolveOnChange((_c = (_b = innerRef.current) === null || _b === void 0 ? void 0 : _b.resizableTextArea) === null || _c === void 0 ? void 0 : _c.textArea, e, onChange);\n };\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n React.useImperativeHandle(ref, function () {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: function focus(option) {\n var _a, _b;\n triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: function blur() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n var textArea = /*#__PURE__*/React.createElement(RcTextArea, _extends({}, omit(props, ['allowClear']), {\n disabled: mergedDisabled,\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-borderless\"), !bordered), _defineProperty(_classNames, className, className && !showCount), _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small' || customizeSize === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large' || customizeSize === 'large'), _classNames), getStatusClassNames(prefixCls, mergedStatus)),\n style: showCount ? {\n resize: style === null || style === void 0 ? void 0 : style.resize\n } : style,\n prefixCls: prefixCls,\n onCompositionStart: onInternalCompositionStart,\n onChange: handleChange,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onCompositionEnd: onInternalCompositionEnd,\n ref: innerRef\n }));\n var val = fixControlledValue(value);\n if (!compositing && hasMaxLength && (props.value === null || props.value === undefined)) {\n // fix #27612 将value转为数组进行截取,解决 '😂'.length === 2 等emoji表情导致的截取乱码的问题\n val = fixEmojiLength(val, maxLength);\n }\n // TextArea\n var textareaNode = /*#__PURE__*/React.createElement(ClearableLabeledInput, _extends({\n disabled: mergedDisabled,\n focused: focused\n }, props, {\n prefixCls: prefixCls,\n direction: direction,\n inputType: \"text\",\n value: val,\n element: textArea,\n handleReset: handleReset,\n ref: clearableInputRef,\n bordered: bordered,\n status: customStatus,\n style: showCount ? undefined : style\n }));\n // Only show text area wrapper when needed\n if (showCount || hasFeedback) {\n var _classNames2;\n var valueLength = _toConsumableArray(val).length;\n var dataCount = '';\n if (_typeof(showCount) === 'object') {\n dataCount = showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n });\n } else {\n dataCount = \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n hidden: hidden,\n className: classNames(\"\".concat(prefixCls, \"-textarea\"), (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-textarea-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-textarea-show-count\"), showCount), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-textarea-in-form-item\"), isFormItemInput), _classNames2), getStatusClassNames(\"\".concat(prefixCls, \"-textarea\"), mergedStatus, hasFeedback), className),\n style: style,\n \"data-count\": dataCount\n }, textareaNode, hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-textarea-suffix\")\n }, feedbackIcon));\n }\n return textareaNode;\n});\nexport default TextArea;","import Group from './Group';\nimport InternalInput from './Input';\nimport Password from './Password';\nimport Search from './Search';\nimport TextArea from './TextArea';\nvar Input = InternalInput;\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\nexport default Input;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport classNames from 'classnames';\nvar Pager = function Pager(props) {\n var _classNames;\n var prefixCls = \"\".concat(props.rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), props.active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !props.page), _defineProperty(_classNames, props.className, !!props.className), _classNames));\n var handleClick = function handleClick() {\n props.onClick(props.page);\n };\n var handleKeyPress = function handleKeyPress(e) {\n props.onKeyPress(e, props.onClick, props.page);\n };\n return /*#__PURE__*/React.createElement(\"li\", {\n title: props.showTitle ? props.page : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: \"0\"\n }, props.itemRender(props.page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, props.page)));\n};\nexport default Pager;","export default {\n ZERO: 48,\n NINE: 57,\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport KEYCODE from './KeyCode';\nvar Options = /*#__PURE__*/function (_React$Component) {\n _inherits(Options, _React$Component);\n var _super = _createSuper(Options);\n function Options() {\n var _this;\n _classCallCheck(this, Options);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n goInputText: ''\n };\n _this.buildOptionText = function (value) {\n return \"\".concat(value, \" \").concat(_this.props.locale.items_per_page);\n };\n _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n };\n _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\n });\n };\n _this.handleBlur = function (e) {\n var _this$props = _this.props,\n goButton = _this$props.goButton,\n quickGo = _this$props.quickGo,\n rootPrefixCls = _this$props.rootPrefixCls;\n var goInputText = _this.state.goInputText;\n if (goButton || goInputText === '') {\n return;\n }\n _this.setState({\n goInputText: ''\n });\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n quickGo(_this.getValidValue());\n };\n _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n if (goInputText === '') {\n return;\n }\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.setState({\n goInputText: ''\n });\n _this.props.quickGo(_this.getValidValue());\n }\n };\n return _this;\n }\n _createClass(Options, [{\n key: \"getValidValue\",\n value: function getValidValue() {\n var goInputText = this.state.goInputText;\n // eslint-disable-next-line no-restricted-globals\n return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText);\n }\n }, {\n key: \"getPageSizeOptions\",\n value: function getPageSizeOptions() {\n var _this$props2 = this.props,\n pageSize = _this$props2.pageSize,\n pageSizeOptions = _this$props2.pageSizeOptions;\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n // eslint-disable-next-line no-restricted-globals\n var numberA = isNaN(Number(a)) ? 0 : Number(a);\n // eslint-disable-next-line no-restricted-globals\n var numberB = isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n locale = _this$props3.locale,\n rootPrefixCls = _this$props3.rootPrefixCls,\n changeSize = _this$props3.changeSize,\n quickGo = _this$props3.quickGo,\n goButton = _this$props3.goButton,\n selectComponentClass = _this$props3.selectComponentClass,\n buildOptionText = _this$props3.buildOptionText,\n selectPrefixCls = _this$props3.selectPrefixCls,\n disabled = _this$props3.disabled;\n var goInputText = this.state.goInputText;\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n if (!changeSize && !quickGo) {\n return null;\n }\n var pageSizeOptions = this.getPageSizeOptions();\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, (buildOptionText || _this2.buildOptionText)(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: \"\".concat(prefixCls, \"-size-changer\"),\n optionLabelProp: \"children\",\n dropdownMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n onChange: this.changeSize,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n },\n \"aria-label\": locale.page_size,\n defaultOpen: false\n }, options);\n }\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.go,\n onKeyUp: this.go\n }, goButton);\n }\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: this.handleChange,\n onKeyUp: this.go,\n onBlur: this.handleBlur,\n \"aria-label\": locale.page\n }), locale.page, gotoButton);\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls)\n }, changeSelect, goInput);\n }\n }]);\n return Options;\n}(React.Component);\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '50', '100']\n};\nexport default Options;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页',\n page_size: '页码'\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\nimport React, { cloneElement, isValidElement } from 'react';\nimport classNames from 'classnames';\nimport Pager from './Pager';\nimport Options from './Options';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\nfunction noop() {}\nfunction isInteger(v) {\n var value = Number(v);\n return (\n // eslint-disable-next-line no-restricted-globals\n typeof value === 'number' && !isNaN(value) && isFinite(value) && Math.floor(value) === value\n );\n}\nfunction defaultItemRender(page, type, element) {\n return element;\n}\nfunction calculatePage(p, state, props) {\n var pageSize = typeof p === 'undefined' ? state.pageSize : p;\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n var _super = _createSuper(Pagination);\n function Pagination(props) {\n var _this;\n _classCallCheck(this, Pagination);\n _this = _super.call(this, props);\n _this.getJumpPrevPage = function () {\n return Math.max(1, _this.state.current - (_this.props.showLessItems ? 3 : 5));\n };\n _this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this.state, _this.props), _this.state.current + (_this.props.showLessItems ? 3 : 5));\n };\n _this.getItemIcon = function (icon, label) {\n var prefixCls = _this.props.prefixCls;\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, _this.props));\n }\n return iconNode;\n };\n _this.savePaginationNode = function (node) {\n _this.paginationNode = node;\n };\n _this.isValid = function (page) {\n var total = _this.props.total;\n return isInteger(page) && page !== _this.state.current && isInteger(total) && total > 0;\n };\n _this.shouldDisplayQuickJumper = function () {\n var _this$props = _this.props,\n showQuickJumper = _this$props.showQuickJumper,\n total = _this$props.total;\n var pageSize = _this.state.pageSize;\n if (total <= pageSize) {\n return false;\n }\n return showQuickJumper;\n };\n _this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n _this.handleKeyUp = function (e) {\n var value = _this.getValidValue(e);\n var currentInputValue = _this.state.currentInputValue;\n if (value !== currentInputValue) {\n _this.setState({\n currentInputValue: value\n });\n }\n if (e.keyCode === KEYCODE.ENTER) {\n _this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this.handleChange(value + 1);\n }\n };\n _this.handleBlur = function (e) {\n var value = _this.getValidValue(e);\n _this.handleChange(value);\n };\n _this.changePageSize = function (size) {\n var current = _this.state.current;\n var newCurrent = calculatePage(size, _this.state, _this.props);\n current = current > newCurrent ? newCurrent : current;\n // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n if (newCurrent === 0) {\n // eslint-disable-next-line prefer-destructuring\n current = _this.state.current;\n }\n if (typeof size === 'number') {\n if (!('pageSize' in _this.props)) {\n _this.setState({\n pageSize: size\n });\n }\n if (!('current' in _this.props)) {\n _this.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n _this.props.onShowSizeChange(current, size);\n if ('onChange' in _this.props && _this.props.onChange) {\n _this.props.onChange(current, size);\n }\n };\n _this.handleChange = function (page) {\n var _this$props2 = _this.props,\n disabled = _this$props2.disabled,\n onChange = _this$props2.onChange;\n var _this$state = _this.state,\n pageSize = _this$state.pageSize,\n current = _this$state.current,\n currentInputValue = _this$state.currentInputValue;\n if (_this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this.state, _this.props);\n var newPage = page;\n if (page > currentPage) {\n newPage = currentPage;\n } else if (page < 1) {\n newPage = 1;\n }\n if (!('current' in _this.props)) {\n _this.setState({\n current: newPage\n });\n }\n if (newPage !== currentInputValue) {\n _this.setState({\n currentInputValue: newPage\n });\n }\n onChange(newPage, pageSize);\n return newPage;\n }\n return current;\n };\n _this.prev = function () {\n if (_this.hasPrev()) {\n _this.handleChange(_this.state.current - 1);\n }\n };\n _this.next = function () {\n if (_this.hasNext()) {\n _this.handleChange(_this.state.current + 1);\n }\n };\n _this.jumpPrev = function () {\n _this.handleChange(_this.getJumpPrevPage());\n };\n _this.jumpNext = function () {\n _this.handleChange(_this.getJumpNextPage());\n };\n _this.hasPrev = function () {\n return _this.state.current > 1;\n };\n _this.hasNext = function () {\n return _this.state.current < calculatePage(undefined, _this.state, _this.props);\n };\n _this.runIfEnter = function (event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n callback.apply(void 0, restParams);\n }\n };\n _this.runIfEnterPrev = function (e) {\n _this.runIfEnter(e, _this.prev);\n };\n _this.runIfEnterNext = function (e) {\n _this.runIfEnter(e, _this.next);\n };\n _this.runIfEnterJumpPrev = function (e) {\n _this.runIfEnter(e, _this.jumpPrev);\n };\n _this.runIfEnterJumpNext = function (e) {\n _this.runIfEnter(e, _this.jumpNext);\n };\n _this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.handleChange(_this.state.currentInputValue);\n }\n };\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = ('current' in props);\n if (hasCurrent && !hasOnChange) {\n // eslint-disable-next-line no-console\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n var _current = props.defaultCurrent;\n if ('current' in props) {\n // eslint-disable-next-line prefer-destructuring\n _current = props.current;\n }\n var _pageSize = props.defaultPageSize;\n if ('pageSize' in props) {\n // eslint-disable-next-line prefer-destructuring\n _pageSize = props.pageSize;\n }\n _current = Math.min(_current, calculatePage(_pageSize, undefined, props));\n _this.state = {\n current: _current,\n currentInputValue: _current,\n pageSize: _pageSize\n };\n return _this;\n }\n _createClass(Pagination, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n var prefixCls = this.props.prefixCls;\n if (prevState.current !== this.state.current && this.paginationNode) {\n var lastCurrentNode = this.paginationNode.querySelector(\".\".concat(prefixCls, \"-item-\").concat(prevState.current));\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n }\n }, {\n key: \"getValidValue\",\n value: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.state, this.props);\n var currentInputValue = this.state.currentInputValue;\n var value;\n if (inputValue === '') {\n value = inputValue;\n // eslint-disable-next-line no-restricted-globals\n } else if (isNaN(Number(inputValue))) {\n value = currentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n return value;\n }\n }, {\n key: \"getShowSizeChanger\",\n value: function getShowSizeChanger() {\n var _this$props3 = this.props,\n showSizeChanger = _this$props3.showSizeChanger,\n total = _this$props3.total,\n totalBoundaryShowSizeChanger = _this$props3.totalBoundaryShowSizeChanger;\n if (typeof showSizeChanger !== 'undefined') {\n return showSizeChanger;\n }\n return total > totalBoundaryShowSizeChanger;\n }\n }, {\n key: \"renderPrev\",\n value: function renderPrev(prevPage) {\n var _this$props4 = this.props,\n prevIcon = _this$props4.prevIcon,\n itemRender = _this$props4.itemRender;\n var prevButton = itemRender(prevPage, 'prev', this.getItemIcon(prevIcon, 'prev page'));\n var disabled = !this.hasPrev();\n return /*#__PURE__*/isValidElement(prevButton) ? /*#__PURE__*/cloneElement(prevButton, {\n disabled: disabled\n }) : prevButton;\n }\n }, {\n key: \"renderNext\",\n value: function renderNext(nextPage) {\n var _this$props5 = this.props,\n nextIcon = _this$props5.nextIcon,\n itemRender = _this$props5.itemRender;\n var nextButton = itemRender(nextPage, 'next', this.getItemIcon(nextIcon, 'next page'));\n var disabled = !this.hasNext();\n return /*#__PURE__*/isValidElement(nextButton) ? /*#__PURE__*/cloneElement(nextButton, {\n disabled: disabled\n }) : nextButton;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props6 = this.props,\n prefixCls = _this$props6.prefixCls,\n className = _this$props6.className,\n style = _this$props6.style,\n disabled = _this$props6.disabled,\n hideOnSinglePage = _this$props6.hideOnSinglePage,\n total = _this$props6.total,\n locale = _this$props6.locale,\n showQuickJumper = _this$props6.showQuickJumper,\n showLessItems = _this$props6.showLessItems,\n showTitle = _this$props6.showTitle,\n showTotal = _this$props6.showTotal,\n simple = _this$props6.simple,\n itemRender = _this$props6.itemRender,\n showPrevNextJumpers = _this$props6.showPrevNextJumpers,\n jumpPrevIcon = _this$props6.jumpPrevIcon,\n jumpNextIcon = _this$props6.jumpNextIcon,\n selectComponentClass = _this$props6.selectComponentClass,\n selectPrefixCls = _this$props6.selectPrefixCls,\n pageSizeOptions = _this$props6.pageSizeOptions;\n var _this$state2 = this.state,\n current = _this$state2.current,\n pageSize = _this$state2.pageSize,\n currentInputValue = _this$state2.currentInputValue;\n\n // When hideOnSinglePage is true and there is only 1 page, hide the pager\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n var allPages = calculatePage(undefined, this.state, this.props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n var pageBufferSize = showLessItems ? 1 : 2;\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = _this2.props[key];\n }\n return prev;\n }, {});\n var totalText = showTotal && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n if (simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, goButton);\n }\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-simple\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), className),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasPrev())),\n \"aria-disabled\": !this.hasPrev()\n }, this.renderPrev(prevPage)), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: currentInputValue,\n disabled: disabled,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n onBlur: this.handleBlur,\n size: \"3\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasNext())),\n \"aria-disabled\": !this.hasNext()\n }, this.renderNext(nextPage)), gotoButton);\n }\n if (allPages <= 3 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender\n };\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: 1,\n className: \"\".concat(prefixCls, \"-item-disabled\")\n })));\n }\n for (var i = 1; i <= allPages; i += 1) {\n var active = current === i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n if (showPrevNextJumpers) {\n jumpPrev = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: this.jumpPrev,\n tabIndex: \"0\",\n onKeyPress: this.runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(jumpPrevIcon, 'prev page')));\n jumpNext = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n tabIndex: \"0\",\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(jumpNextIcon, 'next page')));\n }\n lastPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: allPages,\n page: allPages,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n firstPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n for (var _i = left; _i <= right; _i += 1) {\n var _active = current === _i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: showTitle,\n itemRender: itemRender\n }));\n }\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/cloneElement(pagerList[0], {\n className: \"\".concat(prefixCls, \"-item-after-jump-prev\")\n });\n pagerList.unshift(jumpPrev);\n }\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n pagerList[pagerList.length - 1] = /*#__PURE__*/cloneElement(pagerList[pagerList.length - 1], {\n className: \"\".concat(prefixCls, \"-item-before-jump-next\")\n });\n pagerList.push(jumpNext);\n }\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, this.renderPrev(prevPage)), pagerList, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, this.renderNext(nextPage)), /*#__PURE__*/React.createElement(Options, {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: this.getShowSizeChanger() ? this.changePageSize : null,\n current: current,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n if ('current' in props) {\n newState.current = props.current;\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\n }\n if ('pageSize' in props && props.pageSize !== prevState.pageSize) {\n var current = prevState.current;\n var newCurrent = calculatePage(props.pageSize, prevState, props);\n current = current > newCurrent ? newCurrent : current;\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n newState.pageSize = props.pageSize;\n }\n return newState;\n }\n }]);\n return Pagination;\n}(React.Component);\nPagination.defaultProps = {\n defaultCurrent: 1,\n total: 0,\n defaultPageSize: 10,\n onChange: noop,\n className: '',\n selectPrefixCls: 'rc-select',\n prefixCls: 'rc-pagination',\n selectComponentClass: null,\n hideOnSinglePage: false,\n showPrevNextJumpers: true,\n showQuickJumper: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender,\n totalBoundaryShowSizeChanger: 50\n};\nexport default Pagination;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Select from '../select';\nvar MiniSelect = function MiniSelect(props) {\n return /*#__PURE__*/React.createElement(Select, _extends({}, props, {\n size: \"small\"\n }));\n};\nvar MiddleSelect = function MiddleSelect(props) {\n return /*#__PURE__*/React.createElement(Select, _extends({}, props, {\n size: \"middle\"\n }));\n};\nMiniSelect.Option = Select.Option;\nMiddleSelect.Option = Select.Option;\nexport { MiniSelect, MiddleSelect };","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { MiddleSelect, MiniSelect } from './Select';\nvar Pagination = function Pagination(_a) {\n var customizePrefixCls = _a.prefixCls,\n customizeSelectPrefixCls = _a.selectPrefixCls,\n className = _a.className,\n size = _a.size,\n customLocale = _a.locale,\n selectComponentClass = _a.selectComponentClass,\n responsive = _a.responsive,\n showSizeChanger = _a.showSizeChanger,\n restProps = __rest(_a, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"size\", \"locale\", \"selectComponentClass\", \"responsive\", \"showSizeChanger\"]);\n var _useBreakpoint = useBreakpoint(responsive),\n xs = _useBreakpoint.xs;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n _React$useContext$pag = _React$useContext.pagination,\n pagination = _React$useContext$pag === void 0 ? {} : _React$useContext$pag;\n var prefixCls = getPrefixCls('pagination', customizePrefixCls);\n var mergedShowSizeChanger = showSizeChanger !== null && showSizeChanger !== void 0 ? showSizeChanger : pagination.showSizeChanger;\n var getIconsProps = function getIconsProps() {\n var ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-ellipsis\")\n }, \"\\u2022\\u2022\\u2022\");\n var prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(LeftOutlined, null));\n var nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(RightOutlined, null));\n var jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis));\n var jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis));\n // change arrows direction in right-to-left direction\n if (direction === 'rtl') {\n var _ref = [nextIcon, prevIcon];\n prevIcon = _ref[0];\n nextIcon = _ref[1];\n var _ref2 = [jumpNextIcon, jumpPrevIcon];\n jumpPrevIcon = _ref2[0];\n jumpNextIcon = _ref2[1];\n }\n return {\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n jumpPrevIcon: jumpPrevIcon,\n jumpNextIcon: jumpNextIcon\n };\n };\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Pagination\",\n defaultLocale: enUS\n }, function (contextLocale) {\n var _classNames;\n var locale = _extends(_extends({}, contextLocale), customLocale);\n var isSmall = size === 'small' || !!(xs && !size && responsive);\n var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n var extendedClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mini\"), isSmall), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(RcPagination, _extends({}, getIconsProps(), restProps, {\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls,\n className: extendedClassName,\n selectComponentClass: selectComponentClass || (isSmall ? MiniSelect : MiddleSelect),\n locale: locale,\n showSizeChanger: mergedShowSizeChanger\n }));\n });\n};\nexport default Pagination;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport debounce from 'lodash/debounce';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigConsumer, ConfigContext } from '../config-provider';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nvar SpinSizes = tuple('small', 'default', 'large');\n// Render indicator\nvar defaultIndicator = null;\nfunction renderIndicator(prefixCls, props) {\n var indicator = props.indicator;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n // should not be render default indicator when indicator value is null\n if (indicator === null) {\n return null;\n }\n if (isValidElement(indicator)) {\n return cloneElement(indicator, {\n className: classNames(indicator.props.className, dotClassName)\n });\n }\n if (isValidElement(defaultIndicator)) {\n return cloneElement(defaultIndicator, {\n className: classNames(defaultIndicator.props.className, dotClassName)\n });\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, \"\".concat(prefixCls, \"-dot-spin\"))\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }), /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-dot-item\")\n }));\n}\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\nvar Spin = function Spin(props) {\n var prefixCls = props.spinPrefixCls,\n _props$spinning = props.spinning,\n customSpinning = _props$spinning === void 0 ? true : _props$spinning,\n delay = props.delay,\n className = props.className,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size,\n tip = props.tip,\n wrapperClassName = props.wrapperClassName,\n style = props.style,\n children = props.children,\n restProps = __rest(props, [\"spinPrefixCls\", \"spinning\", \"delay\", \"className\", \"size\", \"tip\", \"wrapperClassName\", \"style\", \"children\"]);\n var _React$useState = React.useState(function () {\n return customSpinning && !shouldDelay(customSpinning, delay);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n spinning = _React$useState2[0],\n setSpinning = _React$useState2[1];\n React.useEffect(function () {\n var updateSpinning = debounce(function () {\n setSpinning(customSpinning);\n }, delay);\n updateSpinning();\n return function () {\n var _a;\n (_a = updateSpinning === null || updateSpinning === void 0 ? void 0 : updateSpinning.cancel) === null || _a === void 0 ? void 0 : _a.call(updateSpinning);\n };\n }, [delay, customSpinning]);\n var isNestedPattern = function isNestedPattern() {\n return typeof children !== 'undefined';\n };\n var renderSpin = function renderSpin(_ref) {\n var _classNames;\n var direction = _ref.direction;\n var spinClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spinning\"), spinning), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-text\"), !!tip), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n // fix https://fb.me/react-unknown-prop\n var divProps = omit(restProps, ['indicator', 'prefixCls']);\n var spinElement = /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n style: style,\n className: spinClassName,\n \"aria-live\": \"polite\",\n \"aria-busy\": spinning\n }), renderIndicator(prefixCls, props), tip ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-text\")\n }, tip) : null);\n if (isNestedPattern()) {\n var containerClassName = classNames(\"\".concat(prefixCls, \"-container\"), _defineProperty({}, \"\".concat(prefixCls, \"-blur\"), spinning));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classNames(\"\".concat(prefixCls, \"-nested-loading\"), wrapperClassName)\n }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n key: \"loading\"\n }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n key: \"container\"\n }, children));\n }\n return spinElement;\n };\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, renderSpin);\n};\nvar SpinFC = function SpinFC(props) {\n var customizePrefixCls = props.prefixCls;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var spinPrefixCls = getPrefixCls('spin', customizePrefixCls);\n var spinClassProps = _extends(_extends({}, props), {\n spinPrefixCls: spinPrefixCls\n });\n return /*#__PURE__*/React.createElement(Spin, _extends({}, spinClassProps));\n};\nSpinFC.setDefaultIndicator = function (indicator) {\n defaultIndicator = indicator;\n};\nif (process.env.NODE_ENV !== 'production') {\n SpinFC.displayName = 'Spin';\n}\nexport default SpinFC;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nfunction isThenable(thing) {\n return !!(thing && !!thing.then);\n}\nvar ActionButton = function ActionButton(props) {\n var clickedRef = React.useRef(false);\n var ref = React.useRef(null);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loading = _useState2[0],\n setLoading = _useState2[1];\n var close = props.close;\n var onInternalClose = function onInternalClose() {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n };\n React.useEffect(function () {\n var timeoutId = null;\n if (props.autoFocus) {\n timeoutId = setTimeout(function () {\n var _a;\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.focus();\n });\n }\n return function () {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, []);\n var handlePromiseOnOk = function handlePromiseOnOk(returnValueOfOnOk) {\n if (!isThenable(returnValueOfOnOk)) {\n return;\n }\n setLoading(true);\n returnValueOfOnOk.then(function () {\n setLoading(false, true);\n onInternalClose.apply(void 0, arguments);\n clickedRef.current = false;\n }, function (e) {\n // Emit error when catch promise reject\n // eslint-disable-next-line no-console\n console.error(e);\n // See: https://github.com/ant-design/ant-design/issues/6183\n setLoading(false, true);\n clickedRef.current = false;\n });\n };\n var onClick = function onClick(e) {\n var actionFn = props.actionFn;\n if (clickedRef.current) {\n return;\n }\n clickedRef.current = true;\n if (!actionFn) {\n onInternalClose();\n return;\n }\n var returnValueOfOnOk;\n if (props.emitEvent) {\n returnValueOfOnOk = actionFn(e);\n if (props.quitOnNullishReturnValue && !isThenable(returnValueOfOnOk)) {\n clickedRef.current = false;\n onInternalClose(e);\n return;\n }\n } else if (actionFn.length) {\n returnValueOfOnOk = actionFn(close);\n // https://github.com/ant-design/ant-design/issues/23358\n clickedRef.current = false;\n } else {\n returnValueOfOnOk = actionFn();\n if (!returnValueOfOnOk) {\n onInternalClose();\n return;\n }\n }\n handlePromiseOnOk(returnValueOfOnOk);\n };\n var type = props.type,\n children = props.children,\n prefixCls = props.prefixCls,\n buttonProps = props.buttonProps;\n return /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(type), {\n onClick: onClick,\n loading: loading,\n prefixCls: prefixCls\n }, buttonProps, {\n ref: ref\n }), children);\n};\nexport default ActionButton;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport { ConfigContext } from '../config-provider';\nimport { NoFormStyle } from '../form/context';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { NoCompactStyle } from '../space/Compact';\nimport { getTransitionName } from '../_util/motion';\nimport { canUseDocElement } from '../_util/styleChecker';\nimport warning from '../_util/warning';\nimport { getConfirmLocale } from './locale';\nvar mousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nvar getClickPosition = function getClickPosition(e) {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n };\n // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n setTimeout(function () {\n mousePosition = null;\n }, 100);\n};\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\nvar Modal = function Modal(props) {\n var _classNames;\n var _a;\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var handleCancel = function handleCancel(e) {\n var onCancel = props.onCancel;\n onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);\n };\n var handleOk = function handleOk(e) {\n var onOk = props.onOk;\n onOk === null || onOk === void 0 ? void 0 : onOk(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Modal', \"`visible` will be removed in next major version, please use `open` instead.\") : void 0;\n var customizePrefixCls = props.prefixCls,\n footer = props.footer,\n visible = props.visible,\n _props$open = props.open,\n open = _props$open === void 0 ? false : _props$open,\n wrapClassName = props.wrapClassName,\n centered = props.centered,\n getContainer = props.getContainer,\n closeIcon = props.closeIcon,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n _props$width = props.width,\n width = _props$width === void 0 ? 520 : _props$width,\n restProps = __rest(props, [\"prefixCls\", \"footer\", \"visible\", \"open\", \"wrapClassName\", \"centered\", \"getContainer\", \"closeIcon\", \"focusTriggerAfterClose\", \"width\"]);\n var prefixCls = getPrefixCls('modal', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var defaultFooter = /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: getConfirmLocale()\n }, function (contextLocale) {\n var okText = props.okText,\n _props$okType = props.okType,\n okType = _props$okType === void 0 ? 'primary' : _props$okType,\n cancelText = props.cancelText,\n _props$confirmLoading = props.confirmLoading,\n confirmLoading = _props$confirmLoading === void 0 ? false : _props$confirmLoading;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, _extends({\n onClick: handleCancel\n }, props.cancelButtonProps), cancelText || contextLocale.cancelText), /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(okType), {\n loading: confirmLoading,\n onClick: handleOk\n }, props.okButtonProps), okText !== null && okText !== void 0 ? okText : contextLocale.okText));\n });\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var wrapClassNameExtended = classNames(wrapClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-centered\"), !!centered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-wrap-rtl\"), direction === 'rtl'), _classNames));\n return /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, /*#__PURE__*/React.createElement(Dialog, _extends({\n width: width\n }, restProps, {\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n wrapClassName: wrapClassNameExtended,\n footer: footer === undefined ? defaultFooter : footer,\n visible: open || visible,\n mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,\n onClose: handleCancel,\n closeIcon: closeIconToRender,\n focusTriggerAfterClose: focusTriggerAfterClose,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName)\n }))));\n};\nexport default Modal;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport ConfigProvider from '../config-provider';\nimport ActionButton from '../_util/ActionButton';\nimport { getTransitionName } from '../_util/motion';\nimport warning from '../_util/warning';\nimport Dialog from './Modal';\nvar ConfirmDialog = function ConfirmDialog(props) {\n var icon = props.icon,\n onCancel = props.onCancel,\n onOk = props.onOk,\n close = props.close,\n zIndex = props.zIndex,\n afterClose = props.afterClose,\n visible = props.visible,\n open = props.open,\n keyboard = props.keyboard,\n centered = props.centered,\n getContainer = props.getContainer,\n maskStyle = props.maskStyle,\n okText = props.okText,\n okButtonProps = props.okButtonProps,\n cancelText = props.cancelText,\n cancelButtonProps = props.cancelButtonProps,\n direction = props.direction,\n prefixCls = props.prefixCls,\n wrapClassName = props.wrapClassName,\n rootPrefixCls = props.rootPrefixCls,\n iconPrefixCls = props.iconPrefixCls,\n bodyStyle = props.bodyStyle,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? false : _props$closable,\n closeIcon = props.closeIcon,\n modalRender = props.modalRender,\n focusTriggerAfterClose = props.focusTriggerAfterClose;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Modal', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(visible === undefined, 'Modal', \"`visible` is deprecated, please use `open` instead.\") : void 0;\n }\n // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n var okType = props.okType || 'primary';\n var contentPrefixCls = \"\".concat(prefixCls, \"-confirm\");\n // 默认为 true,保持向下兼容\n var okCancel = 'okCancel' in props ? props.okCancel : true;\n var width = props.width || 416;\n var style = props.style || {};\n var mask = props.mask === undefined ? true : props.mask;\n // 默认为 false,保持旧版默认行为\n var maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n var autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n var classString = classNames(contentPrefixCls, \"\".concat(contentPrefixCls, \"-\").concat(props.type), _defineProperty({}, \"\".concat(contentPrefixCls, \"-rtl\"), direction === 'rtl'), props.className);\n var cancelButton = okCancel && /*#__PURE__*/React.createElement(ActionButton, {\n actionFn: onCancel,\n close: close,\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, cancelText);\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n direction: direction\n }, /*#__PURE__*/React.createElement(Dialog, {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: classNames(_defineProperty({}, \"\".concat(contentPrefixCls, \"-centered\"), !!props.centered), wrapClassName),\n onCancel: function onCancel() {\n return close === null || close === void 0 ? void 0 : close({\n triggerCancel: true\n });\n },\n open: open || visible,\n title: \"\",\n footer: \"\",\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n mask: mask,\n maskClosable: maskClosable,\n maskStyle: maskStyle,\n style: style,\n bodyStyle: bodyStyle,\n width: width,\n zIndex: zIndex,\n afterClose: afterClose,\n keyboard: keyboard,\n centered: centered,\n getContainer: getContainer,\n closable: closable,\n closeIcon: closeIcon,\n modalRender: modalRender,\n focusTriggerAfterClose: focusTriggerAfterClose\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body-wrapper\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body\")\n }, icon, props.title === undefined ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(contentPrefixCls, \"-title\")\n }, props.title), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-content\")\n }, props.content)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-btns\")\n }, cancelButton, /*#__PURE__*/React.createElement(ActionButton, {\n type: okType,\n actionFn: onOk,\n close: close,\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, okText)))));\n};\nexport default ConfirmDialog;","var destroyFns = [];\nexport default destroyFns;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport { render as reactRender, unmount as reactUnmount } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport { globalConfig } from '../config-provider';\nimport warning from '../_util/warning';\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\nvar defaultRootPrefixCls = '';\nfunction getRootPrefixCls() {\n return defaultRootPrefixCls;\n}\nexport default function confirm(config) {\n var container = document.createDocumentFragment();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var currentConfig = _extends(_extends({}, config), {\n close: close,\n open: true\n });\n var timeoutId;\n function destroy() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n if (config.onCancel && triggerCancel) {\n config.onCancel.apply(config, [function () {}].concat(_toConsumableArray(args.slice(1))));\n }\n for (var i = 0; i < destroyFns.length; i++) {\n var fn = destroyFns[i];\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n if (fn === close) {\n destroyFns.splice(i, 1);\n break;\n }\n }\n reactUnmount(container);\n }\n function render(_a) {\n var okText = _a.okText,\n cancelText = _a.cancelText,\n customizePrefixCls = _a.prefixCls,\n props = __rest(_a, [\"okText\", \"cancelText\", \"prefixCls\"]);\n clearTimeout(timeoutId);\n /**\n * https://github.com/ant-design/ant-design/issues/23623\n *\n * Sync render blocks React event. Let's make this async.\n */\n timeoutId = setTimeout(function () {\n var runtimeLocale = getConfirmLocale();\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n // because Modal.config \b set rootPrefixCls, which is different from other components\n var rootPrefixCls = getPrefixCls(undefined, getRootPrefixCls());\n var prefixCls = customizePrefixCls || \"\".concat(rootPrefixCls, \"-modal\");\n var iconPrefixCls = getIconPrefixCls();\n reactRender( /*#__PURE__*/React.createElement(ConfirmDialog, _extends({}, props, {\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n okText: okText || (props.okCancel ? runtimeLocale.okText : runtimeLocale.justOkText),\n cancelText: cancelText || runtimeLocale.cancelText\n })), container);\n });\n }\n function close() {\n var _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n currentConfig = _extends(_extends({}, currentConfig), {\n open: false,\n afterClose: function afterClose() {\n if (typeof config.afterClose === 'function') {\n config.afterClose();\n }\n destroy.apply(_this, args);\n }\n });\n // Legacy support\n if (currentConfig.visible) {\n delete currentConfig.visible;\n }\n render(currentConfig);\n }\n function update(configUpdate) {\n if (typeof configUpdate === 'function') {\n currentConfig = configUpdate(currentConfig);\n } else {\n currentConfig = _extends(_extends({}, currentConfig), configUpdate);\n }\n render(currentConfig);\n }\n render(currentConfig);\n destroyFns.push(close);\n return {\n destroy: close,\n update: update\n };\n}\nexport function withWarn(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'warning'\n });\n}\nexport function withInfo(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(InfoCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'info'\n });\n}\nexport function withSuccess(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(CheckCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'success'\n });\n}\nexport function withError(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'error'\n });\n}\nexport function withConfirm(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: true\n }, props), {\n type: 'confirm'\n });\n}\nexport function modalGlobalConfig(_ref) {\n var rootPrefixCls = _ref.rootPrefixCls;\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Modal.config is deprecated. Please use ConfigProvider.config instead.') : void 0;\n defaultRootPrefixCls = rootPrefixCls;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n var patchElement = React.useCallback(function (element) {\n // append a new element to elements (and create a new ref)\n setElements(function (originElements) {\n return [].concat(_toConsumableArray(originElements), [element]);\n });\n // return a function that removes the new element out of elements (and create a new ref)\n // it works a little like useEffect\n return function () {\n setElements(function (originElements) {\n return originElements.filter(function (ele) {\n return ele !== element;\n });\n });\n };\n }, []);\n return [elements, patchElement];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport defaultLocale from '../../locale/default';\nimport ConfirmDialog from '../ConfirmDialog';\nvar HookModal = function HookModal(_ref, ref) {\n var afterClose = _ref.afterClose,\n config = _ref.config;\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n open = _React$useState2[0],\n setOpen = _React$useState2[1];\n var _React$useState3 = React.useState(config),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerConfig = _React$useState4[0],\n setInnerConfig = _React$useState4[1];\n var _React$useContext = React.useContext(ConfigContext),\n direction = _React$useContext.direction,\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('modal');\n var rootPrefixCls = getPrefixCls();\n var close = function close() {\n setOpen(false);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n if (innerConfig.onCancel && triggerCancel) {\n innerConfig.onCancel.apply(innerConfig, [function () {}].concat(_toConsumableArray(args.slice(1))));\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n destroy: close,\n update: function update(newConfig) {\n setInnerConfig(function (originConfig) {\n return _extends(_extends({}, originConfig), newConfig);\n });\n }\n };\n });\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: defaultLocale.Modal\n }, function (contextLocale) {\n return /*#__PURE__*/React.createElement(ConfirmDialog, _extends({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls\n }, innerConfig, {\n close: close,\n open: open,\n afterClose: afterClose,\n okText: innerConfig.okText || (innerConfig.okCancel ? contextLocale.okText : contextLocale.justOkText),\n direction: direction,\n cancelText: innerConfig.cancelText || contextLocale.cancelText\n }));\n });\n};\nexport default /*#__PURE__*/React.forwardRef(HookModal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm';\nimport HookModal from './HookModal';\nvar uuid = 0;\nvar ElementsHolder = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (_props, ref) {\n var _usePatchElement = usePatchElement(),\n _usePatchElement2 = _slicedToArray(_usePatchElement, 2),\n elements = _usePatchElement2[0],\n patchElement = _usePatchElement2[1];\n React.useImperativeHandle(ref, function () {\n return {\n patchElement: patchElement\n };\n }, []);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/React.createElement(React.Fragment, null, elements);\n}));\nexport default function useModal() {\n var holderRef = React.useRef(null);\n // ========================== Effect ==========================\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n actionQueue = _React$useState2[0],\n setActionQueue = _React$useState2[1];\n React.useEffect(function () {\n if (actionQueue.length) {\n var cloneQueue = _toConsumableArray(actionQueue);\n cloneQueue.forEach(function (action) {\n action();\n });\n setActionQueue([]);\n }\n }, [actionQueue]);\n // =========================== Hook ===========================\n var getConfirmFunc = React.useCallback(function (withFunc) {\n return function hookConfirm(config) {\n var _a;\n uuid += 1;\n var modalRef = /*#__PURE__*/React.createRef();\n var closeFunc;\n var modal = /*#__PURE__*/React.createElement(HookModal, {\n key: \"modal-\".concat(uuid),\n config: withFunc(config),\n ref: modalRef,\n afterClose: function afterClose() {\n closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc();\n }\n });\n closeFunc = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.patchElement(modal);\n return {\n destroy: function destroy() {\n function destroyAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n if (modalRef.current) {\n destroyAction();\n } else {\n setActionQueue(function (prev) {\n return [].concat(_toConsumableArray(prev), [destroyAction]);\n });\n }\n },\n update: function update(newConfig) {\n function updateAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.update(newConfig);\n }\n if (modalRef.current) {\n updateAction();\n } else {\n setActionQueue(function (prev) {\n return [].concat(_toConsumableArray(prev), [updateAction]);\n });\n }\n }\n };\n };\n }, []);\n var fns = React.useMemo(function () {\n return {\n info: getConfirmFunc(withInfo),\n success: getConfirmFunc(withSuccess),\n error: getConfirmFunc(withError),\n warning: getConfirmFunc(withWarn),\n confirm: getConfirmFunc(withConfirm)\n };\n }, []);\n // eslint-disable-next-line react/jsx-key\n return [fns, /*#__PURE__*/React.createElement(ElementsHolder, {\n ref: holderRef\n })];\n}","import confirm, { modalGlobalConfig, withConfirm, withError, withInfo, withSuccess, withWarn } from './confirm';\nimport destroyFns from './destroyFns';\nimport OriginModal from './Modal';\nimport useModal from './useModal';\nfunction modalWarn(props) {\n return confirm(withWarn(props));\n}\nvar Modal = OriginModal;\nModal.useModal = useModal;\nModal.info = function infoFn(props) {\n return confirm(withInfo(props));\n};\nModal.success = function successFn(props) {\n return confirm(withSuccess(props));\n};\nModal.error = function errorFn(props) {\n return confirm(withError(props));\n};\nModal.warning = modalWarn;\nModal.warn = modalWarn;\nModal.confirm = function confirmFn(props) {\n return confirm(withConfirm(props));\n};\nModal.destroyAll = function destroyAllFn() {\n while (destroyFns.length) {\n var close = destroyFns.pop();\n if (close) {\n close();\n }\n }\n};\nModal.config = modalGlobalConfig;\nexport default Modal;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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/**\n * Wrap of sub component which need use as Button capacity (like Icon component).\n *\n * This helps accessibility reader to tread as a interactive button to operation.\n */\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nvar inlineStyle = {\n border: 0,\n background: 'transparent',\n padding: 0,\n lineHeight: 'inherit',\n display: 'inline-block'\n};\nvar TransButton = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var onKeyDown = function onKeyDown(event) {\n var keyCode = event.keyCode;\n if (keyCode === KeyCode.ENTER) {\n event.preventDefault();\n }\n };\n var onKeyUp = function onKeyUp(event) {\n var keyCode = event.keyCode;\n var onClick = props.onClick;\n if (keyCode === KeyCode.ENTER && onClick) {\n onClick();\n }\n };\n var style = props.style,\n noStyle = props.noStyle,\n disabled = props.disabled,\n restProps = __rest(props, [\"style\", \"noStyle\", \"disabled\"]);\n var mergedStyle = {};\n if (!noStyle) {\n mergedStyle = _extends({}, inlineStyle);\n }\n if (disabled) {\n mergedStyle.pointerEvents = 'none';\n }\n mergedStyle = _extends(_extends({}, mergedStyle), style);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"button\",\n tabIndex: 0,\n ref: ref\n }, restProps, {\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n style: mergedStyle\n }));\n});\nexport default TransButton;","import padEnd from 'lodash/padEnd';\nimport * as React from 'react';\nvar StatisticNumber = function StatisticNumber(props) {\n var value = props.value,\n formatter = props.formatter,\n precision = props.precision,\n decimalSeparator = props.decimalSeparator,\n _props$groupSeparator = props.groupSeparator,\n groupSeparator = _props$groupSeparator === void 0 ? '' : _props$groupSeparator,\n prefixCls = props.prefixCls;\n var valueNode;\n if (typeof formatter === 'function') {\n // Customize formatter\n valueNode = formatter(value);\n } else {\n // Internal formatter\n var val = String(value);\n var cells = val.match(/^(-?)(\\d*)(\\.(\\d+))?$/);\n // Process if illegal number\n if (!cells || val === '-') {\n valueNode = val;\n } else {\n var negative = cells[1];\n var int = cells[2] || '0';\n var decimal = cells[4] || '';\n int = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n if (typeof precision === 'number') {\n decimal = padEnd(decimal, precision, '0').slice(0, precision > 0 ? precision : 0);\n }\n if (decimal) {\n decimal = \"\".concat(decimalSeparator).concat(decimal);\n }\n valueNode = [/*#__PURE__*/React.createElement(\"span\", {\n key: \"int\",\n className: \"\".concat(prefixCls, \"-content-value-int\")\n }, negative, int), decimal && /*#__PURE__*/React.createElement(\"span\", {\n key: \"decimal\",\n className: \"\".concat(prefixCls, \"-content-value-decimal\")\n }, decimal)];\n }\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-content-value\")\n }, valueNode);\n};\nexport default StatisticNumber;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { withConfigConsumer } from '../config-provider/context';\nimport Skeleton from '../skeleton';\nimport StatisticNumber from './Number';\nvar Statistic = function Statistic(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n valueStyle = props.valueStyle,\n _props$value = props.value,\n value = _props$value === void 0 ? 0 : _props$value,\n title = props.title,\n valueRender = props.valueRender,\n prefix = props.prefix,\n suffix = props.suffix,\n _props$loading = props.loading,\n loading = _props$loading === void 0 ? false : _props$loading,\n direction = props.direction,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n _props$decimalSeparat = props.decimalSeparator,\n decimalSeparator = _props$decimalSeparat === void 0 ? '.' : _props$decimalSeparat,\n _props$groupSeparator = props.groupSeparator,\n groupSeparator = _props$groupSeparator === void 0 ? ',' : _props$groupSeparator;\n var valueNode = /*#__PURE__*/React.createElement(StatisticNumber, _extends({\n decimalSeparator: decimalSeparator,\n groupSeparator: groupSeparator\n }, props, {\n value: value\n }));\n var cls = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title), /*#__PURE__*/React.createElement(Skeleton, {\n paragraph: false,\n loading: loading,\n className: \"\".concat(prefixCls, \"-skeleton\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: valueStyle,\n className: \"\".concat(prefixCls, \"-content\")\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-content-prefix\")\n }, prefix), valueRender ? valueRender(valueNode) : valueNode, suffix && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-content-suffix\")\n }, suffix))));\n};\nvar WrapperStatistic = withConfigConsumer({\n prefixCls: 'statistic'\n})(Statistic);\nexport default WrapperStatistic;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport padStart from 'lodash/padStart';\n// Countdown\nvar timeUnits = [['Y', 1000 * 60 * 60 * 24 * 365], ['M', 1000 * 60 * 60 * 24 * 30], ['D', 1000 * 60 * 60 * 24], ['H', 1000 * 60 * 60], ['m', 1000 * 60], ['s', 1000], ['S', 1] // million seconds\n];\n\nexport function formatTimeStr(duration, format) {\n var leftDuration = duration;\n var escapeRegex = /\\[[^\\]]*]/g;\n var keepList = (format.match(escapeRegex) || []).map(function (str) {\n return str.slice(1, -1);\n });\n var templateText = format.replace(escapeRegex, '[]');\n var replacedText = timeUnits.reduce(function (current, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n unit = _ref2[1];\n if (current.includes(name)) {\n var value = Math.floor(leftDuration / unit);\n leftDuration -= value * unit;\n return current.replace(new RegExp(\"\".concat(name, \"+\"), 'g'), function (match) {\n var len = match.length;\n return padStart(value.toString(), len, '0');\n });\n }\n return current;\n }, templateText);\n var index = 0;\n return replacedText.replace(escapeRegex, function () {\n var match = keepList[index];\n index += 1;\n return match;\n });\n}\nexport function formatCountdown(value, config) {\n var _config$format = config.format,\n format = _config$format === void 0 ? '' : _config$format;\n var target = new Date(value).getTime();\n var current = Date.now();\n var diff = Math.max(target - current, 0);\n return formatTimeStr(diff, format);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useForceUpdate from '../_util/hooks/useForceUpdate';\nimport { cloneElement } from '../_util/reactNode';\nimport Statistic from './Statistic';\nimport { formatCountdown } from './utils';\nvar REFRESH_INTERVAL = 1000 / 30;\nfunction getTime(value) {\n return new Date(value).getTime();\n}\nvar Countdown = function Countdown(props) {\n var value = props.value,\n _props$format = props.format,\n format = _props$format === void 0 ? 'HH:mm:ss' : _props$format,\n onChange = props.onChange,\n onFinish = props.onFinish;\n var forceUpdate = useForceUpdate();\n var countdown = React.useRef(null);\n var stopTimer = function stopTimer() {\n onFinish === null || onFinish === void 0 ? void 0 : onFinish();\n if (countdown.current) {\n clearInterval(countdown.current);\n countdown.current = null;\n }\n };\n var syncTimer = function syncTimer() {\n var timestamp = getTime(value);\n if (timestamp >= Date.now()) {\n countdown.current = setInterval(function () {\n forceUpdate();\n onChange === null || onChange === void 0 ? void 0 : onChange(timestamp - Date.now());\n if (timestamp < Date.now()) {\n stopTimer();\n }\n }, REFRESH_INTERVAL);\n }\n };\n React.useEffect(function () {\n syncTimer();\n return function () {\n if (countdown.current) {\n clearInterval(countdown.current);\n countdown.current = null;\n }\n };\n }, [value]);\n var formatter = function formatter(formatValue, config) {\n return formatCountdown(formatValue, _extends(_extends({}, config), {\n format: format\n }));\n };\n var valueRender = function valueRender(node) {\n return cloneElement(node, {\n title: undefined\n });\n };\n return /*#__PURE__*/React.createElement(Statistic, _extends({}, props, {\n valueRender: valueRender,\n formatter: formatter\n }));\n};\nexport default /*#__PURE__*/React.memo(Countdown);","import Countdown from './Countdown';\nimport Statistic from './Statistic';\nStatistic.Countdown = Countdown;\nexport default Statistic;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction Column(_) {\n return null;\n}\nexport default Column;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\nexport default ColumnGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nfunction renderExpandIcon(locale) {\n return function expandIcon(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n onExpand = _ref.onExpand,\n record = _ref.record,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var iconPrefix = \"\".concat(prefixCls, \"-row-expand-icon\");\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: function onClick(e) {\n onExpand(record, e);\n e.stopPropagation();\n },\n className: classNames(iconPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(iconPrefix, \"-spaced\"), !expandable), _defineProperty(_classNames, \"\".concat(iconPrefix, \"-expanded\"), expandable && expanded), _defineProperty(_classNames, \"\".concat(iconPrefix, \"-collapsed\"), expandable && !expanded), _classNames)),\n \"aria-label\": expanded ? locale.collapse : locale.expand,\n \"aria-expanded\": expanded\n });\n };\n}\nexport default renderExpandIcon;","export function getColumnKey(column, defaultKey) {\n if ('key' in column && column.key !== undefined && column.key !== null) {\n return column.key;\n }\n if (column.dataIndex) {\n return Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex;\n }\n return defaultKey;\n}\nexport function getColumnPos(index, pos) {\n return pos ? \"\".concat(pos, \"-\").concat(index) : \"\".concat(index);\n}\nexport function renderColumnTitle(title, props) {\n if (typeof title === 'function') {\n return title(props);\n }\n return title;\n}\n/**\n * Safe get column title\n *\n * Should filter [object Object]\n *\n * @param title\n * @returns\n */\nexport function safeColumnTitle(title, props) {\n var res = renderColumnTitle(title, props);\n if (Object.prototype.toString.call(res) === '[object Object]') return '';\n return res;\n}","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i]), _classNames))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\n// @ts-ignore\nimport { TreeContext } from './contextTypes';\nimport Indent from './Indent';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n var _super = _createSuper(InternalTreeNode);\n function InternalTreeNode() {\n var _this;\n _classCallCheck(this, InternalTreeNode);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n dragNodeHighlight: false\n };\n _this.selectHandle = void 0;\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n e.preventDefault();\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n e.preventDefault();\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, _assertThisInitialized(_this));\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, _assertThisInitialized(_this));\n };\n // Disabled item still can be switch\n _this.onExpand = function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n };\n // Drag usage\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n if (_this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n var _ref = keyEntities[eventKey] || {},\n children = _ref.children;\n return !!(children || []).length;\n };\n _this.isLeaf = function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n var hasChildren = _this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable;\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n // Load data to avoid default expanded tree without data\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) {\n return;\n }\n // read from state to avoid loadData at same time\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n };\n _this.isDraggable = function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n // ==================== Render: Drag Handler ====================\n _this.renderDragHandler = function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n };\n // ====================== Render: Switcher ======================\n _this.renderSwitcherIconDom = function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n return switcherIcon;\n };\n // Switcher\n _this.renderSwitcher = function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n };\n // ====================== Render: Checkbox ======================\n // Checkbox\n _this.renderCheckbox = function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n var disabled = _this.isDisabled();\n var checkable = _this.isCheckable();\n if (!checkable) return null;\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n };\n // ==================== Render: Title + Icon ====================\n _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n };\n // Icon + Title\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n _this$props6$title = _this$props6.title,\n title = _this$props6$title === void 0 ? defaultTitle : _this$props6$title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n var disabled = _this.isDisabled();\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n }\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n };\n // =================== Render: Drop Indicator ===================\n _this.renderDropIndicator = function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: indent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n };\n return _this;\n }\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value:\n // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable;\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value:\n // =========================== Render ===========================\n function render() {\n var _classNames;\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n selectable = _this$props8.selectable,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = keyEntities[eventKey] || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), _defineProperty(_classNames, \"dragging\", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.isTreeNode = 1;\nexport { InternalTreeNode };\nexport default ContextTreeNode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nexport { getPosition, isTreeNode } from './utils/treeUtil';\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = keyEntities[dragNodeKey];\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = keyEntities[targetNode.props.eventKey];\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = keyEntities[prevNodeKey];\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n // Only allow cross level drop when dragging on a non-expanded node\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n // Convert keys to object format\n var keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = keyEntities[key];\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(callback) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n enabled = _React$useState2[0],\n setEnabled = _React$useState2[1];\n React.useLayoutEffect(function () {\n return function () {\n if (enabled) {\n callback();\n }\n };\n }, [enabled]);\n React.useLayoutEffect(function () {\n setEnabled(true);\n }, []);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport TreeNode from './TreeNode';\nimport useUnmount from './useUnmount';\nimport { getTreeNodeProps } from './utils/treeUtil';\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n var targetVisible = motionNodes && motionType !== 'hide';\n useLayoutEffect(function () {\n if (motionNodes) {\n onOriginMotionStart();\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n // Should only trigger once\n var triggerMotionEndRef = React.useRef(false);\n var triggerMotionEnd = function triggerMotionEnd() {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n // Effect if unmount\n useUnmount(triggerMotionEnd);\n // Motion end event\n var onVisibleChanged = function onVisibleChanged(nextVisible) {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onVisibleChanged: onVisibleChanged\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList, fullList) {\n var originSet = new Set(originList);\n var restList = fullList.filter(function (item) {\n return !originSet.has(item);\n });\n // Motion node is not render. Skip motion\n if (restList.some(function (item) {\n return itemKey(item) === MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\n });\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 _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\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport classNames from 'classnames';\nimport { TreeContext } from './contextTypes';\nimport { getDragChildrenKeys, parseCheckedKeys, conductExpandParent, calcSelectedKeys, calcDropPosition, arrAdd, arrDel, posToArr } from './util';\nimport { flattenTreeData, convertTreeToData, convertDataToEntities, warningWithoutKey, convertNodePropsToEventData, getTreeNodeProps, fillFieldNames } from './utils/treeUtil';\nimport NodeList, { MOTION_KEY, MotionEntity } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { conductCheck } from './utils/conductUtil';\nimport DropIndicator from './DropIndicator';\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(_args));\n _this.destroyed = false;\n _this.delayedDragEnterLogic = void 0;\n _this.loadingRetryTimes = {};\n _this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n };\n _this.dragStartMousePosition = null;\n _this.dragNode = void 0;\n _this.currentMouseOverDroppableNodeKey = null;\n _this.listRef = /*#__PURE__*/React.createRef();\n _this.onNodeDragStart = function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n _this.onNodeDragEnter = function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode;\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!dragNode) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\n }\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = keyEntities[node.props.eventKey];\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n };\n _this.onNodeDragOver = function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n if (!dragNode) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n }\n // Update drag position\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onNodeDragLeave = function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n _this.onWindowDragEnd = function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n _this.onNodeDragEnd = function (event, node) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n _this.dragNode = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n _this.onNodeDrop = function (event, node) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: _this.state.keyEntities[dropTargetKey].node\n });\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);\n }\n _this.dragNode = null;\n };\n _this.cleanDragState = function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n };\n _this.triggerExpandActionExpand = function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n };\n _this.onNodeClick = function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);\n };\n _this.onNodeDoubleClick = function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);\n };\n _this.onNodeSelect = function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = keyEntities[selectedKey];\n if (!entity) return null;\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n };\n _this.onNodeCheck = function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return keyEntities[checkedKey];\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n checkedObj = _checkedKeys;\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n _checkedKeys.forEach(function (checkedKey) {\n var entity = keyEntities[checkedKey];\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);\n };\n _this.onNodeLoad = function (treeNode) {\n var key = treeNode.key;\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n };\n _this.onNodeMouseEnter = function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n event: event,\n node: node\n });\n };\n _this.onNodeMouseLeave = function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n event: event,\n node: node\n });\n };\n _this.onNodeContextMenu = function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n };\n _this.onFocus = function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);\n };\n _this.onBlur = function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);\n };\n _this.getTreeNodeRequiredProps = function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n };\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n _this.setExpandedKeys = function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n };\n _this.onNodeExpand = function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n // Update selected keys\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n _this.onListChangeStart = function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n };\n _this.onListChangeEnd = function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n };\n // =========================== Keyboard ===========================\n _this.onActiveChange = function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var onActiveChange = _this.props.onActiveChange;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey\n });\n }\n onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);\n };\n _this.getActiveItem = function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n };\n _this.offsetActiveKey = function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var key = item.key;\n _this.onActiveChange(key);\n } else {\n _this.onActiveChange(null);\n }\n };\n _this.onKeyDown = function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props9 = _this.props,\n onKeyDown = _this$props9.onKeyDown,\n checkable = _this$props9.checkable,\n selectable = _this$props9.selectable;\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n /**\n * Only update the value which is not in props\n */\n _this.setUncontrolledState = function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n };\n _this.scrollTo = function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n };\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var activeKey = this.props.activeKey;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props10 = this.props,\n prefixCls = _this$props10.prefixCls,\n className = _this$props10.className,\n style = _this$props10.style,\n showLine = _this$props10.showLine,\n focusable = _this$props10.focusable,\n _this$props10$tabInde = _this$props10.tabIndex,\n tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,\n selectable = _this$props10.selectable,\n showIcon = _this$props10.showIcon,\n icon = _this$props10.icon,\n switcherIcon = _this$props10.switcherIcon,\n draggable = _this$props10.draggable,\n checkable = _this$props10.checkable,\n checkStrictly = _this$props10.checkStrictly,\n disabled = _this$props10.disabled,\n motion = _this$props10.motion,\n loadData = _this$props10.loadData,\n filterTreeNode = _this$props10.filterTreeNode,\n height = _this$props10.height,\n itemHeight = _this$props10.itemHeight,\n virtual = _this$props10.virtual,\n titleRender = _this$props10.titleRender,\n dropIndicatorRender = _this$props10.dropIndicatorRender,\n onContextMenu = _this$props10.onContextMenu,\n onScroll = _this$props10.onScroll,\n direction = _this$props10.direction,\n rootClassName = _this$props10.rootClassName,\n rootStyle = _this$props10.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-line\"), showLine), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null), _classNames)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n }\n // ================== Tree Node ==================\n var treeData;\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n var keyEntities = newState.keyEntities || prevState.keyEntities;\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n }\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\nTree.defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n};\nTree.TreeNode = TreeNode;\nexport default Tree;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\nexport var offset = 4;\nexport default function dropIndicatorRender(props) {\n var _style;\n var dropPosition = props.dropPosition,\n dropLevelOffset = props.dropLevelOffset,\n prefixCls = props.prefixCls,\n indent = props.indent,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction;\n var startPosition = direction === 'ltr' ? 'left' : 'right';\n var endPosition = direction === 'ltr' ? 'right' : 'left';\n var style = (_style = {}, _defineProperty(_style, startPosition, -dropLevelOffset * indent + offset), _defineProperty(_style, endPosition, 0), _style);\n switch (dropPosition) {\n case -1:\n style.top = -3;\n break;\n case 1:\n style.bottom = -3;\n break;\n default:\n // dropPosition === 0\n style.bottom = -3;\n style[startPosition] = indent + offset;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: \"\".concat(prefixCls, \"-drop-indicator\")\n });\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nexport default function renderSwitcherIcon(prefixCls, switcherIcon, showLine, treeNodeProps) {\n var isLeaf = treeNodeProps.isLeaf,\n expanded = treeNodeProps.expanded,\n loading = treeNodeProps.loading;\n if (loading) {\n return /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-loading-icon\")\n });\n }\n var showLeafIcon;\n if (showLine && _typeof(showLine) === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n if (isLeaf) {\n if (!showLine) {\n return null;\n }\n if (typeof showLeafIcon !== 'boolean' && !!showLeafIcon) {\n var leafIcon = typeof showLeafIcon === 'function' ? showLeafIcon(treeNodeProps) : showLeafIcon;\n var leafCls = \"\".concat(prefixCls, \"-switcher-line-custom-icon\");\n if (isValidElement(leafIcon)) {\n return cloneElement(leafIcon, {\n className: classNames(leafIcon.props.className || '', leafCls)\n });\n }\n return leafIcon;\n }\n return showLeafIcon ? /*#__PURE__*/React.createElement(FileOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-switcher-leaf-line\")\n });\n }\n var switcherCls = \"\".concat(prefixCls, \"-switcher-icon\");\n var switcher = typeof switcherIcon === 'function' ? switcherIcon(treeNodeProps) : switcherIcon;\n if (isValidElement(switcher)) {\n return cloneElement(switcher, {\n className: classNames(switcher.props.className || '', switcherCls)\n });\n }\n if (switcher) {\n return switcher;\n }\n if (showLine) {\n return expanded ? /*#__PURE__*/React.createElement(MinusSquareOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n }) : /*#__PURE__*/React.createElement(PlusSquareOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n });\n }\n return /*#__PURE__*/React.createElement(CaretDownFilled, {\n className: switcherCls\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport HolderOutlined from \"@ant-design/icons/es/icons/HolderOutlined\";\nimport classNames from 'classnames';\nimport RcTree from 'rc-tree';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport collapseMotion from '../_util/motion';\nimport dropIndicatorRender from './utils/dropIndicator';\nimport renderSwitcherIcon from './utils/iconUtil';\nvar Tree = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$showIcon = props.showIcon,\n showIcon = _props$showIcon === void 0 ? false : _props$showIcon,\n showLine = props.showLine,\n _switcherIcon = props.switcherIcon,\n _props$blockNode = props.blockNode,\n blockNode = _props$blockNode === void 0 ? false : _props$blockNode,\n children = props.children,\n _props$checkable = props.checkable,\n checkable = _props$checkable === void 0 ? false : _props$checkable,\n _props$selectable = props.selectable,\n selectable = _props$selectable === void 0 ? true : _props$selectable,\n draggable = props.draggable,\n _props$motion = props.motion,\n motion = _props$motion === void 0 ? _extends(_extends({}, collapseMotion), {\n motionAppear: false\n }) : _props$motion;\n var prefixCls = getPrefixCls('tree', customizePrefixCls);\n var newProps = _extends(_extends({}, props), {\n checkable: checkable,\n selectable: selectable,\n showIcon: showIcon,\n motion: motion,\n blockNode: blockNode,\n showLine: Boolean(showLine),\n dropIndicatorRender: dropIndicatorRender\n });\n var draggableConfig = React.useMemo(function () {\n if (!draggable) {\n return false;\n }\n var mergedDraggable = {};\n switch (_typeof(draggable)) {\n case 'function':\n mergedDraggable.nodeDraggable = draggable;\n break;\n case 'object':\n mergedDraggable = _extends({}, draggable);\n break;\n default:\n break;\n // Do nothing\n }\n\n if (mergedDraggable.icon !== false) {\n mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/React.createElement(HolderOutlined, null);\n }\n return mergedDraggable;\n }, [draggable]);\n return /*#__PURE__*/React.createElement(RcTree, _extends({\n itemHeight: 20,\n ref: ref,\n virtual: virtual\n }, newProps, {\n prefixCls: prefixCls,\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-icon-hide\"), !showIcon), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block-node\"), blockNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-unselectable\"), !selectable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className),\n direction: direction,\n checkable: checkable ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-checkbox-inner\")\n }) : checkable,\n selectable: selectable,\n switcherIcon: function switcherIcon(nodeProps) {\n return renderSwitcherIcon(prefixCls, _switcherIcon, showLine, nodeProps);\n },\n draggable: draggableConfig\n }), children);\n});\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar Record;\n(function (Record) {\n Record[Record[\"None\"] = 0] = \"None\";\n Record[Record[\"Start\"] = 1] = \"Start\";\n Record[Record[\"End\"] = 2] = \"End\";\n})(Record || (Record = {}));\nfunction traverseNodesKey(treeData, callback) {\n function processNode(dataNode) {\n var key = dataNode.key,\n children = dataNode.children;\n if (callback(key, dataNode) !== false) {\n traverseNodesKey(children || [], callback);\n }\n }\n treeData.forEach(processNode);\n}\n/** 计算选中范围,只考虑expanded情况以优化性能 */\nexport function calcRangeKeys(_ref) {\n var treeData = _ref.treeData,\n expandedKeys = _ref.expandedKeys,\n startKey = _ref.startKey,\n endKey = _ref.endKey;\n var keys = [];\n var record = Record.None;\n if (startKey && startKey === endKey) {\n return [startKey];\n }\n if (!startKey || !endKey) {\n return [];\n }\n function matchKey(key) {\n return key === startKey || key === endKey;\n }\n traverseNodesKey(treeData, function (key) {\n if (record === Record.End) {\n return false;\n }\n if (matchKey(key)) {\n // Match test\n keys.push(key);\n if (record === Record.None) {\n record = Record.Start;\n } else if (record === Record.Start) {\n record = Record.End;\n return false;\n }\n } else if (record === Record.Start) {\n // Append selection\n keys.push(key);\n }\n return expandedKeys.includes(key);\n });\n return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys) {\n var restKeys = _toConsumableArray(keys);\n var nodes = [];\n traverseNodesKey(treeData, function (key, node) {\n var index = restKeys.indexOf(key);\n if (index !== -1) {\n nodes.push(node);\n restKeys.splice(index, 1);\n }\n return !!restKeys.length;\n });\n return nodes;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport FolderOpenOutlined from \"@ant-design/icons/es/icons/FolderOpenOutlined\";\nimport FolderOutlined from \"@ant-design/icons/es/icons/FolderOutlined\";\nimport classNames from 'classnames';\nimport { conductExpandParent } from \"rc-tree/es/util\";\nimport { convertDataToEntities, convertTreeToData } from \"rc-tree/es/utils/treeUtil\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tree from './Tree';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\nfunction getIcon(props) {\n var isLeaf = props.isLeaf,\n expanded = props.expanded;\n if (isLeaf) {\n return /*#__PURE__*/React.createElement(FileOutlined, null);\n }\n return expanded ? /*#__PURE__*/React.createElement(FolderOpenOutlined, null) : /*#__PURE__*/React.createElement(FolderOutlined, null);\n}\nfunction getTreeData(_ref) {\n var treeData = _ref.treeData,\n children = _ref.children;\n return treeData || convertTreeToData(children);\n}\nvar DirectoryTree = function DirectoryTree(_a, ref) {\n var defaultExpandAll = _a.defaultExpandAll,\n defaultExpandParent = _a.defaultExpandParent,\n defaultExpandedKeys = _a.defaultExpandedKeys,\n props = __rest(_a, [\"defaultExpandAll\", \"defaultExpandParent\", \"defaultExpandedKeys\"]);\n // Shift click usage\n var lastSelectedKey = React.useRef();\n var cachedSelectedKeys = React.useRef();\n var getInitExpandedKeys = function getInitExpandedKeys() {\n var _convertDataToEntitie = convertDataToEntities(getTreeData(props)),\n keyEntities = _convertDataToEntitie.keyEntities;\n var initExpandedKeys;\n // Expanded keys\n if (defaultExpandAll) {\n initExpandedKeys = Object.keys(keyEntities);\n } else if (defaultExpandParent) {\n initExpandedKeys = conductExpandParent(props.expandedKeys || defaultExpandedKeys || [], keyEntities);\n } else {\n initExpandedKeys = props.expandedKeys || defaultExpandedKeys;\n }\n return initExpandedKeys;\n };\n var _React$useState = React.useState(props.selectedKeys || props.defaultSelectedKeys || []),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n selectedKeys = _React$useState2[0],\n setSelectedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(function () {\n return getInitExpandedKeys();\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n expandedKeys = _React$useState4[0],\n setExpandedKeys = _React$useState4[1];\n React.useEffect(function () {\n if ('selectedKeys' in props) {\n setSelectedKeys(props.selectedKeys);\n }\n }, [props.selectedKeys]);\n React.useEffect(function () {\n if ('expandedKeys' in props) {\n setExpandedKeys(props.expandedKeys);\n }\n }, [props.expandedKeys]);\n var onExpand = function onExpand(keys, info) {\n var _a;\n if (!('expandedKeys' in props)) {\n setExpandedKeys(keys);\n }\n // Call origin function\n return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);\n };\n var onSelect = function onSelect(keys, event) {\n var _a;\n var multiple = props.multiple;\n var node = event.node,\n nativeEvent = event.nativeEvent;\n var _node$key = node.key,\n key = _node$key === void 0 ? '' : _node$key;\n var treeData = getTreeData(props);\n // const newState: DirectoryTreeState = {};\n // We need wrap this event since some value is not same\n var newEvent = _extends(_extends({}, event), {\n selected: true\n });\n // Windows / Mac single pick\n var ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);\n var shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;\n // Generate new selected keys\n var newSelectedKeys;\n if (multiple && ctrlPick) {\n // Control click\n newSelectedKeys = keys;\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else if (multiple && shiftPick) {\n // Shift click\n newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(cachedSelectedKeys.current || []), _toConsumableArray(calcRangeKeys({\n treeData: treeData,\n expandedKeys: expandedKeys,\n startKey: key,\n endKey: lastSelectedKey.current\n })))));\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else {\n // Single click\n newSelectedKeys = [key];\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);\n if (!('selectedKeys' in props)) {\n setSelectedKeys(newSelectedKeys);\n }\n };\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$showIcon = props.showIcon,\n showIcon = _props$showIcon === void 0 ? true : _props$showIcon,\n _props$expandAction = props.expandAction,\n expandAction = _props$expandAction === void 0 ? 'click' : _props$expandAction,\n otherProps = __rest(props, [\"prefixCls\", \"className\", \"showIcon\", \"expandAction\"]);\n var prefixCls = getPrefixCls('tree', customizePrefixCls);\n var connectClassName = classNames(\"\".concat(prefixCls, \"-directory\"), _defineProperty({}, \"\".concat(prefixCls, \"-directory-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(Tree, _extends({\n icon: getIcon,\n ref: ref,\n blockNode: true\n }, otherProps, {\n showIcon: showIcon,\n expandAction: expandAction,\n prefixCls: prefixCls,\n className: connectClassName,\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n onSelect: onSelect,\n onExpand: onExpand\n }));\n};\nvar ForwardDirectoryTree = /*#__PURE__*/React.forwardRef(DirectoryTree);\nif (process.env.NODE_ENV !== 'production') {\n ForwardDirectoryTree.displayName = 'DirectoryTree';\n}\nexport default ForwardDirectoryTree;","import { TreeNode } from 'rc-tree';\nimport TreePure from './Tree';\nimport DirectoryTree from './DirectoryTree';\nvar Tree = TreePure;\nTree.DirectoryTree = DirectoryTree;\nTree.TreeNode = TreeNode;\nexport default Tree;","import * as React from 'react';\nimport useForceUpdate from './useForceUpdate';\nexport default function useSyncState(initialValue) {\n var ref = React.useRef(initialValue);\n var forceUpdate = useForceUpdate();\n return [function () {\n return ref.current;\n }, function (newValue) {\n ref.current = newValue;\n // re-render\n forceUpdate();\n }];\n}","import SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nimport Input from '../../../input';\nfunction FilterSearch(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n filterSearch = _ref.filterSearch,\n tablePrefixCls = _ref.tablePrefixCls,\n locale = _ref.locale;\n if (!filterSearch) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),\n placeholder: locale.filterSearchPlaceholder,\n onChange: onChange,\n value: value,\n // for skip min-width of input\n htmlSize: 1,\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-search-input\")\n }));\n}\nexport default FilterSearch;","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar onKeyDown = function onKeyDown(event) {\n var keyCode = event.keyCode;\n if (keyCode === KeyCode.ENTER) {\n event.stopPropagation();\n }\n};\nvar FilterDropdownMenuWrapper = function FilterDropdownMenuWrapper(props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: props.className,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onKeyDown: onKeyDown\n }, props.children);\n};\nexport default FilterDropdownMenuWrapper;","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 FilterFilled from \"@ant-design/icons/es/icons/FilterFilled\";\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport * as React from 'react';\nimport { flattenKeys } from '.';\nimport Button from '../../../button';\nimport Checkbox from '../../../checkbox';\nimport { ConfigContext } from '../../../config-provider/context';\nimport Dropdown from '../../../dropdown';\nimport Empty from '../../../empty';\nimport Menu from '../../../menu';\nimport { OverrideProvider } from '../../../menu/OverrideContext';\nimport Radio from '../../../radio';\nimport Tree from '../../../tree';\nimport useSyncState from '../../../_util/hooks/useSyncState';\nimport FilterSearch from './FilterSearch';\nimport FilterDropdownMenuWrapper from './FilterWrapper';\nfunction hasSubMenu(filters) {\n return filters.some(function (_ref) {\n var children = _ref.children;\n return children;\n });\n}\nfunction searchValueMatched(searchValue, text) {\n if (typeof text === 'string' || typeof text === 'number') {\n return text === null || text === void 0 ? void 0 : text.toString().toLowerCase().includes(searchValue.trim().toLowerCase());\n }\n return false;\n}\nfunction renderFilterItems(_ref2) {\n var filters = _ref2.filters,\n prefixCls = _ref2.prefixCls,\n filteredKeys = _ref2.filteredKeys,\n filterMultiple = _ref2.filterMultiple,\n searchValue = _ref2.searchValue,\n filterSearch = _ref2.filterSearch;\n return filters.map(function (filter, index) {\n var key = String(filter.value);\n if (filter.children) {\n return {\n key: key || index,\n label: filter.text,\n popupClassName: \"\".concat(prefixCls, \"-dropdown-submenu\"),\n children: renderFilterItems({\n filters: filter.children,\n prefixCls: prefixCls,\n filteredKeys: filteredKeys,\n filterMultiple: filterMultiple,\n searchValue: searchValue,\n filterSearch: filterSearch\n })\n };\n }\n var Component = filterMultiple ? Checkbox : Radio;\n var item = {\n key: filter.value !== undefined ? key : index,\n label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {\n checked: filteredKeys.includes(key)\n }), /*#__PURE__*/React.createElement(\"span\", null, filter.text))\n };\n if (searchValue.trim()) {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, filter) ? item : null;\n }\n return searchValueMatched(searchValue, filter.text) ? item : null;\n }\n return item;\n });\n}\nfunction FilterDropdown(props) {\n var _a;\n var tablePrefixCls = props.tablePrefixCls,\n prefixCls = props.prefixCls,\n column = props.column,\n dropdownPrefixCls = props.dropdownPrefixCls,\n columnKey = props.columnKey,\n filterMultiple = props.filterMultiple,\n _props$filterMode = props.filterMode,\n filterMode = _props$filterMode === void 0 ? 'menu' : _props$filterMode,\n _props$filterSearch = props.filterSearch,\n filterSearch = _props$filterSearch === void 0 ? false : _props$filterSearch,\n filterState = props.filterState,\n triggerFilter = props.triggerFilter,\n locale = props.locale,\n children = props.children,\n getPopupContainer = props.getPopupContainer;\n var filterDropdownOpen = column.filterDropdownOpen,\n onFilterDropdownOpenChange = column.onFilterDropdownOpenChange,\n filterDropdownVisible = column.filterDropdownVisible,\n onFilterDropdownVisibleChange = column.onFilterDropdownVisibleChange,\n filterResetToDefaultFilteredValue = column.filterResetToDefaultFilteredValue,\n defaultFilteredValue = column.defaultFilteredValue;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var filtered = !!(filterState && (((_a = filterState.filteredKeys) === null || _a === void 0 ? void 0 : _a.length) || filterState.forceFiltered));\n var triggerVisible = function triggerVisible(newVisible) {\n setVisible(newVisible);\n onFilterDropdownOpenChange === null || onFilterDropdownOpenChange === void 0 ? void 0 : onFilterDropdownOpenChange(newVisible);\n onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(newVisible);\n };\n var mergedVisible;\n if (typeof filterDropdownOpen === 'boolean') {\n mergedVisible = filterDropdownOpen;\n } else {\n mergedVisible = typeof filterDropdownVisible === 'boolean' ? filterDropdownVisible : visible;\n }\n // ===================== Select Keys =====================\n var propFilteredKeys = filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys;\n var _useSyncState = useSyncState(propFilteredKeys || []),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n getFilteredKeysSync = _useSyncState2[0],\n setFilteredKeysSync = _useSyncState2[1];\n var onSelectKeys = function onSelectKeys(_ref3) {\n var selectedKeys = _ref3.selectedKeys;\n setFilteredKeysSync(selectedKeys);\n };\n var onCheck = function onCheck(keys, _ref4) {\n var node = _ref4.node,\n checked = _ref4.checked;\n if (!filterMultiple) {\n onSelectKeys({\n selectedKeys: checked && node.key ? [node.key] : []\n });\n } else {\n onSelectKeys({\n selectedKeys: keys\n });\n }\n };\n React.useEffect(function () {\n if (!visible) {\n return;\n }\n onSelectKeys({\n selectedKeys: propFilteredKeys || []\n });\n }, [propFilteredKeys]);\n // ====================== Open Keys ======================\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n openKeys = _React$useState4[0],\n setOpenKeys = _React$useState4[1];\n var onOpenChange = function onOpenChange(keys) {\n setOpenKeys(keys);\n };\n // search in tree mode column filter\n var _React$useState5 = React.useState(''),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n searchValue = _React$useState6[0],\n setSearchValue = _React$useState6[1];\n var onSearch = function onSearch(e) {\n var value = e.target.value;\n setSearchValue(value);\n };\n // clear search value after close filter dropdown\n React.useEffect(function () {\n if (!visible) {\n setSearchValue('');\n }\n }, [visible]);\n // ======================= Submit ========================\n var internalTriggerFilter = function internalTriggerFilter(keys) {\n var mergedKeys = keys && keys.length ? keys : null;\n if (mergedKeys === null && (!filterState || !filterState.filteredKeys)) {\n return null;\n }\n if (isEqual(mergedKeys, filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys)) {\n return null;\n }\n triggerFilter({\n column: column,\n key: columnKey,\n filteredKeys: mergedKeys\n });\n };\n var onConfirm = function onConfirm() {\n triggerVisible(false);\n internalTriggerFilter(getFilteredKeysSync());\n };\n var onReset = function onReset() {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n confirm: false,\n closeDropdown: false\n },\n confirm = _ref5.confirm,\n closeDropdown = _ref5.closeDropdown;\n if (confirm) {\n internalTriggerFilter([]);\n }\n if (closeDropdown) {\n triggerVisible(false);\n }\n setSearchValue('');\n if (filterResetToDefaultFilteredValue) {\n setFilteredKeysSync((defaultFilteredValue || []).map(function (key) {\n return String(key);\n }));\n } else {\n setFilteredKeysSync([]);\n }\n };\n var doFilter = function doFilter() {\n var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n closeDropdown: true\n },\n closeDropdown = _ref6.closeDropdown;\n if (closeDropdown) {\n triggerVisible(false);\n }\n internalTriggerFilter(getFilteredKeysSync());\n };\n var onVisibleChange = function onVisibleChange(newVisible) {\n if (newVisible && propFilteredKeys !== undefined) {\n // Sync filteredKeys on appear in controlled mode (propFilteredKeys !== undefiend)\n setFilteredKeysSync(propFilteredKeys || []);\n }\n triggerVisible(newVisible);\n // Default will filter when closed\n if (!newVisible && !column.filterDropdown) {\n onConfirm();\n }\n };\n // ======================== Style ========================\n var dropdownMenuClass = classNames(_defineProperty({}, \"\".concat(dropdownPrefixCls, \"-menu-without-submenu\"), !hasSubMenu(column.filters || [])));\n var onCheckAll = function onCheckAll(e) {\n if (e.target.checked) {\n var allFilterKeys = flattenKeys(column === null || column === void 0 ? void 0 : column.filters).map(function (key) {\n return String(key);\n });\n setFilteredKeysSync(allFilterKeys);\n } else {\n setFilteredKeysSync([]);\n }\n };\n var getTreeData = function getTreeData(_ref7) {\n var filters = _ref7.filters;\n return (filters || []).map(function (filter, index) {\n var key = String(filter.value);\n var item = {\n title: filter.text,\n key: filter.value !== undefined ? key : index\n };\n if (filter.children) {\n item.children = getTreeData({\n filters: filter.children\n });\n }\n return item;\n });\n };\n var getFilterData = function getFilterData(node) {\n var _a;\n return _extends(_extends({}, node), {\n text: node.title,\n value: node.key,\n children: ((_a = node.children) === null || _a === void 0 ? void 0 : _a.map(function (item) {\n return getFilterData(item);\n })) || []\n });\n };\n var dropdownContent;\n if (typeof column.filterDropdown === 'function') {\n dropdownContent = column.filterDropdown({\n prefixCls: \"\".concat(dropdownPrefixCls, \"-custom\"),\n setSelectedKeys: function setSelectedKeys(selectedKeys) {\n return onSelectKeys({\n selectedKeys: selectedKeys\n });\n },\n selectedKeys: getFilteredKeysSync(),\n confirm: doFilter,\n clearFilters: onReset,\n filters: column.filters,\n visible: mergedVisible,\n close: function close() {\n triggerVisible(false);\n }\n });\n } else if (column.filterDropdown) {\n dropdownContent = column.filterDropdown;\n } else {\n var selectedKeys = getFilteredKeysSync() || [];\n var getFilterComponent = function getFilterComponent() {\n if ((column.filters || []).length === 0) {\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n description: locale.filterEmptyText,\n imageStyle: {\n height: 24\n },\n style: {\n margin: 0,\n padding: '16px 0'\n }\n });\n }\n if (filterMode === 'tree') {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-tree\")\n }, filterMultiple ? /*#__PURE__*/React.createElement(Checkbox, {\n checked: selectedKeys.length === flattenKeys(column.filters).length,\n indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(column.filters).length,\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-checkall\"),\n onChange: onCheckAll\n }, locale.filterCheckall) : null, /*#__PURE__*/React.createElement(Tree, {\n checkable: true,\n selectable: false,\n blockNode: true,\n multiple: filterMultiple,\n checkStrictly: !filterMultiple,\n className: \"\".concat(dropdownPrefixCls, \"-menu\"),\n onCheck: onCheck,\n checkedKeys: selectedKeys,\n selectedKeys: selectedKeys,\n showIcon: false,\n treeData: getTreeData({\n filters: column.filters\n }),\n autoExpandParent: true,\n defaultExpandAll: true,\n filterTreeNode: searchValue.trim() ? function (node) {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, getFilterData(node));\n }\n return searchValueMatched(searchValue, node.title);\n } : undefined\n })));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(Menu, {\n selectable: true,\n multiple: filterMultiple,\n prefixCls: \"\".concat(dropdownPrefixCls, \"-menu\"),\n className: dropdownMenuClass,\n onSelect: onSelectKeys,\n onDeselect: onSelectKeys,\n selectedKeys: selectedKeys,\n getPopupContainer: getPopupContainer,\n openKeys: openKeys,\n onOpenChange: onOpenChange,\n items: renderFilterItems({\n filters: column.filters || [],\n filterSearch: filterSearch,\n prefixCls: prefixCls,\n filteredKeys: getFilteredKeysSync(),\n filterMultiple: filterMultiple,\n searchValue: searchValue\n })\n }));\n };\n var getResetDisabled = function getResetDisabled() {\n if (filterResetToDefaultFilteredValue) {\n return isEqual((defaultFilteredValue || []).map(function (key) {\n return String(key);\n }), selectedKeys);\n }\n return selectedKeys.length === 0;\n };\n dropdownContent = /*#__PURE__*/React.createElement(React.Fragment, null, getFilterComponent(), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-dropdown-btns\")\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n size: \"small\",\n disabled: getResetDisabled(),\n onClick: function onClick() {\n return onReset();\n }\n }, locale.filterReset), /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm\n }, locale.filterConfirm)));\n }\n // We should not block customize Menu with additional props\n if (column.filterDropdown) {\n dropdownContent = /*#__PURE__*/React.createElement(OverrideProvider, {\n selectable: undefined\n }, dropdownContent);\n }\n var menu = function menu() {\n return /*#__PURE__*/React.createElement(FilterDropdownMenuWrapper, {\n className: \"\".concat(prefixCls, \"-dropdown\")\n }, dropdownContent);\n };\n var filterIcon;\n if (typeof column.filterIcon === 'function') {\n filterIcon = column.filterIcon(filtered);\n } else if (column.filterIcon) {\n filterIcon = column.filterIcon;\n } else {\n filterIcon = /*#__PURE__*/React.createElement(FilterFilled, null);\n }\n var _React$useContext = React.useContext(ConfigContext),\n direction = _React$useContext.direction;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-column\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(tablePrefixCls, \"-column-title\")\n }, children), /*#__PURE__*/React.createElement(Dropdown, {\n dropdownRender: menu,\n trigger: ['click'],\n open: mergedVisible,\n onOpenChange: onVisibleChange,\n getPopupContainer: getPopupContainer,\n placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight'\n }, /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n tabIndex: -1,\n className: classNames(\"\".concat(prefixCls, \"-trigger\"), {\n active: filtered\n }),\n onClick: function onClick(e) {\n e.stopPropagation();\n }\n }, filterIcon)));\n}\nexport default FilterDropdown;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown from './FilterDropdown';\nfunction collectFilterStates(columns, init, pos) {\n var filterStates = [];\n (columns || []).forEach(function (column, index) {\n var _a;\n var columnPos = getColumnPos(index, pos);\n if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n if ('filteredValue' in column) {\n // Controlled\n var filteredValues = column.filteredValue;\n if (!('filterDropdown' in column)) {\n filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n }\n filterStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n filteredKeys: filteredValues,\n forceFiltered: column.filtered\n });\n } else {\n // Uncontrolled\n filterStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n forceFiltered: column.filtered\n });\n }\n }\n if ('children' in column) {\n filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n }\n });\n return filterStates;\n}\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, triggerFilter, getPopupContainer, locale, pos) {\n return columns.map(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n var _column$filterMultipl = column.filterMultiple,\n filterMultiple = _column$filterMultipl === void 0 ? true : _column$filterMultipl,\n filterMode = column.filterMode,\n filterSearch = column.filterSearch;\n var newColumn = column;\n if (newColumn.filters || newColumn.filterDropdown) {\n var columnKey = getColumnKey(newColumn, columnPos);\n var filterState = filterStates.find(function (_ref) {\n var key = _ref.key;\n return columnKey === key;\n });\n newColumn = _extends(_extends({}, newColumn), {\n title: function title(renderProps) {\n return /*#__PURE__*/React.createElement(FilterDropdown, {\n tablePrefixCls: prefixCls,\n prefixCls: \"\".concat(prefixCls, \"-filter\"),\n dropdownPrefixCls: dropdownPrefixCls,\n column: newColumn,\n columnKey: columnKey,\n filterState: filterState,\n filterMultiple: filterMultiple,\n filterMode: filterMode,\n filterSearch: filterSearch,\n triggerFilter: triggerFilter,\n locale: locale,\n getPopupContainer: getPopupContainer\n }, renderColumnTitle(column.title, renderProps));\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = _extends(_extends({}, newColumn), {\n children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, triggerFilter, getPopupContainer, locale, columnPos)\n });\n }\n return newColumn;\n });\n}\nexport function flattenKeys(filters) {\n var keys = [];\n (filters || []).forEach(function (_ref2) {\n var value = _ref2.value,\n children = _ref2.children;\n keys.push(value);\n if (children) {\n keys = [].concat(_toConsumableArray(keys), _toConsumableArray(flattenKeys(children)));\n }\n });\n return keys;\n}\nfunction generateFilterInfo(filterStates) {\n var currentFilters = {};\n filterStates.forEach(function (_ref3) {\n var key = _ref3.key,\n filteredKeys = _ref3.filteredKeys,\n column = _ref3.column;\n var filters = column.filters,\n filterDropdown = column.filterDropdown;\n if (filterDropdown) {\n currentFilters[key] = filteredKeys || null;\n } else if (Array.isArray(filteredKeys)) {\n var keys = flattenKeys(filters);\n currentFilters[key] = keys.filter(function (originKey) {\n return filteredKeys.includes(String(originKey));\n });\n } else {\n currentFilters[key] = null;\n }\n });\n return currentFilters;\n}\nexport function getFilterData(data, filterStates) {\n return filterStates.reduce(function (currentData, filterState) {\n var _filterState$column = filterState.column,\n onFilter = _filterState$column.onFilter,\n filters = _filterState$column.filters,\n filteredKeys = filterState.filteredKeys;\n if (onFilter && filteredKeys && filteredKeys.length) {\n return currentData.filter(function (record) {\n return filteredKeys.some(function (key) {\n var keys = flattenKeys(filters);\n var keyIndex = keys.findIndex(function (k) {\n return String(k) === String(key);\n });\n var realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n return onFilter(realKey, record);\n });\n });\n }\n return currentData;\n }, data);\n}\nfunction useFilter(_ref4) {\n var prefixCls = _ref4.prefixCls,\n dropdownPrefixCls = _ref4.dropdownPrefixCls,\n mergedColumns = _ref4.mergedColumns,\n onFilterChange = _ref4.onFilterChange,\n getPopupContainer = _ref4.getPopupContainer,\n tableLocale = _ref4.locale;\n var _React$useState = React.useState(function () {\n return collectFilterStates(mergedColumns, true);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n filterStates = _React$useState2[0],\n setFilterStates = _React$useState2[1];\n var mergedFilterStates = React.useMemo(function () {\n var collectedStates = collectFilterStates(mergedColumns, false);\n var filteredKeysIsAllNotControlled = true;\n var filteredKeysIsAllControlled = true;\n collectedStates.forEach(function (_ref5) {\n var filteredKeys = _ref5.filteredKeys;\n if (filteredKeys !== undefined) {\n filteredKeysIsAllNotControlled = false;\n } else {\n filteredKeysIsAllControlled = false;\n }\n });\n // Return if not controlled\n if (filteredKeysIsAllNotControlled) {\n return filterStates;\n }\n process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'Table', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n return collectedStates;\n }, [mergedColumns, filterStates]);\n var filters = React.useMemo(function () {\n return generateFilterInfo(mergedFilterStates);\n }, [mergedFilterStates]);\n var triggerFilter = function triggerFilter(filterState) {\n var newFilterStates = mergedFilterStates.filter(function (_ref6) {\n var key = _ref6.key;\n return key !== filterState.key;\n });\n newFilterStates.push(filterState);\n setFilterStates(newFilterStates);\n onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n };\n var transformColumns = function transformColumns(innerColumns) {\n return injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, triggerFilter, getPopupContainer, tableLocale);\n };\n return [transformColumns, mergedFilterStates, filters];\n}\nexport default useFilter;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nexport default function useLazyKVMap(data, childrenColumnName, getRowKey) {\n var mapCacheRef = React.useRef({});\n function getRecordByKey(key) {\n if (!mapCacheRef.current || mapCacheRef.current.data !== data || mapCacheRef.current.childrenColumnName !== childrenColumnName || mapCacheRef.current.getRowKey !== getRowKey) {\n var kvMap = new Map();\n /* eslint-disable no-inner-declarations */\n function dig(records) {\n records.forEach(function (record, index) {\n var rowKey = getRowKey(record, index);\n kvMap.set(rowKey, record);\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || []);\n }\n });\n }\n /* eslint-enable */\n dig(data);\n mapCacheRef.current = {\n data: data,\n childrenColumnName: childrenColumnName,\n kvMap: kvMap,\n getRowKey: getRowKey\n };\n }\n return mapCacheRef.current.kvMap.get(key);\n }\n return [getRecordByKey];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport { useState } from 'react';\nexport var DEFAULT_PAGE_SIZE = 10;\nexport function getPaginationParam(pagination, mergedPagination) {\n var param = {\n current: mergedPagination.current,\n pageSize: mergedPagination.pageSize\n };\n var paginationObj = pagination && _typeof(pagination) === 'object' ? pagination : {};\n Object.keys(paginationObj).forEach(function (pageProp) {\n var value = mergedPagination[pageProp];\n if (typeof value !== 'function') {\n param[pageProp] = value;\n }\n });\n return param;\n}\nfunction extendsObject() {\n var result = {};\n for (var _len = arguments.length, list = new Array(_len), _key = 0; _key < _len; _key++) {\n list[_key] = arguments[_key];\n }\n list.forEach(function (obj) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (val !== undefined) {\n result[key] = val;\n }\n });\n }\n });\n return result;\n}\nexport default function usePagination(total, pagination, onChange) {\n var _a = pagination && _typeof(pagination) === 'object' ? pagination : {},\n _a$total = _a.total,\n paginationTotal = _a$total === void 0 ? 0 : _a$total,\n paginationObj = __rest(_a, [\"total\"]);\n var _useState = useState(function () {\n return {\n current: 'defaultCurrent' in paginationObj ? paginationObj.defaultCurrent : 1,\n pageSize: 'defaultPageSize' in paginationObj ? paginationObj.defaultPageSize : DEFAULT_PAGE_SIZE\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerPagination = _useState2[0],\n setInnerPagination = _useState2[1];\n // ============ Basic Pagination Config ============\n var mergedPagination = extendsObject(innerPagination, paginationObj, {\n total: paginationTotal > 0 ? paginationTotal : total\n });\n // Reset `current` if data length or pageSize changed\n var maxPage = Math.ceil((paginationTotal || total) / mergedPagination.pageSize);\n if (mergedPagination.current > maxPage) {\n // Prevent a maximum page count of 0\n mergedPagination.current = maxPage || 1;\n }\n var refreshPagination = function refreshPagination(current, pageSize) {\n setInnerPagination({\n current: current !== null && current !== void 0 ? current : 1,\n pageSize: pageSize || mergedPagination.pageSize\n });\n };\n var onInternalChange = function onInternalChange(current, pageSize) {\n var _a;\n if (pagination) {\n (_a = pagination.onChange) === null || _a === void 0 ? void 0 : _a.call(pagination, current, pageSize);\n }\n refreshPagination(current, pageSize);\n onChange(current, pageSize || (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize));\n };\n if (pagination === false) {\n return [{}, function () {}];\n }\n return [_extends(_extends({}, mergedPagination), {\n onChange: onInternalChange\n }), refreshPagination];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useCallback, useMemo, useState } from 'react';\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Radio from '../../radio';\nimport warning from '../../_util/warning';\n// TODO: warning if use ajax!!!\nexport var SELECTION_COLUMN = {};\nexport var SELECTION_ALL = 'SELECT_ALL';\nexport var SELECTION_INVERT = 'SELECT_INVERT';\nexport var SELECTION_NONE = 'SELECT_NONE';\nvar EMPTY_LIST = [];\nfunction flattenData(data, childrenColumnName) {\n var list = [];\n (data || []).forEach(function (record) {\n list.push(record);\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(record[childrenColumnName], childrenColumnName)));\n }\n });\n return list;\n}\nexport default function useSelection(rowSelection, config) {\n var _ref = rowSelection || {},\n preserveSelectedRowKeys = _ref.preserveSelectedRowKeys,\n selectedRowKeys = _ref.selectedRowKeys,\n defaultSelectedRowKeys = _ref.defaultSelectedRowKeys,\n getCheckboxProps = _ref.getCheckboxProps,\n onSelectionChange = _ref.onChange,\n onSelect = _ref.onSelect,\n onSelectAll = _ref.onSelectAll,\n onSelectInvert = _ref.onSelectInvert,\n onSelectNone = _ref.onSelectNone,\n onSelectMultiple = _ref.onSelectMultiple,\n selectionColWidth = _ref.columnWidth,\n selectionType = _ref.type,\n selections = _ref.selections,\n fixed = _ref.fixed,\n customizeRenderCell = _ref.renderCell,\n hideSelectAll = _ref.hideSelectAll,\n _ref$checkStrictly = _ref.checkStrictly,\n checkStrictly = _ref$checkStrictly === void 0 ? true : _ref$checkStrictly;\n var prefixCls = config.prefixCls,\n data = config.data,\n pageData = config.pageData,\n getRecordByKey = config.getRecordByKey,\n getRowKey = config.getRowKey,\n expandType = config.expandType,\n childrenColumnName = config.childrenColumnName,\n tableLocale = config.locale,\n getPopupContainer = config.getPopupContainer;\n // ========================= Keys =========================\n var _useMergedState = useMergedState(selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST, {\n value: selectedRowKeys\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSelectedKeys = _useMergedState2[0],\n setMergedSelectedKeys = _useMergedState2[1];\n // ======================== Caches ========================\n var preserveRecordsRef = React.useRef(new Map());\n var updatePreserveRecordsCache = useCallback(function (keys) {\n if (preserveSelectedRowKeys) {\n var newCache = new Map();\n // Keep key if mark as preserveSelectedRowKeys\n keys.forEach(function (key) {\n var record = getRecordByKey(key);\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n newCache.set(key, record);\n });\n // Refresh to new cache\n preserveRecordsRef.current = newCache;\n }\n }, [getRecordByKey, preserveSelectedRowKeys]);\n // Update cache with selectedKeys\n React.useEffect(function () {\n updatePreserveRecordsCache(mergedSelectedKeys);\n }, [mergedSelectedKeys]);\n var _useMemo = useMemo(function () {\n return checkStrictly ? {\n keyEntities: null\n } : convertDataToEntities(data, {\n externalGetKey: getRowKey,\n childrenPropName: childrenColumnName\n });\n }, [data, getRowKey, checkStrictly, childrenColumnName]),\n keyEntities = _useMemo.keyEntities;\n // Get flatten data\n var flattedData = useMemo(function () {\n return flattenData(pageData, childrenColumnName);\n }, [pageData, childrenColumnName]);\n // Get all checkbox props\n var checkboxPropsMap = useMemo(function () {\n var map = new Map();\n flattedData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n process.env.NODE_ENV !== \"production\" ? warning(!('checked' in checkboxProps || 'defaultChecked' in checkboxProps), 'Table', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.') : void 0;\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n var isCheckboxDisabled = useCallback(function (r) {\n var _a;\n return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n }, [checkboxPropsMap, getRowKey]);\n var _useMemo2 = useMemo(function () {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n var _conductCheck = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled),\n checkedKeys = _conductCheck.checkedKeys,\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]),\n _useMemo3 = _slicedToArray(_useMemo2, 2),\n derivedSelectedKeys = _useMemo3[0],\n derivedHalfSelectedKeys = _useMemo3[1];\n var derivedSelectedKeySet = useMemo(function () {\n var keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n var derivedHalfSelectedKeySet = useMemo(function () {\n return selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys);\n }, [derivedHalfSelectedKeys, selectionType]);\n // Save last selected key to enable range selection\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n lastSelectedKey = _useState2[0],\n setLastSelectedKey = _useState2[1];\n // Reset if rowSelection reset\n React.useEffect(function () {\n if (!rowSelection) {\n setMergedSelectedKeys(EMPTY_LIST);\n }\n }, [!!rowSelection]);\n var setSelectedKeys = useCallback(function (keys, method) {\n var availableKeys;\n var records;\n updatePreserveRecordsCache(keys);\n if (preserveSelectedRowKeys) {\n availableKeys = keys;\n records = keys.map(function (key) {\n return preserveRecordsRef.current.get(key);\n });\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(function (key) {\n var record = getRecordByKey(key);\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n setMergedSelectedKeys(availableKeys);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(availableKeys, records, {\n type: method\n });\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]);\n // ====================== Selections ======================\n // Trigger single `onSelect` event\n var triggerSingleSelection = useCallback(function (key, selected, keys, event) {\n if (onSelect) {\n var rows = keys.map(function (k) {\n return getRecordByKey(k);\n });\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n setSelectedKeys(keys, 'single');\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n var mergedSelections = useMemo(function () {\n if (!selections || hideSelectAll) {\n return null;\n }\n var selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n return selectionList.map(function (selection) {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect: function onSelect() {\n setSelectedKeys(data.map(function (record, index) {\n return getRowKey(record, index);\n }).filter(function (key) {\n var checkProps = checkboxPropsMap.get(key);\n return !(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled) || derivedSelectedKeySet.has(key);\n }), 'all');\n }\n };\n }\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect: function onSelect() {\n var keySet = new Set(derivedSelectedKeySet);\n pageData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n var checkProps = checkboxPropsMap.get(key);\n if (!(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled)) {\n if (keySet.has(key)) {\n keySet[\"delete\"](key);\n } else {\n keySet.add(key);\n }\n }\n });\n var keys = Array.from(keySet);\n if (onSelectInvert) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`onSelectInvert` will be removed in future. Please use `onChange` instead.') : void 0;\n onSelectInvert(keys);\n }\n setSelectedKeys(keys, 'invert');\n }\n };\n }\n if (selection === SELECTION_NONE) {\n return {\n key: 'none',\n text: tableLocale.selectNone,\n onSelect: function onSelect() {\n onSelectNone === null || onSelectNone === void 0 ? void 0 : onSelectNone();\n setSelectedKeys(Array.from(derivedSelectedKeySet).filter(function (key) {\n var checkProps = checkboxPropsMap.get(key);\n return checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled;\n }), 'none');\n }\n };\n }\n return selection;\n }).map(function (selection) {\n return _extends(_extends({}, selection), {\n onSelect: function onSelect() {\n var _a2;\n var _a;\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n (_a = selection.onSelect) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [selection].concat(rest));\n setLastSelectedKey(null);\n }\n });\n });\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]);\n // ======================= Columns ========================\n var transformColumns = useCallback(function (columns) {\n var _a;\n // >>>>>>>>>>> Skip if not exists `rowSelection`\n if (!rowSelection) {\n process.env.NODE_ENV !== \"production\" ? warning(!columns.includes(SELECTION_COLUMN), 'Table', '`rowSelection` is not config but `SELECTION_COLUMN` exists in the `columns`.') : void 0;\n return columns.filter(function (col) {\n return col !== SELECTION_COLUMN;\n });\n }\n // >>>>>>>>>>> Support selection\n var cloneColumns = _toConsumableArray(columns);\n var keySet = new Set(derivedSelectedKeySet);\n // Record key only need check with enabled\n var recordKeys = flattedData.map(getRowKey).filter(function (key) {\n return !checkboxPropsMap.get(key).disabled;\n });\n var checkedCurrentAll = recordKeys.every(function (key) {\n return keySet.has(key);\n });\n var checkedCurrentSome = recordKeys.some(function (key) {\n return keySet.has(key);\n });\n var onSelectAllChange = function onSelectAllChange() {\n var changeKeys = [];\n if (checkedCurrentAll) {\n recordKeys.forEach(function (key) {\n keySet[\"delete\"](key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(function (key) {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n var keys = Array.from(keySet);\n onSelectAll === null || onSelectAll === void 0 ? void 0 : onSelectAll(!checkedCurrentAll, keys.map(function (k) {\n return getRecordByKey(k);\n }), changeKeys.map(function (k) {\n return getRecordByKey(k);\n }));\n setSelectedKeys(keys, 'all');\n setLastSelectedKey(null);\n };\n // ===================== Render =====================\n // Title Cell\n var title;\n if (selectionType !== 'radio') {\n var customizeSelections;\n if (mergedSelections) {\n var menu = {\n getPopupContainer: getPopupContainer,\n items: mergedSelections.map(function (selection, index) {\n var key = selection.key,\n text = selection.text,\n onSelectionClick = selection.onSelect;\n return {\n key: key || index,\n onClick: function onClick() {\n onSelectionClick === null || onSelectionClick === void 0 ? void 0 : onSelectionClick(recordKeys);\n },\n label: text\n };\n })\n };\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection-extra\")\n }, /*#__PURE__*/React.createElement(Dropdown, {\n menu: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n var allDisabledData = flattedData.map(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = checkboxPropsMap.get(key) || {};\n return _extends({\n checked: keySet.has(key)\n }, checkboxProps);\n }).filter(function (_ref2) {\n var disabled = _ref2.disabled;\n return disabled;\n });\n var allDisabled = !!allDisabledData.length && allDisabledData.length === flattedData.length;\n var allDisabledAndChecked = allDisabled && allDisabledData.every(function (_ref3) {\n var checked = _ref3.checked;\n return checked;\n });\n var allDisabledSomeChecked = allDisabled && allDisabledData.some(function (_ref4) {\n var checked = _ref4.checked;\n return checked;\n });\n title = !hideSelectAll && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection\")\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled ? !!flattedData.length && checkedCurrentAll : allDisabledAndChecked,\n indeterminate: !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled,\n \"aria-label\": customizeSelections ? 'Custom selection' : 'Select all',\n skipGroup: true\n }), customizeSelections);\n }\n // Body Cell\n var renderCell;\n if (selectionType === 'radio') {\n renderCell = function renderCell(_, record, index) {\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n return {\n node: /*#__PURE__*/React.createElement(Radio, _extends({}, checkboxPropsMap.get(key), {\n checked: checked,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(event) {\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n }\n })),\n checked: checked\n };\n };\n } else {\n renderCell = function renderCell(_, record, index) {\n var _a;\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n var indeterminate = derivedHalfSelectedKeySet.has(key);\n var checkboxProps = checkboxPropsMap.get(key);\n var mergedIndeterminate;\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n process.env.NODE_ENV !== \"production\" ? warning(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== 'boolean', 'Table', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.') : void 0;\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n }\n // Record checked\n return {\n node: /*#__PURE__*/React.createElement(Checkbox, _extends({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n skipGroup: true,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(_ref5) {\n var nativeEvent = _ref5.nativeEvent;\n var shiftKey = nativeEvent.shiftKey;\n var startIndex = -1;\n var endIndex = -1;\n // Get range of this\n if (shiftKey && checkStrictly) {\n var pointKeys = new Set([lastSelectedKey, key]);\n recordKeys.some(function (recordKey, recordIndex) {\n if (pointKeys.has(recordKey)) {\n if (startIndex === -1) {\n startIndex = recordIndex;\n } else {\n endIndex = recordIndex;\n return true;\n }\n }\n return false;\n });\n }\n if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n // Batch update selections\n var rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n var changedKeys = [];\n if (checked) {\n rangeKeys.forEach(function (recordKey) {\n if (keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet[\"delete\"](recordKey);\n }\n });\n } else {\n rangeKeys.forEach(function (recordKey) {\n if (!keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.add(recordKey);\n }\n });\n }\n var keys = Array.from(keySet);\n onSelectMultiple === null || onSelectMultiple === void 0 ? void 0 : onSelectMultiple(!checked, keys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }), changedKeys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }));\n setSelectedKeys(keys, 'multiple');\n } else {\n // Single record selected\n var originCheckedKeys = derivedSelectedKeys;\n if (checkStrictly) {\n var checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n var result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n var _checkedKeys = result.checkedKeys,\n halfCheckedKeys = result.halfCheckedKeys;\n var nextCheckedKeys = _checkedKeys;\n // If remove, we do it again to correction\n if (checked) {\n var tempKeySet = new Set(_checkedKeys);\n tempKeySet[\"delete\"](key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys: halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n if (checked) {\n setLastSelectedKey(null);\n } else {\n setLastSelectedKey(key);\n }\n }\n })),\n checked: checked\n };\n };\n }\n var renderSelectionCell = function renderSelectionCell(_, record, index) {\n var _renderCell = renderCell(_, record, index),\n node = _renderCell.node,\n checked = _renderCell.checked;\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n return node;\n };\n // Insert selection column if not exist\n if (!cloneColumns.includes(SELECTION_COLUMN)) {\n // Always after expand icon\n if (cloneColumns.findIndex(function (col) {\n var _a;\n return ((_a = col[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN';\n }) === 0) {\n var _cloneColumns = cloneColumns,\n _cloneColumns2 = _toArray(_cloneColumns),\n expandColumn = _cloneColumns2[0],\n restColumns = _cloneColumns2.slice(1);\n cloneColumns = [expandColumn, SELECTION_COLUMN].concat(_toConsumableArray(restColumns));\n } else {\n // Normal insert at first column\n cloneColumns = [SELECTION_COLUMN].concat(_toConsumableArray(cloneColumns));\n }\n }\n // Deduplicate selection column\n var selectionColumnIndex = cloneColumns.indexOf(SELECTION_COLUMN);\n process.env.NODE_ENV !== \"production\" ? warning(cloneColumns.filter(function (col) {\n return col === SELECTION_COLUMN;\n }).length <= 1, 'Table', 'Multiple `SELECTION_COLUMN` exist in `columns`.') : void 0;\n cloneColumns = cloneColumns.filter(function (column, index) {\n return column !== SELECTION_COLUMN || index === selectionColumnIndex;\n });\n // Fixed column logic\n var prevCol = cloneColumns[selectionColumnIndex - 1];\n var nextCol = cloneColumns[selectionColumnIndex + 1];\n var mergedFixed = fixed;\n if (mergedFixed === undefined) {\n if ((nextCol === null || nextCol === void 0 ? void 0 : nextCol.fixed) !== undefined) {\n mergedFixed = nextCol.fixed;\n } else if ((prevCol === null || prevCol === void 0 ? void 0 : prevCol.fixed) !== undefined) {\n mergedFixed = prevCol.fixed;\n }\n }\n if (mergedFixed && prevCol && ((_a = prevCol[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN' && prevCol.fixed === undefined) {\n prevCol.fixed = mergedFixed;\n }\n // Replace with real selection column\n var selectionColumn = _defineProperty({\n fixed: mergedFixed,\n width: selectionColWidth,\n className: \"\".concat(prefixCls, \"-selection-column\"),\n title: rowSelection.columnTitle || title,\n render: renderSelectionCell\n }, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-selection-col\")\n });\n return cloneColumns.map(function (col) {\n return col === SELECTION_COLUMN ? selectionColumn : col;\n });\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, lastSelectedKey, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nvar ASCEND = 'ascend';\nvar DESCEND = 'descend';\nfunction getMultiplePriority(column) {\n if (_typeof(column.sorter) === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n return false;\n}\nfunction getSortFunction(sorter) {\n if (typeof sorter === 'function') {\n return sorter;\n }\n if (sorter && _typeof(sorter) === 'object' && sorter.compare) {\n return sorter.compare;\n }\n return false;\n}\nfunction nextSortDirection(sortDirections, current) {\n if (!current) {\n return sortDirections[0];\n }\n return sortDirections[sortDirections.indexOf(current) + 1];\n}\nfunction collectSortStates(columns, init, pos) {\n var sortStates = [];\n function pushState(column, columnPos) {\n sortStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n }\n (columns || []).forEach(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n}\nfunction injectSorter(prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) {\n return (columns || []).map(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n var newColumn = column;\n if (newColumn.sorter) {\n var sortDirections = newColumn.sortDirections || defaultSortDirections;\n var showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n var columnKey = getColumnKey(newColumn, columnPos);\n var sorterState = sorterStates.find(function (_ref) {\n var key = _ref.key;\n return key === columnKey;\n });\n var sorterOrder = sorterState ? sorterState.sortOrder : null;\n var nextSortOrder = nextSortDirection(sortDirections, sorterOrder);\n var upNode = sortDirections.includes(ASCEND) && /*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter-up\"), {\n active: sorterOrder === ASCEND\n }),\n role: \"presentation\"\n });\n var downNode = sortDirections.includes(DESCEND) && /*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter-down\"), {\n active: sorterOrder === DESCEND\n }),\n role: \"presentation\"\n });\n var _ref2 = tableLocale || {},\n cancelSort = _ref2.cancelSort,\n triggerAsc = _ref2.triggerAsc,\n triggerDesc = _ref2.triggerDesc;\n var sortTip = cancelSort;\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n var tooltipProps = _typeof(showSorterTooltip) === 'object' ? showSorterTooltip : {\n title: sortTip\n };\n newColumn = _extends(_extends({}, newColumn), {\n className: classNames(newColumn.className, _defineProperty({}, \"\".concat(prefixCls, \"-column-sort\"), sorterOrder)),\n title: function title(renderProps) {\n var renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-column-sorters\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-column-title\")\n }, renderColumnTitle(column.title, renderProps)), /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-sorter-full\"), !!(upNode && downNode)))\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-column-sorter-inner\")\n }, upNode, downNode)));\n return showSorterTooltip ? /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps), renderSortTitle) : renderSortTitle;\n },\n onHeaderCell: function onHeaderCell(col) {\n var cell = column.onHeaderCell && column.onHeaderCell(col) || {};\n var originOnClick = cell.onClick;\n var originOKeyDown = cell.onKeyDown;\n cell.onClick = function (event) {\n triggerSorter({\n column: column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n };\n cell.onKeyDown = function (event) {\n if (event.keyCode === KeyCode.ENTER) {\n triggerSorter({\n column: column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n }\n };\n var renderTitle = safeColumnTitle(column.title, {});\n var displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n if (sorterOrder) {\n cell['aria-sort'] = sorterOrder === 'ascend' ? 'ascending' : 'descending';\n } else {\n cell['aria-label'] = displayTitle || '';\n }\n cell.className = classNames(cell.className, \"\".concat(prefixCls, \"-column-has-sorters\"));\n cell.tabIndex = 0;\n if (column.ellipsis) {\n cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n }\n return cell;\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = _extends(_extends({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n return newColumn;\n });\n}\nfunction stateToInfo(sorterStates) {\n var column = sorterStates.column,\n sortOrder = sorterStates.sortOrder;\n return {\n column: column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n}\nfunction generateSorterInfo(sorterStates) {\n var list = sorterStates.filter(function (_ref3) {\n var sortOrder = _ref3.sortOrder;\n return sortOrder;\n }).map(stateToInfo);\n // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n if (list.length === 0 && sorterStates.length) {\n return _extends(_extends({}, stateToInfo(sorterStates[sorterStates.length - 1])), {\n column: undefined\n });\n }\n if (list.length <= 1) {\n return list[0] || {};\n }\n return list;\n}\nexport function getSortData(data, sortStates, childrenColumnName) {\n var innerSorterStates = sortStates.slice().sort(function (a, b) {\n return b.multiplePriority - a.multiplePriority;\n });\n var cloneData = data.slice();\n var runningSorters = innerSorterStates.filter(function (_ref4) {\n var sorter = _ref4.column.sorter,\n sortOrder = _ref4.sortOrder;\n return getSortFunction(sorter) && sortOrder;\n });\n // Skip if no sorter needed\n if (!runningSorters.length) {\n return cloneData;\n }\n return cloneData.sort(function (record1, record2) {\n for (var i = 0; i < runningSorters.length; i += 1) {\n var sorterState = runningSorters[i];\n var sorter = sorterState.column.sorter,\n sortOrder = sorterState.sortOrder;\n var compareFn = getSortFunction(sorter);\n if (compareFn && sortOrder) {\n var compareResult = compareFn(record1, record2, sortOrder);\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n return 0;\n }).map(function (record) {\n var subRecords = record[childrenColumnName];\n if (subRecords) {\n return _extends(_extends({}, record), _defineProperty({}, childrenColumnName, getSortData(subRecords, sortStates, childrenColumnName)));\n }\n return record;\n });\n}\nexport default function useFilterSorter(_ref5) {\n var prefixCls = _ref5.prefixCls,\n mergedColumns = _ref5.mergedColumns,\n onSorterChange = _ref5.onSorterChange,\n sortDirections = _ref5.sortDirections,\n tableLocale = _ref5.tableLocale,\n showSorterTooltip = _ref5.showSorterTooltip;\n var _React$useState = React.useState(collectSortStates(mergedColumns, true)),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n sortStates = _React$useState2[0],\n setSortStates = _React$useState2[1];\n var mergedSorterStates = React.useMemo(function () {\n var validate = true;\n var collectedStates = collectSortStates(mergedColumns, false);\n // Return if not controlled\n if (!collectedStates.length) {\n return sortStates;\n }\n var validateStates = [];\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(_extends(_extends({}, state), {\n sortOrder: null\n }));\n }\n }\n var multipleMode = null;\n collectedStates.forEach(function (state) {\n if (multipleMode === null) {\n patchStates(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]);\n // Get render columns title required props\n var columnTitleSorterProps = React.useMemo(function () {\n var sortColumns = mergedSorterStates.map(function (_ref6) {\n var column = _ref6.column,\n sortOrder = _ref6.sortOrder;\n return {\n column: column,\n order: sortOrder\n };\n });\n return {\n sortColumns: sortColumns,\n // Legacy\n sortColumn: sortColumns[0] && sortColumns[0].column,\n sortOrder: sortColumns[0] && sortColumns[0].order\n };\n }, [mergedSorterStates]);\n function triggerSorter(sortState) {\n var newSorterStates;\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(function (_ref7) {\n var key = _ref7.key;\n return key !== sortState.key;\n })), [sortState]);\n }\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n }\n var transformColumns = function transformColumns(innerColumns) {\n return injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n };\n var getSorters = function getSorters() {\n return generateSorterInfo(mergedSorterStates);\n };\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { renderColumnTitle } from '../util';\nfunction fillTitle(columns, columnTitleProps) {\n return columns.map(function (column) {\n var cloneColumn = _extends({}, column);\n cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);\n if ('children' in cloneColumn) {\n cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n }\n return cloneColumn;\n });\n}\nexport default function useTitleColumns(columnTitleProps) {\n var filledColumns = React.useCallback(function (columns) {\n return fillTitle(columns, columnTitleProps);\n }, [columnTitleProps]);\n return [filledColumns];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport RcTable, { Summary } from 'rc-table';\nimport { convertChildrenToColumns } from \"rc-table/es/hooks/useColumns\";\nimport { INTERNAL_HOOKS } from \"rc-table/es/Table\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider/context';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport SizeContext from '../config-provider/SizeContext';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport defaultLocale from '../locale/en_US';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport scrollTo from '../_util/scrollTo';\nimport warning from '../_util/warning';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport renderExpandIcon from './ExpandIcon';\nimport useFilter, { getFilterData } from './hooks/useFilter';\nimport useLazyKVMap from './hooks/useLazyKVMap';\nimport usePagination, { DEFAULT_PAGE_SIZE, getPaginationParam } from './hooks/usePagination';\nimport useSelection, { SELECTION_ALL, SELECTION_COLUMN, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';\nimport useSorter, { getSortData } from './hooks/useSorter';\nimport useTitleColumns from './hooks/useTitleColumns';\nvar EMPTY_LIST = [];\nfunction InternalTable(props, ref) {\n var _classNames3;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n customizeSize = props.size,\n bordered = props.bordered,\n customizeDropdownPrefixCls = props.dropdownPrefixCls,\n dataSource = props.dataSource,\n pagination = props.pagination,\n rowSelection = props.rowSelection,\n _props$rowKey = props.rowKey,\n rowKey = _props$rowKey === void 0 ? 'key' : _props$rowKey,\n rowClassName = props.rowClassName,\n columns = props.columns,\n children = props.children,\n legacyChildrenColumnName = props.childrenColumnName,\n onChange = props.onChange,\n getPopupContainer = props.getPopupContainer,\n loading = props.loading,\n expandIcon = props.expandIcon,\n expandable = props.expandable,\n expandedRowRender = props.expandedRowRender,\n expandIconColumnIndex = props.expandIconColumnIndex,\n indentSize = props.indentSize,\n scroll = props.scroll,\n sortDirections = props.sortDirections,\n locale = props.locale,\n _props$showSorterTool = props.showSorterTooltip,\n showSorterTooltip = _props$showSorterTool === void 0 ? true : _props$showSorterTool;\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof rowKey === 'function' && rowKey.length > 1), 'Table', '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.') : void 0;\n [['filterDropdownVisible', 'filterDropdownOpen'], ['onFilterDropdownVisibleChange', 'onFilterDropdownOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Table', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version.Please use `\").concat(newName, \"` instead. \")) : void 0;\n });\n var baseColumns = React.useMemo(function () {\n return columns || convertChildrenToColumns(children);\n }, [columns, children]);\n var needResponsive = React.useMemo(function () {\n return baseColumns.some(function (col) {\n return col.responsive;\n });\n }, [baseColumns]);\n var screens = useBreakpoint(needResponsive);\n var mergedColumns = React.useMemo(function () {\n var matched = new Set(Object.keys(screens).filter(function (m) {\n return screens[m];\n }));\n return baseColumns.filter(function (c) {\n return !c.responsive || c.responsive.some(function (r) {\n return matched.has(r);\n });\n });\n }, [baseColumns, screens]);\n var tableProps = omit(props, ['className', 'style', 'columns']);\n var size = React.useContext(SizeContext);\n var _React$useContext = React.useContext(ConfigContext),\n _React$useContext$loc = _React$useContext.locale,\n contextLocale = _React$useContext$loc === void 0 ? defaultLocale : _React$useContext$loc,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction;\n var mergedSize = customizeSize || size;\n var tableLocale = _extends(_extends({}, contextLocale.Table), locale);\n var rawData = dataSource || EMPTY_LIST;\n var _React$useContext2 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext2.getPrefixCls;\n var prefixCls = getPrefixCls('table', customizePrefixCls);\n var dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n var mergedExpandable = _extends({\n childrenColumnName: legacyChildrenColumnName,\n expandIconColumnIndex: expandIconColumnIndex\n }, expandable);\n var _mergedExpandable$chi = mergedExpandable.childrenColumnName,\n childrenColumnName = _mergedExpandable$chi === void 0 ? 'children' : _mergedExpandable$chi;\n var expandType = React.useMemo(function () {\n if (rawData.some(function (item) {\n return item === null || item === void 0 ? void 0 : item[childrenColumnName];\n })) {\n return 'nest';\n }\n if (expandedRowRender || expandable && expandable.expandedRowRender) {\n return 'row';\n }\n return null;\n }, [rawData]);\n var internalRefs = {\n body: React.useRef()\n };\n // ============================ RowKey ============================\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return function (record) {\n return record === null || record === void 0 ? void 0 : record[rowKey];\n };\n }, [rowKey]);\n var _useLazyKVMap = useLazyKVMap(rawData, childrenColumnName, getRowKey),\n _useLazyKVMap2 = _slicedToArray(_useLazyKVMap, 1),\n getRecordByKey = _useLazyKVMap2[0];\n // ============================ Events =============================\n var changeEventInfo = {};\n var triggerOnChange = function triggerOnChange(info, action) {\n var reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var changeInfo = _extends(_extends({}, changeEventInfo), info);\n if (reset) {\n changeEventInfo.resetPagination();\n // Reset event param\n if (changeInfo.pagination.current) {\n changeInfo.pagination.current = 1;\n }\n // Trigger pagination events\n if (pagination && pagination.onChange) {\n pagination.onChange(1, changeInfo.pagination.pageSize);\n }\n }\n if (scroll && scroll.scrollToFirstRowOnChange !== false && internalRefs.body.current) {\n scrollTo(0, {\n getContainer: function getContainer() {\n return internalRefs.body.current;\n }\n });\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {\n currentDataSource: getFilterData(getSortData(rawData, changeInfo.sorterStates, childrenColumnName), changeInfo.filterStates),\n action: action\n });\n };\n /**\n * Controlled state in `columns` is not a good idea that makes too many code (1000+ line?) to read\n * state out and then put it back to title render. Move these code into `hooks` but still too\n * complex. We should provides Table props like `sorter` & `filter` to handle control in next big\n * version.\n */\n // ============================ Sorter =============================\n var onSorterChange = function onSorterChange(sorter, sorterStates) {\n triggerOnChange({\n sorter: sorter,\n sorterStates: sorterStates\n }, 'sort', false);\n };\n var _useSorter = useSorter({\n prefixCls: prefixCls,\n mergedColumns: mergedColumns,\n onSorterChange: onSorterChange,\n sortDirections: sortDirections || ['ascend', 'descend'],\n tableLocale: tableLocale,\n showSorterTooltip: showSorterTooltip\n }),\n _useSorter2 = _slicedToArray(_useSorter, 4),\n transformSorterColumns = _useSorter2[0],\n sortStates = _useSorter2[1],\n sorterTitleProps = _useSorter2[2],\n getSorters = _useSorter2[3];\n var sortedData = React.useMemo(function () {\n return getSortData(rawData, sortStates, childrenColumnName);\n }, [rawData, sortStates]);\n changeEventInfo.sorter = getSorters();\n changeEventInfo.sorterStates = sortStates;\n // ============================ Filter ============================\n var onFilterChange = function onFilterChange(filters, filterStates) {\n triggerOnChange({\n filters: filters,\n filterStates: filterStates\n }, 'filter', true);\n };\n var _useFilter = useFilter({\n prefixCls: prefixCls,\n locale: tableLocale,\n dropdownPrefixCls: dropdownPrefixCls,\n mergedColumns: mergedColumns,\n onFilterChange: onFilterChange,\n getPopupContainer: getPopupContainer\n }),\n _useFilter2 = _slicedToArray(_useFilter, 3),\n transformFilterColumns = _useFilter2[0],\n filterStates = _useFilter2[1],\n filters = _useFilter2[2];\n var mergedData = getFilterData(sortedData, filterStates);\n changeEventInfo.filters = filters;\n changeEventInfo.filterStates = filterStates;\n // ============================ Column ============================\n var columnTitleProps = React.useMemo(function () {\n var mergedFilters = {};\n Object.keys(filters).forEach(function (filterKey) {\n if (filters[filterKey] !== null) {\n mergedFilters[filterKey] = filters[filterKey];\n }\n });\n return _extends(_extends({}, sorterTitleProps), {\n filters: mergedFilters\n });\n }, [sorterTitleProps, filters]);\n var _useTitleColumns = useTitleColumns(columnTitleProps),\n _useTitleColumns2 = _slicedToArray(_useTitleColumns, 1),\n transformTitleColumns = _useTitleColumns2[0];\n // ========================== Pagination ==========================\n var onPaginationChange = function onPaginationChange(current, pageSize) {\n triggerOnChange({\n pagination: _extends(_extends({}, changeEventInfo.pagination), {\n current: current,\n pageSize: pageSize\n })\n }, 'paginate');\n };\n var _usePagination = usePagination(mergedData.length, pagination, onPaginationChange),\n _usePagination2 = _slicedToArray(_usePagination, 2),\n mergedPagination = _usePagination2[0],\n resetPagination = _usePagination2[1];\n changeEventInfo.pagination = pagination === false ? {} : getPaginationParam(pagination, mergedPagination);\n changeEventInfo.resetPagination = resetPagination;\n // ============================= Data =============================\n var pageData = React.useMemo(function () {\n if (pagination === false || !mergedPagination.pageSize) {\n return mergedData;\n }\n var _mergedPagination$cur = mergedPagination.current,\n current = _mergedPagination$cur === void 0 ? 1 : _mergedPagination$cur,\n total = mergedPagination.total,\n _mergedPagination$pag = mergedPagination.pageSize,\n pageSize = _mergedPagination$pag === void 0 ? DEFAULT_PAGE_SIZE : _mergedPagination$pag;\n process.env.NODE_ENV !== \"production\" ? warning(current > 0, 'Table', '`current` should be positive number.') : void 0;\n // Dynamic table data\n if (mergedData.length < total) {\n if (mergedData.length > pageSize) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.') : void 0;\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }\n return mergedData;\n }\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }, [!!pagination, mergedData, mergedPagination && mergedPagination.current, mergedPagination && mergedPagination.pageSize, mergedPagination && mergedPagination.total]);\n // ========================== Selections ==========================\n var _useSelection = useSelection(rowSelection, {\n prefixCls: prefixCls,\n data: mergedData,\n pageData: pageData,\n getRowKey: getRowKey,\n getRecordByKey: getRecordByKey,\n expandType: expandType,\n childrenColumnName: childrenColumnName,\n locale: tableLocale,\n getPopupContainer: getPopupContainer\n }),\n _useSelection2 = _slicedToArray(_useSelection, 2),\n transformSelectionColumns = _useSelection2[0],\n selectedKeySet = _useSelection2[1];\n var internalRowClassName = function internalRowClassName(record, index, indent) {\n var mergedRowClassName;\n if (typeof rowClassName === 'function') {\n mergedRowClassName = classNames(rowClassName(record, index, indent));\n } else {\n mergedRowClassName = classNames(rowClassName);\n }\n return classNames(_defineProperty({}, \"\".concat(prefixCls, \"-row-selected\"), selectedKeySet.has(getRowKey(record, index))), mergedRowClassName);\n };\n // ========================== Expandable ==========================\n // Pass origin render status into `rc-table`, this can be removed when refactor with `rc-table`\n mergedExpandable.__PARENT_RENDER_ICON__ = mergedExpandable.expandIcon;\n // Customize expandable icon\n mergedExpandable.expandIcon = mergedExpandable.expandIcon || expandIcon || renderExpandIcon(tableLocale);\n // Adjust expand icon index, no overwrite expandIconColumnIndex if set.\n if (expandType === 'nest' && mergedExpandable.expandIconColumnIndex === undefined) {\n mergedExpandable.expandIconColumnIndex = rowSelection ? 1 : 0;\n } else if (mergedExpandable.expandIconColumnIndex > 0 && rowSelection) {\n mergedExpandable.expandIconColumnIndex -= 1;\n }\n // Indent size\n if (typeof mergedExpandable.indentSize !== 'number') {\n mergedExpandable.indentSize = typeof indentSize === 'number' ? indentSize : 15;\n }\n // ============================ Render ============================\n var transformColumns = React.useCallback(function (innerColumns) {\n return transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns))));\n }, [transformSorterColumns, transformFilterColumns, transformSelectionColumns]);\n var topPaginationNode;\n var bottomPaginationNode;\n if (pagination !== false && (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total)) {\n var paginationSize;\n if (mergedPagination.size) {\n paginationSize = mergedPagination.size;\n } else {\n paginationSize = mergedSize === 'small' || mergedSize === 'middle' ? 'small' : undefined;\n }\n var renderPagination = function renderPagination(position) {\n return /*#__PURE__*/React.createElement(Pagination, _extends({}, mergedPagination, {\n className: classNames(\"\".concat(prefixCls, \"-pagination \").concat(prefixCls, \"-pagination-\").concat(position), mergedPagination.className),\n size: paginationSize\n }));\n };\n var defaultPosition = direction === 'rtl' ? 'left' : 'right';\n var position = mergedPagination.position;\n if (position !== null && Array.isArray(position)) {\n var topPos = position.find(function (p) {\n return p.includes('top');\n });\n var bottomPos = position.find(function (p) {\n return p.includes('bottom');\n });\n var isDisable = position.every(function (p) {\n return \"\".concat(p) === 'none';\n });\n if (!topPos && !bottomPos && !isDisable) {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n if (topPos) {\n topPaginationNode = renderPagination(topPos.toLowerCase().replace('top', ''));\n }\n if (bottomPos) {\n bottomPaginationNode = renderPagination(bottomPos.toLowerCase().replace('bottom', ''));\n }\n } else {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n }\n // >>>>>>>>> Spinning\n var spinProps;\n if (typeof loading === 'boolean') {\n spinProps = {\n spinning: loading\n };\n } else if (_typeof(loading) === 'object') {\n spinProps = _extends({\n spinning: true\n }, loading);\n }\n var wrapperClassNames = classNames(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty({}, \"\".concat(prefixCls, \"-wrapper-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: wrapperClassNames,\n style: style\n }, /*#__PURE__*/React.createElement(Spin, _extends({\n spinning: false\n }, spinProps), topPaginationNode, /*#__PURE__*/React.createElement(RcTable, _extends({}, tableProps, {\n columns: mergedColumns,\n direction: direction,\n expandable: mergedExpandable,\n prefixCls: prefixCls,\n className: classNames((_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-middle\"), mergedSize === 'middle'), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-small\"), mergedSize === 'small'), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-empty\"), rawData.length === 0), _classNames3)),\n data: pageData,\n rowKey: getRowKey,\n rowClassName: internalRowClassName,\n emptyText: locale && locale.emptyText || (renderEmpty || defaultRenderEmpty)('Table'),\n // Internal\n internalHooks: INTERNAL_HOOKS,\n internalRefs: internalRefs,\n transformColumns: transformColumns\n })), bottomPaginationNode));\n}\nvar ForwardTable = /*#__PURE__*/React.forwardRef(InternalTable);\nvar Table = ForwardTable;\nTable.SELECTION_COLUMN = SELECTION_COLUMN;\nTable.EXPAND_COLUMN = RcTable.EXPAND_COLUMN;\nTable.SELECTION_ALL = SELECTION_ALL;\nTable.SELECTION_INVERT = SELECTION_INVERT;\nTable.SELECTION_NONE = SELECTION_NONE;\nTable.Column = Column;\nTable.ColumnGroup = ColumnGroup;\nTable.Summary = Summary;\nexport default Table;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport EnterOutlined from \"@ant-design/icons/es/icons/EnterOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport TextArea from '../input/TextArea';\nimport { cloneElement } from '../_util/reactNode';\nvar Editable = function Editable(_ref) {\n var prefixCls = _ref.prefixCls,\n ariaLabel = _ref['aria-label'],\n className = _ref.className,\n style = _ref.style,\n direction = _ref.direction,\n maxLength = _ref.maxLength,\n _ref$autoSize = _ref.autoSize,\n autoSize = _ref$autoSize === void 0 ? true : _ref$autoSize,\n value = _ref.value,\n onSave = _ref.onSave,\n onCancel = _ref.onCancel,\n onEnd = _ref.onEnd,\n component = _ref.component,\n _ref$enterIcon = _ref.enterIcon,\n enterIcon = _ref$enterIcon === void 0 ? /*#__PURE__*/React.createElement(EnterOutlined, null) : _ref$enterIcon;\n var ref = React.useRef(null);\n var inComposition = React.useRef(false);\n var lastKeyCode = React.useRef();\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n current = _React$useState2[0],\n setCurrent = _React$useState2[1];\n React.useEffect(function () {\n setCurrent(value);\n }, [value]);\n React.useEffect(function () {\n if (ref.current && ref.current.resizableTextArea) {\n var textArea = ref.current.resizableTextArea.textArea;\n textArea.focus();\n var length = textArea.value.length;\n textArea.setSelectionRange(length, length);\n }\n }, []);\n var onChange = function onChange(_ref2) {\n var target = _ref2.target;\n setCurrent(target.value.replace(/[\\n\\r]/g, ''));\n };\n var onCompositionStart = function onCompositionStart() {\n inComposition.current = true;\n };\n var onCompositionEnd = function onCompositionEnd() {\n inComposition.current = false;\n };\n var onKeyDown = function onKeyDown(_ref3) {\n var keyCode = _ref3.keyCode;\n // We don't record keyCode when IME is using\n if (inComposition.current) return;\n lastKeyCode.current = keyCode;\n };\n var confirmChange = function confirmChange() {\n onSave(current.trim());\n };\n var onKeyUp = function onKeyUp(_ref4) {\n var keyCode = _ref4.keyCode,\n ctrlKey = _ref4.ctrlKey,\n altKey = _ref4.altKey,\n metaKey = _ref4.metaKey,\n shiftKey = _ref4.shiftKey;\n // Check if it's a real key\n if (lastKeyCode.current === keyCode && !inComposition.current && !ctrlKey && !altKey && !metaKey && !shiftKey) {\n if (keyCode === KeyCode.ENTER) {\n confirmChange();\n onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n } else if (keyCode === KeyCode.ESC) {\n onCancel();\n }\n }\n };\n var onBlur = function onBlur() {\n confirmChange();\n };\n var textClassName = component ? \"\".concat(prefixCls, \"-\").concat(component) : '';\n var textAreaClassName = classNames(prefixCls, \"\".concat(prefixCls, \"-edit-content\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className, textClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: textAreaClassName,\n style: style\n }, /*#__PURE__*/React.createElement(TextArea, {\n ref: ref,\n maxLength: maxLength,\n value: current,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBlur: onBlur,\n \"aria-label\": ariaLabel,\n rows: 1,\n autoSize: autoSize\n }), enterIcon !== null ? cloneElement(enterIcon, {\n className: \"\".concat(prefixCls, \"-edit-content-confirm\")\n }) : null);\n};\nexport default Editable;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nexport default function useMergedConfig(propConfig, templateConfig) {\n return React.useMemo(function () {\n var support = !!propConfig;\n return [support, _extends(_extends({}, templateConfig), support && _typeof(propConfig) === 'object' ? propConfig : null)];\n }, [propConfig]);\n}","import * as React from 'react';\n/** Similar with `useEffect` but only trigger after mounted */\nvar useUpdatedEffect = function useUpdatedEffect(callback, conditions) {\n var mountRef = React.useRef(false);\n React.useEffect(function () {\n if (mountRef.current) {\n callback();\n } else {\n mountRef.current = true;\n }\n }, conditions);\n};\nexport default useUpdatedEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nvar Typography = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$component = _a.component,\n Component = _a$component === void 0 ? 'article' : _a$component,\n className = _a.className,\n setContentRef = _a.setContentRef,\n children = _a.children,\n typographyDirection = _a.direction,\n restProps = __rest(_a, [\"prefixCls\", \"component\", \"className\", \"setContentRef\", \"children\", \"direction\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n contextDirection = _React$useContext.direction;\n var direction = typographyDirection !== null && typographyDirection !== void 0 ? typographyDirection : contextDirection;\n var mergedRef = ref;\n if (setContentRef) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography', '`setContentRef` is deprecated. Please use `ref` instead.') : void 0;\n mergedRef = composeRef(ref, setContentRef);\n }\n var prefixCls = getPrefixCls('typography', customizePrefixCls);\n var componentClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return (\n /*#__PURE__*/\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n React.createElement(Component, _extends({\n className: componentClassName,\n ref: mergedRef\n }, restProps), children)\n );\n});\nif (process.env.NODE_ENV !== 'production') {\n Typography.displayName = 'Typography';\n}\n// es default export should use const instead of let\nexport default Typography;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nfunction cuttable(node) {\n var type = _typeof(node);\n return type === 'string' || type === 'number';\n}\nfunction getNodesLen(nodeList) {\n var totalLen = 0;\n nodeList.forEach(function (node) {\n if (cuttable(node)) {\n totalLen += String(node).length;\n } else {\n totalLen += 1;\n }\n });\n return totalLen;\n}\nfunction sliceNodes(nodeList, len) {\n var currLen = 0;\n var currentNodeList = [];\n for (var i = 0; i < nodeList.length; i += 1) {\n // Match to return\n if (currLen === len) {\n return currentNodeList;\n }\n var node = nodeList[i];\n var canCut = cuttable(node);\n var nodeLen = canCut ? String(node).length : 1;\n var nextLen = currLen + nodeLen;\n // Exceed but current not which means we need cut this\n // This will not happen on validate ReactElement\n if (nextLen > len) {\n var restLen = len - currLen;\n currentNodeList.push(String(node).slice(0, restLen));\n return currentNodeList;\n }\n currentNodeList.push(node);\n currLen = nextLen;\n }\n return nodeList;\n}\nvar NONE = 0;\nvar PREPARE = 1;\nvar WALKING = 2;\nvar DONE_WITH_ELLIPSIS = 3;\nvar DONE_WITHOUT_ELLIPSIS = 4;\nvar Ellipsis = function Ellipsis(_ref) {\n var enabledMeasure = _ref.enabledMeasure,\n children = _ref.children,\n text = _ref.text,\n width = _ref.width,\n fontSize = _ref.fontSize,\n rows = _ref.rows,\n onEllipsis = _ref.onEllipsis;\n var _React$useState = React.useState([0, 0, 0]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n _React$useState2$ = _slicedToArray(_React$useState2[0], 3),\n startLen = _React$useState2$[0],\n midLen = _React$useState2$[1],\n endLen = _React$useState2$[2],\n setCutLength = _React$useState2[1];\n var _React$useState3 = React.useState(NONE),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n walkingState = _React$useState4[0],\n setWalkingState = _React$useState4[1];\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n singleRowHeight = _React$useState6[0],\n setSingleRowHeight = _React$useState6[1];\n var singleRowRef = React.useRef(null);\n var midRowRef = React.useRef(null);\n var nodeList = React.useMemo(function () {\n return toArray(text);\n }, [text]);\n var totalLen = React.useMemo(function () {\n return getNodesLen(nodeList);\n }, [nodeList]);\n var mergedChildren = React.useMemo(function () {\n if (!enabledMeasure || walkingState !== DONE_WITH_ELLIPSIS) {\n return children(nodeList, false);\n }\n return children(sliceNodes(nodeList, midLen), midLen < totalLen);\n }, [enabledMeasure, walkingState, children, nodeList, midLen, totalLen]);\n // ======================== Walk ========================\n useIsomorphicLayoutEffect(function () {\n if (enabledMeasure && width && fontSize && totalLen) {\n setWalkingState(PREPARE);\n setCutLength([0, Math.ceil(totalLen / 2), totalLen]);\n }\n }, [enabledMeasure, width, fontSize, text, totalLen, rows]);\n useIsomorphicLayoutEffect(function () {\n var _a;\n if (walkingState === PREPARE) {\n setSingleRowHeight(((_a = singleRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0);\n }\n }, [walkingState]);\n useIsomorphicLayoutEffect(function () {\n var _a, _b;\n if (singleRowHeight) {\n if (walkingState === PREPARE) {\n // Ignore if position is enough\n var midHeight = ((_a = midRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;\n var maxHeight = rows * singleRowHeight;\n if (midHeight <= maxHeight) {\n setWalkingState(DONE_WITHOUT_ELLIPSIS);\n onEllipsis(false);\n } else {\n setWalkingState(WALKING);\n }\n } else if (walkingState === WALKING) {\n if (startLen !== endLen) {\n var _midHeight = ((_b = midRowRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;\n var _maxHeight = rows * singleRowHeight;\n var nextStartLen = startLen;\n var nextEndLen = endLen;\n // We reach the last round\n if (startLen === endLen - 1) {\n nextEndLen = startLen;\n } else if (_midHeight <= _maxHeight) {\n nextStartLen = midLen;\n } else {\n nextEndLen = midLen;\n }\n var nextMidLen = Math.ceil((nextStartLen + nextEndLen) / 2);\n setCutLength([nextStartLen, nextMidLen, nextEndLen]);\n } else {\n setWalkingState(DONE_WITH_ELLIPSIS);\n onEllipsis(true);\n }\n }\n }\n }, [walkingState, startLen, endLen, rows, singleRowHeight]);\n // ======================= Render =======================\n var measureStyle = {\n width: width,\n whiteSpace: 'normal',\n margin: 0,\n padding: 0\n };\n var renderMeasure = function renderMeasure(content, ref, style) {\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n ref: ref,\n style: _extends({\n position: 'fixed',\n display: 'block',\n left: 0,\n top: 0,\n zIndex: -9999,\n visibility: 'hidden',\n pointerEvents: 'none',\n fontSize: Math.floor(fontSize / 2) * 2\n }, style)\n }, content);\n };\n var renderMeasureSlice = function renderMeasureSlice(len, ref) {\n var sliceNodeList = sliceNodes(nodeList, len);\n return renderMeasure(children(sliceNodeList, true), ref, measureStyle);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, mergedChildren, enabledMeasure && walkingState !== DONE_WITH_ELLIPSIS && walkingState !== DONE_WITHOUT_ELLIPSIS && /*#__PURE__*/React.createElement(React.Fragment, null, renderMeasure('lg', singleRowRef, {\n wordBreak: 'keep-all',\n whiteSpace: 'nowrap'\n }), walkingState === PREPARE ? renderMeasure(children(nodeList, false), midRowRef, measureStyle) : renderMeasureSlice(midLen, midRowRef)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ellipsis.displayName = 'Ellipsis';\n}\nexport default Ellipsis;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tooltip from '../../tooltip';\nvar EllipsisTooltip = function EllipsisTooltip(_ref) {\n var enabledEllipsis = _ref.enabledEllipsis,\n isEllipsis = _ref.isEllipsis,\n children = _ref.children,\n tooltipProps = _ref.tooltipProps;\n if (!(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.title) || !enabledEllipsis) {\n return children;\n }\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n open: isEllipsis ? undefined : false\n }, tooltipProps), children);\n};\nif (process.env.NODE_ENV !== 'production') {\n EllipsisTooltip.displayName = 'EllipsisTooltip';\n}\nexport default EllipsisTooltip;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CopyOutlined from \"@ant-design/icons/es/icons/CopyOutlined\";\nimport EditOutlined from \"@ant-design/icons/es/icons/EditOutlined\";\nimport classNames from 'classnames';\nimport copy from 'copy-to-clipboard';\nimport ResizeObserver from 'rc-resize-observer';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport { useLocaleReceiver } from '../../locale-provider/LocaleReceiver';\nimport TransButton from '../../_util/transButton';\nimport { isStyleSupport } from '../../_util/styleChecker';\nimport Tooltip from '../../tooltip';\nimport Editable from '../Editable';\nimport useMergedConfig from '../hooks/useMergedConfig';\nimport useUpdatedEffect from '../hooks/useUpdatedEffect';\nimport Typography from '../Typography';\nimport Ellipsis from './Ellipsis';\nimport EllipsisTooltip from './EllipsisTooltip';\nfunction wrapperDecorations(_ref, content) {\n var mark = _ref.mark,\n code = _ref.code,\n underline = _ref.underline,\n del = _ref[\"delete\"],\n strong = _ref.strong,\n keyboard = _ref.keyboard,\n italic = _ref.italic;\n var currentContent = content;\n function wrap(needed, tag) {\n if (!needed) return;\n currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n }\n wrap(strong, 'strong');\n wrap(underline, 'u');\n wrap(del, 'del');\n wrap(code, 'code');\n wrap(mark, 'mark');\n wrap(keyboard, 'kbd');\n wrap(italic, 'i');\n return currentContent;\n}\nfunction getNode(dom, defaultNode, needDom) {\n if (dom === true || dom === undefined) {\n return defaultNode;\n }\n return dom || needDom && defaultNode;\n}\nfunction toList(val) {\n if (val === false) {\n return [false, false];\n }\n return Array.isArray(val) ? val : [val];\n}\nvar ELLIPSIS_STR = '...';\nvar Base = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _a, _b, _c;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n type = props.type,\n disabled = props.disabled,\n children = props.children,\n ellipsis = props.ellipsis,\n editable = props.editable,\n copyable = props.copyable,\n component = props.component,\n title = props.title,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"type\", \"disabled\", \"children\", \"ellipsis\", \"editable\", \"copyable\", \"component\", \"title\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var textLocale = useLocaleReceiver('Text')[0]; // Force TS get this\n var typographyRef = React.useRef(null);\n var editIconRef = React.useRef(null);\n // ============================ MISC ============================\n var prefixCls = getPrefixCls('typography', customizePrefixCls);\n var textProps = omit(restProps, ['mark', 'code', 'delete', 'underline', 'strong', 'keyboard', 'italic']);\n // ========================== Editable ==========================\n var _useMergedConfig = useMergedConfig(editable),\n _useMergedConfig2 = _slicedToArray(_useMergedConfig, 2),\n enableEdit = _useMergedConfig2[0],\n editConfig = _useMergedConfig2[1];\n var _useMergedState = useMergedState(false, {\n value: editConfig.editing\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n editing = _useMergedState2[0],\n setEditing = _useMergedState2[1];\n var _editConfig$triggerTy = editConfig.triggerType,\n triggerType = _editConfig$triggerTy === void 0 ? ['icon'] : _editConfig$triggerTy;\n var triggerEdit = function triggerEdit(edit) {\n var _a;\n if (edit) {\n (_a = editConfig.onStart) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n }\n setEditing(edit);\n };\n // Focus edit icon when back\n useUpdatedEffect(function () {\n var _a;\n if (!editing) {\n (_a = editIconRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [editing]);\n var onEditClick = function onEditClick(e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n triggerEdit(true);\n };\n var onEditChange = function onEditChange(value) {\n var _a;\n (_a = editConfig.onChange) === null || _a === void 0 ? void 0 : _a.call(editConfig, value);\n triggerEdit(false);\n };\n var onEditCancel = function onEditCancel() {\n var _a;\n (_a = editConfig.onCancel) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n triggerEdit(false);\n };\n // ========================== Copyable ==========================\n var _useMergedConfig3 = useMergedConfig(copyable),\n _useMergedConfig4 = _slicedToArray(_useMergedConfig3, 2),\n enableCopy = _useMergedConfig4[0],\n copyConfig = _useMergedConfig4[1];\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n copied = _React$useState2[0],\n setCopied = _React$useState2[1];\n var copyIdRef = React.useRef();\n var copyOptions = {};\n if (copyConfig.format) {\n copyOptions.format = copyConfig.format;\n }\n var cleanCopyId = function cleanCopyId() {\n window.clearTimeout(copyIdRef.current);\n };\n var onCopyClick = function onCopyClick(e) {\n var _a;\n e === null || e === void 0 ? void 0 : e.preventDefault();\n e === null || e === void 0 ? void 0 : e.stopPropagation();\n copy(copyConfig.text || String(children) || '', copyOptions);\n setCopied(true);\n // Trigger tips update\n cleanCopyId();\n copyIdRef.current = window.setTimeout(function () {\n setCopied(false);\n }, 3000);\n (_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);\n };\n React.useEffect(function () {\n return cleanCopyId;\n }, []);\n // ========================== Ellipsis ==========================\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n isLineClampSupport = _React$useState4[0],\n setIsLineClampSupport = _React$useState4[1];\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n isTextOverflowSupport = _React$useState6[0],\n setIsTextOverflowSupport = _React$useState6[1];\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n expanded = _React$useState8[0],\n setExpanded = _React$useState8[1];\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n isJsEllipsis = _React$useState10[0],\n setIsJsEllipsis = _React$useState10[1];\n var _React$useState11 = React.useState(false),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n isNativeEllipsis = _React$useState12[0],\n setIsNativeEllipsis = _React$useState12[1];\n var _React$useState13 = React.useState(true),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n isNativeVisible = _React$useState14[0],\n setIsNativeVisible = _React$useState14[1];\n var _useMergedConfig5 = useMergedConfig(ellipsis, {\n expandable: false\n }),\n _useMergedConfig6 = _slicedToArray(_useMergedConfig5, 2),\n enableEllipsis = _useMergedConfig6[0],\n ellipsisConfig = _useMergedConfig6[1];\n var mergedEnableEllipsis = enableEllipsis && !expanded;\n // Shared prop to reduce bundle size\n var _ellipsisConfig$rows = ellipsisConfig.rows,\n rows = _ellipsisConfig$rows === void 0 ? 1 : _ellipsisConfig$rows;\n var needMeasureEllipsis = React.useMemo(function () {\n return (\n // Disable ellipsis\n !mergedEnableEllipsis ||\n // Provide suffix\n ellipsisConfig.suffix !== undefined || ellipsisConfig.onEllipsis ||\n // Can't use css ellipsis since we need to provide the place for button\n ellipsisConfig.expandable || enableEdit || enableCopy\n );\n }, [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);\n useIsomorphicLayoutEffect(function () {\n if (enableEllipsis && !needMeasureEllipsis) {\n setIsLineClampSupport(isStyleSupport('webkitLineClamp'));\n setIsTextOverflowSupport(isStyleSupport('textOverflow'));\n }\n }, [needMeasureEllipsis, enableEllipsis]);\n var cssEllipsis = React.useMemo(function () {\n if (needMeasureEllipsis) {\n return false;\n }\n if (rows === 1) {\n return isTextOverflowSupport;\n }\n return isLineClampSupport;\n }, [needMeasureEllipsis, isTextOverflowSupport, isLineClampSupport]);\n var isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? isNativeEllipsis : isJsEllipsis);\n var cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;\n var cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;\n // >>>>> Expand\n var onExpandClick = function onExpandClick(e) {\n var _a;\n setExpanded(true);\n (_a = ellipsisConfig.onExpand) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, e);\n };\n var _React$useState15 = React.useState(0),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n ellipsisWidth = _React$useState16[0],\n setEllipsisWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n ellipsisFontSize = _React$useState18[0],\n setEllipsisFontSize = _React$useState18[1];\n var onResize = function onResize(_ref2, element) {\n var offsetWidth = _ref2.offsetWidth;\n var _a;\n setEllipsisWidth(offsetWidth);\n setEllipsisFontSize(parseInt((_a = window.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(window, element).fontSize, 10) || 0);\n };\n // >>>>> JS Ellipsis\n var onJsEllipsis = function onJsEllipsis(jsEllipsis) {\n var _a;\n setIsJsEllipsis(jsEllipsis);\n // Trigger if changed\n if (isJsEllipsis !== jsEllipsis) {\n (_a = ellipsisConfig.onEllipsis) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, jsEllipsis);\n }\n };\n // >>>>> Native ellipsis\n React.useEffect(function () {\n var textEle = typographyRef.current;\n if (enableEllipsis && cssEllipsis && textEle) {\n var currentEllipsis = cssLineClamp ? textEle.offsetHeight < textEle.scrollHeight : textEle.offsetWidth < textEle.scrollWidth;\n if (isNativeEllipsis !== currentEllipsis) {\n setIsNativeEllipsis(currentEllipsis);\n }\n }\n }, [enableEllipsis, cssEllipsis, children, cssLineClamp, isNativeVisible]);\n // https://github.com/ant-design/ant-design/issues/36786\n // Use IntersectionObserver to check if element is invisible\n React.useEffect(function () {\n var textEle = typographyRef.current;\n if (typeof IntersectionObserver === 'undefined' || !textEle || !cssEllipsis || !mergedEnableEllipsis) {\n return;\n }\n /* eslint-disable-next-line compat/compat */\n var observer = new IntersectionObserver(function () {\n setIsNativeVisible(!!textEle.offsetParent);\n });\n observer.observe(textEle);\n return function () {\n observer.disconnect();\n };\n }, [cssEllipsis, mergedEnableEllipsis]);\n // ========================== Tooltip ===========================\n var tooltipProps = {};\n if (ellipsisConfig.tooltip === true) {\n tooltipProps = {\n title: (_a = editConfig.text) !== null && _a !== void 0 ? _a : children\n };\n } else if ( /*#__PURE__*/React.isValidElement(ellipsisConfig.tooltip)) {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n } else if (_typeof(ellipsisConfig.tooltip) === 'object') {\n tooltipProps = _extends({\n title: (_b = editConfig.text) !== null && _b !== void 0 ? _b : children\n }, ellipsisConfig.tooltip);\n } else {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n }\n var topAriaLabel = React.useMemo(function () {\n var isValid = function isValid(val) {\n return ['string', 'number'].includes(_typeof(val));\n };\n if (!enableEllipsis || cssEllipsis) {\n return undefined;\n }\n if (isValid(editConfig.text)) {\n return editConfig.text;\n }\n if (isValid(children)) {\n return children;\n }\n if (isValid(title)) {\n return title;\n }\n if (isValid(tooltipProps.title)) {\n return tooltipProps.title;\n }\n return undefined;\n }, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis]);\n // =========================== Render ===========================\n // >>>>>>>>>>> Editing input\n if (editing) {\n return /*#__PURE__*/React.createElement(Editable, {\n value: (_c = editConfig.text) !== null && _c !== void 0 ? _c : typeof children === 'string' ? children : '',\n onSave: onEditChange,\n onCancel: onEditCancel,\n onEnd: editConfig.onEnd,\n prefixCls: prefixCls,\n className: className,\n style: style,\n direction: direction,\n component: component,\n maxLength: editConfig.maxLength,\n autoSize: editConfig.autoSize,\n enterIcon: editConfig.enterIcon\n });\n }\n // >>>>>>>>>>> Typography\n // Expand\n var renderExpand = function renderExpand() {\n var expandable = ellipsisConfig.expandable,\n symbol = ellipsisConfig.symbol;\n if (!expandable) return null;\n var expandContent;\n if (symbol) {\n expandContent = symbol;\n } else {\n expandContent = textLocale.expand;\n }\n return /*#__PURE__*/React.createElement(\"a\", {\n key: \"expand\",\n className: \"\".concat(prefixCls, \"-expand\"),\n onClick: onExpandClick,\n \"aria-label\": textLocale.expand\n }, expandContent);\n };\n // Edit\n var renderEdit = function renderEdit() {\n if (!enableEdit) return;\n var icon = editConfig.icon,\n tooltip = editConfig.tooltip;\n var editTitle = toArray(tooltip)[0] || textLocale.edit;\n var ariaLabel = typeof editTitle === 'string' ? editTitle : '';\n return triggerType.includes('icon') ? /*#__PURE__*/React.createElement(Tooltip, {\n key: \"edit\",\n title: tooltip === false ? '' : editTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n ref: editIconRef,\n className: \"\".concat(prefixCls, \"-edit\"),\n onClick: onEditClick,\n \"aria-label\": ariaLabel\n }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n role: \"button\"\n }))) : null;\n };\n // Copy\n var renderCopy = function renderCopy() {\n if (!enableCopy) return;\n var tooltips = copyConfig.tooltips,\n icon = copyConfig.icon;\n var tooltipNodes = toList(tooltips);\n var iconNodes = toList(icon);\n var copyTitle = copied ? getNode(tooltipNodes[1], textLocale.copied) : getNode(tooltipNodes[0], textLocale.copy);\n var systemStr = copied ? textLocale.copied : textLocale.copy;\n var ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;\n return /*#__PURE__*/React.createElement(Tooltip, {\n key: \"copy\",\n title: copyTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n className: classNames(\"\".concat(prefixCls, \"-copy\"), copied && \"\".concat(prefixCls, \"-copy-success\")),\n onClick: onCopyClick,\n \"aria-label\": ariaLabel\n }, copied ? getNode(iconNodes[1], /*#__PURE__*/React.createElement(CheckOutlined, null), true) : getNode(iconNodes[0], /*#__PURE__*/React.createElement(CopyOutlined, null), true)));\n };\n var renderOperations = function renderOperations(renderExpanded) {\n return [renderExpanded && renderExpand(), renderEdit(), renderCopy()];\n };\n var renderEllipsis = function renderEllipsis(needEllipsis) {\n return [needEllipsis && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n key: \"ellipsis\"\n }, ELLIPSIS_STR), ellipsisConfig.suffix, renderOperations(needEllipsis)];\n };\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize,\n disabled: !mergedEnableEllipsis || cssEllipsis\n }, function (resizeRef) {\n var _classNames;\n return /*#__PURE__*/React.createElement(EllipsisTooltip, {\n tooltipProps: tooltipProps,\n enabledEllipsis: mergedEnableEllipsis,\n isEllipsis: isMergedEllipsis\n }, /*#__PURE__*/React.createElement(Typography, _extends({\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis\"), enableEllipsis), _defineProperty(_classNames, \"\".concat(prefixCls, \"-single-line\"), mergedEnableEllipsis && rows === 1), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis-single-line\"), cssTextOverflow), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis-multiple-line\"), cssLineClamp), _classNames), className),\n prefixCls: customizePrefixCls,\n style: _extends(_extends({}, style), {\n WebkitLineClamp: cssLineClamp ? rows : undefined\n }),\n component: component,\n ref: composeRef(resizeRef, typographyRef, ref),\n direction: direction,\n onClick: triggerType.includes('text') ? onEditClick : undefined,\n \"aria-label\": topAriaLabel === null || topAriaLabel === void 0 ? void 0 : topAriaLabel.toString(),\n title: title\n }, textProps), /*#__PURE__*/React.createElement(Ellipsis, {\n enabledMeasure: mergedEnableEllipsis && !cssEllipsis,\n text: children,\n rows: rows,\n width: ellipsisWidth,\n fontSize: ellipsisFontSize,\n onEllipsis: onJsEllipsis\n }, function (node, needEllipsis) {\n var renderNode = node;\n if (node.length && needEllipsis && topAriaLabel) {\n renderNode = /*#__PURE__*/React.createElement(\"span\", {\n key: \"show-content\",\n \"aria-hidden\": true\n }, renderNode);\n }\n var wrappedContext = wrapperDecorations(props, /*#__PURE__*/React.createElement(React.Fragment, null, renderNode, renderEllipsis(needEllipsis)));\n return wrappedContext;\n })));\n });\n});\nexport default Base;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nvar Link = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var ellipsis = _a.ellipsis,\n rel = _a.rel,\n restProps = __rest(_a, [\"ellipsis\", \"rel\"]);\n process.env.NODE_ENV !== \"production\" ? warning(_typeof(ellipsis) !== 'object', 'Typography.Link', '`ellipsis` only supports boolean value.') : void 0;\n var mergedProps = _extends(_extends({}, restProps), {\n rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel\n });\n // @ts-expect-error: https://github.com/ant-design/ant-design/issues/26622\n delete mergedProps.navigate;\n return /*#__PURE__*/React.createElement(Base, _extends({}, mergedProps, {\n ref: ref,\n ellipsis: !!ellipsis,\n component: \"a\"\n }));\n});\nexport default Link;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Base from './Base';\nvar Paragraph = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Base, _extends({\n ref: ref\n }, props, {\n component: \"div\"\n }));\n});\nexport default Paragraph;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nvar Text = function Text(_a, ref) {\n var ellipsis = _a.ellipsis,\n restProps = __rest(_a, [\"ellipsis\"]);\n var mergedEllipsis = React.useMemo(function () {\n if (ellipsis && _typeof(ellipsis) === 'object') {\n return omit(ellipsis, ['expandable', 'rows']);\n }\n return ellipsis;\n }, [ellipsis]);\n process.env.NODE_ENV !== \"production\" ? warning(_typeof(ellipsis) !== 'object' || !ellipsis || !('expandable' in ellipsis) && !('rows' in ellipsis), 'Typography.Text', '`ellipsis` do not support `expandable` or `rows` props.') : void 0;\n return /*#__PURE__*/React.createElement(Base, _extends({\n ref: ref\n }, restProps, {\n ellipsis: mergedEllipsis,\n component: \"span\"\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(Text);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\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};\nimport * as React from 'react';\nimport { tupleNum } from '../_util/type';\nimport warning from '../_util/warning';\nimport Base from './Base';\nvar TITLE_ELE_LIST = tupleNum(1, 2, 3, 4, 5);\nvar Title = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$level = props.level,\n level = _props$level === void 0 ? 1 : _props$level,\n restProps = __rest(props, [\"level\"]);\n var component;\n if (TITLE_ELE_LIST.includes(level)) {\n component = \"h\".concat(level);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography.Title', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version.') : void 0;\n component = 'h1';\n }\n return /*#__PURE__*/React.createElement(Base, _extends({\n ref: ref\n }, restProps, {\n component: component\n }));\n});\nexport default Title;","import Link from './Link';\nimport Paragraph from './Paragraph';\nimport Text from './Text';\nimport Title from './Title';\nimport OriginTypography from './Typography';\nvar Typography = OriginTypography;\nTypography.Text = Text;\nTypography.Link = Link;\nTypography.Title = Title;\nTypography.Paragraph = Paragraph;\nexport default Typography;","export default {\n // Options.jsx\n items_per_page: '/ стр.',\n jump_to: 'Перейти',\n jump_to_confirm: 'подтвердить',\n page: 'Страница',\n // Pagination.jsx\n prev_page: 'Назад',\n next_page: 'Вперед',\n prev_5: 'Предыдущие 5',\n next_5: 'Следующие 5',\n prev_3: 'Предыдущие 3',\n next_3: 'Следующие 3',\n page_size: 'размер страницы'\n};","var locale = {\n locale: 'ru_RU',\n today: 'Сегодня',\n now: 'Сейчас',\n backToToday: 'Текущая дата',\n ok: 'ОК',\n clear: 'Очистить',\n month: 'Месяц',\n year: 'Год',\n timeSelect: 'Выбрать время',\n dateSelect: 'Выбрать дату',\n monthSelect: 'Выбрать месяц',\n yearSelect: 'Выбрать год',\n decadeSelect: 'Выбрать десятилетие',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Предыдущий месяц (PageUp)',\n nextMonth: 'Следующий месяц (PageDown)',\n previousYear: 'Предыдущий год (Control + left)',\n nextYear: 'Следующий год (Control + right)',\n previousDecade: 'Предыдущее десятилетие',\n nextDecade: 'Следущее десятилетие',\n previousCentury: 'Предыдущий век',\n nextCentury: 'Следующий век'\n};\nexport default locale;","var locale = {\n placeholder: 'Выберите время',\n rangePlaceholder: ['Время начала', 'Время окончания']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/** Created by Andrey Gayvoronsky on 13/04/16. */\nimport CalendarLocale from \"rc-picker/es/locale/ru_RU\";\nimport TimePickerLocale from '../../time-picker/locale/ru_RU';\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Выберите дату',\n yearPlaceholder: 'Выберите год',\n quarterPlaceholder: 'Выберите квартал',\n monthPlaceholder: 'Выберите месяц',\n weekPlaceholder: 'Выберите неделю',\n rangePlaceholder: ['Начальная дата', 'Конечная дата'],\n rangeYearPlaceholder: ['Начальный год', 'Год окончания'],\n rangeMonthPlaceholder: ['Начальный месяц', 'Конечный месяц'],\n rangeWeekPlaceholder: ['Начальная неделя', 'Конечная неделя']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/ru_RU\";\nimport Calendar from '../calendar/locale/ru_RU';\nimport DatePicker from '../date-picker/locale/ru_RU';\nimport TimePicker from '../time-picker/locale/ru_RU';\nvar typeTemplate = '${label} не является типом ${type}';\nvar localeValues = {\n locale: 'ru',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Пожалуйста выберите'\n },\n Table: {\n filterTitle: 'Фильтр',\n filterConfirm: 'OK',\n filterReset: 'Сбросить',\n filterEmptyText: 'Без фильтров',\n filterCheckall: 'Выбрать все элементы',\n emptyText: 'Нет данных',\n selectAll: 'Выбрать всё',\n selectInvert: 'Инвертировать выбор',\n selectNone: 'Очистить все данные',\n selectionAll: 'Выбрать все данные',\n sortTitle: 'Сортировка',\n expand: 'Развернуть строку',\n collapse: 'Свернуть строку',\n triggerDesc: 'Нажмите для сортировки по убыванию',\n triggerAsc: 'Нажмите для сортировки по возрастанию',\n cancelSort: 'Нажмите, чтобы отменить сортировку'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Отмена',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Отмена'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Поиск',\n itemUnit: 'элем.',\n itemsUnit: 'элем.',\n remove: 'Удалить',\n selectAll: 'Выбрать все данные',\n selectCurrent: 'Выбрать текущую страницу',\n selectInvert: 'Инвертировать выбор',\n removeAll: 'Удалить все данные',\n removeCurrent: 'Удалить текущую страницу'\n },\n Upload: {\n uploading: 'Загрузка...',\n removeFile: 'Удалить файл',\n uploadError: 'При загрузке произошла ошибка',\n previewFile: 'Предпросмотр файла',\n downloadFile: 'Загрузить файл'\n },\n Empty: {\n description: 'Нет данных'\n },\n Icon: {\n icon: 'иконка'\n },\n Text: {\n edit: 'Редактировать',\n copy: 'Копировать',\n copied: 'Скопировано',\n expand: 'Раскрыть'\n },\n PageHeader: {\n back: 'Назад'\n },\n Form: {\n defaultValidateMessages: {\n \"default\": 'Ошибка проверки поля ${label}',\n required: 'Пожалуйста, введите ${label}',\n \"enum\": '${label} должен быть одним из [${enum}]',\n whitespace: '${label} не может быть пустым',\n date: {\n format: '${label} не правильный формат даты',\n parse: '${label} не может быть преобразовано в дату',\n invalid: '${label} не является корректной датой'\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: '${label} должна быть ${len} символов',\n min: '${label} должна быть больше или равна ${min} символов',\n max: '${label} должна быть меньше или равна ${max} символов',\n range: 'Длина ${label} должна быть между ${min}-${max} символами'\n },\n number: {\n len: '${label} должна быть равна ${len}',\n min: '${label} должна быть больше или равна ${min}',\n max: '${label} должна быть меньше или равна ${max}'\n },\n array: {\n len: 'Количество элементов ${label} должно быть равно ${len}',\n min: 'Количество элементов ${label} должно быть больше или равно ${min}',\n max: 'Количество элементов ${label} должно быть меньше или равно ${max}',\n range: 'Количество элементов ${label} должно быть между ${min} и ${max}'\n },\n pattern: {\n mismatch: '${label} не соответствует шаблону ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Предпросмотр'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '/ halaman',\n jump_to: 'Menuju',\n jump_to_confirm: 'konfirmasi',\n page: 'Halaman',\n // Pagination.jsx\n prev_page: 'Halaman Sebelumnya',\n next_page: 'Halaman Berikutnya',\n prev_5: '5 Halaman Sebelumnya',\n next_5: '5 Halaman Berikutnya',\n prev_3: '3 Halaman Sebelumnya',\n next_3: '3 Halaman Berikutnya',\n page_size: 'ukuran halaman'\n};","var locale = {\n locale: 'id_ID',\n today: 'Hari ini',\n now: 'Sekarang',\n backToToday: 'Kembali ke hari ini',\n ok: 'Baik',\n clear: 'Bersih',\n month: 'Bulan',\n year: 'Tahun',\n timeSelect: 'pilih waktu',\n dateSelect: 'pilih tanggal',\n weekSelect: 'Pilih satu minggu',\n monthSelect: 'Pilih satu bulan',\n yearSelect: 'Pilih satu tahun',\n decadeSelect: 'Pilih satu dekade',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Bulan sebelumnya (PageUp)',\n nextMonth: 'Bulan selanjutnya (PageDown)',\n previousYear: 'Tahun lalu (Control + kiri)',\n nextYear: 'Tahun selanjutnya (Kontrol + kanan)',\n previousDecade: 'Dekade terakhir',\n nextDecade: 'Dekade berikutnya',\n previousCentury: 'Abad terakhir',\n nextCentury: 'Abad berikutnya'\n};\nexport default locale;","var locale = {\n placeholder: 'Pilih waktu'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/id_ID\";\nimport TimePickerLocale from '../../time-picker/locale/id_ID';\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Pilih tanggal',\n rangePlaceholder: ['Mulai tanggal', 'Tanggal akhir']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","import Pagination from \"rc-pagination/es/locale/id_ID\";\nimport Calendar from '../calendar/locale/id_ID';\nimport DatePicker from '../date-picker/locale/id_ID';\nimport TimePicker from '../time-picker/locale/id_ID';\nvar localeValues = {\n locale: 'id',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n Table: {\n filterTitle: 'Saring',\n filterConfirm: 'OK',\n filterReset: 'Hapus',\n selectAll: 'Pilih semua di halaman ini',\n selectInvert: 'Balikkan pilihan di halaman ini',\n sortTitle: 'Urutkan'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Batal',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Batal'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Cari',\n itemUnit: 'item',\n itemsUnit: 'item'\n },\n Upload: {\n uploading: 'Mengunggah...',\n removeFile: 'Hapus file',\n uploadError: 'Kesalahan pengunggahan',\n previewFile: 'File pratinjau',\n downloadFile: 'Unduh berkas'\n },\n Empty: {\n description: 'Tidak ada data'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '/ сторінці',\n jump_to: 'Перейти',\n jump_to_confirm: 'підтвердити',\n page: '',\n // Pagination.jsx\n prev_page: 'Попередня сторінка',\n next_page: 'Наступна сторінка',\n prev_5: 'Попередні 5 сторінок',\n next_5: 'Наступні 5 сторінок',\n prev_3: 'Попередні 3 сторінки',\n next_3: 'Наступні 3 сторінки',\n page_size: 'Page Size'\n};","var locale = {\n locale: 'uk_UA',\n today: 'Сьогодні',\n now: 'Зараз',\n backToToday: 'Поточна дата',\n ok: 'OK',\n clear: 'Очистити',\n month: 'Місяць',\n year: 'Рік',\n timeSelect: 'Обрати час',\n dateSelect: 'Обрати дату',\n monthSelect: 'Обрати місяць',\n yearSelect: 'Обрати рік',\n decadeSelect: 'Обрати десятиріччя',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Попередній місяць (PageUp)',\n nextMonth: 'Наступний місяць (PageDown)',\n previousYear: 'Попередній рік (Control + left)',\n nextYear: 'Наступний рік (Control + right)',\n previousDecade: 'Попереднє десятиріччя',\n nextDecade: 'Наступне десятиріччя',\n previousCentury: 'Попереднє століття',\n nextCentury: 'Наступне століття'\n};\nexport default locale;","var locale = {\n placeholder: 'Оберіть час'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/uk_UA\";\nimport TimePickerLocale from '../../time-picker/locale/uk_UA';\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Оберіть дату',\n rangePlaceholder: ['Початкова дата', 'Кінцева дата']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/uk_UA\";\nimport Calendar from '../calendar/locale/uk_UA';\nimport DatePicker from '../date-picker/locale/uk_UA';\nimport TimePicker from '../time-picker/locale/uk_UA';\nvar typeTemplate = '${label} не є типом ${type}';\nvar localeValues = {\n locale: 'uk',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Будь ласка, оберіть'\n },\n Table: {\n filterTitle: 'Фільтрувати',\n filterConfirm: 'OK',\n filterReset: 'Скинути',\n filterEmptyText: 'Фільтри відсутні',\n filterCheckall: 'Обрати всі',\n filterSearchPlaceholder: 'Пошук у фільтрах',\n emptyText: 'Даних немає',\n selectAll: 'Обрати всі на сторінці',\n selectInvert: 'Інвертувати вибір',\n selectNone: 'Очистити вибір',\n selectionAll: 'Обрати всі',\n sortTitle: 'Сортувати',\n expand: 'Розгорнути рядок',\n collapse: 'Згорнути рядок',\n triggerDesc: 'Сортувати за спаданням',\n triggerAsc: 'Сортувати за зростанням',\n cancelSort: 'Відмінити сортування'\n },\n Modal: {\n okText: 'Гаразд',\n cancelText: 'Скасувати',\n justOkText: 'Гаразд'\n },\n Popconfirm: {\n okText: 'Гаразд',\n cancelText: 'Скасувати'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Введіть текст для пошуку',\n itemUnit: 'елем.',\n itemsUnit: 'елем.',\n remove: 'Видалити',\n selectCurrent: 'Вибрати поточну сторінку',\n removeCurrent: 'Скасувати вибір на сторінці',\n selectAll: 'Вибрати всі дані',\n removeAll: 'Скасувати вибір',\n selectInvert: 'Інвертувати поточну сторінку'\n },\n Upload: {\n uploading: 'Завантаження ...',\n removeFile: 'Видалити файл',\n uploadError: 'Помилка завантаження',\n previewFile: 'Попередній перегляд файлу',\n downloadFile: 'Завантажити файл'\n },\n Empty: {\n description: 'Даних немає'\n },\n Icon: {\n icon: 'іконка'\n },\n Text: {\n edit: 'Редагувати',\n copy: 'Скопіювати',\n copied: 'Скопійовано',\n expand: 'Розширити'\n },\n PageHeader: {\n back: 'Назад'\n },\n Form: {\n optional: '(опціонально)',\n defaultValidateMessages: {\n \"default\": 'Помилка валідації для поля ${label}',\n required: 'Будь ласка, заповніть ${label}',\n \"enum\": 'Лише одне зі значень [${enum}] доступне для ${label}',\n whitespace: 'Значення у полі ${label} не може бути пробілом',\n date: {\n format: 'Не валідний формат дати у ${label}',\n parse: 'Значення ${label} не може бути приведене до дати',\n invalid: 'Не валідна дата у ${label}'\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: '${label} має містити ${len} символів',\n min: '${label} має містити не менш, ніж ${min} символів',\n max: '${label} має містити не більш, ніж ${max} символів',\n range: '${label} має містити ${min}-${max} символів'\n },\n number: {\n len: '${label} має дорівнювати ${len}',\n min: '${label} має бути не менш, ніж ${min}',\n max: '${label} має бути не більш, ніж ${max}',\n range: '${label} має бути в межах ${min}-${max}'\n },\n array: {\n len: '${label} має містити ${len} елементи',\n min: '${label} має містити не менш, ніж ${min} елементи',\n max: '${label} має містити не більш, ніж ${max} елементи',\n range: 'Кількість елементів в ${label} має бути в межах ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} не відповідає шаблону ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Попередній перегляд'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '/ página',\n jump_to: 'Ir a',\n jump_to_confirm: 'confirmar',\n page: 'Página',\n // Pagination.jsx\n prev_page: 'Página anterior',\n next_page: 'Página siguiente',\n prev_5: '5 páginas previas',\n next_5: '5 páginas siguientes',\n prev_3: '3 páginas previas',\n next_3: '3 páginas siguientes',\n page_size: 'tamaño de página'\n};","var locale = {\n locale: 'es_ES',\n today: 'Hoy',\n now: 'Ahora',\n backToToday: 'Volver a hoy',\n ok: 'Aceptar',\n clear: 'Limpiar',\n month: 'Mes',\n year: 'Año',\n timeSelect: 'Seleccionar hora',\n dateSelect: 'Seleccionar fecha',\n monthSelect: 'Elegir un mes',\n yearSelect: 'Elegir un año',\n decadeSelect: 'Elegir una década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mes anterior (PageUp)',\n nextMonth: 'Mes siguiente (PageDown)',\n previousYear: 'Año anterior (Control + left)',\n nextYear: 'Año siguiente (Control + right)',\n previousDecade: 'Década anterior',\n nextDecade: 'Década siguiente',\n previousCentury: 'Siglo anterior',\n nextCentury: 'Siglo siguiente'\n};\nexport default locale;","var locale = {\n placeholder: 'Seleccionar hora'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/es_ES\";\nimport TimePickerLocale from '../../time-picker/locale/es_ES';\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Seleccionar fecha',\n rangePlaceholder: ['Fecha inicial', 'Fecha final']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/es_ES\";\nimport Calendar from '../calendar/locale/es_ES';\nimport DatePicker from '../date-picker/locale/es_ES';\nimport TimePicker from '../time-picker/locale/es_ES';\nvar typeTemplate = '${label} no es un ${type} válido';\nvar localeValues = {\n locale: 'es',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Seleccione'\n },\n Table: {\n filterTitle: 'Filtrar menú',\n filterConfirm: 'Aceptar',\n filterReset: 'Reiniciar',\n filterEmptyText: 'Sin filtros',\n filterCheckall: 'Seleccionar todo',\n filterSearchPlaceholder: 'Buscar en filtros',\n emptyText: 'Sin datos',\n selectAll: 'Seleccionar todo',\n selectInvert: 'Invertir selección',\n selectNone: 'Vacíe todo',\n selectionAll: 'Seleccionar todos los datos',\n sortTitle: 'Ordenar',\n expand: 'Expandir fila',\n collapse: 'Colapsar fila',\n triggerDesc: 'Click para ordenar en orden descendente',\n triggerAsc: 'Click para ordenar en orden ascendente',\n cancelSort: 'Click para cancelar ordenamiento'\n },\n Modal: {\n okText: 'Aceptar',\n cancelText: 'Cancelar',\n justOkText: 'Aceptar'\n },\n Popconfirm: {\n okText: 'Aceptar',\n cancelText: 'Cancelar'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Buscar aquí',\n itemUnit: 'elemento',\n itemsUnit: 'elementos',\n remove: 'Eliminar',\n selectCurrent: 'Seleccionar página actual',\n removeCurrent: 'Remover página actual',\n selectAll: 'Seleccionar todos los datos',\n removeAll: 'Eliminar todos los datos',\n selectInvert: 'Invertir página actual'\n },\n Upload: {\n uploading: 'Subiendo...',\n removeFile: 'Eliminar archivo',\n uploadError: 'Error al subir el archivo',\n previewFile: 'Vista previa',\n downloadFile: 'Descargar archivo'\n },\n Empty: {\n description: 'No hay datos'\n },\n Icon: {\n icon: 'ícono'\n },\n Text: {\n edit: 'Editar',\n copy: 'Copiar',\n copied: 'Copiado',\n expand: 'Expandir'\n },\n PageHeader: {\n back: 'Volver'\n },\n Form: {\n optional: '(opcional)',\n defaultValidateMessages: {\n \"default\": 'Error de validación del campo ${label}',\n required: 'Por favor ingresar ${label}',\n \"enum\": '${label} debe ser uno de [${enum}]',\n whitespace: '${label} no puede ser un carácter en blanco',\n date: {\n format: 'El formato de fecha de ${label} es inválido',\n parse: '${label} no se puede convertir a una fecha',\n invalid: '${label} es una fecha inválida'\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: '${label} debe tener ${len} caracteres',\n min: '${label} debe tener al menos ${min} caracteres',\n max: '${label} debe tener hasta ${max} caracteres',\n range: '${label} debe tener entre ${min}-${max} caracteres'\n },\n number: {\n len: '${label} debe ser igual a ${len}',\n min: '${label} valor mínimo es ${min}',\n max: '${label} valor máximo es ${max}',\n range: '${label} debe estar entre ${min}-${max}'\n },\n array: {\n len: 'Debe ser ${len} ${label}',\n min: 'Al menos ${min} ${label}',\n max: 'A lo mucho ${max} ${label}',\n range: 'El monto de ${label} debe estar entre ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} no coincide con el patrón ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Previsualización'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '條/頁',\n jump_to: '跳至',\n jump_to_confirm: '確定',\n page: '頁',\n // Pagination.jsx\n prev_page: '上一頁',\n next_page: '下一頁',\n prev_5: '向前 5 頁',\n next_5: '向後 5 頁',\n prev_3: '向前 3 頁',\n next_3: '向後 3 頁',\n page_size: '頁碼'\n};","var locale = {\n locale: 'zh_TW',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '確定',\n timeSelect: '選擇時間',\n dateSelect: '選擇日期',\n weekSelect: '選擇周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上個月 (翻頁上鍵)',\n nextMonth: '下個月 (翻頁下鍵)',\n monthSelect: '選擇月份',\n yearSelect: '選擇年份',\n decadeSelect: '選擇年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',\n previousYear: '上一年 (Control鍵加左方向鍵)',\n nextYear: '下一年 (Control鍵加右方向鍵)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世紀',\n nextCentury: '下一世紀'\n};\nexport default locale;","var locale = {\n placeholder: '請選擇時間'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/zh_TW\";\nimport TimePickerLocale from '../../time-picker/locale/zh_TW';\n// 统一合并为完整的 Locale\nvar locale = {\n lang: _extends({\n placeholder: '請選擇日期',\n yearPlaceholder: '請選擇年份',\n quarterPlaceholder: '請選擇季度',\n monthPlaceholder: '請選擇月份',\n weekPlaceholder: '請選擇周',\n rangePlaceholder: ['開始日期', '結束日期'],\n rangeYearPlaceholder: ['開始年份', '結束年份'],\n rangeMonthPlaceholder: ['開始月份', '結束月份'],\n rangeQuarterPlaceholder: ['開始季度', '結束季度'],\n rangeWeekPlaceholder: ['開始周', '結束周']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\nlocale.lang.ok = '確 定';\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/zh_TW\";\nimport Calendar from '../calendar/locale/zh_TW';\nimport DatePicker from '../date-picker/locale/zh_TW';\nimport TimePicker from '../time-picker/locale/zh_TW';\nvar typeTemplate = '${label}不是一個有效的${type}';\nvar localeValues = {\n locale: 'zh-tw',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: '請選擇'\n },\n Table: {\n filterTitle: '篩選器',\n filterConfirm: '確定',\n filterReset: '重置',\n filterEmptyText: '無篩選項',\n selectAll: '全部選取',\n selectInvert: '反向選取',\n selectNone: '清空所有',\n selectionAll: '全選所有',\n sortTitle: '排序',\n expand: '展開行',\n collapse: '關閉行',\n triggerDesc: '點擊降序',\n triggerAsc: '點擊升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '確定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n okText: '確定',\n cancelText: '取消'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: '搜尋資料',\n itemUnit: '項目',\n itemsUnit: '項目',\n remove: '删除',\n selectCurrent: '全選當頁',\n removeCurrent: '删除當頁',\n selectAll: '全選所有',\n removeAll: '删除全部',\n selectInvert: '反選當頁'\n },\n Upload: {\n uploading: '正在上傳...',\n removeFile: '刪除檔案',\n uploadError: '上傳失敗',\n previewFile: '檔案預覽',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '無此資料'\n },\n Icon: {\n icon: '圖標'\n },\n Text: {\n edit: '編輯',\n copy: '複製',\n copied: '複製成功',\n expand: '展開'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可選)',\n defaultValidateMessages: {\n \"default\": '字段驗證錯誤${label}',\n required: '請輸入${label}',\n \"enum\": '${label}必須是其中一個[${enum}]',\n whitespace: '${label}不能為空字符',\n date: {\n format: '${label}日期格式無效',\n parse: '${label}不能轉換為日期',\n invalid: '${label}是一個無效日期'\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: '${label}須為${len}個字符',\n min: '${label}最少${min}個字符',\n max: '${label}最多${max}個字符',\n range: '${label}須在${min}-${max}字符之間'\n },\n number: {\n len: '${label}必須等於${len}',\n min: '${label}最小值為${min}',\n max: '${label}最大值為${max}',\n range: '${label}須在${min}-${max}之間'\n },\n array: {\n len: '須為${len}個${label}',\n min: '最少${min}個${label}',\n max: '最多${max}個${label}',\n range: '${label}數量須在${min}-${max}之間'\n },\n pattern: {\n mismatch: '${label}與模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '預覽'\n }\n};\nexport default localeValues;","var locale = {\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n};\nexport default locale;","var locale = {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/zh_CN\";\nimport TimePickerLocale from '../../time-picker/locale/zh_CN';\n// 统一合并为完整的 Locale\nvar locale = {\n lang: _extends({\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeQuarterPlaceholder: ['开始季度', '结束季度'],\n rangeWeekPlaceholder: ['开始周', '结束周']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// should add whitespace between char in Button\nlocale.lang.ok = '确定';\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/zh_CN\";\nimport Calendar from '../calendar/locale/zh_CN';\nimport DatePicker from '../date-picker/locale/zh_CN';\nimport TimePicker from '../time-picker/locale/zh_CN';\nvar typeTemplate = '${label}不是一个有效的${type}';\nvar localeValues = {\n locale: 'zh-cn',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n // locales for all components\n global: {\n placeholder: '请选择'\n },\n Table: {\n filterTitle: '筛选',\n filterConfirm: '确定',\n filterReset: '重置',\n filterEmptyText: '无筛选项',\n filterCheckall: '全选',\n filterSearchPlaceholder: '在筛选项中搜索',\n selectAll: '全选当页',\n selectInvert: '反选当页',\n selectNone: '清空所有',\n selectionAll: '全选所有',\n sortTitle: '排序',\n expand: '展开行',\n collapse: '关闭行',\n triggerDesc: '点击降序',\n triggerAsc: '点击升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n cancelText: '取消',\n okText: '确定'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: '请输入搜索内容',\n itemUnit: '项',\n itemsUnit: '项',\n remove: '删除',\n selectCurrent: '全选当页',\n removeCurrent: '删除当页',\n selectAll: '全选所有',\n removeAll: '删除全部',\n selectInvert: '反选当页'\n },\n Upload: {\n uploading: '文件上传中',\n removeFile: '删除文件',\n uploadError: '上传错误',\n previewFile: '预览文件',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '暂无数据'\n },\n Icon: {\n icon: '图标'\n },\n Text: {\n edit: '编辑',\n copy: '复制',\n copied: '复制成功',\n expand: '展开'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可选)',\n defaultValidateMessages: {\n \"default\": '字段验证错误${label}',\n required: '请输入${label}',\n \"enum\": '${label}必须是其中一个[${enum}]',\n whitespace: '${label}不能为空字符',\n date: {\n format: '${label}日期格式无效',\n parse: '${label}不能转换为日期',\n invalid: '${label}是一个无效日期'\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: '${label}须为${len}个字符',\n min: '${label}最少${min}个字符',\n max: '${label}最多${max}个字符',\n range: '${label}须在${min}-${max}字符之间'\n },\n number: {\n len: '${label}必须等于${len}',\n min: '${label}最小值为${min}',\n max: '${label}最大值为${max}',\n range: '${label}须在${min}-${max}之间'\n },\n array: {\n len: '须为${len}个${label}',\n min: '最少${min}个${label}',\n max: '最多${max}个${label}',\n range: '${label}数量须在${min}-${max}之间'\n },\n pattern: {\n mismatch: '${label}与模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '预览'\n }\n};\nexport default localeValues;","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\nimport moment from '../moment';\n\nfunction plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n}\nfunction relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n}\nvar monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n];\n\n// http://new.gramota.ru/spravka/rules/139-prop : § 103\n// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\nexport default moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n});\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\nimport moment from '../moment';\n\nfunction plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n}\nfunction relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n}\nfunction weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n}\nfunction processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n}\n\nexport default moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n});\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\nimport moment from '../moment';\n\nexport default moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n});\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\nimport moment from '../moment';\n\nvar monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\nexport default moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n});\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\nimport moment from '../moment';\n\nexport default moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n});\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\nimport moment from '../moment';\n\nexport default moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n});\n","import { ContactCourseFilter } from '@axl/accel-framework/models';\r\n\r\nexport default class StudentCourseFilter extends ContactCourseFilter {\r\n constructor(filter?: Partial) {\r\n super(filter);\r\n if (filter) this.update(filter);\r\n }\r\n\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}\r\n","import { action, observable } from 'mobx';\r\nimport { Contact } from '@axl/accel-framework/models';\r\nimport { StudentSession } from 'models';\r\n\r\nexport declare type StudentTag = {\r\n id: string;\r\n name: string;\r\n}\r\nexport declare type StudentGroup = {\r\n id: string;\r\n name: string;\r\n}\r\nexport default class Student extends Contact {\r\n constructor(student?: Partial) {\r\n super(student);\r\n if (student)\r\n this.update(student);\r\n }\r\n\r\n @observable session: StudentSession;\r\n @observable tags: StudentTag[];\r\n @observable groups: StudentGroup[];\r\n @observable bonusBalance: number;\r\n\r\n static fromJson(json: any) {\r\n return new Student({\r\n ...Contact.fromJson(json),\r\n session: json.session ? StudentSession.fromJson(json.session) : undefined,\r\n tags: json.tags ?? [],\r\n groups: json.groups ?? [],\r\n bonusBalance: json.bonusBalance ?? 0\r\n });\r\n }\r\n\r\n @action update(student: Partial) {\r\n super.update(student);\r\n }\r\n}","import { Entity } from '@axl/accel-framework/models';\r\nimport { isEmpty } from 'lodash';\r\nimport { observable, action, computed } from 'mobx';\r\n\r\nexport default class StudentSession extends Entity {\r\n constructor(session?: Partial) {\r\n super(session);\r\n if (session) this.update(session);\r\n }\r\n\r\n @observable adminId: string;\r\n @observable expiredDate?: Date;\r\n\r\n static fromJson(json: any): StudentSession {\r\n return new StudentSession({\r\n ...json,\r\n expiredDate: json.expiredDate ? new Date(json.expiredDate) : undefined\r\n });\r\n }\r\n\r\n @action update(item: Partial) {\r\n super.update(item);\r\n }\r\n\r\n @computed get isAdmin() {\r\n return !isEmpty(this.adminId);\r\n }\r\n}","import { action } from \"mobx\";\r\nimport { School as BaseSchool, SchoolProfileSettings } from \"@axl/accel-framework/models\";\r\n\r\nexport default class School extends BaseSchool {\r\n constructor(settings: Partial) {\r\n super();\r\n if (settings)\r\n this.update(settings);\r\n }\r\n\r\n isLocked: boolean;\r\n\r\n @action\r\n update(entity: Partial) {\r\n super.update(entity);\r\n }\r\n\r\n static fromJson(json: any): School {\r\n return new School({\r\n ...BaseSchool.fromJson(json),\r\n // TODO rename response model to admin naming 'StudentProfileSettings'\r\n profileSettings: SchoolProfileSettings.fromJson(json.profileSettings),\r\n isLocked: json.isLocked,\r\n });\r\n }\r\n}","import { observable, action, computed } from 'mobx';\r\nimport { ContactCert, Entity } from '@axl/accel-framework/models';\r\nimport { StudentCourse } from 'models';\r\n\r\nexport default class SchoolCourse extends Entity {\r\n constructor(course?: Partial) {\r\n super(course);\r\n if (course) this.update(course);\r\n }\r\n\r\n @observable title: string;\r\n @observable shortDescription: string;\r\n @observable freeAccess: boolean;\r\n @observable isCompleteAnyCourseRequirement: boolean;\r\n @observable primaryImageCloudKey: string;\r\n @observable studentCourse?: StudentCourse;\r\n @observable studentAccessDate?: Date;\r\n @observable studentHasAccess: boolean;\r\n @observable categories: string[];\r\n @observable requirements: string[];\r\n @observable cert: ContactCert | null;\r\n\r\n @computed get hasRequirements() {\r\n return this.requirements && this.requirements.length > 0;\r\n }\r\n\r\n @computed get hasCourseItem() {\r\n return this.studentCourse && this.studentCourse.currentCourseItem;\r\n }\r\n\r\n static fromJson(json: any): SchoolCourse {\r\n return new SchoolCourse({\r\n ...json,\r\n studentAccessDate: json.studentAccessDate ? new Date(json.studentAccessDate) : undefined,\r\n studentCourse: json.studentCourse ? StudentCourse.fromJson(json.studentCourse) : undefined,\r\n cert: json.cert ? ContactCert.fromJson(json.cert) : undefined,\r\n });\r\n }\r\n\r\n @action\r\n update(course: Partial, allowUndefined = false) {\r\n super.update(course, allowUndefined);\r\n }\r\n}\r\n\r\n","import { ContactCourse, Contact, Course, CourseItem } from '@axl/accel-framework/models';\r\nimport { action, computed, observable } from 'mobx';\r\nimport moment from 'moment';\r\n\r\nexport default class StudentCourse extends ContactCourse {\r\n constructor(item?: Partial) {\r\n super(item);\r\n if (item) this.update(item);\r\n }\r\n\r\n /**\r\n * sections excluded\r\n */\r\n totalItemCount: number;\r\n initialCourseItemId: string;\r\n @observable flowBeginDate?: moment.Moment;\r\n @observable accessBeginDate?: moment.Moment;\r\n @observable accessEndDate?: moment.Moment;\r\n @observable isSubscription: boolean;\r\n\r\n static fromJson(json: any): StudentCourse {\r\n return new StudentCourse({\r\n id: json.id,\r\n softDeleted: json.softDeleted,\r\n state: json.state,\r\n progress: json.progress,\r\n feedback: json.feedback,\r\n score: json.score,\r\n lastActivityDate: json.lastActivityDate ? new Date(json.lastActivityDate) : undefined,\r\n contact: json.student ? Contact.fromJson(json.student) : undefined,\r\n course: json.course ? Course.fromJson(json.course) : undefined,\r\n initialCourseItemId: json.currentCourseItem?.id,\r\n createdDate: json.createdDate ? new Date(json.createdDate) : undefined,\r\n updatedDate: json.updatedDate ? new Date(json.updatedDate) : undefined,\r\n beginDate: json.beginDate ? new Date(json.beginDate) : undefined,\r\n endDate: json.endDate ? new Date(json.endDate) : undefined,\r\n flowBeginDate: json.flowBeginDate ? moment(json.flowBeginDate) : undefined,\r\n accessBeginDate: json.accessBeginDate ? moment(json.accessBeginDate) : undefined,\r\n accessEndDate: json.accessEndDate ? moment(json.accessEndDate) : undefined,\r\n isSubscription: json.isSubscription ?? false,\r\n currentCourseItem: json.currentCourseItem ? CourseItem.fromJson(json.currentCourseItem) : undefined,\r\n });\r\n }\r\n\r\n @action\r\n update(studentCourse: Partial) {\r\n super.update(studentCourse);\r\n }\r\n\r\n @computed\r\n get isInFlow() {\r\n return this.flowBeginDate != null;\r\n }\r\n}\r\n","import { ContactCourse } from '@axl/accel-framework/models';\r\nimport { StudentCourseItemProgress } from 'models';\r\n\r\nexport default class StudentCourseProgress {\r\n constructor(progress?: Partial) {\r\n if (progress) Object.assign(this, progress);\r\n }\r\n\r\n courseItemId: string;\r\n contactCourse: ContactCourse;\r\n courseItemProgress: StudentCourseItemProgress;\r\n\r\n static fromJson(json: any): StudentCourseProgress {\r\n return new StudentCourseProgress({\r\n courseItemId: json.courseItemId,\r\n contactCourse: json.studentCourse ? ContactCourse.fromJson(json.studentCourse) : undefined,\r\n courseItemProgress: json.courseItemProgress ? StudentCourseItemProgress.fromJson(json.courseItemProgress) : undefined,\r\n });\r\n }\r\n}\r\n\r\n","import { action, observable, computed } from 'mobx';\r\nimport { Entity, SchoolContentItemProgressRating } from '@axl/accel-framework/models';\r\n\r\nexport declare type CourseItemProgressStatus = 'default' | 'opened';\r\nexport declare type CourseItemProgressTaskStatus = 'default' | 'started' | 'pending' | 'completed';\r\n\r\nexport class StudentCourseItemBaseProgress extends Entity {\r\n @observable beginDate: Date | null;\r\n @observable completeDate: Date | null;\r\n @observable numberUncheckedTasks: number = 0;\r\n @observable numberCorrectTasks: number = 0;\r\n @observable numberIncorrectTasks: number = 0;\r\n}\r\n\r\nexport default class StudentCourseItemProgress extends StudentCourseItemBaseProgress {\r\n constructor(progress?: Partial) {\r\n super(progress);\r\n if (progress) this.update(progress);\r\n }\r\n\r\n @observable precompleteDate: Date | null;\r\n @observable theoryStatus?: boolean;\r\n @observable testStatus?: boolean;\r\n @observable taskStatus?: CourseItemProgressTaskStatus;\r\n @observable status: CourseItemProgressStatus;\r\n @observable rating: SchoolContentItemProgressRating;\r\n\r\n @computed get theoryCompleted() {\r\n return this.theoryStatus == true;\r\n }\r\n @computed get testsCompleted() {\r\n return this.testStatus == true;\r\n }\r\n @computed get tasksCompleted() {\r\n return this.taskStatus == 'completed';\r\n }\r\n\r\n static fromJson(json: any): StudentCourseItemProgress {\r\n return new StudentCourseItemProgress({\r\n ...json,\r\n beginDate: new Date(json.beginDate),\r\n completeDate: json.completeDate ? new Date(json.completeDate) : null,\r\n precompleteDate: json.precompleteDate ? new Date(json.precompleteDate) : null,\r\n rating: json.rating ? SchoolContentItemProgressRating.fromJson(json.rating) : null,\r\n });\r\n }\r\n\r\n @action update(progress: Partial) {\r\n super.update(progress);\r\n }\r\n}\r\n\r\nexport class StudentCourseSectionProgress extends StudentCourseItemBaseProgress {\r\n constructor(progress?: Partial) {\r\n super();\r\n if (progress) this.update(progress);\r\n }\r\n\r\n @action update(progress: Partial) {\r\n super.update(progress);\r\n }\r\n}","//! moment-timezone.js\n//! version : 0.5.43\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.43\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","import { observable, action, computed } from 'mobx';\r\nimport { AccelFile, Course, CourseItemType, Entity, CoursePlan } from '@axl/accel-framework/models';\r\nimport { StudentCourseItemTest, StudentCourseItemTask, StudentCourse, StudentCourseItemProgress } from 'models';\r\nimport { FlowTimeDelayCondition, RegularTimeDelayCondition, CourseItemAvailability } from '@axl/accel-framework/models/course/item/course-item';\r\nimport { StudentCourseItemBaseProgress, StudentCourseSectionProgress } from './student-course-item-progress/student-course-item-progress';\r\nimport type { TimeMeasure, Timezone } from '@axl/accel-framework/models';\r\nimport { isNil } from 'lodash';\r\nimport { TimeSpan } from '@axl/accel-framework/utils';\r\nimport { DayOfWeek } from '@axl/accel-framework/enums';\r\nimport moment from 'moment-timezone';\r\nimport { dayOfWeekMap } from '@axl/accel-framework/enums/DayOfWeek';\r\n\r\n/**\r\n * DO NOT FORGET TO UPDATE TYPE IN SCHOOL SDK client\\site\\src\\school-sdk\\index.ts\r\n */\r\nexport declare type CourseItemTab = 'theory' | 'tests' | 'tasks' | 'rating';\r\nexport declare type CourseItemAction = 'select' | 'complete' | 'reset' | 'block' | 'unblock';\r\n\r\nexport type StudentCourseItemAvailability = {\r\n result: boolean,\r\n isSection?: boolean,\r\n willBeAvailableOn?: moment.Moment,\r\n willBeAvailableIf?: { in?: TimeSpan, item?: StudentCourseItem, condition: 'afterStart' | 'afterComplete' };\r\n needToCompletePrevStep?: boolean,\r\n needToCompletePrevSteps?: boolean,\r\n blockingCourseItem?: StudentCourseItem,\r\n requiredPlans?: string[]\r\n}\r\n\r\nexport default class StudentCourseItem extends Entity {\r\n constructor(item?: Partial) {\r\n super(item);\r\n this._tab = this.defaultTab;\r\n if (item) this.update(item);\r\n }\r\n\r\n @observable title: string;\r\n @observable position: number;\r\n @observable isDraft: boolean;\r\n @observable isOptional: boolean;\r\n @observable type: CourseItemType;\r\n @observable comment: string;\r\n\r\n // restrictions and availability\r\n @observable allowComments: boolean;\r\n @observable showComments: boolean; // TODO\r\n @observable disableCommentModeration: boolean; // TODO\r\n @observable ratingEnabled: boolean;\r\n @observable ratingRequired: boolean;\r\n @observable ratingCommentRequired: boolean;\r\n @observable availability: CourseItemAvailability;\r\n\r\n @observable disableTimeLimits: boolean;\r\n @observable regularTimeDelayActive: boolean;\r\n @observable regularTimeDelay: number;\r\n @observable regularTimeDelayCondition: RegularTimeDelayCondition;\r\n @observable regularTimeDelayMeasureType: TimeMeasure;\r\n @observable regularWaitUntilTimeActive: boolean;\r\n @observable regularWaitUntilTime: moment.Moment;\r\n @observable regularWaitUntilTimeDaysOfWeekActive: boolean;\r\n @observable regularWaitUntilDaysOfWeek: DayOfWeek[];\r\n\r\n @observable flowTimeDelayActive: boolean;\r\n @observable flowTimeDelay: number;\r\n @observable flowTimeDelayCondition: FlowTimeDelayCondition;\r\n @observable flowTimeDelayMeasureType: TimeMeasure;\r\n @observable flowWaitUntilTimeActive: boolean;\r\n @observable flowWaitUntilTime: moment.Moment;\r\n @observable flowWaitUntilTimeDaysOfWeekActive: boolean;\r\n @observable flowWaitUntilDaysOfWeek: DayOfWeek[];\r\n\r\n @observable dateDelayActive: boolean;\r\n @observable dateDelay: moment.Moment;\r\n\r\n @observable preventCopingAndSelectingText: boolean; // TODO\r\n\r\n @observable designHTMLPublished: string;\r\n @observable designStylePublished: string;\r\n\r\n @observable blockCourseUntilTasksApproved: boolean;\r\n @observable theoryVisible: boolean;\r\n @observable tasksVisible: boolean;\r\n @observable testsVisible: boolean;\r\n @computed get ratingVisible(): boolean {\r\n return this.allowComments || this.ratingEnabled;\r\n }\r\n\r\n @observable score: number; // TODO\r\n\r\n @observable files: AccelFile[];\r\n\r\n @observable progress: StudentCourseItemProgress;\r\n @observable tests: StudentCourseItemTest[] = [];\r\n @observable tasks: StudentCourseItemTask[] = [];\r\n @observable requiredPlans: string[];\r\n\r\n @observable currentTest: StudentCourseItemTest | null = null;\r\n\r\n @observable parent: StudentCourseItem | null;\r\n @observable parentItemId?: string | null;\r\n\r\n @observable children: StudentCourseItem[] = [];\r\n\r\n @observable previousItem: StudentCourseItem | null;\r\n @observable nextItem: StudentCourseItem | null;\r\n @observable studentCourse: StudentCourse;\r\n @observable course: Course;\r\n\r\n @observable fetching: boolean;\r\n\r\n /** \r\n * position regarding all steps\r\n */\r\n globalPosition: number;\r\n /**\r\n * level of the item in the tree\r\n */\r\n level: number;\r\n\r\n schoolTimezone: Timezone;\r\n\r\n\r\n /**\r\n * returns the nearest previous section on the same level is exists\r\n */\r\n @computed get previousSection(): StudentCourseItem | null {\r\n let prevItemSection = this.previousItem?.parent ?? null;\r\n while (prevItemSection != null) {\r\n if (prevItemSection.parent?.id === this.parent?.id)\r\n return prevItemSection;\r\n prevItemSection = prevItemSection.parent ?? null;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get firstAvailableTab() {\r\n if (this.theoryVisible) return 'theory';\r\n if (this.testsVisible) return 'tests';\r\n if (this.tasksVisible) return 'tasks';\r\n if (this.ratingVisible) return 'rating';\r\n return 'theory';\r\n }\r\n\r\n @computed get itemCount() {\r\n if (this.type == CourseItemType.Step) return 0;\r\n let count = this.children.length;\r\n for (const child of this.children) {\r\n count += child.itemCount;\r\n }\r\n return count;\r\n }\r\n\r\n @computed get itemCompletedCount() {\r\n if (this.type == CourseItemType.Step) return 0;\r\n let count = this.children.filter(x => x.completed).length;\r\n for (const child of this.children) {\r\n count += child.itemCompletedCount;\r\n }\r\n return count;\r\n }\r\n\r\n @computed get stepCount() {\r\n if (this.type == CourseItemType.Step) return 0;\r\n let count = this.children.count(x => x.type == CourseItemType.Step);\r\n for (const child of this.children) {\r\n count += child.stepCount;\r\n }\r\n return count;\r\n }\r\n\r\n @computed get taskCount() {\r\n if (this.type == CourseItemType.Step)\r\n return this.tasks.length;\r\n return this.children.reduce((a, b) => a + b.taskCount, 0);\r\n }\r\n\r\n @computed get taskCompletedCount() {\r\n if (this.type == CourseItemType.Step)\r\n return this.progress?.numberCorrectTasks ?? 0;\r\n return this.children.reduce((a, b) => a + b.taskCompletedCount, 0);\r\n }\r\n\r\n @computed get sectionProgress(): StudentCourseSectionProgress {\r\n const p = new StudentCourseSectionProgress();\r\n let isEveryChildCompleted = true;\r\n // use accessibleChildren to skip prohibited items due to plan access\r\n for (const child of this.accessibleChildren) {\r\n const progress: StudentCourseItemBaseProgress | undefined =\r\n child.type == CourseItemType.Section\r\n ? child.sectionProgress\r\n : child.progress;\r\n\r\n if (!progress) {\r\n isEveryChildCompleted = false;\r\n p.completeDate = null;\r\n continue;\r\n }\r\n\r\n p.numberCorrectTasks += progress.numberCorrectTasks;\r\n p.numberIncorrectTasks += progress.numberIncorrectTasks;\r\n p.numberUncheckedTasks += progress.numberUncheckedTasks;\r\n\r\n if (isEveryChildCompleted) {\r\n if (!progress.completeDate) {\r\n isEveryChildCompleted = false;\r\n p.completeDate = null;\r\n }\r\n else if (!p.completeDate || p.completeDate < progress.completeDate)\r\n p.completeDate = progress.completeDate;\r\n }\r\n\r\n if (progress.beginDate) {\r\n if (!p.beginDate || p.beginDate > progress.beginDate)\r\n p.beginDate = progress.beginDate;\r\n }\r\n }\r\n return p;\r\n }\r\n\r\n @computed get ratingCompleted() {\r\n if (!this.ratingEnabled || !this.ratingRequired) return true;\r\n // has required rating\r\n if (this.progress?.rating == null) return false;\r\n if (!this.ratingCommentRequired)\r\n return true;\r\n // comment required\r\n return this.progress.rating.comment?.length > 0;\r\n }\r\n\r\n @computed get completed(): boolean {\r\n if (this.type == CourseItemType.Step)\r\n return this.progress?.completeDate != null;\r\n return this.sectionProgress?.completeDate != null;\r\n }\r\n\r\n @computed get beginDate(): Date | null {\r\n if (this.type == CourseItemType.Step)\r\n return this.progress?.beginDate;\r\n return this.sectionProgress?.beginDate;\r\n }\r\n\r\n @computed get completeDate(): Date | null {\r\n if (this.type == CourseItemType.Step)\r\n return this.progress?.completeDate;\r\n return this.sectionProgress?.completeDate;\r\n }\r\n\r\n @computed get precompleted() { return this.progress?.precompleteDate != null; }\r\n @computed get fullPosition() {\r\n let position = '';\r\n let section = this.parent;\r\n while (section != null) {\r\n position += `${section.position}.`;\r\n section = section.parent;\r\n }\r\n position += this.position;\r\n return position;\r\n }\r\n\r\n @observable private _tab: CourseItemTab;\r\n @computed get tab() { return this._tab; }\r\n set tab(value: CourseItemTab) {\r\n switch (value) {\r\n case 'theory': {\r\n if (this.theoryVisible) {\r\n this._tab = 'theory';\r\n return;\r\n }\r\n break;\r\n }\r\n case 'tests': {\r\n if (this.testsVisible) {\r\n this._tab = 'tests';\r\n return;\r\n }\r\n break;\r\n }\r\n case 'tasks': {\r\n if (this.tasksVisible) {\r\n this._tab = 'tasks';\r\n return;\r\n }\r\n break;\r\n }\r\n case 'rating': {\r\n if (this.allowComments || this.ratingEnabled) {\r\n this._tab = 'rating';\r\n return;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n @computed get defaultTab(): CourseItemTab {\r\n if (this.progress == null) return 'theory';\r\n if (this.theoryVisible && !this.progress.theoryCompleted) return 'theory';\r\n else if (this.testsVisible && !this.progress.testsCompleted) return 'tests'\r\n else if (this.tasksVisible && !this.progress.tasksCompleted) return 'tasks';\r\n return 'theory';\r\n }\r\n\r\n @computed get canSelect() { return this.courseItemAvailability.result; }\r\n\r\n @computed get previousRequiredItem(): StudentCourseItem | null {\r\n if (this.previousAccessibleItem == null)\r\n return null;\r\n if (this.previousAccessibleItem.canSkip)\r\n return this.previousAccessibleItem.previousRequiredItem;\r\n return this.previousAccessibleItem;\r\n }\r\n\r\n @computed get previousAccessibleItem(): StudentCourseItem | null {\r\n if (this.previousItem == null)\r\n return null;\r\n if (!this.previousItem.hasPlanAccess)\r\n return this.previousItem.previousAccessibleItem;\r\n return this.previousItem;\r\n }\r\n\r\n /**\r\n * returns the next item regarding to plan access (skip unavalaible items)\r\n */\r\n @computed get nextAccessibleItem(): StudentCourseItem | null {\r\n if (this.nextItem == null)\r\n return null;\r\n if (!this.nextItem.hasPlanAccess)\r\n return this.nextItem.nextAccessibleItem;\r\n return this.nextItem;\r\n }\r\n\r\n @computed get hasAccessibleItems(): boolean {\r\n if (this.type != CourseItemType.Section || this.children.length == 0)\r\n return false;\r\n for (const child of this.children) {\r\n // skip unavaialble steps & sections (we can skip section due to strict inherited access to all children)\r\n if (!child.hasPlanAccess) continue;\r\n // no plan limit => if step available OR section has available step inside (recursion) return true\r\n if (child.type == CourseItemType.Step || child.hasAccessibleItems)\r\n return true;\r\n }\r\n // no avaialble steps\r\n return false;\r\n }\r\n\r\n /**\r\n * returns all children (sections and steps) that have plan access\r\n */\r\n @computed get accessibleChildren(): StudentCourseItem[] {\r\n return this.children.filter(i => i.hasPlanAccess);\r\n }\r\n\r\n hasAncestor(item: StudentCourseItem) {\r\n let parent = this.parent;\r\n while (parent) {\r\n if (parent == item) return true;\r\n parent = parent.parent;\r\n }\r\n return false;\r\n }\r\n\r\n @computed get courseItemAvailability(): StudentCourseItemAvailability {\r\n // if the step has progress then it's available by default\r\n if (this.progress != null && this.progress.status == 'opened')\r\n return { result: true };\r\n if (!this.hasPlanAccess)\r\n return { result: false, requiredPlans: this.requiredPlans }\r\n\r\n if (!this.availabilityRelativeToTimeDelay.result)\r\n return this.availabilityRelativeToTimeDelay;\r\n\r\n const parentAvailability = this.parentAvailability;\r\n // check parent section availability first\r\n if (!parentAvailability.result) {\r\n return { ...parentAvailability, isSection: true };\r\n }\r\n if (!this.availabilityRelativeToOther.result)\r\n return this.availabilityRelativeToOther;\r\n return { result: true };\r\n }\r\n\r\n @computed private get parentAvailability(): StudentCourseItemAvailability {\r\n if (this.parent != null)\r\n return this.parent.courseItemAvailability;\r\n // if it doesn't exist\r\n return { result: true };\r\n }\r\n\r\n @computed private get availabilityRelativeToTimeDelay(): StudentCourseItemAvailability {\r\n\r\n if (this.disableTimeLimits) return { result: true };\r\n\r\n const checkFlowTimeDelay = this.flowTimeDelayActive && this.studentCourse.isInFlow;\r\n if (checkFlowTimeDelay) {\r\n switch (this.flowTimeDelayCondition) {\r\n case FlowTimeDelayCondition.CourseStart: {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.studentCourse.beginDate!),\r\n this.flowTimeDelayValue,\r\n this.flowWaitUntilTimeActive,\r\n this.flowWaitUntilTime,\r\n this.flowWaitUntilTimeDaysOfWeekActive,\r\n this.flowWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case FlowTimeDelayCondition.FlowStart: {\r\n if (this.studentCourse.flowBeginDate == null)\r\n break;\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.studentCourse.flowBeginDate),\r\n this.flowTimeDelayValue,\r\n this.flowWaitUntilTimeActive,\r\n this.flowWaitUntilTime,\r\n this.flowWaitUntilTimeDaysOfWeekActive,\r\n this.flowWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case FlowTimeDelayCondition.PreviousStep: {\r\n if (!this.previousAccessibleItem)\r\n break;\r\n if (!this.previousAccessibleItem.precompleted)\r\n return { result: false, needToCompletePrevStep: true };\r\n\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.previousAccessibleItem.progress.precompleteDate!),\r\n this.flowTimeDelayValue,\r\n this.flowWaitUntilTimeActive,\r\n this.flowWaitUntilTime,\r\n this.flowWaitUntilTimeDaysOfWeekActive,\r\n this.flowWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case FlowTimeDelayCondition.PreviousSectionStarted:\r\n case FlowTimeDelayCondition.PreviousSectionCompleted: {\r\n const prevSection = this.previousSection;\r\n if (prevSection && prevSection.hasAccessibleItems) {\r\n const targetDate = this.flowTimeDelayCondition == FlowTimeDelayCondition.PreviousSectionStarted\r\n ? prevSection.beginDate\r\n : prevSection.completeDate;\r\n if (targetDate) {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(targetDate),\r\n this.flowTimeDelayValue,\r\n this.flowWaitUntilTimeActive,\r\n this.flowWaitUntilTime,\r\n this.flowWaitUntilTimeDaysOfWeekActive,\r\n this.flowWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n } else {\r\n return {\r\n result: false,\r\n willBeAvailableIf: {\r\n in: this.flowTimeDelayValue,\r\n item: prevSection,\r\n condition: this.flowTimeDelayCondition == FlowTimeDelayCondition.PreviousSectionStarted ? 'afterStart' : 'afterComplete',\r\n }\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (this.regularTimeDelayActive) {\r\n switch (this.regularTimeDelayCondition) {\r\n case RegularTimeDelayCondition.AccessStart: {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.studentCourse.accessBeginDate),\r\n this.regularTimeDelayValue,\r\n this.regularWaitUntilTimeActive,\r\n this.regularWaitUntilTime,\r\n this.regularWaitUntilTimeDaysOfWeekActive,\r\n this.regularWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case RegularTimeDelayCondition.CourseStart: {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.studentCourse.beginDate),\r\n this.regularTimeDelayValue,\r\n this.regularWaitUntilTimeActive,\r\n this.regularWaitUntilTime,\r\n this.regularWaitUntilTimeDaysOfWeekActive,\r\n this.regularWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case RegularTimeDelayCondition.PreviousStep: {\r\n if (!this.previousAccessibleItem)\r\n break;\r\n if (!this.previousAccessibleItem.precompleted)\r\n return { result: false, needToCompletePrevStep: true };\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.previousAccessibleItem.progress.precompleteDate!),\r\n this.regularTimeDelayValue,\r\n this.regularWaitUntilTimeActive,\r\n this.regularWaitUntilTime,\r\n this.regularWaitUntilTimeDaysOfWeekActive,\r\n this.regularWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case RegularTimeDelayCondition.PreviousSectionStarted:\r\n case RegularTimeDelayCondition.PreviousSectionCompleted: {\r\n const prevSection = this.previousSection;\r\n if (prevSection && prevSection.hasAccessibleItems) {\r\n const targetDate = this.regularTimeDelayCondition == RegularTimeDelayCondition.PreviousSectionStarted\r\n ? prevSection.beginDate\r\n : prevSection.completeDate;\r\n if (targetDate) {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(targetDate),\r\n this.regularTimeDelayValue,\r\n this.regularWaitUntilTimeActive,\r\n this.regularWaitUntilTime,\r\n this.regularWaitUntilTimeDaysOfWeekActive,\r\n this.regularWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n } else {\r\n return {\r\n result: false,\r\n willBeAvailableIf: {\r\n in: this.regularTimeDelayValue,\r\n item: prevSection,\r\n condition: this.regularTimeDelayCondition == RegularTimeDelayCondition.PreviousSectionStarted ? 'afterStart' : 'afterComplete',\r\n }\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n const useDateDelay = this.dateDelayActive && this.dateDelay != null;\r\n if (useDateDelay) {\r\n const available = moment().isAfter(this.dateDelay);\r\n if (!available)\r\n return { result: false, willBeAvailableOn: this.dateDelay };\r\n }\r\n\r\n return { result: true };\r\n }\r\n\r\n @computed private get availabilityRelativeToOther(): StudentCourseItemAvailability {\r\n switch (this.availability) {\r\n case CourseItemAvailability.RegardlessOfPreviousSteps: {\r\n // if there is any previous item which is NOT completed\r\n // AND blocks the course until all it's tasks are finished\r\n let prevRequiredItem = this.previousRequiredItem;\r\n while (prevRequiredItem) {\r\n if (prevRequiredItem.blockCourseUntilTasksApproved == true) {\r\n if (prevRequiredItem.completed == false) {\r\n // if the next item has progress, then the previous item doesn't block the others\r\n if (prevRequiredItem.nextAccessibleItem?.progress != null) break;\r\n return { result: false, blockingCourseItem: prevRequiredItem };\r\n }\r\n break;\r\n }\r\n prevRequiredItem = prevRequiredItem.previousRequiredItem;\r\n }\r\n break;\r\n }\r\n case CourseItemAvailability.AllPreviousStepsCompleted: {\r\n let previousItem = this.previousRequiredItem;\r\n while (previousItem) {\r\n if (previousItem.blockCourseUntilTasksApproved == true && previousItem.completed == false) {\r\n return { result: false, blockingCourseItem: previousItem };\r\n }\r\n if (previousItem.blockCourseUntilTasksApproved == false && previousItem.precompleted == false) {\r\n return { result: false, blockingCourseItem: previousItem };\r\n }\r\n previousItem = previousItem.previousRequiredItem;\r\n }\r\n break;\r\n }\r\n case CourseItemAvailability.PreviousStepCompleted: {\r\n if (!this.previousRequiredItem)\r\n break;\r\n if (this.previousRequiredItem.blockCourseUntilTasksApproved == true && this.previousRequiredItem.completed == false) {\r\n return { result: false, blockingCourseItem: this.previousRequiredItem };\r\n }\r\n if (this.previousRequiredItem.blockCourseUntilTasksApproved == false && this.previousRequiredItem.precompleted == false) {\r\n return { result: false, blockingCourseItem: this.previousRequiredItem };\r\n }\r\n break;\r\n }\r\n }\r\n return { result: true };\r\n }\r\n\r\n @computed get hasPlanAccess() {\r\n return this.hasAccessGrantedByAdmin || this.requiredPlans?.length == 0;\r\n }\r\n\r\n @computed get hasAccessGrantedByAdmin(): boolean {\r\n if (this.type == CourseItemType.Step) {\r\n return this.progress?.status == 'opened';\r\n } else {\r\n return this.children.some(i => i.hasAccessGrantedByAdmin);\r\n }\r\n }\r\n\r\n @computed get canSkip() {\r\n return this.isOptional == true || !this.hasPlanAccess;\r\n }\r\n\r\n static fromJson(json: any): StudentCourseItem {\r\n const studentCourseItem = new StudentCourseItem({\r\n ...json,\r\n plans: json.plans ? json.plans.map((x: any) => CoursePlan.fromJson(x.coursePlan)) : undefined,\r\n parent: json.parentItem ? StudentCourseItem.fromJson(json.parentItem) : undefined,\r\n children: json.children ? json.children.map((x: any) => StudentCourseItem.fromJson(x)) : undefined,\r\n course: json.course ? Course.fromJson(json.course) : undefined,\r\n files: json.files ? json.files.map((x: any) => AccelFile.fromJson(x)) : [],\r\n progress: json.progress ? StudentCourseItemProgress.fromJson(json.progress) : undefined,\r\n tests: [],\r\n tasks: [],\r\n dateDelay: json.dateDelay ? moment(json.dateDelay) : undefined,\r\n regularWaitUntilTime: json.regularWaitUntilTime ? moment(json.regularWaitUntilTime) : undefined,\r\n flowWaitUntilTime: json.flowWaitUntilTime ? moment(json.flowWaitUntilTime) : undefined,\r\n });\r\n if (json.tasks)\r\n studentCourseItem.tasks = json.tasks.map((x: any) => StudentCourseItemTask.fromJson(x, studentCourseItem));\r\n if (json.tests)\r\n studentCourseItem.tests = json.tests.map((x: any) => StudentCourseItemTest.fromJson(x, studentCourseItem));\r\n return studentCourseItem;\r\n }\r\n\r\n @action\r\n update(course: Partial) {\r\n super.update(course);\r\n }\r\n\r\n @computed private get regularTimeDelayValue() {\r\n if (isNil(this.regularTimeDelay))\r\n return TimeSpan.zero;\r\n\r\n return TimeSpan.fromTimeMeasure(this.regularTimeDelay, this.regularTimeDelayMeasureType ?? 'days');\r\n }\r\n\r\n @computed private get flowTimeDelayValue() {\r\n if (isNil(this.flowTimeDelay))\r\n return TimeSpan.zero;\r\n\r\n return TimeSpan.fromTimeMeasure(this.flowTimeDelay, this.flowTimeDelayMeasureType ?? 'days');\r\n }\r\n\r\n private calculateDelay(\r\n baseDate: moment.Moment,\r\n timeDelayValue: TimeSpan,\r\n timeActive: boolean,\r\n waitUntilTime: moment.Moment,\r\n daysOfWeekActive: boolean,\r\n waitUntilDaysOfWeek: DayOfWeek[],\r\n ): moment.Moment {\r\n // converting baseDate to school timezone\r\n let delay = moment(baseDate).utc().tz(this.schoolTimezone.id);\r\n\r\n // add delay due to wait conditions (hours, days, weeks, etc.)\r\n delay.add(timeDelayValue, 'milliseconds');\r\n\r\n if (timeActive) {\r\n // converting to school timezone and extract hours and minutes from target time\r\n const targetTime = moment(waitUntilTime).utc().tz(this.schoolTimezone.id);\r\n const hours = targetTime.hours();\r\n const minutes = targetTime.minutes();\r\n\r\n // adding hours and minutes from target time to delay\r\n let adjustedDelay = delay.clone().hours(hours).minutes(minutes).seconds(0).milliseconds(0);\r\n\r\n // checking if date is before target time and skipping to the next day\r\n if (adjustedDelay.isBefore(delay)) {\r\n adjustedDelay.add(1, 'day');\r\n }\r\n\r\n delay = adjustedDelay;\r\n }\r\n\r\n if (daysOfWeekActive && waitUntilDaysOfWeek.length > 0) {\r\n const targetDays = waitUntilDaysOfWeek.map(day => dayOfWeekMap[day]);\r\n\r\n // looking for the first matching day of daysOfWeek\r\n while (!targetDays.includes(delay.day()))\r\n delay.add(1, 'day');\r\n\r\n }\r\n\r\n // returning to local timezone after all calculations to match the current time (fixing the issue with day change in case of timezone difference)\r\n const currentTz = moment.tz.guess();\r\n return delay.tz(currentTz);\r\n }\r\n}\r\n\r\n","import { BaseFilter } from '@axl/accel-framework/models';\r\nimport { StudentCourseItem } from '..';\r\nimport { SortingDirection } from '@axl/accel-framework/enums';\r\n\r\nexport default class StudentCourseItemFilter extends BaseFilter {\r\n constructor(filter?: Partial) {\r\n super();\r\n this.sortName = 'position';\r\n this.sortType = SortingDirection.asc;\r\n if (filter) this.update(filter);\r\n }\r\n studentCourseId: string;\r\n /**\r\n * Item we'd like to select\r\n * In addition to root branch, request the item section branch\r\n */\r\n courseItemId: string;\r\n /**\r\n * Request only the section items\r\n */\r\n sectionId: string;\r\n\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}","import { action, observable } from 'mobx';\r\nimport { AccelFile, Entity } from '@axl/accel-framework/models';\r\nimport { StudentCourseItem } from 'models';\r\n\r\n\r\nexport declare type CourseItemTestCountingMethod = 'percent' | 'score';\r\n\r\nexport default class StudentCourseItemTest extends Entity {\r\n constructor(test?: Partial) {\r\n super(test);\r\n if (test) this.update(test);\r\n }\r\n\r\n @observable title: string;\r\n @observable description: string;\r\n @observable position: number;\r\n @observable minPercentageCompletion: number;\r\n @observable minScoreCompletion: number;\r\n @observable questions: any[];\r\n @observable files: AccelFile[];\r\n @observable countingMethod: CourseItemTestCountingMethod;\r\n @observable shuffle: boolean;\r\n @observable isCompleted: boolean;\r\n @observable parent: StudentCourseItem;\r\n\r\n @action\r\n update(test: Partial) {\r\n super.update(test);\r\n }\r\n\r\n static fromJson(json: any, parent?: StudentCourseItem): StudentCourseItemTest {\r\n return new StudentCourseItemTest({\r\n ...json,\r\n files: json.files ? json.files.map(AccelFile.fromJson) : undefined,\r\n parent\r\n });\r\n }\r\n}","import { AccelFile, CourseItemTask, CourseItemTaskAnswer, CourseItemTaskAnswerStatus, CourseItemTaskField } from '@axl/accel-framework/models';\r\nimport { observable, computed, action } from 'mobx';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport default class StudentCourseItemTask extends CourseItemTask {\r\n constructor(item?: Partial) {\r\n super(item);\r\n if (item) this.update(item);\r\n }\r\n\r\n @observable answer: CourseItemTaskAnswer;\r\n @observable parent: StudentCourseItem;\r\n\r\n @computed get status(): CourseItemTaskAnswerStatus {\r\n return this.answer?.status || CourseItemTaskAnswerStatus.Default;\r\n }\r\n\r\n @computed get isCompleted() {\r\n return this.status === CourseItemTaskAnswerStatus.Correct;\r\n }\r\n\r\n static fromJson(json: any, parent?: StudentCourseItem): StudentCourseItemTask {\r\n return new StudentCourseItemTask({\r\n ...json,\r\n files: json.files ? json.files.map(AccelFile.fromJson) : undefined,\r\n answer: json.answer ? CourseItemTaskAnswer.fromJson(json.answer) : undefined,\r\n fields: json.fields ? json.fields.map(CourseItemTaskField.fromJson) : undefined,\r\n parent\r\n });\r\n }\r\n\r\n @action\r\n update(task: Partial) {\r\n super.update(task);\r\n }\r\n}\r\n","import { observable, action } from 'mobx';\r\nimport { Entity } from '@axl/accel-framework/models';\r\n\r\nexport default class SchoolLibrary extends Entity {\r\n constructor(library?: Partial) {\r\n super(library);\r\n }\r\n\r\n @observable title: string;\r\n @observable shortDescription: string;\r\n @observable freeAccess: boolean;\r\n @observable primaryImageCloudKey: string;\r\n @observable studentAccessDate?: Date;\r\n @observable flowBeginDate?: Date;\r\n @observable studentHasAccess: boolean;\r\n @observable categories: string[];\r\n\r\n static fromJson(json: any): SchoolLibrary {\r\n return new SchoolLibrary({\r\n ...json,\r\n studentAccessDate: json.studentAccessDate ? new Date(json.studentAccessDate) : undefined,\r\n flowBeginDate: json.flowBeginDate ? new Date(json.flowBeginDate) : undefined,\r\n });\r\n }\r\n\r\n @action\r\n update(library: Partial) {\r\n super.update(library);\r\n }\r\n}\r\n\r\n","import { Entity, SchoolContentItemProgressRating } from \"@axl/accel-framework/models\";\r\nimport { action, observable } from \"mobx\";\r\nimport moment from \"moment\";\r\n\r\nexport default class SchoolLibraryItemProgress extends Entity {\r\n constructor(progress?: Partial) {\r\n super(progress);\r\n if (progress) this.update(progress);\r\n }\r\n\r\n @observable beginDate: moment.Moment;\r\n @observable rating: SchoolContentItemProgressRating;\r\n\r\n static fromJson(json: any): SchoolLibraryItemProgress {\r\n return new SchoolLibraryItemProgress({\r\n ...json,\r\n beginDate: json.createdDate ? moment(json.createdDate) : undefined,\r\n rating: json.rating ? SchoolContentItemProgressRating.fromJson(json.rating) : null,\r\n });\r\n }\r\n\r\n @action update(progress: Partial) {\r\n super.update(progress);\r\n }\r\n}\r\n","import { observable, action, computed } from 'mobx';\r\nimport { LibraryItem } from '@axl/accel-framework/models';\r\nimport moment from 'moment';\r\nimport { LibraryItemType } from '@axl/accel-framework/models/library/item/library-item';\r\nimport { isNil } from 'lodash';\r\nimport { TimeSpan, isEmpty } from '@axl/accel-framework/utils';\r\nimport SchoolLibraryItemProgress from '../school-library-item-progress/school-library-item-progress';\r\n\r\nexport declare type LibraryItemTab = 'article' | 'rating';\r\n\r\nexport type SchoolLibraryItemAvailability = {\r\n result: boolean,\r\n isSection?: boolean,\r\n willBeAvailableOn?: moment.Moment,\r\n}\r\n\r\nexport default class SchoolLibraryItem extends LibraryItem {\r\n constructor(item?: Partial) {\r\n super(item);\r\n if (item) this.update(item);\r\n }\r\n\r\n @observable parentItem: SchoolLibraryItem | null;\r\n @observable children: SchoolLibraryItem[] = [];\r\n @observable section: SchoolLibraryItem | null;\r\n @observable previousItem: SchoolLibraryItem | null;\r\n @observable nextItem: SchoolLibraryItem | null;\r\n @observable studentHasAccess: boolean;\r\n @observable flowBeginDate?: Date | null;\r\n @observable progress: SchoolLibraryItemProgress;\r\n\r\n @computed get ratingVisible(): boolean {\r\n return this.allowComments || this.ratingEnabled;\r\n }\r\n\r\n @observable private _tab: LibraryItemTab;\r\n @computed get tab() { return this._tab; }\r\n set tab(value: LibraryItemTab) {\r\n switch (value) {\r\n case 'article': {\r\n this._tab = 'article';\r\n return;\r\n }\r\n case 'rating': {\r\n if (this.allowComments || this.ratingEnabled) {\r\n this._tab = 'rating';\r\n return;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n @computed get completed() {\r\n return !isEmpty(this.progress);\r\n }\r\n\r\n @computed get fullPosition() {\r\n let position = '';\r\n let section = this.section;\r\n while (section != null) {\r\n position += `${section.position}.`;\r\n section = section.section;\r\n }\r\n position += this.position;\r\n return position;\r\n }\r\n\r\n @computed get lastChild() {\r\n return this.getLastNestedStep();\r\n }\r\n\r\n getLastNestedStep(): SchoolLibraryItem | null {\r\n if (this.type == LibraryItemType.Article || this.children.length == 0)\r\n return null;\r\n\r\n for (const child of this.children.slice().reverse()) {\r\n if (child.type == LibraryItemType.Article)\r\n return child;\r\n\r\n const step = child.getLastNestedStep();\r\n if (step != null)\r\n return step;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get firstChild() {\r\n return this.getFirstNestedStep();\r\n }\r\n\r\n getFirstNestedStep(): SchoolLibraryItem | null {\r\n if (this.type == LibraryItemType.Article || this.children.length == 0)\r\n return null;\r\n\r\n const steps = this.children.filter(i => i.type == LibraryItemType.Article);\r\n if (steps.length > 0)\r\n return steps[0];\r\n\r\n for (const child of this.children) {\r\n const step = child.getFirstNestedStep();\r\n if (step != null)\r\n return step;\r\n }\r\n return null;\r\n }\r\n\r\n @computed private get parentAvailability(): SchoolLibraryItemAvailability {\r\n if (this.section != null)\r\n return this.section.availability;\r\n return { result: true };\r\n }\r\n\r\n @computed get canSelect() { return this.availability.result; }\r\n @computed get availability(): SchoolLibraryItemAvailability {\r\n const parentAvailability = this.parentAvailability;\r\n if (!parentAvailability.result)\r\n return { ...parentAvailability, isSection: true };\r\n if (!this.availabilityRelativeToTimeDelay.result)\r\n return this.availabilityRelativeToTimeDelay;\r\n if (!this.studentHasAccess)\r\n return { result: false };\r\n return { result: true };\r\n }\r\n\r\n @computed private get availabilityRelativeToTimeDelay(): SchoolLibraryItemAvailability {\r\n if (this.flowTimeDelayActive) {\r\n switch (this.flowTimeDelayCondition) {\r\n case 'flowStart': {\r\n if (this.flowBeginDate == null)\r\n break;\r\n const now = moment();\r\n const delay = moment(this.flowBeginDate)\r\n .add(this.flowTimeDelayValue.milliseconds, 'milliseconds');\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n }\r\n }\r\n return { result: true };\r\n }\r\n\r\n static fromJson(json: any): SchoolLibraryItem {\r\n const base = LibraryItem.fromJson(json);\r\n const item = new SchoolLibraryItem({\r\n ...base,\r\n studentHasAccess: json.studentHasAccess,\r\n parentItem: json.parentItem ? SchoolLibraryItem.fromJson(json.parentItem) : null,\r\n progress: json.progress ? SchoolLibraryItemProgress.fromJson(json.progress) : undefined,\r\n });\r\n return item;\r\n }\r\n\r\n @action\r\n update(schoolLibraryItem: Partial) {\r\n super.update(schoolLibraryItem);\r\n }\r\n\r\n @computed private get flowTimeDelayValue() {\r\n if (isNil(this.flowTimeDelay))\r\n return TimeSpan.zero;\r\n\r\n return TimeSpan.fromTimeMeasure(this.flowTimeDelay, this.flowTimeDelayMeasureType ?? 'days');\r\n }\r\n}\r\n\r\n","import { BaseFilter } from '@axl/accel-framework/models';\r\nimport { SortingDirection } from '@axl/accel-framework/enums';\r\nimport SchoolLibraryItem from './school-library-item';\r\n\r\nexport default class SchoolLibraryItemFilter extends BaseFilter {\r\n constructor(filter?: Partial) {\r\n super();\r\n this.sortName = 'position';\r\n this.sortType = SortingDirection.asc;\r\n if (filter) this.update(filter);\r\n }\r\n libraryId: string;\r\n /**\r\n * Item we'd like to select\r\n * In addition to root branch, request the item section branch\r\n */\r\n libraryItemId: string;\r\n /**\r\n * Request only the section items\r\n */\r\n sectionId: string;\r\n\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}","import { BaseFilter, Entity, SchoolContentItemType, SchoolContentSectionType } from '@axl/accel-framework/models';\r\nimport { observable, action, computed } from 'mobx';\r\nimport SchoolCourse from '../school-course/school-course';\r\nimport SchoolLibrary from '../school-library/school-library';\r\nimport { SchoolCourseType } from '../school-course/school-course-filter';\r\n\r\n\r\nexport class SchoolContentItem extends Entity {\r\n constructor(item?: Partial) {\r\n super(item);\r\n if (item) this.update(item);\r\n }\r\n\r\n @observable title: string;\r\n @observable description: string;\r\n @observable coverCloudKey: string;\r\n\r\n @observable createdDate: Date;\r\n @observable updatedDate: Date;\r\n @observable position: number;\r\n @observable parentId: string | null;\r\n @observable parent: SchoolContentItem | null;\r\n @observable course?: SchoolCourse;\r\n @observable library?: SchoolLibrary;\r\n @observable type: SchoolContentItemType;\r\n @observable sectionType: SchoolContentSectionType;\r\n @observable children: SchoolContentItem[];\r\n\r\n @computed get progress(): number {\r\n if(this.sectionType == SchoolContentSectionType.Library) return 0;\r\n if (this.type == SchoolContentItemType.Item)\r\n return this.course?.studentCourse?.progress ?? 0;\r\n\r\n let progress = 0;\r\n this.children.forEach(x => progress += x.progress);\r\n progress /= this.children.length;\r\n return progress;\r\n }\r\n\r\n @computed get itemCount() {\r\n if (this.type == SchoolContentItemType.Item) return 1;\r\n let count = 0;\r\n for (const child of this.children) {\r\n count += child.itemCount;\r\n }\r\n return count;\r\n }\r\n\r\n static fromJson(json: any): SchoolContentItem {\r\n const item = new SchoolContentItem({\r\n id: json.id,\r\n title: json.title,\r\n description: json.description,\r\n type: json.type,\r\n sectionType: json.sectionType,\r\n position: json.position,\r\n createdDate: json.createdDate ? new Date(json.createdDate) : undefined,\r\n updatedDate: json.updatedDate ? new Date(json.updatedDate) : undefined,\r\n coverCloudKey: json.coverCloudKey,\r\n parentId: json.parentId,\r\n parent: json.parent ? SchoolContentItem.fromJson(json.parent) : json.parent === null ? null : undefined,\r\n course: json.course ? SchoolCourse.fromJson(json.course) : undefined,\r\n library: json.library ? SchoolLibrary.fromJson(json.library) : undefined,\r\n children: json.children ? json.children.map(SchoolContentItem.fromJson) : []\r\n });\r\n item.children.forEach(x => x.update({ parent: item }));\r\n return item;\r\n }\r\n\r\n @action\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}\r\n\r\nexport class SchoolContentItemFilter extends BaseFilter {\r\n constructor(filter?: Partial) {\r\n super();\r\n if (filter) this.update(filter);\r\n }\r\n\r\n courseType: SchoolCourseType;\r\n onlyAvailable: boolean;\r\n sectionType: SchoolContentSectionType;\r\n \r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport StudentCourseFilter from 'models/student-course/student-course-filter';\r\nimport { StudentCourse } from 'models';\r\n\r\nexport class FetchStudentCoursesRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n state,\r\n progress,\r\n course{\r\n id,\r\n name,\r\n shortDescription,\r\n primaryImage{\r\n file{\r\n id,\r\n cloudKey\r\n }\r\n }\r\n }\r\n }`;\r\n public url: string = '/student-course';\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter?: StudentCourseFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCoursesResponse extends ApiResponse {\r\n public filter: StudentCourseFilter;\r\n public items: StudentCourse[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new StudentCourseFilter(this.body.filter);\r\n this.items = this.body.items.map(StudentCourse.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourse } from 'models';\r\n\r\nexport class FetchStudentCourseRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n beginDate,\r\n endDate,\r\n state,\r\n flowBeginDate,\r\n accessBeginDate,\r\n accessEndDate,\r\n isSubscription,\r\n course{\r\n id,\r\n name,\r\n dontAskFeedback\r\n },\r\n currentCourseItem{\r\n id\r\n }, \r\n feedback,\r\n progress,\r\n student{\r\n id\r\n }\r\n }`;\r\n public url: string = `/student-course/${this.courseItemId}`;\r\n\r\n constructor(public courseItemId: string, fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseResponse extends ApiResponse {\r\n public studentCourse: StudentCourse;\r\n public hasItemAccess: boolean;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourse = StudentCourse.fromJson(this.body.studentCourse);\r\n this.hasItemAccess = this.body.hasItemAccess;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class StartCourseRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public body = {\r\n courseId: this.courseId\r\n }\r\n public url: string = `/student-course`;\r\n\r\n constructor(public courseId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class StartCourseResponse extends ApiResponse {\r\n public studentCourseId: string;\r\n public currentCourseItemId: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourseId = this.body.studentCourseId;\r\n this.currentCourseItemId = this.body.currentCourseItemId;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class SendFeedbackRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n text: this.text\r\n }\r\n public url: string = `/student-course/send-feedback`;\r\n\r\n constructor(public studentCourseId: string, public text: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SendFeedbackResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchStudentCoursesRequest, FetchStudentCoursesResponse } from './types/fetch-student-courses';\r\nimport { FetchStudentCourseRequest, FetchStudentCourseResponse } from './types/fetch-student-course';\r\nimport { StartCourseRequest, StartCourseResponse } from './types/start-course';\r\nimport { SendFeedbackRequest, SendFeedbackResponse } from './types/send-feedback';\r\n\r\nexport default class StudentCourseApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchStudentCoursesRequest) {\r\n return await this.api.execute(request, FetchStudentCoursesResponse);\r\n }\r\n\r\n public async fetchItem(request: FetchStudentCourseRequest) {\r\n return await this.api.execute(request, FetchStudentCourseResponse);\r\n }\r\n\r\n public async startCourse(request: StartCourseRequest) {\r\n return await this.api.execute(request, StartCourseResponse);\r\n }\r\n\r\n public async sendFeedback(request: SendFeedbackRequest) {\r\n return await this.api.execute(request, SendFeedbackResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItem, SchoolContentItemFilter } from 'models';\r\n\r\nexport class FetchSchoolCoursesRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/school-course`;\r\n public body = {\r\n ...this.filter\r\n }\r\n\r\n constructor(public filter: SchoolContentItemFilter, fields?: string) {\r\n super();\r\n if (fields)\r\n this.fields = fields;\r\n }\r\n}\r\n\r\nexport class FetchSchoolCoursesResponse extends ApiResponse {\r\n public items: SchoolContentItem[];\r\n public filter: SchoolContentItemFilter;\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(SchoolContentItem.fromJson);\r\n this.filter = new SchoolContentItemFilter(this.body.filter);\r\n }\r\n}\r\n","import Api from 'api';\r\nimport { FetchSchoolCoursesRequest, FetchSchoolCoursesResponse } from './types/fetch';\r\n\r\nexport default class SchoolCourseApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchSchoolCoursesRequest) {\r\n return await this.api.execute(request, FetchSchoolCoursesResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItemFilter, StudentCourseItem } from 'models';\r\n\r\nexport class FetchStudentCourseItemsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/student-course-item';\r\n public body = {\r\n ...this.filter,\r\n }\r\n public fields = `{\r\n id,\r\n parentItemId,\r\n title,\r\n type,\r\n position,\r\n availability,\r\n disableTimeLimits,\r\n regularTimeDelayActive,\r\n regularTimeDelay,\r\n regularTimeDelayCondition,\r\n regularTimeDelayMeasureType,\r\n regularWaitUntilTimeActive,\r\n regularWaitUntilTime,\r\n regularWaitUntilTimeDaysOfWeekActive,\r\n regularWaitUntilDaysOfWeek,\r\n flowTimeDelayActive,\r\n flowTimeDelay,\r\n flowTimeDelayCondition,\r\n flowTimeDelayMeasureType,\r\n flowWaitUntilTimeActive,\r\n flowWaitUntilTime,\r\n flowWaitUntilTimeDaysOfWeekActive,\r\n flowWaitUntilDaysOfWeek,\r\n dateDelayActive,\r\n dateDelay,\r\n preventCopingAndSelectingText,\r\n blockCourseUntilTasksApproved,\r\n isOptional,\r\n allowComments,\r\n showComments,\r\n ratingEnabled,\r\n ratingRequired,\r\n ratingCommentRequired,\r\n theoryVisible,\r\n testsVisible,\r\n tasksVisible,\r\n requiredPlans,\r\n progress{\r\n id,\r\n beginDate,\r\n completeDate,\r\n precompleteDate,\r\n status,\r\n theoryStatus,\r\n testStatus,\r\n taskStatus,\r\n numberUncheckedTasks,\r\n numberCorrectTasks,\r\n numberIncorrectTasks,\r\n },\r\n tasks{\r\n id,\r\n }\r\n }`;\r\n\r\n\r\n constructor(public filter?: StudentCourseItemFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseItemsResponse extends ApiResponse {\r\n public filter: StudentCourseItemFilter;\r\n public items: StudentCourseItem[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new StudentCourseItemFilter(this.body.filter);\r\n this.items = this.body.items.map(StudentCourseItem.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n \r\n public url: string = `/student-course-item/${this.studentCourseId}/${this.courseItemId}`;\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseItemResponse extends ApiResponse {\r\n public studentCourseItem: StudentCourseItem;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourseItem = StudentCourseItem.fromJson(this.body);\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class CompleteCourseItemTheoryRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/student-course-item/complete-theory`;\r\n public body = {\r\n studentCourseItemProgressId: this.studentCourseItemProgressId\r\n }\r\n\r\n constructor(public studentCourseItemProgressId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CompleteCourseItemTheoryResponse extends ApiResponse {\r\n progress: StudentCourseProgress;\r\n constructor(response: any) {\r\n super(response);\r\n this.progress = StudentCourseProgress.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { CourseItemTaskAnswerStatus } from '@axl/accel-framework/models';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\ntype CourseItemTaskFieldModel = {\r\n id: string;\r\n value: any;\r\n}\r\n\r\nexport type CreateTaskAnswerRequestModel = {\r\n courseItemTaskId: string,\r\n studentCourseItemProgressId: string,\r\n text: string,\r\n files: string[],\r\n fields: CourseItemTaskFieldModel[]\r\n}\r\nexport class CreateTaskAnswerRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-item/task-answer`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: CreateTaskAnswerRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateTaskAnswerResponse extends ApiResponse {\r\n id: string;\r\n status: CourseItemTaskAnswerStatus;\r\n progress: StudentCourseProgress;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body.answerId;\r\n this.status = this.body.answerStatus;\r\n this.progress = StudentCourseProgress.fromJson(this.body.progress);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\nimport { CourseItemTaskAnswerStatus } from '@axl/accel-framework/models';\r\n\r\ntype CourseItemTaskFieldModel = {\r\n id: string;\r\n value: any;\r\n}\r\n\r\nexport type SaveTaskAnswerRequestModel = {\r\n id: string,\r\n text: string,\r\n files: string[],\r\n fields: CourseItemTaskFieldModel[]\r\n}\r\nexport class SaveTaskAnswerRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/student-course-item/task-answer`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: SaveTaskAnswerRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveTaskAnswerResponse extends ApiResponse {\r\n progress: StudentCourseProgress;\r\n status: CourseItemTaskAnswerStatus;\r\n\r\n constructor(response: any) {\r\n super(response);\r\n this.status = this.body.answerStatus;\r\n this.progress = StudentCourseProgress.fromJson(this.body.progress);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type CreateTaskAnswerCommentRequestModel = {\r\n answerId: string,\r\n comment: string,\r\n files: string[]\r\n}\r\nexport class CreateTaskAnswerCommentRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-item/task-answer/comment`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: CreateTaskAnswerCommentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateTaskAnswerCommentResponse extends ApiResponse {\r\n id: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class ResetTaskAnswerStatusRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/student-course-item/task-answer/reset-status`;\r\n public body = {\r\n answerId: this.answerId,\r\n }\r\n\r\n constructor(public answerId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ResetTaskAnswerStatusResponse extends ApiResponse {\r\n progress: StudentCourseProgress;\r\n constructor(response: any) {\r\n super(response);\r\n this.progress = StudentCourseProgress.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteTaskAnswerCommentRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/student-course-item/task-answer/comment/${this.commentId}`;\r\n\r\n constructor(public commentId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteTaskAnswerCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type SaveTaskAnswerCommentRequestModel = {\r\n commentId: string,\r\n comment: string,\r\n files: string[]\r\n}\r\nexport class SaveTaskAnswerCommentRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/student-course-item/task-answer/comment`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: SaveTaskAnswerCommentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveTaskAnswerCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { CourseItemTaskAnswerComment, CourseItemTaskAnswerCommentFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchTaskAnswerCommentsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n \r\n public url: string = `/student-course-item/task-answer/comment`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter?: CourseItemTaskAnswerCommentFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchTaskAnswerCommentsResponse extends ApiResponse {\r\n public items: CourseItemTaskAnswerComment[];\r\n public filter: CourseItemTaskAnswerCommentFilter;\r\n\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new CourseItemTaskAnswerCommentFilter(this.body.filter);\r\n this.items = this.body.items.map(CourseItemTaskAnswerComment.fromJson);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchStudentCourseItemsRequest, FetchStudentCourseItemsResponse } from './types/fetch-student-course-items';\r\nimport { FetchStudentCourseItemRequest, FetchStudentCourseItemResponse } from './types/fetch-student-course-item';\r\nimport { CompleteCourseItemTheoryRequest, CompleteCourseItemTheoryResponse } from './types/complete-course-item-theory';\r\nimport { CreateTaskAnswerRequest, CreateTaskAnswerResponse } from './types/create-task-answer';\r\nimport { SaveTaskAnswerRequest, SaveTaskAnswerResponse } from './types/save-task-answer';\r\nimport { CreateTaskAnswerCommentRequest, CreateTaskAnswerCommentResponse } from './types/create-task-answer-comment';\r\nimport { ResetTaskAnswerStatusRequest, ResetTaskAnswerStatusResponse } from './types/reset-task-answer-status';\r\nimport { DeleteTaskAnswerCommentRequest, DeleteTaskAnswerCommentResponse } from './types/delete-task-answer-comment';\r\nimport { SaveTaskAnswerCommentRequest, SaveTaskAnswerCommentResponse } from './types/save-task-answer-comment';\r\nimport { FetchTaskAnswerCommentsRequest, FetchTaskAnswerCommentsResponse } from './types/fetch-task-answer-comments';\r\nimport StudentCourseProgress from 'models/student-course/student-course-progress/student-course-progress';\r\n\r\nexport default class StudentCourseItemApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchStudentCourseItemsRequest) {\r\n return await this.api.execute(request, FetchStudentCourseItemsResponse);\r\n }\r\n\r\n public async fetchItem(request: FetchStudentCourseItemRequest) {\r\n return await this.api.execute(request, FetchStudentCourseItemResponse);\r\n }\r\n\r\n public async completeTheory(request: CompleteCourseItemTheoryRequest) {\r\n return await this.api.execute(request, CompleteCourseItemTheoryResponse);\r\n }\r\n\r\n completeTest = (studentCourseItemProgressId: string, courseItemTestId: string, isRight: boolean) =>\r\n this.api.post(`/student-course-item/complete-test`, { studentCourseItemProgressId, courseItemTestId, isRight }, json => StudentCourseProgress.fromJson(json));\r\n\r\n public async createTaskAnswer(request: CreateTaskAnswerRequest) {\r\n return await this.api.execute(request, CreateTaskAnswerResponse);\r\n }\r\n\r\n public async saveTaskAnswer(request: SaveTaskAnswerRequest) {\r\n return await this.api.execute(request, SaveTaskAnswerResponse);\r\n }\r\n\r\n public async createTaskAnswerComment(request: CreateTaskAnswerCommentRequest) {\r\n return await this.api.execute(request, CreateTaskAnswerCommentResponse);\r\n }\r\n\r\n public async saveTaskAnswerComment(request: SaveTaskAnswerCommentRequest) {\r\n return await this.api.execute(request, SaveTaskAnswerCommentResponse);\r\n }\r\n\r\n public async deleteTaskAnswerComment(request: DeleteTaskAnswerCommentRequest) {\r\n return await this.api.execute(request, DeleteTaskAnswerCommentResponse);\r\n }\r\n\r\n public async resetTaskAnswerStatus(request: ResetTaskAnswerStatusRequest) {\r\n return await this.api.execute(request, ResetTaskAnswerStatusResponse);\r\n }\r\n\r\n public async fetchTaskAnswerComments(request: FetchTaskAnswerCommentsRequest) {\r\n return await this.api.execute(request, FetchTaskAnswerCommentsResponse);\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { School } from 'models';\r\n\r\nexport class FetchSchoolSettingsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/school-setting`;\r\n\r\n constructor(fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchSchoolSettingsResponse extends ApiResponse {\r\n public school: School;\r\n constructor(response: any) {\r\n super(response);\r\n this.school = School.fromJson(this.body);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchSchoolSettingsRequest, FetchSchoolSettingsResponse } from './fetch-school-settings';\r\n\r\nexport default class SchoolSettingsApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchSchoolSettingsRequest) {\r\n return await this.api.execute(request, FetchSchoolSettingsResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Gender } from '@axl/accel-framework/enums';\r\nimport { type Moment } from 'moment';\r\n\r\nexport type SaveStudentModel = {\r\n avatarId?: string;\r\n email?: string;\r\n firstName?: string;\r\n middleName?: string;\r\n lastName?: string;\r\n phone?: string;\r\n gender?: Gender;\r\n birthday?: Moment;\r\n password?: string;\r\n};\r\n\r\nexport class SaveStudentRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body = {\r\n ...this.model\r\n }\r\n public url: string = `/student`;\r\n\r\n constructor(public model: SaveStudentModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveStudentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ResendEmailConfirmationRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student/resend-email-confirmation`;\r\n}\r\n\r\nexport class ResendEmailConfirmationResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\n\r\nexport class SelectLangRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/student/select-lang';\r\n public body: any = {\r\n lang: this.lang\r\n };\r\n\r\n constructor(public lang: Lang) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SelectLangResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type UpdatePasswordModel = {\r\n password: string;\r\n};\r\n\r\nexport class UpdatePasswordRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body = {\r\n ...this.model\r\n }\r\n public url: string = `/student/update-password`;\r\n\r\n constructor(public model: UpdatePasswordModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UpdatePasswordResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { ApiRequest, ApiResponse, HttpMethod, toOptional } from '@axl/accel-framework/api';\r\nimport { ContactLicense, ContactLicenseFilter } from '@axl/accel-framework/models';\r\n\r\nexport default class SubscriptionApi {\r\n constructor(private api: Api) { }\r\n\r\n public async fetch(request: FetchSubscriptionsRequest) {\r\n return await this.api.execute(request, FetchSubcriptionsResponse);\r\n }\r\n\r\n public async fetchItem(request: FetchSubscriptionRequest) {\r\n return await this.api.execute(request, FetchSubcriptionResponse);\r\n }\r\n\r\n public async save(request: SaveSubscriptionRequest) {\r\n return await this.api.execute(request, SaveSubscriptionResponse);\r\n }\r\n}\r\n\r\n\r\nexport class FetchSubscriptionRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/student/subscription/${this.id}`;\r\n\r\n constructor(public id: string, fields?: string) {\r\n super();\r\n this.fields = fields ?? `{\r\n id,\r\n beginDate,\r\n endDate,\r\n creditEndDate,\r\n type,\r\n state,\r\n product{\r\n id,\r\n name,\r\n subsPrice,\r\n subsDuration,\r\n subsDurationType,\r\n image{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }\r\n },\r\n currentSuspension{\r\n id,\r\n beginDate,\r\n endDate\r\n }\r\n }`;\r\n }\r\n\r\n}\r\n\r\nexport class FetchSubcriptionResponse extends ApiResponse {\r\n public subscription: ContactLicense;\r\n constructor(response: any) {\r\n super(response);\r\n this.subscription = ContactLicense.fromJson(this.body);\r\n }\r\n}\r\n\r\n\r\nexport class FetchSubscriptionsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/student/subscription';\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter: ContactLicenseFilter, fields?: string) {\r\n super();\r\n this.fields = fields ?? `{\r\n id,\r\n beginDate,\r\n endDate,\r\n creditEndDate,\r\n type,\r\n state,\r\n product{\r\n id,\r\n name,\r\n subsPrice,\r\n subsDuration,\r\n subsDurationType,\r\n image{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }\r\n },\r\n currentSuspension{\r\n id,\r\n beginDate,\r\n endDate\r\n }\r\n }`;\r\n }\r\n\r\n}\r\n\r\nexport class FetchSubcriptionsResponse extends ApiResponse {\r\n public filter: ContactLicenseFilter;\r\n public items: ContactLicense[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new ContactLicenseFilter(this.body.filter);\r\n this.items = this.body.items.map(ContactLicense.fromJson);\r\n }\r\n}\r\n\r\nexport class SaveSubscriptionRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/student/subscription';\r\n public body = {\r\n id: this.license.id,\r\n state: toOptional(this.license.state)\r\n }\r\n\r\n constructor(public license: PartialBut) {\r\n super();\r\n }\r\n\r\n}\r\n\r\nexport class SaveSubscriptionResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { ContactLicense, ContactLicenseFilter } from '@axl/accel-framework/models';\r\n\r\nexport default class LicenseApi {\r\n constructor(private api: Api) { }\r\n\r\n public async fetch(request: FetchLicensesRequest) {\r\n return await this.api.execute(request, FetchLicensesResponse);\r\n }\r\n}\r\n\r\n\r\nexport class FetchLicensesRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/student/license';\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter: ContactLicenseFilter, fields?: string) {\r\n super();\r\n this.fields = fields ?? `{\r\n id,\r\n beginDate,\r\n endDate,\r\n type,\r\n coursePlan {\r\n id,\r\n name,\r\n softDeleted,\r\n course {\r\n id,\r\n name,\r\n softDeleted\r\n }\r\n },\r\n course {\r\n id,\r\n name,\r\n softDeleted,\r\n primaryImage{\r\n id,\r\n file{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }\r\n }\r\n },\r\n libraryAccess{\r\n library{\r\n id,\r\n name,\r\n softDeleted,\r\n primaryImage{\r\n id,\r\n file{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }\r\n }\r\n }\r\n }\r\n }`;\r\n }\r\n\r\n}\r\n\r\nexport class FetchLicensesResponse extends ApiResponse {\r\n public filter: ContactLicenseFilter;\r\n public items: ContactLicense[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new ContactLicenseFilter(this.body.filter);\r\n this.items = this.body.items.map(ContactLicense.fromJson);\r\n }\r\n}","import Api from 'api';\r\nimport { SaveStudentRequest, SaveStudentResponse } from './types/save-student';\r\nimport { ResendEmailConfirmationRequest, ResendEmailConfirmationResponse } from './types/resend-email-confirmation';\r\nimport { SelectLangRequest, SelectLangResponse } from './types/select-lang';\r\nimport { UpdatePasswordRequest, UpdatePasswordResponse } from './types/update-password';\r\nimport SubscriptionApi from './subscription';\r\nimport { CrudApi } from '@axl/accel-framework/api';\r\nimport { PurchaseOrder, StudentBonusTransaction } from '@axl/accel-framework/models';\r\nimport LicenseApi from './license';\r\n\r\nexport default class StudentApi {\r\n constructor(private api: Api) { }\r\n\r\n public async save(request: SaveStudentRequest) {\r\n return await this.api.execute(request, SaveStudentResponse);\r\n }\r\n\r\n public async updatePassword(request: UpdatePasswordRequest) {\r\n return await this.api.execute(request, UpdatePasswordResponse);\r\n }\r\n\r\n public async resendEmailConfirmation(request: ResendEmailConfirmationRequest) {\r\n return await this.api.execute(request, ResendEmailConfirmationResponse);\r\n }\r\n\r\n public async selectLang(request: SelectLangRequest) {\r\n return await this.api.execute(request, SelectLangResponse);\r\n }\r\n\r\n public license = new LicenseApi(this.api);\r\n public subscription = new SubscriptionApi(this.api);\r\n public order = new OrderApi(this.api);\r\n bonusTransaction = new BonusTransactionApi(this.api);\r\n}\r\n\r\nexport class OrderApi extends CrudApi {\r\n\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/student/order',\r\n parse: e => PurchaseOrder.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n createdDate,\r\n paidDate,\r\n currency,\r\n isDigitalDelivery,\r\n fullyPaid,\r\n shippingPrice,\r\n totalAmount,\r\n paidAmount,\r\n savingsAmount,\r\n status,\r\n completed,\r\n number,\r\n contents{\r\n id,\r\n quantity,\r\n product{\r\n id,\r\n name,\r\n type,\r\n price,\r\n softDeleted\r\n }\r\n }\r\n }`\r\n });\r\n }\r\n}\r\n\r\nexport class BonusTransactionApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/student/bonus-transaction',\r\n parse: e => StudentBonusTransaction.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n amount,\r\n comment,\r\n createdDate,\r\n order{\r\n id,\r\n number\r\n },\r\n type,\r\n transaction{\r\n id\r\n },\r\n validUntilDate\r\n }`\r\n });\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ContactInFilterRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/service/contact-in-filter';\r\n\r\n public body: any = {\r\n f: this.filterId,\r\n c: this.contactId\r\n };\r\n\r\n constructor(public filterId: string, public contactId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ContactInFilterResponse extends ApiResponse {\r\n public isInFilter: boolean;\r\n constructor(response?: any) {\r\n super(response);\r\n this.isInFilter = response.body.isInFilter;\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class KeepaliveRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/service/keepalive';\r\n}\r\n\r\nexport class KeepaliveResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type RunCustomEventRequestModel = {\r\n courseItemId: string,\r\n sitePageId: string,\r\n widgetId: string,\r\n eventName: string\r\n}\r\n\r\nexport class RunCustomEventRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/service/run-custom-event';\r\n \r\n public body = {\r\n ...this.model\r\n }\r\n\r\n\r\n constructor(public model: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RunCustomEventResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type TrackFormModel = {\r\n courseId?: string;\r\n courseItemId?: string;\r\n libraryItemId?: string;\r\n libraryId?: string;\r\n name?: string;\r\n fields: any;\r\n}\r\n\r\nexport class TrackFormRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/t/f`;\r\n\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class TrackFormResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class UpdateLocalizationRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/service/update-localization';\r\n}\r\n\r\nexport class UpdateLocalizationResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { ContactInFilterRequest, ContactInFilterResponse } from './types/contact-in-filter';\r\nimport { KeepaliveRequest, KeepaliveResponse } from './types/keepalive';\r\nimport { RunCustomEventRequest, RunCustomEventResponse } from './types/run-custom-event';\r\nimport { TrackFormRequest, TrackFormResponse } from './types/track-form';\r\nimport { UpdateLocalizationRequest, UpdateLocalizationResponse } from './types/update-localization';\r\n\r\nexport default class ServiceApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async keepalive(request: KeepaliveRequest) {\r\n return await this.api.execute(request, KeepaliveResponse);\r\n }\r\n\r\n public async updateLocalization(request: UpdateLocalizationRequest) {\r\n return await this.api.execute(request, UpdateLocalizationResponse);\r\n }\r\n\r\n public async runCustomEvent(request: RunCustomEventRequest) {\r\n return await this.api.execute(request, RunCustomEventResponse);\r\n }\r\n\r\n public async contactInFilter(request: ContactInFilterRequest) {\r\n return await this.api.execute(request, ContactInFilterResponse);\r\n }\r\n\r\n public async trackForm(request: TrackFormRequest) {\r\n return await this.api.execute(request, TrackFormResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchCourseItemsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n\r\n public url: string = `/course-preview/${this.courseId}/items`;\r\n public body: any = {\r\n planId: this.planId\r\n };\r\n\r\n constructor(public courseId: string, public planId?: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCourseItemsResponse extends ApiResponse {\r\n items: StudentCourseItem[];\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(StudentCourseItem.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n \r\n public url: string = `/course-preview/${this.courseId}/items/${this.itemId}`;\r\n\r\n constructor(public courseId: string, public itemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCourseItemResponse extends ApiResponse {\r\n courseItem: StudentCourseItem;\r\n constructor(response: any) {\r\n super(response);\r\n this.courseItem = StudentCourseItem.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Course } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCourseRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n name\r\n }`;\r\n public url: string = `/course-preview/${this.id}`;\r\n\r\n constructor(public id: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCourseResponse extends ApiResponse {\r\n course: Course;\r\n constructor(response: any) {\r\n super(response);\r\n this.course = Course.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { CoursePlanFilter, CoursePlan } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCoursePlansRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n name,\r\n disableTimeLimits,\r\n softDeleted\r\n }`;\r\n public url: string = `/course-preview/${this.courseId}/plans`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public courseId: string, public filter?: CoursePlanFilter, fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchCoursePlansResponse extends ApiResponse {\r\n public filter: CoursePlanFilter;\r\n public items: CoursePlan[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new CoursePlanFilter(this.body.filter);\r\n this.items = this.body.items.map(CoursePlan.fromJson);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchCourseItemsRequest, FetchCourseItemsResponse } from './types/fetch-course-items';\r\nimport { FetchCourseItemRequest, FetchCourseItemResponse } from './types/fetch-course-item';\r\nimport { FetchCourseRequest, FetchCourseResponse } from './types/fetch-course';\r\nimport { FetchCoursePlansRequest, FetchCoursePlansResponse } from './types/fetch-course-plans';\r\n\r\nexport default class CoursePreviewApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetchCourse(request: FetchCourseRequest) {\r\n return await this.api.execute(request, FetchCourseResponse);\r\n }\r\n\r\n public async fetchCourseItem(request: FetchCourseItemRequest) {\r\n return await this.api.execute(request, FetchCourseItemResponse);\r\n }\r\n\r\n public async fetchCourseItems(request: FetchCourseItemsRequest) {\r\n return await this.api.execute(request, FetchCourseItemsResponse);\r\n }\r\n\r\n public async fetchCoursePlans(request: FetchCoursePlansRequest){\r\n return await this.api.execute(request, FetchCoursePlansResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourse } from 'models';\r\n\r\nexport class FetchStudentCourseRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n beginDate,\r\n endDate,\r\n state,\r\n flowBeginDate,\r\n accessBeginDate,\r\n course{\r\n id,\r\n name,\r\n dontAskFeedback\r\n },\r\n currentCourseItem{\r\n id\r\n }, \r\n student{\r\n id,\r\n firstName,\r\n lastName\r\n },\r\n progress\r\n }`;\r\n public url: string = `/student-course-preview/${this.studentCourseId}`;\r\n\r\n constructor(public studentCourseId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseResponse extends ApiResponse {\r\n studentCourse: StudentCourse;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourse = StudentCourse.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n\r\n constructor(public studentCourseId: string, public itemId: string) {\r\n super();\r\n this.url = `/student-course-preview/${this.studentCourseId}/items/${this.itemId}`;\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseItemResponse extends ApiResponse {\r\n studentCourseItem: StudentCourseItem;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourseItem = StudentCourseItem.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchStudentCourseItemsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n\r\n public url: string = `/student-course-preview/${this.studentCourseId}/items`;\r\n\r\n constructor(public studentCourseId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseItemsResponse extends ApiResponse {\r\n items: StudentCourseItem[];\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(StudentCourseItem.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class CompleteStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-preview/item/complete`;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n courseItemId: this.courseItemId\r\n }\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CompleteStudentCourseItemResponse extends ApiResponse {\r\n progresses: StudentCourseProgress[];\r\n constructor(response: any) {\r\n super(response);\r\n this.progresses = this.body.map(StudentCourseProgress.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class ResetStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-preview/item/uncomplete`;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n courseItemId: this.courseItemId\r\n }\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ResetStudentCourseItemResponse extends ApiResponse {\r\n progresses: StudentCourseProgress[];\r\n constructor(response: any) {\r\n super(response);\r\n this.progresses = this.body.map(StudentCourseProgress.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class UnblockStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-preview/item/open`;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n courseItemId: this.courseItemId\r\n }\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UnblockStudentCourseItemResponse extends ApiResponse {\r\n progresses: StudentCourseProgress[];\r\n constructor(response: any) {\r\n super(response);\r\n this.progresses = this.body.map(StudentCourseProgress.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class BlockStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-preview/item/close`;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n courseItemId: this.courseItemId\r\n }\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class BlockStudentCourseItemResponse extends ApiResponse {\r\n progresses: StudentCourseProgress[];\r\n constructor(response: any) {\r\n super(response);\r\n this.progresses = this.body.map(StudentCourseProgress.fromJson);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchStudentCourseRequest, FetchStudentCourseResponse } from './types/fetch-student-course';\r\nimport { FetchStudentCourseItemRequest, FetchStudentCourseItemResponse } from './types/fetch-student-course-item';\r\nimport { FetchStudentCourseItemsRequest, FetchStudentCourseItemsResponse } from './types/fetch-student-course-items';\r\nimport { CompleteStudentCourseItemRequest, CompleteStudentCourseItemResponse } from './types/complete-student-course-item';\r\nimport { ResetStudentCourseItemRequest, ResetStudentCourseItemResponse } from './types/reset-student-course-item';\r\nimport { UnblockStudentCourseItemRequest, UnblockStudentCourseItemResponse } from './types/unblock-student-course-item';\r\nimport { BlockStudentCourseItemRequest, BlockStudentCourseItemResponse } from './types/block-student-course-item';\r\n\r\n\r\nexport default class StudentCoursePreviewApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetchStudentCourse(request: FetchStudentCourseRequest) {\r\n return await this.api.execute(request, FetchStudentCourseResponse);\r\n }\r\n\r\n public async fetchStudentCourseItem(request: FetchStudentCourseItemRequest) {\r\n return await this.api.execute(request, FetchStudentCourseItemResponse);\r\n }\r\n\r\n public async fetchStudentCourseItems(request: FetchStudentCourseItemsRequest) {\r\n return await this.api.execute(request, FetchStudentCourseItemsResponse);\r\n }\r\n\r\n public async completeStudentCourseItem(request: CompleteStudentCourseItemRequest) {\r\n return await this.api.execute(request, CompleteStudentCourseItemResponse);\r\n }\r\n\r\n public async resetStudentCourseItem(request: ResetStudentCourseItemRequest) {\r\n return await this.api.execute(request, ResetStudentCourseItemResponse);\r\n }\r\n\r\n public async unblockStudentCourseItem(request: UnblockStudentCourseItemRequest) {\r\n return await this.api.execute(request, UnblockStudentCourseItemResponse);\r\n }\r\n\r\n public async blockStudentCourseItem(request: BlockStudentCourseItemRequest) {\r\n return await this.api.execute(request, BlockStudentCourseItemResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { ForumThread, ForumTopic } from '@axl/accel-framework/models';\r\nimport type { BanStatus } from '../models/ban-status';\r\n\r\nexport class FetchForumThreadRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n canModerate,\r\n thread{\r\n id,\r\n title,\r\n description,\r\n designHTMLPublished,\r\n designStylePublished,\r\n canStudentCreateTopics,\r\n createdDate,\r\n updatedDate,\r\n lastActivityDate,\r\n topicCount,\r\n commentCount\r\n },\r\n threads{\r\n id,\r\n title,\r\n description,\r\n createdDate,\r\n updatedDate,\r\n lastActivityDate,\r\n topicCount,\r\n commentCount\r\n },\r\n topics{\r\n id,\r\n title,\r\n text,\r\n createdDate,\r\n updatedDate,\r\n lastActivityDate,\r\n commentCount,\r\n lastComment{\r\n id,\r\n createdDate,\r\n student{\r\n id,\r\n firstName,\r\n lastName\r\n }\r\n },\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n }\r\n },\r\n breadcrumbs(filter:\"{useSort:false}\"){\r\n id, \r\n title\r\n },\r\n banStatus{\r\n type,\r\n untilDate\r\n }\r\n }`;\r\n public url: string = this.threadId ? `/forum/thread/${this.threadId}` : '/forum/thread';\r\n\r\n constructor(public threadId: string | null) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchForumThreadResponse extends ApiResponse {\r\n canModerate: boolean;\r\n thread: ForumThread | null;\r\n threads: ForumThread[];\r\n topics: ForumTopic[];\r\n breadcrumbs: ForumThread[];\r\n banStatus: BanStatus | null;\r\n constructor(response: any) {\r\n super(response);\r\n this.canModerate = this.body.canModerate;\r\n this.thread = this.body.thread ? ForumThread.fromJson(this.body.thread) : null;\r\n this.threads = this.body.threads.map(ForumThread.fromJson);\r\n this.topics = this.body.topics.map(ForumTopic.fromJson);\r\n this.breadcrumbs = this.body.breadcrumbs.map(ForumThread.fromJson);\r\n this.banStatus = this.body.banStatus\r\n ? {\r\n ...this.body.banStatus,\r\n untilDate: this.body.banStatus.untilDate ? new Date(this.body.banStatus.untilDate) : null\r\n } : null\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type CreateTopicRequestModel = {\r\n threadId: string,\r\n title: string,\r\n text: string,\r\n files: string[]\r\n}\r\nexport class CreateTopicRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/forum/topic';\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: CreateTopicRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateTopicResponse extends ApiResponse {\r\n id: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { TopicComment, TopicCommentFilter } from '@axl/accel-framework/models';\r\n\r\nconst replyCommentFields = `\r\n id,\r\n text,\r\n createdDate,\r\n sequenceNumber,\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email,\r\n avatar {\r\n id,\r\n cloudKey\r\n }\r\n }\r\n `;\r\nconst commentFields = `{\r\n id,\r\n text,\r\n createdDate,\r\n updatedDate,\r\n sequenceNumber,\r\n replyToComment{\r\n ${replyCommentFields}\r\n }\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email,\r\n avatar {\r\n id,\r\n cloudKey\r\n }\r\n },\r\n files{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n },\r\n likeCount,\r\n dislikeCount,\r\n currentUserReaction{\r\n id,\r\n type\r\n }\r\n }`;\r\nexport { commentFields };\r\n\r\nexport class FetchTopicCommentsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = commentFields;\r\n public url: string = '/forum/topic/comment';\r\n public body = {\r\n ...this.filter\r\n }\r\n\r\n constructor(public filter: TopicCommentFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchTopicCommentsResponse extends ApiResponse {\r\n public items: TopicComment[];\r\n public filter: TopicCommentFilter;\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(TopicComment.fromJson);\r\n this.filter = new TopicCommentFilter(this.body.filter);\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { ForumTopic, ForumThread } from '@axl/accel-framework/models';\r\nimport type { BanStatus } from '../models/ban-status';\r\n\r\nexport class FetchTopicRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n canModerate,\r\n topic{\r\n id,\r\n title,\r\n text,\r\n createdDate,\r\n updatedDate,\r\n lastActivityDate,\r\n commentCount,\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email,\r\n avatar {\r\n id,\r\n cloudKey\r\n }\r\n },\r\n files{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n },\r\n likeCount,\r\n dislikeCount,\r\n currentUserReaction{\r\n id,\r\n type\r\n }\r\n },\r\n breadcrumbs(filter:\"{useSort:false}\"){\r\n id, \r\n title\r\n },\r\n banStatus{\r\n type,\r\n untilDate\r\n }\r\n }`;\r\n public url: string = `/forum/topic/${this.topicId}`;\r\n\r\n constructor(public topicId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchTopicResponse extends ApiResponse {\r\n canModerate: boolean;\r\n topic: ForumTopic;\r\n breadcrumbs: ForumThread[];\r\n banStatus: BanStatus | null;\r\n constructor(response: any) {\r\n super(response);\r\n this.canModerate = this.body.canModerate;\r\n this.topic = ForumTopic.fromJson(this.body.topic);\r\n this.breadcrumbs = this.body.breadcrumbs.map(ForumTopic.fromJson);\r\n this.banStatus = this.body.banStatus\r\n ? {\r\n ...this.body.banStatus,\r\n untilDate: this.body.banStatus.untilDate ? new Date(this.body.banStatus.untilDate) : null\r\n }\r\n : null;\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { TopicComment } from '@axl/accel-framework/models';\r\nimport { commentFields } from './fetch-topic-comments';\r\n\r\nexport type CreateTopicCommentRequestModel = {\r\n topicId: string,\r\n replyId?: string,\r\n text: string,\r\n files: string[]\r\n}\r\nexport class CreateTopicCommentRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/forum/topic/comment';\r\n public body = {\r\n ...this.model,\r\n fields: commentFields\r\n }\r\n\r\n constructor(public model: CreateTopicCommentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateTopicCommentResponse extends ApiResponse {\r\n comment: TopicComment;\r\n itemsTotal: number;\r\n constructor(response: any) {\r\n super(response);\r\n this.comment = TopicComment.fromJson(this.body.comment);\r\n this.itemsTotal = this.body.itemsTotal;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type UpdateTopicCommentRequestModel = {\r\n commentId: string,\r\n text: string,\r\n files: string[]\r\n replyId?: string;\r\n}\r\nexport class UpdateTopicCommentRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/forum/topic/comment';\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: UpdateTopicCommentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UpdateTopicCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteTopicCommentRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/forum/topic/comment/${this.commentId}`;\r\n\r\n constructor(public commentId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteTopicCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type UpdateTopicRequestModel = {\r\n id: string,\r\n text: string,\r\n files: string[]\r\n}\r\n\r\nexport class UpdateTopicRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/forum/topic';\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: UpdateTopicRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UpdateTopicResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class FetchTopicCommentPositionRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/forum/topic/${this.topicId}/comment-position/${this.sequenceNumber}`;\r\n\r\n constructor(public topicId: string, public sequenceNumber: number) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchTopicCommentPositionResponse extends ApiResponse {\r\n public position: number;\r\n constructor(response: any) {\r\n super(response);\r\n this.position = this.body;\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteTopicRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/forum/topic/${this.topicId}`;\r\n\r\n constructor(public topicId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteTopicResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type BlockStudentRequestModel = {\r\n threadId: string;\r\n studentId: string;\r\n reason: string;\r\n beginDate: Date;\r\n endDate: Date | null;\r\n topicId?: string;\r\n commentId?: string;\r\n}\r\n\r\nexport class BlockStudentRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/forum/block-student`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: BlockStudentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class BlockStudentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport type { ForumReactionType } from '@axl/accel-framework/models/forum/reaction/ForumReactionType';\r\nimport { ForumReaction } from '@axl/accel-framework/models';\r\n\r\nexport type CreateReactionRequestModel = {\r\n topicId?: string;\r\n commentId?: string;\r\n type: ForumReactionType;\r\n}\r\nexport class CreateReactionRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/forum/reaction';\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: CreateReactionRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateReactionResponse extends ApiResponse {\r\n reaction: ForumReaction;\r\n constructor(response: any) {\r\n super(response);\r\n this.reaction = ForumReaction.fromJson(response.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteReactionRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/forum/reaction/${this.reactionId}`;\r\n\r\n constructor(public reactionId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteReactionResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchForumThreadRequest, FetchForumThreadResponse } from './types/fetch-forum-thread';\r\nimport { CreateTopicRequest, CreateTopicResponse } from './types/create-topic';\r\nimport { FetchTopicCommentsRequest, FetchTopicCommentsResponse } from './types/fetch-topic-comments';\r\nimport { FetchTopicRequest, FetchTopicResponse } from './types/fetch-topic';\r\nimport { CreateTopicCommentRequest, CreateTopicCommentResponse } from './types/create-topic-comment';\r\nimport { UpdateTopicCommentRequest, UpdateTopicCommentResponse } from './types/update-topic-comment';\r\nimport { DeleteTopicCommentRequest, DeleteTopicCommentResponse } from './types/delete-topic-comment';\r\nimport { UpdateTopicRequest, UpdateTopicResponse } from './types/update-topic';\r\nimport { FetchTopicCommentPositionRequest, FetchTopicCommentPositionResponse } from './types/fetch-topic-comment-position';\r\nimport { DeleteTopicRequest, DeleteTopicResponse } from './types/delete-topic';\r\nimport { BlockStudentRequest, BlockStudentResponse } from './types/block-student';\r\nimport { CreateReactionRequest, CreateReactionResponse } from './types/create-reaction';\r\nimport { DeleteReactionRequest, DeleteReactionResponse } from './types/delete-reaction';\r\n\r\nexport default class ForumApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetchThread(request: FetchForumThreadRequest) {\r\n return await this.api.execute(request, FetchForumThreadResponse);\r\n }\r\n\r\n public async fetchTopic(request: FetchTopicRequest) {\r\n return await this.api.execute(request, FetchTopicResponse);\r\n }\r\n\r\n public async createTopic(request: CreateTopicRequest) {\r\n return await this.api.execute(request, CreateTopicResponse);\r\n }\r\n\r\n public async updateTopic(request: UpdateTopicRequest) {\r\n return await this.api.execute(request, UpdateTopicResponse);\r\n }\r\n\r\n public async fetchTopicComments(request: FetchTopicCommentsRequest) {\r\n return await this.api.execute(request, FetchTopicCommentsResponse);\r\n }\r\n\r\n public async createTopicComment(request: CreateTopicCommentRequest) {\r\n return await this.api.execute(request, CreateTopicCommentResponse);\r\n }\r\n\r\n public async updateTopicComment(request: UpdateTopicCommentRequest) {\r\n return await this.api.execute(request, UpdateTopicCommentResponse);\r\n }\r\n\r\n public async deleteTopicComment(request: DeleteTopicCommentRequest) {\r\n return await this.api.execute(request, DeleteTopicCommentResponse);\r\n }\r\n\r\n public async fetchTopicCommentPosition(request: FetchTopicCommentPositionRequest) {\r\n return await this.api.execute(request, FetchTopicCommentPositionResponse);\r\n }\r\n\r\n public async deleteTopic(request: DeleteTopicRequest) {\r\n return await this.api.execute(request, DeleteTopicResponse);\r\n }\r\n\r\n public async blockStudent(request: BlockStudentRequest) {\r\n return await this.api.execute(request, BlockStudentResponse);\r\n }\r\n\r\n public async createReaction(request: CreateReactionRequest) {\r\n return await this.api.execute(request, CreateReactionResponse);\r\n }\r\n\r\n public async updateReaction(request: CreateReactionRequest) {\r\n return await this.api.execute(request, CreateReactionResponse);\r\n }\r\n\r\n public async deleteReaction(request: DeleteReactionRequest) {\r\n return await this.api.execute(request, DeleteReactionResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type FetchStatusResponseModel = {\r\n email: string;\r\n unsubscribed: boolean;\r\n}\r\n\r\nexport class FetchStatusRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/student/email-broadcast-subscription-status/${this.studentId}/${this.messageId}`;\r\n\r\n constructor(public studentId: string, public messageId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStatusResponse extends ApiResponse {\r\n status: FetchStatusResponseModel;\r\n constructor(response: any) {\r\n super(response);\r\n this.status = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type UnsubscribeModel = {\r\n messageId: string;\r\n studentId: string;\r\n timestamp: number;\r\n hash: string;\r\n}\r\n\r\nexport class UnsubscribeRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body = {\r\n ...this.model\r\n }\r\n public url: string = `/student/unsubscribe-email-broadcast`;\r\n\r\n constructor(public model: UnsubscribeModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UnsubscribeResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchStatusRequest, FetchStatusResponse } from './types/fetch-status';\r\nimport { UnsubscribeRequest, UnsubscribeResponse } from './types/unsubscribe';\r\n\r\nexport default class StudentEmailBroadcastApi {\r\n constructor(private api: Api) { }\r\n\r\n public async fetchStatus(request: FetchStatusRequest) {\r\n return await this.api.execute(request, FetchStatusResponse);\r\n }\r\n\r\n public async unsubscribe(request: UnsubscribeRequest) {\r\n return await this.api.execute(request, UnsubscribeResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolLibraryItem, SchoolLibraryItemFilter } from 'models';\r\n\r\nexport class FetchSchoolLibraryItemsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n title,\r\n type,\r\n flowTimeDelayActive,\r\n flowTimeDelay,\r\n flowTimeDelayCondition,\r\n flowTimeDelayMeasureType,\r\n preventCopingAndSelectingText,\r\n allowComments,\r\n showComments,\r\n ratingEnabled,\r\n ratingCommentRequired,\r\n studentHasAccess,\r\n position,\r\n parentItem {\r\n id,\r\n }\r\n progress {\r\n id\r\n }\r\n }`;\r\n\r\n public url: string = `/school-library-item`;\r\n\r\n constructor(public libraryId: string) {\r\n super();\r\n this.body = {\r\n ... new SchoolLibraryItemFilter({ libraryId: libraryId, useBaseFilter: false })\r\n };\r\n }\r\n}\r\n\r\nexport class FetchSchoolLibraryItemsResponse extends ApiResponse {\r\n items: SchoolLibraryItem[];\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(SchoolLibraryItem.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolLibraryItem } from 'models';\r\n\r\nexport class FetchSchoolLibraryItemRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n private filesSelector = `files(filter:\"{take:0}\") {\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }`;\r\n public fields = `{\r\n id,\r\n title,\r\n type,\r\n designHTMLPublished,\r\n designStylePublished,\r\n ratingEnabled,\r\n progress{\r\n id,\r\n beginDate,\r\n rating {\r\n id,\r\n comment,\r\n rating,\r\n createdDate,\r\n updatedDate,\r\n ${this.filesSelector}\r\n }\r\n },\r\n\r\n }`;\r\n public url: string = `/school-library-item/${this.libraryId}/${this.itemId}`;\r\n\r\n constructor(public libraryId: string, public itemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchSchoolLibraryItemResponse extends ApiResponse {\r\n libraryItem: SchoolLibraryItem;\r\n constructor(response: any) {\r\n super(response);\r\n this.libraryItem = SchoolLibraryItem.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolLibrary } from 'models';\r\n\r\nexport class FetchSchoolLibraryRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n title,\r\n flowBeginDate\r\n }`;\r\n public url: string = `/school-library/${this.id}`;\r\n\r\n constructor(public id: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchSchoolLibraryResponse extends ApiResponse {\r\n library: SchoolLibrary;\r\n constructor(response: any) {\r\n super(response);\r\n this.library = SchoolLibrary.fromJson(this.body);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchSchoolLibraryItemsRequest, FetchSchoolLibraryItemsResponse } from './types/fetch-school-library-items';\r\nimport { FetchSchoolLibraryItemRequest, FetchSchoolLibraryItemResponse } from './types/fetch-school-library-item';\r\nimport { FetchSchoolLibraryRequest, FetchSchoolLibraryResponse } from './types/fetch-school-library';\r\n\r\nexport default class SchoolLibraryApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetchLibrary(request: FetchSchoolLibraryRequest) {\r\n return await this.api.execute(request, FetchSchoolLibraryResponse);\r\n }\r\n\r\n public async fetchLibraryItem(request: FetchSchoolLibraryItemRequest) {\r\n return await this.api.execute(request, FetchSchoolLibraryItemResponse);\r\n }\r\n\r\n public async fetchLibraryItems(request: FetchSchoolLibraryItemsRequest) {\r\n return await this.api.execute(request, FetchSchoolLibraryItemsResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemProgressRating, SchoolContentItemProgressRatingFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCourseItemRatingRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/school-content-item-rating';\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter: SchoolContentItemProgressRatingFilter, fields?: string) {\r\n super();\r\n this.fields = fields ?? `{\r\n id,\r\n comment,\r\n rating,\r\n createdDate,\r\n updatedDate,\r\n student{\r\n id,\r\n email,\r\n firstName,\r\n lastName\r\n },\r\n comments(filter:\"{take:5}\"){\r\n id,\r\n text,\r\n createdDate,\r\n student{\r\n id,\r\n email,\r\n firstName,\r\n lastName,\r\n avatar {\r\n id,\r\n cloudKey\r\n },\r\n },\r\n admin{\r\n id,\r\n email,\r\n firstName,\r\n lastName,\r\n avatar {\r\n id,\r\n cloudKey\r\n },\r\n },\r\n files{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n },\r\n _count\r\n },\r\n courseItem{\r\n id,\r\n title,\r\n position,\r\n parentItem{\r\n id,\r\n title,\r\n position\r\n },\r\n course{\r\n id,\r\n name\r\n }\r\n }\r\n }`;\r\n }\r\n}\r\n\r\nexport class FetchCourseItemRatingsResponse extends ApiResponse {\r\n public filter: SchoolContentItemProgressRatingFilter;\r\n public items: SchoolContentItemProgressRating[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new SchoolContentItemProgressRatingFilter(this.body.filter);\r\n this.items = this.body.items.map(SchoolContentItemProgressRating.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemProgressRating } from '@axl/accel-framework/models';\r\n\r\nexport class SaveCourseItemRatingRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/school-content-item-rating`;\r\n public body = {\r\n ...this.rating,\r\n fileIds: this.rating.files?.map(i => i.id) ?? [],\r\n }\r\n\r\n constructor(public rating: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveCourseItemRatingResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemProgressRating, SchoolContentSectionType } from '@axl/accel-framework/models';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport type CreateCourseItemRating = {\r\n sectionType: SchoolContentSectionType;\r\n targetItemId: string;\r\n targetProgressId: string;\r\n text: string;\r\n fileIds: string[];\r\n rating?: number;\r\n}\r\nexport class CreateCourseItemRatingRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/school-content-item-rating';\r\n public body: CreateCourseItemRating = {\r\n sectionType: this.sectionType,\r\n targetItemId: this.targetItemId,\r\n targetProgressId: this.targerProgressId,\r\n fileIds: this.rating.files?.map(x => x.id) ?? [],\r\n text: this.rating.comment,\r\n rating: this.rating.rating,\r\n };\r\n\r\n constructor(\r\n public rating: SchoolContentItemProgressRating, \r\n public sectionType: SchoolContentSectionType, \r\n public targetItemId: string, \r\n public targerProgressId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateCourseItemRatingResponse extends ApiResponse {\r\n public id: string;\r\n public progress: StudentCourseProgress;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body.ratingId;\r\n this.progress = StudentCourseProgress.fromJson(this.body.progress);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchCourseItemRatingRequest, FetchCourseItemRatingsResponse } from './types/fetch-course-item-ratings';\r\nimport { SaveCourseItemRatingRequest, SaveCourseItemRatingResponse } from './types/save-course-item-rating';\r\nimport { CreateCourseItemRatingRequest, CreateCourseItemRatingResponse } from './types/create-course-item-rating';\r\n\r\nexport default class CourseItemRatingApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchCourseItemRatingRequest) {\r\n return await this.api.execute(request, FetchCourseItemRatingsResponse);\r\n }\r\n\r\n public async save(request: SaveCourseItemRatingRequest) {\r\n return await this.api.execute(request, SaveCourseItemRatingResponse);\r\n }\r\n\r\n public async create(request: CreateCourseItemRatingRequest) {\r\n return await this.api.execute(request, CreateCourseItemRatingResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemComment, SchoolContentItemCommentFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCourseItemCommentsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/school-content-item-comment/${this.progressId}`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public progressId: string, public filter: SchoolContentItemCommentFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCourseItemCommentsResponse extends ApiResponse {\r\n public filter: SchoolContentItemCommentFilter;\r\n public items: SchoolContentItemComment[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new SchoolContentItemCommentFilter(this.body.filter);\r\n this.items = this.body.items.map(SchoolContentItemComment.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemComment, CourseItemCommentState } from '@axl/accel-framework/models';\r\n\r\nexport type SaveCourseItemComment = {\r\n id: string;\r\n text: string;\r\n replyId?: string;\r\n fileIds: string[];\r\n state: CourseItemCommentState;\r\n}\r\n\r\nexport class SaveCourseItemCommentRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/school-content-item-comment`;\r\n public body: SaveCourseItemComment = {\r\n id: this.comment.id,\r\n text: this.comment.text,\r\n fileIds: this.comment.files?.map(x => x.id),\r\n state: this.comment.state,\r\n replyId: this.comment.replyId\r\n }\r\n\r\n constructor(public comment: SchoolContentItemComment) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveCourseItemCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemComment, SchoolContentSectionType } from '@axl/accel-framework/models';\r\n\r\nexport type CreateCourseItemComment = {\r\n targetItemId: string;\r\n sectionType: SchoolContentSectionType;\r\n targetProgressId: string;\r\n ratingId?: string;\r\n parentId?: string;\r\n replyId?: string;\r\n text: string;\r\n fileIds: string[];\r\n}\r\nexport class CreateCourseItemCommentRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/school-content-item-comment';\r\n public body: CreateCourseItemComment = {\r\n targetItemId: this.targetItemId,\r\n sectionType: this.sectionType,\r\n targetProgressId: this.targetProgressId,\r\n ratingId: this.ratingId,\r\n parentId: this.comment.parentId,\r\n replyId: this.comment.replyId,\r\n text: this.comment.text,\r\n fileIds: this.comment.files?.map(x => x.id)\r\n };\r\n\r\n constructor(public comment: SchoolContentItemComment,\r\n public sectionType: SchoolContentSectionType,\r\n public targetItemId: string,\r\n public targetProgressId: string,\r\n public ratingId?: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateCourseItemCommentResponse extends ApiResponse {\r\n public id: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class RemoveCourseItemCommentRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/school-content-item-comment/${this.commentId}`;\r\n\r\n constructor(public commentId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RemoveCourseItemCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchCourseItemCommentsRequest, FetchCourseItemCommentsResponse } from './types/fetch-course-item-comments';\r\nimport { SaveCourseItemCommentRequest, SaveCourseItemCommentResponse } from './types/save-course-item-comment';\r\nimport { CreateCourseItemCommentRequest, CreateCourseItemCommentResponse } from './types/create-course-item-comment';\r\nimport { RemoveCourseItemCommentRequest, RemoveCourseItemCommentResponse } from './types/remove-course-item-comment';\r\n\r\nexport default class CourseItemCommentApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchCourseItemCommentsRequest) {\r\n return await this.api.execute(request, FetchCourseItemCommentsResponse);\r\n }\r\n\r\n public async save(request: SaveCourseItemCommentRequest) {\r\n return await this.api.execute(request, SaveCourseItemCommentResponse);\r\n }\r\n\r\n public async create(request: CreateCourseItemCommentRequest) {\r\n return await this.api.execute(request, CreateCourseItemCommentResponse);\r\n }\r\n\r\n public async remove(request: RemoveCourseItemCommentRequest) {\r\n return await this.api.execute(request, RemoveCourseItemCommentResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class LoginRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/login';\r\n public body: any = {\r\n contactId: this.contactId,\r\n email: this.email,\r\n password: this.password,\r\n rememberMe: true\r\n };\r\n public authorized = false;\r\n\r\n constructor(public email: string, public password: string, public contactId?: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class LoginResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class RefreshTokenRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/refresh';\r\n public body: any = {\r\n token: this.refreshToken\r\n };\r\n public authorized = false;\r\n\r\n constructor(public refreshToken: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RefreshTokenResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\n\r\nexport type RegisterRequestModel = {\r\n contactId?: string;\r\n email: string;\r\n password: string;\r\n confirmPassword: string;\r\n lang: Lang;\r\n timezoneOffset: string;\r\n urlParameters: any;\r\n isAgreementAccepted: boolean;\r\n inviteToken?: string;\r\n}\r\n\r\nexport class RegisterRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/register';\r\n public body: any = {\r\n ...this.model\r\n };\r\n public authorized = false;\r\n\r\n constructor(public model: RegisterRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RegisterResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ResetPasswordRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/reset-password';\r\n public body: any = {\r\n token: this.token,\r\n password: this.password,\r\n confirmPassword: this.confirmPassword,\r\n };\r\n public authorized = false;\r\n\r\n constructor(public token: string,\r\n public password: string,\r\n public confirmPassword: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ResetPasswordResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ForgotPasswordRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/forgot-password';\r\n public body: any = {\r\n email: this.email\r\n };\r\n public authorized = false;\r\n\r\n constructor(public email: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ForgotPasswordResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\ntype ConfirmEmailModel = {\r\n token: string,\r\n userId: string,\r\n}\r\n\r\nexport class ConfirmEmailRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/confirm-email';\r\n public body: any = {\r\n ...this.model\r\n };\r\n\r\n constructor(public model: ConfirmEmailModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ConfirmEmailResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ConfirmInviteModel {\r\n token: string\r\n password: string;\r\n confirmPassword: string;\r\n}\r\n\r\nexport class ConfirmInviteRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/confirm-invite';\r\n public body: any = {\r\n ...this.model\r\n };\r\n\r\n constructor(public model: ConfirmInviteModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ConfirmInviteResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { InviteStatus } from '@axl/accel-framework/enums';\r\n\r\nexport class CheckInviteRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/authorization/check-invite/${this.token}`;\r\n\r\n constructor(public token: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CheckInviteResponse extends ApiResponse {\r\n public status: InviteStatus;\r\n constructor(response?: any) {\r\n super(response);\r\n this.status = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class LoginTokenRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/login-token';\r\n public body = {\r\n token: this.token,\r\n }\r\n\r\n constructor(public token: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class LoginTokenResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class LogoutRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/logout';\r\n public body: any = {\r\n token: this.refreshToken\r\n };\r\n public authorized = true;\r\n\r\n constructor(public refreshToken: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class LogoutResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ProlongSessionRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/prolong-session';\r\n public body: any = {\r\n token: this.refreshToken\r\n };\r\n public authorized = true;\r\n\r\n constructor(public refreshToken: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ProlongSessionResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Student } from 'models';\r\n\r\nexport class FetchMeRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/authorization/me';\r\n}\r\n\r\nexport class FetchMeResponse extends ApiResponse {\r\n public student: Student;\r\n constructor(response: any) {\r\n super(response);\r\n this.student = Student.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class LoginAsModel {\r\n sessionId: string;\r\n studentId: string;\r\n timestamp: number;\r\n signature: string;\r\n}\r\n\r\nexport class LoginAsRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/login-as';\r\n public body: any = {\r\n ...this.model\r\n };\r\n\r\n constructor(public model: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class LoginAsResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class SendInviteRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/send-invite';\r\n public body: any = {\r\n email: this.email\r\n };\r\n\r\n constructor(public email: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SendInviteResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class FetchContactRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/authorization/contact/${this.contactId}`;\r\n\r\n constructor(public contactId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchContactResponse extends ApiResponse {\r\n public id: string;\r\n public email: string;\r\n public isRegistered: boolean;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body.id,\r\n this.email = this.body.email,\r\n this.isRegistered = this.body.isRegistered\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\n\r\nexport type RegisterContactRequestModel = {\r\n contactId: string;\r\n email: string;\r\n password: string;\r\n confirmPassword: string;\r\n lang: Lang;\r\n timezoneOffset: string;\r\n urlParameters: any;\r\n isAgreementAccepted: boolean;\r\n}\r\n\r\nexport class RegisterContactRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/register-contact';\r\n public body: any = {\r\n ...this.model\r\n };\r\n public authorized = false;\r\n\r\n constructor(public model: RegisterContactRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RegisterContactResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class FetchEmailNotificationsSubscriptionStatusRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/authorization/email-notifications-subscription-status?studentId=${this.studentId}&email=${this.email}`;\r\n\r\n constructor(public studentId: string, public email:string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchEmailNotificationsSubscriptionStatusResponse extends ApiResponse {\r\n public subscribed: boolean;\r\n constructor(response: any) {\r\n super(response);\r\n this.subscribed = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class UnsubscribeEmailNotificationsRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/unsubscribe-email-notifications';\r\n public body: any = {\r\n studentId: this.studentId,\r\n email: this.email\r\n };\r\n\r\n constructor(public studentId: string, public email:string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UnsubscribeEmailNotificationsResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { LoginRequest, LoginResponse } from './types/login';\r\nimport { RefreshTokenRequest, RefreshTokenResponse } from './types/refresh-token';\r\nimport { RegisterRequest, RegisterResponse } from './types/register';\r\nimport { ResetPasswordResponse, ResetPasswordRequest } from './types/reset-password';\r\nimport { ForgotPasswordRequest, ForgotPasswordResponse } from './types/forgot-password';\r\nimport { ConfirmEmailRequest, ConfirmEmailResponse } from './types/confirm-email';\r\nimport { ConfirmInviteRequest, ConfirmInviteResponse } from './types/confirm-invite';\r\nimport { CheckInviteRequest, CheckInviteResponse } from './types/check-invite';\r\nimport { LoginTokenRequest, LoginTokenResponse } from './types/login-token';\r\nimport { LogoutRequest, LogoutResponse } from './types/logout';\r\nimport { ProlongSessionRequest, ProlongSessionResponse } from './types/prolong-session';\r\nimport { FetchMeRequest, FetchMeResponse } from './types/me';\r\nimport { LoginAsRequest, LoginAsResponse } from './types/login-as';\r\nimport { SendInviteRequest, SendInviteResponse } from './types/send-invite';\r\nimport { FetchContactRequest, FetchContactResponse } from './types/contact';\r\nimport { RegisterContactRequest, RegisterContactResponse } from './types/register-contact';\r\nimport { FetchEmailNotificationsSubscriptionStatusRequest, FetchEmailNotificationsSubscriptionStatusResponse } from './types/email-notifications-subscription-status';\r\nimport { UnsubscribeEmailNotificationsRequest, UnsubscribeEmailNotificationsResponse } from './types/unsubscribe-email-notifications';\r\n\r\nexport default class AuthApi {\r\n constructor(protected api: Api) {\r\n }\r\n\r\n public async login(request: LoginRequest) {\r\n return await this.api.execute(request, LoginResponse);\r\n }\r\n\r\n public async logout(request: LogoutRequest) {\r\n return await this.api.execute(request, LogoutResponse);\r\n }\r\n\r\n public async refreshToken(request: RefreshTokenRequest) {\r\n return await this.api.execute(request, RefreshTokenResponse);\r\n }\r\n\r\n public async register(request: RegisterRequest) {\r\n return await this.api.execute(request, RegisterResponse);\r\n }\r\n\r\n public async registerContact(request: RegisterContactRequest) {\r\n return await this.api.execute(request, RegisterContactResponse);\r\n }\r\n\r\n public async resetPassword(request: ResetPasswordRequest) {\r\n return await this.api.execute(request, ResetPasswordResponse);\r\n }\r\n\r\n public async confirmEmail(request: ConfirmEmailRequest) {\r\n return await this.api.execute(request, ConfirmEmailResponse);\r\n }\r\n\r\n public async checkInvite(request: CheckInviteRequest) {\r\n return await this.api.execute(request, CheckInviteResponse);\r\n }\r\n\r\n public async confirmInvite(request: ConfirmInviteRequest) {\r\n return await this.api.execute(request, ConfirmInviteResponse);\r\n }\r\n\r\n public async sendInvite(request: SendInviteRequest) {\r\n return await this.api.execute(request, SendInviteResponse);\r\n }\r\n\r\n public async forgotPassword(request: ForgotPasswordRequest) {\r\n return await this.api.execute(request, ForgotPasswordResponse);\r\n }\r\n\r\n public async loginToken(request: LoginTokenRequest) {\r\n return await this.api.execute(request, LoginTokenResponse);\r\n }\r\n\r\n public async loginAs(request: LoginAsRequest) {\r\n return await this.api.execute(request, LoginAsResponse);\r\n }\r\n\r\n public async prolongSession(request: ProlongSessionRequest) {\r\n return await this.api.execute(request, ProlongSessionResponse);\r\n }\r\n\r\n public async fetchContact(request: FetchContactRequest) {\r\n return await this.api.execute(request, FetchContactResponse);\r\n }\r\n\r\n public async fetchMe(request: FetchMeRequest) {\r\n return await this.api.execute(request, FetchMeResponse);\r\n }\r\n\r\n public async fetchEmailNotificationsSubscriptionStatus(request: FetchEmailNotificationsSubscriptionStatusRequest) {\r\n return await this.api.execute(request, FetchEmailNotificationsSubscriptionStatusResponse);\r\n }\r\n\r\n public async unsubscribeEmailNotifications(request: UnsubscribeEmailNotificationsRequest) {\r\n return await this.api.execute(request, UnsubscribeEmailNotificationsResponse);\r\n }\r\n}","import { HttpMethod, ApiRequest, ApiResponse, Optional, toOptional } from '@axl/accel-framework/api';\r\nimport { UserNotification } from '@axl/accel-framework/models';\r\nimport { type Moment } from 'moment';\r\n\r\nexport type SaveNotificationModel = {\r\n id: string;\r\n seenDate: Optional;\r\n}\r\n\r\nexport class SaveNotificationRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/notification';\r\n\r\n public body: SaveNotificationModel = {\r\n id: this.notification.id!,\r\n seenDate: toOptional(this.notification.seenDate),\r\n }\r\n\r\n constructor(public notification: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveNotificationResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiListResponse, ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { UserNotification, UserNotificationFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchNotificationsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n type,\r\n payloadJson,\r\n createdDate,\r\n seenDate,\r\n adminId,\r\n studentId,\r\n adminTaskId,\r\n courseItemId,\r\n libraryItemId,\r\n orderId,\r\n orderPaymentId,\r\n scenarioId,\r\n chatConversationId,\r\n courseId,\r\n libraryId,\r\n courseItemTaskId,\r\n schoolContentItemCommentId,\r\n }`;\r\n //TODO taskAnswerId\r\n public url: string = `/notification`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter?: UserNotificationFilter, fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchNotificationsResponse extends ApiListResponse {\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(UserNotification.fromJson);\r\n this.filter = new UserNotificationFilter(this.body.filter);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteNotificationRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/notification/${this.id}`;\r\n\r\n constructor(public id: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteNotificationResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { UserNotificationSettings } from '@axl/accel-framework/models';\r\n\r\nexport class FetchNotificationSettingsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n useEmail,\r\n email,\r\n customEmail,\r\n useTg,\r\n tgId,\r\n tgLink,\r\n channels {\r\n id,\r\n useSite,\r\n useEmail,\r\n useTg,\r\n notificationType,\r\n subscriptionId\r\n }\r\n }`;\r\n public url: string = `/notification/settings`;\r\n\r\n constructor(fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchNotificationSettingsResponse extends ApiResponse {\r\n public settings: UserNotificationSettings;\r\n constructor(response: any) {\r\n super(response);\r\n this.settings = UserNotificationSettings.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod, Optional, toOptional } from '@axl/accel-framework/api';\r\nimport { UserNotificationSettings } from '@axl/accel-framework/models';\r\n\r\nexport type SaveNotificationSettingsModel = {\r\n useEmail: Optional;\r\n customEmail: Optional;\r\n useTg: Optional;\r\n}\r\n\r\nexport class SaveNotificationSettingsRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body: SaveNotificationSettingsModel = {\r\n useEmail: toOptional(this.settings.useEmail),\r\n customEmail: toOptional(this.settings.customEmail ?? undefined),\r\n useTg: toOptional(this.settings.useTg),\r\n }\r\n public url: string = `/notification/settings`;\r\n\r\n constructor(public settings: UserNotificationSettings) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveNotificationSettingsResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchNotificationSettingsRequest, FetchNotificationSettingsResponse } from './types/fetch';\r\nimport { SaveNotificationSettingsRequest, SaveNotificationSettingsResponse } from './types/save';\r\n\r\nexport default class NotificationSettingsApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchNotificationSettingsRequest) {\r\n return await this.api.execute(request, FetchNotificationSettingsResponse);\r\n }\r\n\r\n public async save(request: SaveNotificationSettingsRequest) {\r\n return await this.api.execute(request, SaveNotificationSettingsResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { UserNotificationFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCountNotificationsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/notification/count`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter?: UserNotificationFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCountNotificationsResponse extends ApiResponse {\r\n public count: number;\r\n constructor(response: any) {\r\n super(response);\r\n this.count = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class MarkAllAsReadNotificationsRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/notification/markAllAsRead`;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\nexport class MarkAllAsReadNotificationsResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { HttpMethod, ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { UserNotificationType } from '@axl/accel-framework/models';\r\n\r\ntype CreateNotificationChannelModel = {\r\n notificationType: UserNotificationType;\r\n useSite: boolean;\r\n useEmail: boolean;\r\n useTg: boolean;\r\n}\r\n\r\nexport class CreateNotificationChannelRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/notification/channel';\r\n\r\n constructor(public model: CreateNotificationChannelModel) {\r\n super();\r\n this.body = model;\r\n }\r\n}\r\n\r\nexport class CreateNotificationChannelResponse extends ApiResponse {\r\n public id: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod, Optional, toOptional } from '@axl/accel-framework/api';\r\nimport { UserNotificationChannel } from '@axl/accel-framework/models';\r\n\r\nexport type SaveNotificationChannelModel = {\r\n id: string;\r\n useSite: Optional;\r\n useEmail: Optional;\r\n useTg: Optional;\r\n}\r\n\r\nexport class SaveNotificationChannelRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body: SaveNotificationChannelModel = {\r\n id: this.id,\r\n useSite: toOptional(this.changes.useSite),\r\n useEmail: toOptional(this.changes.useEmail),\r\n useTg: toOptional(this.changes.useTg),\r\n }\r\n public url: string = `/notification/channel`;\r\n\r\n constructor(public id: string, public changes: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveNotificationChannelResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { CreateNotificationChannelRequest, CreateNotificationChannelResponse } from './types/create';\r\nimport { SaveNotificationChannelRequest, SaveNotificationChannelResponse, } from './types/save';\r\n\r\nexport default class NotificationChannelApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async create(request: CreateNotificationChannelRequest) {\r\n return await this.api.execute(request, CreateNotificationChannelResponse);\r\n }\r\n\r\n public async save(request: SaveNotificationChannelRequest) {\r\n return await this.api.execute(request, SaveNotificationChannelResponse);\r\n }\r\n}","import { SaveNotificationRequest, SaveNotificationResponse } from './types/save';\r\nimport { FetchNotificationsRequest, FetchNotificationsResponse } from './types/fetch';\r\nimport Api from 'api';\r\nimport { DeleteNotificationRequest, DeleteNotificationResponse } from './types/delete';\r\nimport NotificationSettingsApi from './Settings';\r\nimport { FetchCountNotificationsRequest, FetchCountNotificationsResponse } from './types/fetch-count';\r\nimport { MarkAllAsReadNotificationsRequest, MarkAllAsReadNotificationsResponse } from './types/mark-all-as-read';\r\nimport NotificationChannelApi from './Channel';\r\n\r\nexport default class NotificationApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchNotificationsRequest) {\r\n return await this.api.execute(request, FetchNotificationsResponse);\r\n }\r\n\r\n public async save(request: SaveNotificationRequest) {\r\n return await this.api.execute(request, SaveNotificationResponse);\r\n }\r\n\r\n public async delete(request: DeleteNotificationRequest) {\r\n return await this.api.execute(request, DeleteNotificationResponse);\r\n }\r\n\r\n public async fetchCount(request: FetchCountNotificationsRequest) {\r\n return await this.api.execute(request, FetchCountNotificationsResponse);\r\n }\r\n\r\n public async markAllAsRead(request: MarkAllAsReadNotificationsRequest) {\r\n return await this.api.execute(request, MarkAllAsReadNotificationsResponse);\r\n }\r\n\r\n public settings = new NotificationSettingsApi(this.api);\r\n public channel = new NotificationChannelApi(this.api);\r\n}","import Api from 'api';\r\nimport { BaseFilter, PartnershipMember, PartnershipOffer, PartnershipTransaction, PartnershipTransactionFilter, PartnershipTransactionRequest, PurchaseOrder } from '@axl/accel-framework/models';\r\nimport { CrudApi } from '@axl/accel-framework/api';\r\nimport { UtmTag } from 'components/selects/UtmTagSelect/UtmTagSelect';\r\n\r\nexport type TotalItem = {\r\n value: number;\r\n type: string;\r\n valueType: 'value' | 'currency' | 'percent'\r\n}\r\n\r\nexport default class PartnershipApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n member = new MemberApi(this.api);\r\n transaction = new TransactionApi(this.api);\r\n transactionRequest = new TransactionRequestApi(this.api);\r\n offer = new OfferApi(this.api);\r\n order = new PartnershipOrderApi(this.api);\r\n utm = new UtmTagApi(this.api);\r\n\r\n fetchTotals = (filter: PartnershipTotalsFilter) => this.api.post<{ items: TotalItem[] }>('/partnership/totals', { filter }, json => ({ items: json.items }))\r\n fetchMaxAmount = () => this.api.get('/partnership/max-amount');\r\n}\r\n\r\nexport class PartnershipTotalsFilter extends BaseFilter {\r\n constructor(filter?: Partial) {\r\n super();\r\n if (filter) this.update(filter);\r\n }\r\n\r\n dateFrom: moment.Moment | null;\r\n dateTo: moment.Moment | null;\r\n\r\n utmSources: string[] = [];\r\n utmMediums: string[] = [];\r\n utmCampaigns: string[] = [];\r\n utmTerms: string[] = [];\r\n utmContents: string[] = [];\r\n\r\n get hasChanges() {\r\n return this.dateFrom != null\r\n || this.dateTo != null\r\n || this.utmSources.length > 0\r\n || this.utmMediums.length > 0\r\n || this.utmCampaigns.length > 0\r\n || this.utmTerms.length > 0\r\n || this.utmContents.length > 0;\r\n }\r\n\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}\r\n\r\n\r\nexport type PartnershipTransactionTotals = {\r\n depositAmount: number;\r\n pendingAmount: number;\r\n withdrawalAmount: number;\r\n requestedAmount: number;\r\n}\r\nexport class TransactionApi extends CrudApi {\r\n constructor(private api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/transaction',\r\n parse: e => PartnershipTransaction.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n createdDate,\r\n amount,\r\n fee,\r\n comment,\r\n partner{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n },\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n },\r\n type,\r\n order{\r\n id,\r\n number\r\n },\r\n validAfterDate,\r\n level,\r\n levelPartner{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n }\r\n }`\r\n });\r\n }\r\n\r\n fetchTotals = (filter?: PartnershipTransactionFilter) => this.api.post<{ items: TotalItem[] }>(this.settings.endpoint + '/totals', { filter }, json => ({ items: json.items }));\r\n}\r\n\r\n\r\nexport class MemberApi extends CrudApi {\r\n constructor(private api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/member',\r\n parse: e => PartnershipMember.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n acceptedDate\r\n }`\r\n });\r\n }\r\n accept = () => this.api.put(this.settings.endpoint, { accepted: true });\r\n}\r\n\r\nexport class OfferApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/offer',\r\n parse: e => PartnershipOffer.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n title,\r\n url,\r\n description,\r\n fee,\r\n feeType,\r\n productType,\r\n levels,\r\n productLinks{\r\n product{\r\n id,\r\n name,\r\n }\r\n }\r\n }`\r\n });\r\n }\r\n}\r\n\r\nexport class PartnershipOrderApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/order',\r\n parse: e => PurchaseOrder.fromJson(e),\r\n });\r\n }\r\n}\r\n\r\nexport class TransactionRequestApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/transaction/request',\r\n parse: e => PartnershipTransactionRequest.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n amount,\r\n partnerComment,\r\n adminComment,\r\n status,\r\n createdDate,\r\n partner{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n },\r\n }`\r\n });\r\n }\r\n}\r\n\r\n//@ts-ignore\r\nexport class UtmTagApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/utm',\r\n parse: e => e,\r\n });\r\n }\r\n}","import { Announcement } from '@axl/accel-framework/models';\r\nimport Api from 'api';\r\n\r\nexport default class AnnouncementApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n fetch = async () => {\r\n return await this.api.get(`/announcement`,\r\n '',\r\n json => json.map((item: any) => Announcement.fromJson(item)));\r\n }\r\n close = async (id: string) => {\r\n return await this.api.post(`/announcement/close`, { id });\r\n }\r\n}","import { Api } from \"@axl/accel-framework\";\r\nimport { CrudApi } from \"@axl/accel-framework/api\";\r\nimport { GamificationAchievement, GamificationAchievementFilter, GamificationLeader, GamificationLeaderFilter, GamificationProduct, GamificationProductFilter, GamificationTransaction } from \"@axl/accel-framework/models\";\r\nimport { AnalyticsItem } from \"models\";\r\n\r\nexport default class GamificationApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n fetchTotals = () => this.api.get<{ items: AnalyticsItem[] }>('/gamification/totals');\r\n fetchBalance = () => this.api.get('/gamification/balance');\r\n\r\n fetchAchievements = (filter: GamificationAchievementFilter) => this.api.getList('/gamification/achievement', undefined, filter,\r\n body => ({\r\n items: body.items.map(GamificationAchievement.fromJson),\r\n filter: new GamificationAchievementFilter(body.filter)\r\n }));\r\n\r\n fetchLeaders = (filter: GamificationLeaderFilter) => this.api.getList('/gamification/leaders', undefined, filter,\r\n body => ({\r\n items: body.items.map(GamificationLeader.fromJson),\r\n filter: new GamificationLeaderFilter(body.filter),\r\n }));\r\n\r\n product = new GamificationProductApi(this.api);\r\n transaction = new GamificationTransactionApi(this.api);\r\n}\r\n\r\nexport class GamificationProductApi extends CrudApi {\r\n constructor(private api: Api) {\r\n super(api, {\r\n endpoint: '/gamification/product',\r\n parse: e => GamificationProduct.fromJson(e),\r\n defaultFields: ``\r\n });\r\n }\r\n\r\n pay = (id: string) => this.api.post(this.settings.endpoint, { productId: id });\r\n}\r\n\r\nexport class GamificationTransactionApi extends CrudApi {\r\n constructor(private api: Api) {\r\n super(api, {\r\n endpoint: '/gamification/transaction',\r\n parse: e => GamificationTransaction.fromJson(e),\r\n defaultFields: ``\r\n });\r\n }\r\n}","import BaseApi, { ApiClient, FileApi, FileManagerApi, LocalizationApi } from '@axl/accel-framework/api';\r\nimport StudentCourseApi from './methods/student/student-course';\r\nimport SchoolCourseApi from './methods/school-course';\r\nimport StudentCourseItemApi from './methods/student/student-course-item';\r\nimport SchoolSettingsApi from './methods/school-settings/types/index';\r\nimport StudentApi from './methods/student/student';\r\nimport ServiceApi from './methods/service';\r\nimport CoursePreviewApi from './methods/course-preview';\r\nimport StudentCoursePreviewApi from './methods/student-course-preview';\r\nimport ForumApi from './methods/forum';\r\nimport StudentEmailBroadcastApi from './methods/student/email-broadcast';\r\nimport SchoolLibraryApi from './methods/school-library';\r\nimport CourseItemRatingApi from './methods/student/course-item-rating';\r\nimport CourseItemCommentApi from './methods/student/course-item-comment';\r\nimport AuthApi from './methods/auth';\r\nimport NotificationApi from './methods/Notification';\r\nimport PartnershipApi from './methods/partnership';\r\nimport { SchoolContentItem, SchoolContentItemFilter } from 'models';\r\nimport AnnouncementApi from './methods/announcement';\r\nimport GamificationApi from './methods/gamification';\r\n\r\nexport default class Api extends BaseApi {\r\n constructor(client: ApiClient) {\r\n super(client);\r\n }\r\n\r\n file: FileApi = new FileApi(this);\r\n fileManager: FileManagerApi = new FileManagerApi(this);\r\n loc: LocalizationApi = new LocalizationApi(this);\r\n auth = new AuthApi(this);\r\n student = new StudentApi(this);\r\n\r\n schoolContent = {\r\n fetch: (filter: SchoolContentItemFilter) => this.getList('/school-content-item', '', filter,\r\n (json: any) => {\r\n return {\r\n items: json.items.map(SchoolContentItem.fromJson),\r\n filter: new SchoolContentItemFilter(json.filter)\r\n }\r\n })\r\n }\r\n\r\n studentCourse = new StudentCourseApi(this);\r\n schoolCourses = new SchoolCourseApi(this);\r\n schoolLibraries = new SchoolLibraryApi(this);\r\n studentEmailBroadcast = new StudentEmailBroadcastApi(this);\r\n studentCourseItem = new StudentCourseItemApi(this);\r\n courseItemRating = new CourseItemRatingApi(this);\r\n courseItemComment = new CourseItemCommentApi(this);\r\n schoolSettings = new SchoolSettingsApi(this);\r\n service = new ServiceApi(this);\r\n coursePreview = new CoursePreviewApi(this);\r\n studentCoursePreview = new StudentCoursePreviewApi(this);\r\n forum = new ForumApi(this);\r\n notification = new NotificationApi(this);\r\n partnership = new PartnershipApi(this);\r\n announcement = new AnnouncementApi(this);\r\n gamification = new GamificationApi(this);\r\n}","import { ApiRequest, ApiResponse, ApiResult, HttpApiClient } from '@axl/accel-framework/api';\r\nimport { HttpStatusCode } from '@axl/accel-framework/enums';\r\nimport { HubClient } from '@axl/accel-framework/hub-client';\r\nimport { FetchMeRequest, FetchMeResponse } from 'api/methods/auth/types/me';\r\nimport { RefreshTokenRequest, RefreshTokenResponse } from 'api/methods/auth/types/refresh-token';\r\nimport { UserStore } from 'stores';\r\n\r\nexport default class JwtApiClient extends HttpApiClient {\r\n private readonly MaxAttempts = 3;\r\n\r\n constructor(apiUrl: string,\r\n private userStore: UserStore,\r\n private hub: HubClient) {\r\n super(apiUrl);\r\n }\r\n\r\n buildHeaders(request: ApiRequest) {\r\n const headers: any = {\r\n 'Content-Type': 'application/json',\r\n 'X-Timezone-Offset': new Date().getTimezoneOffset()\r\n };\r\n if (!request.authorized)\r\n return headers;\r\n if (this.userStore.accessToken)\r\n headers['Authorization'] = `Bearer ${this.userStore.accessToken}`;\r\n if (this.hub.connectionId)\r\n headers['ConnectionId'] = this.hub.connectionId;\r\n return headers;\r\n }\r\n\r\n public async execute(request: ApiRequest, ResponseType: ({ new(json: any): T }) | undefined = undefined, attempt = 1): Promise> {\r\n let result = await this.processRequest(request, ResponseType);\r\n if (request.authorized) {\r\n // 401 - refresh tokens and repeat request\r\n if (result.status == HttpStatusCode.Unauthorized) {\r\n if (attempt == this.MaxAttempts || !await this.refreshTokens())\r\n return result;\r\n // repeat prev request\r\n result = await this.execute(request, ResponseType, attempt + 1);\r\n } else\r\n // e.g. access token is expired => refresh tokens\r\n if (result.response.resetToken)\r\n await this.refreshTokens();\r\n }\r\n if (result.response.hasTokens) {\r\n this.userStore.updateTokens(result.response.accessToken, result.response.refreshToken);\r\n\r\n if (request.autoUpdateUser)\r\n // it is important to refresh the user after every token change\r\n await this.fetchMe();\r\n }\r\n return result;\r\n }\r\n\r\n private async refreshTokens(): Promise {\r\n const result = await this.execute(new RefreshTokenRequest(this.userStore.refreshToken!), RefreshTokenResponse);\r\n if (!result.success) {\r\n this.userStore.reset();\r\n return false;\r\n }\r\n return result.success;\r\n }\r\n\r\n private async fetchMe(): Promise {\r\n const result = await this.execute(new FetchMeRequest(), FetchMeResponse);\r\n if (result.success)\r\n this.userStore.updateUser(result.response.student);\r\n return result.success;\r\n }\r\n}\r\n","import { computed, observable, action } from 'mobx';\r\nimport { TokenStore } from '@axl/accel-framework/stores';\r\nimport { Student } from 'models';\r\nimport { AuthCookieClient, JwtDecoder } from '@axl/accel-framework/utils';\r\n\r\nexport default class UserStore extends TokenStore {\r\n\r\n constructor(jwtDecoder: JwtDecoder,\r\n cookieClient: AuthCookieClient) {\r\n super(jwtDecoder, cookieClient);\r\n }\r\n\r\n @observable currentUser: Student;\r\n @action updateUser(user: Student) {\r\n this.currentUser = user;\r\n }\r\n\r\n @observable gamificationScore: number;\r\n @action setGamificationBalance(score: number) {\r\n this.gamificationScore = score;\r\n }\r\n\r\n /**\r\n * isAuthenticated & current user fetched\r\n */\r\n @computed get isAuthorized() {\r\n return this.isAuthenticated && this.currentUser != null;\r\n }\r\n\r\n /**\r\n * has an access token\r\n */\r\n @computed get isAuthenticated() {\r\n return this.decodedAccessToken != null;\r\n }\r\n\r\n @action reset() {\r\n this.clearTokens();\r\n // @ts-ignore\r\n this.currentUser = null;\r\n }\r\n}","import { inject } from 'react-ioc';\r\nimport Api from 'api';\r\nimport { ContactInFilterRequest } from 'api/methods/service/types/contact-in-filter';\r\nimport { RunCustomEventRequest, RunCustomEventRequestModel } from 'api/methods/service/types/run-custom-event';\r\nimport { UpdateLocalizationRequest } from 'api/methods/service/types/update-localization';\r\nimport { LocalizationStore } from '@axl/accel-framework/stores';\r\nimport UserStore from 'stores/UserStore/UserStore';\r\nimport { RefreshTokenRequest } from 'api/methods/auth/types/refresh-token';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\nimport { FetchMeRequest } from 'api/methods/auth/types/me';\r\nimport { KeepaliveRequest } from 'api/methods/service/types/keepalive';\r\nimport { SelectLangRequest } from 'api/methods/student/student/types/select-lang';\r\nimport { ProlongSessionRequest } from 'api/methods/auth/types/prolong-session';\r\n\r\nexport default class ServiceStore {\r\n\r\n constructor(private api: Api,\r\n private locStore: LocalizationStore,\r\n private userStore: UserStore) {\r\n this.api = api || inject(this, Api);\r\n this.locStore = locStore || inject(this, LocalizationStore);\r\n this.userStore = userStore || inject(this, UserStore);\r\n }\r\n\r\n async runCustomEvent(model: Partial) {\r\n const result = await this.api.service.runCustomEvent(new RunCustomEventRequest(model));\r\n return result.success;\r\n }\r\n\r\n async contactInFilter(contactId: string, filterId: string) {\r\n const result = await this.api.service.contactInFilter(new ContactInFilterRequest(filterId, contactId));\r\n if (result.response.isInFilter == true) return true;\r\n return false;\r\n }\r\n\r\n async updateLocalization(reloadPageIfSuccess: boolean = true) {\r\n const result = await this.api.service.updateLocalization(new UpdateLocalizationRequest());\r\n if (result.success) {\r\n this.locStore.clear();\r\n if (reloadPageIfSuccess)\r\n document.location.reload();\r\n }\r\n return result;\r\n }\r\n\r\n async refreshTokens() {\r\n if (!this.userStore.refreshToken)\r\n return false;\r\n const result = await this.api.auth.refreshToken(new RefreshTokenRequest(this.userStore.refreshToken));\r\n return result.success;\r\n }\r\n\r\n async updateUser() {\r\n const result = await this.api.auth.fetchMe(new FetchMeRequest());\r\n if (result.success)\r\n this.userStore.updateUser(result.response.student);\r\n return result.success;\r\n }\r\n\r\n async keepAlive() {\r\n if (!this.userStore.refreshToken)\r\n return false;\r\n const result = await this.api.service.keepalive(new KeepaliveRequest());\r\n return result.success;\r\n }\r\n\r\n async selectLang(lang: Lang): Promise {\r\n const result = await this.api.student.selectLang(new SelectLangRequest(lang));\r\n return result.success;\r\n }\r\n\r\n async prolongSession() {\r\n if (!this.userStore.refreshToken)\r\n return false;\r\n const result = await this.api.auth.prolongSession(new ProlongSessionRequest(this.userStore.refreshToken));\r\n return result.success;\r\n }\r\n}","import { observable, action, computed } from 'mobx';\r\nimport { inject } from 'react-ioc';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\nimport { DeviceStore } from '@axl/accel-framework/stores';\r\nimport { LangDetector } from '@axl/accel-framework/utils';\r\nimport type { IEZChatController, IEZPhoneController } from '@axl/ez-chat';\r\n\r\nexport default class UIStore {\r\n @observable isMenuCollapsed: boolean;\r\n @action async toggleMenu() {\r\n this.isMenuCollapsed = !this.isMenuCollapsed;\r\n }\r\n\r\n @observable isEmailConfirmationModalVisible: boolean = false;\r\n @action setIsEmailConfirmationModalVisible(val: boolean) { this.isEmailConfirmationModalVisible = val; }\r\n\r\n @observable isPhoneConfirmationModalVisible: boolean = false;\r\n @action setIsPhoneConfirmationModalVisible(val: boolean) { this.isPhoneConfirmationModalVisible = val; }\r\n\r\n @observable isProfileDrawerVisible: boolean = false;\r\n @observable defaultProfileTab: 'common' | 'notifications' | 'bonus' = 'common';\r\n @action setIsProfileDrawerVisible(val: boolean, defaultTab?: UIStore['defaultProfileTab']) {\r\n this.isProfileDrawerVisible = val;\r\n this.defaultProfileTab = defaultTab ?? 'common';\r\n }\r\n\r\n @computed get isMobile() {\r\n return this.deviceStore.width <= 600;\r\n }\r\n\r\n @computed get deviceSize() {\r\n return this.deviceStore.size;\r\n }\r\n\r\n get device() {\r\n return this.deviceStore;\r\n }\r\n\r\n constructor(private langDetector: LangDetector,\r\n private deviceStore: DeviceStore) {\r\n this.langDetector = langDetector || inject(this, LangDetector);\r\n this.deviceStore = deviceStore || inject(this, DeviceStore);\r\n this.isMenuCollapsed = this.deviceSize != 'desktop';\r\n }\r\n\r\n\r\n\r\n @computed get dateFormat(): string {\r\n switch (this.langDetector.lang) {\r\n case Lang.en: return 'DD MMMM YYYY';\r\n case Lang.ru: return 'DD MMMM YYYY';\r\n default: return 'DD MMMM YYYY';\r\n }\r\n }\r\n\r\n @computed get dateTimeFormat(): string {\r\n return `${this.dateFormat} HH:mm`;\r\n }\r\n\r\n getDateTimeFormat(includeTime: boolean = true, includeSeconds: boolean = false): string {\r\n let format = this.dateFormat;\r\n if (includeTime)\r\n format = `${format} ${this.dateTimeFormat}`;\r\n if (includeSeconds) format += ':ss';\r\n return format;\r\n }\r\n\r\n @observable chatController: IEZChatController;\r\n @action setChatController(chatController: IEZChatController) {\r\n this.chatController = chatController;\r\n }\r\n\r\n @observable phoneController: IEZPhoneController;\r\n @action setPhoneController(phoneController: IEZPhoneController) {\r\n this.phoneController = phoneController;\r\n }\r\n}","import { runInAction } from 'mobx';\r\nimport { observable, action, computed } from 'mobx';\r\nimport { inject } from 'react-ioc';\r\nimport Api from 'api';\r\nimport { FetchSchoolSettingsRequest } from 'api/methods/school-settings/types/fetch-school-settings';\r\nimport { School } from 'models';\r\n\r\nexport default class SchoolStore {\r\n @observable ready: boolean = false;\r\n @observable school: School;\r\n\r\n constructor(private api: Api) {\r\n this.api = api || inject(this, Api);\r\n }\r\n\r\n @computed get hasUserFooter() {\r\n return this.school.settings.isPageFooterEnabled;\r\n }\r\n\r\n @action async fetchSchool() {\r\n this.ready = false;\r\n const result = await this.api.schoolSettings.fetch(new FetchSchoolSettingsRequest());\r\n if (result.success)\r\n runInAction(() => {\r\n this.school = result.response.school;\r\n this.ready = true;\r\n });\r\n }\r\n}\r\n","/**\n * @remix-run/router v1.14.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname));\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = safelyDecodeURIComponent(value || \"\", paramName);\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === matches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors = null;\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n let initialized;\n let hasLazyRoutes = initialMatches.some(m => m.route.lazy);\n let hasLoaders = initialMatches.some(m => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(m => m.route.loader && m.route.loader.hydrate !== true && (loaderData && loaderData[m.route.id] !== undefined || errors && errors[m.route.id] !== undefined));\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a
\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace,\n flushSync\n });\n if (actionOutput.shortCircuited) {\n return;\n }\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // Create a GET request for the loaders\n request = new Request(request.url, {\n signal: request.signal\n });\n }\n // Call loaders\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionData, pendingError);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (!isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration)) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, flushSync, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, flushSync, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, {\n [match.route.id]: actionResult.data\n }, undefined // No need to send through errors since we short circuit above\n );\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(state, redirect, _temp2) {\n let {\n submission,\n fetcherSubmission,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true\n });\n invariant(redirectLocation, \"Expected a location on the redirect navigation\");\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath)), ...fetchersToLoad.map(f => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, f.controller.signal), f.match, f.matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n } else {\n let error = {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n };\n return error;\n }\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, loaderResults.map(() => request.signal), false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, fetchersToLoad.map(f => f.controller ? f.controller.signal : null), true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(request, _temp3) {\n let {\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n });\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n });\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n }))]);\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Add an ?index param for matched index routes if we don't already have one\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch && activeRouteMatch.route.index && !hasNakedIndexQuery(path.search)) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, isInitialLoad, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return state.loaderData[route.id] === undefined && (\n // Don't re-run if the loader ran and threw an error\n !state.errors || state.errors[route.id] === undefined);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (isInitialLoad || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\nasync function callLoaderOrAction(type, request, match, matches, manifest, mapRouteProperties, basename, v7_relativeSplatPath, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let resultType;\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([handler({\n request,\n params: match.params,\n context: opts.requestContext\n }), abortPromise]);\n };\n try {\n let handler = match.route[type];\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadLazyRouteModule(match.route, mapRouteProperties, manifest)]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n data: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n if (isResponse(result)) {\n let status = result.status;\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(new URL(request.url), matches.slice(0, matches.indexOf(match) + 1), basename, true, location, v7_relativeSplatPath);\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null\n };\n }\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse = {\n type: resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result\n };\n throw queryRouteResponse;\n }\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = errors || {};\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds);\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match,\n controller\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index];\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return {\n result,\n idx: i\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || obj.type === ResultType.error);\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signals, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(signal, \"Expected an AbortSignal for revalidating fetcher deferred result\");\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.21.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState2;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _dataRouterState;\n if ((_dataRouterState = dataRouterState) != null && _dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState2 = dataRouterState) == null ? void 0 : _dataRouterState2.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a