%PDF- %PDF-
Direktori : /home/opti/public_html/ncf/static/js/ |
Current File : /home/opti/public_html/ncf/static/js/27.1d43a4f5.chunk.js.map |
{"version":3,"sources":["../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/hooks/useBatchFrameState.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-checkbox/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/reactstrap/es/Row.js","../node_modules/reactstrap/es/Col.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/index.js","../node_modules/rc-menu/es/Divider.js","../node_modules/reactstrap/es/ModalHeader.js","../node_modules/rc-tabs/es/hooks/useRaf.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/hooks/useRefs.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/antd/es/tabs/index.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/_util/getDataOrAriaProps.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/reactstrap/es/Portal.js","../node_modules/reactstrap/es/Modal.js"],"names":["KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","e","keyCode","altKey","ctrlKey","metaKey","isCharacterKey","window","navigator","userAgent","indexOf","UNDEFINED","undefined","InternalItem","props","ref","prefixCls","invalidate","item","renderItem","responsive","registerSize","itemKey","className","style","children","display","order","_props$component","component","Component","restProps","_objectWithoutProperties","mergedHidden","internalRegisterSize","width","React","overflowStyle","childNode","opacity","height","overflowY","pointerEvents","position","overflowProps","itemNode","_extends","classNames","_objectSpread","ResizeObserver","onResize","_ref","offsetWidth","Item","displayName","InternalRawItem","context","OverflowContext","_restProps","contextClassName","restContext","Provider","value","RawItem","RESPONSIVE","INVALIDATE","defaultRenderRest","omittedItems","concat","length","Overflow","_props$prefixCls","_props$data","data","renderRawItem","_props$itemWidth","itemWidth","ssr","maxCount","renderRest","renderRawRest","suffix","itemComponent","onVisibleChange","createUseState","_useState","useState","forceUpdate","_slicedToArray","statesRef","useRef","destroyRef","walkingIndex","beforeFrameId","useEffect","current","defaultValue","myIndex","val","raf","cancel","useBatchFrameState","fullySSR","_createUseState","_createUseState2","containerWidth","setContainerWidth","mergedContainerWidth","_createUseState3","Map","_createUseState4","itemWidths","setItemWidths","_createUseState5","_createUseState6","prevRestWidth","setPrevRestWidth","_createUseState7","_createUseState8","restWidth","setRestWidth","_createUseState9","_createUseState10","suffixWidth","setSuffixWidth","_useState2","suffixFixedStart","setSuffixFixedStart","_useState3","_useState4","displayCount","setDisplayCount","mergedDisplayCount","Number","MAX_SAFE_INTEGER","_useState5","_useState6","restReady","setRestReady","itemPrefixCls","mergedRestWidth","Math","max","isResponsive","showRest","mergedData","useMemo","items","slice","min","getKey","useCallback","index","mergedRenderItem","updateDisplayCount","count","notReady","key","origin","clone","delete","set","getItemWidth","get","totalWidth","len","lastIndex","i","currentItemWidth","displayRest","suffixStyle","left","top","restNode","itemSharedProps","internalRenderItemNode","restContextProps","_","mergedRenderRest","overflowNode","map","element","clientWidth","ForwardOverflow","Checkbox","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","this","call","handleChange","_this$props","disabled","onChange","setState","checked","target","stopPropagation","preventDefault","nativeEvent","saveInput","node","input","defaultChecked","state","_createClass","focus","blur","_classNames","_this$props2","name","id","type","readOnly","tabIndex","onClick","onFocus","onBlur","onKeyDown","onKeyPress","onKeyUp","autoFocus","required","others","globalProps","Object","keys","reduce","prev","substr","classString","_defineProperty","createElement","defaultProps","CloseOutlined","AntdIcon","icon","CloseOutlinedSvg","_excluded","rowColsPropType","PropTypes","oneOfType","number","string","propTypes","tag","tagPropType","noGutters","bool","cssModule","object","form","xs","sm","md","lg","xl","widths","Row","Tag","attributes","_objectWithoutPropertiesLoose","colClasses","forEach","colWidth","colSize","isXs","push","classes","mapToCssModules","stringOrNumberProp","columnProps","shape","size","offset","array","getColumnSizeClass","Col","columnProp","isObject","colSizeInterfix","colClass","_colClass","MenuContext","InheritableContextProvider","locked","inheritableContext","mergeProps","next","shallowEqual","useActive","eventKey","onMouseEnter","onMouseLeave","_React$useContext","activeKey","onActive","onInactive","ret","active","domEvent","warnItemProp","restInfo","defineProperty","warning","Icon","useDirectionStyle","level","mode","rtl","inlineIndent","paddingRight","paddingLeft","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","_toConsumableArray","PathUserContext","IdContext","getMenuId","uuid","useMenuId","_excluded2","_excluded3","LegacyMenuItem","_React$Component","apply","arguments","title","attribute","elementRef","passedProps","omit","InternalMenuItem","warnKey","itemIcon","role","domDataId","onItemClick","contextDisabled","overflowDisabled","contextItemIcon","selectedKeys","itemCls","legacyMenuItemRef","mergedDisabled","connectedKeys","getEventInfo","keyPath","reverse","mergedItemIcon","_useActive","activeProps","selected","includes","directionStyle","optionRoleProps","info","which","isSelected","MenuItem","measure","connectedKeyPath","registerPath","unregisterPath","parseChildren","toArray","child","_child$props$eventKey","_child$props","join","cloneProps","useMemoCallback","func","funRef","callback","_funRef$current","_len","args","Array","_key","InternalSubMenuList","SubMenuList","autoAdjustOverflow","adjustX","adjustY","placements","topLeft","points","overflow","bottomLeft","leftTop","rightTop","placementsRtl","getMotion","motion","defaultMotions","other","popupPlacementMap","horizontal","vertical","PopupTrigger","visible","popup","popupClassName","popupOffset","getPopupContainer","subMenuOpenDelay","subMenuCloseDelay","builtinPlacements","triggerSubMenuAction","forceSubMenuRender","_React$useState","_React$useState2","innerVisible","setInnerVisible","placement","popupPlacement","targetMotion","mergedMotion","leavedClassName","removeOnLeave","motionAppear","visibleRef","Trigger","stretch","popupVisible","popupAlign","action","mouseEnterDelay","mouseLeaveDelay","onPopupVisibleChange","forceRender","popupMotion","InlineSubMenuList","open","fixedMode","sameModeRef","destroy","setDestroy","mergedOpen","originOnVisibleChanged","onVisibleChanged","newVisible","MenuContextProvider","CSSMotion","_ref2","motionClassName","motionStyle","InternalSubMenu","internalPopupClose","expandIcon","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","onOpenChange","isSubPathKey","connectedPath","subMenuPrefixCls","popupRef","mergedExpandIcon","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","popupId","titleNode","isOpen","isSubMenu","triggerModeRef","triggerMode","SubMenu","renderNode","childList","focusable","includePositive","isVisible","nodeName","toLowerCase","isFocusableElement","isContentEditable","getAttribute","tabIndexAttr","tabIndexNum","isNaN","getFocusNodeList","res","querySelectorAll","filter","unshift","ArrowKeys","getFocusableElements","container","elements","ele","has","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","focusIndex","findIndex","useAccessibility","isRtl","containerRef","getKeys","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","activeRef","cleanRaf","key2element","element2key","refreshElements","Set","document","querySelector","add","activeElement","parentElement","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_inline","_horizontal","_vertical","_offsets$","parent","inlineTrigger","inline","inlineSub","horizontalSub","verticalSub","sibling","getOffset","tryFocus","menuElement","focusTargetElement","link","targetKey","targetElement","findContainerUL","controlId","getElementById","parentKey","parentMenuElement","uniquePrefix","random","toFixed","toString","internalId","PATH_SPLIT","getPathStr","OVERFLOW_KEY","useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","_React$useState3","_React$useState4","overflowKeys","setOverflowKeys","updateRef","Promise","resolve","then","refreshOverflowKeys","includeOverflow","fullPath","split","pathKeys","some","pathKey","getSubPathKeys","startsWith","EMPTY_LIST","InternalMenuItemGroup","groupPrefixCls","ExportMenu","_childList$","_props$tabIndex","direction","_props$mode","inlineCollapsed","disabledOverflow","_props$subMenuOpenDel","_props$subMenuCloseDe","defaultOpenKeys","defaultActiveFirst","_props$selectable","selectable","_props$multiple","multiple","defaultSelectedKeys","onSelect","onDeselect","_props$inlineIndent","_props$triggerSubMenu","_props$overflowedIndi","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","mounted","setMounted","_useMergedState","useMergedState","_useMergedState2","setUUID","newId","useUUID","_React$useMemo","_React$useMemo2","mergedMode","mergedInlineCollapsed","lastVisibleIndex","setLastVisibleIndex","allVisible","postState","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","_React$useState5","_React$useState6","inlineCacheOpenKeys","setInlineCacheOpenKeys","isInlineMode","mountRef","_useKeyRecords","registerPathContext","pathUserContext","_useMergedState3","_useMergedState4","mergedActiveKey","setMergedActiveKey","_useMergedState5","isArray","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","onInternalClick","newSelectKeys","exist","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","k","subPathKeys","getInternalPopupContainer","onInternalKeyDown","nextOpen","wrappedChildList","dir","omitItems","originOmitItems","newLastIndex","ItemGroup","Divider","wrapTag","toggle","closeAriaLabel","charCode","close","ModalHeader","closeButton","WrapTag","closeIcon","String","fromCharCode","useRaf","removedRef","TabNode","_ref$tab","tab","closable","renderWrapper","removeAriaLabel","editable","onRemove","tabPrefix","removable","event","onEdit","removeIcon","DEFAULT_SIZE","right","targetOffset","topCenter","topRight","bottomCenter","bottomRight","Dropdown","_props$arrow","arrow","transitionName","animation","align","_props$placement","_props$placements","Placements","showAction","hideAction","overlayClassName","overlayStyle","_props$trigger","trigger","otherProps","triggerVisible","setTriggerVisible","mergedVisible","triggerRef","getOverlayElement","overlay","onOverlayClick","overlayProps","getMenuElement","overlayElement","extraOverlayProps","triggerHideAction","assign","popupStyle","popupTransitionName","popupAnimation","minOverlayWidthMatchTrigger","alignPoint","getMinOverlayWidthMatchTrigger","childrenProps","childClassName","openClassName","getOpenClassName","renderChildren","AddButton","locale","showAdd","addAriaLabel","addIcon","OperationNode","tabs","mobile","_ref$moreIcon","moreIcon","moreTransitionName","tabBarGutter","onTabClick","setOpen","selectedKey","setSelectedKey","dropdownPrefix","selectedItemId","dropdownAriaLabel","menu","Menu","selectOffset","enabledTabs","selectedIndex","scrollIntoView","moreStyle","visibility","moreNode","createContext","SPEED_OFF_MULTIPLE","pow","useSyncState","defaultState","stateRef","updater","newValue","ExtraContent","content","extra","assertExtra","_typeof","TabNavList","TabContext","animated","tabPosition","onTabScroll","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useRefs","cacheRefs","useRefs","_useRefs2","getBtnRef","removeBtnRef","tabPositionTopOrBottom","_useSyncState","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","wrapperScrollWidth","setWrapperScrollWidth","wrapperScrollHeight","setWrapperScrollHeight","wrapperContentWidth","setWrapperContentWidth","_useState7","_useState8","wrapperContentHeight","setWrapperContentHeight","_useState9","_useState10","wrapperWidth","setWrapperWidth","_useState11","_useState12","wrapperHeight","setWrapperHeight","_useState13","_useState14","addWidth","setAddWidth","_useState15","_useState16","addHeight","setAddHeight","_useRafState","batchRef","flushUpdate","useRafState","_useRafState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","_tabs$","lastOffset","rightOffset","_tabs","entity","useOffsets","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState17","_useState18","lockAnimation","setLockAnimation","doLockAnimation","Date","now","clearTouchMoving","clearTimeout","scrollToTab","tabOffset","newTransform","_newTransform","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","motionRef","lastWheelDirectionRef","touchEventsRef","onTouchStart","_e$touches$","touches","screenX","screenY","x","y","clearInterval","onTouchMove","_e$touches$2","offsetX","offsetY","onTouchEnd","distanceX","distanceY","absX","abs","absY","currentX","currentY","setInterval","onWheel","deltaX","deltaY","mixed","onProxyTouchMove","onProxyTouchEnd","addEventListener","passive","removeEventListener","useTouchMove","doMove","setTimeout","_useVisibleRange","containerSize","tabContentNodeSize","addNodeSize","unit","transformSize","basicSize","tabContentSize","addSize","mergedBasicSize","endIndex","startIndex","_i","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","tabNodeStyle","marginTop","tabNodes","scrollLeft","scrollTop","onListHolderResize","_tabsWrapperRef$curre","_tabsWrapperRef$curre2","_innerAddButtonRef$cu","_innerAddButtonRef$cu2","_operationsRef$curren","_operationsRef$curren2","_tabListRef$current","_tabListRef$current2","_operationsRef$curren3","offsetHeight","newAddWidth","newAddHeight","newOperationWidth","newOperationHeight","newWrapperScrollWidth","newWrapperScrollHeight","isOperationHidden","newSizes","btnNode","offsetLeft","offsetTop","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState19","_useState20","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","transform","transition","inkBar","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","tabPane","activeIndex","tabKey","TabPane","visited","setVisited","mergedStyle","Tabs","mergedAnimated","_ref$prefixCls","defaultActiveKey","_ref$animated","_ref$tabPosition","tabBarStyle","tabBarExtraContent","renderTabBar","parseTabList","setMobile","isMobile","setActiveIndex","_tabs$newActiveIndex","newActiveIndex","mergedId","setMergedId","mergedTabPosition","tabNavBar","sharedProps","tabNavBarProps","panes","ForwardTabs","EllipsisOutlined","EllipsisOutlinedSvg","PlusOutlined","PlusOutlinedSvg","__rest","s","t","p","prototype","hasOwnProperty","getOwnPropertySymbols","propertyIsEnumerable","_a","propSize","_onEdit","hideAdd","centered","customizePrefixCls","_props$moreIcon","ConfigContext","getPrefixCls","editType","rootPrefixCls","devWarning","SizeContext","Consumer","contextSize","RcTabs","RadioGroupContext","RadioGroupContextProvider","InternalRadio","innerRef","mergedRef","composeRef","radioProps","_b","wrapperClassString","RcCheckbox","Radio","RadioGroup","setValue","ev","lastValue","_props$className","options","optionType","_props$buttonStyle","buttonStyle","customizeSize","childrenToRender","optionsPrefixCls","option","label","mergedSize","getDataOrAriaProps","renderGroup","RadioButton","radioGroupContext","Button","Group","isRequired","any","Portal","_inheritsLoose","_proto","componentWillUnmount","defaultNode","body","removeChild","render","canUseDOM","appendChild","ReactDOM","createPortal","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","source","getOwnPropertyDescriptors","defineProperties","noop","FadePropTypes","Fade","scrollable","keyboard","labelledBy","backdrop","oneOf","onEnter","onExit","onOpened","onClosed","wrapClassName","modalClassName","backdropClassName","contentClassName","external","fade","zIndex","backdropTransition","modalTransition","unmountOnClose","returnFocusAfterClose","targetPropType","trapFocus","propsToOmit","timeout","TransitionTimeouts","Modal","mountOnEnter","_element","_originalBodyPadding","getFocusableChildren","bind","_assertThisInitialized","handleBackdropClick","handleBackdropMouseDown","handleEscape","handleStaticBackdropAnimation","handleTab","manageFocusAfterClose","clearBackdropAnimationTimeout","showStaticBackdropAnimation","componentDidMount","init","setFocus","_isMounted","componentDidUpdate","prevProps","prevState","_dialog","parentNode","modalIndex","openCount","isAppearing","onEntered","onExited","focusableElements","getFocusedChild","currentFocus","focusableChildren","err","_mouseDownElement","totalFocusable","focusedIndex","shiftKey","keyCodes","esc","_this2","_backdropAnimationTimeout","_triggeringElement","setAttribute","_mountContainer","getTarget","getOriginalBodyPadding","conditionallyUpdateScrollbar","modalOpenClassName","modalOpenClassNameRegex","RegExp","replace","trim","setScrollbarWidth","renderModalDialog","_this3","dialogBaseClass","c","isModalHidden","modalAttributes","onMouseDown","hasTransition","baseClass","Backdrop","in"],"mappings":"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","file":"static/js/27.1d43a4f5.chunk.js","sourcesContent":["/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","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 * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer'; // Use shared variable to save bundle size\n\nvar UNDEFINED = undefined;\n\nfunction InternalItem(props, ref) {\n var prefixCls = props.prefixCls,\n invalidate = props.invalidate,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"]);\n\n var mergedHidden = responsive && !display; // ================================ Effect ================================\n\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []); // ================================ Render ================================\n\n var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n var overflowStyle;\n\n if (!invalidate) {\n overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : UNDEFINED,\n overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n order: responsive ? order : UNDEFINED,\n pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n position: mergedHidden ? 'absolute' : UNDEFINED\n };\n }\n\n var overflowProps = {};\n\n if (mergedHidden) {\n overflowProps['aria-hidden'] = true;\n }\n\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: _objectSpread(_objectSpread({}, overflowStyle), style)\n }, overflowProps, restProps, {\n ref: ref\n }), childNode);\n\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n }\n }, itemNode);\n }\n\n return itemNode;\n}\n\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './Overflow';\n\nvar InternalRawItem = function InternalRawItem(props, ref) {\n var context = React.useContext(OverflowContext); // Render directly when context not provided\n\n if (!context) {\n var _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _restProps = _objectWithoutProperties(props, [\"component\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n ref: ref\n }));\n }\n\n var contextClassName = context.className,\n restContext = _objectWithoutProperties(context, [\"className\"]);\n\n var className = props.className,\n restProps = _objectWithoutProperties(props, [\"className\"]); // Do not pass context to sub item to avoid multiple measure\n\n\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Item, _extends({\n ref: ref,\n className: classNames(contextClassName, className)\n }, restContext, restProps)));\n};\n\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport Item from './Item';\nimport { useBatchFrameState } from './hooks/useBatchFrameState';\nimport RawItem from './RawItem';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\n\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\n\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n renderRawItem = props.renderRawItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n ssr = props.ssr,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n renderRest = props.renderRest,\n renderRawRest = props.renderRawRest,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n itemComponent = props.itemComponent,\n onVisibleChange = props.onVisibleChange,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"]);\n\n var createUseState = useBatchFrameState();\n var fullySSR = ssr === 'full';\n\n var _createUseState = createUseState(null),\n _createUseState2 = _slicedToArray(_createUseState, 2),\n containerWidth = _createUseState2[0],\n setContainerWidth = _createUseState2[1];\n\n var mergedContainerWidth = containerWidth || 0;\n\n var _createUseState3 = createUseState(new Map()),\n _createUseState4 = _slicedToArray(_createUseState3, 2),\n itemWidths = _createUseState4[0],\n setItemWidths = _createUseState4[1];\n\n var _createUseState5 = createUseState(0),\n _createUseState6 = _slicedToArray(_createUseState5, 2),\n prevRestWidth = _createUseState6[0],\n setPrevRestWidth = _createUseState6[1];\n\n var _createUseState7 = createUseState(0),\n _createUseState8 = _slicedToArray(_createUseState7, 2),\n restWidth = _createUseState8[0],\n setRestWidth = _createUseState8[1];\n\n var _createUseState9 = createUseState(0),\n _createUseState10 = _slicedToArray(_createUseState9, 2),\n suffixWidth = _createUseState10[0],\n setSuffixWidth = _createUseState10[1];\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n\n var mergedDisplayCount = React.useMemo(function () {\n if (displayCount === null && fullySSR) {\n return Number.MAX_SAFE_INTEGER;\n }\n\n return displayCount || 0;\n }, [displayCount, containerWidth]);\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\"); // Always use the max width to avoid blink\n\n var mergedRestWidth = Math.max(prevRestWidth, restWidth); // ================================= Data =================================\n\n var isResponsive = data.length && maxCount === RESPONSIVE;\n var invalidate = maxCount === INVALIDATE;\n /**\n * When is `responsive`, we will always render rest node to get the real width of it for calculation\n */\n\n var showRest = isResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n\n if (isResponsive) {\n if (containerWidth === null && fullySSR) {\n items = data;\n } else {\n items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n }\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n\n return items;\n }, [data, itemWidth, containerWidth, maxCount, isResponsive]);\n var omittedItems = useMemo(function () {\n if (isResponsive) {\n return data.slice(mergedDisplayCount + 1);\n }\n\n return data.slice(mergedData.length);\n }, [data, mergedData, isResponsive, mergedDisplayCount]); // ================================= Item =================================\n\n var getKey = useCallback(function (item, index) {\n var _ref;\n\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n\n function updateDisplayCount(count, notReady) {\n setDisplayCount(count);\n\n if (!notReady) {\n setRestReady(count < data.length - 1);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n }\n } // ================================= Size =================================\n\n\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n\n return clone;\n });\n }\n\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n } // ================================ Effect ================================\n\n\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n\n React.useLayoutEffect(function () {\n if (mergedContainerWidth && mergedRestWidth && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.length;\n var lastIndex = len - 1; // When data count change to 0, reset this since not loop will reach\n\n if (!len) {\n updateDisplayCount(0);\n setSuffixFixedStart(null);\n return;\n }\n\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i); // Break since data not ready\n\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, true);\n break;\n } // Find best match\n\n\n totalWidth += currentItemWidth;\n\n if ( // Only one means `totalWidth` is the final width\n lastIndex === 0 && totalWidth <= mergedContainerWidth || // Last two width will be the final width\n i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex);\n setSuffixFixedStart(null);\n break;\n } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1);\n setSuffixFixedStart(totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n }\n\n if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]); // ================================ Render ================================\n\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n\n if (suffixFixedStart !== null && isResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: isResponsive,\n component: itemComponent,\n invalidate: invalidate\n }; // >>>>> Choice render fun by `renderRawItem`\n\n var internalRenderItemNode = renderRawItem ? function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n key: key,\n value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n order: index,\n item: item,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n })\n }, renderRawItem(item, index));\n } : function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n }));\n }; // >>>>> Rest node\n\n var restNode;\n var restContextProps = {\n order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n };\n\n if (!renderRawRest) {\n var mergedRenderRest = renderRest || defaultRenderRest;\n restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n } else if (renderRawRest) {\n restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n }, renderRawRest(omittedItems));\n }\n\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: mergedDisplayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize\n }, overflowNode);\n }\n\n return overflowNode;\n}\n\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE; // Convert to generic type\n\nexport default ForwardOverflow;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\n/**\n * State generate. Return a `setState` but it will flush all state with one render to save perf.\n * This is not a realization of `unstable_batchedUpdates`.\n */\n\nexport function useBatchFrameState() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var statesRef = useRef([]);\n var destroyRef = useRef(false);\n var walkingIndex = 0;\n var beforeFrameId = 0;\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n\n function createState(defaultValue) {\n var myIndex = walkingIndex;\n walkingIndex += 1; // Fill value if not exist yet\n\n if (statesRef.current.length < myIndex + 1) {\n statesRef.current[myIndex] = defaultValue;\n } // Return filled as `setState`\n\n\n var value = statesRef.current[myIndex];\n\n function setValue(val) {\n statesRef.current[myIndex] = typeof val === 'function' ? val(statesRef.current[myIndex]) : val;\n raf.cancel(beforeFrameId); // Flush with batch\n\n beforeFrameId = raf(function () {\n if (!destroyRef.current) {\n forceUpdate({});\n }\n });\n }\n\n return [value, setValue];\n }\n\n return createState;\n}","import Overflow from './Overflow';\nexport default Overflow;","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 _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\n\nvar Checkbox = /*#__PURE__*/function (_Component) {\n _inherits(Checkbox, _Component);\n\n var _super = _createSuper(Checkbox);\n\n function Checkbox(props) {\n var _this;\n\n _classCallCheck(this, Checkbox);\n\n _this = _super.call(this, props);\n\n _this.handleChange = function (e) {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n onChange = _this$props.onChange;\n\n if (disabled) {\n return;\n }\n\n if (!('checked' in _this.props)) {\n _this.setState({\n checked: e.target.checked\n });\n }\n\n if (onChange) {\n onChange({\n target: _objectSpread(_objectSpread({}, _this.props), {}, {\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 };\n\n _this.saveInput = function (node) {\n _this.input = node;\n };\n\n var checked = 'checked' in props ? props.checked : props.defaultChecked;\n _this.state = {\n checked: checked\n };\n return _this;\n }\n\n _createClass(Checkbox, [{\n key: \"focus\",\n value: function focus() {\n this.input.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.input.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n style = _this$props2.style,\n name = _this$props2.name,\n id = _this$props2.id,\n type = _this$props2.type,\n disabled = _this$props2.disabled,\n readOnly = _this$props2.readOnly,\n tabIndex = _this$props2.tabIndex,\n onClick = _this$props2.onClick,\n onFocus = _this$props2.onFocus,\n onBlur = _this$props2.onBlur,\n onKeyDown = _this$props2.onKeyDown,\n onKeyPress = _this$props2.onKeyPress,\n onKeyUp = _this$props2.onKeyUp,\n autoFocus = _this$props2.autoFocus,\n value = _this$props2.value,\n required = _this$props2.required,\n others = _objectWithoutProperties(_this$props2, [\"prefixCls\", \"className\", \"style\", \"name\", \"id\", \"type\", \"disabled\", \"readOnly\", \"tabIndex\", \"onClick\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onKeyPress\", \"onKeyUp\", \"autoFocus\", \"value\", \"required\"]);\n\n var globalProps = Object.keys(others).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'aria-' || key.substr(0, 5) === 'data-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = others[key];\n }\n\n return prev;\n }, {});\n var checked = this.state.checked;\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classString,\n style: style\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n name: name,\n id: id,\n type: type,\n required: required,\n readOnly: readOnly,\n disabled: disabled,\n tabIndex: tabIndex,\n className: \"\".concat(prefixCls, \"-input\"),\n checked: !!checked,\n onClick: onClick,\n onFocus: onFocus,\n onBlur: onBlur,\n onKeyUp: onKeyUp,\n onKeyDown: onKeyDown,\n onKeyPress: onKeyPress,\n onChange: this.handleChange,\n autoFocus: autoFocus,\n ref: this.saveInput,\n value: value\n }, globalProps)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if ('checked' in props) {\n return _objectSpread(_objectSpread({}, state), {}, {\n checked: props.checked\n });\n }\n\n return null;\n }\n }]);\n\n return Checkbox;\n}(Component);\n\nCheckbox.defaultProps = {\n prefixCls: 'rc-checkbox',\n className: '',\n style: {},\n type: 'checkbox',\n defaultChecked: false,\n onFocus: function onFocus() {},\n onBlur: function onBlur() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {},\n onKeyPress: function onKeyPress() {},\n onKeyUp: function onKeyUp() {}\n};\nexport default Checkbox;","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\n\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"noGutters\", \"tag\", \"form\", \"widths\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar rowColWidths = ['xs', 'sm', 'md', 'lg', 'xl'];\nvar rowColsPropType = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\nvar propTypes = {\n tag: tagPropType,\n noGutters: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n form: PropTypes.bool,\n xs: rowColsPropType,\n sm: rowColsPropType,\n md: rowColsPropType,\n lg: rowColsPropType,\n xl: rowColsPropType\n};\nvar defaultProps = {\n tag: 'div',\n widths: rowColWidths\n};\n\nvar Row = function Row(props) {\n var className = props.className,\n cssModule = props.cssModule,\n noGutters = props.noGutters,\n Tag = props.tag,\n form = props.form,\n widths = props.widths,\n attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n var colClasses = [];\n widths.forEach(function (colWidth, i) {\n var colSize = props[colWidth];\n delete attributes[colWidth];\n\n if (!colSize) {\n return;\n }\n\n var isXs = !i;\n colClasses.push(isXs ? \"row-cols-\" + colSize : \"row-cols-\" + colWidth + \"-\" + colSize);\n });\n var classes = mapToCssModules(classNames(className, noGutters ? 'no-gutters' : null, form ? 'form-row' : 'row', colClasses), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nRow.propTypes = propTypes;\nRow.defaultProps = defaultProps;\nexport default Row;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"widths\", \"tag\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType, isObject } from './utils';\nvar colWidths = ['xs', 'sm', 'md', 'lg', 'xl'];\nvar stringOrNumberProp = PropTypes.oneOfType([PropTypes.number, PropTypes.string]);\nvar columnProps = PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string, PropTypes.shape({\n size: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string]),\n order: stringOrNumberProp,\n offset: stringOrNumberProp\n})]);\nvar propTypes = {\n tag: tagPropType,\n xs: columnProps,\n sm: columnProps,\n md: columnProps,\n lg: columnProps,\n xl: columnProps,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n widths: PropTypes.array\n};\nvar defaultProps = {\n tag: 'div',\n widths: colWidths\n};\n\nvar getColumnSizeClass = function getColumnSizeClass(isXs, colWidth, colSize) {\n if (colSize === true || colSize === '') {\n return isXs ? 'col' : \"col-\" + colWidth;\n } else if (colSize === 'auto') {\n return isXs ? 'col-auto' : \"col-\" + colWidth + \"-auto\";\n }\n\n return isXs ? \"col-\" + colSize : \"col-\" + colWidth + \"-\" + colSize;\n};\n\nvar Col = function Col(props) {\n var className = props.className,\n cssModule = props.cssModule,\n widths = props.widths,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n var colClasses = [];\n widths.forEach(function (colWidth, i) {\n var columnProp = props[colWidth];\n delete attributes[colWidth];\n\n if (!columnProp && columnProp !== '') {\n return;\n }\n\n var isXs = !i;\n\n if (isObject(columnProp)) {\n var _classNames;\n\n var colSizeInterfix = isXs ? '-' : \"-\" + colWidth + \"-\";\n var colClass = getColumnSizeClass(isXs, colWidth, columnProp.size);\n colClasses.push(mapToCssModules(classNames((_classNames = {}, _classNames[colClass] = columnProp.size || columnProp.size === '', _classNames[\"order\" + colSizeInterfix + columnProp.order] = columnProp.order || columnProp.order === 0, _classNames[\"offset\" + colSizeInterfix + columnProp.offset] = columnProp.offset || columnProp.offset === 0, _classNames)), cssModule));\n } else {\n var _colClass = getColumnSizeClass(isXs, colWidth, columnProp);\n\n colClasses.push(_colClass);\n }\n });\n\n if (!colClasses.length) {\n colClasses.push('col');\n }\n\n var classes = mapToCssModules(classNames(className, colClasses), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCol.propTypes = propTypes;\nCol.defaultProps = defaultProps;\nexport default Col;","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 shallowEqual from 'shallowequal';\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\n\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\n\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\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] || !shallowEqual(prev[1], next[1]));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\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\n var ret = {\n active: activeKey === eventKey\n }; // Skip when disabled\n\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\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\n return ret;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\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 */\n\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n\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 _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\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\n return iconNode || children || null;\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\n if (mode !== 'inline') {\n return null;\n }\n\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n} // ========================= Path Tracker ==========================\n\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}\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","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\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n/**\n * Get `data-menu-id`\n */\n\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\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 * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { MenuContext } from './context/MenuContext';\nimport useActive from './hooks/useActive';\nimport { warnItemProp } from './utils/warnUtil';\nimport Icon from './Icon';\nimport useDirectionStyle from './hooks/useDirectionStyle';\nimport { useFullPath, useMeasure } from './context/PathContext';\nimport { useMenuId } from './context/IdContext'; // 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.\n\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n\n var _super = _createSuper(LegacyMenuItem);\n\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n\n return _super.apply(this, arguments);\n }\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 var passedProps = omit(restProps, ['eventKey']);\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\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\n\n\nvar InternalMenuItem = function InternalMenuItem(props) {\n var _classNames;\n\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\n var domDataId = useMenuId(eventKey);\n\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\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var connectedKeys = useFullPath(eventKey); // ================================ Warn ================================\n\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n } // ============================= Info =============================\n\n\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 }; // ============================= Icon =============================\n\n\n var mergedItemIcon = itemIcon || contextItemIcon; // ============================ Active ============================\n\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3); // ============================ Select ============================\n\n\n var selected = selectedKeys.includes(eventKey); // ======================== DirectionStyle ========================\n\n var directionStyle = useDirectionStyle(connectedKeys.length); // ============================ Events ============================\n\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e); // Legacy. Key will also trigger click event\n\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n\n\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n }; // ============================ Render ============================\n\n\n var optionRoleProps = {};\n\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n\n return /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: elementRef,\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};\n\nfunction MenuItem(props) {\n var eventKey = props.eventKey; // ==================== Record KeyPath ====================\n\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey); // eslint-disable-next-line consistent-return\n\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\n if (measure) {\n return null;\n } // ======================== Render ========================\n\n\n return /*#__PURE__*/React.createElement(InternalMenuItem, props);\n}\n\nexport default MenuItem;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _child$props$eventKey, _child$props;\n\n var key = child.key;\n var eventKey = (_child$props$eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _child$props$eventKey !== void 0 ? _child$props$eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n\n return child;\n });\n}","import * as React from 'react';\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\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\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\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 _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';\n\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n\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 }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\n\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","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\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\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\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 motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n\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\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\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotion), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n }); // Delay to change visible\n\n\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),\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\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; // Always use latest mode check\n\n\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode; // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n\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\n var mergedOpen = sameModeRef.current ? open : false; // ================================= Effect =================================\n // Reset destroy state when mode change back\n\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]); // ================================= Render =================================\n\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions)); // No need appear since nest inlineCollapse changed\n\n\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n } // Hide inline list when mode changed and motion end\n\n\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n\n if (destroy) {\n return null;\n }\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';\n\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n\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\n var domDataId = useMenuId(eventKey);\n\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\n var _React$useContext2 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext2.isSubPathKey;\n\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(); // ================================ Warn ================================\n\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n } // ================================ Icon ================================\n\n\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon; // ================================ Open ================================\n\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen; // =============================== Select ===============================\n\n var childrenSelected = isSubPathKey(selectedKeys, eventKey); // =============================== Active ===============================\n\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2); // Fallback of active check to avoid hover on menu title or disabled item\n\n\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\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\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\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\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]); // ========================== DirectionStyle ==========================\n\n var directionStyle = useDirectionStyle(connectedPath.length); // =============================== Events ===============================\n // >>>> Title click\n\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n }); // Trigger open by click when mode is `inline`\n\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n }; // >>>> Context for children click\n\n\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }); // >>>>> Visible change\n\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n\n\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n }; // =============================== Render ===============================\n\n\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\"); // >>>>> Title\n\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 }))); // Cache mode if it change to `inline` which do not have popup motion\n\n var triggerModeRef = React.useRef(mode);\n\n if (mode !== 'inline') {\n triggerModeRef.current = connectedPath.length > 1 ? 'vertical' : mode;\n }\n\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current; // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n\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 // 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 } // >>>>> Render\n\n\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, /*#__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};\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); // ==================== Record KeyPath ====================\n\n var measure = useMeasure(); // eslint-disable-next-line consistent-return\n\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; // ======================== Render ========================\n\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from './isVisible';\n\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement = // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) || // Editable element\n node.isContentEditable || nodeName === 'a' && !!node.getAttribute('href'); // Get tabIndex\n\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr); // Parse as number if validate\n\n var tabIndex = null;\n\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n } // Block focusable if disabled\n\n\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n\n return false;\n}\n\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n\n return res;\n}\nvar lastFocusElement = null;\n/** @deprecated Do not use since this may failed when used in async */\n\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n/** @deprecated Do not use since this may failed when used in async */\n\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n/** @deprecated Do not use since this may failed when used in async */\n\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n /* eslint-disable no-empty */\n } catch (e) {// empty\n }\n /* eslint-enable no-empty */\n\n }\n}\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","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'; // destruct to reduce minify size\n\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\n\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets$;\n\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent'; // Inline enter is special that we use unique operation\n\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\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\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n\n case next:\n return {\n offset: 1,\n sibling: true\n };\n\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n\n case children:\n return {\n offset: 1,\n sibling: false\n };\n\n default:\n return null;\n }\n}\n\nfunction findContainerUL(element) {\n var current = element;\n\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n\n current = current.parentElement;\n } // Normally should not reach this line\n\n /* istanbul ignore next */\n\n\n return null;\n}\n/**\n * Find focused element within element set provided\n */\n\n\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n\n current = current.parentElement;\n }\n\n return null;\n}\n/**\n * Get focusable elements from the element set under provided container\n */\n\n\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\n\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n } // List current level menu item elements\n\n\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements); // Find next focus index\n\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\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\n focusIndex = (focusIndex + count) % count; // Focus menu item\n\n return sameLevelFocusableMenuElementList[focusIndex];\n}\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\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n\n if ([].concat(ArrowKeys, [ENTER, ESC]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key; // >>> Wrap as function since we use raf for some case\n\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\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n\n refreshElements(); // First we should find current focused MenuItem/SubMenu element\n\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); // Some mode do not have fully arrow operation like inline\n\n if (!offsetObj) {\n return;\n } // Arrow prevent default to avoid page scroll\n\n\n if (ArrowKeys.includes(which)) {\n e.preventDefault();\n }\n\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement; // Focus to link instead of menu item if possible\n\n var link = menuElement.querySelector('a');\n\n if (link === null || link === void 0 ? void 0 : link.getAttribute('href')) {\n focusTargetElement = link;\n }\n\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\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\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n\n if (offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n } // Get next focus element\n\n\n var targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset); // Focus menu item\n\n tryFocus(targetElement); // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey); // =========================== 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); // Get sub focusable menu item\n\n var targetElement = getNextFocusElement(subQueryContainer, elements); // Focus menu item\n\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); // Focus menu item\n\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n } // Pass origin key down event\n\n\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\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\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 _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__';\n\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\n\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\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\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\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 } // Fill map\n\n\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\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\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\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n\n return keys;\n };\n /**\n * Find current key related child path keys\n */\n\n\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\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}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\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\", \"style\", \"className\", \"tabIndex\", \"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\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport Overflow from 'rc-overflow';\nimport MenuItem from './MenuItem';\nimport { parseChildren } from './utils/nodeUtil';\nimport MenuContextProvider from './context/MenuContext';\nimport useMemoCallback from './hooks/useMemoCallback';\nimport { warnItemProp } from './utils/warnUtil';\nimport SubMenu from './SubMenu';\nimport useAccessibility from './hooks/useAccessibility';\nimport useUUID from './hooks/useUUID';\nimport { PathRegisterContext, PathUserContext } from './context/PathContext';\nimport useKeyRecords, { OVERFLOW_KEY } from './hooks/useKeyRecords';\nimport { IdContext } from './context/IdContext';\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// optimize for render\n\nvar EMPTY_LIST = [];\n\nvar Menu = function Menu(props) {\n var _childList$, _classNames;\n\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-menu' : _props$prefixCls,\n style = props.style,\n className = props.className,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n children = props.children,\n direction = props.direction,\n id = props.id,\n _props$mode = props.mode,\n mode = _props$mode === void 0 ? 'vertical' : _props$mode,\n inlineCollapsed = props.inlineCollapsed,\n disabled = props.disabled,\n disabledOverflow = props.disabledOverflow,\n _props$subMenuOpenDel = props.subMenuOpenDelay,\n subMenuOpenDelay = _props$subMenuOpenDel === void 0 ? 0.1 : _props$subMenuOpenDel,\n _props$subMenuCloseDe = props.subMenuCloseDelay,\n subMenuCloseDelay = _props$subMenuCloseDe === void 0 ? 0.1 : _props$subMenuCloseDe,\n forceSubMenuRender = props.forceSubMenuRender,\n defaultOpenKeys = props.defaultOpenKeys,\n openKeys = props.openKeys,\n activeKey = props.activeKey,\n defaultActiveFirst = props.defaultActiveFirst,\n _props$selectable = props.selectable,\n selectable = _props$selectable === void 0 ? true : _props$selectable,\n _props$multiple = props.multiple,\n multiple = _props$multiple === void 0 ? false : _props$multiple,\n defaultSelectedKeys = props.defaultSelectedKeys,\n selectedKeys = props.selectedKeys,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n _props$inlineIndent = props.inlineIndent,\n inlineIndent = _props$inlineIndent === void 0 ? 24 : _props$inlineIndent,\n motion = props.motion,\n defaultMotions = props.defaultMotions,\n _props$triggerSubMenu = props.triggerSubMenuAction,\n triggerSubMenuAction = _props$triggerSubMenu === void 0 ? 'hover' : _props$triggerSubMenu,\n builtinPlacements = props.builtinPlacements,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n _props$overflowedIndi = props.overflowedIndicator,\n overflowedIndicator = _props$overflowedIndi === void 0 ? '...' : _props$overflowedIndi,\n overflowedIndicatorPopupClassName = props.overflowedIndicatorPopupClassName,\n getPopupContainer = props.getPopupContainer,\n onClick = props.onClick,\n onOpenChange = props.onOpenChange,\n onKeyDown = props.onKeyDown,\n openAnimation = props.openAnimation,\n openTransitionName = props.openTransitionName,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var childList = parseChildren(children, EMPTY_LIST);\n\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\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl'; // ========================= Warn =========================\n\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n } // ========================= Mode =========================\n\n\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\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]; // ====================== Responsive ======================\n\n\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n lastVisibleIndex = _React$useState4[0],\n setLastVisibleIndex = _React$useState4[1];\n\n var allVisible = lastVisibleIndex >= childList.length - 1 || mergedMode !== 'horizontal' || disabledOverflow; // ========================= Open =========================\n\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 var triggerOpenKeys = function triggerOpenKeys(keys) {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }; // >>>>> Cache & Reset open keys when inlineCollapsed changed\n\n\n var _React$useState5 = React.useState(mergedOpenKeys),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n inlineCacheOpenKeys = _React$useState6[0],\n setInlineCacheOpenKeys = _React$useState6[1];\n\n var isInlineMode = mergedMode === 'inline';\n var mountRef = React.useRef(false); // Cache\n\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]); // Restore\n\n React.useEffect(function () {\n if (!mountRef.current) {\n mountRef.current = true;\n return;\n }\n\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [isInlineMode]); // ========================= Path =========================\n\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\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]); // ======================== Active ========================\n\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\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n }); // ======================== Select ========================\n // >>>>> Select keys\n\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\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1]; // >>>>> Trigger select\n\n\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\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\n setMergedSelectKeys(newSelectKeys); // Trigger event\n\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\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 } // Whatever selectable, always close it\n\n\n if (!multiple && mergedOpenKeys.length && mergedMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n }; // ========================= Open =========================\n\n /**\n * Click for item. SubMenu do not have selection status\n */\n\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\n if (open) {\n newOpenKeys.push(key);\n } else if (mergedMode !== '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\n if (!shallowEqual(mergedOpenKeys, newOpenKeys)) {\n triggerOpenKeys(newOpenKeys);\n }\n });\n var getInternalPopupContainer = useMemoCallback(getPopupContainer); // ==================== Accessibility =====================\n\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\n var onInternalKeyDown = useAccessibility(mergedMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown); // ======================== Effect ========================\n\n React.useEffect(function () {\n setMounted(true);\n }, []); // ======================== Render ========================\n // >>>>> Children\n\n var wrappedChildList = mergedMode !== 'horizontal' || disabledOverflow ? childList : // 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 }); // >>>>> Container\n\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(mergedMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), mergedInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames)),\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: mergedMode !== '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)); // >>>>> Render\n\n return /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n mode: mergedMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl // Disabled\n ,\n disabled: disabled // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive // Selection\n ,\n selectedKeys: mergedSelectKeys // Level\n ,\n inlineIndent: inlineIndent // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getInternalPopupContainer // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon // 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};\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 * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { parseChildren } from './utils/nodeUtil';\nimport { MenuContext } from './context/MenuContext';\nimport { useFullPath, useMeasure } from './context/PathContext';\n\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\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({}, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\n\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n\n if (measure) {\n return childList;\n }\n\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import Menu from './Menu';\nimport MenuItem from './MenuItem';\nimport SubMenu from './SubMenu';\nimport MenuItemGroup from './MenuItemGroup';\nimport { useFullPath as useOriginFullPath } from './context/PathContext';\nimport Divider from './Divider';\n/** @private Only used for antd internal. Do not use in your production. */\n\nvar useFullPath = useOriginFullPath;\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, useFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","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\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n\n var measure = useMeasure();\n\n if (measure) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"children\", \"toggle\", \"tag\", \"wrapTag\", \"closeAriaLabel\", \"charCode\", \"close\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n wrapTag: tagPropType,\n toggle: PropTypes.func,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n children: PropTypes.node,\n closeAriaLabel: PropTypes.string,\n charCode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n close: PropTypes.object\n};\nvar defaultProps = {\n tag: 'h5',\n wrapTag: 'div',\n closeAriaLabel: 'Close',\n charCode: 215\n};\n\nvar ModalHeader = function ModalHeader(props) {\n var closeButton;\n\n var className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n toggle = props.toggle,\n Tag = props.tag,\n WrapTag = props.wrapTag,\n closeAriaLabel = props.closeAriaLabel,\n charCode = props.charCode,\n close = props.close,\n attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n var classes = mapToCssModules(classNames(className, 'modal-header'), cssModule);\n\n if (!close && toggle) {\n var closeIcon = typeof charCode === 'number' ? String.fromCharCode(charCode) : charCode;\n closeButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: toggle,\n className: mapToCssModules('close', cssModule),\n \"aria-label\": closeAriaLabel\n }, /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, closeIcon));\n }\n\n return /*#__PURE__*/React.createElement(WrapTag, _extends({}, attributes, {\n className: classes\n }), /*#__PURE__*/React.createElement(Tag, {\n className: mapToCssModules('modal-title', cssModule)\n }, children), close || closeButton);\n};\n\nModalHeader.propTypes = propTypes;\nModalHeader.defaultProps = defaultProps;\nexport default ModalHeader;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useRaf(callback) {\n var rafRef = useRef();\n var removedRef = useRef(false);\n\n function trigger() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!removedRef.current) {\n raf.cancel(rafRef.current);\n rafRef.current = raf(function () {\n callback.apply(void 0, args);\n });\n }\n }\n\n useEffect(function () {\n return function () {\n removedRef.current = true;\n raf.cancel(rafRef.current);\n };\n }, []);\n return trigger;\n}\nexport function useRafState(defaultState) {\n var batchRef = useRef([]);\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useRaf(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\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n\n return [state.current, updater];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\n\nfunction TabNode(_ref, ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n tab = _ref$tab.tab,\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 onRemove = _ref.onRemove,\n onFocus = _ref.onFocus,\n style = _ref.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n React.useEffect(function () {\n return onRemove;\n }, []);\n var removable = editable && closable !== false && !disabled;\n\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n\n onClick(e);\n }\n\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n ref: ref,\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 }, tab), 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}\n\nexport default /*#__PURE__*/React.forwardRef(TabNode);","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\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\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key); // Reuse last one when not exist yet\n\n if (!data) {\n var _tabs;\n\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n\n var entity = map.get(key) || _objectSpread({}, data); // Right\n\n\n entity.right = rightOffset - entity.left - entity.width; // Update entity\n\n map.set(key, entity);\n }\n\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\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, containerSize, tabContentNodeSize, addNodeSize, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var unit;\n var position;\n var transformSize;\n\n if (['top', 'bottom'].includes(tabPosition)) {\n unit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(containerSize.left);\n } else {\n unit = 'height';\n position = 'top';\n transformSize = -containerSize.top;\n }\n\n var basicSize = containerSize[unit];\n var tabContentSize = tabContentNodeSize[unit];\n var addSize = addNodeSize[unit];\n var mergedBasicSize = basicSize;\n\n if (tabContentSize + addSize > basicSize) {\n mergedBasicSize = basicSize - addSize;\n }\n\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n\n var len = tabs.length;\n var endIndex = len;\n\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n\n if (offset[position] + offset[unit] > transformSize + mergedBasicSize) {\n endIndex = i - 1;\n break;\n }\n }\n\n var startIndex = 0;\n\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n\n return [startIndex, endIndex];\n }, [tabOffsets, transformSize, mergedBasicSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n otherProps = _objectWithoutProperties(props, [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\"]);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n var overlayProps = getOverlayElement().props;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n\n if (overlayProps.onClick) {\n overlayProps.onClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(visible) {\n var onVisibleChange = props.onVisibleChange;\n setTriggerVisible(visible);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(visible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n var extraOverlayProps = {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n onClick: onClick\n };\n\n if (typeof overlayElement.type === 'string') {\n delete extraOverlayProps.prefixCls;\n }\n\n return React.createElement(React.Fragment, null, arrow && React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), React.cloneElement(overlayElement, extraOverlayProps));\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return triggerVisible && children ? React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return React.createElement(Trigger, Object.assign({}, otherProps, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n builtinPlacements: placements,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import * as React from 'react';\n\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n\n if (!editable || editable.showAdd === false) {\n return null;\n }\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}\n\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useState, useEffect } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport Menu, { MenuItem } from 'rc-menu';\nimport Dropdown from 'rc-dropdown';\nimport AddButton from './AddButton';\n\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 onTabClick = _ref.onTabClick;\n\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n\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 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 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 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 }, tab.tab);\n }));\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\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n\n function onKeyDown(e) {\n var which = e.which;\n\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n\n return;\n }\n\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n\n case KeyCode.ESC:\n setOpen(false);\n break;\n\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n } // ========================= Effect =========================\n\n\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]); // ========================= Render =========================\n\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\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: open,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: overlayClassName,\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1\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}\n\nexport default /*#__PURE__*/React.forwardRef(OperationNode);","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","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); // ================================= Hook =================================\n\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n\n var motionRef = useRef(); // ========================= Events =========================\n // >>> Touch events\n\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\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\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null); // Swipe if needed\n\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); // Skip swipe if low distance\n\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\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n } // >>> Wheel event\n\n\n var lastWheelDirectionRef = useRef();\n\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC\n\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n\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\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n } // ========================= Effect =========================\n\n\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\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n }); // No need to clean up since element removed\n\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 * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n\n stateRef.current = newValue;\n forceUpdate({});\n }\n\n return [stateRef.current, setState];\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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport { useState, useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport ResizeObserver from 'rc-resize-observer';\nimport useRaf, { useRafState } from '../hooks/useRaf';\nimport TabNode from './TabNode';\nimport useOffsets from '../hooks/useOffsets';\nimport useVisibleRange from '../hooks/useVisibleRange';\nimport OperationNode from './OperationNode';\nimport TabContext from '../TabContext';\nimport useTouchMove from '../hooks/useTouchMove';\nimport useRefs from '../hooks/useRefs';\nimport AddButton from './AddButton';\nimport useSyncState from '../hooks/useSyncState';\n\nvar ExtraContent = function ExtraContent(_ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content; // Parse extra\n\n var assertExtra = {};\n\n if (extra && _typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n\n if (position === 'right') {\n content = assertExtra.right;\n }\n\n if (position === 'left') {\n content = assertExtra.left;\n }\n\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\")\n }, content) : null;\n};\n\nfunction TabNavList(props, ref) {\n var _classNames;\n\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n\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 tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef();\n\n var _useRefs = useRefs(),\n _useRefs2 = _slicedToArray(_useRefs, 2),\n getBtnRef = _useRefs2[0],\n removeBtnRef = _useRefs2[1];\n\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n\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\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\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n wrapperScrollWidth = _useState2[0],\n setWrapperScrollWidth = _useState2[1];\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n wrapperScrollHeight = _useState4[0],\n setWrapperScrollHeight = _useState4[1];\n\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n wrapperContentWidth = _useState6[0],\n setWrapperContentWidth = _useState6[1];\n\n var _useState7 = useState(0),\n _useState8 = _slicedToArray(_useState7, 2),\n wrapperContentHeight = _useState8[0],\n setWrapperContentHeight = _useState8[1];\n\n var _useState9 = useState(null),\n _useState10 = _slicedToArray(_useState9, 2),\n wrapperWidth = _useState10[0],\n setWrapperWidth = _useState10[1];\n\n var _useState11 = useState(null),\n _useState12 = _slicedToArray(_useState11, 2),\n wrapperHeight = _useState12[0],\n setWrapperHeight = _useState12[1];\n\n var _useState13 = useState(0),\n _useState14 = _slicedToArray(_useState13, 2),\n addWidth = _useState14[0],\n setAddWidth = _useState14[1];\n\n var _useState15 = useState(0),\n _useState16 = _slicedToArray(_useState15, 2),\n addHeight = _useState16[0],\n setAddHeight = _useState16[1];\n\n var _useRafState = useRafState(new Map()),\n _useRafState2 = _slicedToArray(_useRafState, 2),\n tabSizes = _useRafState2[0],\n setTabSizes = _useRafState2[1];\n\n var tabOffsets = useOffsets(tabs, tabSizes, wrapperScrollWidth); // ========================== Util =========================\n\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, wrapperHeight - wrapperScrollHeight);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, wrapperScrollWidth - wrapperWidth);\n } else {\n transformMin = Math.min(0, wrapperWidth - wrapperScrollWidth);\n transformMax = 0;\n }\n\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n\n if (value > transformMax) {\n return transformMax;\n }\n\n return value;\n } // ========================= Mobile ========================\n\n\n var touchMovingRef = useRef();\n\n var _useState17 = useState(),\n _useState18 = _slicedToArray(_useState17, 2),\n lockAnimation = _useState18[0],\n setLockAnimation = _useState18[1];\n\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\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 if (tabPositionTopOrBottom) {\n // Skip scroll if place is enough\n if (wrapperWidth >= wrapperScrollWidth) {\n return false;\n }\n\n doMove(setTransformLeft, offsetX);\n } else {\n if (wrapperHeight >= wrapperScrollHeight) {\n return false;\n }\n\n doMove(setTransformTop, offsetY);\n }\n\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n\n return clearTouchMoving;\n }, [lockAnimation]); // ========================= Scroll ========================\n\n function scrollToTab() {\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\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft; // RTL\n\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + wrapperWidth) {\n newTransform = tabOffset.right + tabOffset.width - wrapperWidth;\n }\n } // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + wrapperWidth) {\n newTransform = -(tabOffset.left + tabOffset.width - wrapperWidth);\n }\n\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + wrapperHeight) {\n _newTransform = -(tabOffset.top + tabOffset.height - wrapperHeight);\n }\n\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n } // ========================== Tab ==========================\n // Render tab node & collect tab offset\n\n\n var _useVisibleRange = useVisibleRange(tabOffsets, {\n width: wrapperWidth,\n height: wrapperHeight,\n left: transformLeft,\n top: transformTop\n }, {\n width: wrapperContentWidth,\n height: wrapperContentHeight\n }, {\n width: addWidth,\n height: addHeight\n }, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n\n var tabNodeStyle = {};\n\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\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 ,\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 ref: getBtnRef(key),\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onRemove: function onRemove() {\n removeBtnRef(key);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n\n if (!tabsWrapperRef.current) {\n return;\n } // Focus element will make scrollLeft change which we should reset back\n\n\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n var onListHolderResize = useRaf(function () {\n var _tabsWrapperRef$curre, _tabsWrapperRef$curre2, _innerAddButtonRef$cu, _innerAddButtonRef$cu2, _operationsRef$curren, _operationsRef$curren2, _tabListRef$current, _tabListRef$current2, _operationsRef$curren3;\n\n // Update wrapper records\n var offsetWidth = ((_tabsWrapperRef$curre = tabsWrapperRef.current) === null || _tabsWrapperRef$curre === void 0 ? void 0 : _tabsWrapperRef$curre.offsetWidth) || 0;\n var offsetHeight = ((_tabsWrapperRef$curre2 = tabsWrapperRef.current) === null || _tabsWrapperRef$curre2 === void 0 ? void 0 : _tabsWrapperRef$curre2.offsetHeight) || 0;\n var newAddWidth = ((_innerAddButtonRef$cu = innerAddButtonRef.current) === null || _innerAddButtonRef$cu === void 0 ? void 0 : _innerAddButtonRef$cu.offsetWidth) || 0;\n var newAddHeight = ((_innerAddButtonRef$cu2 = innerAddButtonRef.current) === null || _innerAddButtonRef$cu2 === void 0 ? void 0 : _innerAddButtonRef$cu2.offsetHeight) || 0;\n var newOperationWidth = ((_operationsRef$curren = operationsRef.current) === null || _operationsRef$curren === void 0 ? void 0 : _operationsRef$curren.offsetWidth) || 0;\n var newOperationHeight = ((_operationsRef$curren2 = operationsRef.current) === null || _operationsRef$curren2 === void 0 ? void 0 : _operationsRef$curren2.offsetHeight) || 0;\n setWrapperWidth(offsetWidth);\n setWrapperHeight(offsetHeight);\n setAddWidth(newAddWidth);\n setAddHeight(newAddHeight);\n var newWrapperScrollWidth = (((_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.offsetWidth) || 0) - newAddWidth;\n var newWrapperScrollHeight = (((_tabListRef$current2 = tabListRef.current) === null || _tabListRef$current2 === void 0 ? void 0 : _tabListRef$current2.offsetHeight) || 0) - newAddHeight;\n setWrapperScrollWidth(newWrapperScrollWidth);\n setWrapperScrollHeight(newWrapperScrollHeight);\n var isOperationHidden = (_operationsRef$curren3 = operationsRef.current) === null || _operationsRef$curren3 === void 0 ? void 0 : _operationsRef$curren3.className.includes(operationsHiddenClassName);\n setWrapperContentWidth(newWrapperScrollWidth - (isOperationHidden ? 0 : newOperationWidth));\n setWrapperContentHeight(newWrapperScrollHeight - (isOperationHidden ? 0 : newOperationHeight)); // Update buttons records\n\n setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var key = _ref2.key;\n var btnNode = getBtnRef(key).current;\n\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 }); // ======================== Dropdown =======================\n\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================\n\n var _useState19 = useState(),\n _useState20 = _slicedToArray(_useState19, 2),\n inkStyle = _useState20[0],\n setInkStyle = _useState20[1];\n\n var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink\n\n var inkBarRafRef = useRef();\n\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n\n useEffect(function () {\n var newInkStyle = {};\n\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================\n\n useEffect(function () {\n scrollToTab();\n }, [activeKey, activeTabOffset, tabOffsets, tabPositionTopOrBottom]); // Should recalculate when rtl changed\n\n useEffect(function () {\n onListHolderResize();\n }, [rtl, tabBarGutter, activeKey, tabs.map(function (tab) {\n return tab.key;\n }).join('_')]); // ========================= Render ========================\n\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\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft + wrapperWidth < wrapperScrollWidth;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = -transformLeft + wrapperWidth < wrapperScrollWidth;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = -transformTop + wrapperHeight < wrapperScrollHeight;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\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 position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\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 ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n }));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import * as React from 'react';\nimport { useRef } from 'react';\nexport default function useRefs() {\n var cacheRefs = useRef(new Map());\n\n function getRef(key) {\n if (!cacheRefs.current.has(key)) {\n cacheRefs.current.set(key, /*#__PURE__*/React.createRef());\n }\n\n return cacheRefs.current.get(key);\n }\n\n function removeRef(key) {\n cacheRefs.current.delete(key);\n }\n\n return [getRef, removeRef];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TabContext from '../TabContext';\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n\n var tabPaneAnimated = animated.tabPane;\n var activeIndex = tabs.findIndex(function (tab) {\n return tab.key === activeKey;\n });\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 style: activeIndex && tabPaneAnimated ? _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', \"-\".concat(activeIndex, \"00%\")) : null\n }, tabs.map(function (tab) {\n return /*#__PURE__*/React.cloneElement(tab.node, {\n key: tab.key,\n prefixCls: prefixCls,\n tabKey: tab.key,\n id: id,\n animated: tabPaneAnimated,\n active: tab.key === activeKey,\n destroyInactiveTabPane: destroyInactiveTabPane\n });\n })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport default function TabPane(_ref) {\n var prefixCls = _ref.prefixCls,\n forceRender = _ref.forceRender,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n animated = _ref.animated,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n tabKey = _ref.tabKey,\n children = _ref.children;\n\n var _React$useState = React.useState(forceRender),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visited = _React$useState2[0],\n setVisited = _React$useState2[1];\n\n React.useEffect(function () {\n if (active) {\n setVisited(true);\n } else if (destroyInactiveTabPane) {\n setVisited(false);\n }\n }, [active, destroyInactiveTabPane]);\n var mergedStyle = {};\n\n if (!active) {\n if (animated) {\n mergedStyle.visibility = 'hidden';\n mergedStyle.height = 0;\n mergedStyle.overflowY = 'hidden';\n } else {\n mergedStyle.display = 'none';\n }\n }\n\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: _objectSpread(_objectSpread({}, mergedStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-tabpane\"), active && \"\".concat(prefixCls, \"-tabpane-active\"), className)\n }, (active || visited || forceRender) && children);\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\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"children\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\"];\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 toArray from \"rc-util/es/Children/toArray\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabNavList from './TabNavList';\nimport TabPanelList from './TabPanelList';\nimport TabPane from './TabPanelList/TabPane';\nimport TabContext from './TabContext';\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n// Used for accessibility\n\nvar uuid = 0;\n\nfunction parseTabList(children) {\n return toArray(children).map(function (node) {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n var key = node.key !== undefined ? String(node.key) : undefined;\n return _objectSpread(_objectSpread({\n key: key\n }, node.props), {}, {\n node: node\n });\n }\n\n return null;\n }).filter(function (tab) {\n return tab;\n });\n}\n\nfunction Tabs(_ref, ref) {\n var _classNames;\n\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 children = _ref.children,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n _ref$animated = _ref.animated,\n animated = _ref$animated === void 0 ? {\n inkBar: true,\n tabPane: false\n } : _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 restProps = _objectWithoutProperties(_ref, _excluded);\n\n var tabs = parseTabList(children);\n var rtl = direction === 'rtl';\n var mergedAnimated;\n\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 = _objectSpread({\n inkBar: true,\n tabPane: false\n }, _typeof(animated) === 'object' ? animated : {});\n } // ======================== Mobile ========================\n\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []); // ====================== Active Key ======================\n\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n\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\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]; // Reset active key if not exist anymore\n\n\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n\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\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ====================\n\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n\n var mergedTabPosition = tabPosition;\n\n if (mobile && !['left', 'right'].includes(tabPosition)) {\n mergedTabPosition = 'top';\n } // Async generate id to avoid ssr mapping failed\n\n\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []); // ======================== Events ========================\n\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n setMergedActiveKey(key);\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n } // ======================== Render ========================\n\n\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: mergedTabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n\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: children\n });\n\n if (renderTabBar) {\n tabNavBar = renderTabBar(tabNavBarProps, TabNavList);\n } else {\n tabNavBar = /*#__PURE__*/React.createElement(TabNavList, tabNavBarProps);\n }\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(mergedTabPosition), (_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(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\n\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\nForwardTabs.TabPane = TabPane;\nexport default ForwardTabs;","import Tabs from './Tabs';\nimport TabPane from './TabPanelList/TabPane';\nexport { TabPane };\nexport default Tabs;","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\n\nEllipsisOutlined.displayName = 'EllipsisOutlined';\nexport default /*#__PURE__*/React.forwardRef(EllipsisOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\n\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcTabs, { TabPane } from 'rc-tabs';\nimport classNames from 'classnames';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport devWarning from '../_util/devWarning';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\n\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 props = __rest(_a, [\"type\", \"className\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\"]);\n\n var customizePrefixCls = props.prefixCls,\n _props$moreIcon = props.moreIcon,\n moreIcon = _props$moreIcon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$moreIcon;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var prefixCls = getPrefixCls('tabs', customizePrefixCls);\n var editable;\n\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\n var rootPrefixCls = getPrefixCls();\n devWarning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.');\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (contextSize) {\n var _classNames;\n\n var size = propSize !== undefined ? propSize : contextSize;\n return /*#__PURE__*/React.createElement(RcTabs, _extends({\n direction: direction,\n moreTransitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n }, props, {\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 }));\n });\n}\n\nTabs.TabPane = TabPane;\nexport default Tabs;","import * as React from 'react';\nvar RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport var RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcCheckbox from 'rc-checkbox';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../config-provider';\nimport RadioGroupContext from './context';\nimport devWarning from '../_util/devWarning';\n\nvar InternalRadio = function InternalRadio(props, ref) {\n var _classNames;\n\n var context = React.useContext(RadioGroupContext);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var innerRef = React.useRef();\n var mergedRef = composeRef(ref, innerRef);\n React.useEffect(function () {\n devWarning(!('optionType' in props), 'Radio', '`optionType` is only support in Radio.Group.');\n }, []);\n\n var onChange = function onChange(e) {\n var _a, _b;\n\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = context === null || context === void 0 ? void 0 : context.onChange) === null || _b === void 0 ? void 0 : _b.call(context, e);\n };\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n style = props.style,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"children\", \"style\"]);\n\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n\n var radioProps = _extends({}, restProps);\n\n if (context) {\n radioProps.name = context.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === context.value;\n radioProps.disabled = props.disabled || context.disabled;\n }\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'), _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 prefixCls: prefixCls,\n ref: mergedRef\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)\n );\n};\n\nvar Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nRadio.displayName = 'Radio';\nRadio.defaultProps = {\n type: '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 * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Radio from './radio';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport { RadioGroupContextProvider } from './context';\nimport getDataOrAriaProps from '../_util/getDataOrAriaProps';\nvar RadioGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var size = React.useContext(SizeContext);\n\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\n var onRadioChange = function onRadioChange(ev) {\n var lastValue = value;\n var val = ev.target.value;\n\n if (!('value' in props)) {\n setValue(val);\n }\n\n var onChange = props.onChange;\n\n if (onChange && val !== lastValue) {\n onChange(ev);\n }\n };\n\n var renderGroup = function renderGroup() {\n var _classNames;\n\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n options = props.options,\n optionType = props.optionType,\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 var prefixCls = getPrefixCls('radio', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var childrenToRender = children; // 如果存在 options, 优先使用\n\n if (options && options.length > 0) {\n var optionsPrefixCls = optionType === 'button' ? \"\".concat(prefixCls, \"-button\") : prefixCls;\n childrenToRender = options.map(function (option) {\n if (typeof option === 'string') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option,\n prefixCls: optionsPrefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n } // 此处类型自动推导为 { label: string value: string }\n\n\n return /*#__PURE__*/React.createElement(Radio, {\n key: \"radio-group-value-options-\".concat(option.value),\n prefixCls: optionsPrefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n style: option.style\n }, option.label);\n });\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 id: id,\n ref: ref\n }), childrenToRender);\n };\n\n return /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: {\n onChange: onRadioChange,\n value: value,\n disabled: props.disabled,\n name: props.name\n }\n }, renderGroup());\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","export default function getDataOrAriaProps(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') && key.substr(0, 7) !== 'data-__') {\n prev[key] = props[key];\n }\n\n return prev;\n }, {});\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport Radio from './radio';\nimport { ConfigContext } from '../config-provider';\nimport RadioGroupContext from './context';\n\nvar RadioButton = function RadioButton(props, ref) {\n var radioGroupContext = React.useContext(RadioGroupContext);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n radioProps = __rest(props, [\"prefixCls\"]);\n\n var prefixCls = getPrefixCls('radio-button', customizePrefixCls);\n\n if (radioGroupContext) {\n radioProps.checked = props.value === radioGroupContext.value;\n radioProps.disabled = props.disabled || radioGroupContext.disabled;\n }\n\n return /*#__PURE__*/React.createElement(Radio, _extends({\n prefixCls: prefixCls\n }, radioProps, {\n type: \"radio\",\n ref: ref\n }));\n};\n\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","import InternalRadio from './radio';\nimport Group from './group';\nimport Button from './radioButton';\nvar Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nexport { Button, Group };\nexport default Radio;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { canUseDOM } from './utils';\nvar propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};\n\nvar Portal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Portal, _React$Component);\n\n function Portal() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Portal.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n\n this.defaultNode = null;\n };\n\n _proto.render = function render() {\n if (!canUseDOM) {\n return null;\n }\n\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n\n return /*#__PURE__*/ReactDOM.createPortal(this.props.children, this.props.node || this.defaultNode);\n };\n\n return Portal;\n}(React.Component);\n\nPortal.propTypes = propTypes;\nexport default Portal;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Portal from './Portal';\nimport Fade from './Fade';\nimport { getOriginalBodyPadding, conditionallyUpdateScrollbar, setScrollbarWidth, mapToCssModules, omit, focusableElements, TransitionTimeouts, keyCodes, targetPropType, getTarget } from './utils';\n\nfunction noop() {}\n\nvar FadePropTypes = PropTypes.shape(Fade.propTypes);\nvar propTypes = {\n isOpen: PropTypes.bool,\n autoFocus: PropTypes.bool,\n centered: PropTypes.bool,\n scrollable: PropTypes.bool,\n size: PropTypes.string,\n toggle: PropTypes.func,\n keyboard: PropTypes.bool,\n role: PropTypes.string,\n labelledBy: PropTypes.string,\n backdrop: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['static'])]),\n onEnter: PropTypes.func,\n onExit: PropTypes.func,\n onOpened: PropTypes.func,\n onClosed: PropTypes.func,\n children: PropTypes.node,\n className: PropTypes.string,\n wrapClassName: PropTypes.string,\n modalClassName: PropTypes.string,\n backdropClassName: PropTypes.string,\n contentClassName: PropTypes.string,\n external: PropTypes.node,\n fade: PropTypes.bool,\n cssModule: PropTypes.object,\n zIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n backdropTransition: FadePropTypes,\n modalTransition: FadePropTypes,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func]),\n unmountOnClose: PropTypes.bool,\n returnFocusAfterClose: PropTypes.bool,\n container: targetPropType,\n trapFocus: PropTypes.bool\n};\nvar propsToOmit = Object.keys(propTypes);\nvar defaultProps = {\n isOpen: false,\n autoFocus: true,\n centered: false,\n scrollable: false,\n role: 'dialog',\n backdrop: true,\n keyboard: true,\n zIndex: 1050,\n fade: true,\n onOpened: noop,\n onClosed: noop,\n modalTransition: {\n timeout: TransitionTimeouts.Modal\n },\n backdropTransition: {\n mountOnEnter: true,\n timeout: TransitionTimeouts.Fade // uses standard fade transition\n\n },\n unmountOnClose: true,\n returnFocusAfterClose: true,\n container: 'body',\n trapFocus: false\n};\n\nvar Modal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Modal, _React$Component);\n\n function Modal(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this._element = null;\n _this._originalBodyPadding = null;\n _this.getFocusableChildren = _this.getFocusableChildren.bind(_assertThisInitialized(_this));\n _this.handleBackdropClick = _this.handleBackdropClick.bind(_assertThisInitialized(_this));\n _this.handleBackdropMouseDown = _this.handleBackdropMouseDown.bind(_assertThisInitialized(_this));\n _this.handleEscape = _this.handleEscape.bind(_assertThisInitialized(_this));\n _this.handleStaticBackdropAnimation = _this.handleStaticBackdropAnimation.bind(_assertThisInitialized(_this));\n _this.handleTab = _this.handleTab.bind(_assertThisInitialized(_this));\n _this.onOpened = _this.onOpened.bind(_assertThisInitialized(_this));\n _this.onClosed = _this.onClosed.bind(_assertThisInitialized(_this));\n _this.manageFocusAfterClose = _this.manageFocusAfterClose.bind(_assertThisInitialized(_this));\n _this.clearBackdropAnimationTimeout = _this.clearBackdropAnimationTimeout.bind(_assertThisInitialized(_this));\n _this.trapFocus = _this.trapFocus.bind(_assertThisInitialized(_this));\n _this.state = {\n isOpen: false,\n showStaticBackdropAnimation: false\n };\n return _this;\n }\n\n var _proto = Modal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props = this.props,\n isOpen = _this$props.isOpen,\n autoFocus = _this$props.autoFocus,\n onEnter = _this$props.onEnter;\n\n if (isOpen) {\n this.init();\n this.setState({\n isOpen: true\n });\n\n if (autoFocus) {\n this.setFocus();\n }\n }\n\n if (onEnter) {\n onEnter();\n } // traps focus inside the Modal, even if the browser address bar is focused\n\n\n document.addEventListener('focus', this.trapFocus, true);\n this._isMounted = true;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.props.isOpen && !prevProps.isOpen) {\n this.init();\n this.setState({\n isOpen: true\n }); // let render() renders Modal Dialog first\n\n return;\n } // now Modal Dialog is rendered and we can refer this._element and this._dialog\n\n\n if (this.props.autoFocus && this.state.isOpen && !prevState.isOpen) {\n this.setFocus();\n }\n\n if (this._element && prevProps.zIndex !== this.props.zIndex) {\n this._element.style.zIndex = this.props.zIndex;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.clearBackdropAnimationTimeout();\n\n if (this.props.onExit) {\n this.props.onExit();\n }\n\n if (this._element) {\n this.destroy();\n\n if (this.props.isOpen || this.state.isOpen) {\n this.close();\n }\n }\n\n document.removeEventListener('focus', this.trapFocus, true);\n this._isMounted = false;\n };\n\n _proto.trapFocus = function trapFocus(ev) {\n if (!this.props.trapFocus) {\n return;\n }\n\n if (!this._element) //element is not attached\n return;\n if (this._dialog && this._dialog.parentNode === ev.target) // initial focus when the Modal is opened\n return;\n if (this.modalIndex < Modal.openCount - 1) // last opened modal\n return;\n var children = this.getFocusableChildren();\n\n for (var i = 0; i < children.length; i++) {\n // focus is already inside the Modal\n if (children[i] === ev.target) return;\n }\n\n if (children.length > 0) {\n // otherwise focus the first focusable element in the Modal\n ev.preventDefault();\n ev.stopPropagation();\n children[0].focus();\n }\n };\n\n _proto.onOpened = function onOpened(node, isAppearing) {\n this.props.onOpened();\n (this.props.modalTransition.onEntered || noop)(node, isAppearing);\n };\n\n _proto.onClosed = function onClosed(node) {\n var unmountOnClose = this.props.unmountOnClose; // so all methods get called before it is unmounted\n\n this.props.onClosed();\n (this.props.modalTransition.onExited || noop)(node);\n\n if (unmountOnClose) {\n this.destroy();\n }\n\n this.close();\n\n if (this._isMounted) {\n this.setState({\n isOpen: false\n });\n }\n };\n\n _proto.setFocus = function setFocus() {\n if (this._dialog && this._dialog.parentNode && typeof this._dialog.parentNode.focus === 'function') {\n this._dialog.parentNode.focus();\n }\n };\n\n _proto.getFocusableChildren = function getFocusableChildren() {\n return this._element.querySelectorAll(focusableElements.join(', '));\n };\n\n _proto.getFocusedChild = function getFocusedChild() {\n var currentFocus;\n var focusableChildren = this.getFocusableChildren();\n\n try {\n currentFocus = document.activeElement;\n } catch (err) {\n currentFocus = focusableChildren[0];\n }\n\n return currentFocus;\n } // not mouseUp because scrollbar fires it, shouldn't close when user scrolls\n ;\n\n _proto.handleBackdropClick = function handleBackdropClick(e) {\n if (e.target === this._mouseDownElement) {\n e.stopPropagation();\n var backdrop = this._dialog ? this._dialog.parentNode : null;\n\n if (backdrop && e.target === backdrop && this.props.backdrop === 'static') {\n this.handleStaticBackdropAnimation();\n }\n\n if (!this.props.isOpen || this.props.backdrop !== true) return;\n\n if (backdrop && e.target === backdrop && this.props.toggle) {\n this.props.toggle(e);\n }\n }\n };\n\n _proto.handleTab = function handleTab(e) {\n if (e.which !== 9) return;\n if (this.modalIndex < Modal.openCount - 1) return; // last opened modal\n\n var focusableChildren = this.getFocusableChildren();\n var totalFocusable = focusableChildren.length;\n if (totalFocusable === 0) return;\n var currentFocus = this.getFocusedChild();\n var focusedIndex = 0;\n\n for (var i = 0; i < totalFocusable; i += 1) {\n if (focusableChildren[i] === currentFocus) {\n focusedIndex = i;\n break;\n }\n }\n\n if (e.shiftKey && focusedIndex === 0) {\n e.preventDefault();\n focusableChildren[totalFocusable - 1].focus();\n } else if (!e.shiftKey && focusedIndex === totalFocusable - 1) {\n e.preventDefault();\n focusableChildren[0].focus();\n }\n };\n\n _proto.handleBackdropMouseDown = function handleBackdropMouseDown(e) {\n this._mouseDownElement = e.target;\n };\n\n _proto.handleEscape = function handleEscape(e) {\n if (this.props.isOpen && e.keyCode === keyCodes.esc && this.props.toggle) {\n if (this.props.keyboard) {\n e.preventDefault();\n e.stopPropagation();\n this.props.toggle(e);\n } else if (this.props.backdrop === 'static') {\n e.preventDefault();\n e.stopPropagation();\n this.handleStaticBackdropAnimation();\n }\n }\n };\n\n _proto.handleStaticBackdropAnimation = function handleStaticBackdropAnimation() {\n var _this2 = this;\n\n this.clearBackdropAnimationTimeout();\n this.setState({\n showStaticBackdropAnimation: true\n });\n this._backdropAnimationTimeout = setTimeout(function () {\n _this2.setState({\n showStaticBackdropAnimation: false\n });\n }, 100);\n };\n\n _proto.init = function init() {\n try {\n this._triggeringElement = document.activeElement;\n } catch (err) {\n this._triggeringElement = null;\n }\n\n if (!this._element) {\n this._element = document.createElement('div');\n\n this._element.setAttribute('tabindex', '-1');\n\n this._element.style.position = 'relative';\n this._element.style.zIndex = this.props.zIndex;\n this._mountContainer = getTarget(this.props.container);\n\n this._mountContainer.appendChild(this._element);\n }\n\n this._originalBodyPadding = getOriginalBodyPadding();\n conditionallyUpdateScrollbar();\n\n if (Modal.openCount === 0) {\n document.body.className = classNames(document.body.className, mapToCssModules('modal-open', this.props.cssModule));\n }\n\n this.modalIndex = Modal.openCount;\n Modal.openCount += 1;\n };\n\n _proto.destroy = function destroy() {\n if (this._element) {\n this._mountContainer.removeChild(this._element);\n\n this._element = null;\n }\n\n this.manageFocusAfterClose();\n };\n\n _proto.manageFocusAfterClose = function manageFocusAfterClose() {\n if (this._triggeringElement) {\n var returnFocusAfterClose = this.props.returnFocusAfterClose;\n if (this._triggeringElement.focus && returnFocusAfterClose) this._triggeringElement.focus();\n this._triggeringElement = null;\n }\n };\n\n _proto.close = function close() {\n if (Modal.openCount <= 1) {\n var modalOpenClassName = mapToCssModules('modal-open', this.props.cssModule); // Use regex to prevent matching `modal-open` as part of a different class, e.g. `my-modal-opened`\n\n var modalOpenClassNameRegex = new RegExp(\"(^| )\" + modalOpenClassName + \"( |$)\");\n document.body.className = document.body.className.replace(modalOpenClassNameRegex, ' ').trim();\n }\n\n this.manageFocusAfterClose();\n Modal.openCount = Math.max(0, Modal.openCount - 1);\n setScrollbarWidth(this._originalBodyPadding);\n };\n\n _proto.renderModalDialog = function renderModalDialog() {\n var _classNames,\n _this3 = this;\n\n var attributes = omit(this.props, propsToOmit);\n var dialogBaseClass = 'modal-dialog';\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, attributes, {\n className: mapToCssModules(classNames(dialogBaseClass, this.props.className, (_classNames = {}, _classNames[\"modal-\" + this.props.size] = this.props.size, _classNames[dialogBaseClass + \"-centered\"] = this.props.centered, _classNames[dialogBaseClass + \"-scrollable\"] = this.props.scrollable, _classNames)), this.props.cssModule),\n role: \"document\",\n ref: function ref(c) {\n _this3._dialog = c;\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(classNames('modal-content', this.props.contentClassName), this.props.cssModule)\n }, this.props.children));\n };\n\n _proto.render = function render() {\n var unmountOnClose = this.props.unmountOnClose;\n\n if (!!this._element && (this.state.isOpen || !unmountOnClose)) {\n var isModalHidden = !!this._element && !this.state.isOpen && !unmountOnClose;\n this._element.style.display = isModalHidden ? 'none' : 'block';\n var _this$props2 = this.props,\n wrapClassName = _this$props2.wrapClassName,\n modalClassName = _this$props2.modalClassName,\n backdropClassName = _this$props2.backdropClassName,\n cssModule = _this$props2.cssModule,\n isOpen = _this$props2.isOpen,\n backdrop = _this$props2.backdrop,\n role = _this$props2.role,\n labelledBy = _this$props2.labelledBy,\n external = _this$props2.external,\n innerRef = _this$props2.innerRef;\n var modalAttributes = {\n onClick: this.handleBackdropClick,\n onMouseDown: this.handleBackdropMouseDown,\n onKeyUp: this.handleEscape,\n onKeyDown: this.handleTab,\n style: {\n display: 'block'\n },\n 'aria-labelledby': labelledBy,\n role: role,\n tabIndex: '-1'\n };\n var hasTransition = this.props.fade;\n\n var modalTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), this.props.modalTransition), {}, {\n baseClass: hasTransition ? this.props.modalTransition.baseClass : '',\n timeout: hasTransition ? this.props.modalTransition.timeout : 0\n });\n\n var backdropTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), this.props.backdropTransition), {}, {\n baseClass: hasTransition ? this.props.backdropTransition.baseClass : '',\n timeout: hasTransition ? this.props.backdropTransition.timeout : 0\n });\n\n var Backdrop = backdrop && (hasTransition ? /*#__PURE__*/React.createElement(Fade, _extends({}, backdropTransition, {\n in: isOpen && !!backdrop,\n cssModule: cssModule,\n className: mapToCssModules(classNames('modal-backdrop', backdropClassName), cssModule)\n })) : /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(classNames('modal-backdrop', 'show', backdropClassName), cssModule)\n }));\n return /*#__PURE__*/React.createElement(Portal, {\n node: this._element\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(wrapClassName)\n }, /*#__PURE__*/React.createElement(Fade, _extends({}, modalAttributes, modalTransition, {\n in: isOpen,\n onEntered: this.onOpened,\n onExited: this.onClosed,\n cssModule: cssModule,\n className: mapToCssModules(classNames('modal', modalClassName, this.state.showStaticBackdropAnimation && 'modal-static'), cssModule),\n innerRef: innerRef\n }), external, this.renderModalDialog()), Backdrop));\n }\n\n return null;\n };\n\n _proto.clearBackdropAnimationTimeout = function clearBackdropAnimationTimeout() {\n if (this._backdropAnimationTimeout) {\n clearTimeout(this._backdropAnimationTimeout);\n this._backdropAnimationTimeout = undefined;\n }\n };\n\n return Modal;\n}(React.Component);\n\nModal.propTypes = propTypes;\nModal.defaultProps = defaultProps;\nModal.openCount = 0;\nexport default Modal;"],"sourceRoot":""}