{"version":3,"file":"InternalTabs.cjs","sources":["../../../../../../packages/components/tabs/src/InternalTabs.tsx"],"sourcesContent":["import type { Key } from '@antdv/types';\nimport type { SlotsType } from 'vue';\nimport type { AnimatedConfig, EditableConfig, Tab } from './interface';\nimport { CloseOutlined, PlusOutlined } from '@ant-design/icons-vue';\nimport { useMergedState, useState } from '@antdv/hooks';\nimport { arrayType, classNames, devWarning, initDefaultProps, isMobile } from '@antdv/utils';\nimport { pick } from 'lodash-es';\n\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport { computed, defineComponent, onMounted, watchEffect } from 'vue';\n\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\n\nimport useStyle from '../style';\nimport { tabsProps } from './props';\nimport { useProvideTabs } from './TabContext';\nimport TabNavList from './TabNavList';\nimport TabPanelList from './TabPanelList';\n\n// Used for accessibility\nlet uuid = 0;\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'InternalTabs',\n  inheritAttrs: false,\n  props: {\n    ...initDefaultProps(tabsProps(), {\n      tabPosition: 'top',\n      animated: {\n        inkBar: true,\n        tabPane: false,\n      },\n    }),\n    tabs: arrayType<Tab[]>(),\n  },\n  slots: Object as SlotsType<{\n    tabBarExtraContent?: any\n    leftExtra?: any\n    rightExtra?: any\n    moreIcon?: any\n    addIcon?: any\n    removeIcon?: any\n    renderTabBar?: any\n    default: any\n  }>,\n  // emits: ['tabClick', 'tabScroll', 'change', 'update:activeKey'],\n  setup(props, { attrs, slots }) {\n    devWarning(\n      !(props.onPrevClick !== undefined) && !(props.onNextClick !== undefined),\n      'Tabs',\n      '`onPrevClick / @prevClick` and `onNextClick / @nextClick` has been removed. Please use `onTabScroll / @tabScroll` instead.',\n    );\n    devWarning(\n      !(props.tabBarExtraContent !== undefined),\n      'Tabs',\n      '`tabBarExtraContent` prop has been removed. Please use `rightExtra` slot instead.',\n    );\n    devWarning(\n      !(slots.tabBarExtraContent !== undefined),\n      'Tabs',\n      '`tabBarExtraContent` slot is deprecated. Please use `rightExtra` slot instead.',\n    );\n    const { prefixCls, direction, size, rootPrefixCls, getPopupContainer } = useConfigInject(\n      'tabs',\n      props,\n    );\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    const rtl = computed(() => direction.value === 'rtl');\n    const mergedAnimated = computed<AnimatedConfig>(() => {\n      const { animated, tabPosition } = props;\n      if (animated === false || ['left', 'right'].includes(tabPosition)) {\n        return {\n          inkBar: false,\n          tabPane: false,\n        };\n      } else if (animated === true) {\n        return {\n          inkBar: true,\n          tabPane: true,\n        };\n      } else {\n        return {\n          inkBar: true,\n          tabPane: false,\n          ...(typeof animated === 'object' ? animated : {}),\n        };\n      }\n    });\n\n    // ======================== Mobile ========================\n    const [mobile, setMobile] = useState(false);\n    onMounted(() => {\n      // Only update on the client side\n      setMobile(isMobile());\n    });\n\n    // ====================== Active Key ======================\n    const [mergedActiveKey, setMergedActiveKey] = useMergedState<Key>(() => props.tabs[0]?.key, {\n      value: computed(() => props.activeKey),\n      defaultValue: props.defaultActiveKey,\n    });\n    const [activeIndex, setActiveIndex] = useState(() =>\n      props.tabs.findIndex(tab => tab.key === mergedActiveKey.value),\n    );\n\n    watchEffect(() => {\n      let newActiveIndex = props.tabs.findIndex(tab => tab.key === mergedActiveKey.value);\n      if (newActiveIndex === -1) {\n        newActiveIndex = Math.max(0, Math.min(activeIndex.value, props.tabs.length - 1));\n        setMergedActiveKey(props.tabs[newActiveIndex]?.key);\n      }\n      setActiveIndex(newActiveIndex);\n    });\n\n    // ===================== Accessibility ====================\n    const [mergedId, setMergedId] = useMergedState(null, {\n      value: computed(() => props.id),\n    });\n\n    const mergedTabPosition = computed(() => {\n      if (mobile.value && !['left', 'right'].includes(props.tabPosition))\n        return 'top';\n      else\n        return props.tabPosition;\n    });\n\n    onMounted(() => {\n      if (!props.id) {\n        setMergedId(`rc-tabs-${process.env.NODE_ENV === 'test' ? 'test' : uuid}`);\n        uuid += 1;\n      }\n    });\n\n    // ======================== Events ========================\n    const onInternalTabClick = (key: Key, e: MouseEvent | KeyboardEvent) => {\n      props.onTabClick?.(key, e);\n      const isActiveChanged = key !== mergedActiveKey.value;\n      setMergedActiveKey(key);\n      if (isActiveChanged)\n        props.onChange?.(key);\n    };\n\n    useProvideTabs({\n      tabs: computed(() => props.tabs),\n      prefixCls,\n    });\n\n    return () => {\n      const {\n        id,\n        type,\n        tabBarGutter,\n        tabBarStyle,\n        locale,\n        destroyInactiveTabPane,\n        renderTabBar = slots.renderTabBar,\n        onTabScroll,\n        hideAdd,\n        centered,\n      } = props;\n      // ======================== Render ========================\n      const sharedProps = {\n        id: mergedId.value,\n        activeKey: mergedActiveKey.value,\n        animated: mergedAnimated.value,\n        tabPosition: mergedTabPosition.value,\n        rtl: rtl.value,\n        mobile: mobile.value,\n      };\n\n      let editable: EditableConfig | undefined;\n      if (type === 'editable-card') {\n        editable = {\n          onEdit: (editType, { key, event }) => {\n            props.onEdit?.(editType === 'add' ? event : key!, editType);\n          },\n          removeIcon: () => <CloseOutlined />,\n          addIcon: slots.addIcon ? slots.addIcon : () => <PlusOutlined />,\n          showAdd: hideAdd !== true,\n        };\n      }\n\n      let tabNavBar;\n\n      const tabNavBarProps = {\n        ...sharedProps,\n        moreTransitionName: `${rootPrefixCls.value}-slide-up`,\n        editable,\n        locale,\n        tabBarGutter,\n        onTabClick: onInternalTabClick,\n        onTabScroll,\n        style: tabBarStyle,\n        getPopupContainer: getPopupContainer.value,\n        popupClassName: classNames(props.popupClassName, hashId.value),\n      };\n\n      if (renderTabBar) {\n        tabNavBar = renderTabBar({ ...tabNavBarProps, DefaultTabBar: TabNavList });\n      } else {\n        tabNavBar = (\n          <TabNavList\n            {...tabNavBarProps}\n            v-slots={pick(slots, ['moreIcon', 'leftExtra', 'rightExtra', 'tabBarExtraContent'])}\n          />\n        );\n      }\n      const pre = prefixCls.value;\n\n      return wrapSSR(\n        <div\n          {...attrs}\n          id={id}\n          class={classNames(\n            pre,\n            `${pre}-${mergedTabPosition.value}`,\n            {\n              [hashId.value]: true,\n              [`${pre}-${size.value}`]: size.value,\n              [`${pre}-card`]: ['card', 'editable-card'].includes(type as string),\n              [`${pre}-editable-card`]: type === 'editable-card',\n              [`${pre}-centered`]: centered,\n              [`${pre}-mobile`]: mobile.value,\n              [`${pre}-editable`]: type === 'editable-card',\n              [`${pre}-rtl`]: rtl.value,\n            },\n            attrs.class,\n          )}\n        >\n          {tabNavBar}\n          <TabPanelList\n            destroyInactiveTabPane={destroyInactiveTabPane}\n            {...sharedProps}\n            animated={mergedAnimated.value}\n          />\n        </div>,\n      );\n    };\n  },\n});\n"],"names":["uuid","defineComponent","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","tabsProps","tabPosition","animated","inkBar","tabPane","tabs","arrayType","slots","Object","setup","attrs","devWarning","onPrevClick","undefined","onNextClick","tabBarExtraContent","prefixCls","direction","size","rootPrefixCls","getPopupContainer","useConfigInject","wrapSSR","hashId","useStyle","rtl","computed","value","mergedAnimated","includes","mobile","setMobile","useState","onMounted","isMobile","mergedActiveKey","setMergedActiveKey","useMergedState","key","activeKey","defaultValue","defaultActiveKey","activeIndex","setActiveIndex","findIndex","tab","watchEffect","newActiveIndex","Math","max","min","length","mergedId","setMergedId","id","mergedTabPosition","process","env","NODE_ENV","onInternalTabClick","e","onTabClick","isActiveChanged","onChange","useProvideTabs","type","tabBarGutter","tabBarStyle","locale","destroyInactiveTabPane","renderTabBar","onTabScroll","hideAdd","centered","sharedProps","editable","onEdit","editType","event","removeIcon","_createVNode","CloseOutlined","addIcon","PlusOutlined","showAdd","tabNavBar","tabNavBarProps","moreTransitionName","style","popupClassName","classNames","DefaultTabBar","TabNavList","pick","pre","class","TabPanelList"],"mappings":"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"}