"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[13006],{ /***/ 46305: /*!*****************************************************!*\ !*** ./src/pages/Engineering/index.tsx + 2 modules ***! \*****************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ pages_Engineering; } }); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js var slicedToArray = __webpack_require__(27424); var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray); // EXTERNAL MODULE: ./node_modules/antd/es/menu/style/index.js + 1 modules var style = __webpack_require__(83736); // EXTERNAL MODULE: ./node_modules/antd/es/menu/index.js + 5 modules var menu = __webpack_require__(66516); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); ;// CONCATENATED MODULE: ./src/pages/Engineering/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var Engineeringmodules = ({"flex_box_center":"flex_box_center___usTTt","flex_space_between":"flex_space_between___pQ1uH","flex_box_vertical_center":"flex_box_vertical_center___jvY_p","flex_box_center_end":"flex_box_center_end___mLLAC","flex_box_column":"flex_box_column___B1SWi","wrap":"wrap___Ga64a","left":"left___MLf1O","menu":"menu___FpsmH","home":"home___iI7sm","info":"info___P474B","right":"right___Ttby6"}); // EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules var _umi_production_exports = __webpack_require__(89214); // EXTERNAL MODULE: ./src/pages/Engineering/util.tsx var util = __webpack_require__(69555); // EXTERNAL MODULE: ./src/utils/fetch.ts var fetch = __webpack_require__(84519); ;// CONCATENATED MODULE: ./src/assets/images/navigation.png var navigation_namespaceObject = "data:image/png;base64,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"; // EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js var jsx_runtime = __webpack_require__(85893); ;// CONCATENATED MODULE: ./src/pages/Engineering/index.tsx var SubMenu = menu/* default.SubMenu */.Z.SubMenu; var Engineering = function Engineering(_ref) { var user = _ref.user, globalSetting = _ref.globalSetting, engineering = _ref.engineering; var location = (0,_umi_production_exports.useLocation)(); var _React$useState = react.useState(['1', '2', '3', '4']), _React$useState2 = slicedToArray_default()(_React$useState, 2), openKeys = _React$useState2[0], setOpenKeys = _React$useState2[1]; var _React$useState3 = react.useState([]), _React$useState4 = slicedToArray_default()(_React$useState3, 2), selectedKeys = _React$useState4[0], setSelectedKeys = _React$useState4[1]; var showMenu = engineering.showMenu, matrixVerify = engineering.matrixVerify; (0,react.useEffect)(function () { //重定向页面 if ((location === null || location === void 0 ? void 0 : location.pathname) === '/engineering') { _umi_production_exports.history.replace('/engineering/navigation'); } document.title = '工程认证'; }, [location === null || location === void 0 ? void 0 : location.pathname]); (0,react.useEffect)(function () { document.title = '工程认证'; }); (0,react.useEffect)(function () { var _filterKey = filterKey(), filterOpenKeys = _filterKey.filterOpenKeys, filterSelectedKeys = _filterKey.filterSelectedKeys; console.log(filterKey()); // setOpenKeys(filterOpenKeys); setSelectedKeys(filterSelectedKeys); }, [location === null || location === void 0 ? void 0 : location.pathname]); //登录判断 (0,react.useEffect)(function () { (0,fetch/* default */.ZP)("/api/ec_major_schools/1/ec_years/has_logged.json", { method: "get" }); }, []); var items = [ // { // title: '认证导航', // key: '/engineering/navigation', // icon: , // isMenu: true, // }, { title: '专业设置', key: '1', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-zhuanyeshezhi" }), children: [{ title: '培养方案', key: '/engineering/trainingProgram', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-peiyangfangan font14" }) }, { title: '培养目标', key: '/engineering/trainingObjectives', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-peiyangmubiao font14" }) }, { title: '教师信息', key: '/engineering/teacherList', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-jiaoshiliebiao font14" }) }, { title: '学生信息', key: '/engineering/studentList', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-xueshengliebiao font14" }) }] }, { title: '毕业要求', key: '2', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-biyeyaoqiu" }), children: [{ title: '毕业指标', key: '/engineering/graduationindex', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-biyezhibiao font14" }) }, { title: '毕业矩阵', key: '/engineering/graduatedMatrix', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-biyejuzhen font14" }) }] }, { title: '课程体系', key: '3', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-kechengtixi" }), children: [{ title: '课程列表', key: '/engineering/courseList', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-kechengliebiao font14" }) }, { title: '课程设置', key: '/engineering/cursesetting', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-kechengshezhi font14" }) }, { title: '课程矩阵', key: '/engineering/courseMatrix', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-kechengjuzhen font14" }) }] }, { title: '达成评价', key: '4', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-dachengpinggu" }), children: [{ title: '课程评价', key: '/engineering/evaluate/course', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-kechengpingjia font14" }) }, { title: '指标评价', key: '/engineering/evaluate/norm', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-zhibiaopingjia font14" }) }, { title: '文档生成', key: '/engineering/evaluate/document', icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", { className: "iconfont icon-wendangshengcheng font14" }) }] }]; var filterKey = function filterKey() { var pathname = location === null || location === void 0 ? void 0 : location.pathname; var filterOpenKeys = []; var filterSelectedKeys = []; for (var i = 0; i < items.length; i++) { var _items$i$children; if ((_items$i$children = items[i].children) !== null && _items$i$children !== void 0 && _items$i$children.length) { for (var j = 0; j < items[i].children.length; j++) { if (pathname.includes(items[i].children[j].key)) { filterOpenKeys = [items[i].key]; filterSelectedKeys = [items[i].children[j].key]; return { filterOpenKeys: filterOpenKeys, filterSelectedKeys: filterSelectedKeys }; } } } } return { filterOpenKeys: filterOpenKeys, filterSelectedKeys: filterSelectedKeys }; }; var onOpenChange = function onOpenChange(keys) { console.log(openKeys, keys, 44); // if (openKeys[0] === keys[0]) { // if (keys.length === 2) { // setOpenKeys([keys[1]]); // return; // } // setOpenKeys([]); // return; // } setOpenKeys(keys); }; var go = function go(url) { var put = function put() { _umi_production_exports.history.push(url); }; if (matrixVerify !== null && matrixVerify !== void 0 && matrixVerify.key) { var _matrixVerify$params; (0,util/* verifyModal */.t)(put, "\u6BD5\u4E1A\u8981\u6C42\u6307\u6807\u70B9\u5B58\u5728\u6CA1\u6709\u5173\u8054".concat((matrixVerify === null || matrixVerify === void 0 ? void 0 : (_matrixVerify$params = matrixVerify.params) === null || _matrixVerify$params === void 0 ? void 0 : _matrixVerify$params.tab) === '1' ? '培养目标' : '通用标准', "\uFF0C\u786E\u5B9A\u662F\u5426\u79BB\u5F00\u5F53\u524D\u9875\u9762\uFF1F")); } else { put(); } }; return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: Engineeringmodules.wrap, children: [showMenu && (location === null || location === void 0 ? void 0 : location.pathname) !== '/exam' && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: Engineeringmodules.left, children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("aside", { onClick: function onClick() { return go('/engineering/navigation'); }, className: Engineeringmodules.home, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: "mr15", children: /*#__PURE__*/(0,jsx_runtime.jsx)("img", { width: 32, src: navigation_namespaceObject }) }), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", { className: Engineeringmodules.info, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "\u8BA4\u8BC1\u5BFC\u822A" }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { children: "CERTIFICATION" })] })] }), /*#__PURE__*/(0,jsx_runtime.jsx)(menu/* default */.Z, { mode: "inline", selectedKeys: selectedKeys, openKeys: openKeys, onOpenChange: onOpenChange, inlineIndent: 15, className: Engineeringmodules.menu, expandIcon: function expandIcon(b) { return b.isOpen ? /*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: { visibility: 'hidden' }, className: "icon-xiala3 custom-icon" }) : /*#__PURE__*/(0,jsx_runtime.jsx)("span", { style: { visibility: 'hidden' }, className: "icon-xiala2 custom-icon" }); }, children: items.map(function (item) { if (item.isMenu) { // return ( // // // // ); } else { var _item$children; return /*#__PURE__*/(0,jsx_runtime.jsx)(SubMenu, { icon: item.icon, title: item.title, children: item.children && ((_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.map(function (e) { return /*#__PURE__*/(0,jsx_runtime.jsx)(menu/* default.Item */.Z.Item, { children: /*#__PURE__*/(0,jsx_runtime.jsxs)("aside", { onClick: function onClick() { return go(e.key); }, children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", { className: "mr15", children: e === null || e === void 0 ? void 0 : e.icon }), e.title] }) }, e.key); })) }, item.key); } }) })] }), /*#__PURE__*/(0,jsx_runtime.jsx)("div", { className: Engineeringmodules.right, children: /*#__PURE__*/(0,jsx_runtime.jsx)(_umi_production_exports.Outlet, {}) })] }); }; /* harmony default export */ var pages_Engineering = ((0,_umi_production_exports.connect)(function (_ref2) { var globalSetting = _ref2.globalSetting, user = _ref2.user, engineering = _ref2.engineering; return { user: user, globalSetting: globalSetting, engineering: engineering }; })(Engineering)); /***/ }), /***/ 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); /***/ }), /***/ 48555: /*!*****************************************************************!*\ !*** ./node_modules/rc-resize-observer/es/index.js + 4 modules ***! \*****************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { "Z": function() { return /* binding */ es; } }); // UNUSED EXPORTS: _rs // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(87462); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(67294); // EXTERNAL MODULE: ./node_modules/rc-util/es/Children/toArray.js var toArray = __webpack_require__(50344); // EXTERNAL MODULE: ./node_modules/rc-util/es/warning.js var warning = __webpack_require__(80334); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js var objectSpread2 = __webpack_require__(1413); // EXTERNAL MODULE: ./node_modules/rc-util/es/ref.js var es_ref = __webpack_require__(42550); // EXTERNAL MODULE: ./node_modules/rc-util/es/Dom/findDOMNode.js var findDOMNode = __webpack_require__(34203); // EXTERNAL MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js var ResizeObserver_es = __webpack_require__(91033); ;// CONCATENATED MODULE: ./node_modules/rc-resize-observer/es/utils/observerUtil.js // =============================== Const =============================== var elementListeners = new Map(); function onResize(entities) { entities.forEach(function (entity) { var _elementListeners$get; var target = entity.target; (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 ? void 0 : _elementListeners$get.forEach(function (listener) { return listener(target); }); }); } // Note: ResizeObserver polyfill not support option to measure border-box resize var resizeObserver = new ResizeObserver_es/* default */.Z(onResize); // Dev env only var _el = (/* unused pure expression or super */ null && ( false ? 0 : null)); // eslint-disable-line var _rs = (/* unused pure expression or super */ null && ( false ? 0 : null)); // eslint-disable-line // ============================== Observe ============================== function observe(element, callback) { if (!elementListeners.has(element)) { elementListeners.set(element, new Set()); resizeObserver.observe(element); } elementListeners.get(element).add(callback); } function unobserve(element, callback) { if (elementListeners.has(element)) { elementListeners.get(element).delete(callback); if (!elementListeners.get(element).size) { resizeObserver.unobserve(element); elementListeners.delete(element); } } } // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js var classCallCheck = __webpack_require__(15671); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js var createClass = __webpack_require__(43144); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js var inherits = __webpack_require__(60136); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createSuper.js + 1 modules var createSuper = __webpack_require__(51630); ;// CONCATENATED MODULE: ./node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js /** * Fallback to findDOMNode if origin ref do not provide any dom element */ var DomWrapper = /*#__PURE__*/function (_React$Component) { (0,inherits/* default */.Z)(DomWrapper, _React$Component); var _super = (0,createSuper/* default */.Z)(DomWrapper); function DomWrapper() { (0,classCallCheck/* default */.Z)(this, DomWrapper); return _super.apply(this, arguments); } (0,createClass/* default */.Z)(DomWrapper, [{ key: "render", value: function render() { return this.props.children; } }]); return DomWrapper; }(react.Component); ;// CONCATENATED MODULE: ./node_modules/rc-resize-observer/es/Collection.js var CollectionContext = /*#__PURE__*/react.createContext(null); /** * Collect all the resize event from children ResizeObserver */ function Collection(_ref) { var children = _ref.children, onBatchResize = _ref.onBatchResize; var resizeIdRef = react.useRef(0); var resizeInfosRef = react.useRef([]); var onCollectionResize = react.useContext(CollectionContext); var onResize = react.useCallback(function (size, element, data) { resizeIdRef.current += 1; var currentId = resizeIdRef.current; resizeInfosRef.current.push({ size: size, element: element, data: data }); Promise.resolve().then(function () { if (currentId === resizeIdRef.current) { onBatchResize === null || onBatchResize === void 0 ? void 0 : onBatchResize(resizeInfosRef.current); resizeInfosRef.current = []; } }); // Continue bubbling if parent exist onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(size, element, data); }, [onBatchResize, onCollectionResize]); return /*#__PURE__*/react.createElement(CollectionContext.Provider, { value: onResize }, children); } ;// CONCATENATED MODULE: ./node_modules/rc-resize-observer/es/SingleObserver/index.js function SingleObserver(props, ref) { var children = props.children, disabled = props.disabled; var elementRef = react.useRef(null); var wrapperRef = react.useRef(null); var onCollectionResize = react.useContext(CollectionContext); // =========================== Children =========================== var isRenderProps = typeof children === 'function'; var mergedChildren = isRenderProps ? children(elementRef) : children; // ============================= Size ============================= var sizeRef = react.useRef({ width: -1, height: -1, offsetWidth: -1, offsetHeight: -1 }); // ============================= Ref ============================== var canRef = !isRenderProps && /*#__PURE__*/react.isValidElement(mergedChildren) && (0,es_ref/* supportRef */.Yr)(mergedChildren); var originRef = canRef ? mergedChildren.ref : null; var mergedRef = react.useMemo(function () { return (0,es_ref/* composeRef */.sQ)(originRef, elementRef); }, [originRef, elementRef]); var getDom = function getDom() { return (0,findDOMNode/* default */.Z)(elementRef.current) || (0,findDOMNode/* default */.Z)(wrapperRef.current); }; react.useImperativeHandle(ref, function () { return getDom(); }); // =========================== Observe ============================ var propsRef = react.useRef(props); propsRef.current = props; // Handler var onInternalResize = react.useCallback(function (target) { var _propsRef$current = propsRef.current, onResize = _propsRef$current.onResize, data = _propsRef$current.data; var _target$getBoundingCl = target.getBoundingClientRect(), width = _target$getBoundingCl.width, height = _target$getBoundingCl.height; var offsetWidth = target.offsetWidth, offsetHeight = target.offsetHeight; /** * Resize observer trigger when content size changed. * In most case we just care about element size, * let's use `boundary` instead of `contentRect` here to avoid shaking. */ var fixedWidth = Math.floor(width); var fixedHeight = Math.floor(height); if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) { var size = { width: fixedWidth, height: fixedHeight, offsetWidth: offsetWidth, offsetHeight: offsetHeight }; sizeRef.current = size; // IE is strange, right? var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth; var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight; var sizeInfo = (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, size), {}, { offsetWidth: mergedOffsetWidth, offsetHeight: mergedOffsetHeight }); // Let collection know what happened onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(sizeInfo, target, data); if (onResize) { // defer the callback but not defer to next frame Promise.resolve().then(function () { onResize(sizeInfo, target); }); } } }, []); // Dynamic observe react.useEffect(function () { var currentElement = getDom(); if (currentElement && !disabled) { observe(currentElement, onInternalResize); } return function () { return unobserve(currentElement, onInternalResize); }; }, [elementRef.current, disabled]); // ============================ Render ============================ return /*#__PURE__*/react.createElement(DomWrapper, { ref: wrapperRef }, canRef ? /*#__PURE__*/react.cloneElement(mergedChildren, { ref: mergedRef }) : mergedChildren); } var RefSingleObserver = /*#__PURE__*/react.forwardRef(SingleObserver); if (false) {} /* harmony default export */ var es_SingleObserver = (RefSingleObserver); ;// CONCATENATED MODULE: ./node_modules/rc-resize-observer/es/index.js var INTERNAL_PREFIX_KEY = 'rc-observer-key'; function ResizeObserver(props, ref) { var children = props.children; var childNodes = typeof children === 'function' ? [children] : (0,toArray/* default */.Z)(children); if (false) {} return childNodes.map(function (child, index) { var key = (child === null || child === void 0 ? void 0 : child.key) || "".concat(INTERNAL_PREFIX_KEY, "-").concat(index); return /*#__PURE__*/react.createElement(es_SingleObserver, (0,esm_extends/* default */.Z)({}, props, { key: key, ref: index === 0 ? ref : undefined }), child); }); } var RefResizeObserver = /*#__PURE__*/react.forwardRef(ResizeObserver); if (false) {} RefResizeObserver.Collection = Collection; /* harmony default export */ var es = (RefResizeObserver); /***/ }) }]);