UNPKG

tdesign-vue-next

Version:
1 lines 7.41 kB
{"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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"}