UNPKG

tdesign-mobile-vue

Version:
1 lines 13.3 kB
{"version":3,"file":"step-item.mjs","sources":["../../src/steps/step-item.tsx"],"sourcesContent":["import { computed, inject, defineComponent, getCurrentInstance, h, onUnmounted, ComponentInternalInstance } from 'vue';\nimport { CloseIcon, CheckIcon } from 'tdesign-icons-vue-next';\nimport props from './step-item-props';\nimport config from '../config';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-step-item`,\n props,\n setup(props, context) {\n const stepItemClass = usePrefixClass('step-item');\n const renderTNodeJSX = useTNodeJSX();\n\n const internalInstance = getCurrentInstance();\n const { proxy } = internalInstance as ComponentInternalInstance;\n const stepsProvide: any = inject('stepsProvide', undefined);\n stepsProvide.relation(proxy);\n const iconDefault = {\n check: h(CheckIcon),\n close: h(CloseIcon),\n };\n\n const index = computed(() => stepsProvide.state.children.indexOf(proxy));\n const isLastChild = computed(() => {\n return index.value === (stepsProvide.sequence === 'positive' ? stepsProvide.state.children.length - 1 : 0);\n });\n\n const theme = computed(() => stepsProvide.theme);\n const dot = computed(() => theme.value === 'dot');\n const icon = computed(() => props.icon || context.slots.icon);\n\n const current = computed(() => stepsProvide.current.value || stepsProvide.defaultCurrent || 0);\n const stepsStatus = computed(() => stepsProvide.currentStatus);\n const readonly = computed(() => stepsProvide.readonly);\n const currentStatus = computed(() => {\n const { status } = props;\n if (status !== 'default') return status;\n if (index.value === current.value) return stepsStatus.value;\n if (index.value < current.value) return 'finish';\n return status;\n });\n\n const rootClassName = computed(() => [\n stepItemClass.value,\n `${stepItemClass.value}--${stepsProvide.layout}`,\n { [`${stepItemClass.value}--default`]: readonly.value },\n { [`${stepItemClass.value}--${currentStatus.value}`]: currentStatus.value },\n ]);\n const iconWrapperClassName = computed(() => [\n `${stepItemClass.value}__anchor`,\n `${stepItemClass.value}__anchor--${stepsProvide.layout}`,\n ]);\n const dotClass = computed(() => [\n `${stepItemClass.value}__dot`,\n `${stepItemClass.value}__dot--${currentStatus.value}`,\n ]);\n\n const iconClassName = computed(() => [\n { [`${stepItemClass.value}__icon`]: icon.value },\n { [`${stepItemClass.value}__icon--${currentStatus.value}`]: icon.value },\n { [`${stepItemClass.value}__circle`]: !icon.value },\n { [`${stepItemClass.value}__circle--${currentStatus.value}`]: !icon.value },\n ]);\n const contentClass = computed(() => [\n `${stepItemClass.value}__content`,\n `${stepItemClass.value}__content--${stepsProvide.layout}`,\n {\n [`${stepItemClass.value}__content--${stepsProvide.layout}`]: isLastChild.value,\n },\n {\n [`${stepItemClass.value}__content--last`]: isLastChild.value,\n },\n ]);\n const tilteClass = computed(() => [\n `${stepItemClass.value}__title`,\n `${stepItemClass.value}__title--${currentStatus.value}`,\n `${stepItemClass.value}__title--${stepsProvide.layout}`,\n ]);\n const descriptionClass = computed(() => [\n `${stepItemClass.value}__description`,\n `${stepItemClass.value}__description--${currentStatus.value}`,\n `${stepItemClass.value}__description--${stepsProvide.layout}`,\n ]);\n const extraClass = computed(() => [\n `${stepItemClass.value}__extra`,\n `${stepItemClass.value}__extra--${currentStatus.value}`,\n `${stepItemClass.value}__extra--${stepsProvide.layout}`,\n ]);\n const separatorClass = computed(() => [\n stepItemClass.value,\n `${stepItemClass.value}__line`,\n `${stepItemClass.value}__line--${currentStatus.value}`,\n `${stepItemClass.value}__line--${stepsProvide.sequence}`,\n `${stepItemClass.value}__line--${stepsProvide.layout}`,\n `${stepItemClass.value}__line--${stepsProvide.theme}`,\n ]);\n const onClickIcon = (e: MouseEvent) => {\n if (!readonly.value) {\n stepsProvide.onClickItem(index.value, current.value, e);\n }\n };\n\n onUnmounted(() => {\n stepsProvide.removeRelation(proxy);\n });\n return () => {\n const renderIconContent = () => {\n if (icon.value) {\n return renderTNodeJSX('icon') || null;\n }\n if (currentStatus.value === 'error') {\n return iconDefault.close;\n }\n if (currentStatus.value === 'finish') {\n return iconDefault.check;\n }\n return index.value + 1;\n };\n\n return (\n <div class={rootClassName.value} onClick={onClickIcon}>\n <div class={iconWrapperClassName.value}>\n {dot.value ? (\n <div class={dotClass.value}></div>\n ) : (\n <div class={iconClassName.value}>{renderIconContent()}</div>\n )}\n </div>\n <div class={contentClass.value}>\n <div class={tilteClass.value}>\n {renderTNodeJSX('title')}\n {renderTNodeJSX('titleRight')}\n </div>\n <div class={descriptionClass.value}>{renderTNodeJSX('content')}</div>\n <div class={extraClass.value}>{renderTNodeJSX('extra')}</div>\n </div>\n {!isLastChild.value && <div class={separatorClass.value}></div>}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","setup","context","stepItemClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","internalInstance","getCurrentInstance","proxy","stepsProvide","inject","relation","iconDefault","check","h","CheckIcon","close","CloseIcon","index","computed","state","children","indexOf","isLastChild","value","sequence","length","theme","dot","icon","slots","current","defaultCurrent","stepsStatus","currentStatus","readonly","status","rootClassName","concat","layout","_defineProperty","iconWrapperClassName","dotClass","iconClassName","contentClass","tilteClass","descriptionClass","extraClass","separatorClass","onClickIcon","e","onClickItem","onUnmounted","removeRelation","renderIconContent","_createVNode"],"mappings":"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"}