UNPKG

hongluan-ui

Version:
1 lines 4.39 kB
{"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}