tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 5.77 kB
Source Map (JSON)
{"version":3,"file":"tag.mjs","sources":["../../src/tag/tag.tsx"],"sourcesContent":["import { computed, defineComponent } from 'vue';\nimport { CloseIcon } from 'tdesign-icons-vue-next';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport config from '../config';\nimport TagProps from './props';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-tag`,\n components: {\n CloseIcon,\n },\n props: TagProps,\n emits: ['close', 'click'],\n setup(props) {\n const tagClass = usePrefixClass('tag');\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const tagStyle = computed(() => {\n return props.maxWidth\n ? { maxWidth: typeof props.maxWidth === 'number' ? `${props.maxWidth}px` : props.maxWidth }\n : {};\n });\n\n const tagClasses = computed(() => [\n `${tagClass.value}`,\n `${tagClass.value}--${props.theme}`,\n `${tagClass.value}--${props.shape}`,\n `${tagClass.value}--${props.variant}`,\n `${tagClass.value}--${props.size}`,\n {\n [`${tagClass.value}--closable`]: props.closable,\n [`${tagClass.value}--disabled`]: props.disabled,\n },\n ]);\n\n const handleClose = (e: MouseEvent): void => {\n e.stopPropagation();\n if (!props.disabled) {\n props.onClose?.({ e });\n }\n };\n\n const handleClick = (e: MouseEvent): void => {\n if (!props.disabled) {\n props.onClick?.({ e });\n }\n };\n\n return () => {\n // 标签内容\n const tagContent = renderContent('default', 'content');\n // 图标\n const icon = renderTNodeJSX('icon');\n return (\n <span\n class={tagClasses.value}\n style={tagStyle.value}\n aria-disabled={props.disabled}\n role=\"button\"\n onClick={handleClick}\n >\n {icon && <span class={`${tagClass.value}__icon`}>{icon}</span>}\n <span class={`${tagClass.value}__text`}>{tagContent}</span>\n {props.closable && (\n <span class={`${tagClass.value}__icon-close`} onClick={handleClose}>\n <close-icon />\n </span>\n )}\n </span>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","components","CloseIcon","props","TagProps","emits","setup","tagClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","renderContent","useContent","tagStyle","computed","maxWidth","concat","tagClasses","value","theme","shape","variant","size","_defineProperty","closable","disabled","handleClose","e","stopPropagation","_props$onClose","onClose","call","handleClick","_props$onClick","onClick","tagContent","icon","_createVNode","_resolveComponent"],"mappings":"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"}