UNPKG

tdesign-mobile-vue

Version:
162 lines (154 loc) 7.73 kB
/** * tdesign v1.7.0 * (c) 2024 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('../config-provider/useConfig.js'); require('lodash/isFunction'); require('lodash/cloneDeep'); require('lodash/isString'); require('../config-provider/context.js'); require('lodash/mergeWith'); require('lodash/merge'); require('lodash/isArray'); require('../_common/js/global-config/mobile/default-config.js'); require('../_common/js/global-config/mobile/locale/zh_CN.js'); require('../_chunks/dep-8d930798.js'); require('@babel/runtime/helpers/typeof'); require('../_chunks/dep-a20a5149.js'); require('dayjs'); require('lodash/camelCase'); require('lodash/kebabCase'); require('../hooks/render-tnode.js'); require('lodash/isEmpty'); require('lodash/isObject'); 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