{"version":3,"file":"step2.mjs","sources":["../../../../../../packages/components/tour/src/step.vue"],"sourcesContent":["<template>\n  <button\n    v-if=\"mergedShowClose\"\n    aria-label=\"Close\"\n    class=\"tour-closebtn\"\n    type=\"button\"\n    @click=\"onClose\"\n  >\n    <hl-icon class=\"tour-close\">\n      <system-close />\n    </hl-icon>\n  </button>\n  <header class=\"tour-header\" :class=\"{ 'show-close': showClose }\">\n    <slot name=\"header\">\n      <span role=\"heading\" class=\"tour-title\">\n        {{ title }}\n      </span>\n    </slot>\n  </header>\n  <div class=\"tour-body\">\n    <slot>\n      <span>{{ description }}</span>\n    </slot>\n  </div>\n  <footer class=\"tour-footer\">\n    <div class=\"tour-indicators\">\n      <component\n        :is=\"tourSlots.indicators\"\n        v-if=\"tourSlots.indicators\"\n        :current=\"current\"\n        :total=\"total\"\n      />\n      <template v-else>\n        <span\n          v-for=\"(item, index) in total\"\n          :key=\"item\"\n          :class=\"['tour-indicator', index === current ? 'is-active' : '']\"\n        ></span>\n      </template>\n    </div>\n    <div class=\"tour-buttons\">\n      <hl-button\n        v-if=\"current > 0\"\n        size=\"sm\"\n        class=\"m-r-md\"\n        :type=\"mergedType\"\n        v-bind=\"filterButtonProps(prevButtonProps)\"\n        @click=\"onPrev\"\n      >\n        {{ prevButtonProps?.children ?? t('hl.tour.previous') }}\n      </hl-button>\n      <hl-button\n        v-if=\"current <= total - 1\"\n        size=\"sm\"\n        :type=\"mergedType === 'primary' ? 'default' : 'primary'\"\n        v-bind=\"filterButtonProps(nextButtonProps)\"\n        @click=\"onNext\"\n      >\n        {{\n          nextButtonProps?.children ??\n            (current === total - 1 ? t('hl.tour.finish') : t('hl.tour.next'))\n        }}\n      </hl-button>\n    </div>\n  </footer>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, watch } from 'vue'\nimport { omit } from 'lodash-unified'\nimport { HlButton } from '@hongluan-ui/components/button'\nimport { HlIcon } from '@hongluan-ui/components/icon'\nimport { SystemClose } from '@hongluan-ui/components/system-icon'\nimport { useLocale } from '@hongluan-ui/hooks'\nimport { tourStepEmits, tourStepProps } from './step'\nimport { tourKey } from './helper'\n\nimport type { TourBtnProps } from './types'\n\ndefineOptions({\n  name: 'TourStep',\n})\n\nconst props = defineProps(tourStepProps)\nconst emit = defineEmits(tourStepEmits)\n\nconst { t } = useLocale()\n\nconst {\n  currentStep,\n  current,\n  total,\n  showClose,\n  mergedType,\n  slots: tourSlots,\n  updateModelValue,\n  onClose: tourOnClose,\n  onFinish: tourOnFinish,\n  onChange,\n} = inject(tourKey)!\n\nwatch(\n  props,\n  val => {\n    currentStep.value = val\n  },\n  {\n    immediate: true,\n  },\n)\n\nconst mergedShowClose = computed(() => props.showClose ?? showClose.value)\n\nconst filterButtonProps = (btnProps?: TourBtnProps) => {\n  if (!btnProps) return\n  return omit(btnProps, ['children', 'onClick'])\n}\n\nconst onPrev = () => {\n  current.value -= 1\n  if ((props.prevButtonProps as TourBtnProps)?.onClick) {\n    (props.prevButtonProps as TourBtnProps)?.onClick()\n  }\n  onChange()\n}\n\nconst onNext = () => {\n  if (current.value >= total.value - 1) {\n    onFinish()\n  } else {\n    current.value += 1\n  }\n  if ((props.prevButtonProps as TourBtnProps)?.onClick) {\n    (props.prevButtonProps as TourBtnProps).onClick()\n  }\n  onChange()\n}\n\nconst onFinish = () => {\n  onClose()\n  tourOnFinish()\n}\n\nconst onClose = () => {\n  updateModelValue(false)\n  tourOnClose()\n  emit('close')\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;oCA+Ec;AAAA,EACZ,MAAM;AACR;;;;;;;AAKA,UAAM,EAAE,MAAM;AAEd,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA,SAAS;AAAA,MACT,UAAU;AAAA,MACV;AAAA,QACE,OAAO,OAAO;AAElB,UACE,OACA,SAAO;AACL,kBAAY,QAAQ;AAAA,OAEtB;AAAA,MACE,WAAW;AAAA,KAEf;AAEA,UAAM,kBAAkB,SAAS,MAAM;AAEvC,UAAM;AACJ;AAAe;AACf;AAA6C;AAG/C;AACE;AACA;AACE;AAAiD,MACnD;AACA;AAAS;AAGX,mBAAe;AACb;AACE,iBAAS;AAAA,MACX;AACE,gBAAQ,SAAS;AAAA,MACnB;AACA,UAAK,uBAAwC,SAAS;AACpD,QAAC;AAA+C;AAElD,eAAS;AAAA;AAGX,UAAM,WAAW;AACf,cAAQ;AACR;AAAa;AAGf;AACE;AACA;AACA,kBAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}