element-plus
Version:
A Component Library for Vue 3
1 lines • 10.4 kB
Source Map (JSON)
{"version":3,"file":"step.vue2.mjs","sources":["../../../../../../packages/components/tour/src/step.vue"],"sourcesContent":["<template>\n <button\n v-if=\"mergedShowClose\"\n :aria-label=\"t('el.tour.close')\"\n :class=\"ns.e('closebtn')\"\n type=\"button\"\n @click=\"onClose\"\n >\n <el-icon :class=\"ns.e('close')\">\n <component :is=\"mergedCloseIcon\" />\n </el-icon>\n </button>\n <header :class=\"[ns.e('header'), { 'show-close': showClose }]\">\n <slot name=\"header\">\n <span role=\"heading\" :class=\"ns.e('title')\">\n {{ title }}\n </span>\n </slot>\n </header>\n <div :class=\"ns.e('body')\">\n <slot>\n <span>{{ description }}</span>\n </slot>\n </div>\n <footer :class=\"ns.e('footer')\">\n <div :class=\"ns.b('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=\"[ns.b('indicator'), ns.is('active', index === current)]\"\n />\n </template>\n </div>\n <div :class=\"ns.b('buttons')\">\n <el-button\n v-if=\"current > 0\"\n size=\"small\"\n :type=\"mergedType\"\n v-bind=\"filterButtonProps(prevButtonProps)\"\n @click=\"onPrev\"\n >\n {{ prevButtonProps?.children ?? t('el.tour.previous') }}\n </el-button>\n <el-button\n v-if=\"current <= total - 1\"\n size=\"small\"\n :type=\"mergedType === 'primary' ? 'default' : 'primary'\"\n v-bind=\"filterButtonProps(nextButtonProps)\"\n @click=\"onNext\"\n >\n {{\n nextButtonProps?.children ??\n (current === total - 1 ? t('el.tour.finish') : t('el.tour.next'))\n }}\n </el-button>\n </div>\n </footer>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { omit } from 'lodash-unified'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CloseComponents, getEventCode } from '@element-plus/utils'\nimport { useLocale } from '@element-plus/hooks'\nimport { tourStepEmits } from './step'\nimport { tourKey } from './helper'\n\nimport type { TourBtnProps } from './types'\nimport type { TourStepProps } from './step'\n\ndefineOptions({\n name: 'ElTourStep',\n})\n\nconst props = withDefaults(defineProps<TourStepProps>(), {\n showClose: undefined,\n showArrow: undefined,\n placement: 'bottom',\n mask: undefined,\n scrollIntoViewOptions: undefined,\n})\nconst emit = defineEmits(tourStepEmits)\n\nconst { Close } = CloseComponents\n\nconst { t } = useLocale()\n\nconst {\n currentStep,\n current,\n total,\n showClose,\n closeIcon,\n mergedType,\n ns,\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)\nconst mergedCloseIcon = computed(\n () => props.closeIcon ?? closeIcon.value ?? Close\n)\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?.onClick) {\n props.prevButtonProps?.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.nextButtonProps?.onClick) {\n props.nextButtonProps.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\nconst handleKeydown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement | null\n if (target?.isContentEditable) return\n const code = getEventCode(e)\n\n switch (code) {\n case EVENT_CODE.left:\n e.preventDefault()\n current.value > 0 && onPrev()\n break\n case EVENT_CODE.right:\n e.preventDefault()\n onNext()\n break\n }\n}\n\nonMounted(() => {\n window.addEventListener('keydown', handleKeydown)\n})\n\nonBeforeUnmount(() => {\n window.removeEventListener('keydown', handleKeydown)\n})\n</script>\n"],"names":["_createElementBlock","_unref","_normalizeClass","_createVNode","_openBlock","_createBlock","_resolveDynamicComponent","_createElementVNode","_renderSlot","_Fragment","_renderList","_mergeProps","_createTextVNode","_toDisplayString"],"mappings":"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"}