UNPKG

tdesign-mobile-vue

Version:
182 lines (174 loc) 8.62 kB
/** * tdesign v1.9.3 * (c) 2025 TDesign Group * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _defineProperty = require('@babel/runtime/helpers/defineProperty'); var vue = require('vue'); var tdesignIconsVueNext = require('tdesign-icons-vue-next'); var steps_stepItemProps = require('./step-item-props.js'); var config = require('../config.js'); var hooks_useClass = require('../hooks/useClass.js'); var hooks_tnode = require('../hooks/tnode.js'); require('../_chunks/dep-21f18d3b.js'); require('../_chunks/dep-b9642a56.js'); require('../_common/js/global-config/mobile/default-config.js'); require('../_common/js/global-config/mobile/locale/zh_CN.js'); require('../_chunks/dep-28b1e09d.js'); require('@babel/runtime/helpers/typeof'); require('../_chunks/dep-57aa1aa0.js'); require('dayjs'); require('../_chunks/dep-85204fa0.js'); require('../_chunks/dep-f6b14f80.js'); require('../_chunks/dep-a8d60643.js'); require('../_chunks/dep-7c911ba3.js'); require('../_chunks/dep-88fe047a.js'); require('../_chunks/dep-2f809ed9.js'); require('../_chunks/dep-ef223206.js'); require('../_chunks/dep-49f0a63e.js'); require('../_chunks/dep-d950aa21.js'); require('../_chunks/dep-5be9198d.js'); require('../_chunks/dep-a697b1b9.js'); require('../_chunks/dep-4dfb9b9c.js'); require('../_chunks/dep-757b152c.js'); require('../_chunks/dep-c65deed7.js'); require('../_chunks/dep-94eeec5a.js'); require('../_chunks/dep-060bf1cf.js'); require('../_chunks/dep-0e05e959.js'); require('../_chunks/dep-324da301.js'); require('../_chunks/dep-da6dc2cf.js'); require('../_chunks/dep-ccc9ad3d.js'); require('../_chunks/dep-c3cb976c.js'); require('../hooks/render-tnode.js'); require('../_chunks/dep-a7319409.js'); require('../_chunks/dep-afa9f3f2.js'); require('../_chunks/dep-ae809b86.js'); require('../_chunks/dep-2b08c0a6.js'); require('../_chunks/dep-288156c7.js'); require('../_chunks/dep-3d4c38f1.js'); require('../_chunks/dep-6df33aaf.js'); require('../_chunks/dep-675798b4.js'); require('../_common/js/utils/general.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty); var prefix = config["default"].prefix; var _StepItem = vue.defineComponent({ name: "".concat(prefix, "-step-item"), props: steps_stepItemProps["default"], setup: function setup(props2, context) { var stepItemClass = hooks_useClass.usePrefixClass("step-item"); var renderTNodeJSX = hooks_tnode.useTNodeJSX(); var internalInstance = vue.getCurrentInstance(); var proxy = internalInstance.proxy; var stepsProvide = vue.inject("stepsProvide", void 0); stepsProvide.relation(proxy); var iconDefault = { check: vue.h(tdesignIconsVueNext.CheckIcon), close: vue.h(tdesignIconsVueNext.CloseIcon) }; var index = vue.computed(function () { return stepsProvide.state.children.indexOf(proxy); }); var isLastChild = vue.computed(function () { return index.value === (stepsProvide.sequence === "positive" ? stepsProvide.state.children.length - 1 : 0); }); var theme = vue.computed(function () { return stepsProvide.theme; }); var dot = vue.computed(function () { return theme.value === "dot"; }); var icon = vue.computed(function () { return props2.icon || context.slots.icon; }); var current = vue.computed(function () { return stepsProvide.current.value || stepsProvide.defaultCurrent || 0; }); var stepsStatus = vue.computed(function () { return stepsProvide.currentStatus; }); var readonly = vue.computed(function () { return stepsProvide.readonly; }); var currentStatus = vue.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 = vue.computed(function () { return [stepItemClass.value, "".concat(stepItemClass.value, "--").concat(stepsProvide.layout), _defineProperty__default["default"]({}, "".concat(stepItemClass.value, "--default"), readonly.value), _defineProperty__default["default"]({}, "".concat(stepItemClass.value, "--").concat(currentStatus.value), currentStatus.value)]; }); var iconWrapperClassName = vue.computed(function () { return ["".concat(stepItemClass.value, "__anchor"), "".concat(stepItemClass.value, "__anchor--").concat(stepsProvide.layout)]; }); var dotClass = vue.computed(function () { return ["".concat(stepItemClass.value, "__dot"), "".concat(stepItemClass.value, "__dot--").concat(currentStatus.value)]; }); var iconClassName = vue.computed(function () { return [_defineProperty__default["default"]({}, "".concat(stepItemClass.value, "__icon"), icon.value), _defineProperty__default["default"]({}, "".concat(stepItemClass.value, "__icon--").concat(currentStatus.value), icon.value), _defineProperty__default["default"]({}, "".concat(stepItemClass.value, "__circle"), !icon.value), _defineProperty__default["default"]({}, "".concat(stepItemClass.value, "__circle--").concat(currentStatus.value), !icon.value)]; }); var contentClass = vue.computed(function () { return ["".concat(stepItemClass.value, "__content"), "".concat(stepItemClass.value, "__content--").concat(stepsProvide.layout), _defineProperty__default["default"]({}, "".concat(stepItemClass.value, "__content--").concat(stepsProvide.layout), isLastChild.value), _defineProperty__default["default"]({}, "".concat(stepItemClass.value, "__content--last"), isLastChild.value)]; }); var tilteClass = vue.computed(function () { return ["".concat(stepItemClass.value, "__title"), "".concat(stepItemClass.value, "__title--").concat(currentStatus.value), "".concat(stepItemClass.value, "__title--").concat(stepsProvide.layout)]; }); var descriptionClass = vue.computed(function () { return ["".concat(stepItemClass.value, "__description"), "".concat(stepItemClass.value, "__description--").concat(currentStatus.value), "".concat(stepItemClass.value, "__description--").concat(stepsProvide.layout)]; }); var extraClass = vue.computed(function () { return ["".concat(stepItemClass.value, "__extra"), "".concat(stepItemClass.value, "__extra--").concat(currentStatus.value), "".concat(stepItemClass.value, "__extra--").concat(stepsProvide.layout)]; }); var separatorClass = vue.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); } }; vue.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 vue.createVNode("div", { "class": rootClassName.value, "onClick": onClickIcon }, [vue.createVNode("div", { "class": iconWrapperClassName.value }, [dot.value ? vue.createVNode("div", { "class": dotClass.value }, null) : vue.createVNode("div", { "class": iconClassName.value }, [renderIconContent()])]), vue.createVNode("div", { "class": contentClass.value }, [vue.createVNode("div", { "class": tilteClass.value }, [renderTNodeJSX("title"), renderTNodeJSX("titleRight")]), vue.createVNode("div", { "class": descriptionClass.value }, [renderTNodeJSX("content")]), vue.createVNode("div", { "class": extraClass.value }, [renderTNodeJSX("extra")])]), !isLastChild.value && vue.createVNode("div", { "class": separatorClass.value }, null)]); }; } }); exports["default"] = _StepItem; //# sourceMappingURL=step-item.js.map