{"version":3,"file":"chunk-klb-pay34.js","sources":["../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/hooks/useIndicator.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useUpdate.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/rc-tabs/es/Tabs.js"],"sourcesContent":["import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport raf from \"rc-util/es/raf\";\nimport React, { useEffect, useRef, useState } from 'react';\nvar useIndicator = function useIndicator(options) {\n var activeTabOffset = options.activeTabOffset,\n horizontal = options.horizontal,\n rtl = options.rtl,\n _options$indicator = options.indicator,\n indicator = _options$indicator === void 0 ? {} : _options$indicator;\n var size = indicator.size,\n _indicator$align = indicator.align,\n align = _indicator$align === void 0 ? 'center' : _indicator$align;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n inkStyle = _useState2[0],\n setInkStyle = _useState2[1];\n var inkBarRafRef = useRef();\n var getLength = React.useCallback(function (origin) {\n if (typeof size === 'function') {\n return size(origin);\n }\n if (typeof size === 'number') {\n return size;\n }\n return origin;\n }, [size]);\n\n // Delay set ink style to avoid remove tab blink\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n useEffect(function () {\n var newInkStyle = {};\n if (activeTabOffset) {\n if (horizontal) {\n newInkStyle.width = getLength(activeTabOffset.width);\n var key = rtl ? 'right' : 'left';\n if (align === 'start') {\n newInkStyle[key] = activeTabOffset[key];\n }\n if (align === 'center') {\n newInkStyle[key] = activeTabOffset[key] + activeTabOffset.width / 2;\n newInkStyle.transform = rtl ? 'translateX(50%)' : 'translateX(-50%)';\n }\n if (align === 'end') {\n newInkStyle[key] = activeTabOffset[key] + activeTabOffset.width;\n newInkStyle.transform = 'translateX(-100%)';\n }\n } else {\n newInkStyle.height = getLength(activeTabOffset.height);\n if (align === 'start') {\n newInkStyle.top = activeTabOffset.top;\n }\n if (align === 'center') {\n newInkStyle.top = activeTabOffset.top + activeTabOffset.height / 2;\n newInkStyle.transform = 'translateY(-50%)';\n }\n if (align === 'end') {\n newInkStyle.top = activeTabOffset.top + activeTabOffset.height;\n newInkStyle.transform = 'translateY(-100%)';\n }\n }\n }\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, horizontal, rtl, align, getLength]);\n return {\n style: inkStyle\n };\n};\nexport default useIndicator;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n return useMemo(function () {\n var _tabs$;\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key);\n\n // Reuse last one when not exist yet\n if (!data) {\n var _tabs;\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n var entity = map.get(key) || _objectSpread({}, data);\n\n // Right\n entity.right = rightOffset - entity.left - entity.width;\n\n // Update entity\n map.set(key, entity);\n }\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n stateRef.current = newValue;\n forceUpdate({});\n }\n return [stateRef.current, setState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);\n\n// ================================= Hook =================================\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n var motionRef = useRef();\n\n // ========================= Events =========================\n // >>> Touch events\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n function onTouchMove(e) {\n if (!touchPosition) return;\n\n // e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null);\n\n // Swipe if needed\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY);\n\n // Skip swipe if low distance\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n }\n\n // >>> Wheel event\n var lastWheelDirectionRef = useRef();\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY;\n\n // Convert both to x & y since wheel only happened on PC\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n }\n\n // ========================= Effect =========================\n var touchEventsRef = useRef(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: true\n });\n\n // No need to clean up since element removed\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: true\n });\n ref.current.addEventListener('wheel', onProxyWheel, {\n passive: false\n });\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport { useRef, useState } from 'react';\n\n/**\n * Help to merge callback with `useLayoutEffect`.\n * One time will only trigger once.\n */\nexport default function useUpdate(callback) {\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n count = _useState2[0],\n setCount = _useState2[1];\n var effectRef = useRef(0);\n var callbackRef = useRef();\n callbackRef.current = callback;\n\n // Trigger on `useLayoutEffect`\n useLayoutUpdateEffect(function () {\n var _callbackRef$current;\n (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 || _callbackRef$current.call(callbackRef);\n }, [count]);\n\n // Trigger to update count\n return function () {\n if (effectRef.current !== count) {\n return;\n }\n effectRef.current += 1;\n setCount(effectRef.current);\n };\n}\nexport function useUpdateState(defaultState) {\n var batchRef = useRef([]);\n var _useState3 = useState({}),\n _useState4 = _slicedToArray(_useState3, 2),\n forceUpdate = _useState4[1];\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useUpdate(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n return [state.current, updater];\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport default function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var charUnit;\n var position;\n var transformSize;\n if (['top', 'bottom'].includes(tabPosition)) {\n charUnit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(transform);\n } else {\n charUnit = 'height';\n position = 'top';\n transformSize = -transform;\n }\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n var len = tabs.length;\n var endIndex = len;\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n if (Math.floor(offset[position] + offset[charUnit]) > Math.floor(transformSize + visibleTabContentValue)) {\n endIndex = i - 1;\n break;\n }\n }\n var startIndex = 0;\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n return startIndex >= endIndex ? [0, 0] : [startIndex, endIndex];\n }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","/**\n * We trade Map as deps which may change with same value but different ref object.\n * We should make it as hash for deps\n * */\nexport function stringify(obj) {\n var tgt;\n if (obj instanceof Map) {\n tgt = {};\n obj.forEach(function (v, k) {\n tgt[k] = v;\n });\n } else {\n tgt = obj;\n }\n return JSON.stringify(tgt);\n}\nvar RC_TABS_DOUBLE_QUOTE = 'TABS_DQ';\nexport function genDataNodeKey(key) {\n return String(key).replace(/\"/g, RC_TABS_DOUBLE_QUOTE);\n}\nexport function getRemovable(closable, closeIcon, editable, disabled) {\n if (\n // Only editable tabs can be removed\n !editable ||\n // Tabs cannot be removed when disabled\n disabled ||\n // closable is false\n closable === false ||\n // If closable is undefined, the remove button should be hidden when closeIcon is null or false\n closable === undefined && (closeIcon === false || closeIcon === null)) {\n return false;\n }\n return true;\n}","import * as React from 'react';\nvar AddButton = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n editable = props.editable,\n locale = props.locale,\n style = props.style;\n if (!editable || editable.showAdd === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n});\nexport default AddButton;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nvar ExtraContent = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var position = props.position,\n prefixCls = props.prefixCls,\n extra = props.extra;\n if (!extra) {\n return null;\n }\n var content;\n\n // Parse extra\n var assertExtra = {};\n if (_typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n if (position === 'right') {\n content = assertExtra.right;\n }\n if (position === 'left') {\n content = assertExtra.left;\n }\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\"),\n ref: ref\n }, content) : null;\n});\nif (process.env.NODE_ENV !== 'production') {\n ExtraContent.displayName = 'ExtraContent';\n}\nexport default ExtraContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { getRemovable } from \"../util\";\nimport AddButton from \"./AddButton\";\nvar OperationNode = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n id = props.id,\n tabs = props.tabs,\n locale = props.locale,\n mobile = props.mobile,\n _props$more = props.more,\n moreProps = _props$more === void 0 ? {} : _props$more,\n style = props.style,\n className = props.className,\n editable = props.editable,\n tabBarGutter = props.tabBarGutter,\n rtl = props.rtl,\n removeAriaLabel = props.removeAriaLabel,\n onTabClick = props.onTabClick,\n getPopupContainer = props.getPopupContainer,\n popupClassName = props.popupClassName;\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n var _moreProps$icon = moreProps.icon,\n moreIcon = _moreProps$icon === void 0 ? 'More' : _moreProps$icon;\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var menu = /*#__PURE__*/React.createElement(Menu, {\n onClick: function onClick(_ref) {\n var key = _ref.key,\n domEvent = _ref.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n prefixCls: \"\".concat(dropdownPrefix, \"-menu\"),\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var closable = tab.closable,\n disabled = tab.disabled,\n closeIcon = tab.closeIcon,\n key = tab.key,\n label = tab.label;\n var removable = getRemovable(closable, closeIcon, editable, disabled);\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: key,\n id: \"\".concat(popupId, \"-\").concat(key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n disabled: disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, key);\n }\n }, closeIcon || editable.removeIcon || '×'));\n }));\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n function onKeyDown(e) {\n var which = e.which;\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n return;\n }\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n case KeyCode.ESC:\n setOpen(false);\n break;\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) {\n onTabClick(selectedKey, e);\n }\n break;\n }\n }\n\n // ========================= Effect =========================\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]);\n\n // ========================= Render =========================\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, _extends({\n prefixCls: dropdownPrefix,\n overlay: menu,\n visible: tabs.length ? open : false,\n onVisibleChange: setOpen,\n overlayClassName: classNames(overlayClassName, popupClassName),\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n getPopupContainer: getPopupContainer\n }, moreProps), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n});\nexport default /*#__PURE__*/React.memo(OperationNode, function (_, next) {\n return (\n // https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { genDataNodeKey, getRemovable } from \"../util\";\nvar TabNode = function TabNode(props) {\n var prefixCls = props.prefixCls,\n id = props.id,\n active = props.active,\n _props$tab = props.tab,\n key = _props$tab.key,\n label = _props$tab.label,\n disabled = _props$tab.disabled,\n closeIcon = _props$tab.closeIcon,\n icon = _props$tab.icon,\n closable = props.closable,\n renderWrapper = props.renderWrapper,\n removeAriaLabel = props.removeAriaLabel,\n editable = props.editable,\n onClick = props.onClick,\n onFocus = props.onFocus,\n style = props.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n var removable = getRemovable(closable, closeIcon, editable, disabled);\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n onClick(e);\n }\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var labelNode = React.useMemo(function () {\n return icon && typeof label === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, label) : label;\n }, [label, icon]);\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key\n // ref={ref}\n ,\n \"data-node-key\": genDataNodeKey(key),\n className: classNames(tabPrefix, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(tabPrefix, \"-with-remove\"), removable), \"\".concat(tabPrefix, \"-active\"), active), \"\".concat(tabPrefix, \"-disabled\"), disabled)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, icon && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(tabPrefix, \"-icon\")\n }, icon), label && labelNode), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n};\nexport default TabNode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable react-hooks/exhaustive-deps */\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport TabContext from \"../TabContext\";\nimport useIndicator from \"../hooks/useIndicator\";\nimport useOffsets from \"../hooks/useOffsets\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useUpdate, { useUpdateState } from \"../hooks/useUpdate\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport { genDataNodeKey, stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\nvar getTabSize = function getTabSize(tab, containerRect) {\n // tabListRef\n var offsetWidth = tab.offsetWidth,\n offsetHeight = tab.offsetHeight,\n offsetTop = tab.offsetTop,\n offsetLeft = tab.offsetLeft;\n var _tab$getBoundingClien = tab.getBoundingClientRect(),\n width = _tab$getBoundingClien.width,\n height = _tab$getBoundingClien.height,\n left = _tab$getBoundingClien.left,\n top = _tab$getBoundingClien.top;\n\n // Use getBoundingClientRect to avoid decimal inaccuracy\n if (Math.abs(width - offsetWidth) < 1) {\n return [width, height, left - containerRect.left, top - containerRect.top];\n }\n return [offsetWidth, offsetHeight, offsetLeft, offsetTop];\n};\nvar getSize = function getSize(refObj) {\n var _ref = refObj.current || {},\n _ref$offsetWidth = _ref.offsetWidth,\n offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n _ref$offsetHeight = _ref.offsetHeight,\n offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n\n // Use getBoundingClientRect to avoid decimal inaccuracy\n if (refObj.current) {\n var _refObj$current$getBo = refObj.current.getBoundingClientRect(),\n width = _refObj$current$getBo.width,\n height = _refObj$current$getBo.height;\n if (Math.abs(width - offsetWidth) < 1) {\n return [width, height];\n }\n }\n return [offsetWidth, offsetHeight];\n};\n\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n return size[tabPositionTopOrBottom ? 0 : 1];\n};\nvar TabNavList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll,\n indicator = props.indicator;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var containerRef = useRef(null);\n var extraLeftRef = useRef(null);\n var extraRightRef = useRef(null);\n var tabsWrapperRef = useRef(null);\n var tabListRef = useRef(null);\n var operationsRef = useRef(null);\n var innerAddButtonRef = useRef(null);\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n var _useSyncState = useSyncState(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n var _useSyncState3 = useSyncState(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n var _useState = useState([0, 0]),\n _useState2 = _slicedToArray(_useState, 2),\n containerExcludeExtraSize = _useState2[0],\n setContainerExcludeExtraSize = _useState2[1];\n var _useState3 = useState([0, 0]),\n _useState4 = _slicedToArray(_useState3, 2),\n tabContentSize = _useState4[0],\n setTabContentSize = _useState4[1];\n var _useState5 = useState([0, 0]),\n _useState6 = _slicedToArray(_useState5, 2),\n addSize = _useState6[0],\n setAddSize = _useState6[1];\n var _useState7 = useState([0, 0]),\n _useState8 = _slicedToArray(_useState7, 2),\n operationSize = _useState8[0],\n setOperationSize = _useState8[1];\n var _useUpdateState = useUpdateState(new Map()),\n _useUpdateState2 = _slicedToArray(_useUpdateState, 2),\n tabSizes = _useUpdateState2[0],\n setTabSizes = _useUpdateState2[1];\n var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]);\n\n // ========================== Unit =========================\n var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n var needScroll = Math.floor(containerExcludeExtraSizeValue) < Math.floor(tabContentSizeValue + addSizeValue);\n var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue;\n\n // ========================== Util =========================\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n } else {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n }\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n if (value > transformMax) {\n return transformMax;\n }\n return value;\n }\n\n // ========================= Mobile ========================\n var touchMovingRef = useRef(null);\n var _useState9 = useState(),\n _useState10 = _slicedToArray(_useState9, 2),\n lockAnimation = _useState10[0],\n setLockAnimation = _useState10[1];\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n function clearTouchMoving() {\n if (touchMovingRef.current) {\n clearTimeout(touchMovingRef.current);\n }\n }\n useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n }\n\n // Skip scroll if place is enough\n if (!needScroll) {\n return false;\n }\n if (tabPositionTopOrBottom) {\n doMove(setTransformLeft, offsetX);\n } else {\n doMove(setTransformTop, offsetY);\n }\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n if (lockAnimation) {\n touchMovingRef.current = setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n return clearTouchMoving;\n }, [lockAnimation]);\n\n // ===================== Visible Range =====================\n // Render tab node & collect tab offset\n var _useVisibleRange = useVisibleRange(tabOffsets,\n // Container\n visibleTabContentValue,\n // Transform\n tabPositionTopOrBottom ? transformLeft : transformTop,\n // Tabs\n tabContentSizeValue,\n // Add\n addSizeValue,\n // Operation\n operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n\n // ========================= Scroll ========================\n var scrollToTab = useEvent(function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft;\n\n // RTL\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n }\n }\n // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n }\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n }\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n });\n\n // ========================== Tab ==========================\n var tabNodeStyle = {};\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */,\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n if (!tabsWrapperRef.current) {\n return;\n }\n // Focus element will make scrollLeft change which we should reset back\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n\n // Update buttons records\n var updateTabSizes = function updateTabSizes() {\n return setTabSizes(function () {\n var _tabListRef$current;\n var newSizes = new Map();\n var listRect = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.getBoundingClientRect();\n tabs.forEach(function (_ref2) {\n var _tabListRef$current2;\n var key = _ref2.key;\n var btnNode = (_tabListRef$current2 = tabListRef.current) === null || _tabListRef$current2 === void 0 ? void 0 : _tabListRef$current2.querySelector(\"[data-node-key=\\\"\".concat(genDataNodeKey(key), \"\\\"]\"));\n if (btnNode) {\n var _getTabSize = getTabSize(btnNode, listRect),\n _getTabSize2 = _slicedToArray(_getTabSize, 4),\n width = _getTabSize2[0],\n height = _getTabSize2[1],\n left = _getTabSize2[2],\n top = _getTabSize2[3];\n newSizes.set(key, {\n width: width,\n height: height,\n left: left,\n top: top\n });\n }\n });\n return newSizes;\n });\n };\n useEffect(function () {\n updateTabSizes();\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_')]);\n var onListHolderResize = useUpdate(function () {\n // Update wrapper records\n var containerSize = getSize(containerRef);\n var extraLeftSize = getSize(extraLeftRef);\n var extraRightSize = getSize(extraRightRef);\n setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n var newAddSize = getSize(innerAddButtonRef);\n setAddSize(newAddSize);\n var newOperationSize = getSize(operationsRef);\n setOperationSize(newOperationSize);\n\n // Which includes add button size\n var tabContentFullSize = getSize(tabListRef);\n setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]);\n\n // Update buttons records\n updateTabSizes();\n });\n\n // ======================== Dropdown =======================\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs));\n\n // =================== Link & Operations ===================\n var activeTabOffset = tabOffsets.get(activeKey);\n var _useIndicator = useIndicator({\n activeTabOffset: activeTabOffset,\n horizontal: tabPositionTopOrBottom,\n indicator: indicator,\n rtl: rtl\n }),\n indicatorStyle = _useIndicator.style;\n\n // ========================= Effect ========================\n useEffect(function () {\n scrollToTab();\n }, [activeKey, transformMin, transformMax, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]);\n\n // Should recalculate when rtl changed\n useEffect(function () {\n onListHolderResize();\n // eslint-disable-next-line\n }, [rtl]);\n\n // ========================= Render ========================\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft !== transformMax;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = transformLeft !== transformMin;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = transformTop !== transformMin;\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: useComposeRef(ref, containerRef),\n role: \"tablist\",\n className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraLeftRef,\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapPrefix, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: indicatorStyle\n }))))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraRightRef,\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n })));\n /* eslint-enable */\n});\nexport default TabNavList;","import classNames from 'classnames';\nimport * as React from 'react';\nvar TabPane = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n id = props.id,\n active = props.active,\n tabKey = props.tabKey,\n children = props.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: style,\n className: classNames(prefixCls, active && \"\".concat(prefixCls, \"-active\"), className),\n ref: ref\n }, children);\n});\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'TabPane';\n}\nexport default TabPane;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"renderTabBar\"],\n _excluded2 = [\"label\", \"key\"];\n// zombieJ: To compatible with `renderTabBar` usage.\n\nimport * as React from 'react';\nimport TabNavList from '.';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"../TabPanelList/TabPane\";\n// We have to create a TabNavList components.\nvar TabNavListWrapper = function TabNavListWrapper(_ref) {\n var renderTabBar = _ref.renderTabBar,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(TabContext),\n tabs = _React$useContext.tabs;\n if (renderTabBar) {\n var tabNavBarProps = _objectSpread(_objectSpread({}, restProps), {}, {\n // Legacy support. We do not use this actually\n panes: tabs.map(function (_ref2) {\n var label = _ref2.label,\n key = _ref2.key,\n restTabProps = _objectWithoutProperties(_ref2, _excluded2);\n return /*#__PURE__*/React.createElement(TabPane, _extends({\n tab: label,\n key: key,\n tabKey: key\n }, restTabProps));\n })\n });\n return renderTabBar(tabNavBarProps, TabNavList);\n }\n return /*#__PURE__*/React.createElement(TabNavList, restProps);\n};\nif (process.env.NODE_ENV !== 'production') {\n TabNavListWrapper.displayName = 'TabNavListWrapper';\n}\nexport default TabNavListWrapper;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"key\", \"forceRender\", \"style\", \"className\", \"destroyInactiveTabPane\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"./TabPane\";\nvar TabPanelList = function TabPanelList(props) {\n var id = props.id,\n activeKey = props.activeKey,\n animated = props.animated,\n tabPosition = props.tabPosition,\n destroyInactiveTabPane = props.destroyInactiveTabPane;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var tabPaneAnimated = animated.tabPane;\n var tabPanePrefixCls = \"\".concat(prefixCls, \"-tabpane\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated))\n }, tabs.map(function (item) {\n var key = item.key,\n forceRender = item.forceRender,\n paneStyle = item.style,\n paneClassName = item.className,\n itemDestroyInactiveTabPane = item.destroyInactiveTabPane,\n restTabProps = _objectWithoutProperties(item, _excluded);\n var active = key === activeKey;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: key,\n visible: active,\n forceRender: forceRender,\n removeOnLeave: !!(destroyInactiveTabPane || itemDestroyInactiveTabPane),\n leavedClassName: \"\".concat(tabPanePrefixCls, \"-hidden\")\n }, animated.tabPaneMotion), function (_ref, ref) {\n var motionStyle = _ref.style,\n motionClassName = _ref.className;\n return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {\n prefixCls: tabPanePrefixCls,\n id: id,\n tabKey: key,\n animated: tabPaneAnimated,\n active: active,\n style: _objectSpread(_objectSpread({}, paneStyle), motionStyle),\n className: classNames(paneClassName, motionClassName),\n ref: ref\n }));\n });\n })));\n};\nexport default TabPanelList;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nexport default function useAnimateConfig() {\n var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: false\n };\n } else {\n mergedAnimated = _objectSpread({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n }\n\n // Enable tabPane animation if provide motion\n if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {\n mergedAnimated.tabPane = true;\n }\n if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');\n }\n mergedAnimated.tabPane = false;\n }\n return mergedAnimated;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"items\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"more\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\", \"getPopupContainer\", \"popupClassName\", \"indicator\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport TabContext from \"./TabContext\";\nimport TabNavListWrapper from \"./TabNavList/Wrapper\";\nimport TabPanelList from \"./TabPanelList\";\nimport useAnimateConfig from \"./hooks/useAnimateConfig\";\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n\n// Used for accessibility\nvar uuid = 0;\nvar Tabs = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tabs' : _props$prefixCls,\n className = props.className,\n items = props.items,\n direction = props.direction,\n activeKey = props.activeKey,\n defaultActiveKey = props.defaultActiveKey,\n editable = props.editable,\n animated = props.animated,\n _props$tabPosition = props.tabPosition,\n tabPosition = _props$tabPosition === void 0 ? 'top' : _props$tabPosition,\n tabBarGutter = props.tabBarGutter,\n tabBarStyle = props.tabBarStyle,\n tabBarExtraContent = props.tabBarExtraContent,\n locale = props.locale,\n more = props.more,\n destroyInactiveTabPane = props.destroyInactiveTabPane,\n renderTabBar = props.renderTabBar,\n onChange = props.onChange,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll,\n getPopupContainer = props.getPopupContainer,\n popupClassName = props.popupClassName,\n indicator = props.indicator,\n restProps = _objectWithoutProperties(props, _excluded);\n var tabs = React.useMemo(function () {\n return (items || []).filter(function (item) {\n return item && _typeof(item) === 'object' && 'key' in item;\n });\n }, [items]);\n var rtl = direction === 'rtl';\n var mergedAnimated = useAnimateConfig(animated);\n\n // ======================== Mobile ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ====================== Active Key ======================\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n var _useState3 = useState(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1];\n\n // Reset active key if not exist anymore\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]);\n\n // ===================== Accessibility ====================\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n\n // Async generate id to avoid ssr mapping failed\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []);\n\n // ======================== Events ========================\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 || onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n if (isActiveChanged) {\n onChange === null || onChange === void 0 || onChange(key);\n }\n }\n\n // ======================== Render ========================\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: tabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n more: more,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: null,\n getPopupContainer: getPopupContainer,\n popupClassName: popupClassName,\n indicator: indicator\n });\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n id: id,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(tabPosition), _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-mobile\"), mobile), \"\".concat(prefixCls, \"-editable\"), editable), \"\".concat(prefixCls, \"-rtl\"), rtl), className)\n }, restProps), /*#__PURE__*/React.createElement(TabNavListWrapper, _extends({}, tabNavBarProps, {\n renderTabBar: renderTabBar\n })), /*#__PURE__*/React.createElement(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tabs.displayName = 'Tabs';\n}\nexport default Tabs;"],"names":["TabContext","createContext","useIndicator","options","activeTabOffset","horizontal","rtl","_options$indicator","indicator","size","_indicator$align","align","_useState","useState","_useState2","_slicedToArray","inkStyle","setInkStyle","inkBarRafRef","useRef","getLength","React","origin","cleanInkBarRaf","raf","useEffect","newInkStyle","key","DEFAULT_SIZE","useOffsets","tabs","tabSizes","holderScrollWidth","useMemo","_tabs$","map","lastOffset","rightOffset","i","data","_tabs","entity","_objectSpread","tab","useSyncState","defaultState","onChange","stateRef","React.useRef","_React$useState","React.useState","_React$useState2","forceUpdate","setState","updater","newValue","MIN_SWIPE_DISTANCE","STOP_SWIPE_DISTANCE","REFRESH_INTERVAL","SPEED_OFF_MULTIPLE","useTouchMove","ref","onOffset","touchPosition","setTouchPosition","_useState3","_useState4","lastTimestamp","setLastTimestamp","_useState5","_useState6","lastTimeDiff","setLastTimeDiff","_useState7","_useState8","setLastOffset","motionRef","onTouchStart","e","_e$touches$","screenX","screenY","onTouchMove","_e$touches$2","offsetX","offsetY","now","onTouchEnd","distanceX","distanceY","absX","absY","currentX","currentY","lastWheelDirectionRef","onWheel","deltaX","deltaY","mixed","touchEventsRef","React.useEffect","onProxyTouchStart","onProxyTouchMove","onProxyTouchEnd","onProxyWheel","useUpdate","callback","count","setCount","effectRef","callbackRef","useLayoutUpdateEffect","_callbackRef$current","useUpdateState","batchRef","state","flushUpdate","current","useVisibleRange","tabOffsets","visibleTabContentValue","transform","tabContentSizeValue","addNodeSizeValue","operationNodeSizeValue","_ref","tabPosition","charUnit","position","transformSize","len","endIndex","offset","startIndex","_i","_offset","stringify","obj","tgt","v","k","RC_TABS_DOUBLE_QUOTE","genDataNodeKey","getRemovable","closable","closeIcon","editable","disabled","AddButton","React.forwardRef","props","prefixCls","locale","style","React.createElement","event","ExtraContent","extra","content","assertExtra","_typeof","React.isValidElement","OperationNode","id","mobile","_props$more","moreProps","className","tabBarGutter","removeAriaLabel","onTabClick","getPopupContainer","popupClassName","open","setOpen","selectedKey","setSelectedKey","_moreProps$icon","moreIcon","popupId","dropdownPrefix","selectedItemId","dropdownAriaLabel","onRemoveTab","menu","Menu","domEvent","label","removable","MenuItem","selectOffset","enabledTabs","selectedIndex","onKeyDown","which","KeyCode","ele","moreStyle","_defineProperty","overlayClassName","classNames","moreNode","Dropdown","_extends","OperationNode$1","React.memo","_","next","TabNode","active","_props$tab","icon","renderWrapper","onClick","onFocus","tabPrefix","onInternalClick","labelNode","React.useMemo","node","getTabSize","containerRect","offsetWidth","offsetHeight","offsetTop","offsetLeft","_tab$getBoundingClien","width","height","left","top","getSize","refObj","_ref$offsetWidth","_ref$offsetHeight","_refObj$current$getBo","getUnitValue","tabPositionTopOrBottom","TabNavList","animated","activeKey","children","onTabScroll","_React$useContext","React.useContext","containerRef","extraLeftRef","extraRightRef","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useSyncState","prev","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","containerExcludeExtraSize","setContainerExcludeExtraSize","tabContentSize","setTabContentSize","addSize","setAddSize","operationSize","setOperationSize","_useUpdateState","_useUpdateState2","setTabSizes","containerExcludeExtraSizeValue","addSizeValue","operationSizeValue","needScroll","operationsHiddenClassName","transformMin","transformMax","alignInRange","value","touchMovingRef","_useState9","_useState10","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","doMove","_useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","scrollToTab","useEvent","tabOffset","newTransform","_newTransform","tabNodeStyle","tabNodes","updateTabSizes","_tabListRef$current","newSizes","listRect","_ref2","_tabListRef$current2","btnNode","_getTabSize","_getTabSize2","onListHolderResize","containerSize","extraLeftSize","extraRightSize","newAddSize","newOperationSize","tabContentFullSize","startHiddenTabs","endHiddenTabs","hiddenTabs","_toConsumableArray","_useIndicator","indicatorStyle","hasDropdown","wrapPrefix","pingLeft","pingRight","pingTop","pingBottom","ResizeObserver","useComposeRef","TabPane","tabKey","_excluded","_excluded2","TabNavListWrapper","renderTabBar","restProps","_objectWithoutProperties","tabNavBarProps","restTabProps","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","tabPanePrefixCls","item","forceRender","paneStyle","paneClassName","itemDestroyInactiveTabPane","CSSMotion","motionStyle","motionClassName","useAnimateConfig","mergedAnimated","uuid","Tabs","_props$prefixCls","items","direction","defaultActiveKey","_props$tabPosition","tabBarStyle","tabBarExtraContent","more","setMobile","isMobile","_useMergedState","useMergedState","_useMergedState2","mergedActiveKey","setMergedActiveKey","activeIndex","setActiveIndex","newActiveIndex","_tabs$newActiveIndex","_useMergedState3","_useMergedState4","mergedId","setMergedId","onInternalTabClick","isActiveChanged","sharedProps"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}