UNPKG

tdesign-mobile-vue

Version:
148 lines (144 loc) 6.99 kB
/** * tdesign v1.9.3 * (c) 2025 TDesign Group * @license MIT */ import { _ as _defineProperty } from '../_chunks/dep-900db0e1.mjs'; import { defineComponent, getCurrentInstance, inject, h, computed, onUnmounted, createVNode } from 'vue'; import { CheckIcon, CloseIcon } from 'tdesign-icons-vue-next'; import props from './step-item-props.mjs'; import config from '../config.mjs'; import { usePrefixClass } from '../hooks/useClass.mjs'; import { useTNodeJSX } from '../hooks/tnode.mjs'; import '../_chunks/dep-4915223e.mjs'; import '../config-provider/useConfig.mjs'; import 'lodash-es'; import '../config-provider/context.mjs'; import '../_common/js/global-config/mobile/default-config.mjs'; import '../_common/js/global-config/mobile/locale/zh_CN.mjs'; import '../_chunks/dep-bca0f578.mjs'; import '../_chunks/dep-6b2b02fd.mjs'; import '../_chunks/dep-c6f44a15.mjs'; import '../_chunks/dep-c984d53e.mjs'; import '../config-provider/type.mjs'; import '../hooks/render-tnode.mjs'; import '../_common/js/utils/general.mjs'; var prefix = config.prefix; var _StepItem = defineComponent({ name: "".concat(prefix, "-step-item"), props: props, setup: function setup(props2, context) { var stepItemClass = usePrefixClass("step-item"); var renderTNodeJSX = useTNodeJSX(); var internalInstance = getCurrentInstance(); var proxy = internalInstance.proxy; var stepsProvide = inject("stepsProvide", void 0); stepsProvide.relation(proxy); var iconDefault = { check: h(CheckIcon), close: h(CloseIcon) }; var index = computed(function () { return stepsProvide.state.children.indexOf(proxy); }); var isLastChild = computed(function () { return index.value === (stepsProvide.sequence === "positive" ? stepsProvide.state.children.length - 1 : 0); }); var theme = computed(function () { return stepsProvide.theme; }); var dot = computed(function () { return theme.value === "dot"; }); var icon = computed(function () { return props2.icon || context.slots.icon; }); var current = computed(function () { return stepsProvide.current.value || stepsProvide.defaultCurrent || 0; }); var stepsStatus = computed(function () { return stepsProvide.currentStatus; }); var readonly = computed(function () { return stepsProvide.readonly; }); var currentStatus = computed(function () { var status = props2.status; if (status !== "default") return status; if (index.value === current.value) return stepsStatus.value; if (index.value < current.value) return "finish"; return status; }); var rootClassName = computed(function () { return [stepItemClass.value, "".concat(stepItemClass.value, "--").concat(stepsProvide.layout), _defineProperty({}, "".concat(stepItemClass.value, "--default"), readonly.value), _defineProperty({}, "".concat(stepItemClass.value, "--").concat(currentStatus.value), currentStatus.value)]; }); var iconWrapperClassName = computed(function () { return ["".concat(stepItemClass.value, "__anchor"), "".concat(stepItemClass.value, "__anchor--").concat(stepsProvide.layout)]; }); var dotClass = computed(function () { return ["".concat(stepItemClass.value, "__dot"), "".concat(stepItemClass.value, "__dot--").concat(currentStatus.value)]; }); var iconClassName = computed(function () { return [_defineProperty({}, "".concat(stepItemClass.value, "__icon"), icon.value), _defineProperty({}, "".concat(stepItemClass.value, "__icon--").concat(currentStatus.value), icon.value), _defineProperty({}, "".concat(stepItemClass.value, "__circle"), !icon.value), _defineProperty({}, "".concat(stepItemClass.value, "__circle--").concat(currentStatus.value), !icon.value)]; }); var contentClass = computed(function () { return ["".concat(stepItemClass.value, "__content"), "".concat(stepItemClass.value, "__content--").concat(stepsProvide.layout), _defineProperty({}, "".concat(stepItemClass.value, "__content--").concat(stepsProvide.layout), isLastChild.value), _defineProperty({}, "".concat(stepItemClass.value, "__content--last"), isLastChild.value)]; }); var tilteClass = computed(function () { return ["".concat(stepItemClass.value, "__title"), "".concat(stepItemClass.value, "__title--").concat(currentStatus.value), "".concat(stepItemClass.value, "__title--").concat(stepsProvide.layout)]; }); var descriptionClass = computed(function () { return ["".concat(stepItemClass.value, "__description"), "".concat(stepItemClass.value, "__description--").concat(currentStatus.value), "".concat(stepItemClass.value, "__description--").concat(stepsProvide.layout)]; }); var extraClass = computed(function () { return ["".concat(stepItemClass.value, "__extra"), "".concat(stepItemClass.value, "__extra--").concat(currentStatus.value), "".concat(stepItemClass.value, "__extra--").concat(stepsProvide.layout)]; }); var separatorClass = computed(function () { return [stepItemClass.value, "".concat(stepItemClass.value, "__line"), "".concat(stepItemClass.value, "__line--").concat(currentStatus.value), "".concat(stepItemClass.value, "__line--").concat(stepsProvide.sequence), "".concat(stepItemClass.value, "__line--").concat(stepsProvide.layout), "".concat(stepItemClass.value, "__line--").concat(stepsProvide.theme)]; }); var onClickIcon = function onClickIcon(e) { if (!readonly.value) { stepsProvide.onClickItem(index.value, current.value, e); } }; onUnmounted(function () { stepsProvide.removeRelation(proxy); }); return function () { var renderIconContent = function renderIconContent() { if (icon.value) { return renderTNodeJSX("icon") || null; } if (currentStatus.value === "error") { return iconDefault.close; } if (currentStatus.value === "finish") { return iconDefault.check; } return index.value + 1; }; return createVNode("div", { "class": rootClassName.value, "onClick": onClickIcon }, [createVNode("div", { "class": iconWrapperClassName.value }, [dot.value ? createVNode("div", { "class": dotClass.value }, null) : createVNode("div", { "class": iconClassName.value }, [renderIconContent()])]), createVNode("div", { "class": contentClass.value }, [createVNode("div", { "class": tilteClass.value }, [renderTNodeJSX("title"), renderTNodeJSX("titleRight")]), createVNode("div", { "class": descriptionClass.value }, [renderTNodeJSX("content")]), createVNode("div", { "class": extraClass.value }, [renderTNodeJSX("extra")])]), !isLastChild.value && createVNode("div", { "class": separatorClass.value }, null)]); }; } }); export { _StepItem as default }; //# sourceMappingURL=step-item.mjs.map