{"version":3,"file":"tab-nav-item.mjs","sources":["../../../components/tabs/tab-nav-item.tsx"],"sourcesContent":["import { computed, defineComponent, ref, PropType } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport tabProps from './props';\nimport tabPanelProps from './tab-panel-props';\n\n// hooks\nimport useRipple from '../hooks/useRipple';\nimport { usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\n\nexport default defineComponent({\n  name: 'TTabNavItem',\n  props: {\n    index: Number,\n    active: {\n      type: Boolean,\n    },\n    theme: tabProps.theme,\n    size: tabProps.size,\n    placement: tabProps.placement,\n    label: {\n      type: null,\n    },\n    disabled: tabPanelProps.disabled,\n    removable: tabPanelProps.removable,\n    value: tabPanelProps.value,\n    onClick: Function as PropType<Function>,\n    onRemove: Function as PropType<Function>,\n  },\n\n  setup(props) {\n    const itemRef = ref<HTMLElement>();\n    useRipple(itemRef);\n\n    const COMPONENT_NAME = usePrefixClass('tabs__nav-item');\n    const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n    const classPrefix = usePrefixClass();\n    const { STATUS, SIZE } = useCommonClassName();\n\n    const removeBtnClick = ({ e }: { e: MouseEvent }) => {\n      if (e) e.stopPropagation();\n      props.onRemove({ e, value: props.value, index: props.index });\n    };\n    const onClickNav = (e: MouseEvent) => {\n      if (props.disabled) return;\n      props.onClick(e);\n    };\n\n    const navItemClass = computed(() => {\n      return {\n        [COMPONENT_NAME.value]: true,\n        [`${classPrefix.value}-tabs__nav--card`]: props.theme === 'card',\n        [STATUS.value.disabled]: props.disabled,\n        [STATUS.value.active]: props.active,\n        [`${classPrefix.value}-is-left`]: props.placement === 'left',\n        [`${classPrefix.value}-is-right`]: props.placement === 'right',\n        [SIZE.value.medium]: props.size === 'medium',\n        [SIZE.value.large]: props.size === 'large',\n      };\n    });\n\n    const renderCardItem = () => {\n      return (\n        <div class={navItemClass.value} onClick={onClickNav} ref={itemRef}>\n          <span class={`${COMPONENT_NAME.value}-text-wrapper`}>{props.label}</span>\n          {props.removable && !props.disabled ? <CloseIcon class=\"remove-btn\" onClick={removeBtnClick} /> : null}\n        </div>\n      );\n    };\n    const renderNormalItem = () => {\n      return (\n        <div class={navItemClass.value} onClick={onClickNav}>\n          <div\n            class={[\n              `${COMPONENT_NAME.value}-wrapper`,\n              {\n                [STATUS.value.disabled]: props.disabled,\n                [STATUS.value.active]: props.active,\n              },\n            ]}\n            ref={itemRef}\n          >\n            <span class={`${COMPONENT_NAME.value}-text-wrapper`}>{props.label}</span>\n          </div>\n          {props.removable && !props.disabled ? <CloseIcon class=\"remove-btn\" onClick={removeBtnClick} /> : null}\n        </div>\n      );\n    };\n\n    return () => {\n      return props.theme === 'card' ? renderCardItem() : renderNormalItem();\n    };\n  },\n});\n"],"names":["defineComponent","name","props","index","Number","active","type","Boolean","theme","tabProps","size","placement","label","disabled","tabPanelProps","removable","value","onClick","Function","onRemove","setup","itemRef","ref","useRipple","COMPONENT_NAME","usePrefixClass","_useGlobalIcon","useGlobalIcon","CloseIcon","TdCloseIcon","classPrefix","_useCommonClassName","useCommonClassName","STATUS","SIZE","removeBtnClick","_ref","e","stopPropagation","onClickNav","navItemClass","computed","_defineProperty","concat","medium","large","renderCardItem","_createVNode","renderNormalItem"],"mappings":"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"}