tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 8.19 kB
Source Map (JSON)
{"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';\nimport { TdTabsProps, TdTabPanelProps } from './type';\n\n// hooks\nimport { useRipple, useGlobalIcon, usePrefixClass, useCommonClassName } from '@tdesign/shared-hooks';\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 draggable: tabPanelProps.draggable,\n onClick: Function as PropType<Function>,\n onTabRemove: Function as PropType<TdTabsProps['onRemove']>,\n onTabPanelRemove: Function as PropType<TdTabPanelProps['onRemove']>,\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.onTabRemove({ e, value: props.value, index: props.index });\n props.onTabPanelRemove?.({ e, value: props.value });\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 removeBtn = () =>\n props.removable && !props.disabled ? (\n <span onClick={(e) => removeBtnClick({ e })} class=\"remove-btn\">\n <CloseIcon />\n </span>\n ) : null;\n\n const renderCardItem = () => {\n return (\n <div class={navItemClass.value} onClick={onClickNav} ref={itemRef} draggable={props.draggable}>\n <span class={`${COMPONENT_NAME.value}-text-wrapper`}>{props.label}</span>\n {removeBtn()}\n </div>\n );\n };\n const renderNormalItem = () => {\n return (\n <div class={navItemClass.value} onClick={onClickNav} draggable={props.draggable}>\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 {removeBtn()}\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","draggable","onClick","Function","onTabRemove","onTabPanelRemove","setup","itemRef","ref","useRipple","COMPONENT_NAME","usePrefixClass","_useGlobalIcon","useGlobalIcon","CloseIcon","TdCloseIcon","classPrefix","_useCommonClassName","useCommonClassName","STATUS","SIZE","removeBtnClick","_ref","_props$onTabPanelRemo","e","stopPropagation","call","onClickNav","navItemClass","computed","_defineProperty","concat","medium","large","removeBtn","_createVNode","renderCardItem","renderNormalItem"],"mappings":"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"}