{"version":3,"file":"step2.mjs","sources":["../../../../../../../packages/components/steps/src/step.vue"],"sourcesContent":["<template>\n  <div :class=\"[ns.b(), statusNs, isSimple && ns.is('simple')]\">\n    <i :class=\"[ns.e('inner')]\" />\n    <div :class=\"[ns.e('icon'), isPropsIcon && !isSimple && ns.is('custom')]\">\n      <div v-if=\"!isSimple\" :class=\"[ns.e('wrapper')]\">\n        <Icon v-if=\"!slots?.icon && icon && !isSimple\">\n          <component :is=\"icon\" />\n        </Icon>\n        <slot v-else-if=\"slots?.icon\" name=\"icon\" v-bind=\"vBind\" />\n        <span v-else>{{ index + 1 }}</span>\n      </div>\n      <div v-else :class=\"[ns.e(isSimple && 'dot')]\" />\n    </div>\n    <div :class=\"[ns.e('content')]\">\n      <div :class=\"[ns.e('title')]\">\n        <span v-if=\"!slots?.title\">{{ title || defaultTitle }}</span>\n        <slot v-else name=\"title\" v-bind=\"vBind\" />\n      </div>\n      <div :class=\"[ns.e('extra')]\">\n        <slot />\n        <span>{{ description }}</span>\n      </div>\n    </div>\n  </div>\n</template>\n<script lang=\"ts\" setup>\nimport {\n  computed,\n  getCurrentInstance,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  reactive,\n  ref,\n  useSlots,\n  watch,\n} from 'vue'\nimport { useNamespace } from '@xzx-design/hooks'\nimport { Icon } from '@xzx-design/components'\nimport { CheckSmall, CloseSmall } from '@xzx-design/icons-vue'\nimport { stepProps } from './step'\n\nimport type { Ref } from 'vue'\n\ndefineOptions({\n  name: 'XzxStep',\n})\n\nexport interface StepItemState {\n  uid: number\n  currentStatus: string\n  setIndex: (val: number) => void\n  calcProgress?: (status: string) => void\n}\n\nexport interface IStepsProps {\n  space: number | string\n  active: number\n  direction: string\n  alignCenter: boolean\n  simple: boolean\n  processStatus: string\n}\n\nexport interface IStepsInject {\n  props: IStepsProps\n  steps: Ref<StepItemState[]>\n  addStep: (item: StepItemState) => void\n  removeStep: (uid: number) => void\n}\n\nconst props = defineProps(stepProps)\n\nconst slots = useSlots()\nconst currentInstance = getCurrentInstance()\n\nconst status = ref('')\nconst index = ref(-1)\n\nconst iconMap: { [key: string]: any } = {\n  error: CloseSmall,\n  finish: CheckSmall,\n}\nconst icon = computed(() => props.icon || iconMap[currentStatus.value])\n\nconst isPropsIcon = computed(() => {\n  return !!props.icon || !!slots?.icon\n})\n\nconst isSimple = computed(() => {\n  return parent.props.simple\n})\n\nconst vBind = computed(() => ({\n  status: currentStatus.value,\n}))\n\nconst parent = inject('XzxSteps') as IStepsInject\n\nconst ns = useNamespace('step')\n\nconst statusNs = computed(() => ns.is(currentStatus.value))\nconst currentStatus = computed(() => {\n  return props?.status || status.value\n})\n\nconst titleMap: { [key: string]: string } = {\n  wait: '未开始',\n  process: '进行中',\n  finish: '已完成',\n  error: '已失败',\n}\nconst defaultTitle = computed(() => titleMap[currentStatus.value])\n\nconst prevStatus = computed(() => {\n  const prevStep = parent.steps.value[index.value - 1]\n  return prevStep ? prevStep.currentStatus : 'wait'\n})\n\nconst updateStatus = (active: number) => {\n  if (active === index.value && prevStatus.value !== 'error') {\n    status.value = parent.props.processStatus\n  } else if (active > index.value) {\n    status.value = 'finish'\n  } else {\n    status.value = 'wait'\n  }\n}\n\nconst setIndex = (val: number) => {\n  index.value = val\n}\n\nonMounted(() => {\n  watch(\n    [() => parent.props.active, () => parent.props.processStatus],\n\n    ([active]) => {\n      updateStatus(active)\n    },\n    { immediate: true }\n  )\n})\n\nonBeforeUnmount(() => {\n  parent.removeStep(stepItemState.uid)\n})\n\nconst stepItemState = reactive({\n  uid: currentInstance!.uid,\n  currentStatus,\n  setIndex,\n  // calcProgress,\n})\nparent.addStep(stepItemState)\n</script>\n"],"names":["CloseSmall","CheckSmall"],"mappings":"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"}