xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 5.56 kB
Source Map (JSON)
{"version":3,"file":"step-item.mjs","sources":["../../src/steps/step-item.tsx"],"sourcesContent":["import { computed, defineComponent, h, inject } from 'vue';\nimport isFunction from 'lodash/isFunction';\n\nimport props from './step-item-props';\nimport { SlotReturnValue } from '../common';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX, useContent } from '../hooks';\n\nexport default defineComponent({\n name: 'XStepItem',\n props: { ...props, index: Number },\n\n setup(props) {\n const stepsState = inject('StepsState', undefined);\n const stepsProps = inject('StepsProps', undefined);\n\n const { globalConfig } = useConfig('steps');\n const canClick = computed(() => {\n return props.status !== 'process' && !stepsProps?.readonly;\n });\n\n // when props.value is undefined\n const onStepClick = (e: MouseEvent) => {\n if (!canClick.value) return;\n const val = props.value === undefined ? props.index : props.value;\n stepsState.setCurrent(val, stepsState.current, { e });\n };\n\n // class\n const COMPONENT_NAME = usePrefixClass('steps-item');\n const statusClass = computed(() => ({ [`${COMPONENT_NAME.value}--${props.status}`]: props.status }));\n const baseClass = computed(() => [COMPONENT_NAME.value, statusClass.value]);\n const iconClass = computed(() => [`${COMPONENT_NAME.value}__icon`, statusClass.value]);\n\n // render\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const renderIcon = () => {\n let defaultIcon;\n if (stepsProps.theme === 'default') {\n let icon: SlotReturnValue = '';\n switch (props.status) {\n case 'finish':\n icon = <icon-ri-check-line />;\n break;\n case 'error':\n if (isFunction(globalConfig.value.errorIcon)) {\n icon = globalConfig.value.errorIcon(h);\n } else {\n icon = <icon-ri-close-line />;\n }\n break;\n default:\n icon = String(props.index + 1);\n break;\n }\n defaultIcon = <span class={`${COMPONENT_NAME.value}__icon--number`}>{icon}</span>;\n }\n return renderTNodeJSX('icon', defaultIcon);\n };\n\n return () => (\n <div class={baseClass.value}>\n <div\n class={`${COMPONENT_NAME.value}__inner ${canClick.value ? `${COMPONENT_NAME.value}--clickable` : ''}`}\n onClick={onStepClick}\n >\n <div class={iconClass.value}>{renderIcon()}</div>\n <div class={`${COMPONENT_NAME.value}__content`}>\n <div class={`${COMPONENT_NAME.value}__title`}>{renderTNodeJSX('title')}</div>\n <div class={`${COMPONENT_NAME.value}__description`}>{renderContent('default', 'content')}</div>\n <div class={`${COMPONENT_NAME.value}__extra`}>{renderTNodeJSX('extra')}</div>\n </div>\n </div>\n </div>\n );\n },\n});\n"],"names":["name","props","index","e","icon","_resolveComponent","defaultIcon","_createVNode"],"mappings":"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"}