UNPKG

@opensig/opendesign

Version:

189 lines (188 loc) 8.56 kB
import { defineComponent, useSlots, inject, ref, computed, watch, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createVNode, normalizeStyle, renderSlot, createBlock, resolveDynamicComponent, Fragment, createTextVNode, toDisplayString, createCommentVNode } from "vue"; import "../icon-components/OIconZoomOut/OIconZoomOut.vue2.mjs"; import "../icon-components/OIconZoomIn/OIconZoomIn.vue2.mjs"; import "../icon-components/OIconVideoPlay/OIconVideoPlay.vue2.mjs"; import "../icon-components/OIconTime/OIconTime.vue2.mjs"; import "../icon-components/OIconStar/OIconStar.vue2.mjs"; import "../icon-components/OIconSearch/OIconSearch.vue2.mjs"; import "../icon-components/OIconRefresh/OIconRefresh.vue2.mjs"; import "../icon-components/OIconOneToOne/OIconOneToOne.vue2.mjs"; import "../icon-components/OIconMinus/OIconMinus.vue2.mjs"; import "../icon-components/OIconLoading/OIconLoading.vue2.mjs"; import "../icon-components/OIconLoadingSmall/OIconLoadingSmall.vue2.mjs"; import "../icon-components/OIconLink/OIconLink.vue2.mjs"; import "../icon-components/OIconInfoTip/OIconInfoTip.vue2.mjs"; import "../icon-components/OIconImgError/OIconImgError.vue2.mjs"; import "../icon-components/OIconImageError/OIconImageError.vue2.mjs"; import "../icon-components/OIconFilter/OIconFilter.vue2.mjs"; import "../icon-components/OIconFile/OIconFile.vue2.mjs"; import "../icon-components/OIconEye/OIconEye.vue2.mjs"; import "../icon-components/OIconEyeOff/OIconEyeOff.vue2.mjs"; import "../icon-components/OIconEllipsis/OIconEllipsis.vue2.mjs"; import "../icon-components/OIconEdit/OIconEdit.vue2.mjs"; import "../icon-components/OIconDownload/OIconDownload.vue2.mjs"; import "../icon-components/OIconDoubleArrowUp/OIconDoubleArrowUp.vue2.mjs"; import "../icon-components/OIconDoubleArrowRight/OIconDoubleArrowRight.vue2.mjs"; import "../icon-components/OIconDoubleArrowLeft/OIconDoubleArrowLeft.vue2.mjs"; import "../icon-components/OIconDoubleArrowDown/OIconDoubleArrowDown.vue2.mjs"; import "../icon-components/OIconDone/OIconDone.vue2.mjs"; import "../icon-components/OIconDelete/OIconDelete.vue2.mjs"; import "../icon-components/OIconClose/OIconClose.vue2.mjs"; import "../icon-components/OIconChevronUp/OIconChevronUp.vue2.mjs"; import "../icon-components/OIconChevronRight/OIconChevronRight.vue2.mjs"; import "../icon-components/OIconChevronRightSmall/OIconChevronRightSmall.vue2.mjs"; import "../icon-components/OIconChevronLeft/OIconChevronLeft.vue2.mjs"; import "../icon-components/OIconChevronDown/OIconChevronDown.vue2.mjs"; import "../icon-components/OIconChevronDownBold/OIconChevronDownBold.vue2.mjs"; import "../icon-components/OIconChecked/OIconChecked.vue2.mjs"; import "../icon-components/OIconCaretUp/OIconCaretUp.vue2.mjs"; import "../icon-components/OIconCaretRight/OIconCaretRight.vue2.mjs"; import "../icon-components/OIconCaretLeft/OIconCaretLeft.vue2.mjs"; import "../icon-components/OIconCaretDown/OIconCaretDown.vue2.mjs"; import "../icon-components/OIconCalendar/OIconCalendar.vue2.mjs"; import "../icon-components/OIconAvatar/OIconAvatar.vue2.mjs"; import "../icon-components/OIconArrowUp/OIconArrowUp.vue2.mjs"; import "../icon-components/OIconArrowRight/OIconArrowRight.vue2.mjs"; import "../icon-components/OIconArrowLeft/OIconArrowLeft.vue2.mjs"; import "../icon-components/OIconArrowDown/OIconArrowDown.vue2.mjs"; import "../icon-components/OIconAdd/OIconAdd.vue2.mjs"; import "../icon-components/OIconWarning/OIconWarning.vue2.mjs"; import "../icon-components/OIconSun/OIconSun.vue2.mjs"; import "../icon-components/OIconSuccess/OIconSuccess.vue2.mjs"; import "../icon-components/OIconSort/OIconSort.vue2.mjs"; import "../icon-components/OIconSkill/OIconSkill.vue2.mjs"; import "../icon-components/OIconNoData/OIconNoData.vue2.mjs"; import "../icon-components/OIconMoon/OIconMoon.vue2.mjs"; import "../icon-components/OIconKunpeng/OIconKunpeng.vue2.mjs"; import "../icon-components/OIconInfo/OIconInfo.vue2.mjs"; import OIconExclamationMark from "../icon-components/OIconExclamationMark/OIconExclamationMark.vue.mjs"; import "../icon-components/OIconDanger/OIconDanger.vue2.mjs"; import OIconCheckMark from "../icon-components/OIconCheckMark/OIconCheckMark.vue.mjs"; import "../icon-components/OIconAscend/OIconAscend.vue2.mjs"; import { ODivider } from "../divider/index.mjs"; import { isEmptySlot } from "../_utils/vue-utils.mjs"; import { stepInjectKey } from "./provide.mjs"; import { stepItemProps } from "./types.mjs"; const _hoisted_1 = { class: "o-step-item-main" }; const _hoisted_2 = { key: 0, class: "o-step-item-title" }; const _hoisted_3 = { key: 1, class: "o-step-item-desc" }; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "OStepItem", props: stepItemProps, setup(__props) { const props = __props; const slots = useSlots(); const stepInjection = inject(stepInjectKey); const stepItemHeadRef = ref(); const isCustomIcon = computed(() => { return !isEmptySlot(slots.icon); }); const hasTitle = computed(() => { return !isEmptySlot(slots.title) || props.title; }); const hasDescription = computed(() => { return !isEmptySlot(slots.default) || props.description; }); const defaultIcon = computed(() => { if (props.status === "failed") { return OIconExclamationMark; } return OIconCheckMark; }); watch(stepItemHeadRef, (val) => { if (val) { if (!(stepInjection == null ? void 0 : stepInjection.stepItemHeadRefs)) { return; } stepInjection.stepItemHeadRefs.value[props.stepIndex] = val; } }); return (_ctx, _cache) => { var _a, _b, _c; return openBlock(), createElementBlock( "div", { class: normalizeClass(["o-step-item", [`o-step-item-${(_a = unref(stepInjection)) == null ? void 0 : _a.props.direction}`, `o-step-item-${props.status}`]]) }, [ createElementVNode( "div", { ref_key: "stepItemHeadRef", ref: stepItemHeadRef, class: "o-step-item-head" }, [ createVNode(unref(ODivider), { class: "o-step-item-line", direction: (_b = unref(stepInjection)) == null ? void 0 : _b.props.direction, style: normalizeStyle((_c = unref(stepInjection)) == null ? void 0 : _c.stepItemDividerRects.value[props.stepIndex]) }, null, 8, ["direction", "style"]), createElementVNode( "div", { class: normalizeClass(["o-step-item-symbol", { "o-step-item-symbol-custom": isCustomIcon.value }]) }, [ renderSlot(_ctx.$slots, "icon", {}, () => [ props.icon ? (openBlock(), createBlock(resolveDynamicComponent(typeof props.icon === "boolean" ? defaultIcon.value : props.icon), { key: 0, class: "o-step-item-icon" })) : (openBlock(), createElementBlock( Fragment, { key: 1 }, [ createTextVNode( toDisplayString(props.stepIndex + 1), 1 /* TEXT */ ) ], 64 /* STABLE_FRAGMENT */ )) ]) ], 2 /* CLASS */ ) ], 512 /* NEED_PATCH */ ), createElementVNode("div", _hoisted_1, [ hasTitle.value ? (openBlock(), createElementBlock("div", _hoisted_2, [ renderSlot(_ctx.$slots, "title", {}, () => [ createTextVNode( toDisplayString(props.title), 1 /* TEXT */ ) ]) ])) : createCommentVNode("v-if", true), hasDescription.value ? (openBlock(), createElementBlock("div", _hoisted_3, [ renderSlot(_ctx.$slots, "default", {}, () => [ createTextVNode( toDisplayString(props.description), 1 /* TEXT */ ) ]) ])) : createCommentVNode("v-if", true) ]) ], 2 /* CLASS */ ); }; } }); export { _sfc_main as default };