"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[54051],{ /***/ 66367: /*!*************************************************!*\ !*** ./node_modules/antd/es/_util/getScroll.js ***! \*************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "F": function() { return /* binding */ isWindow; }, /* harmony export */ "Z": function() { return /* binding */ getScroll; } /* harmony export */ }); function isWindow(obj) { return obj !== null && obj !== undefined && obj === obj.window; } function getScroll(target, top) { var _a, _b; if (typeof window === 'undefined') { return 0; } var method = top ? 'scrollTop' : 'scrollLeft'; var result = 0; if (isWindow(target)) { result = target[top ? 'pageYOffset' : 'pageXOffset']; } else if (target instanceof Document) { result = target.documentElement[method]; } else if (target instanceof HTMLElement) { result = target[method]; } else if (target) { // According to the type inference, the `target` is `never` type. // Since we configured the loose mode type checking, and supports mocking the target with such shape below:: // `{ documentElement: { scrollLeft: 200, scrollTop: 400 } }`, // the program may falls into this branch. // Check the corresponding tests for details. Don't sure what is the real scenario this happens. result = target[method]; } if (target && !isWindow(target) && typeof result !== 'number') { result = (_b = ((_a = target.ownerDocument) !== null && _a !== void 0 ? _a : target).documentElement) === null || _b === void 0 ? void 0 : _b[method]; } return result; } /***/ }), /***/ 58375: /*!************************************************************!*\ !*** ./node_modules/antd/es/_util/scrollTo.js + 1 modules ***! \************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ scrollTo; } }); // EXTERNAL MODULE: ./node_modules/rc-util/es/raf.js var raf = __webpack_require__(75164); ;// CONCATENATED MODULE: ./node_modules/antd/es/_util/easings.js // eslint-disable-next-line import/prefer-default-export function easeInOutCubic(t, b, c, d) { var cc = c - b; t /= d / 2; if (t < 1) { return cc / 2 * t * t * t + b; } // eslint-disable-next-line no-return-assign return cc / 2 * ((t -= 2) * t * t + 2) + b; } // EXTERNAL MODULE: ./node_modules/antd/es/_util/getScroll.js var getScroll = __webpack_require__(66367); ;// CONCATENATED MODULE: ./node_modules/antd/es/_util/scrollTo.js function scrollTo(y) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _options$getContainer = options.getContainer, getContainer = _options$getContainer === void 0 ? function () { return window; } : _options$getContainer, callback = options.callback, _options$duration = options.duration, duration = _options$duration === void 0 ? 450 : _options$duration; var container = getContainer(); var scrollTop = (0,getScroll/* default */.Z)(container, true); var startTime = Date.now(); var frameFunc = function frameFunc() { var timestamp = Date.now(); var time = timestamp - startTime; var nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration); if ((0,getScroll/* isWindow */.F)(container)) { container.scrollTo(window.pageXOffset, nextScrollTop); } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') { container.documentElement.scrollTop = nextScrollTop; } else { container.scrollTop = nextScrollTop; } if (time < duration) { (0,raf/* default */.Z)(frameFunc); } else if (typeof callback === 'function') { callback(); } }; (0,raf/* default */.Z)(frameFunc); } /***/ }), /***/ 91249: /*!************************************************************!*\ !*** ./node_modules/antd/es/back-top/index.js + 2 modules ***! \************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ back_top; } }); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(87462); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js var defineProperty = __webpack_require__(4942); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules var slicedToArray = __webpack_require__(97685); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js var objectSpread2 = __webpack_require__(1413); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); ;// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/VerticalAlignTopOutlined.js // This icon file is generated automatically. var VerticalAlignTopOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z" } }] }, "name": "vertical-align-top", "theme": "outlined" }; /* harmony default export */ var asn_VerticalAlignTopOutlined = (VerticalAlignTopOutlined); // EXTERNAL MODULE: ./node_modules/antd/node_modules/@ant-design/icons/es/components/AntdIcon.js + 3 modules var AntdIcon = __webpack_require__(93771); ;// CONCATENATED MODULE: ./node_modules/antd/node_modules/@ant-design/icons/es/icons/VerticalAlignTopOutlined.js // GENERATE BY ./scripts/generate.ts // DON NOT EDIT IT MANUALLY var VerticalAlignTopOutlined_VerticalAlignTopOutlined = function VerticalAlignTopOutlined(props, ref) { return /*#__PURE__*/react.createElement(AntdIcon/* default */.Z, (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, props), {}, { ref: ref, icon: asn_VerticalAlignTopOutlined })); }; VerticalAlignTopOutlined_VerticalAlignTopOutlined.displayName = 'VerticalAlignTopOutlined'; /* harmony default export */ var icons_VerticalAlignTopOutlined = (/*#__PURE__*/react.forwardRef(VerticalAlignTopOutlined_VerticalAlignTopOutlined)); // EXTERNAL MODULE: ./node_modules/classnames/index.js var classnames = __webpack_require__(94184); var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); // EXTERNAL MODULE: ./node_modules/rc-motion/es/index.js + 11 modules var es = __webpack_require__(62874); // EXTERNAL MODULE: ./node_modules/rc-util/es/Dom/addEventListener.js var addEventListener = __webpack_require__(64019); // EXTERNAL MODULE: ./node_modules/rc-util/es/hooks/useMergedState.js var useMergedState = __webpack_require__(21770); // EXTERNAL MODULE: ./node_modules/rc-util/es/omit.js var omit = __webpack_require__(98423); // EXTERNAL MODULE: ./node_modules/antd/es/config-provider/context.js var context = __webpack_require__(53124); // EXTERNAL MODULE: ./node_modules/antd/es/_util/getScroll.js var getScroll = __webpack_require__(66367); // EXTERNAL MODULE: ./node_modules/antd/es/_util/reactNode.js var reactNode = __webpack_require__(96159); // EXTERNAL MODULE: ./node_modules/antd/es/_util/scrollTo.js + 1 modules var scrollTo = __webpack_require__(58375); // EXTERNAL MODULE: ./node_modules/antd/es/_util/throttleByAnimationFrame.js var throttleByAnimationFrame = __webpack_require__(48783); ;// CONCATENATED MODULE: ./node_modules/antd/es/back-top/index.js var BackTopContent = function BackTopContent(props) { var prefixCls = props.prefixCls, rootPrefixCls = props.rootPrefixCls, children = props.children, visible = props.visible; var defaultElement = /*#__PURE__*/react.createElement("div", { className: "".concat(prefixCls, "-content") }, /*#__PURE__*/react.createElement("div", { className: "".concat(prefixCls, "-icon") }, /*#__PURE__*/react.createElement(icons_VerticalAlignTopOutlined, null))); return /*#__PURE__*/react.createElement(es["default"], { visible: visible, motionName: "".concat(rootPrefixCls, "-fade") }, function (_ref) { var motionClassName = _ref.className; return (0,reactNode/* cloneElement */.Tm)(children || defaultElement, function (_ref2) { var className = _ref2.className; return { className: classnames_default()(motionClassName, className) }; }); }); }; var BackTop = function BackTop(props) { var _useMergedState = (0,useMergedState/* default */.Z)(false, { value: props.visible }), _useMergedState2 = (0,slicedToArray/* default */.Z)(_useMergedState, 2), visible = _useMergedState2[0], setVisible = _useMergedState2[1]; var ref = /*#__PURE__*/react.createRef(); var scrollEvent = react.useRef(null); var getDefaultTarget = function getDefaultTarget() { return ref.current && ref.current.ownerDocument ? ref.current.ownerDocument : window; }; var handleScroll = (0,throttleByAnimationFrame/* throttleByAnimationFrame */.t)(function (e) { var _props$visibilityHeig = props.visibilityHeight, visibilityHeight = _props$visibilityHeig === void 0 ? 400 : _props$visibilityHeig; var scrollTop = (0,getScroll/* default */.Z)(e.target, true); setVisible(scrollTop > visibilityHeight); }); var bindScrollEvent = function bindScrollEvent() { var target = props.target; var getTarget = target || getDefaultTarget; var container = getTarget(); scrollEvent.current = (0,addEventListener/* default */.Z)(container, 'scroll', function (e) { handleScroll(e); }); handleScroll({ target: container }); }; react.useEffect(function () { bindScrollEvent(); return function () { if (scrollEvent.current) { scrollEvent.current.remove(); } handleScroll.cancel(); }; }, [props.target]); var scrollToTop = function scrollToTop(e) { var onClick = props.onClick, target = props.target, _props$duration = props.duration, duration = _props$duration === void 0 ? 450 : _props$duration; (0,scrollTo/* default */.Z)(0, { getContainer: target || getDefaultTarget, duration: duration }); if (typeof onClick === 'function') { onClick(e); } }; var _React$useContext = react.useContext(context/* ConfigContext */.E_), getPrefixCls = _React$useContext.getPrefixCls, direction = _React$useContext.direction; var customizePrefixCls = props.prefixCls, _props$className = props.className, className = _props$className === void 0 ? '' : _props$className; var prefixCls = getPrefixCls('back-top', customizePrefixCls); var rootPrefixCls = getPrefixCls(); var classString = classnames_default()(prefixCls, (0,defineProperty/* default */.Z)({}, "".concat(prefixCls, "-rtl"), direction === 'rtl'), className); // fix https://fb.me/react-unknown-prop var divProps = (0,omit/* default */.Z)(props, ['prefixCls', 'className', 'children', 'visibilityHeight', 'target', 'visible']); return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({}, divProps, { className: classString, onClick: scrollToTop, ref: ref }), /*#__PURE__*/react.createElement(BackTopContent, { prefixCls: prefixCls, rootPrefixCls: rootPrefixCls, visible: visible }, props.children)); }; /* harmony default export */ var back_top = (/*#__PURE__*/react.memo(BackTop)); /***/ }), /***/ 99000: /*!******************************************************************!*\ !*** ./node_modules/antd/es/back-top/style/index.js + 1 modules ***! \******************************************************************/ /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) { // EXTERNAL MODULE: ./node_modules/antd/es/style/default.less var style_default = __webpack_require__(43146); ;// CONCATENATED MODULE: ./node_modules/antd/es/back-top/style/index.less // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./node_modules/antd/es/back-top/style/index.js /***/ }), /***/ 34243: /*!**********************************************************!*\ !*** ./node_modules/rc-overflow/es/index.js + 4 modules ***! \**********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ rc_overflow_es; } }); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(87462); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js var objectSpread2 = __webpack_require__(1413); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules var slicedToArray = __webpack_require__(97685); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js var objectWithoutProperties = __webpack_require__(45987); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); // EXTERNAL MODULE: ./node_modules/classnames/index.js var classnames = __webpack_require__(94184); var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); // EXTERNAL MODULE: ./node_modules/rc-resize-observer/es/index.js + 4 modules var es = __webpack_require__(48555); // EXTERNAL MODULE: ./node_modules/rc-util/es/hooks/useLayoutEffect.js var useLayoutEffect = __webpack_require__(8410); ;// CONCATENATED MODULE: ./node_modules/rc-overflow/es/Item.js var _excluded = ["prefixCls", "invalidate", "item", "renderItem", "responsive", "responsiveDisabled", "registerSize", "itemKey", "className", "style", "children", "display", "order", "component"]; // Use shared variable to save bundle size var UNDEFINED = undefined; function InternalItem(props, ref) { var prefixCls = props.prefixCls, invalidate = props.invalidate, item = props.item, renderItem = props.renderItem, responsive = props.responsive, responsiveDisabled = props.responsiveDisabled, registerSize = props.registerSize, itemKey = props.itemKey, className = props.className, style = props.style, children = props.children, display = props.display, order = props.order, _props$component = props.component, Component = _props$component === void 0 ? 'div' : _props$component, restProps = (0,objectWithoutProperties/* default */.Z)(props, _excluded); var mergedHidden = responsive && !display; // ================================ Effect ================================ function internalRegisterSize(width) { registerSize(itemKey, width); } react.useEffect(function () { return function () { internalRegisterSize(null); }; }, []); // ================================ Render ================================ var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children; var overflowStyle; if (!invalidate) { overflowStyle = { opacity: mergedHidden ? 0 : 1, height: mergedHidden ? 0 : UNDEFINED, overflowY: mergedHidden ? 'hidden' : UNDEFINED, order: responsive ? order : UNDEFINED, pointerEvents: mergedHidden ? 'none' : UNDEFINED, position: mergedHidden ? 'absolute' : UNDEFINED }; } var overflowProps = {}; if (mergedHidden) { overflowProps['aria-hidden'] = true; } var itemNode = /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({ className: classnames_default()(!invalidate && prefixCls, className), style: (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, overflowStyle), style) }, overflowProps, restProps, { ref: ref }), childNode); if (responsive) { itemNode = /*#__PURE__*/react.createElement(es/* default */.Z, { onResize: function onResize(_ref) { var offsetWidth = _ref.offsetWidth; internalRegisterSize(offsetWidth); }, disabled: responsiveDisabled }, itemNode); } return itemNode; } var Item = /*#__PURE__*/react.forwardRef(InternalItem); Item.displayName = 'Item'; /* harmony default export */ var es_Item = (Item); // EXTERNAL MODULE: ./node_modules/rc-util/es/raf.js var raf = __webpack_require__(75164); // EXTERNAL MODULE: ./node_modules/rc-util/es/hooks/useState.js var useState = __webpack_require__(30470); ;// CONCATENATED MODULE: ./node_modules/rc-overflow/es/hooks/useBatchFrameState.js /** * State generate. Return a `setState` but it will flush all state with one render to save perf. * This is not a realization of `unstable_batchedUpdates`. */ function useBatchFrameState() { var _useState = (0,useState/* default */.Z)({}), _useState2 = (0,slicedToArray/* default */.Z)(_useState, 2), forceUpdate = _useState2[1]; var statesRef = (0,react.useRef)([]); var walkingIndex = 0; var beforeFrameId = 0; function createState(defaultValue) { var myIndex = walkingIndex; walkingIndex += 1; // Fill value if not exist yet if (statesRef.current.length < myIndex + 1) { statesRef.current[myIndex] = defaultValue; } // Return filled as `setState` var value = statesRef.current[myIndex]; function setValue(val) { statesRef.current[myIndex] = typeof val === 'function' ? val(statesRef.current[myIndex]) : val; raf/* default.cancel */.Z.cancel(beforeFrameId); // Flush with batch beforeFrameId = (0,raf/* default */.Z)(function () { forceUpdate({}, true); }); } return [value, setValue]; } return createState; } ;// CONCATENATED MODULE: ./node_modules/rc-overflow/es/RawItem.js var RawItem_excluded = ["component"], _excluded2 = ["className"], _excluded3 = ["className"]; var InternalRawItem = function InternalRawItem(props, ref) { var context = react.useContext(OverflowContext); // Render directly when context not provided if (!context) { var _props$component = props.component, Component = _props$component === void 0 ? 'div' : _props$component, _restProps = (0,objectWithoutProperties/* default */.Z)(props, RawItem_excluded); return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({}, _restProps, { ref: ref })); } var contextClassName = context.className, restContext = (0,objectWithoutProperties/* default */.Z)(context, _excluded2); var className = props.className, restProps = (0,objectWithoutProperties/* default */.Z)(props, _excluded3); // Do not pass context to sub item to avoid multiple measure return /*#__PURE__*/react.createElement(OverflowContext.Provider, { value: null }, /*#__PURE__*/react.createElement(es_Item, (0,esm_extends/* default */.Z)({ ref: ref, className: classnames_default()(contextClassName, className) }, restContext, restProps))); }; var RawItem = /*#__PURE__*/react.forwardRef(InternalRawItem); RawItem.displayName = 'RawItem'; /* harmony default export */ var es_RawItem = (RawItem); ;// CONCATENATED MODULE: ./node_modules/rc-overflow/es/Overflow.js var Overflow_excluded = ["prefixCls", "data", "renderItem", "renderRawItem", "itemKey", "itemWidth", "ssr", "style", "className", "maxCount", "renderRest", "renderRawRest", "suffix", "component", "itemComponent", "onVisibleChange"]; var OverflowContext = /*#__PURE__*/react.createContext(null); var RESPONSIVE = 'responsive'; var INVALIDATE = 'invalidate'; function defaultRenderRest(omittedItems) { return "+ ".concat(omittedItems.length, " ..."); } function Overflow(props, ref) { var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls, _props$data = props.data, data = _props$data === void 0 ? [] : _props$data, renderItem = props.renderItem, renderRawItem = props.renderRawItem, itemKey = props.itemKey, _props$itemWidth = props.itemWidth, itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth, ssr = props.ssr, style = props.style, className = props.className, maxCount = props.maxCount, renderRest = props.renderRest, renderRawRest = props.renderRawRest, suffix = props.suffix, _props$component = props.component, Component = _props$component === void 0 ? 'div' : _props$component, itemComponent = props.itemComponent, onVisibleChange = props.onVisibleChange, restProps = (0,objectWithoutProperties/* default */.Z)(props, Overflow_excluded); var createUseState = useBatchFrameState(); var fullySSR = ssr === 'full'; var _createUseState = createUseState(null), _createUseState2 = (0,slicedToArray/* default */.Z)(_createUseState, 2), containerWidth = _createUseState2[0], setContainerWidth = _createUseState2[1]; var mergedContainerWidth = containerWidth || 0; var _createUseState3 = createUseState(new Map()), _createUseState4 = (0,slicedToArray/* default */.Z)(_createUseState3, 2), itemWidths = _createUseState4[0], setItemWidths = _createUseState4[1]; var _createUseState5 = createUseState(0), _createUseState6 = (0,slicedToArray/* default */.Z)(_createUseState5, 2), prevRestWidth = _createUseState6[0], setPrevRestWidth = _createUseState6[1]; var _createUseState7 = createUseState(0), _createUseState8 = (0,slicedToArray/* default */.Z)(_createUseState7, 2), restWidth = _createUseState8[0], setRestWidth = _createUseState8[1]; var _createUseState9 = createUseState(0), _createUseState10 = (0,slicedToArray/* default */.Z)(_createUseState9, 2), suffixWidth = _createUseState10[0], setSuffixWidth = _createUseState10[1]; var _useState = (0,react.useState)(null), _useState2 = (0,slicedToArray/* default */.Z)(_useState, 2), suffixFixedStart = _useState2[0], setSuffixFixedStart = _useState2[1]; var _useState3 = (0,react.useState)(null), _useState4 = (0,slicedToArray/* default */.Z)(_useState3, 2), displayCount = _useState4[0], setDisplayCount = _useState4[1]; var mergedDisplayCount = react.useMemo(function () { if (displayCount === null && fullySSR) { return Number.MAX_SAFE_INTEGER; } return displayCount || 0; }, [displayCount, containerWidth]); var _useState5 = (0,react.useState)(false), _useState6 = (0,slicedToArray/* default */.Z)(_useState5, 2), restReady = _useState6[0], setRestReady = _useState6[1]; var itemPrefixCls = "".concat(prefixCls, "-item"); // Always use the max width to avoid blink var mergedRestWidth = Math.max(prevRestWidth, restWidth); // ================================= Data ================================= var isResponsive = maxCount === RESPONSIVE; var shouldResponsive = data.length && isResponsive; var invalidate = maxCount === INVALIDATE; /** * When is `responsive`, we will always render rest node to get the real width of it for calculation */ var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount; var mergedData = (0,react.useMemo)(function () { var items = data; if (shouldResponsive) { if (containerWidth === null && fullySSR) { items = data; } else { items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth)); } } else if (typeof maxCount === 'number') { items = data.slice(0, maxCount); } return items; }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]); var omittedItems = (0,react.useMemo)(function () { if (shouldResponsive) { return data.slice(mergedDisplayCount + 1); } return data.slice(mergedData.length); }, [data, mergedData, shouldResponsive, mergedDisplayCount]); // ================================= Item ================================= var getKey = (0,react.useCallback)(function (item, index) { var _ref; if (typeof itemKey === 'function') { return itemKey(item); } return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index; }, [itemKey]); var mergedRenderItem = (0,react.useCallback)(renderItem || function (item) { return item; }, [renderItem]); function updateDisplayCount(count, suffixFixedStartVal, notReady) { // React 18 will sync render even when the value is same in some case. // We take `mergedData` as deps which may cause dead loop if it's dynamic generate. // ref: https://github.com/ant-design/ant-design/issues/36559 if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) { return; } setDisplayCount(count); if (!notReady) { setRestReady(count < data.length - 1); onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count); } if (suffixFixedStartVal !== undefined) { setSuffixFixedStart(suffixFixedStartVal); } } // ================================= Size ================================= function onOverflowResize(_, element) { setContainerWidth(element.clientWidth); } function registerSize(key, width) { setItemWidths(function (origin) { var clone = new Map(origin); if (width === null) { clone.delete(key); } else { clone.set(key, width); } return clone; }); } function registerOverflowSize(_, width) { setRestWidth(width); setPrevRestWidth(restWidth); } function registerSuffixSize(_, width) { setSuffixWidth(width); } // ================================ Effect ================================ function getItemWidth(index) { return itemWidths.get(getKey(mergedData[index], index)); } (0,useLayoutEffect/* default */.Z)(function () { if (mergedContainerWidth && mergedRestWidth && mergedData) { var totalWidth = suffixWidth; var len = mergedData.length; var lastIndex = len - 1; // When data count change to 0, reset this since not loop will reach if (!len) { updateDisplayCount(0, null); return; } for (var i = 0; i < len; i += 1) { var currentItemWidth = getItemWidth(i); // Fully will always render if (fullySSR) { currentItemWidth = currentItemWidth || 0; } // Break since data not ready if (currentItemWidth === undefined) { updateDisplayCount(i - 1, undefined, true); break; } // Find best match totalWidth += currentItemWidth; if ( // Only one means `totalWidth` is the final width lastIndex === 0 && totalWidth <= mergedContainerWidth || // Last two width will be the final width i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) { // Additional check if match the end updateDisplayCount(lastIndex, null); break; } else if (totalWidth + mergedRestWidth > mergedContainerWidth) { // Can not hold all the content to show rest updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth); break; } } if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) { setSuffixFixedStart(null); } } }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]); // ================================ Render ================================ var displayRest = restReady && !!omittedItems.length; var suffixStyle = {}; if (suffixFixedStart !== null && shouldResponsive) { suffixStyle = { position: 'absolute', left: suffixFixedStart, top: 0 }; } var itemSharedProps = { prefixCls: itemPrefixCls, responsive: shouldResponsive, component: itemComponent, invalidate: invalidate }; // >>>>> Choice render fun by `renderRawItem` var internalRenderItemNode = renderRawItem ? function (item, index) { var key = getKey(item, index); return /*#__PURE__*/react.createElement(OverflowContext.Provider, { key: key, value: (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, itemSharedProps), {}, { order: index, item: item, itemKey: key, registerSize: registerSize, display: index <= mergedDisplayCount }) }, renderRawItem(item, index)); } : function (item, index) { var key = getKey(item, index); return /*#__PURE__*/react.createElement(es_Item, (0,esm_extends/* default */.Z)({}, itemSharedProps, { order: index, key: key, item: item, renderItem: mergedRenderItem, itemKey: key, registerSize: registerSize, display: index <= mergedDisplayCount })); }; // >>>>> Rest node var restNode; var restContextProps = { order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER, className: "".concat(itemPrefixCls, "-rest"), registerSize: registerOverflowSize, display: displayRest }; if (!renderRawRest) { var mergedRenderRest = renderRest || defaultRenderRest; restNode = /*#__PURE__*/react.createElement(es_Item, (0,esm_extends/* default */.Z)({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest); } else if (renderRawRest) { restNode = /*#__PURE__*/react.createElement(OverflowContext.Provider, { value: (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, itemSharedProps), restContextProps) }, renderRawRest(omittedItems)); } var overflowNode = /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({ className: classnames_default()(!invalidate && prefixCls, className), style: style, ref: ref }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/react.createElement(es_Item, (0,esm_extends/* default */.Z)({}, itemSharedProps, { responsive: isResponsive, responsiveDisabled: !shouldResponsive, order: mergedDisplayCount, className: "".concat(itemPrefixCls, "-suffix"), registerSize: registerSuffixSize, display: true, style: suffixStyle }), suffix)); if (isResponsive) { overflowNode = /*#__PURE__*/react.createElement(es/* default */.Z, { onResize: onOverflowResize, disabled: !shouldResponsive }, overflowNode); } return overflowNode; } var ForwardOverflow = /*#__PURE__*/react.forwardRef(Overflow); ForwardOverflow.displayName = 'Overflow'; ForwardOverflow.Item = es_RawItem; ForwardOverflow.RESPONSIVE = RESPONSIVE; ForwardOverflow.INVALIDATE = INVALIDATE; // Convert to generic type /* harmony default export */ var es_Overflow = (ForwardOverflow); ;// CONCATENATED MODULE: ./node_modules/rc-overflow/es/index.js /* harmony default export */ var rc_overflow_es = (es_Overflow); /***/ }) }]);