{"version":3,"sources":["webpack:///./node_modules/antd/lib/empty/style/index.js","webpack:///./node_modules/antd/lib/select/index.js","webpack:///./node_modules/rc-util/es/pickAttrs.js","webpack:///./node_modules/rc-virtual-list/es/Filler.js","webpack:///./node_modules/rc-virtual-list/es/ScrollBar.js","webpack:///./node_modules/rc-virtual-list/es/Item.js","webpack:///./node_modules/rc-virtual-list/es/utils/CacheMap.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useHeights.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useScrollTo.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useDiffItem.js","webpack:///./node_modules/rc-virtual-list/es/utils/algorithmUtil.js","webpack:///./node_modules/rc-virtual-list/es/utils/isFirefox.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","webpack:///./node_modules/rc-virtual-list/es/List.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","webpack:///./node_modules/rc-virtual-list/es/hooks/useChildren.js","webpack:///./node_modules/rc-virtual-list/es/index.js","webpack:///./node_modules/rc-select/es/TransBtn.js","webpack:///./node_modules/rc-select/es/OptionList.js","webpack:///./node_modules/rc-select/es/Option.js","webpack:///./node_modules/rc-select/es/OptGroup.js","webpack:///./node_modules/rc-select/es/utils/legacyUtil.js","webpack:///./node_modules/rc-select/es/utils/commonUtil.js","webpack:///./node_modules/rc-select/es/utils/valueUtil.js","webpack:///./node_modules/rc-overflow/es/Item.js","webpack:///./node_modules/rc-overflow/es/Overflow.js","webpack:///./node_modules/rc-overflow/es/hooks/useBatchFrameState.js","webpack:///./node_modules/rc-overflow/es/index.js","webpack:///./node_modules/rc-select/es/Selector/Input.js","webpack:///./node_modules/rc-select/es/hooks/useLayoutEffect.js","webpack:///./node_modules/rc-select/es/Selector/MultipleSelector.js","webpack:///./node_modules/rc-select/es/Selector/SingleSelector.js","webpack:///./node_modules/rc-select/es/hooks/useLock.js","webpack:///./node_modules/rc-select/es/Selector/index.js","webpack:///./node_modules/rc-select/es/SelectTrigger.js","webpack:///./node_modules/rc-select/es/generate.js","webpack:///./node_modules/rc-select/es/utils/warningPropsUtil.js","webpack:///./node_modules/rc-select/es/Select.js","webpack:///./node_modules/rc-select/es/interface/generator.js","webpack:///./node_modules/rc-select/es/hooks/useDelayReset.js","webpack:///./node_modules/rc-select/es/hooks/useCacheOptions.js","webpack:///./node_modules/rc-select/es/hooks/useCacheDisplayValue.js","webpack:///./node_modules/rc-select/es/hooks/useSelectTriggerControl.js","webpack:///./node_modules/rc-select/es/index.js","webpack:///./node_modules/rc-util/es/hooks/useMemo.js","webpack:///./node_modules/antd/lib/select/style/index.js","webpack:///./node_modules/antd/lib/select/utils/iconUtil.js"],"names":["_interopRequireWildcard","_interopRequireDefault","Object","defineProperty","exports","value","_defineProperty2","_extends2","React","_omit","_classnames","_rcSelect","_configProvider","_iconUtil","_SizeContext","__rest","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","InternalSelect","_a","ref","_classNames2","mergedNotFound","customizePrefixCls","prefixCls","_a$bordered","bordered","className","getPopupContainer","dropdownClassName","_a$listHeight","listHeight","_a$listItemHeight","listItemHeight","customizeSize","size","notFoundContent","_a$transitionName","transitionName","props","_React$useContext","useContext","ConfigContext","getContextPopupContainer","getPrefixCls","renderEmpty","direction","virtual","dropdownMatchSelectWidth","mode","useMemo","m","isMultiple","undefined","_getIcons","multiple","suffixIcon","itemIcon","removeIcon","clearIcon","selectProps","rcSelectRtlDropDownClassName","concat","mergedSize","mergedClassName","createElement","inputIcon","menuItemSelectedIcon","Select","forwardRef","SECRET_COMBOBOX_MODE_DO_NOT_USE","Option","OptGroup","_default","ownKeys","object","enumerableOnly","keys","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","getOwnPropertyDescriptors","defineProperties","propList","split","prefix","pickAttrs","mergedConfig","ariaOnly","aria","data","attr","attrs","includes","_defineProperty","obj","configurable","writable","Filler","_ref","height","offset","children","onInnerResize","outerStyle","innerStyle","display","flexDirection","position","overflow","transform","left","right","top","style","onResize","_ref2","offsetHeight","displayName","_typeof","Symbol","iterator","constructor","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_setPrototypeOf","o","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","getPageY","touches","pageY","_React$Component","subClass","superClass","create","_inherits","ScrollBar","protoProps","staticProps","_super","_this","moveRaf","scrollbarRef","thumbRef","visibleTimeout","state","dragging","startTop","visible","delayHidden","clearTimeout","setState","setTimeout","onScrollbarTouchStart","preventDefault","onContainerMouseDown","stopPropagation","patchEvents","window","addEventListener","onMouseMove","onMouseUp","current","removeEvents","removeEventListener","onMouseDown","raf","cancel","onStartMove","getTop","_this$state","onScroll","newTop","enableScrollRange","getEnableScrollRange","enableHeightRange","getEnableHeightRange","ptg","newScrollTop","Math","ceil","onStopMove","getSpinHeight","_this$props","baseHeight","count","max","min","floor","_this$props2","scrollHeight","scrollTop","getVisible","_this$props3","prevProps","spinHeight","width","bottom","background","borderRadius","cursor","userSelect","Item","setRef","refFunc","node","CacheMap","maps","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","n","slice","name","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","useDiffItem","getKey","onDiff","_React$useState2","prevData","setPrevData","_React$useState4","diffItem","setDiffItem","diff","originList","targetList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","getItemKey","item","diffIndex","abs","shortKey","index","findListDiffIndex","navigator","userAgent","lockRef","lockTimeoutRef","lockScroll","scrollPingRef","isScrollAtTop","isScrollAtBottom","deltaY","smoothOffset","originScroll","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","EMPTY_DATA","ScrollStyle","overflowY","overflowAnchor","RawList","_props$prefixCls","itemHeight","_props$fullHeight","fullHeight","itemKey","_props$component","component","Component","restProps","useVirtual","inVirtual","_useState2","setScrollTop","_useState4","scrollMoving","setScrollMoving","mergedData","componentRef","fillerInnerRef","scrollBarRef","sharedConfig","syncScrollTop","origin","alignedTop","Number","isNaN","maxScrollHeightRef","keepInRange","rangeRef","start","end","diffItemRef","_useHeights2","onItemAdd","onItemRemove","updatedMark","setUpdatedMark","instanceRef","Map","heightsRef","heightUpdateIdRef","collectHeight","currentId","Promise","resolve","then","element","offsetParent","htmlElement","findDOMNode","get","set","c","delete","useHeights","setInstanceRef","heights","heightUpdatedMark","_React$useMemo","_fillerInnerRef$curre","startIndex","startOffset","endIndex","itemTop","dataLen","cacheHeight","currentItemBottom","maxScrollHeight","useOriginScroll","_useFrameWheel2","onWheelDelta","offsetRef","nextFrameRef","wheelValueRef","isMouseScrollRef","event","patchMultiple","detail","useFrameWheel","offsetY","onRawWheel","onFireFoxScroll","listRef","callback","cleanUpEvents","touchedRef","touchYRef","elementRef","intervalRef","onTouchMove","currentY","clearInterval","setInterval","onTouchEnd","onTouchStart","useMobileTouchMove","onMozMousePixelScroll","scrollTo","containerRef","triggerFlash","scrollRef","arg","align","findIndex","_arg$offset","syncScroll","times","targetAlign","clientHeight","needCollectHeight","newTargetAlign","mergedAlign","stackTop","itemBottom","maxLen","targetTop","useScrollTo","_scrollBarRef$current","listChildren","list","setNodeRef","renderFunc","map","ele","useChildren","componentStyle","pointerEvents","assign","currentTarget","List","icon","customizeIcon","customizeIconProps","_onMouseDown","onClick","WebkitUserSelect","unselectable","cls","id","flattenOptions","childrenAsData","values","searchValue","defaultActiveFirstOption","open","onSelect","onToggleOpen","onActiveValue","onMouseEnter","itemPrefixCls","memoFlattenOptions","prev","onListMouseDown","scrollIntoView","getEnabledActiveIndex","_memoFlattenOptions$c","group","disabled","_React$useState","activeIndex","setActiveIndex","setActive","fromKeyboard","info","flattenItem","_listRef$current","timeoutId","onSelectValue","selected","has","onKeyDown","which","KeyCode","UP","DOWN","nextActiveIndex","ENTER","ESC","onKeyUp","role","renderItem","itemData","label","mergedLabel","_ref3","itemIndex","_classNames","groupOption","title","otherProps","optionPrefixCls","optionClassName","iconVisible","content","optionTitle","isSelected","RefOptionList","isSelectOption","isSelectOptGroup","convertNodeToOption","_node$props","nodes","optionOnly","toArray","type","_node$props2","options","removeLastEnabledValue","measureValues","removeIndex","newValues","removedValue","splice","isBrowserClient","document","documentElement","uuid","injectPropsWithOption","option","newOption","warning","_ref$prevValueOptions","prevValueOptions","optionMap","val","find","opt","_INTERNAL_OPTION_VALUE_","toRawString","join","responsive","registerSize","order","mergedHidden","internalRegisterSize","childNode","itemNode","opacity","offsetWidth","defaultRenderRest","omittedItems","Overflow","_props$data","_props$itemWidth","itemWidth","maxCount","_props$renderRest","renderRest","suffix","createUseState","_useState","forceUpdate","statesRef","destroyRef","walkingIndex","beforeFrameId","defaultValue","myIndex","useBatchFrameState","_createUseState","_createUseState2","containerWidth","setContainerWidth","_createUseState3","_createUseState4","itemWidths","setItemWidths","_createUseState5","_createUseState6","prevRestWidth","setPrevRestWidth","_createUseState7","_createUseState8","restWidth","setRestWidth","_createUseState9","_createUseState10","suffixWidth","setSuffixWidth","suffixFixedStart","setSuffixFixedStart","_useState3","displayCount","setDisplayCount","_useState5","_useState6","restReady","setRestReady","mergedRestWidth","isResponsive","showRest","items","mergedRenderItem","updateDisplayCount","notReady","clone","getItemWidth","totalWidth","lastIndex","currentItemWidth","displayRest","suffixStyle","itemSharedProps","overflowNode","MAX_SAFE_INTEGER","_","clientWidth","ForwardOverflow","inputElement","tabIndex","autoFocus","autoComplete","editable","accessibilityIndex","maxLength","_onKeyDown","_onChange","onChange","onPaste","_onCompositionStart","onCompositionStart","_onCompositionEnd","onCompositionEnd","inputNode","_inputNode","originRef","_inputNode$props","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","readOnly","RefInput","useLayoutEffect","effect","deps","onPreventMouseDown","inputRef","placeholder","showSearch","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","tagRender","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","measureRef","inputWidth","setInputWidth","focused","setFocused","selectionPrefixCls","inputValue","inputEditable","defaultRenderSelector","itemDisabled","closable","onClose","scrollWidth","onFocus","onBlur","selectionNode","displayLabel","strLabel","String","customizeRenderSelector","activeValue","inputChanged","setInputChanged","combobox","hasTextInput","useLock","duration","timeoutRef","doLock","locked","compositionStatusRef","tokenWithEnter","onSearch","onSearchSubmit","domRef","focus","blur","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","triggerOnSearch","sharedProps","SHIFT","TAB","BACKSPACE","replacedText","replace","clipboardData","getData","selectNode","MultipleSelector","body","msTouchAction","inputMouseDown","ForwardSelector","popupElement","animation","dropdownStyle","_props$direction","_props$dropdownMatchS","dropdownRender","dropdownAlign","empty","getTriggerDOMNode","dropdownPrefixCls","popupNode","builtInPlacements","adjustX","bottomLeft","points","adjustY","bottomRight","topLeft","topRight","getBuiltInPlacements","mergedTransitionName","popupRef","getPopupElement","popupStyle","minWidth","showAction","hideAction","popupPlacement","builtinPlacements","popupTransitionName","popup","popupAlign","popupVisible","popupClassName","RefSelectTrigger","DEFAULT_OMIT_PROPS","backfill","allowClear","getInputElement","defaultOpen","labelInValue","optionLabelProp","mergedShowSearch","mergedOptions","every","hasNumberValue","some","invalidateChildType","subNode","config","defaultPrefixCls","OptionList","components","optionList","convertChildrenToData","getLabeledValue","filterOptions","isValueDisabled","findValueOption","fillOptionsWithMissingValue","warningProps","omitDOMProps","filterOption","filterSort","_props$optionFilterPr","optionFilterProp","_props$autoClearSearc","autoClearSearchValue","showArrow","loading","_props$notFoundConten","_props$listHeight","_props$listItemHeight","_props$showAction","tokenSeparators","onPopupScroll","onDropdownVisibleChange","onDeselect","onClear","_props$internalProps","internalProps","useInternalProps","mark","domProps","prop","triggerRef","selectorRef","tokenSeparator","_useDelayReset","timeout","bool","setBool","delayRef","cancelLatest","delaySetBool","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","innerId","setInnerId","retId","mergedId","mergedOptionLabelProp","mergedLabelInValue","selectorDomRef","_useMergedState","useMergedState","_useMergedState2","mergedValue","setMergedValue","_useMemo","valueMap","rawValues","itemValue","finalVal","toInnerValue","_useMemo2","mergedRawValue","mergedValueMap","Set","setActiveValue","innerSearchValue","setInnerSearchValue","mergedSearchValue","newOptions","mergedFlattenOptions","getValueOption","prevOptionMapRef","vals","Boolean","useCacheOptions","displayOptions","filteredOptions","unshift","sort","displayFlattenOptions","prevValuesRef","displayValues","tmpValues","valueOptions","displayValue","prevValueMap","valueLabels","resultValues","cacheLabel","isCacheable","triggerSelect","newValue","isSelect","newValueOption","outOption","skipTriggerSelect","selectValue","onRawSelect","onRawDeselect","_useState7","_useState8","setPrevValueOptions","triggerChange","newRawValues","skipTriggerChange","newRawValuesOptions","outValues","valueList","toOuterValues","outValue","outOptions","onInternalSelect","newRawValue","add","customizeInputElement","_useMergedState3","_useMergedState4","innerOpen","setInnerOpen","mergedOpen","emptyListContent","triggerOpen","newOpen","nextOpen","elements","propsRef","onGlobalMouseDown","contains","useSelectTriggerControl","triggerSearch","searchText","fromTyping","isCompositing","ret","newSearchText","patchLabels","text","tokens","match","separate","str","_ref4","_ref5","token","restTokens","reduce","prevList","unitStr","unit","getSeparatedContent","patchRawValues","getClearLock","setClearLock","focusRef","activeTimeoutIds","_useState9","_useState10","setAccessibilityIndex","mergedDefaultActiveFirstOption","_useState11","_useState12","_useState13","newWidth","clearNode","active","_ref3$source","arrowNode","mergedShowArrow","activeElement","_len3","restArgs","_key3","_listRef$current2","clearLock","removeInfo","_len","rest","_key","_len2","_key2","_listRef$current3","generateSelector","flattenList","dig","isGroupOption","prevValItem","trim","filterFunc","lowerSearchText","toLowerCase","getFilterFunction","subOptions","subItem","cloneOptions","optionValues","subOpt","_ref6","selectRef","getValue","condition","shouldUpdate","cacheRef","mergedClearIcon","_CloseCircleFilled","mergedSuffixIcon","_LoadingOutlined","spin","iconCls","_SearchOutlined","_DownOutlined","mergedItemIcon","_CheckOutlined","mergedRemoveIcon","_CloseOutlined"],"mappings":"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","file":"7a663ca2f71f1c972a7095a83d5125d90705232f-9266e8bb7b4095951d20.js","sourcesContent":["\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _omit = _interopRequireDefault(require(\"omit.js\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _rcSelect = _interopRequireWildcard(require(\"rc-select\"));\n\nvar _configProvider = require(\"../config-provider\");\n\nvar _iconUtil = _interopRequireDefault(require(\"./utils/iconUtil\"));\n\nvar _SizeContext = _interopRequireDefault(require(\"../config-provider/SizeContext\")); // TODO: 4.0 - codemod should help to change `filterOption` to support node props.\n\n\nvar __rest = void 0 && (void 0).__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\nvar SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\n\nvar InternalSelect = function InternalSelect(_a, ref) {\n var _classNames2;\n\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n className = _a.className,\n getPopupContainer = _a.getPopupContainer,\n dropdownClassName = _a.dropdownClassName,\n _a$listHeight = _a.listHeight,\n listHeight = _a$listHeight === void 0 ? 256 : _a$listHeight,\n _a$listItemHeight = _a.listItemHeight,\n listItemHeight = _a$listItemHeight === void 0 ? 24 : _a$listItemHeight,\n customizeSize = _a.size,\n notFoundContent = _a.notFoundContent,\n _a$transitionName = _a.transitionName,\n transitionName = _a$transitionName === void 0 ? 'slide-up' : _a$transitionName,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"className\", \"getPopupContainer\", \"dropdownClassName\", \"listHeight\", \"listItemHeight\", \"size\", \"notFoundContent\", \"transitionName\"]);\n\n var _React$useContext = React.useContext(_configProvider.ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth;\n\n var size = React.useContext(_SizeContext[\"default\"]);\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var mode = React.useMemo(function () {\n var m = props.mode;\n\n if (m === 'combobox') {\n return undefined;\n }\n\n if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n\n return m;\n }, [props.mode]);\n var isMultiple = mode === 'multiple' || mode === 'tags'; // ===================== Empty =====================\n\n var mergedNotFound;\n\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = renderEmpty('Select');\n } // ===================== Icons =====================\n\n\n var _getIcons = (0, _iconUtil[\"default\"])((0, _extends2[\"default\"])((0, _extends2[\"default\"])({}, props), {\n multiple: isMultiple,\n prefixCls: prefixCls\n })),\n suffixIcon = _getIcons.suffixIcon,\n itemIcon = _getIcons.itemIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n\n var selectProps = (0, _omit[\"default\"])(props, ['suffixIcon', 'itemIcon']);\n var rcSelectRtlDropDownClassName = (0, _classnames[\"default\"])(dropdownClassName, (0, _defineProperty2[\"default\"])({}, \"\".concat(prefixCls, \"-dropdown-\").concat(direction), direction === 'rtl'));\n var mergedSize = customizeSize || size;\n var mergedClassName = (0, _classnames[\"default\"])((_classNames2 = {}, (0, _defineProperty2[\"default\"])(_classNames2, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), (0, _defineProperty2[\"default\"])(_classNames2, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), (0, _defineProperty2[\"default\"])(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), (0, _defineProperty2[\"default\"])(_classNames2, \"\".concat(prefixCls, \"-borderless\"), !bordered), _classNames2), className);\n return /*#__PURE__*/React.createElement(_rcSelect[\"default\"], (0, _extends2[\"default\"])({\n ref: ref,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }, selectProps, {\n transitionName: transitionName,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n direction: direction,\n inputIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropDownClassName\n }));\n};\n\nvar SelectRef = /*#__PURE__*/React.forwardRef(InternalSelect);\nvar Select = SelectRef;\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = _rcSelect.Option;\nSelect.OptGroup = _rcSelect.OptGroup;\nvar _default = Select;\nexports[\"default\"] = _default;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n/* eslint-enable max-len */\n\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\n\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\n\n\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if ( // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) || // Data\n mergedConfig.data && match(key, dataPrefix) || // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\n\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offset = _ref.offset,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n\n if (offset !== undefined) {\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, {\n transform: \"translateY(\".concat(offset, \"px)\"),\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: innerStyle,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, children)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nvar MIN_SIZE = 20;\n\nfunction getPageY(e) {\n return 'touches' in e ? e.touches[0].pageY : e.pageY;\n}\n\nvar ScrollBar = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollBar, _React$Component);\n\n var _super = _createSuper(ScrollBar);\n\n function ScrollBar() {\n var _this;\n\n _classCallCheck(this, ScrollBar);\n\n _this = _super.apply(this, arguments);\n _this.moveRaf = null;\n _this.scrollbarRef = /*#__PURE__*/React.createRef();\n _this.thumbRef = /*#__PURE__*/React.createRef();\n _this.visibleTimeout = null;\n _this.state = {\n dragging: false,\n pageY: null,\n startTop: null,\n visible: false\n };\n\n _this.delayHidden = function () {\n clearTimeout(_this.visibleTimeout);\n\n _this.setState({\n visible: true\n });\n\n _this.visibleTimeout = setTimeout(function () {\n _this.setState({\n visible: false\n });\n }, 2000);\n };\n\n _this.onScrollbarTouchStart = function (e) {\n e.preventDefault();\n };\n\n _this.onContainerMouseDown = function (e) {\n e.stopPropagation();\n e.preventDefault();\n }; // ======================= Clean =======================\n\n\n _this.patchEvents = function () {\n window.addEventListener('mousemove', _this.onMouseMove);\n window.addEventListener('mouseup', _this.onMouseUp);\n\n _this.thumbRef.current.addEventListener('touchmove', _this.onMouseMove);\n\n _this.thumbRef.current.addEventListener('touchend', _this.onMouseUp);\n };\n\n _this.removeEvents = function () {\n window.removeEventListener('mousemove', _this.onMouseMove);\n window.removeEventListener('mouseup', _this.onMouseUp);\n\n _this.scrollbarRef.current.removeEventListener('touchstart', _this.onScrollbarTouchStart);\n\n _this.thumbRef.current.removeEventListener('touchstart', _this.onMouseDown);\n\n _this.thumbRef.current.removeEventListener('touchmove', _this.onMouseMove);\n\n _this.thumbRef.current.removeEventListener('touchend', _this.onMouseUp);\n\n raf.cancel(_this.moveRaf);\n }; // ======================= Thumb =======================\n\n\n _this.onMouseDown = function (e) {\n var onStartMove = _this.props.onStartMove;\n\n _this.setState({\n dragging: true,\n pageY: getPageY(e),\n startTop: _this.getTop()\n });\n\n onStartMove();\n\n _this.patchEvents();\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n _this.onMouseMove = function (e) {\n var _this$state = _this.state,\n dragging = _this$state.dragging,\n pageY = _this$state.pageY,\n startTop = _this$state.startTop;\n var onScroll = _this.props.onScroll;\n raf.cancel(_this.moveRaf);\n\n if (dragging) {\n var offsetY = getPageY(e) - pageY;\n var newTop = startTop + offsetY;\n\n var enableScrollRange = _this.getEnableScrollRange();\n\n var enableHeightRange = _this.getEnableHeightRange();\n\n var ptg = enableHeightRange ? newTop / enableHeightRange : 0;\n var newScrollTop = Math.ceil(ptg * enableScrollRange);\n _this.moveRaf = raf(function () {\n onScroll(newScrollTop);\n });\n }\n };\n\n _this.onMouseUp = function () {\n var onStopMove = _this.props.onStopMove;\n\n _this.setState({\n dragging: false\n });\n\n onStopMove();\n\n _this.removeEvents();\n }; // ===================== Calculate =====================\n\n\n _this.getSpinHeight = function () {\n var _this$props = _this.props,\n height = _this$props.height,\n count = _this$props.count;\n var baseHeight = height / count * 10;\n baseHeight = Math.max(baseHeight, MIN_SIZE);\n baseHeight = Math.min(baseHeight, height / 2);\n return Math.floor(baseHeight);\n };\n\n _this.getEnableScrollRange = function () {\n var _this$props2 = _this.props,\n scrollHeight = _this$props2.scrollHeight,\n height = _this$props2.height;\n return scrollHeight - height || 0;\n };\n\n _this.getEnableHeightRange = function () {\n var height = _this.props.height;\n\n var spinHeight = _this.getSpinHeight();\n\n return height - spinHeight || 0;\n };\n\n _this.getTop = function () {\n var scrollTop = _this.props.scrollTop;\n\n var enableScrollRange = _this.getEnableScrollRange();\n\n var enableHeightRange = _this.getEnableHeightRange();\n\n if (scrollTop === 0 || enableScrollRange === 0) {\n return 0;\n }\n\n var ptg = scrollTop / enableScrollRange;\n return ptg * enableHeightRange;\n }; // Not show scrollbar when height is large thane scrollHeight\n\n\n _this.getVisible = function () {\n var visible = _this.state.visible;\n var _this$props3 = _this.props,\n height = _this$props3.height,\n scrollHeight = _this$props3.scrollHeight;\n\n if (height >= scrollHeight) {\n return false;\n }\n\n return visible;\n };\n\n return _this;\n }\n\n _createClass(ScrollBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.scrollbarRef.current.addEventListener('touchstart', this.onScrollbarTouchStart);\n this.thumbRef.current.addEventListener('touchstart', this.onMouseDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.scrollTop !== this.props.scrollTop) {\n this.delayHidden();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeEvents();\n clearTimeout(this.visibleTimeout);\n } // ====================== Render =======================\n\n }, {\n key: \"render\",\n value: function render() {\n var dragging = this.state.dragging;\n var prefixCls = this.props.prefixCls;\n var spinHeight = this.getSpinHeight();\n var top = this.getTop();\n var visible = this.getVisible();\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.scrollbarRef,\n className: \"\".concat(prefixCls, \"-scrollbar\"),\n style: {\n width: 8,\n top: 0,\n bottom: 0,\n right: 0,\n position: 'absolute',\n display: visible ? null : 'none'\n },\n onMouseDown: this.onContainerMouseDown,\n onMouseMove: this.delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: this.thumbRef,\n className: classNames(\"\".concat(prefixCls, \"-scrollbar-thumb\"), _defineProperty({}, \"\".concat(prefixCls, \"-scrollbar-thumb-moving\"), dragging)),\n style: {\n width: '100%',\n height: spinHeight,\n top: top,\n left: 0,\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.5)',\n borderRadius: 99,\n cursor: 'pointer',\n userSelect: 'none'\n },\n onMouseDown: this.onMouseDown\n }));\n }\n }]);\n\n return ScrollBar;\n}(React.Component);\n\nexport { ScrollBar as default };","import * as React from 'react';\nexport function Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n} // Firefox has low performance of map.\n\n\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n\n this.maps = {};\n this.maps.prototype = null;\n }\n\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n\n return CacheMap;\n}();\n\nexport default CacheMap;","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport CacheMap from '../utils/CacheMap';\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n\n var instanceRef = useRef(new Map());\n var heightsRef = useRef(new CacheMap());\n var heightUpdateIdRef = useRef(0);\n\n function collectHeight() {\n heightUpdateIdRef.current += 1;\n var currentId = heightUpdateIdRef.current;\n Promise.resolve().then(function () {\n // Only collect when it's latest call\n if (currentId !== heightUpdateIdRef.current) return;\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = findDOMNode(element);\n var offsetHeight = htmlElement.offsetHeight;\n\n if (heightsRef.current.get(key) !== offsetHeight) {\n heightsRef.current.set(key, htmlElement.offsetHeight);\n }\n }\n }); // Always trigger update mark to tell parent that should re-calculate heights when resized\n\n setUpdatedMark(function (c) {\n return c + 1;\n });\n });\n }\n\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n } // Instance changed\n\n\n if (!origin !== !instance) {\n if (instance) {\n onItemAdd === null || onItemAdd === void 0 ? void 0 : onItemAdd(item);\n } else {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(item);\n }\n }\n }\n\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n/* eslint-disable no-param-reassign */\n\n\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\n return function (arg) {\n // When not argument provided, we think dev may want to show the scrollbar\n if (arg === null || arg === undefined) {\n triggerFlash();\n return;\n } // Normal scroll logic\n\n\n raf.cancel(scrollRef.current);\n\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\n\n if ('index' in arg) {\n index = arg.index;\n } else {\n index = data.findIndex(function (item) {\n return getKey(item) === arg.key;\n });\n }\n\n var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset; // We will retry 3 times in case dynamic height shaking\n\n var syncScroll = function syncScroll(times, targetAlign) {\n if (times < 0 || !containerRef.current) return;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign; // Go to next frame if height not exist\n\n if (height) {\n var mergedAlign = targetAlign || align; // Get top & bottom\n\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length, index);\n\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n\n if (i === index && cacheHeight === undefined) {\n needCollectHeight = true;\n }\n } // Scroll to\n\n\n var targetTop = null;\n\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n\n if (targetTop !== null && targetTop !== containerRef.current.scrollTop) {\n syncScrollTop(targetTop);\n }\n } // We will retry since element may not sync height as it described\n\n\n scrollRef.current = raf(function () {\n if (needCollectHeight) {\n collectHeight();\n }\n\n syncScroll(times - 1, newTargetAlign);\n });\n };\n\n syncScroll(3);\n }\n };\n}","function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nimport * as React from 'react';\nimport { findListDiffIndex } from '../utils/algorithmUtil';\nexport default function useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n\n React.useEffect(function () {\n var diff = findListDiffIndex(prevData || [], data || [], getKey);\n\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 ? void 0 : onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2; // Balance\n\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n\n if (index % 2) {\n return start + stepIndex + 1;\n }\n\n return start - stepIndex;\n } // One is out of range\n\n\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n\n return start + (index - beforeCount);\n}\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\n\nexport function findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n\n return notExistKey;\n } // Loop to find diff one\n\n\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\n };\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom) {\n // Do lock for a wheel when scrolling\n var lockRef = useRef(false);\n var lockTimeoutRef = useRef(null);\n\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n } // Pass to ref since global add is in closure\n\n\n var scrollPingRef = useRef({\n top: isScrollAtTop,\n bottom: isScrollAtBottom\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n return function (deltaY) {\n var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var originScroll = // Pass origin wheel when on the top\n deltaY < 0 && scrollPingRef.current.top || // Pass origin wheel when on the bottom\n deltaY > 0 && scrollPingRef.current.bottom;\n\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n\n return !lockRef.current && originScroll;\n };\n});","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport Filler from './Filler';\nimport ScrollBar from './ScrollBar';\nimport useChildren from './hooks/useChildren';\nimport useHeights from './hooks/useHeights';\nimport useScrollTo from './hooks/useScrollTo';\nimport useDiffItem from './hooks/useDiffItem';\nimport useFrameWheel from './hooks/useFrameWheel';\nimport useMobileTouchMove from './hooks/useMobileTouchMove';\nimport useOriginScroll from './hooks/useOriginScroll';\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"component\", \"onScroll\"]); // ================================= MISC =================================\n\n\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var inVirtual = useVirtual && data && itemHeight * data.length > height;\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n scrollTop = _useState2[0],\n setScrollTop = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n scrollMoving = _useState4[0],\n setScrollMoving = _useState4[1];\n\n var mergedClassName = classNames(prefixCls, className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = useRef();\n var fillerInnerRef = useRef();\n var scrollBarRef = useRef(); // Hack on scrollbar to enable flash call\n // =============================== Item Key ===============================\n\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n var sharedConfig = {\n getKey: getKey\n }; // ================================ Scroll ================================\n\n function syncScrollTop(newTop) {\n setScrollTop(function (origin) {\n var value;\n\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n } // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n\n\n var rangeRef = useRef({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = useRef();\n\n var _useDiffItem = useDiffItem(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n\n diffItemRef.current = diffItem; // ================================ Height ================================\n\n var _useHeights = useHeights(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3]; // ========================== Visible Calculation =========================\n\n\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n } // Always use virtual scroll bar in avoid shaking\n\n\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n\n for (var i = 0; i < dataLen; i += 1) {\n var item = mergedData[i];\n var key = getKey(item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight); // Check item top in the range\n\n if (currentItemBottom >= scrollTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n } // Check item bottom in the range. We will render additional one item for motion usage\n\n\n if (currentItemBottom > scrollTop + height && endIndex === undefined) {\n endIndex = i;\n }\n\n itemTop = currentItemBottom;\n } // Fallback to normal if not match. This code should never reach\n\n /* istanbul ignore next */\n\n\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n }\n\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n } // Give cache to improve scroll experience\n\n\n endIndex = Math.min(endIndex + 1, mergedData.length);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, scrollTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n offset = _React$useMemo.offset;\n\n rangeRef.current.start = start;\n rangeRef.current.end = end; // =============================== In Range ===============================\n\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = useRef(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n\n newTop = Math.max(newScrollTop, 0);\n return newTop;\n }\n\n var isScrollAtTop = scrollTop <= 0;\n var isScrollAtBottom = scrollTop >= maxScrollHeight;\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom); // ================================ Scroll ================================\n\n function onScrollBar(newScrollTop) {\n var newTop = newScrollTop;\n syncScrollTop(newTop);\n } // When data size reduce. It may trigger native scroll event back to fit scroll position\n\n\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n\n if (newScrollTop !== scrollTop) {\n syncScrollTop(newScrollTop);\n } // Trigger origin onScroll\n\n\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n } // Since this added in global,should use ref to keep update\n\n\n var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, function (offsetY) {\n syncScrollTop(function (top) {\n var newTop = top + offsetY;\n return newTop;\n });\n }),\n _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n onRawWheel = _useFrameWheel2[0],\n onFireFoxScroll = _useFrameWheel2[1]; // Mobile touch move\n\n\n useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n if (originScroll(deltaY, smoothOffset)) {\n return false;\n }\n\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaY: deltaY\n });\n return true;\n });\n React.useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n if (useVirtual) {\n e.preventDefault();\n }\n }\n\n componentRef.current.addEventListener('wheel', onRawWheel);\n componentRef.current.addEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n return function () {\n componentRef.current.removeEventListener('wheel', onRawWheel);\n componentRef.current.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentRef.current.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n };\n }, [useVirtual]); // ================================= Ref ==================================\n\n var scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, collectHeight, syncScrollTop, function () {\n var _scrollBarRef$current;\n\n (_scrollBarRef$current = scrollBarRef.current) === null || _scrollBarRef$current === void 0 ? void 0 : _scrollBarRef$current.delayHidden();\n });\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: scrollTo\n };\n }); // ================================ Render ================================\n\n var listChildren = useChildren(mergedData, start, end, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, restProps), /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll\n }, /*#__PURE__*/React.createElement(Filler, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offset: offset,\n onInnerResize: collectHeight,\n ref: fillerInnerRef\n }, listChildren)), useVirtual && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: scrollBarRef,\n prefixCls: prefixCls,\n scrollTop: scrollTop,\n height: height,\n scrollHeight: scrollHeight,\n count: mergedData.length,\n onScroll: onScrollBar,\n onStartMove: function onStartMove() {\n setScrollMoving(true);\n },\n onStopMove: function onStopMove() {\n setScrollMoving(false);\n }\n }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport isFF from '../utils/isFirefox';\nimport useOriginScroll from './useOriginScroll';\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, onWheelDelta) {\n var offsetRef = useRef(0);\n var nextFrameRef = useRef(null); // Firefox patch\n\n var wheelValueRef = useRef(null);\n var isMouseScrollRef = useRef(false); // Scroll status sync\n\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n\n function onWheel(event) {\n if (!inVirtual) return;\n raf.cancel(nextFrameRef.current);\n var deltaY = event.deltaY;\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY; // Do nothing when scroll at the edge, Skip check when is in scroll\n\n if (originScroll(deltaY)) return; // Proxy of scroll events\n\n if (!isFF) {\n event.preventDefault();\n }\n\n nextFrameRef.current = raf(function () {\n // Patch a multiple for Firefox to fix wheel number too small\n // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple);\n offsetRef.current = 0;\n });\n } // A patch for firefox\n\n\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n\n return [onWheel, onFireFoxScroll];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = useRef(false);\n var touchYRef = useRef(0);\n var elementRef = useRef(null); // Smooth scroll\n\n var intervalRef = useRef(null);\n var cleanUpEvents;\n\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentY = Math.ceil(e.touches[0].pageY);\n var offsetY = touchYRef.current - currentY;\n touchYRef.current = currentY;\n\n if (callback(offsetY)) {\n e.preventDefault();\n } // Smooth interval\n\n\n clearInterval(intervalRef.current);\n intervalRef.current = setInterval(function () {\n offsetY *= SMOOTH_PTG;\n\n if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n };\n\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove);\n elementRef.current.addEventListener('touchend', onTouchEnd);\n }\n };\n\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n\n React.useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart);\n }\n\n return function () {\n listRef.current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","import * as React from 'react';\nimport { Item } from '../Item';\nexport default function useChildren(list, startIndex, endIndex, setNodeRef, renderFunc, _ref) {\n var getKey = _ref.getKey;\n return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n var eleIndex = startIndex + index;\n var node = renderFunc(item, eleIndex, {// style: status === 'MEASURE_START' ? { visibility: 'hidden' } : {},\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","import List from './List';\nexport default List;","import * as React from 'react';\nimport classNames from 'classnames';\n\nvar TransBtn = function TransBtn(_ref) {\n var className = _ref.className,\n customizeIcon = _ref.customizeIcon,\n customizeIconProps = _ref.customizeIconProps,\n _onMouseDown = _ref.onMouseDown,\n onClick = _ref.onClick,\n children = _ref.children;\n var icon;\n\n if (typeof customizeIcon === 'function') {\n icon = customizeIcon(customizeIconProps);\n } else {\n icon = customizeIcon;\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className,\n onMouseDown: function onMouseDown(event) {\n event.preventDefault();\n\n if (_onMouseDown) {\n _onMouseDown(event);\n }\n },\n style: {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n },\n unselectable: \"on\",\n onClick: onClick,\n \"aria-hidden\": true\n }, icon !== undefined ? icon : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(className.split(/\\s+/).map(function (cls) {\n return \"\".concat(cls, \"-icon\");\n }))\n }, children));\n};\n\nexport default TransBtn;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport classNames from 'classnames';\nimport List from 'rc-virtual-list';\nimport TransBtn from './TransBtn';\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\n\nvar OptionList = function OptionList(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n flattenOptions = _ref.flattenOptions,\n childrenAsData = _ref.childrenAsData,\n values = _ref.values,\n searchValue = _ref.searchValue,\n multiple = _ref.multiple,\n defaultActiveFirstOption = _ref.defaultActiveFirstOption,\n height = _ref.height,\n itemHeight = _ref.itemHeight,\n notFoundContent = _ref.notFoundContent,\n open = _ref.open,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n virtual = _ref.virtual,\n onSelect = _ref.onSelect,\n onToggleOpen = _ref.onToggleOpen,\n onActiveValue = _ref.onActiveValue,\n onScroll = _ref.onScroll,\n onMouseEnter = _ref.onMouseEnter;\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var memoFlattenOptions = useMemo(function () {\n return flattenOptions;\n }, [open, flattenOptions], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n }); // =========================== List ===========================\n\n var listRef = React.useRef(null);\n\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n\n var scrollIntoView = function scrollIntoView(index) {\n if (listRef.current) {\n listRef.current.scrollTo({\n index: index\n });\n }\n }; // ========================== Active ==========================\n\n\n var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var len = memoFlattenOptions.length;\n\n for (var i = 0; i < len; i += 1) {\n var current = (index + i * offset + len) % len;\n var _memoFlattenOptions$c = memoFlattenOptions[current],\n group = _memoFlattenOptions$c.group,\n data = _memoFlattenOptions$c.data;\n\n if (!group && !data.disabled) {\n return current;\n }\n }\n\n return -1;\n };\n\n var _React$useState = React.useState(function () {\n return getEnabledActiveIndex(0);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n\n var setActive = function setActive(index) {\n var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setActiveIndex(index);\n var info = {\n source: fromKeyboard ? 'keyboard' : 'mouse'\n }; // Trigger active event\n\n var flattenItem = memoFlattenOptions[index];\n\n if (!flattenItem) {\n onActiveValue(null, -1, info);\n return;\n }\n\n onActiveValue(flattenItem.data.value, index, info);\n }; // Auto active first item when list length or searchValue changed\n\n\n React.useEffect(function () {\n setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n }, [memoFlattenOptions.length, searchValue]); // Auto scroll to item position in single mode\n\n React.useEffect(function () {\n /**\n * React will skip `onChange` when component update.\n * `setActive` function will call root accessibility state update which makes re-render.\n * So we need to delay to let Input component trigger onChange first.\n */\n var timeoutId = setTimeout(function () {\n if (!multiple && open && values.size === 1) {\n var value = Array.from(values)[0];\n var index = memoFlattenOptions.findIndex(function (_ref2) {\n var data = _ref2.data;\n return data.value === value;\n });\n setActive(index);\n scrollIntoView(index);\n }\n }); // Force trigger scrollbar visible when open\n\n if (open) {\n var _listRef$current;\n\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(undefined);\n }\n\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [open]); // ========================== Values ==========================\n\n var onSelectValue = function onSelectValue(value) {\n if (value !== undefined) {\n onSelect(value, {\n selected: !values.has(value)\n });\n } // Single mode should always close by select\n\n\n if (!multiple) {\n onToggleOpen(false);\n }\n }; // ========================= Keyboard =========================\n\n\n React.useImperativeHandle(ref, function () {\n return {\n onKeyDown: function onKeyDown(event) {\n var which = event.which;\n\n switch (which) {\n // >>> Arrow keys\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n }\n\n if (offset !== 0) {\n var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n scrollIntoView(nextActiveIndex);\n setActive(nextActiveIndex, true);\n }\n\n break;\n }\n // >>> Select\n\n case KeyCode.ENTER:\n {\n // value\n var item = memoFlattenOptions[activeIndex];\n\n if (item && !item.data.disabled) {\n onSelectValue(item.data.value);\n } else {\n onSelectValue(undefined);\n }\n\n if (open) {\n event.preventDefault();\n }\n\n break;\n }\n // >>> Close\n\n case KeyCode.ESC:\n {\n onToggleOpen(false);\n }\n }\n },\n onKeyUp: function onKeyUp() {},\n scrollTo: function scrollTo(index) {\n scrollIntoView(index);\n }\n };\n }); // ========================== Render ==========================\n\n if (memoFlattenOptions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n className: \"\".concat(itemPrefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n\n function renderItem(index) {\n var item = memoFlattenOptions[index];\n if (!item) return null;\n var itemData = item.data || {};\n var value = itemData.value,\n label = itemData.label,\n children = itemData.children;\n var attrs = pickAttrs(itemData, true);\n var mergedLabel = childrenAsData ? children : label;\n return item ? /*#__PURE__*/React.createElement(\"div\", Object.assign({\n \"aria-label\": typeof mergedLabel === 'string' ? mergedLabel : null\n }, attrs, {\n key: index,\n role: \"option\",\n id: \"\".concat(id, \"_list_\").concat(index),\n \"aria-selected\": values.has(value)\n }), value) : null;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n style: {\n height: 0,\n width: 0,\n overflow: 'hidden'\n }\n }, renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n itemKey: \"key\",\n ref: listRef,\n data: memoFlattenOptions,\n height: height,\n itemHeight: itemHeight,\n fullHeight: false,\n onMouseDown: onListMouseDown,\n onScroll: onScroll,\n virtual: virtual,\n onMouseEnter: onMouseEnter\n }, function (_ref3, itemIndex) {\n var _classNames;\n\n var group = _ref3.group,\n groupOption = _ref3.groupOption,\n data = _ref3.data;\n var label = data.label,\n key = data.key; // Group\n\n if (group) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\"))\n }, label !== undefined ? label : key);\n }\n\n var disabled = data.disabled,\n value = data.value,\n title = data.title,\n children = data.children,\n style = data.style,\n className = data.className,\n otherProps = _objectWithoutProperties(data, [\"disabled\", \"value\", \"title\", \"children\", \"style\", \"className\"]); // Option\n\n\n var selected = values.has(value);\n var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-selected\"), selected), _classNames));\n var mergedLabel = childrenAsData ? children : label;\n var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n var content = mergedLabel || value; // https://github.com/ant-design/ant-design/issues/26717\n\n var optionTitle = typeof content === 'string' || typeof content === 'number' ? content.toString() : undefined;\n\n if (title !== undefined) {\n optionTitle = title;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, otherProps, {\n \"aria-selected\": selected,\n className: optionClassName,\n title: optionTitle,\n onMouseMove: function onMouseMove() {\n if (activeIndex === itemIndex || disabled) {\n return;\n }\n\n setActive(itemIndex);\n },\n onClick: function onClick() {\n if (!disabled) {\n onSelectValue(value);\n }\n },\n style: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(optionPrefixCls, \"-content\")\n }, content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(itemPrefixCls, \"-option-state\"),\n customizeIcon: menuItemSelectedIcon,\n customizeIconProps: {\n isSelected: selected\n }\n }, selected ? '✓' : null));\n }));\n};\n\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n return null;\n};\n\nOption.isSelectOption = true;\nexport default Option;","/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n return null;\n};\n\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\n\nfunction convertNodeToOption(node) {\n var key = node.key,\n _node$props = node.props,\n children = _node$props.children,\n value = _node$props.value,\n restProps = _objectWithoutProperties(_node$props, [\"children\", \"value\"]);\n\n return _objectSpread({\n key: key,\n value: value !== undefined ? value : key,\n children: children\n }, restProps);\n}\n\nexport function convertChildrenToData(nodes) {\n var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return toArray(nodes).map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n\n var isSelectOptGroup = node.type.isSelectOptGroup,\n key = node.key,\n _node$props2 = node.props,\n children = _node$props2.children,\n restProps = _objectWithoutProperties(_node$props2, [\"children\"]);\n\n if (optionOnly || !isSelectOptGroup) {\n return convertNodeToOption(node);\n }\n\n return _objectSpread(_objectSpread({\n key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n label: key\n }, restProps), {}, {\n options: convertChildrenToData(children)\n });\n }).filter(function (data) {\n return data;\n });\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n return value !== undefined ? [value] : [];\n}\n/**\n * Convert outer props value into internal value\n */\n\nexport function toInnerValue(value, _ref) {\n var labelInValue = _ref.labelInValue,\n combobox = _ref.combobox;\n var valueMap = new Map();\n\n if (value === undefined || value === '' && combobox) {\n return [[], valueMap];\n }\n\n var values = Array.isArray(value) ? value : [value];\n var rawValues = values;\n\n if (labelInValue) {\n rawValues = values.map(function (itemValue) {\n var key = itemValue.key,\n val = itemValue.value;\n var finalVal = val !== undefined ? val : key;\n valueMap.set(finalVal, itemValue);\n return finalVal;\n });\n }\n\n return [rawValues, valueMap];\n}\n/**\n * Convert internal value into out event value\n */\n\nexport function toOuterValues(valueList, _ref2) {\n var optionLabelProp = _ref2.optionLabelProp,\n labelInValue = _ref2.labelInValue,\n prevValueMap = _ref2.prevValueMap,\n options = _ref2.options,\n getLabeledValue = _ref2.getLabeledValue;\n var values = valueList;\n\n if (labelInValue) {\n values = values.map(function (val) {\n return getLabeledValue(val, {\n options: options,\n prevValueMap: prevValueMap,\n labelInValue: labelInValue,\n optionLabelProp: optionLabelProp\n });\n });\n }\n\n return values;\n}\nexport function removeLastEnabledValue(measureValues, values) {\n var newValues = _toConsumableArray(values);\n\n var removeIndex;\n\n for (removeIndex = measureValues.length - 1; removeIndex >= 0; removeIndex -= 1) {\n if (!measureValues[removeIndex].disabled) {\n break;\n }\n }\n\n var removedValue = null;\n\n if (removeIndex !== -1) {\n removedValue = newValues[removeIndex];\n newValues.splice(removeIndex, 1);\n }\n\n return {\n values: newValues,\n removedValue: removedValue\n };\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n/** Is client side and not jsdom */\n\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nvar uuid = 0;\n/** Get unique id for accessibility usage */\n\nexport function getUUID() {\n var retId; // Test never reach\n\n /* istanbul ignore if */\n\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n\n return retId;\n}","import \"core-js/modules/es.array.reduce.js\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from './commonUtil';\n\nfunction getKey(data, index) {\n var key = data.key;\n var value;\n\n if ('value' in data) {\n value = data.value;\n }\n\n if (key !== null && key !== undefined) {\n return key;\n }\n\n if (value !== undefined) {\n return value;\n }\n\n return \"rc-index-key-\".concat(index);\n}\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\n\n\nexport function flattenOptions(options) {\n var flattenList = [];\n\n function dig(list, isGroupOption) {\n list.forEach(function (data) {\n if (isGroupOption || !('options' in data)) {\n // Option\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data\n });\n } else {\n // Option Group\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data\n });\n dig(data.options, true);\n }\n });\n }\n\n dig(options, false);\n return flattenList;\n}\n/**\n * Inject `props` into `option` for legacy usage\n */\n\nfunction injectPropsWithOption(option) {\n var newOption = _objectSpread({}, option);\n\n if (!('props' in newOption)) {\n Object.defineProperty(newOption, 'props', {\n get: function get() {\n warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n return newOption;\n }\n });\n }\n\n return newOption;\n}\n\nexport function findValueOption(values, options) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$prevValueOptions = _ref.prevValueOptions,\n prevValueOptions = _ref$prevValueOptions === void 0 ? [] : _ref$prevValueOptions;\n\n var optionMap = new Map();\n options.forEach(function (flattenItem) {\n if (!flattenItem.group) {\n var data = flattenItem.data; // Check if match\n\n optionMap.set(data.value, data);\n }\n });\n return values.map(function (val) {\n var option = optionMap.get(val); // Fallback to try to find prev options\n\n if (!option) {\n option = _objectSpread({}, prevValueOptions.find(function (opt) {\n return opt._INTERNAL_OPTION_VALUE_ === val;\n }));\n }\n\n return injectPropsWithOption(option);\n });\n}\nexport var getLabeledValue = function getLabeledValue(value, _ref2) {\n var options = _ref2.options,\n prevValueMap = _ref2.prevValueMap,\n labelInValue = _ref2.labelInValue,\n optionLabelProp = _ref2.optionLabelProp;\n var item = findValueOption([value], options)[0];\n var result = {\n value: value\n };\n var prevValItem = labelInValue ? prevValueMap.get(value) : undefined;\n\n if (prevValItem && _typeof(prevValItem) === 'object' && 'label' in prevValItem) {\n result.label = prevValItem.label;\n\n if (item && typeof prevValItem.label === 'string' && typeof item[optionLabelProp] === 'string' && prevValItem.label.trim() !== item[optionLabelProp].trim()) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n } else if (item && optionLabelProp in item) {\n result.label = item[optionLabelProp];\n } else {\n result.label = value;\n result.isCacheable = true;\n } // Used for motion control\n\n\n result.key = result.value;\n return result;\n};\n\nfunction toRawString(content) {\n return toArray(content).join('');\n}\n/** Filter single option if match the search text */\n\n\nfunction getFilterFunction(optionFilterProp) {\n return function (searchValue, option) {\n var lowerSearchText = searchValue.toLowerCase(); // Group label search\n\n if ('options' in option) {\n return toRawString(option.label).toLowerCase().includes(lowerSearchText);\n } // Option value search\n\n\n var rawValue = option[optionFilterProp];\n var value = toRawString(rawValue).toLowerCase();\n return value.includes(lowerSearchText);\n };\n}\n/** Filter options and return a new options by the search text */\n\n\nexport function filterOptions(searchValue, options, _ref3) {\n var optionFilterProp = _ref3.optionFilterProp,\n filterOption = _ref3.filterOption;\n var filteredOptions = [];\n var filterFunc;\n\n if (filterOption === false) {\n return _toConsumableArray(options);\n }\n\n if (typeof filterOption === 'function') {\n filterFunc = filterOption;\n } else {\n filterFunc = getFilterFunction(optionFilterProp);\n }\n\n options.forEach(function (item) {\n // Group should check child options\n if ('options' in item) {\n // Check group first\n var matchGroup = filterFunc(searchValue, item);\n\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item.options.filter(function (subItem) {\n return filterFunc(searchValue, subItem);\n });\n\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, {\n options: subOptions\n }));\n }\n }\n\n return;\n }\n\n if (filterFunc(searchValue, injectPropsWithOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n}\nexport function getSeparatedContent(text, tokens) {\n if (!tokens || !tokens.length) {\n return null;\n }\n\n var match = false;\n\n function separate(str, _ref4) {\n var _ref5 = _toArray(_ref4),\n token = _ref5[0],\n restTokens = _ref5.slice(1);\n\n if (!token) {\n return [str];\n }\n\n var list = str.split(token);\n match = match || list.length > 1;\n return list.reduce(function (prevList, unitStr) {\n return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n }, []).filter(function (unit) {\n return unit;\n });\n }\n\n var list = separate(text, tokens);\n return match ? list : null;\n}\nexport function isValueDisabled(value, options) {\n var option = findValueOption([value], options)[0];\n return option.disabled;\n}\n/**\n * `tags` mode should fill un-list item into the option list\n */\n\nexport function fillOptionsWithMissingValue(options, value, optionLabelProp, labelInValue) {\n var values = toArray(value).slice().sort();\n\n var cloneOptions = _toConsumableArray(options); // Convert options value to set\n\n\n var optionValues = new Set();\n options.forEach(function (opt) {\n if (opt.options) {\n opt.options.forEach(function (subOpt) {\n optionValues.add(subOpt.value);\n });\n } else {\n optionValues.add(opt.value);\n }\n }); // Fill missing value\n\n values.forEach(function (item) {\n var val = labelInValue ? item.value : item;\n\n if (!optionValues.has(val)) {\n var _ref6;\n\n cloneOptions.push(labelInValue ? (_ref6 = {}, _defineProperty(_ref6, optionLabelProp, item.label), _defineProperty(_ref6, \"value\", val), _ref6) : {\n value: val\n });\n }\n });\n return cloneOptions;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function Item(props) {\n var prefixCls = props.prefixCls,\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 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 = item !== undefined ? renderItem(item) : children;\n var itemNode = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: _objectSpread({\n opacity: mergedHidden ? 0.2 : 1,\n height: mergedHidden ? 0 : undefined,\n overflowY: mergedHidden ? 'hidden' : undefined,\n order: responsive ? order : undefined,\n pointerEvents: mergedHidden ? 'none' : undefined\n }, style)\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}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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';\nvar RESPONSIVE = 'responsive';\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 itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n _props$renderRest = props.renderRest,\n renderRest = _props$renderRest === void 0 ? defaultRenderRest : _props$renderRest,\n suffix = props.suffix;\n var createUseState = useBatchFrameState();\n\n var _createUseState = createUseState(0),\n _createUseState2 = _slicedToArray(_createUseState, 2),\n containerWidth = _createUseState2[0],\n setContainerWidth = _createUseState2[1];\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(0),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\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 /**\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 items = data.slice(0, Math.min(data.length, containerWidth / itemWidth));\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(displayCount + 1);\n }\n\n return data.slice(mergedData.length);\n }, [data, mergedData, isResponsive, displayCount]); // ================================= 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 }\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 (containerWidth && 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 (i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= containerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex);\n setSuffixFixedStart(null);\n break;\n } else if (totalWidth + mergedRestWidth > containerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1);\n setSuffixFixedStart(totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n } else if (i === lastIndex) {\n // Reach the end\n updateDisplayCount(lastIndex);\n setSuffixFixedStart(totalWidth - suffixWidth);\n break;\n }\n }\n\n if (suffix && getItemWidth(0) + suffixWidth > containerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [containerWidth, 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 };\n var overflowNode = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style,\n ref: ref\n }, mergedData.map(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 <= displayCount\n }));\n }), showRest ? /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n // When not show, order should be the last\n order: displayRest ? displayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n }), typeof renderRest === 'function' ? renderRest(omittedItems) : renderRest) : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: displayCount,\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'; // 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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\n\nvar Input = function Input(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n inputElement = _ref.inputElement,\n disabled = _ref.disabled,\n tabIndex = _ref.tabIndex,\n autoFocus = _ref.autoFocus,\n autoComplete = _ref.autoComplete,\n editable = _ref.editable,\n accessibilityIndex = _ref.accessibilityIndex,\n value = _ref.value,\n maxLength = _ref.maxLength,\n _onKeyDown = _ref.onKeyDown,\n _onMouseDown = _ref.onMouseDown,\n _onChange = _ref.onChange,\n onPaste = _ref.onPaste,\n _onCompositionStart = _ref.onCompositionStart,\n _onCompositionEnd = _ref.onCompositionEnd,\n open = _ref.open,\n attrs = _ref.attrs;\n var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n var _inputNode = inputNode,\n originRef = _inputNode.ref,\n _inputNode$props = _inputNode.props,\n onOriginKeyDown = _inputNode$props.onKeyDown,\n onOriginChange = _inputNode$props.onChange,\n onOriginMouseDown = _inputNode$props.onMouseDown,\n onOriginCompositionStart = _inputNode$props.onCompositionStart,\n onOriginCompositionEnd = _inputNode$props.onCompositionEnd,\n style = _inputNode$props.style;\n inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread({\n id: id,\n ref: composeRef(ref, originRef),\n disabled: disabled,\n tabIndex: tabIndex,\n autoComplete: autoComplete || 'off',\n type: 'search',\n autoFocus: autoFocus,\n className: \"\".concat(prefixCls, \"-selection-search-input\"),\n style: _objectSpread(_objectSpread({}, style), {}, {\n opacity: editable ? null : 0\n }),\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-haspopup': 'listbox',\n 'aria-owns': \"\".concat(id, \"_list\"),\n 'aria-autocomplete': 'list',\n 'aria-controls': \"\".concat(id, \"_list\"),\n 'aria-activedescendant': \"\".concat(id, \"_list_\").concat(accessibilityIndex)\n }, attrs), {}, {\n value: editable ? value : '',\n maxLength: maxLength,\n readOnly: !editable,\n unselectable: !editable ? 'on' : null,\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(event);\n\n if (onOriginKeyDown) {\n onOriginKeyDown(event);\n }\n },\n onMouseDown: function onMouseDown(event) {\n _onMouseDown(event);\n\n if (onOriginMouseDown) {\n onOriginMouseDown(event);\n }\n },\n onChange: function onChange(event) {\n _onChange(event);\n\n if (onOriginChange) {\n onOriginChange(event);\n }\n },\n onCompositionStart: function onCompositionStart(event) {\n _onCompositionStart(event);\n\n if (onOriginCompositionStart) {\n onOriginCompositionStart(event);\n }\n },\n onCompositionEnd: function onCompositionEnd(event) {\n _onCompositionEnd(event);\n\n if (onOriginCompositionEnd) {\n onOriginCompositionEnd(event);\n }\n },\n onPaste: onPaste\n }));\n return inputNode;\n};\n\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nRefInput.displayName = 'Input';\nexport default RefInput;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from '../utils/commonUtil';\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\n\nexport default function useLayoutEffect(effect, deps) {\n // Never happen in test env\n if (isBrowserClient) {\n /* istanbul ignore next */\n React.useLayoutEffect(effect, deps);\n } else {\n React.useEffect(effect, deps);\n }\n}\n/* eslint-enable */","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from '../TransBtn';\nimport Input from './Input';\nimport useLayoutEffect from '../hooks/useLayoutEffect';\n\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n};\n\nvar SelectSelector = function SelectSelector(props) {\n var id = props.id,\n prefixCls = props.prefixCls,\n values = props.values,\n open = props.open,\n searchValue = props.searchValue,\n inputRef = props.inputRef,\n placeholder = props.placeholder,\n disabled = props.disabled,\n mode = props.mode,\n showSearch = props.showSearch,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n accessibilityIndex = props.accessibilityIndex,\n tabIndex = props.tabIndex,\n removeIcon = props.removeIcon,\n maxTagCount = props.maxTagCount,\n maxTagTextLength = props.maxTagTextLength,\n _props$maxTagPlacehol = props.maxTagPlaceholder,\n maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n return \"+ \".concat(omittedValues.length, \" ...\");\n } : _props$maxTagPlacehol,\n tagRender = props.tagRender,\n onToggleOpen = props.onToggleOpen,\n onSelect = props.onSelect,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var measureRef = React.useRef(null);\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n inputWidth = _useState2[0],\n setInputWidth = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n\n var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\"); // ===================== Search ======================\n\n var inputValue = open || mode === 'tags' ? searchValue : '';\n var inputEditable = mode === 'tags' || showSearch && (open || focused); // We measure width and set to the input immediately\n\n useLayoutEffect(function () {\n setInputWidth(measureRef.current.scrollWidth);\n }, [inputValue]); // ===================== Render ======================\n // >>> Render Selector Node. Includes Item & Rest\n\n function defaultRenderSelector(content, itemDisabled, closable, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled))\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-item-content\")\n }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n onMouseDown: onPreventMouseDown,\n onClick: onClose,\n customizeIcon: removeIcon\n }, \"\\xD7\"));\n }\n\n function customizeRenderSelector(value, content, itemDisabled, closable, onClose) {\n var onMouseDown = function onMouseDown(e) {\n onPreventMouseDown(e);\n onToggleOpen(true);\n };\n\n return /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: onMouseDown\n }, tagRender({\n label: content,\n value: value,\n disabled: itemDisabled,\n closable: closable,\n onClose: onClose\n }));\n }\n\n function renderItem(_ref) {\n var itemDisabled = _ref.disabled,\n label = _ref.label,\n value = _ref.value;\n var closable = !disabled && !itemDisabled;\n var displayLabel = label;\n\n if (typeof maxTagTextLength === 'number') {\n if (typeof label === 'string' || typeof label === 'number') {\n var strLabel = String(displayLabel);\n\n if (strLabel.length > maxTagTextLength) {\n displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n }\n }\n }\n\n var onClose = function onClose(event) {\n if (event) event.stopPropagation();\n onSelect(value, {\n selected: false\n });\n };\n\n return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(displayLabel, itemDisabled, closable, onClose);\n }\n\n function renderRest(omittedValues) {\n var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n return defaultRenderSelector(content, false);\n } // >>> Input Node\n\n\n var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(selectionPrefixCls, \"-search\"),\n style: {\n width: inputWidth\n },\n onFocus: function onFocus() {\n setFocused(true);\n },\n onBlur: function onBlur() {\n setFocused(false);\n }\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n open: open,\n prefixCls: prefixCls,\n id: id,\n inputElement: null,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n accessibilityIndex: accessibilityIndex,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: onInputChange,\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true)\n }), /*#__PURE__*/React.createElement(\"span\", {\n ref: measureRef,\n className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n \"aria-hidden\": true\n }, inputValue, \"\\xA0\")); // >>> Selections\n\n var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n data: values,\n renderItem: renderItem,\n renderRest: renderRest,\n suffix: inputNode,\n itemKey: \"key\",\n maxCount: maxTagCount\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n }, placeholder));\n};\n\nexport default SelectSelector;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from './Input';\n\nvar SingleSelector = function SingleSelector(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n id = props.id,\n inputRef = props.inputRef,\n disabled = props.disabled,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n accessibilityIndex = props.accessibilityIndex,\n mode = props.mode,\n open = props.open,\n values = props.values,\n placeholder = props.placeholder,\n tabIndex = props.tabIndex,\n showSearch = props.showSearch,\n searchValue = props.searchValue,\n activeValue = props.activeValue,\n maxLength = props.maxLength,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n inputChanged = _React$useState2[0],\n setInputChanged = _React$useState2[1];\n\n var combobox = mode === 'combobox';\n var inputEditable = combobox || showSearch;\n var item = values[0];\n var inputValue = searchValue || '';\n\n if (combobox && activeValue && !inputChanged) {\n inputValue = activeValue;\n }\n\n React.useEffect(function () {\n if (combobox) {\n setInputChanged(false);\n }\n }, [combobox, activeValue]); // Not show text when closed expect combobox mode\n\n var hasTextInput = mode !== 'combobox' && !open ? false : !!inputValue;\n var title = item && (typeof item.label === 'string' || typeof item.label === 'number') ? item.label.toString() : undefined;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n prefixCls: prefixCls,\n id: id,\n open: open,\n inputElement: inputElement,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n accessibilityIndex: accessibilityIndex,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: function onChange(e) {\n setInputChanged(true);\n onInputChange(e);\n },\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true),\n maxLength: combobox ? maxLength : undefined\n })), !combobox && item && !hasTextInput && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-item\"),\n title: title\n }, item.label), !item && !hasTextInput && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\")\n }, placeholder));\n};\n\nexport default SingleSelector;","import * as React from 'react';\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\n\nexport default function useLock() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n var lockRef = React.useRef(null);\n var timeoutRef = React.useRef(null); // Clean up\n\n React.useEffect(function () {\n return function () {\n window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n function doLock(locked) {\n if (locked || lockRef.current === null) {\n lockRef.current = locked;\n }\n\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(function () {\n lockRef.current = null;\n }, duration);\n }\n\n return [function () {\n return lockRef.current;\n }, doLock];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport MultipleSelector from './MultipleSelector';\nimport SingleSelector from './SingleSelector';\nimport useLock from '../hooks/useLock';\n\nvar Selector = function Selector(props, ref) {\n var inputRef = useRef(null);\n var compositionStatusRef = useRef(false);\n var prefixCls = props.prefixCls,\n multiple = props.multiple,\n open = props.open,\n mode = props.mode,\n showSearch = props.showSearch,\n tokenWithEnter = props.tokenWithEnter,\n onSearch = props.onSearch,\n onSearchSubmit = props.onSearchSubmit,\n onToggleOpen = props.onToggleOpen,\n onInputKeyDown = props.onInputKeyDown,\n domRef = props.domRef; // ======================= Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n inputRef.current.focus();\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n }); // ====================== Input ======================\n\n var _useLock = useLock(0),\n _useLock2 = _slicedToArray(_useLock, 2),\n getInputMouseDown = _useLock2[0],\n setInputMouseDown = _useLock2[1];\n\n var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n var which = event.which;\n\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n event.preventDefault();\n }\n\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n\n if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n // When menu isn't open, OptionList won't trigger a value change\n // So when enter is pressed, the tag's input value should be emitted here to let selector know\n onSearchSubmit(event.target.value);\n }\n\n if (![KeyCode.SHIFT, KeyCode.TAB, KeyCode.BACKSPACE, KeyCode.ESC].includes(which)) {\n onToggleOpen(true);\n }\n };\n /**\n * We can not use `findDOMNode` sine it will get warning,\n * have to use timer to check if is input element.\n */\n\n\n var onInternalInputMouseDown = function onInternalInputMouseDown() {\n setInputMouseDown(true);\n }; // When paste come, ignore next onChange\n\n\n var pastedTextRef = useRef(null);\n\n var triggerOnSearch = function triggerOnSearch(value) {\n if (onSearch(value, true, compositionStatusRef.current) !== false) {\n onToggleOpen(true);\n }\n };\n\n var onInputCompositionStart = function onInputCompositionStart() {\n compositionStatusRef.current = true;\n };\n\n var onInputCompositionEnd = function onInputCompositionEnd(e) {\n compositionStatusRef.current = false;\n triggerOnSearch(e.target.value);\n };\n\n var onInputChange = function onInputChange(event) {\n var value = event.target.value; // Pasted text should replace back to origin content\n\n if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n // CRLF will be treated as a single space for input element\n var replacedText = pastedTextRef.current.replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n value = value.replace(replacedText, pastedTextRef.current);\n }\n\n pastedTextRef.current = null;\n triggerOnSearch(value);\n };\n\n var onInputPaste = function onInputPaste(e) {\n var clipboardData = e.clipboardData;\n var value = clipboardData.getData('text');\n pastedTextRef.current = value;\n };\n\n var onClick = function onClick(_ref) {\n var target = _ref.target;\n\n if (target !== inputRef.current) {\n // Should focus input if click the selector\n var isIE = document.body.style.msTouchAction !== undefined;\n\n if (isIE) {\n setTimeout(function () {\n inputRef.current.focus();\n });\n } else {\n inputRef.current.focus();\n }\n }\n };\n\n var onMouseDown = function onMouseDown(event) {\n var inputMouseDown = getInputMouseDown();\n\n if (event.target !== inputRef.current && !inputMouseDown) {\n event.preventDefault();\n }\n\n if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n if (open) {\n onSearch('', true, false);\n }\n\n onToggleOpen();\n }\n }; // ================= Inner Selector ==================\n\n\n var sharedProps = {\n inputRef: inputRef,\n onInputKeyDown: onInternalInputKeyDown,\n onInputMouseDown: onInternalInputMouseDown,\n onInputChange: onInputChange,\n onInputPaste: onInputPaste,\n onInputCompositionStart: onInputCompositionStart,\n onInputCompositionEnd: onInputCompositionEnd\n };\n var selectNode = multiple ? /*#__PURE__*/React.createElement(MultipleSelector, Object.assign({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, Object.assign({}, props, sharedProps));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domRef,\n className: \"\".concat(prefixCls, \"-selector\"),\n onClick: onClick,\n onMouseDown: onMouseDown\n }, selectNode);\n};\n\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nForwardSelector.displayName = 'Selector';\nexport default ForwardSelector;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\n\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n var adjustX = typeof dropdownMatchSelectWidth !== 'number' ? 0 : 1;\n return {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n }\n };\n};\n\nvar SelectTrigger = function SelectTrigger(props, ref) {\n var prefixCls = props.prefixCls,\n disabled = props.disabled,\n visible = props.visible,\n children = props.children,\n popupElement = props.popupElement,\n containerWidth = props.containerWidth,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n empty = props.empty,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"containerWidth\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\"]);\n\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var popupNode = popupElement;\n\n if (dropdownRender) {\n popupNode = dropdownRender(popupElement);\n }\n\n var builtInPlacements = React.useMemo(function () {\n return getBuiltInPlacements(dropdownMatchSelectWidth);\n }, [dropdownMatchSelectWidth]); // ===================== Motion ======================\n\n var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName; // ======================= Ref =======================\n\n var popupRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n getPopupElement: function getPopupElement() {\n return popupRef.current;\n }\n };\n });\n\n var popupStyle = _objectSpread({\n minWidth: containerWidth\n }, dropdownStyle);\n\n if (typeof dropdownMatchSelectWidth === 'number') {\n popupStyle.width = dropdownMatchSelectWidth;\n } else if (dropdownMatchSelectWidth) {\n popupStyle.width = containerWidth;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, Object.assign({}, restProps, {\n showAction: [],\n hideAction: [],\n popupPlacement: direction === 'rtl' ? 'bottomRight' : 'bottomLeft',\n builtinPlacements: builtInPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: mergedTransitionName,\n popup: /*#__PURE__*/React.createElement(\"div\", {\n ref: popupRef\n }, popupNode),\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n popupStyle: popupStyle,\n getTriggerDOMNode: getTriggerDOMNode\n }), children);\n};\n\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nRefSelectTrigger.displayName = 'SelectTrigger';\nexport default RefSelectTrigger;","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 _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n */\n\nimport * as React from 'react';\nimport { useState, useRef, useEffect, useMemo } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Selector from './Selector';\nimport SelectTrigger from './SelectTrigger';\nimport { INTERNAL_PROPS_MARK } from './interface/generator';\nimport { toInnerValue, toOuterValues, removeLastEnabledValue, getUUID } from './utils/commonUtil';\nimport TransBtn from './TransBtn';\nimport useLock from './hooks/useLock';\nimport useDelayReset from './hooks/useDelayReset';\nimport useLayoutEffect from './hooks/useLayoutEffect';\nimport { getSeparatedContent } from './utils/valueUtil';\nimport useSelectTriggerControl from './hooks/useSelectTriggerControl';\nimport useCacheDisplayValue from './hooks/useCacheDisplayValue';\nimport useCacheOptions from './hooks/useCacheOptions';\nvar DEFAULT_OMIT_PROPS = ['removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'tabIndex'];\n/**\n * This function is in internal usage.\n * Do not use it in your prod env since we may refactor this.\n */\n\nexport default function generateSelector(config) {\n var defaultPrefixCls = config.prefixCls,\n OptionList = config.components.optionList,\n convertChildrenToData = config.convertChildrenToData,\n flattenOptions = config.flattenOptions,\n getLabeledValue = config.getLabeledValue,\n filterOptions = config.filterOptions,\n isValueDisabled = config.isValueDisabled,\n findValueOption = config.findValueOption,\n warningProps = config.warningProps,\n fillOptionsWithMissingValue = config.fillOptionsWithMissingValue,\n omitDOMProps = config.omitDOMProps; // Use raw define since `React.FC` not support generic\n\n function Select(props, ref) {\n var _classNames2;\n\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? defaultPrefixCls : _props$prefixCls,\n className = props.className,\n id = props.id,\n open = props.open,\n defaultOpen = props.defaultOpen,\n options = props.options,\n children = props.children,\n mode = props.mode,\n value = props.value,\n defaultValue = props.defaultValue,\n labelInValue = props.labelInValue,\n showSearch = props.showSearch,\n inputValue = props.inputValue,\n searchValue = props.searchValue,\n filterOption = props.filterOption,\n filterSort = props.filterSort,\n _props$optionFilterPr = props.optionFilterProp,\n optionFilterProp = _props$optionFilterPr === void 0 ? 'value' : _props$optionFilterPr,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n onSearch = props.onSearch,\n allowClear = props.allowClear,\n clearIcon = props.clearIcon,\n showArrow = props.showArrow,\n inputIcon = props.inputIcon,\n menuItemSelectedIcon = props.menuItemSelectedIcon,\n disabled = props.disabled,\n loading = props.loading,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n optionLabelProp = props.optionLabelProp,\n backfill = props.backfill,\n tabIndex = props.tabIndex,\n getInputElement = props.getInputElement,\n getPopupContainer = props.getPopupContainer,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n animation = props.animation,\n transitionName = props.transitionName,\n virtual = props.virtual,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n _props$showAction = props.showAction,\n showAction = _props$showAction === void 0 ? [] : _props$showAction,\n direction = props.direction,\n tokenSeparators = props.tokenSeparators,\n tagRender = props.tagRender,\n onPopupScroll = props.onPopupScroll,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyUp = props.onKeyUp,\n onKeyDown = props.onKeyDown,\n onMouseDown = props.onMouseDown,\n onChange = props.onChange,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n onClear = props.onClear,\n _props$internalProps = props.internalProps,\n internalProps = _props$internalProps === void 0 ? {} : _props$internalProps,\n restProps = _objectWithoutProperties(props, [\"prefixCls\", \"className\", \"id\", \"open\", \"defaultOpen\", \"options\", \"children\", \"mode\", \"value\", \"defaultValue\", \"labelInValue\", \"showSearch\", \"inputValue\", \"searchValue\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"autoClearSearchValue\", \"onSearch\", \"allowClear\", \"clearIcon\", \"showArrow\", \"inputIcon\", \"menuItemSelectedIcon\", \"disabled\", \"loading\", \"defaultActiveFirstOption\", \"notFoundContent\", \"optionLabelProp\", \"backfill\", \"tabIndex\", \"getInputElement\", \"getPopupContainer\", \"listHeight\", \"listItemHeight\", \"animation\", \"transitionName\", \"virtual\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"showAction\", \"direction\", \"tokenSeparators\", \"tagRender\", \"onPopupScroll\", \"onDropdownVisibleChange\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\", \"onChange\", \"onSelect\", \"onDeselect\", \"onClear\", \"internalProps\"]);\n\n var useInternalProps = internalProps.mark === INTERNAL_PROPS_MARK;\n var domProps = omitDOMProps ? omitDOMProps(restProps) : restProps;\n DEFAULT_OMIT_PROPS.forEach(function (prop) {\n delete domProps[prop];\n });\n var containerRef = useRef(null);\n var triggerRef = useRef(null);\n var selectorRef = useRef(null);\n var listRef = useRef(null);\n var tokenWithEnter = useMemo(function () {\n return (tokenSeparators || []).some(function (tokenSeparator) {\n return ['\\n', '\\r\\n'].includes(tokenSeparator);\n });\n }, [tokenSeparators]);\n /** Used for component focused management */\n\n var _useDelayReset = useDelayReset(),\n _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n mockFocused = _useDelayReset2[0],\n setMockFocused = _useDelayReset2[1],\n cancelSetMockFocused = _useDelayReset2[2]; // Inner id for accessibility usage. Only work in client side\n\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n innerId = _useState2[0],\n setInnerId = _useState2[1];\n\n useEffect(function () {\n setInnerId(\"rc_select_\".concat(getUUID()));\n }, []);\n var mergedId = id || innerId; // optionLabelProp\n\n var mergedOptionLabelProp = optionLabelProp;\n\n if (mergedOptionLabelProp === undefined) {\n mergedOptionLabelProp = options ? 'label' : 'children';\n } // labelInValue\n\n\n var mergedLabelInValue = mode === 'combobox' ? false : labelInValue;\n var isMultiple = mode === 'tags' || mode === 'multiple';\n var mergedShowSearch = showSearch !== undefined ? showSearch : isMultiple || mode === 'combobox'; // ============================== Ref ===============================\n\n var selectorDomRef = useRef(null);\n React.useImperativeHandle(ref, function () {\n var _listRef$current;\n\n return {\n focus: selectorRef.current.focus,\n blur: selectorRef.current.blur,\n scrollTo: (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo\n };\n }); // ============================= Value ==============================\n\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n /** Unique raw values */\n\n\n var _useMemo = useMemo(function () {\n return toInnerValue(mergedValue, {\n labelInValue: mergedLabelInValue,\n combobox: mode === 'combobox'\n });\n }, [mergedValue, mergedLabelInValue]),\n _useMemo2 = _slicedToArray(_useMemo, 2),\n mergedRawValue = _useMemo2[0],\n mergedValueMap = _useMemo2[1];\n /** We cache a set of raw values to speed up check */\n\n\n var rawValues = useMemo(function () {\n return new Set(mergedRawValue);\n }, [mergedRawValue]); // ============================= Option =============================\n // Set by option list active, it will merge into search input when mode is `combobox`\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n activeValue = _useState4[0],\n setActiveValue = _useState4[1];\n\n var _useState5 = useState(''),\n _useState6 = _slicedToArray(_useState5, 2),\n innerSearchValue = _useState6[0],\n setInnerSearchValue = _useState6[1];\n\n var mergedSearchValue = innerSearchValue;\n\n if (mode === 'combobox' && mergedValue !== undefined) {\n mergedSearchValue = mergedValue;\n } else if (searchValue !== undefined) {\n mergedSearchValue = searchValue;\n } else if (inputValue) {\n mergedSearchValue = inputValue;\n }\n\n var mergedOptions = useMemo(function () {\n var newOptions = options;\n\n if (newOptions === undefined) {\n newOptions = convertChildrenToData(children);\n }\n /**\n * `tags` should fill un-list item.\n * This is not cool here since TreeSelect do not need this\n */\n\n\n if (mode === 'tags' && fillOptionsWithMissingValue) {\n newOptions = fillOptionsWithMissingValue(newOptions, mergedValue, mergedOptionLabelProp, labelInValue);\n }\n\n return newOptions || [];\n }, [options, children, mode, mergedValue]);\n var mergedFlattenOptions = useMemo(function () {\n return flattenOptions(mergedOptions, props);\n }, [mergedOptions]);\n var getValueOption = useCacheOptions(mergedFlattenOptions); // Display options for OptionList\n\n var displayOptions = useMemo(function () {\n if (!mergedSearchValue || !mergedShowSearch) {\n return _toConsumableArray(mergedOptions);\n }\n\n var filteredOptions = filterOptions(mergedSearchValue, mergedOptions, {\n optionFilterProp: optionFilterProp,\n filterOption: mode === 'combobox' && filterOption === undefined ? function () {\n return true;\n } : filterOption\n });\n\n if (mode === 'tags' && filteredOptions.every(function (opt) {\n return opt[optionFilterProp] !== mergedSearchValue;\n })) {\n filteredOptions.unshift({\n value: mergedSearchValue,\n label: mergedSearchValue,\n key: '__RC_SELECT_TAG_PLACEHOLDER__'\n });\n }\n\n if (filterSort && Array.isArray(filteredOptions)) {\n return _toConsumableArray(filteredOptions).sort(filterSort);\n }\n\n return filteredOptions;\n }, [mergedOptions, mergedSearchValue, mode, mergedShowSearch, filterSort]);\n var displayFlattenOptions = useMemo(function () {\n return flattenOptions(displayOptions, props);\n }, [displayOptions]);\n useEffect(function () {\n if (listRef.current && listRef.current.scrollTo) {\n listRef.current.scrollTo(0);\n }\n }, [mergedSearchValue]); // ============================ Selector ============================\n\n var displayValues = useMemo(function () {\n var tmpValues = mergedRawValue.map(function (val) {\n var valueOptions = getValueOption([val]);\n var displayValue = getLabeledValue(val, {\n options: valueOptions,\n prevValueMap: mergedValueMap,\n labelInValue: mergedLabelInValue,\n optionLabelProp: mergedOptionLabelProp\n });\n return _objectSpread(_objectSpread({}, displayValue), {}, {\n disabled: isValueDisabled(val, valueOptions)\n });\n });\n\n if (!mode && tmpValues.length === 1 && tmpValues[0].value === null && tmpValues[0].label === null) {\n return [];\n }\n\n return tmpValues;\n }, [mergedValue, mergedOptions, mode]); // Polyfill with cache label\n\n displayValues = useCacheDisplayValue(displayValues);\n\n var triggerSelect = function triggerSelect(newValue, isSelect, source) {\n var newValueOption = getValueOption([newValue]);\n var outOption = findValueOption([newValue], newValueOption)[0];\n\n if (!internalProps.skipTriggerSelect) {\n // Skip trigger `onSelect` or `onDeselect` if configured\n var selectValue = mergedLabelInValue ? getLabeledValue(newValue, {\n options: newValueOption,\n prevValueMap: mergedValueMap,\n labelInValue: mergedLabelInValue,\n optionLabelProp: mergedOptionLabelProp\n }) : newValue;\n\n if (isSelect && onSelect) {\n onSelect(selectValue, outOption);\n } else if (!isSelect && onDeselect) {\n onDeselect(selectValue, outOption);\n }\n } // Trigger internal event\n\n\n if (useInternalProps) {\n if (isSelect && internalProps.onRawSelect) {\n internalProps.onRawSelect(newValue, outOption, source);\n } else if (!isSelect && internalProps.onRawDeselect) {\n internalProps.onRawDeselect(newValue, outOption, source);\n }\n }\n }; // We need cache options here in case user update the option list\n\n\n var _useState7 = useState([]),\n _useState8 = _slicedToArray(_useState7, 2),\n prevValueOptions = _useState8[0],\n setPrevValueOptions = _useState8[1];\n\n var triggerChange = function triggerChange(newRawValues) {\n if (useInternalProps && internalProps.skipTriggerChange) {\n return;\n }\n\n var newRawValuesOptions = getValueOption(newRawValues);\n var outValues = toOuterValues(Array.from(newRawValues), {\n labelInValue: mergedLabelInValue,\n options: newRawValuesOptions,\n getLabeledValue: getLabeledValue,\n prevValueMap: mergedValueMap,\n optionLabelProp: mergedOptionLabelProp\n });\n var outValue = isMultiple ? outValues : outValues[0]; // Skip trigger if prev & current value is both empty\n\n if (onChange && (mergedRawValue.length !== 0 || outValues.length !== 0)) {\n var outOptions = findValueOption(newRawValues, newRawValuesOptions, {\n prevValueOptions: prevValueOptions\n }); // We will cache option in case it removed by ajax\n\n setPrevValueOptions(outOptions.map(function (option, index) {\n var clone = _objectSpread({}, option);\n\n Object.defineProperty(clone, '_INTERNAL_OPTION_VALUE_', {\n get: function get() {\n return newRawValues[index];\n }\n });\n return clone;\n }));\n onChange(outValue, isMultiple ? outOptions : outOptions[0]);\n }\n\n setMergedValue(outValue);\n };\n\n var onInternalSelect = function onInternalSelect(newValue, _ref) {\n var selected = _ref.selected,\n source = _ref.source;\n\n if (disabled) {\n return;\n }\n\n var newRawValue;\n\n if (isMultiple) {\n newRawValue = new Set(mergedRawValue);\n\n if (selected) {\n newRawValue.add(newValue);\n } else {\n newRawValue.delete(newValue);\n }\n } else {\n newRawValue = new Set();\n newRawValue.add(newValue);\n } // Multiple always trigger change and single should change if value changed\n\n\n if (isMultiple || !isMultiple && Array.from(mergedRawValue)[0] !== newValue) {\n triggerChange(Array.from(newRawValue));\n } // Trigger `onSelect`. Single mode always trigger select\n\n\n triggerSelect(newValue, !isMultiple || selected, source); // Clean search value if single or configured\n\n if (mode === 'combobox') {\n setInnerSearchValue(String(newValue));\n setActiveValue('');\n } else if (!isMultiple || autoClearSearchValue) {\n setInnerSearchValue('');\n setActiveValue('');\n }\n };\n\n var onInternalOptionSelect = function onInternalOptionSelect(newValue, info) {\n onInternalSelect(newValue, _objectSpread(_objectSpread({}, info), {}, {\n source: 'option'\n }));\n };\n\n var onInternalSelectionSelect = function onInternalSelectionSelect(newValue, info) {\n onInternalSelect(newValue, _objectSpread(_objectSpread({}, info), {}, {\n source: 'selection'\n }));\n }; // ============================= Input ==============================\n // Only works in `combobox`\n\n\n var customizeInputElement = mode === 'combobox' && getInputElement && getInputElement() || null; // ============================== Open ==============================\n\n var _useMergedState3 = useMergedState(undefined, {\n defaultValue: defaultOpen,\n value: open\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n innerOpen = _useMergedState4[0],\n setInnerOpen = _useMergedState4[1];\n\n var mergedOpen = innerOpen; // Not trigger `open` in `combobox` when `notFoundContent` is empty\n\n var emptyListContent = !notFoundContent && !displayOptions.length;\n\n if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n mergedOpen = false;\n }\n\n var triggerOpen = emptyListContent ? false : mergedOpen;\n\n var onToggleOpen = function onToggleOpen(newOpen) {\n var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n\n if (innerOpen !== nextOpen && !disabled) {\n setInnerOpen(nextOpen);\n\n if (onDropdownVisibleChange) {\n onDropdownVisibleChange(nextOpen);\n }\n }\n };\n\n useSelectTriggerControl([containerRef.current, triggerRef.current && triggerRef.current.getPopupElement()], triggerOpen, onToggleOpen); // ============================= Search =============================\n\n var triggerSearch = function triggerSearch(searchText, fromTyping, isCompositing) {\n var ret = true;\n var newSearchText = searchText;\n setActiveValue(null); // Check if match the `tokenSeparators`\n\n var patchLabels = isCompositing ? null : getSeparatedContent(searchText, tokenSeparators);\n var patchRawValues = patchLabels;\n\n if (mode === 'combobox') {\n // Only typing will trigger onChange\n if (fromTyping) {\n triggerChange([newSearchText]);\n }\n } else if (patchLabels) {\n newSearchText = '';\n\n if (mode !== 'tags') {\n patchRawValues = patchLabels.map(function (label) {\n var item = mergedFlattenOptions.find(function (_ref2) {\n var data = _ref2.data;\n return data[mergedOptionLabelProp] === label;\n });\n return item ? item.data.value : null;\n }).filter(function (val) {\n return val !== null;\n });\n }\n\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(mergedRawValue), _toConsumableArray(patchRawValues))));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true, 'input');\n }); // Should close when paste finish\n\n onToggleOpen(false); // Tell Selector that break next actions\n\n ret = false;\n }\n\n setInnerSearchValue(newSearchText);\n\n if (onSearch && mergedSearchValue !== newSearchText) {\n onSearch(newSearchText);\n }\n\n return ret;\n }; // Only triggered when menu is closed & mode is tags\n // If menu is open, OptionList will take charge\n // If mode isn't tags, press enter is not meaningful when you can't see any option\n\n\n var onSearchSubmit = function onSearchSubmit(searchText) {\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(mergedRawValue), [searchText])));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true, 'input');\n });\n setInnerSearchValue('');\n }; // Close dropdown when disabled change\n\n\n useEffect(function () {\n if (innerOpen && !!disabled) {\n setInnerOpen(false);\n }\n }, [disabled]); // Close will clean up single mode search text\n\n useEffect(function () {\n if (!mergedOpen && !isMultiple && mode !== 'combobox') {\n triggerSearch('', false, false);\n }\n }, [mergedOpen]); // ============================ Keyboard ============================\n\n /**\n * We record input value here to check if can press to clean up by backspace\n * - null: Key is not down, this is reset by key up\n * - true: Search text is empty when first time backspace down\n * - false: Search text is not empty when first time backspace down\n */\n\n var _useLock = useLock(),\n _useLock2 = _slicedToArray(_useLock, 2),\n getClearLock = _useLock2[0],\n setClearLock = _useLock2[1]; // KeyDown\n\n\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var clearLock = getClearLock();\n var which = event.which; // We only manage open state here, close logic should handle by list component\n\n if (!mergedOpen && which === KeyCode.ENTER) {\n onToggleOpen(true);\n }\n\n setClearLock(!!mergedSearchValue); // Remove value by `backspace`\n\n if (which === KeyCode.BACKSPACE && !clearLock && isMultiple && !mergedSearchValue && mergedRawValue.length) {\n var removeInfo = removeLastEnabledValue(displayValues, mergedRawValue);\n\n if (removeInfo.removedValue !== null) {\n triggerChange(removeInfo.values);\n triggerSelect(removeInfo.removedValue, false, 'input');\n }\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n if (mergedOpen && listRef.current) {\n var _listRef$current2;\n\n (_listRef$current2 = listRef.current).onKeyDown.apply(_listRef$current2, [event].concat(rest));\n }\n\n if (onKeyDown) {\n onKeyDown.apply(void 0, [event].concat(rest));\n }\n }; // KeyUp\n\n\n var onInternalKeyUp = function onInternalKeyUp(event) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n\n if (mergedOpen && listRef.current) {\n var _listRef$current3;\n\n (_listRef$current3 = listRef.current).onKeyUp.apply(_listRef$current3, [event].concat(rest));\n }\n\n if (onKeyUp) {\n onKeyUp.apply(void 0, [event].concat(rest));\n }\n }; // ========================== Focus / Blur ==========================\n\n /** Record real focus status */\n\n\n var focusRef = useRef(false);\n\n var onContainerFocus = function onContainerFocus() {\n setMockFocused(true);\n\n if (!disabled) {\n if (onFocus && !focusRef.current) {\n onFocus.apply(void 0, arguments);\n } // `showAction` should handle `focus` if set\n\n\n if (showAction.includes('focus')) {\n onToggleOpen(true);\n }\n }\n\n focusRef.current = true;\n };\n\n var onContainerBlur = function onContainerBlur() {\n setMockFocused(false, function () {\n focusRef.current = false;\n onToggleOpen(false);\n });\n\n if (disabled) {\n return;\n }\n\n if (mergedSearchValue) {\n // `tags` mode should move `searchValue` into values\n if (mode === 'tags') {\n triggerSearch('', false, false);\n triggerChange(Array.from(new Set([].concat(_toConsumableArray(mergedRawValue), [mergedSearchValue]))));\n } else if (mode === 'multiple') {\n // `multiple` mode only clean the search value but not trigger event\n setInnerSearchValue('');\n }\n }\n\n if (onBlur) {\n onBlur.apply(void 0, arguments);\n }\n };\n\n var activeTimeoutIds = [];\n useEffect(function () {\n return function () {\n activeTimeoutIds.forEach(function (timeoutId) {\n return clearTimeout(timeoutId);\n });\n activeTimeoutIds.splice(0, activeTimeoutIds.length);\n };\n }, []);\n\n var onInternalMouseDown = function onInternalMouseDown(event) {\n var target = event.target;\n var popupElement = triggerRef.current && triggerRef.current.getPopupElement(); // We should give focus back to selector if clicked item is not focusable\n\n if (popupElement && popupElement.contains(target)) {\n var timeoutId = setTimeout(function () {\n var index = activeTimeoutIds.indexOf(timeoutId);\n\n if (index !== -1) {\n activeTimeoutIds.splice(index, 1);\n }\n\n cancelSetMockFocused();\n\n if (!popupElement.contains(document.activeElement)) {\n selectorRef.current.focus();\n }\n });\n activeTimeoutIds.push(timeoutId);\n }\n\n if (onMouseDown) {\n for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n restArgs[_key3 - 1] = arguments[_key3];\n }\n\n onMouseDown.apply(void 0, [event].concat(restArgs));\n }\n }; // ========================= Accessibility ==========================\n\n\n var _useState9 = useState(0),\n _useState10 = _slicedToArray(_useState9, 2),\n accessibilityIndex = _useState10[0],\n setAccessibilityIndex = _useState10[1];\n\n var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n\n var onActiveValue = function onActiveValue(active, index) {\n var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref3$source = _ref3.source,\n source = _ref3$source === void 0 ? 'keyboard' : _ref3$source;\n\n setAccessibilityIndex(index);\n\n if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n setActiveValue(String(active));\n }\n }; // ============================= Popup ==============================\n\n\n var _useState11 = useState(null),\n _useState12 = _slicedToArray(_useState11, 2),\n containerWidth = _useState12[0],\n setContainerWidth = _useState12[1];\n\n var _useState13 = useState({}),\n _useState14 = _slicedToArray(_useState13, 2),\n forceUpdate = _useState14[1]; // We need force update here since popup dom is render async\n\n\n function onPopupMouseEnter() {\n forceUpdate({});\n }\n\n useLayoutEffect(function () {\n if (triggerOpen) {\n var newWidth = Math.ceil(containerRef.current.offsetWidth);\n\n if (containerWidth !== newWidth) {\n setContainerWidth(newWidth);\n }\n }\n }, [triggerOpen]);\n var popupNode = /*#__PURE__*/React.createElement(OptionList, {\n ref: listRef,\n prefixCls: prefixCls,\n id: mergedId,\n open: mergedOpen,\n childrenAsData: !options,\n options: displayOptions,\n flattenOptions: displayFlattenOptions,\n multiple: isMultiple,\n values: rawValues,\n height: listHeight,\n itemHeight: listItemHeight,\n onSelect: onInternalOptionSelect,\n onToggleOpen: onToggleOpen,\n onActiveValue: onActiveValue,\n defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n notFoundContent: notFoundContent,\n onScroll: onPopupScroll,\n searchValue: mergedSearchValue,\n menuItemSelectedIcon: menuItemSelectedIcon,\n virtual: virtual !== false && dropdownMatchSelectWidth !== false,\n onMouseEnter: onPopupMouseEnter\n }); // ============================= Clear ==============================\n\n var clearNode;\n\n var onClearMouseDown = function onClearMouseDown() {\n // Trigger internal `onClear` event\n if (useInternalProps && internalProps.onClear) {\n internalProps.onClear();\n }\n\n if (onClear) {\n onClear();\n }\n\n triggerChange([]);\n triggerSearch('', false, false);\n };\n\n if (!disabled && allowClear && (mergedRawValue.length || mergedSearchValue)) {\n clearNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(prefixCls, \"-clear\"),\n onMouseDown: onClearMouseDown,\n customizeIcon: clearIcon\n }, \"\\xD7\");\n } // ============================= Arrow ==============================\n\n\n var mergedShowArrow = showArrow !== undefined ? showArrow : loading || !isMultiple && mode !== 'combobox';\n var arrowNode;\n\n if (mergedShowArrow) {\n arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n customizeIcon: inputIcon,\n customizeIconProps: {\n loading: loading,\n searchValue: mergedSearchValue,\n open: mergedOpen,\n focused: mockFocused,\n showSearch: mergedShowSearch\n }\n });\n } // ============================ Warning =============================\n\n\n if (process.env.NODE_ENV !== 'production' && warningProps) {\n warningProps(props);\n } // ============================= Render =============================\n\n\n var mergedClassName = classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mockFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-multiple\"), isMultiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-single\"), !isMultiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-arrow\"), mergedShowArrow), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-open\"), mergedOpen), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch), _classNames2));\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: mergedClassName\n }, domProps, {\n ref: containerRef,\n onMouseDown: onInternalMouseDown,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onFocus: onContainerFocus,\n onBlur: onContainerBlur\n }), mockFocused && !mergedOpen && /*#__PURE__*/React.createElement(\"span\", {\n style: {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0\n },\n \"aria-live\": \"polite\"\n }, \"\".concat(mergedRawValue.join(', '))), /*#__PURE__*/React.createElement(SelectTrigger, {\n ref: triggerRef,\n disabled: disabled,\n prefixCls: prefixCls,\n visible: triggerOpen,\n popupElement: popupNode,\n containerWidth: containerWidth,\n animation: animation,\n transitionName: transitionName,\n dropdownStyle: dropdownStyle,\n dropdownClassName: dropdownClassName,\n direction: direction,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownRender: dropdownRender,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n empty: !mergedOptions.length,\n getTriggerDOMNode: function getTriggerDOMNode() {\n return selectorDomRef.current;\n }\n }, /*#__PURE__*/React.createElement(Selector, Object.assign({}, props, {\n domRef: selectorDomRef,\n prefixCls: prefixCls,\n inputElement: customizeInputElement,\n ref: selectorRef,\n id: mergedId,\n showSearch: mergedShowSearch,\n mode: mode,\n accessibilityIndex: accessibilityIndex,\n multiple: isMultiple,\n tagRender: tagRender,\n values: displayValues,\n open: mergedOpen,\n onToggleOpen: onToggleOpen,\n searchValue: mergedSearchValue,\n activeValue: activeValue,\n onSearch: triggerSearch,\n onSearchSubmit: onSearchSubmit,\n onSelect: onInternalSelectionSelect,\n tokenWithEnter: tokenWithEnter\n }))), arrowNode, clearNode);\n }\n\n var RefSelect = /*#__PURE__*/React.forwardRef(Select);\n return RefSelect;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport warning, { noteOnce } from \"rc-util/es/warning\";\nimport toNodeArray from \"rc-util/es/Children/toArray\";\nimport { convertChildrenToData } from './legacyUtil';\nimport { toArray } from './commonUtil';\n\nfunction warningProps(props) {\n var mode = props.mode,\n options = props.options,\n children = props.children,\n backfill = props.backfill,\n allowClear = props.allowClear,\n placeholder = props.placeholder,\n getInputElement = props.getInputElement,\n showSearch = props.showSearch,\n onSearch = props.onSearch,\n defaultOpen = props.defaultOpen,\n autoFocus = props.autoFocus,\n labelInValue = props.labelInValue,\n value = props.value,\n inputValue = props.inputValue,\n optionLabelProp = props.optionLabelProp;\n var multiple = mode === 'multiple' || mode === 'tags';\n var mergedShowSearch = showSearch !== undefined ? showSearch : multiple || mode === 'combobox';\n var mergedOptions = options || convertChildrenToData(children); // `tags` should not set option as disabled\n\n warning(mode !== 'tags' || mergedOptions.every(function (opt) {\n return !opt.disabled;\n }), 'Please avoid setting option to disabled in tags mode since user can always type text as tag.'); // `combobox` & `tags` should option be `string` type\n\n if (mode === 'tags' || mode === 'combobox') {\n var hasNumberValue = mergedOptions.some(function (item) {\n if (item.options) {\n return item.options.some(function (opt) {\n return typeof ('value' in opt ? opt.value : opt.key) === 'number';\n });\n }\n\n return typeof ('value' in item ? item.value : item.key) === 'number';\n });\n warning(!hasNumberValue, '`value` of Option should not use number type when `mode` is `tags` or `combobox`.');\n } // `combobox` should not use `optionLabelProp`\n\n\n warning(mode !== 'combobox' || !optionLabelProp, '`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly.'); // Only `combobox` support `backfill`\n\n warning(mode === 'combobox' || !backfill, '`backfill` only works with `combobox` mode.'); // Only `combobox` support `getInputElement`\n\n warning(mode === 'combobox' || !getInputElement, '`getInputElement` only work with `combobox` mode.'); // Customize `getInputElement` should not use `allowClear` & `placeholder`\n\n noteOnce(mode !== 'combobox' || !getInputElement || !allowClear || !placeholder, 'Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`.'); // `onSearch` should use in `combobox` or `showSearch`\n\n if (onSearch && !mergedShowSearch && mode !== 'combobox' && mode !== 'tags') {\n warning(false, '`onSearch` should work with `showSearch` instead of use alone.');\n }\n\n noteOnce(!defaultOpen || autoFocus, '`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed.');\n\n if (value !== undefined && value !== null) {\n var values = toArray(value);\n warning(!labelInValue || values.every(function (val) {\n return _typeof(val) === 'object' && ('key' in val || 'value' in val);\n }), '`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`');\n warning(!multiple || Array.isArray(value), '`value` should be array when `mode` is `multiple` or `tags`');\n } // Syntactic sugar should use correct children type\n\n\n if (children) {\n var invalidateChildType = null;\n toNodeArray(children).some(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return false;\n }\n\n var type = node.type;\n\n if (type.isSelectOption) {\n return false;\n }\n\n if (type.isSelectOptGroup) {\n var allChildrenValid = toNodeArray(node.props.children).every(function (subNode) {\n if (! /*#__PURE__*/React.isValidElement(subNode) || !node.type || subNode.type.isSelectOption) {\n return true;\n }\n\n invalidateChildType = subNode.type;\n return false;\n });\n\n if (allChildrenValid) {\n return false;\n }\n\n return true;\n }\n\n invalidateChildType = type;\n return true;\n });\n\n if (invalidateChildType) {\n warning(false, \"`children` should be `Select.Option` or `Select.OptGroup` instead of `\".concat(invalidateChildType.displayName || invalidateChildType.name || invalidateChildType, \"`.\"));\n }\n\n warning(inputValue === undefined, '`inputValue` is deprecated, please use `searchValue` instead.');\n }\n}\n\nexport default warningProps;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport * as React from 'react';\nimport SelectOptionList from './OptionList';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nimport { convertChildrenToData as convertSelectChildrenToData } from './utils/legacyUtil';\nimport { getLabeledValue as getSelectLabeledValue, filterOptions as selectDefaultFilterOptions, isValueDisabled as isSelectValueDisabled, findValueOption as findSelectValueOption, flattenOptions, fillOptionsWithMissingValue } from './utils/valueUtil';\nimport generateSelector from './generate';\nimport warningProps from './utils/warningPropsUtil';\nvar RefSelect = generateSelector({\n prefixCls: 'rc-select',\n components: {\n optionList: SelectOptionList\n },\n convertChildrenToData: convertSelectChildrenToData,\n flattenOptions: flattenOptions,\n getLabeledValue: getSelectLabeledValue,\n filterOptions: selectDefaultFilterOptions,\n isValueDisabled: isSelectValueDisabled,\n findValueOption: findSelectValueOption,\n warningProps: warningProps,\n fillOptionsWithMissingValue: fillOptionsWithMissingValue\n});\n/**\n * Typescript not support generic with function component,\n * we have to wrap an class component to handle this.\n */\n\nvar Select = /*#__PURE__*/function (_React$Component) {\n _inherits(Select, _React$Component);\n\n var _super = _createSuper(Select);\n\n function Select() {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.apply(this, arguments);\n _this.selectRef = /*#__PURE__*/React.createRef();\n\n _this.focus = function () {\n _this.selectRef.current.focus();\n };\n\n _this.blur = function () {\n _this.selectRef.current.blur();\n };\n\n return _this;\n }\n\n _createClass(Select, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(RefSelect, Object.assign({\n ref: this.selectRef\n }, this.props));\n }\n }]);\n\n return Select;\n}(React.Component);\n\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport default Select;","export var INTERNAL_PROPS_MARK = 'RC_SELECT_INTERNAL_PROPS_MARK';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\n\nexport default function useDelayReset() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n bool = _React$useState2[0],\n setBool = _React$useState2[1];\n\n var delayRef = React.useRef(null);\n\n var cancelLatest = function cancelLatest() {\n window.clearTimeout(delayRef.current);\n };\n\n React.useEffect(function () {\n return cancelLatest;\n }, []);\n\n var delaySetBool = function delaySetBool(value, callback) {\n cancelLatest();\n delayRef.current = window.setTimeout(function () {\n setBool(value);\n\n if (callback) {\n callback();\n }\n }, timeout);\n };\n\n return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useCacheOptions(options) {\n var prevOptionMapRef = React.useRef(null);\n var optionMap = React.useMemo(function () {\n var map = new Map();\n options.forEach(function (item) {\n var value = item.data.value;\n map.set(value, item);\n });\n return map;\n }, [options]);\n prevOptionMapRef.current = optionMap;\n\n var getValueOption = function getValueOption(vals) {\n return vals.map(function (value) {\n return prevOptionMapRef.current.get(value);\n }).filter(Boolean);\n };\n\n return getValueOption;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function useCacheDisplayValue(values) {\n var prevValuesRef = React.useRef(values);\n var mergedValues = React.useMemo(function () {\n // Create value - label map\n var valueLabels = new Map();\n prevValuesRef.current.forEach(function (_ref) {\n var value = _ref.value,\n label = _ref.label;\n\n if (value !== label) {\n valueLabels.set(value, label);\n }\n });\n var resultValues = values.map(function (item) {\n var cacheLabel = valueLabels.get(item.value);\n\n if (item.isCacheable && cacheLabel) {\n return _objectSpread(_objectSpread({}, item), {}, {\n label: cacheLabel\n });\n }\n\n return item;\n });\n prevValuesRef.current = resultValues;\n return resultValues;\n }, [values]);\n return mergedValues;\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen) {\n var propsRef = React.useRef(null);\n propsRef.current = {\n elements: elements.filter(function (e) {\n return e;\n }),\n open: open,\n triggerOpen: triggerOpen\n };\n React.useEffect(function () {\n function onGlobalMouseDown(event) {\n var target = event.target;\n\n if (propsRef.current.open && propsRef.current.elements.every(function (element) {\n return !element.contains(target) && element !== target;\n })) {\n // Should trigger close\n propsRef.current.triggerOpen(false);\n }\n }\n\n window.addEventListener('mousedown', onGlobalMouseDown);\n return function () {\n return window.removeEventListener('mousedown', onGlobalMouseDown);\n };\n }, []);\n}","import Select from './Select';\nimport Option from './Option';\nimport OptGroup from './OptGroup';\nexport { Option, OptGroup };\nexport default Select;","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n\n return cacheRef.current.value;\n}","\"use strict\";\n\nrequire(\"../../style/index.less\");\n\nrequire(\"./index.less\");\n\nrequire(\"../../empty/style\");","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = getIcons;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _DownOutlined = _interopRequireDefault(require(\"@ant-design/icons/DownOutlined\"));\n\nvar _LoadingOutlined = _interopRequireDefault(require(\"@ant-design/icons/LoadingOutlined\"));\n\nvar _CheckOutlined = _interopRequireDefault(require(\"@ant-design/icons/CheckOutlined\"));\n\nvar _CloseOutlined = _interopRequireDefault(require(\"@ant-design/icons/CloseOutlined\"));\n\nvar _CloseCircleFilled = _interopRequireDefault(require(\"@ant-design/icons/CloseCircleFilled\"));\n\nvar _SearchOutlined = _interopRequireDefault(require(\"@ant-design/icons/SearchOutlined\"));\n\nfunction getIcons(_ref) {\n var suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n removeIcon = _ref.removeIcon,\n loading = _ref.loading,\n multiple = _ref.multiple,\n prefixCls = _ref.prefixCls; // Clear Icon\n\n var mergedClearIcon = clearIcon;\n\n if (!clearIcon) {\n mergedClearIcon = /*#__PURE__*/React.createElement(_CloseCircleFilled[\"default\"], null);\n } // Arrow item icon\n\n\n var mergedSuffixIcon = null;\n\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = suffixIcon;\n } else if (loading) {\n mergedSuffixIcon = /*#__PURE__*/React.createElement(_LoadingOutlined[\"default\"], {\n spin: true\n });\n } else {\n var iconCls = \"\".concat(prefixCls, \"-suffix\");\n\n mergedSuffixIcon = function mergedSuffixIcon(_ref2) {\n var open = _ref2.open,\n showSearch = _ref2.showSearch;\n\n if (open && showSearch) {\n return /*#__PURE__*/React.createElement(_SearchOutlined[\"default\"], {\n className: iconCls\n });\n }\n\n return /*#__PURE__*/React.createElement(_DownOutlined[\"default\"], {\n className: iconCls\n });\n };\n } // Checked item icon\n\n\n var mergedItemIcon = null;\n\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(_CheckOutlined[\"default\"], null);\n } else {\n mergedItemIcon = null;\n }\n\n var mergedRemoveIcon = null;\n\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(_CloseOutlined[\"default\"], null);\n }\n\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}"],"sourceRoot":""}