"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[99313],{ /***/ 62772: /*!******************************************************************************************************!*\ !*** ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/PlusOutlined.js + 1 modules ***! \******************************************************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ icons_PlusOutlined; } }); // 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/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); ;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons-svg@4.4.2@@ant-design/icons-svg/es/asn/PlusOutlined.js // This icon file is generated automatically. var PlusOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z" } }, { "tag": "path", "attrs": { "d": "M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z" } }] }, "name": "plus", "theme": "outlined" }; /* harmony default export */ var asn_PlusOutlined = (PlusOutlined); // EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/components/AntdIcon.js + 3 modules var AntdIcon = __webpack_require__(7657); ;// CONCATENATED MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/PlusOutlined.js // GENERATE BY ./scripts/generate.ts // DON NOT EDIT IT MANUALLY var PlusOutlined_PlusOutlined = function PlusOutlined(props, ref) { return /*#__PURE__*/_react_17_0_2_react.createElement(AntdIcon/* default */.Z, (0,esm_extends/* default */.Z)({}, props, { ref: ref, icon: asn_PlusOutlined })); }; /**![plus](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ4MiAxNTJoNjBxOCAwIDggOHY3MDRxMCA4LTggOGgtNjBxLTggMC04LThWMTYwcTAtOCA4LTh6IiAvPjxwYXRoIGQ9Ik0xOTIgNDc0aDY3MnE4IDAgOCA4djYwcTAgOC04IDhIMTYwcS04IDAtOC04di02MHEwLTggOC04eiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/_react_17_0_2_react.forwardRef(PlusOutlined_PlusOutlined); if (false) {} /* harmony default export */ var icons_PlusOutlined = (RefIcon); /***/ }), /***/ 99313: /*!*********************************************************************!*\ !*** ./node_modules/_antd@5.9.0@antd/es/tabs/index.js + 24 modules ***! \*********************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ tabs; } }); // EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/CloseOutlined.js + 1 modules var CloseOutlined = __webpack_require__(99267); // EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/EllipsisOutlined.js + 1 modules var EllipsisOutlined = __webpack_require__(18785); // EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/PlusOutlined.js + 1 modules var PlusOutlined = __webpack_require__(62772); // 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/_@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/defineProperty.js var defineProperty = __webpack_require__(4635); // 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/typeof.js var esm_typeof = __webpack_require__(93664); // 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/_rc-util@5.44.4@rc-util/es/isMobile.js var isMobile = __webpack_require__(49658); // EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/hooks/useMergedState.js var useMergedState = __webpack_require__(18929); // EXTERNAL MODULE: ./node_modules/_rc-motion@2.9.5@rc-motion/es/index.js + 13 modules var es = __webpack_require__(77900); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabContext.js /* harmony default export */ var TabContext = (/*#__PURE__*/(0,_react_17_0_2_react.createContext)(null)); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabPanelList/TabPane.js var TabPane = /*#__PURE__*/_react_17_0_2_react.forwardRef(function (_ref, ref) { var prefixCls = _ref.prefixCls, className = _ref.className, style = _ref.style, id = _ref.id, active = _ref.active, tabKey = _ref.tabKey, children = _ref.children; return /*#__PURE__*/_react_17_0_2_react.createElement("div", { id: id && "".concat(id, "-panel-").concat(tabKey), role: "tabpanel", tabIndex: active ? 0 : -1, "aria-labelledby": id && "".concat(id, "-tab-").concat(tabKey), "aria-hidden": !active, style: style, className: _classnames_2_5_1_classnames_default()(prefixCls, active && "".concat(prefixCls, "-active"), className), ref: ref }, children); }); if (false) {} /* harmony default export */ var TabPanelList_TabPane = (TabPane); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabPanelList/index.js var _excluded = ["key", "forceRender", "style", "className"]; function TabPanelList(_ref) { var id = _ref.id, activeKey = _ref.activeKey, animated = _ref.animated, tabPosition = _ref.tabPosition, destroyInactiveTabPane = _ref.destroyInactiveTabPane; var _React$useContext = _react_17_0_2_react.useContext(TabContext), prefixCls = _React$useContext.prefixCls, tabs = _React$useContext.tabs; var tabPaneAnimated = animated.tabPane; var tabPanePrefixCls = "".concat(prefixCls, "-tabpane"); return /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: _classnames_2_5_1_classnames_default()("".concat(prefixCls, "-content-holder")) }, /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: _classnames_2_5_1_classnames_default()("".concat(prefixCls, "-content"), "".concat(prefixCls, "-content-").concat(tabPosition), (0,defineProperty/* default */.Z)({}, "".concat(prefixCls, "-content-animated"), tabPaneAnimated)) }, tabs.map(function (_ref2) { var key = _ref2.key, forceRender = _ref2.forceRender, paneStyle = _ref2.style, paneClassName = _ref2.className, restTabProps = (0,objectWithoutProperties/* default */.Z)(_ref2, _excluded); var active = key === activeKey; return /*#__PURE__*/_react_17_0_2_react.createElement(es["default"], (0,esm_extends/* default */.Z)({ key: key, visible: active, forceRender: forceRender, removeOnLeave: !!destroyInactiveTabPane, leavedClassName: "".concat(tabPanePrefixCls, "-hidden") }, animated.tabPaneMotion), function (_ref3, ref) { var motionStyle = _ref3.style, motionClassName = _ref3.className; return /*#__PURE__*/_react_17_0_2_react.createElement(TabPanelList_TabPane, (0,esm_extends/* default */.Z)({}, restTabProps, { prefixCls: tabPanePrefixCls, id: id, tabKey: key, animated: tabPaneAnimated, active: active, style: (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, paneStyle), motionStyle), className: _classnames_2_5_1_classnames_default()(paneClassName, motionClassName), ref: ref })); }); }))); } // EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.27.6@@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules var toConsumableArray = __webpack_require__(95190); // EXTERNAL MODULE: ./node_modules/_rc-resize-observer@1.4.3@rc-resize-observer/es/index.js + 4 modules var _rc_resize_observer_1_4_3_rc_resize_observer_es = __webpack_require__(29301); // EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/hooks/useEvent.js var useEvent = __webpack_require__(6089); // EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/ref.js var es_ref = __webpack_require__(8654); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/hooks/useOffsets.js var DEFAULT_SIZE = { width: 0, height: 0, left: 0, top: 0 }; function useOffsets(tabs, tabSizes, holderScrollWidth) { return (0,_react_17_0_2_react.useMemo)(function () { var _tabs$; var map = new Map(); var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE; var rightOffset = lastOffset.left + lastOffset.width; for (var i = 0; i < tabs.length; i += 1) { var key = tabs[i].key; var data = tabSizes.get(key); // Reuse last one when not exist yet if (!data) { var _tabs; data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE; } var entity = map.get(key) || (0,objectSpread2/* default */.Z)({}, data); // Right entity.right = rightOffset - entity.left - entity.width; // Update entity map.set(key, entity); } return map; }, [tabs.map(function (tab) { return tab.key; }).join('_'), tabSizes, holderScrollWidth]); } ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/hooks/useSyncState.js function useSyncState(defaultState, onChange) { var stateRef = _react_17_0_2_react.useRef(defaultState); var _React$useState = _react_17_0_2_react.useState({}), _React$useState2 = (0,slicedToArray/* default */.Z)(_React$useState, 2), forceUpdate = _React$useState2[1]; function setState(updater) { var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater; if (newValue !== stateRef.current) { onChange(newValue, stateRef.current); } stateRef.current = newValue; forceUpdate({}); } return [stateRef.current, setState]; } ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/hooks/useTouchMove.js var MIN_SWIPE_DISTANCE = 0.1; var STOP_SWIPE_DISTANCE = 0.01; var REFRESH_INTERVAL = 20; var SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL); // ================================= Hook ================================= function useTouchMove(ref, onOffset) { var _useState = (0,_react_17_0_2_react.useState)(), _useState2 = (0,slicedToArray/* default */.Z)(_useState, 2), touchPosition = _useState2[0], setTouchPosition = _useState2[1]; var _useState3 = (0,_react_17_0_2_react.useState)(0), _useState4 = (0,slicedToArray/* default */.Z)(_useState3, 2), lastTimestamp = _useState4[0], setLastTimestamp = _useState4[1]; var _useState5 = (0,_react_17_0_2_react.useState)(0), _useState6 = (0,slicedToArray/* default */.Z)(_useState5, 2), lastTimeDiff = _useState6[0], setLastTimeDiff = _useState6[1]; var _useState7 = (0,_react_17_0_2_react.useState)(), _useState8 = (0,slicedToArray/* default */.Z)(_useState7, 2), lastOffset = _useState8[0], setLastOffset = _useState8[1]; var motionRef = (0,_react_17_0_2_react.useRef)(); // ========================= Events ========================= // >>> Touch events function onTouchStart(e) { var _e$touches$ = e.touches[0], screenX = _e$touches$.screenX, screenY = _e$touches$.screenY; setTouchPosition({ x: screenX, y: screenY }); window.clearInterval(motionRef.current); } function onTouchMove(e) { if (!touchPosition) return; e.preventDefault(); var _e$touches$2 = e.touches[0], screenX = _e$touches$2.screenX, screenY = _e$touches$2.screenY; setTouchPosition({ x: screenX, y: screenY }); var offsetX = screenX - touchPosition.x; var offsetY = screenY - touchPosition.y; onOffset(offsetX, offsetY); var now = Date.now(); setLastTimestamp(now); setLastTimeDiff(now - lastTimestamp); setLastOffset({ x: offsetX, y: offsetY }); } function onTouchEnd() { if (!touchPosition) return; setTouchPosition(null); setLastOffset(null); // Swipe if needed if (lastOffset) { var distanceX = lastOffset.x / lastTimeDiff; var distanceY = lastOffset.y / lastTimeDiff; var absX = Math.abs(distanceX); var absY = Math.abs(distanceY); // Skip swipe if low distance if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return; var currentX = distanceX; var currentY = distanceY; motionRef.current = window.setInterval(function () { if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) { window.clearInterval(motionRef.current); return; } currentX *= SPEED_OFF_MULTIPLE; currentY *= SPEED_OFF_MULTIPLE; onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL); }, REFRESH_INTERVAL); } } // >>> Wheel event var lastWheelDirectionRef = (0,_react_17_0_2_react.useRef)(); function onWheel(e) { var deltaX = e.deltaX, deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC var mixed = 0; var absX = Math.abs(deltaX); var absY = Math.abs(deltaY); if (absX === absY) { mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY; } else if (absX > absY) { mixed = deltaX; lastWheelDirectionRef.current = 'x'; } else { mixed = deltaY; lastWheelDirectionRef.current = 'y'; } if (onOffset(-mixed, -mixed)) { e.preventDefault(); } } // ========================= Effect ========================= var touchEventsRef = (0,_react_17_0_2_react.useRef)(null); touchEventsRef.current = { onTouchStart: onTouchStart, onTouchMove: onTouchMove, onTouchEnd: onTouchEnd, onWheel: onWheel }; _react_17_0_2_react.useEffect(function () { function onProxyTouchStart(e) { touchEventsRef.current.onTouchStart(e); } function onProxyTouchMove(e) { touchEventsRef.current.onTouchMove(e); } function onProxyTouchEnd(e) { touchEventsRef.current.onTouchEnd(e); } function onProxyWheel(e) { touchEventsRef.current.onWheel(e); } document.addEventListener('touchmove', onProxyTouchMove, { passive: false }); document.addEventListener('touchend', onProxyTouchEnd, { passive: false }); // No need to clean up since element removed ref.current.addEventListener('touchstart', onProxyTouchStart, { passive: false }); ref.current.addEventListener('wheel', onProxyWheel); return function () { document.removeEventListener('touchmove', onProxyTouchMove); document.removeEventListener('touchend', onProxyTouchEnd); }; }, []); } // 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-tabs@12.12.1@rc-tabs/es/hooks/useUpdate.js /** * Help to merge callback with `useLayoutEffect`. * One time will only trigger once. */ function useUpdate(callback) { var _useState = (0,_react_17_0_2_react.useState)(0), _useState2 = (0,slicedToArray/* default */.Z)(_useState, 2), count = _useState2[0], setCount = _useState2[1]; var effectRef = (0,_react_17_0_2_react.useRef)(0); var callbackRef = (0,_react_17_0_2_react.useRef)(); callbackRef.current = callback; // Trigger on `useLayoutEffect` (0,useLayoutEffect/* useLayoutUpdateEffect */.o)(function () { var _callbackRef$current; (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef); }, [count]); // Trigger to update count return function () { if (effectRef.current !== count) { return; } effectRef.current += 1; setCount(effectRef.current); }; } function useUpdateState(defaultState) { var batchRef = (0,_react_17_0_2_react.useRef)([]); var _useState3 = (0,_react_17_0_2_react.useState)({}), _useState4 = (0,slicedToArray/* default */.Z)(_useState3, 2), forceUpdate = _useState4[1]; var state = (0,_react_17_0_2_react.useRef)(typeof defaultState === 'function' ? defaultState() : defaultState); var flushUpdate = useUpdate(function () { var current = state.current; batchRef.current.forEach(function (callback) { current = callback(current); }); batchRef.current = []; state.current = current; forceUpdate({}); }); function updater(callback) { batchRef.current.push(callback); flushUpdate(); } return [state.current, updater]; } ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/hooks/useVisibleRange.js var useVisibleRange_DEFAULT_SIZE = { width: 0, height: 0, left: 0, top: 0, right: 0 }; function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) { var tabs = _ref.tabs, tabPosition = _ref.tabPosition, rtl = _ref.rtl; var charUnit; var position; var transformSize; if (['top', 'bottom'].includes(tabPosition)) { charUnit = 'width'; position = rtl ? 'right' : 'left'; transformSize = Math.abs(transform); } else { charUnit = 'height'; position = 'top'; transformSize = -transform; } return (0,_react_17_0_2_react.useMemo)(function () { if (!tabs.length) { return [0, 0]; } var len = tabs.length; var endIndex = len; for (var i = 0; i < len; i += 1) { var offset = tabOffsets.get(tabs[i].key) || useVisibleRange_DEFAULT_SIZE; if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) { endIndex = i - 1; break; } } var startIndex = 0; for (var _i = len - 1; _i >= 0; _i -= 1) { var _offset = tabOffsets.get(tabs[_i].key) || useVisibleRange_DEFAULT_SIZE; if (_offset[position] < transformSize) { startIndex = _i + 1; break; } } return startIndex >= endIndex ? [0, 0] : [startIndex, endIndex]; }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) { return tab.key; }).join('_'), rtl]); } ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/util.js /** * We trade Map as deps which may change with same value but different ref object. * We should make it as hash for deps * */ function stringify(obj) { var tgt; if (obj instanceof Map) { tgt = {}; obj.forEach(function (v, k) { tgt[k] = v; }); } else { tgt = obj; } return JSON.stringify(tgt); } var RC_TABS_DOUBLE_QUOTE = 'TABS_DQ'; function genDataNodeKey(key) { return String(key).replace(/"/g, RC_TABS_DOUBLE_QUOTE); } function getRemovable(closable, closeIcon, editable, disabled) { if ( // Only editable tabs can be removed !editable || // Tabs cannot be removed when disabled disabled || // closable is false closable === false || // If closable is undefined, the remove button should be hidden when closeIcon is null or false closable === undefined && (closeIcon === false || closeIcon === null)) { return false; } return true; } ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabNavList/AddButton.js function AddButton(_ref, ref) { var prefixCls = _ref.prefixCls, editable = _ref.editable, locale = _ref.locale, style = _ref.style; if (!editable || editable.showAdd === false) { return null; } return /*#__PURE__*/_react_17_0_2_react.createElement("button", { ref: ref, type: "button", className: "".concat(prefixCls, "-nav-add"), style: style, "aria-label": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab', onClick: function onClick(event) { editable.onEdit('add', { event: event }); } }, editable.addIcon || '+'); } /* harmony default export */ var TabNavList_AddButton = (/*#__PURE__*/_react_17_0_2_react.forwardRef(AddButton)); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabNavList/ExtraContent.js var ExtraContent = /*#__PURE__*/_react_17_0_2_react.forwardRef(function (_ref, ref) { var position = _ref.position, prefixCls = _ref.prefixCls, extra = _ref.extra; if (!extra) return null; var content; // Parse extra var assertExtra = {}; if ((0,esm_typeof/* default */.Z)(extra) === 'object' && ! /*#__PURE__*/_react_17_0_2_react.isValidElement(extra)) { assertExtra = extra; } else { assertExtra.right = extra; } if (position === 'right') { content = assertExtra.right; } if (position === 'left') { content = assertExtra.left; } return content ? /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: "".concat(prefixCls, "-extra-content"), ref: ref }, content) : null; }); if (false) {} /* harmony default export */ var TabNavList_ExtraContent = (ExtraContent); // EXTERNAL MODULE: ./node_modules/_rc-dropdown@4.1.0@rc-dropdown/es/index.js + 4 modules var _rc_dropdown_4_1_0_rc_dropdown_es = __webpack_require__(31561); // EXTERNAL MODULE: ./node_modules/_rc-menu@9.12.4@rc-menu/es/index.js + 26 modules var _rc_menu_9_12_4_rc_menu_es = __webpack_require__(15285); // EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/KeyCode.js var KeyCode = __webpack_require__(10228); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabNavList/OperationNode.js function OperationNode(_ref, ref) { var prefixCls = _ref.prefixCls, id = _ref.id, tabs = _ref.tabs, locale = _ref.locale, mobile = _ref.mobile, _ref$moreIcon = _ref.moreIcon, moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon, moreTransitionName = _ref.moreTransitionName, style = _ref.style, className = _ref.className, editable = _ref.editable, tabBarGutter = _ref.tabBarGutter, rtl = _ref.rtl, removeAriaLabel = _ref.removeAriaLabel, onTabClick = _ref.onTabClick, getPopupContainer = _ref.getPopupContainer, popupClassName = _ref.popupClassName; // ======================== Dropdown ======================== var _useState = (0,_react_17_0_2_react.useState)(false), _useState2 = (0,slicedToArray/* default */.Z)(_useState, 2), open = _useState2[0], setOpen = _useState2[1]; var _useState3 = (0,_react_17_0_2_react.useState)(null), _useState4 = (0,slicedToArray/* default */.Z)(_useState3, 2), selectedKey = _useState4[0], setSelectedKey = _useState4[1]; var popupId = "".concat(id, "-more-popup"); var dropdownPrefix = "".concat(prefixCls, "-dropdown"); var selectedItemId = selectedKey !== null ? "".concat(popupId, "-").concat(selectedKey) : null; var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel; function onRemoveTab(event, key) { event.preventDefault(); event.stopPropagation(); editable.onEdit('remove', { key: key, event: event }); } var menu = /*#__PURE__*/_react_17_0_2_react.createElement(_rc_menu_9_12_4_rc_menu_es/* default */.ZP, { onClick: function onClick(_ref2) { var key = _ref2.key, domEvent = _ref2.domEvent; onTabClick(key, domEvent); setOpen(false); }, prefixCls: "".concat(dropdownPrefix, "-menu"), id: popupId, tabIndex: -1, role: "listbox", "aria-activedescendant": selectedItemId, selectedKeys: [selectedKey], "aria-label": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown' }, tabs.map(function (tab) { var closable = tab.closable, disabled = tab.disabled, closeIcon = tab.closeIcon, key = tab.key, label = tab.label; var removable = getRemovable(closable, closeIcon, editable, disabled); return /*#__PURE__*/_react_17_0_2_react.createElement(_rc_menu_9_12_4_rc_menu_es/* MenuItem */.sN, { key: key, id: "".concat(popupId, "-").concat(key), role: "option", "aria-controls": id && "".concat(id, "-panel-").concat(key), disabled: disabled }, /*#__PURE__*/_react_17_0_2_react.createElement("span", null, label), removable && /*#__PURE__*/_react_17_0_2_react.createElement("button", { type: "button", "aria-label": removeAriaLabel || 'remove', tabIndex: 0, className: "".concat(dropdownPrefix, "-menu-item-remove"), onClick: function onClick(e) { e.stopPropagation(); onRemoveTab(e, key); } }, closeIcon || editable.removeIcon || '×')); })); function selectOffset(offset) { var enabledTabs = tabs.filter(function (tab) { return !tab.disabled; }); var selectedIndex = enabledTabs.findIndex(function (tab) { return tab.key === selectedKey; }) || 0; var len = enabledTabs.length; for (var i = 0; i < len; i += 1) { selectedIndex = (selectedIndex + offset + len) % len; var tab = enabledTabs[selectedIndex]; if (!tab.disabled) { setSelectedKey(tab.key); return; } } } function onKeyDown(e) { var which = e.which; if (!open) { if ([KeyCode/* default */.Z.DOWN, KeyCode/* default */.Z.SPACE, KeyCode/* default */.Z.ENTER].includes(which)) { setOpen(true); e.preventDefault(); } return; } switch (which) { case KeyCode/* default */.Z.UP: selectOffset(-1); e.preventDefault(); break; case KeyCode/* default */.Z.DOWN: selectOffset(1); e.preventDefault(); break; case KeyCode/* default */.Z.ESC: setOpen(false); break; case KeyCode/* default */.Z.SPACE: case KeyCode/* default */.Z.ENTER: if (selectedKey !== null) onTabClick(selectedKey, e); break; } } // ========================= Effect ========================= (0,_react_17_0_2_react.useEffect)(function () { // We use query element here to avoid React strict warning var ele = document.getElementById(selectedItemId); if (ele && ele.scrollIntoView) { ele.scrollIntoView(false); } }, [selectedKey]); (0,_react_17_0_2_react.useEffect)(function () { if (!open) { setSelectedKey(null); } }, [open]); // ========================= Render ========================= var moreStyle = (0,defineProperty/* default */.Z)({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter); if (!tabs.length) { moreStyle.visibility = 'hidden'; moreStyle.order = 1; } var overlayClassName = _classnames_2_5_1_classnames_default()((0,defineProperty/* default */.Z)({}, "".concat(dropdownPrefix, "-rtl"), rtl)); var moreNode = mobile ? null : /*#__PURE__*/_react_17_0_2_react.createElement(_rc_dropdown_4_1_0_rc_dropdown_es/* default */.Z, { prefixCls: dropdownPrefix, overlay: menu, trigger: ['hover'], visible: tabs.length ? open : false, transitionName: moreTransitionName, onVisibleChange: setOpen, overlayClassName: _classnames_2_5_1_classnames_default()(overlayClassName, popupClassName), mouseEnterDelay: 0.1, mouseLeaveDelay: 0.1, getPopupContainer: getPopupContainer }, /*#__PURE__*/_react_17_0_2_react.createElement("button", { type: "button", className: "".concat(prefixCls, "-nav-more"), style: moreStyle, tabIndex: -1, "aria-hidden": "true", "aria-haspopup": "listbox", "aria-controls": popupId, id: "".concat(id, "-more"), "aria-expanded": open, onKeyDown: onKeyDown }, moreIcon)); return /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: _classnames_2_5_1_classnames_default()("".concat(prefixCls, "-nav-operations"), className), style: style, ref: ref }, moreNode, /*#__PURE__*/_react_17_0_2_react.createElement(TabNavList_AddButton, { prefixCls: prefixCls, locale: locale, editable: editable })); } /* harmony default export */ var TabNavList_OperationNode = (/*#__PURE__*/_react_17_0_2_react.memo( /*#__PURE__*/_react_17_0_2_react.forwardRef(OperationNode), function (_, next) { return ( // https://github.com/ant-design/ant-design/issues/32544 // We'd better remove syntactic sugar in `rc-menu` since this has perf issue next.tabMoving ); })); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabNavList/TabNode.js function TabNode(_ref) { var _classNames; var prefixCls = _ref.prefixCls, id = _ref.id, active = _ref.active, _ref$tab = _ref.tab, key = _ref$tab.key, label = _ref$tab.label, disabled = _ref$tab.disabled, closeIcon = _ref$tab.closeIcon, closable = _ref.closable, renderWrapper = _ref.renderWrapper, removeAriaLabel = _ref.removeAriaLabel, editable = _ref.editable, onClick = _ref.onClick, onFocus = _ref.onFocus, style = _ref.style; var tabPrefix = "".concat(prefixCls, "-tab"); var removable = getRemovable(closable, closeIcon, editable, disabled); function onInternalClick(e) { if (disabled) { return; } onClick(e); } function onRemoveTab(event) { event.preventDefault(); event.stopPropagation(); editable.onEdit('remove', { key: key, event: event }); } var node = /*#__PURE__*/_react_17_0_2_react.createElement("div", { key: key // ref={ref} , "data-node-key": genDataNodeKey(key), className: _classnames_2_5_1_classnames_default()(tabPrefix, (_classNames = {}, (0,defineProperty/* default */.Z)(_classNames, "".concat(tabPrefix, "-with-remove"), removable), (0,defineProperty/* default */.Z)(_classNames, "".concat(tabPrefix, "-active"), active), (0,defineProperty/* default */.Z)(_classNames, "".concat(tabPrefix, "-disabled"), disabled), _classNames)), style: style, onClick: onInternalClick }, /*#__PURE__*/_react_17_0_2_react.createElement("div", { role: "tab", "aria-selected": active, id: id && "".concat(id, "-tab-").concat(key), className: "".concat(tabPrefix, "-btn"), "aria-controls": id && "".concat(id, "-panel-").concat(key), "aria-disabled": disabled, tabIndex: disabled ? null : 0, onClick: function onClick(e) { e.stopPropagation(); onInternalClick(e); }, onKeyDown: function onKeyDown(e) { if ([KeyCode/* default */.Z.SPACE, KeyCode/* default */.Z.ENTER].includes(e.which)) { e.preventDefault(); onInternalClick(e); } }, onFocus: onFocus }, label), removable && /*#__PURE__*/_react_17_0_2_react.createElement("button", { type: "button", "aria-label": removeAriaLabel || 'remove', tabIndex: 0, className: "".concat(tabPrefix, "-remove"), onClick: function onClick(e) { e.stopPropagation(); onRemoveTab(e); } }, closeIcon || editable.removeIcon || '×')); return renderWrapper ? renderWrapper(node) : node; } /* harmony default export */ var TabNavList_TabNode = (TabNode); // EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/raf.js var raf = __webpack_require__(16089); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/hooks/useIndicator.js var useIndicator = function useIndicator(_ref) { var activeTabOffset = _ref.activeTabOffset, horizontal = _ref.horizontal, rtl = _ref.rtl, indicatorSize = _ref.indicatorSize; var _useState = (0,_react_17_0_2_react.useState)(), _useState2 = (0,slicedToArray/* default */.Z)(_useState, 2), inkStyle = _useState2[0], setInkStyle = _useState2[1]; var inkBarRafRef = (0,_react_17_0_2_react.useRef)(); var getLength = function getLength(origin) { if (typeof indicatorSize === 'function') { return indicatorSize(origin); } if (typeof indicatorSize === 'number') { return indicatorSize; } return origin; }; // Delay set ink style to avoid remove tab blink function cleanInkBarRaf() { raf/* default */.Z.cancel(inkBarRafRef.current); } (0,_react_17_0_2_react.useEffect)(function () { var newInkStyle = {}; if (activeTabOffset) { if (horizontal) { if (rtl) { newInkStyle.right = activeTabOffset.right + activeTabOffset.width / 2; newInkStyle.transform = 'translateX(50%)'; } else { newInkStyle.left = activeTabOffset.left + activeTabOffset.width / 2; newInkStyle.transform = 'translateX(-50%)'; } newInkStyle.width = getLength(activeTabOffset.width); } else { newInkStyle.top = activeTabOffset.top + activeTabOffset.height / 2; newInkStyle.transform = 'translateY(-50%)'; newInkStyle.height = getLength(activeTabOffset.height); } } cleanInkBarRaf(); inkBarRafRef.current = (0,raf/* default */.Z)(function () { setInkStyle(newInkStyle); }); return cleanInkBarRaf; }, [activeTabOffset, horizontal, rtl, indicatorSize]); return { style: inkStyle }; }; /* harmony default export */ var hooks_useIndicator = (useIndicator); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabNavList/index.js var getSize = function getSize(refObj) { var _ref = refObj.current || {}, _ref$offsetWidth = _ref.offsetWidth, offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth, _ref$offsetHeight = _ref.offsetHeight, offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight; return [offsetWidth, offsetHeight]; }; /** * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123` */ var getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) { return size[tabPositionTopOrBottom ? 0 : 1]; }; function TabNavList(props, ref) { var _classNames; var _React$useContext = _react_17_0_2_react.useContext(TabContext), prefixCls = _React$useContext.prefixCls, tabs = _React$useContext.tabs; var className = props.className, style = props.style, id = props.id, animated = props.animated, activeKey = props.activeKey, rtl = props.rtl, extra = props.extra, editable = props.editable, locale = props.locale, tabPosition = props.tabPosition, tabBarGutter = props.tabBarGutter, children = props.children, onTabClick = props.onTabClick, onTabScroll = props.onTabScroll, indicatorSize = props.indicatorSize; var containerRef = (0,_react_17_0_2_react.useRef)(); var extraLeftRef = (0,_react_17_0_2_react.useRef)(); var extraRightRef = (0,_react_17_0_2_react.useRef)(); var tabsWrapperRef = (0,_react_17_0_2_react.useRef)(); var tabListRef = (0,_react_17_0_2_react.useRef)(); var operationsRef = (0,_react_17_0_2_react.useRef)(); var innerAddButtonRef = (0,_react_17_0_2_react.useRef)(); // const [getBtnRef, removeBtnRef] = useRefs(); var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom'; var _useSyncState = useSyncState(0, function (next, prev) { if (tabPositionTopOrBottom && onTabScroll) { onTabScroll({ direction: next > prev ? 'left' : 'right' }); } }), _useSyncState2 = (0,slicedToArray/* default */.Z)(_useSyncState, 2), transformLeft = _useSyncState2[0], setTransformLeft = _useSyncState2[1]; var _useSyncState3 = useSyncState(0, function (next, prev) { if (!tabPositionTopOrBottom && onTabScroll) { onTabScroll({ direction: next > prev ? 'top' : 'bottom' }); } }), _useSyncState4 = (0,slicedToArray/* default */.Z)(_useSyncState3, 2), transformTop = _useSyncState4[0], setTransformTop = _useSyncState4[1]; var _useState = (0,_react_17_0_2_react.useState)([0, 0]), _useState2 = (0,slicedToArray/* default */.Z)(_useState, 2), containerExcludeExtraSize = _useState2[0], setContainerExcludeExtraSize = _useState2[1]; var _useState3 = (0,_react_17_0_2_react.useState)([0, 0]), _useState4 = (0,slicedToArray/* default */.Z)(_useState3, 2), tabContentSize = _useState4[0], setTabContentSize = _useState4[1]; var _useState5 = (0,_react_17_0_2_react.useState)([0, 0]), _useState6 = (0,slicedToArray/* default */.Z)(_useState5, 2), addSize = _useState6[0], setAddSize = _useState6[1]; var _useState7 = (0,_react_17_0_2_react.useState)([0, 0]), _useState8 = (0,slicedToArray/* default */.Z)(_useState7, 2), operationSize = _useState8[0], setOperationSize = _useState8[1]; var _useUpdateState = useUpdateState(new Map()), _useUpdateState2 = (0,slicedToArray/* default */.Z)(_useUpdateState, 2), tabSizes = _useUpdateState2[0], setTabSizes = _useUpdateState2[1]; var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]); // ========================== Unit ========================= var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom); var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom); var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom); var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom); var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue; var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue; // ========================== Util ========================= var operationsHiddenClassName = "".concat(prefixCls, "-nav-operations-hidden"); var transformMin = 0; var transformMax = 0; if (!tabPositionTopOrBottom) { transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue); transformMax = 0; } else if (rtl) { transformMin = 0; transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue); } else { transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue); transformMax = 0; } function alignInRange(value) { if (value < transformMin) { return transformMin; } if (value > transformMax) { return transformMax; } return value; } // ========================= Mobile ======================== var touchMovingRef = (0,_react_17_0_2_react.useRef)(); var _useState9 = (0,_react_17_0_2_react.useState)(), _useState10 = (0,slicedToArray/* default */.Z)(_useState9, 2), lockAnimation = _useState10[0], setLockAnimation = _useState10[1]; function doLockAnimation() { setLockAnimation(Date.now()); } function clearTouchMoving() { window.clearTimeout(touchMovingRef.current); } useTouchMove(tabsWrapperRef, function (offsetX, offsetY) { function doMove(setState, offset) { setState(function (value) { var newValue = alignInRange(value + offset); return newValue; }); } // Skip scroll if place is enough if (!needScroll) { return false; } if (tabPositionTopOrBottom) { doMove(setTransformLeft, offsetX); } else { doMove(setTransformTop, offsetY); } clearTouchMoving(); doLockAnimation(); return true; }); (0,_react_17_0_2_react.useEffect)(function () { clearTouchMoving(); if (lockAnimation) { touchMovingRef.current = window.setTimeout(function () { setLockAnimation(0); }, 100); } return clearTouchMoving; }, [lockAnimation]); // ===================== Visible Range ===================== // Render tab node & collect tab offset var _useVisibleRange = useVisibleRange(tabOffsets, // Container visibleTabContentValue, // Transform tabPositionTopOrBottom ? transformLeft : transformTop, // Tabs tabContentSizeValue, // Add addSizeValue, // Operation operationSizeValue, (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, props), {}, { tabs: tabs })), _useVisibleRange2 = (0,slicedToArray/* default */.Z)(_useVisibleRange, 2), visibleStart = _useVisibleRange2[0], visibleEnd = _useVisibleRange2[1]; // ========================= Scroll ======================== var scrollToTab = (0,useEvent/* default */.Z)(function () { var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey; var tabOffset = tabOffsets.get(key) || { width: 0, height: 0, left: 0, right: 0, top: 0 }; if (tabPositionTopOrBottom) { // ============ Align with top & bottom ============ var newTransform = transformLeft; // RTL if (rtl) { if (tabOffset.right < transformLeft) { newTransform = tabOffset.right; } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) { newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue; } } // LTR else if (tabOffset.left < -transformLeft) { newTransform = -tabOffset.left; } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) { newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue); } setTransformTop(0); setTransformLeft(alignInRange(newTransform)); } else { // ============ Align with left & right ============ var _newTransform = transformTop; if (tabOffset.top < -transformTop) { _newTransform = -tabOffset.top; } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) { _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue); } setTransformLeft(0); setTransformTop(alignInRange(_newTransform)); } }); // ========================== Tab ========================== var tabNodeStyle = {}; if (tabPosition === 'top' || tabPosition === 'bottom') { tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter; } else { tabNodeStyle.marginTop = tabBarGutter; } var tabNodes = tabs.map(function (tab, i) { var key = tab.key; return /*#__PURE__*/_react_17_0_2_react.createElement(TabNavList_TabNode, { id: id, prefixCls: prefixCls, key: key, tab: tab /* first node should not have margin left */, style: i === 0 ? undefined : tabNodeStyle, closable: tab.closable, editable: editable, active: key === activeKey, renderWrapper: children, removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel, onClick: function onClick(e) { onTabClick(key, e); }, onFocus: function onFocus() { scrollToTab(key); doLockAnimation(); if (!tabsWrapperRef.current) { return; } // Focus element will make scrollLeft change which we should reset back if (!rtl) { tabsWrapperRef.current.scrollLeft = 0; } tabsWrapperRef.current.scrollTop = 0; } }); }); // Update buttons records var updateTabSizes = function updateTabSizes() { return setTabSizes(function () { var newSizes = new Map(); tabs.forEach(function (_ref2) { var _tabListRef$current; var key = _ref2.key; var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector("[data-node-key=\"".concat(genDataNodeKey(key), "\"]")); if (btnNode) { newSizes.set(key, { width: btnNode.offsetWidth, height: btnNode.offsetHeight, left: btnNode.offsetLeft, top: btnNode.offsetTop }); } }); return newSizes; }); }; (0,_react_17_0_2_react.useEffect)(function () { updateTabSizes(); }, [tabs.map(function (tab) { return tab.key; }).join('_')]); var onListHolderResize = useUpdate(function () { // Update wrapper records var containerSize = getSize(containerRef); var extraLeftSize = getSize(extraLeftRef); var extraRightSize = getSize(extraRightRef); setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]); var newAddSize = getSize(innerAddButtonRef); setAddSize(newAddSize); var newOperationSize = getSize(operationsRef); setOperationSize(newOperationSize); // Which includes add button size var tabContentFullSize = getSize(tabListRef); setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]); // Update buttons records updateTabSizes(); }); // ======================== Dropdown ======================= var startHiddenTabs = tabs.slice(0, visibleStart); var endHiddenTabs = tabs.slice(visibleEnd + 1); var hiddenTabs = [].concat((0,toConsumableArray/* default */.Z)(startHiddenTabs), (0,toConsumableArray/* default */.Z)(endHiddenTabs)); // =================== Link & Operations =================== var activeTabOffset = tabOffsets.get(activeKey); var _useIndicator = hooks_useIndicator({ activeTabOffset: activeTabOffset, horizontal: tabPositionTopOrBottom, rtl: rtl, indicatorSize: indicatorSize }), indicatorStyle = _useIndicator.style; // ========================= Effect ======================== (0,_react_17_0_2_react.useEffect)(function () { scrollToTab(); // eslint-disable-next-line }, [activeKey, transformMin, transformMax, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]); // Should recalculate when rtl changed (0,_react_17_0_2_react.useEffect)(function () { onListHolderResize(); // eslint-disable-next-line }, [rtl]); // ========================= Render ======================== var hasDropdown = !!hiddenTabs.length; var wrapPrefix = "".concat(prefixCls, "-nav-wrap"); var pingLeft; var pingRight; var pingTop; var pingBottom; if (tabPositionTopOrBottom) { if (rtl) { pingRight = transformLeft > 0; pingLeft = transformLeft !== transformMax; } else { pingLeft = transformLeft < 0; pingRight = transformLeft !== transformMin; } } else { pingTop = transformTop < 0; pingBottom = transformTop !== transformMin; } return /*#__PURE__*/_react_17_0_2_react.createElement(_rc_resize_observer_1_4_3_rc_resize_observer_es/* default */.Z, { onResize: onListHolderResize }, /*#__PURE__*/_react_17_0_2_react.createElement("div", { ref: (0,es_ref/* useComposeRef */.x1)(ref, containerRef), role: "tablist", className: _classnames_2_5_1_classnames_default()("".concat(prefixCls, "-nav"), className), style: style, onKeyDown: function onKeyDown() { // No need animation when use keyboard doLockAnimation(); } }, /*#__PURE__*/_react_17_0_2_react.createElement(TabNavList_ExtraContent, { ref: extraLeftRef, position: "left", extra: extra, prefixCls: prefixCls }), /*#__PURE__*/_react_17_0_2_react.createElement(_rc_resize_observer_1_4_3_rc_resize_observer_es/* default */.Z, { onResize: onListHolderResize }, /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: _classnames_2_5_1_classnames_default()(wrapPrefix, (_classNames = {}, (0,defineProperty/* default */.Z)(_classNames, "".concat(wrapPrefix, "-ping-left"), pingLeft), (0,defineProperty/* default */.Z)(_classNames, "".concat(wrapPrefix, "-ping-right"), pingRight), (0,defineProperty/* default */.Z)(_classNames, "".concat(wrapPrefix, "-ping-top"), pingTop), (0,defineProperty/* default */.Z)(_classNames, "".concat(wrapPrefix, "-ping-bottom"), pingBottom), _classNames)), ref: tabsWrapperRef }, /*#__PURE__*/_react_17_0_2_react.createElement(_rc_resize_observer_1_4_3_rc_resize_observer_es/* default */.Z, { onResize: onListHolderResize }, /*#__PURE__*/_react_17_0_2_react.createElement("div", { ref: tabListRef, className: "".concat(prefixCls, "-nav-list"), style: { transform: "translate(".concat(transformLeft, "px, ").concat(transformTop, "px)"), transition: lockAnimation ? 'none' : undefined } }, tabNodes, /*#__PURE__*/_react_17_0_2_react.createElement(TabNavList_AddButton, { ref: innerAddButtonRef, prefixCls: prefixCls, locale: locale, editable: editable, style: (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, { visibility: hasDropdown ? 'hidden' : null }) }), /*#__PURE__*/_react_17_0_2_react.createElement("div", { className: _classnames_2_5_1_classnames_default()("".concat(prefixCls, "-ink-bar"), (0,defineProperty/* default */.Z)({}, "".concat(prefixCls, "-ink-bar-animated"), animated.inkBar)), style: indicatorStyle }))))), /*#__PURE__*/_react_17_0_2_react.createElement(TabNavList_OperationNode, (0,esm_extends/* default */.Z)({}, props, { removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel, ref: operationsRef, prefixCls: prefixCls, tabs: hiddenTabs, className: !hasDropdown && operationsHiddenClassName, tabMoving: !!lockAnimation })), /*#__PURE__*/_react_17_0_2_react.createElement(TabNavList_ExtraContent, { ref: extraRightRef, position: "right", extra: extra, prefixCls: prefixCls }))); /* eslint-enable */ } /* harmony default export */ var es_TabNavList = (/*#__PURE__*/_react_17_0_2_react.forwardRef(TabNavList)); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/TabNavList/Wrapper.js var Wrapper_excluded = ["renderTabBar"], _excluded2 = ["label", "key"]; // zombieJ: To compatible with `renderTabBar` usage. // We have to create a TabNavList components. function TabNavListWrapper(_ref) { var renderTabBar = _ref.renderTabBar, restProps = (0,objectWithoutProperties/* default */.Z)(_ref, Wrapper_excluded); var _React$useContext = _react_17_0_2_react.useContext(TabContext), tabs = _React$useContext.tabs; if (renderTabBar) { var tabNavBarProps = (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, restProps), {}, { // Legacy support. We do not use this actually panes: tabs.map(function (_ref2) { var label = _ref2.label, key = _ref2.key, restTabProps = (0,objectWithoutProperties/* default */.Z)(_ref2, _excluded2); return /*#__PURE__*/_react_17_0_2_react.createElement(TabPanelList_TabPane, (0,esm_extends/* default */.Z)({ tab: label, key: key, tabKey: key }, restTabProps)); }) }); return renderTabBar(tabNavBarProps, es_TabNavList); } return /*#__PURE__*/_react_17_0_2_react.createElement(es_TabNavList, restProps); } // EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/warning.js var warning = __webpack_require__(48736); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/hooks/useAnimateConfig.js function useAnimateConfig() { var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { inkBar: true, tabPane: false }; var mergedAnimated; if (animated === false) { mergedAnimated = { inkBar: false, tabPane: false }; } else if (animated === true) { mergedAnimated = { inkBar: true, tabPane: false }; } else { mergedAnimated = (0,objectSpread2/* default */.Z)({ inkBar: true }, (0,esm_typeof/* default */.Z)(animated) === 'object' ? animated : {}); } // Enable tabPane animation if provide motion if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) { mergedAnimated.tabPane = true; } if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) { if (false) {} mergedAnimated.tabPane = false; } return mergedAnimated; } ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/Tabs.js var Tabs_excluded = ["id", "prefixCls", "className", "items", "direction", "activeKey", "defaultActiveKey", "editable", "animated", "tabPosition", "tabBarGutter", "tabBarStyle", "tabBarExtraContent", "locale", "moreIcon", "moreTransitionName", "destroyInactiveTabPane", "renderTabBar", "onChange", "onTabClick", "onTabScroll", "getPopupContainer", "popupClassName", "indicatorSize"]; // Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role /** * Should added antd: * - type * * Removed: * - onNextClick * - onPrevClick * - keyboard */ // Used for accessibility var uuid = 0; function Tabs(_ref, ref) { var _classNames; var id = _ref.id, _ref$prefixCls = _ref.prefixCls, prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls, className = _ref.className, items = _ref.items, direction = _ref.direction, activeKey = _ref.activeKey, defaultActiveKey = _ref.defaultActiveKey, editable = _ref.editable, animated = _ref.animated, _ref$tabPosition = _ref.tabPosition, tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition, tabBarGutter = _ref.tabBarGutter, tabBarStyle = _ref.tabBarStyle, tabBarExtraContent = _ref.tabBarExtraContent, locale = _ref.locale, moreIcon = _ref.moreIcon, moreTransitionName = _ref.moreTransitionName, destroyInactiveTabPane = _ref.destroyInactiveTabPane, renderTabBar = _ref.renderTabBar, onChange = _ref.onChange, onTabClick = _ref.onTabClick, onTabScroll = _ref.onTabScroll, getPopupContainer = _ref.getPopupContainer, popupClassName = _ref.popupClassName, indicatorSize = _ref.indicatorSize, restProps = (0,objectWithoutProperties/* default */.Z)(_ref, Tabs_excluded); var tabs = _react_17_0_2_react.useMemo(function () { return (items || []).filter(function (item) { return item && (0,esm_typeof/* default */.Z)(item) === 'object' && 'key' in item; }); }, [items]); var rtl = direction === 'rtl'; var mergedAnimated = useAnimateConfig(animated); // ======================== Mobile ======================== var _useState = (0,_react_17_0_2_react.useState)(false), _useState2 = (0,slicedToArray/* default */.Z)(_useState, 2), mobile = _useState2[0], setMobile = _useState2[1]; (0,_react_17_0_2_react.useEffect)(function () { // Only update on the client side setMobile((0,isMobile/* default */.Z)()); }, []); // ====================== Active Key ====================== var _useMergedState = (0,useMergedState/* default */.Z)(function () { var _tabs$; return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key; }, { value: activeKey, defaultValue: defaultActiveKey }), _useMergedState2 = (0,slicedToArray/* default */.Z)(_useMergedState, 2), mergedActiveKey = _useMergedState2[0], setMergedActiveKey = _useMergedState2[1]; var _useState3 = (0,_react_17_0_2_react.useState)(function () { return tabs.findIndex(function (tab) { return tab.key === mergedActiveKey; }); }), _useState4 = (0,slicedToArray/* default */.Z)(_useState3, 2), activeIndex = _useState4[0], setActiveIndex = _useState4[1]; // Reset active key if not exist anymore (0,_react_17_0_2_react.useEffect)(function () { var newActiveIndex = tabs.findIndex(function (tab) { return tab.key === mergedActiveKey; }); if (newActiveIndex === -1) { var _tabs$newActiveIndex; newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1)); setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key); } setActiveIndex(newActiveIndex); }, [tabs.map(function (tab) { return tab.key; }).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ==================== var _useMergedState3 = (0,useMergedState/* default */.Z)(null, { value: id }), _useMergedState4 = (0,slicedToArray/* default */.Z)(_useMergedState3, 2), mergedId = _useMergedState4[0], setMergedId = _useMergedState4[1]; // Async generate id to avoid ssr mapping failed (0,_react_17_0_2_react.useEffect)(function () { if (!id) { setMergedId("rc-tabs-".concat( false ? 0 : uuid)); uuid += 1; } }, []); // ======================== Events ======================== function onInternalTabClick(key, e) { onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e); var isActiveChanged = key !== mergedActiveKey; setMergedActiveKey(key); if (isActiveChanged) { onChange === null || onChange === void 0 ? void 0 : onChange(key); } } // ======================== Render ======================== var sharedProps = { id: mergedId, activeKey: mergedActiveKey, animated: mergedAnimated, tabPosition: tabPosition, rtl: rtl, mobile: mobile }; var tabNavBarProps = (0,objectSpread2/* default */.Z)((0,objectSpread2/* default */.Z)({}, sharedProps), {}, { editable: editable, locale: locale, moreIcon: moreIcon, moreTransitionName: moreTransitionName, tabBarGutter: tabBarGutter, onTabClick: onInternalTabClick, onTabScroll: onTabScroll, extra: tabBarExtraContent, style: tabBarStyle, panes: null, getPopupContainer: getPopupContainer, popupClassName: popupClassName, indicatorSize: indicatorSize }); return /*#__PURE__*/_react_17_0_2_react.createElement(TabContext.Provider, { value: { tabs: tabs, prefixCls: prefixCls } }, /*#__PURE__*/_react_17_0_2_react.createElement("div", (0,esm_extends/* default */.Z)({ ref: ref, id: id, className: _classnames_2_5_1_classnames_default()(prefixCls, "".concat(prefixCls, "-").concat(tabPosition), (_classNames = {}, (0,defineProperty/* default */.Z)(_classNames, "".concat(prefixCls, "-mobile"), mobile), (0,defineProperty/* default */.Z)(_classNames, "".concat(prefixCls, "-editable"), editable), (0,defineProperty/* default */.Z)(_classNames, "".concat(prefixCls, "-rtl"), rtl), _classNames), className) }, restProps), /*#__PURE__*/_react_17_0_2_react.createElement(TabNavListWrapper, (0,esm_extends/* default */.Z)({}, tabNavBarProps, { renderTabBar: renderTabBar })), /*#__PURE__*/_react_17_0_2_react.createElement(TabPanelList, (0,esm_extends/* default */.Z)({ destroyInactiveTabPane: destroyInactiveTabPane }, sharedProps, { animated: mergedAnimated })))); } var ForwardTabs = /*#__PURE__*/_react_17_0_2_react.forwardRef(Tabs); if (false) {} /* harmony default export */ var es_Tabs = (ForwardTabs); ;// CONCATENATED MODULE: ./node_modules/_rc-tabs@12.12.1@rc-tabs/es/index.js /* harmony default export */ var _rc_tabs_12_12_1_rc_tabs_es = (es_Tabs); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js var context = __webpack_require__(36355); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/hooks/useSize.js var useSize = __webpack_require__(19716); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/TabPane.js const TabPane_TabPane = () => null; if (false) {} /* harmony default export */ var tabs_TabPane = (TabPane_TabPane); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/_util/motion.js var motion = __webpack_require__(62892); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/hooks/useAnimateConfig.js const useAnimateConfig_motion = { motionAppear: false, motionEnter: true, motionLeave: true }; function useAnimateConfig_useAnimateConfig(prefixCls) { let animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { inkBar: true, tabPane: false }; let mergedAnimated; if (animated === false) { mergedAnimated = { inkBar: false, tabPane: false }; } else if (animated === true) { mergedAnimated = { inkBar: true, tabPane: true }; } else { mergedAnimated = Object.assign({ inkBar: true }, typeof animated === 'object' ? animated : {}); } if (mergedAnimated.tabPane) { mergedAnimated.tabPaneMotion = Object.assign(Object.assign({}, useAnimateConfig_motion), { motionName: (0,motion/* getTransitionName */.m)(prefixCls, 'switch') }); } return mergedAnimated; } // EXTERNAL MODULE: ./node_modules/_rc-util@5.44.4@rc-util/es/Children/toArray.js var toArray = __webpack_require__(11592); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/hooks/useLegacyItems.js var __rest = undefined && undefined.__rest || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; function filter(items) { return items.filter(item => item); } function useLegacyItems(items, children) { if (items) { return items; } false ? 0 : void 0; const childrenItems = (0,toArray/* default */.Z)(children).map(node => { if ( /*#__PURE__*/_react_17_0_2_react.isValidElement(node)) { const { key, props } = node; const _a = props || {}, { tab } = _a, restProps = __rest(_a, ["tab"]); const item = Object.assign(Object.assign({ key: String(key) }, restProps), { label: tab }); return item; } return null; }); return filter(childrenItems); } // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/index.js var style = __webpack_require__(17313); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/genComponentStyleHook.js var genComponentStyleHook = __webpack_require__(83116); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/theme/util/statistic.js var statistic = __webpack_require__(37613); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/style/motion/slide.js var slide = __webpack_require__(13826); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/style/motion.js const genMotionStyle = token => { const { componentCls, motionDurationSlow } = token; return [{ [componentCls]: { [`${componentCls}-switch`]: { '&-appear, &-enter': { transition: 'none', '&-start': { opacity: 0 }, '&-active': { opacity: 1, transition: `opacity ${motionDurationSlow}` } }, '&-leave': { position: 'absolute', transition: 'none', inset: 0, '&-start': { opacity: 1 }, '&-active': { opacity: 0, transition: `opacity ${motionDurationSlow}` } } } } }, // Follow code may reuse in other components [(0,slide/* initSlideMotion */.oN)(token, 'slide-up'), (0,slide/* initSlideMotion */.oN)(token, 'slide-down')]]; }; /* harmony default export */ var style_motion = (genMotionStyle); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/style/index.js const genCardStyle = token => { const { componentCls, tabsCardPadding, cardBg, cardGutter, colorBorderSecondary, itemSelectedColor } = token; return { [`${componentCls}-card`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-tab`]: { margin: 0, padding: tabsCardPadding, background: cardBg, border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`, transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}` }, [`${componentCls}-tab-active`]: { color: itemSelectedColor, background: token.colorBgContainer }, [`${componentCls}-ink-bar`]: { visibility: 'hidden' } }, // ========================== Top & Bottom ========================== [`&${componentCls}-top, &${componentCls}-bottom`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-tab + ${componentCls}-tab`]: { marginLeft: { _skip_check_: true, value: `${cardGutter}px` } } } }, [`&${componentCls}-top`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-tab`]: { borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0` }, [`${componentCls}-tab-active`]: { borderBottomColor: token.colorBgContainer } } }, [`&${componentCls}-bottom`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-tab`]: { borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px` }, [`${componentCls}-tab-active`]: { borderTopColor: token.colorBgContainer } } }, // ========================== Left & Right ========================== [`&${componentCls}-left, &${componentCls}-right`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-tab + ${componentCls}-tab`]: { marginTop: `${cardGutter}px` } } }, [`&${componentCls}-left`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-tab`]: { borderRadius: { _skip_check_: true, value: `${token.borderRadiusLG}px 0 0 ${token.borderRadiusLG}px` } }, [`${componentCls}-tab-active`]: { borderRightColor: { _skip_check_: true, value: token.colorBgContainer } } } }, [`&${componentCls}-right`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-tab`]: { borderRadius: { _skip_check_: true, value: `0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px 0` } }, [`${componentCls}-tab-active`]: { borderLeftColor: { _skip_check_: true, value: token.colorBgContainer } } } } } }; }; const genDropdownStyle = token => { const { componentCls, itemHoverColor, dropdownEdgeChildVerticalPadding } = token; return { [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), { position: 'absolute', top: -9999, left: { _skip_check_: true, value: -9999 }, zIndex: token.zIndexPopup, display: 'block', '&-hidden': { display: 'none' }, [`${componentCls}-dropdown-menu`]: { maxHeight: token.tabsDropdownHeight, margin: 0, padding: `${dropdownEdgeChildVerticalPadding}px 0`, overflowX: 'hidden', overflowY: 'auto', textAlign: { _skip_check_: true, value: 'left' }, listStyleType: 'none', backgroundColor: token.colorBgContainer, backgroundClip: 'padding-box', borderRadius: token.borderRadiusLG, outline: 'none', boxShadow: token.boxShadowSecondary, '&-item': Object.assign(Object.assign({}, style/* textEllipsis */.vS), { display: 'flex', alignItems: 'center', minWidth: token.tabsDropdownWidth, margin: 0, padding: `${token.paddingXXS}px ${token.paddingSM}px`, color: token.colorText, fontWeight: 'normal', fontSize: token.fontSize, lineHeight: token.lineHeight, cursor: 'pointer', transition: `all ${token.motionDurationSlow}`, '> span': { flex: 1, whiteSpace: 'nowrap' }, '&-remove': { flex: 'none', marginLeft: { _skip_check_: true, value: token.marginSM }, color: token.colorTextDescription, fontSize: token.fontSizeSM, background: 'transparent', border: 0, cursor: 'pointer', '&:hover': { color: itemHoverColor } }, '&:hover': { background: token.controlItemBgHover }, '&-disabled': { '&, &:hover': { color: token.colorTextDisabled, background: 'transparent', cursor: 'not-allowed' } } }) } }) }; }; const genPositionStyle = token => { const { componentCls, margin, colorBorderSecondary, horizontalMargin, verticalItemPadding, verticalItemMargin } = token; return { // ========================== Top & Bottom ========================== [`${componentCls}-top, ${componentCls}-bottom`]: { flexDirection: 'column', [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { margin: horizontalMargin, '&::before': { position: 'absolute', right: { _skip_check_: true, value: 0 }, left: { _skip_check_: true, value: 0 }, borderBottom: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`, content: "''" }, [`${componentCls}-ink-bar`]: { height: token.lineWidthBold, '&-animated': { transition: `width ${token.motionDurationSlow}, left ${token.motionDurationSlow}, right ${token.motionDurationSlow}` } }, [`${componentCls}-nav-wrap`]: { '&::before, &::after': { top: 0, bottom: 0, width: token.controlHeight }, '&::before': { left: { _skip_check_: true, value: 0 }, boxShadow: token.boxShadowTabsOverflowLeft }, '&::after': { right: { _skip_check_: true, value: 0 }, boxShadow: token.boxShadowTabsOverflowRight }, [`&${componentCls}-nav-wrap-ping-left::before`]: { opacity: 1 }, [`&${componentCls}-nav-wrap-ping-right::after`]: { opacity: 1 } } } }, [`${componentCls}-top`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { '&::before': { bottom: 0 }, [`${componentCls}-ink-bar`]: { bottom: 0 } } }, [`${componentCls}-bottom`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { order: 1, marginTop: `${margin}px`, marginBottom: 0, '&::before': { top: 0 }, [`${componentCls}-ink-bar`]: { top: 0 } }, [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: { order: 0 } }, // ========================== Left & Right ========================== [`${componentCls}-left, ${componentCls}-right`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { flexDirection: 'column', minWidth: token.controlHeight * 1.25, // >>>>>>>>>>> Tab [`${componentCls}-tab`]: { padding: verticalItemPadding, textAlign: 'center' }, [`${componentCls}-tab + ${componentCls}-tab`]: { margin: verticalItemMargin }, // >>>>>>>>>>> Nav [`${componentCls}-nav-wrap`]: { flexDirection: 'column', '&::before, &::after': { right: { _skip_check_: true, value: 0 }, left: { _skip_check_: true, value: 0 }, height: token.controlHeight }, '&::before': { top: 0, boxShadow: token.boxShadowTabsOverflowTop }, '&::after': { bottom: 0, boxShadow: token.boxShadowTabsOverflowBottom }, [`&${componentCls}-nav-wrap-ping-top::before`]: { opacity: 1 }, [`&${componentCls}-nav-wrap-ping-bottom::after`]: { opacity: 1 } }, // >>>>>>>>>>> Ink Bar [`${componentCls}-ink-bar`]: { width: token.lineWidthBold, '&-animated': { transition: `height ${token.motionDurationSlow}, top ${token.motionDurationSlow}` } }, [`${componentCls}-nav-list, ${componentCls}-nav-operations`]: { flex: '1 0 auto', flexDirection: 'column' } } }, [`${componentCls}-left`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-ink-bar`]: { right: { _skip_check_: true, value: 0 } } }, [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: { marginLeft: { _skip_check_: true, value: `-${token.lineWidth}px` }, borderLeft: { _skip_check_: true, value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}` }, [`> ${componentCls}-content > ${componentCls}-tabpane`]: { paddingLeft: { _skip_check_: true, value: token.paddingLG } } } }, [`${componentCls}-right`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { order: 1, [`${componentCls}-ink-bar`]: { left: { _skip_check_: true, value: 0 } } }, [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: { order: 0, marginRight: { _skip_check_: true, value: -token.lineWidth }, borderRight: { _skip_check_: true, value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}` }, [`> ${componentCls}-content > ${componentCls}-tabpane`]: { paddingRight: { _skip_check_: true, value: token.paddingLG } } } } }; }; const genSizeStyle = token => { const { componentCls, cardPaddingSM, cardPaddingLG, horizontalItemPaddingSM, horizontalItemPaddingLG } = token; return { [componentCls]: { '&-small': { [`> ${componentCls}-nav`]: { [`${componentCls}-tab`]: { padding: horizontalItemPaddingSM, fontSize: token.titleFontSizeSM } } }, '&-large': { [`> ${componentCls}-nav`]: { [`${componentCls}-tab`]: { padding: horizontalItemPaddingLG, fontSize: token.titleFontSizeLG } } } }, [`${componentCls}-card`]: { [`&${componentCls}-small`]: { [`> ${componentCls}-nav`]: { [`${componentCls}-tab`]: { padding: cardPaddingSM } }, [`&${componentCls}-bottom`]: { [`> ${componentCls}-nav ${componentCls}-tab`]: { borderRadius: `0 0 ${token.borderRadius}px ${token.borderRadius}px` } }, [`&${componentCls}-top`]: { [`> ${componentCls}-nav ${componentCls}-tab`]: { borderRadius: `${token.borderRadius}px ${token.borderRadius}px 0 0` } }, [`&${componentCls}-right`]: { [`> ${componentCls}-nav ${componentCls}-tab`]: { borderRadius: { _skip_check_: true, value: `0 ${token.borderRadius}px ${token.borderRadius}px 0` } } }, [`&${componentCls}-left`]: { [`> ${componentCls}-nav ${componentCls}-tab`]: { borderRadius: { _skip_check_: true, value: `${token.borderRadius}px 0 0 ${token.borderRadius}px` } } } }, [`&${componentCls}-large`]: { [`> ${componentCls}-nav`]: { [`${componentCls}-tab`]: { padding: cardPaddingLG } } } } }; }; const genTabStyle = token => { const { componentCls, itemActiveColor, itemHoverColor, iconCls, tabsHorizontalItemMargin, horizontalItemPadding, itemSelectedColor, itemColor } = token; const tabCls = `${componentCls}-tab`; return { [tabCls]: { position: 'relative', WebkitTouchCallout: 'none', WebkitTapHighlightColor: 'transparent', display: 'inline-flex', alignItems: 'center', padding: horizontalItemPadding, fontSize: token.titleFontSize, background: 'transparent', border: 0, outline: 'none', cursor: 'pointer', color: itemColor, '&-btn, &-remove': Object.assign({ '&:focus:not(:focus-visible), &:active': { color: itemActiveColor } }, (0,style/* genFocusStyle */.Qy)(token)), '&-btn': { outline: 'none', transition: 'all 0.3s' }, '&-remove': { flex: 'none', marginRight: { _skip_check_: true, value: -token.marginXXS }, marginLeft: { _skip_check_: true, value: token.marginXS }, color: token.colorTextDescription, fontSize: token.fontSizeSM, background: 'transparent', border: 'none', outline: 'none', cursor: 'pointer', transition: `all ${token.motionDurationSlow}`, '&:hover': { color: token.colorTextHeading } }, '&:hover': { color: itemHoverColor }, [`&${tabCls}-active ${tabCls}-btn`]: { color: itemSelectedColor, textShadow: token.tabsActiveTextShadow }, [`&${tabCls}-disabled`]: { color: token.colorTextDisabled, cursor: 'not-allowed' }, [`&${tabCls}-disabled ${tabCls}-btn, &${tabCls}-disabled ${componentCls}-remove`]: { '&:focus, &:active': { color: token.colorTextDisabled } }, [`& ${tabCls}-remove ${iconCls}`]: { margin: 0 }, [iconCls]: { marginRight: { _skip_check_: true, value: token.marginSM } } }, [`${tabCls} + ${tabCls}`]: { margin: { _skip_check_: true, value: tabsHorizontalItemMargin } } }; }; const genRtlStyle = token => { const { componentCls, tabsHorizontalItemMarginRTL, iconCls, cardGutter } = token; const rtlCls = `${componentCls}-rtl`; return { [rtlCls]: { direction: 'rtl', [`${componentCls}-nav`]: { [`${componentCls}-tab`]: { margin: { _skip_check_: true, value: tabsHorizontalItemMarginRTL }, [`${componentCls}-tab:last-of-type`]: { marginLeft: { _skip_check_: true, value: 0 } }, [iconCls]: { marginRight: { _skip_check_: true, value: 0 }, marginLeft: { _skip_check_: true, value: `${token.marginSM}px` } }, [`${componentCls}-tab-remove`]: { marginRight: { _skip_check_: true, value: `${token.marginXS}px` }, marginLeft: { _skip_check_: true, value: `-${token.marginXXS}px` }, [iconCls]: { margin: 0 } } } }, [`&${componentCls}-left`]: { [`> ${componentCls}-nav`]: { order: 1 }, [`> ${componentCls}-content-holder`]: { order: 0 } }, [`&${componentCls}-right`]: { [`> ${componentCls}-nav`]: { order: 0 }, [`> ${componentCls}-content-holder`]: { order: 1 } }, // ====================== Card ====================== [`&${componentCls}-card${componentCls}-top, &${componentCls}-card${componentCls}-bottom`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-tab + ${componentCls}-tab`]: { marginRight: { _skip_check_: true, value: cardGutter }, marginLeft: { _skip_check_: true, value: 0 } } } } }, [`${componentCls}-dropdown-rtl`]: { direction: 'rtl' }, [`${componentCls}-menu-item`]: { [`${componentCls}-dropdown-rtl`]: { textAlign: { _skip_check_: true, value: 'right' } } } }; }; const genTabsStyle = token => { const { componentCls, tabsCardPadding, cardHeight, cardGutter, itemHoverColor, itemActiveColor, colorBorderSecondary } = token; return { [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, (0,style/* resetComponent */.Wf)(token)), { display: 'flex', // ========================== Navigation ========================== [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { position: 'relative', display: 'flex', flex: 'none', alignItems: 'center', [`${componentCls}-nav-wrap`]: { position: 'relative', display: 'flex', flex: 'auto', alignSelf: 'stretch', overflow: 'hidden', whiteSpace: 'nowrap', transform: 'translate(0)', // >>>>> Ping shadow '&::before, &::after': { position: 'absolute', zIndex: 1, opacity: 0, transition: `opacity ${token.motionDurationSlow}`, content: "''", pointerEvents: 'none' } }, [`${componentCls}-nav-list`]: { position: 'relative', display: 'flex', transition: `opacity ${token.motionDurationSlow}` }, // >>>>>>>> Operations [`${componentCls}-nav-operations`]: { display: 'flex', alignSelf: 'stretch' }, [`${componentCls}-nav-operations-hidden`]: { position: 'absolute', visibility: 'hidden', pointerEvents: 'none' }, [`${componentCls}-nav-more`]: { position: 'relative', padding: tabsCardPadding, background: 'transparent', border: 0, color: token.colorText, '&::after': { position: 'absolute', right: { _skip_check_: true, value: 0 }, bottom: 0, left: { _skip_check_: true, value: 0 }, height: token.controlHeightLG / 8, transform: 'translateY(100%)', content: "''" } }, [`${componentCls}-nav-add`]: Object.assign({ minWidth: cardHeight, marginLeft: { _skip_check_: true, value: cardGutter }, padding: `0 ${token.paddingXS}px`, background: 'transparent', border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`, borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`, outline: 'none', cursor: 'pointer', color: token.colorText, transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`, '&:hover': { color: itemHoverColor }, '&:active, &:focus:not(:focus-visible)': { color: itemActiveColor } }, (0,style/* genFocusStyle */.Qy)(token)) }, [`${componentCls}-extra-content`]: { flex: 'none' }, // ============================ InkBar ============================ [`${componentCls}-ink-bar`]: { position: 'absolute', background: token.inkBarColor, pointerEvents: 'none' } }), genTabStyle(token)), { // =========================== TabPanes =========================== [`${componentCls}-content`]: { position: 'relative', width: '100%' }, [`${componentCls}-content-holder`]: { flex: 'auto', minWidth: 0, minHeight: 0 }, [`${componentCls}-tabpane`]: { outline: 'none', '&-hidden': { display: 'none' } } }), [`${componentCls}-centered`]: { [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: { [`${componentCls}-nav-wrap`]: { [`&:not([class*='${componentCls}-nav-wrap-ping'])`]: { justifyContent: 'center' } } } } }; }; // ============================== Export ============================== /* harmony default export */ var tabs_style = ((0,genComponentStyleHook/* default */.Z)('Tabs', token => { const tabsToken = (0,statistic/* merge */.TS)(token, { // `cardPadding` is empty by default, so we could calculate with dynamic `cardHeight` tabsCardPadding: token.cardPadding || `${(token.cardHeight - Math.round(token.fontSize * token.lineHeight)) / 2 - token.lineWidth}px ${token.padding}px`, dropdownEdgeChildVerticalPadding: token.paddingXXS, tabsActiveTextShadow: '0 0 0.25px currentcolor', tabsDropdownHeight: 200, tabsDropdownWidth: 120, tabsHorizontalItemMargin: `0 0 0 ${token.horizontalItemGutter}px`, tabsHorizontalItemMarginRTL: `0 0 0 ${token.horizontalItemGutter}px` }); return [genSizeStyle(tabsToken), genRtlStyle(tabsToken), genPositionStyle(tabsToken), genDropdownStyle(tabsToken), genCardStyle(tabsToken), genTabsStyle(tabsToken), style_motion(tabsToken)]; }, token => { const cardHeight = token.controlHeightLG; return { zIndexPopup: token.zIndexPopupBase + 50, cardBg: token.colorFillAlter, cardHeight, // Initialize with empty string, because cardPadding will be calculated with cardHeight by default. cardPadding: ``, cardPaddingSM: `${token.paddingXXS * 1.5}px ${token.padding}px`, cardPaddingLG: `${token.paddingXS}px ${token.padding}px ${token.paddingXXS * 1.5}px`, titleFontSize: token.fontSize, titleFontSizeLG: token.fontSizeLG, titleFontSizeSM: token.fontSize, inkBarColor: token.colorPrimary, horizontalMargin: `0 0 ${token.margin}px 0`, horizontalItemGutter: 32, // Initialize with empty string, because horizontalItemMargin will be calculated with horizontalItemGutter by default. horizontalItemMargin: ``, horizontalItemMarginRTL: ``, horizontalItemPadding: `${token.paddingSM}px 0`, horizontalItemPaddingSM: `${token.paddingXS}px 0`, horizontalItemPaddingLG: `${token.padding}px 0`, verticalItemPadding: `${token.paddingXS}px ${token.paddingLG}px`, verticalItemMargin: `${token.margin}px 0 0 0`, itemColor: token.colorText, itemSelectedColor: token.colorPrimary, itemHoverColor: token.colorPrimaryHover, itemActiveColor: token.colorPrimaryActive, cardGutter: token.marginXXS / 2 }; })); ;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/index.js "use client"; var tabs_rest = undefined && undefined.__rest || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; const tabs_Tabs = props => { const { type, className, rootClassName, size: customSize, onEdit, hideAdd, centered, addIcon, popupClassName, children, items, animated, style, indicatorSize } = props, otherProps = tabs_rest(props, ["type", "className", "rootClassName", "size", "onEdit", "hideAdd", "centered", "addIcon", "popupClassName", "children", "items", "animated", "style", "indicatorSize"]); const { prefixCls: customizePrefixCls, moreIcon = /*#__PURE__*/_react_17_0_2_react.createElement(EllipsisOutlined/* default */.Z, null) } = otherProps; const { direction, tabs, getPrefixCls, getPopupContainer } = _react_17_0_2_react.useContext(context/* ConfigContext */.E_); const prefixCls = getPrefixCls('tabs', customizePrefixCls); const [wrapSSR, hashId] = tabs_style(prefixCls); let editable; if (type === 'editable-card') { editable = { onEdit: (editType, _ref) => { let { key, event } = _ref; onEdit === null || onEdit === void 0 ? void 0 : onEdit(editType === 'add' ? event : key, editType); }, removeIcon: /*#__PURE__*/_react_17_0_2_react.createElement(CloseOutlined/* default */.Z, null), addIcon: addIcon || /*#__PURE__*/_react_17_0_2_react.createElement(PlusOutlined/* default */.Z, null), showAdd: hideAdd !== true }; } const rootPrefixCls = getPrefixCls(); false ? 0 : void 0; const mergedItems = useLegacyItems(items, children); const mergedAnimated = useAnimateConfig_useAnimateConfig(prefixCls, animated); const size = (0,useSize/* default */.Z)(customSize); const mergedStyle = Object.assign(Object.assign({}, tabs === null || tabs === void 0 ? void 0 : tabs.style), style); return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(_rc_tabs_12_12_1_rc_tabs_es, Object.assign({ direction: direction, getPopupContainer: getPopupContainer, moreTransitionName: `${rootPrefixCls}-slide-up` }, otherProps, { items: mergedItems, className: _classnames_2_5_1_classnames_default()({ [`${prefixCls}-${size}`]: size, [`${prefixCls}-card`]: ['card', 'editable-card'].includes(type), [`${prefixCls}-editable-card`]: type === 'editable-card', [`${prefixCls}-centered`]: centered }, tabs === null || tabs === void 0 ? void 0 : tabs.className, className, rootClassName, hashId), popupClassName: _classnames_2_5_1_classnames_default()(popupClassName, hashId), style: mergedStyle, editable: editable, moreIcon: moreIcon, prefixCls: prefixCls, animated: mergedAnimated, indicatorSize: indicatorSize !== null && indicatorSize !== void 0 ? indicatorSize : tabs === null || tabs === void 0 ? void 0 : tabs.indicatorSize }))); }; tabs_Tabs.TabPane = tabs_TabPane; if (false) {} /* harmony default export */ var tabs = (tabs_Tabs); /***/ }) }]);