UNPKG

tdesign-mobile-vue

Version:
154 lines (150 loc) 7.08 kB
/** * tdesign v1.7.0 * (c) 2024 TDesign Group * @license MIT */ import _defineProperty from '@babel/runtime/helpers/defineProperty'; import { defineComponent, getCurrentInstance, inject, h, computed, onUnmounted, createVNode } from 'vue'; import { CheckIcon, CloseIcon } from 'tdesign-icons-vue-next'; import props from './step-item-props.js'; import config from '../config.js'; import { usePrefixClass } from '../hooks/useClass.js'; import { useTNodeJSX } from '../hooks/tnode.js'; import '../config-provider/useConfig.js'; import 'lodash/isFunction'; import 'lodash/cloneDeep'; import 'lodash/isString'; import '../config-provider/context.js'; import 'lodash/mergeWith'; import 'lodash/merge'; import 'lodash/isArray'; import '../_common/js/global-config/mobile/default-config.js'; import '../_common/js/global-config/mobile/locale/zh_CN.js'; import '../_chunks/dep-d5364bc4.js'; import '@babel/runtime/helpers/typeof'; import '../_chunks/dep-eb734424.js'; import 'dayjs'; import 'lodash/camelCase'; import 'lodash/kebabCase'; import '../hooks/render-tnode.js'; import 'lodash/isEmpty'; import 'lodash/isObject'; 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.js.map