You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
688 lines
24 KiB
688 lines
24 KiB
"use strict";
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[69362],{
|
|
|
|
/***/ 13826:
|
|
/*!****************************************************************!*\
|
|
!*** ./node_modules/_antd@5.9.0@antd/es/style/motion/slide.js ***!
|
|
\****************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ Qt: function() { return /* binding */ slideDownIn; },
|
|
/* harmony export */ Uw: function() { return /* binding */ slideUpOut; },
|
|
/* harmony export */ fJ: function() { return /* binding */ slideUpIn; },
|
|
/* harmony export */ ly: function() { return /* binding */ slideDownOut; },
|
|
/* harmony export */ oN: function() { return /* binding */ initSlideMotion; }
|
|
/* harmony export */ });
|
|
/* unused harmony exports slideLeftIn, slideLeftOut, slideRightIn, slideRightOut */
|
|
/* harmony import */ var _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ant-design/cssinjs */ 36237);
|
|
/* harmony import */ var _motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./motion */ 95406);
|
|
|
|
|
|
const slideUpIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antSlideUpIn', {
|
|
'0%': {
|
|
transform: 'scaleY(0.8)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 0
|
|
},
|
|
'100%': {
|
|
transform: 'scaleY(1)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 1
|
|
}
|
|
});
|
|
const slideUpOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antSlideUpOut', {
|
|
'0%': {
|
|
transform: 'scaleY(1)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 1
|
|
},
|
|
'100%': {
|
|
transform: 'scaleY(0.8)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 0
|
|
}
|
|
});
|
|
const slideDownIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antSlideDownIn', {
|
|
'0%': {
|
|
transform: 'scaleY(0.8)',
|
|
transformOrigin: '100% 100%',
|
|
opacity: 0
|
|
},
|
|
'100%': {
|
|
transform: 'scaleY(1)',
|
|
transformOrigin: '100% 100%',
|
|
opacity: 1
|
|
}
|
|
});
|
|
const slideDownOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antSlideDownOut', {
|
|
'0%': {
|
|
transform: 'scaleY(1)',
|
|
transformOrigin: '100% 100%',
|
|
opacity: 1
|
|
},
|
|
'100%': {
|
|
transform: 'scaleY(0.8)',
|
|
transformOrigin: '100% 100%',
|
|
opacity: 0
|
|
}
|
|
});
|
|
const slideLeftIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antSlideLeftIn', {
|
|
'0%': {
|
|
transform: 'scaleX(0.8)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 0
|
|
},
|
|
'100%': {
|
|
transform: 'scaleX(1)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 1
|
|
}
|
|
});
|
|
const slideLeftOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antSlideLeftOut', {
|
|
'0%': {
|
|
transform: 'scaleX(1)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 1
|
|
},
|
|
'100%': {
|
|
transform: 'scaleX(0.8)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 0
|
|
}
|
|
});
|
|
const slideRightIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antSlideRightIn', {
|
|
'0%': {
|
|
transform: 'scaleX(0.8)',
|
|
transformOrigin: '100% 0%',
|
|
opacity: 0
|
|
},
|
|
'100%': {
|
|
transform: 'scaleX(1)',
|
|
transformOrigin: '100% 0%',
|
|
opacity: 1
|
|
}
|
|
});
|
|
const slideRightOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antSlideRightOut', {
|
|
'0%': {
|
|
transform: 'scaleX(1)',
|
|
transformOrigin: '100% 0%',
|
|
opacity: 1
|
|
},
|
|
'100%': {
|
|
transform: 'scaleX(0.8)',
|
|
transformOrigin: '100% 0%',
|
|
opacity: 0
|
|
}
|
|
});
|
|
const slideMotion = {
|
|
'slide-up': {
|
|
inKeyframes: slideUpIn,
|
|
outKeyframes: slideUpOut
|
|
},
|
|
'slide-down': {
|
|
inKeyframes: slideDownIn,
|
|
outKeyframes: slideDownOut
|
|
},
|
|
'slide-left': {
|
|
inKeyframes: slideLeftIn,
|
|
outKeyframes: slideLeftOut
|
|
},
|
|
'slide-right': {
|
|
inKeyframes: slideRightIn,
|
|
outKeyframes: slideRightOut
|
|
}
|
|
};
|
|
const initSlideMotion = (token, motionName) => {
|
|
const {
|
|
antCls
|
|
} = token;
|
|
const motionCls = `${antCls}-${motionName}`;
|
|
const {
|
|
inKeyframes,
|
|
outKeyframes
|
|
} = slideMotion[motionName];
|
|
return [(0,_motion__WEBPACK_IMPORTED_MODULE_1__/* .initMotion */ .R)(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {
|
|
[`
|
|
${motionCls}-enter,
|
|
${motionCls}-appear
|
|
`]: {
|
|
transform: 'scale(0)',
|
|
transformOrigin: '0% 0%',
|
|
opacity: 0,
|
|
animationTimingFunction: token.motionEaseOutQuint,
|
|
[`&-prepare`]: {
|
|
transform: 'scale(1)'
|
|
}
|
|
},
|
|
[`${motionCls}-leave`]: {
|
|
animationTimingFunction: token.motionEaseInQuint
|
|
}
|
|
}];
|
|
};
|
|
|
|
/***/ }),
|
|
|
|
/***/ 11780:
|
|
/*!*****************************************************************************!*\
|
|
!*** ./node_modules/_rc-overflow@1.4.1@rc-overflow/es/index.js + 6 modules ***!
|
|
\*****************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ _rc_overflow_1_4_1_rc_overflow_es; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.6@@babel/runtime/helpers/esm/extends.js
|
|
var esm_extends = __webpack_require__(14809);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.6@@babel/runtime/helpers/esm/objectSpread2.js
|
|
var objectSpread2 = __webpack_require__(20439);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.6@@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
|
|
var slicedToArray = __webpack_require__(50298);
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.6@@babel/runtime/helpers/esm/objectWithoutProperties.js
|
|
var objectWithoutProperties = __webpack_require__(62646);
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-resize-observer@1.4.3@rc-resize-observer/es/index.js + 4 modules
|
|
var es = __webpack_require__(29301);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/hooks/useLayoutEffect.js
|
|
var useLayoutEffect = __webpack_require__(34280);
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-overflow@1.4.1@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_17_0_2_react.useEffect(function () {
|
|
return function () {
|
|
internalRegisterSize(null);
|
|
};
|
|
}, []);
|
|
|
|
// ================================ Render ================================
|
|
var childNode = renderItem && item !== UNDEFINED ? renderItem(item, {
|
|
index: order
|
|
}) : 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_17_0_2_react.createElement(Component, (0,esm_extends/* default */.Z)({
|
|
className: _classnames_2_5_1_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_17_0_2_react.createElement(es/* default */.Z, {
|
|
onResize: function onResize(_ref) {
|
|
var offsetWidth = _ref.offsetWidth;
|
|
internalRegisterSize(offsetWidth);
|
|
},
|
|
disabled: responsiveDisabled
|
|
}, itemNode);
|
|
}
|
|
return itemNode;
|
|
}
|
|
var Item = /*#__PURE__*/_react_17_0_2_react.forwardRef(InternalItem);
|
|
Item.displayName = 'Item';
|
|
/* harmony default export */ var es_Item = (Item);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/hooks/useEvent.js
|
|
var useEvent = __webpack_require__(6089);
|
|
// EXTERNAL MODULE: ./node_modules/_react-dom@17.0.2@react-dom/index.js
|
|
var _react_dom_17_0_2_react_dom = __webpack_require__(4676);
|
|
// EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/raf.js
|
|
var raf = __webpack_require__(16089);
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-overflow@1.4.1@rc-overflow/es/hooks/channelUpdate.js
|
|
|
|
function channelUpdate(callback) {
|
|
if (typeof MessageChannel === 'undefined') {
|
|
(0,raf/* default */.Z)(callback);
|
|
} else {
|
|
var channel = new MessageChannel();
|
|
channel.port1.onmessage = function () {
|
|
return callback();
|
|
};
|
|
channel.port2.postMessage(undefined);
|
|
}
|
|
}
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-overflow@1.4.1@rc-overflow/es/hooks/useEffectState.js
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Batcher for record any `useEffectState` need update.
|
|
*/
|
|
function useBatcher() {
|
|
// Updater Trigger
|
|
var updateFuncRef = _react_17_0_2_react.useRef(null);
|
|
|
|
// Notify update
|
|
var notifyEffectUpdate = function notifyEffectUpdate(callback) {
|
|
if (!updateFuncRef.current) {
|
|
updateFuncRef.current = [];
|
|
channelUpdate(function () {
|
|
(0,_react_dom_17_0_2_react_dom.unstable_batchedUpdates)(function () {
|
|
updateFuncRef.current.forEach(function (fn) {
|
|
fn();
|
|
});
|
|
updateFuncRef.current = null;
|
|
});
|
|
});
|
|
}
|
|
updateFuncRef.current.push(callback);
|
|
};
|
|
return notifyEffectUpdate;
|
|
}
|
|
|
|
/**
|
|
* Trigger state update by `useLayoutEffect` to save perf.
|
|
*/
|
|
function useEffectState(notifyEffectUpdate, defaultValue) {
|
|
// Value
|
|
var _React$useState = _react_17_0_2_react.useState(defaultValue),
|
|
_React$useState2 = (0,slicedToArray/* default */.Z)(_React$useState, 2),
|
|
stateValue = _React$useState2[0],
|
|
setStateValue = _React$useState2[1];
|
|
|
|
// Set State
|
|
var setEffectVal = (0,useEvent/* default */.Z)(function (nextValue) {
|
|
notifyEffectUpdate(function () {
|
|
setStateValue(nextValue);
|
|
});
|
|
});
|
|
return [stateValue, setEffectVal];
|
|
}
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-overflow@1.4.1@rc-overflow/es/context.js
|
|
|
|
var OverflowContext = /*#__PURE__*/_react_17_0_2_react.createContext(null);
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-overflow@1.4.1@rc-overflow/es/RawItem.js
|
|
|
|
|
|
var RawItem_excluded = ["component"],
|
|
_excluded2 = ["className"],
|
|
_excluded3 = ["className"];
|
|
|
|
|
|
|
|
|
|
var InternalRawItem = function InternalRawItem(props, ref) {
|
|
var context = _react_17_0_2_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_17_0_2_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_17_0_2_react.createElement(OverflowContext.Provider, {
|
|
value: null
|
|
}, /*#__PURE__*/_react_17_0_2_react.createElement(es_Item, (0,esm_extends/* default */.Z)({
|
|
ref: ref,
|
|
className: _classnames_2_5_1_classnames_default()(contextClassName, className)
|
|
}, restContext, restProps)));
|
|
};
|
|
var RawItem = /*#__PURE__*/_react_17_0_2_react.forwardRef(InternalRawItem);
|
|
RawItem.displayName = 'RawItem';
|
|
/* harmony default export */ var es_RawItem = (RawItem);
|
|
;// CONCATENATED MODULE: ./node_modules/_rc-overflow@1.4.1@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 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 fullySSR = ssr === 'full';
|
|
var notifyEffectUpdate = useBatcher();
|
|
var _useEffectState = useEffectState(notifyEffectUpdate, null),
|
|
_useEffectState2 = (0,slicedToArray/* default */.Z)(_useEffectState, 2),
|
|
containerWidth = _useEffectState2[0],
|
|
setContainerWidth = _useEffectState2[1];
|
|
var mergedContainerWidth = containerWidth || 0;
|
|
var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),
|
|
_useEffectState4 = (0,slicedToArray/* default */.Z)(_useEffectState3, 2),
|
|
itemWidths = _useEffectState4[0],
|
|
setItemWidths = _useEffectState4[1];
|
|
var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),
|
|
_useEffectState6 = (0,slicedToArray/* default */.Z)(_useEffectState5, 2),
|
|
prevRestWidth = _useEffectState6[0],
|
|
setPrevRestWidth = _useEffectState6[1];
|
|
var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),
|
|
_useEffectState8 = (0,slicedToArray/* default */.Z)(_useEffectState7, 2),
|
|
restWidth = _useEffectState8[0],
|
|
setRestWidth = _useEffectState8[1];
|
|
var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),
|
|
_useEffectState10 = (0,slicedToArray/* default */.Z)(_useEffectState9, 2),
|
|
suffixWidth = _useEffectState10[0],
|
|
setSuffixWidth = _useEffectState10[1];
|
|
var _useState = (0,_react_17_0_2_react.useState)(null),
|
|
_useState2 = (0,slicedToArray/* default */.Z)(_useState, 2),
|
|
suffixFixedStart = _useState2[0],
|
|
setSuffixFixedStart = _useState2[1];
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(null),
|
|
_useState4 = (0,slicedToArray/* default */.Z)(_useState3, 2),
|
|
displayCount = _useState4[0],
|
|
setDisplayCount = _useState4[1];
|
|
var mergedDisplayCount = _react_17_0_2_react.useMemo(function () {
|
|
if (displayCount === null && fullySSR) {
|
|
return Number.MAX_SAFE_INTEGER;
|
|
}
|
|
return displayCount || 0;
|
|
}, [displayCount, containerWidth]);
|
|
var _useState5 = (0,_react_17_0_2_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_17_0_2_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_17_0_2_react.useMemo)(function () {
|
|
if (shouldResponsive) {
|
|
return data.slice(mergedDisplayCount + 1);
|
|
}
|
|
return data.slice(mergedData.length);
|
|
}, [data, mergedData, shouldResponsive, mergedDisplayCount]);
|
|
|
|
// ================================= Item =================================
|
|
var getKey = (0,_react_17_0_2_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_17_0_2_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 || 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 && typeof mergedRestWidth === 'number' && 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_17_0_2_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_17_0_2_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 restContextProps = {
|
|
order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,
|
|
className: "".concat(itemPrefixCls, "-rest"),
|
|
registerSize: registerOverflowSize,
|
|
display: displayRest
|
|
};
|
|
var mergedRenderRest = renderRest || defaultRenderRest;
|
|
var restNode = renderRawRest ? /*#__PURE__*/_react_17_0_2_react.createElement(OverflowContext.Provider, {
|
|
value: (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, itemSharedProps), restContextProps)
|
|
}, renderRawRest(omittedItems)) : /*#__PURE__*/_react_17_0_2_react.createElement(es_Item, (0,esm_extends/* default */.Z)({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);
|
|
var overflowNode = /*#__PURE__*/_react_17_0_2_react.createElement(Component, (0,esm_extends/* default */.Z)({
|
|
className: _classnames_2_5_1_classnames_default()(!invalidate && prefixCls, className),
|
|
style: style,
|
|
ref: ref
|
|
}, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/_react_17_0_2_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));
|
|
return isResponsive ? /*#__PURE__*/_react_17_0_2_react.createElement(es/* default */.Z, {
|
|
onResize: onOverflowResize,
|
|
disabled: !shouldResponsive
|
|
}, overflowNode) : overflowNode;
|
|
}
|
|
var ForwardOverflow = /*#__PURE__*/_react_17_0_2_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@1.4.1@rc-overflow/es/index.js
|
|
|
|
/* harmony default export */ var _rc_overflow_1_4_1_rc_overflow_es = (es_Overflow);
|
|
|
|
/***/ })
|
|
|
|
}]); |