UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

1 lines 25.5 kB
{"version":3,"file":"tour.vue2.cjs","sources":["../../../components/tour/tour.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bubble } from '@/components/bubble'\nimport { Button } from '@/components/button'\nimport { Icon } from '@/components/icon'\nimport { Masker } from '@/components/masker'\nimport { Renderer } from '@/components/renderer'\n\nimport { computed, provide, reactive, ref, shallowReadonly, toRef, watch } from 'vue'\n\nimport {\n emitEvent,\n getStepByWord,\n useIcons,\n useId,\n useLocale,\n useNameHelper,\n useProps,\n} from '@vexip-ui/config'\nimport { unrefElement, useModifier, usePopper } from '@vexip-ui/hooks'\nimport { callIfFunc, decide, isClient, isFunction } from '@vexip-ui/utils'\nimport { tourProps } from './props'\nimport { TOUR_STATE } from './symbol'\n\nimport type { BubbleExposed } from '@/components/bubble'\nimport type { MaskerExposed } from '@/components/masker'\nimport type { TourSlots, TourStepOptions } from './symbol'\n\ndefineOptions({\n name: 'Tour',\n inheritAttrs: false,\n})\n\nconst _props = defineProps(tourProps)\nconst props = useProps('tour', _props, {\n locale: null,\n active: false,\n index: {\n static: true,\n default: 0,\n validator: value => value >= 0,\n },\n steps: {\n static: true,\n default: () => [],\n },\n type: 'default',\n hideMask: false,\n signType: 'dot',\n padding: 10,\n closable: true,\n permeable: false,\n transfer: false,\n slots: () => ({}),\n})\n\nconst emit = defineEmits(['update:active', 'update:index'])\n\ndefineSlots<TourSlots>()\n\nconst nh = useNameHelper('tour')\nconst locale = useLocale('tour', toRef(props, 'locale'))\nconst icons = useIcons()\n\nconst currentActive = ref(props.active)\nconst currentIndex = ref(props.index)\nconst tempSteps: Set<TourStepOptions> = reactive(new Set<any>())\nconst currentRect = ref<number[]>()\nconst sideRects = ref<(number | string)[][]>()\n\nconst masker = ref<MaskerExposed>()\nconst bubble = ref<BubbleExposed>()\nconst wrapper = computed(() => masker.value?.wrapper)\n\nuseModifier({\n target: wrapper,\n passive: false,\n onKeyDown: (event, modifier) => {\n if (!currentActive.value) return\n\n decide(\n [\n [() => modifier.left || modifier.up, prev],\n [() => modifier.right || modifier.down, next],\n [() => modifier.escape, handleClose],\n ],\n {\n beforeMatchAny: () => {\n event.preventDefault()\n event.stopPropagation()\n },\n afterMatchAny: modifier.resetAll,\n },\n )\n },\n})\n\nconst allSteps = computed(() => {\n return Array.from(tempSteps)\n .concat(props.steps)\n .sort((prev, next) => (prev.order || 0) - (next.order || 0))\n})\nconst currentStep = computed(() => allSteps.value[currentIndex.value])\nconst type = computed(() => {\n const type = currentStep.value?.type || props.type\n\n return type === 'default' ? undefined : type\n})\nconst className = computed(() => {\n return [\n nh.b(),\n nh.bs('vars'),\n {\n [nh.bm('hide-mask')]: props.hideMask,\n [nh.bm('permeable')]: props.permeable,\n },\n ]\n})\nconst padding = computed(() => {\n if (Array.isArray(props.padding)) {\n return props.padding.length === 2\n ? [props.padding[0], props.padding[1], props.padding[0], props.padding[1]]\n : props.padding\n } else {\n return new Array<number>(4).fill(props.padding)\n }\n})\nconst maskId = useId()\n\nconst { reference, placement, updatePopper } = usePopper({\n wrapper,\n placement: computed(() => currentStep.value?.placement || 'bottom'),\n popper: computed(() => bubble.value?.$el),\n arrow: computed(() => bubble.value?.arrow),\n shift: { crossAxis: true },\n autoUpdate: false,\n})\n\nwatch(\n () => props.active,\n value => {\n if (value) {\n start()\n } else {\n currentActive.value = value\n }\n },\n)\nwatch(\n () => props.index,\n value => {\n currentIndex.value = Math.max(0, value)\n },\n)\nwatch(\n [currentActive, currentStep],\n () => {\n sideRects.value = undefined\n\n if (!isClient || !currentActive.value || !currentStep.value) return\n\n const target = unrefElement(callIfFunc(currentStep.value.target) as HTMLElement)\n\n if (!target) {\n currentRect.value = undefined\n return\n }\n\n const { top, left, width, height } = target.getBoundingClientRect()\n\n currentRect.value = [\n left - padding.value[3],\n top - padding.value[0],\n width + padding.value[1] + padding.value[3],\n height + padding.value[0] + padding.value[2],\n ]\n\n if (props.permeable) {\n const [x, y, w, h] = currentRect.value\n\n sideRects.value = [\n [0, 0, '100%', y],\n [x + w, 0, `calc(100% - ${x + w}px)`, '100%'],\n [0, y + h, '100%', `calc(100% - ${y + h}px)`],\n [0, 0, x, '100%'],\n ]\n }\n\n updatePopper()\n },\n { immediate: true, flush: 'post' },\n)\n\nprovide(TOUR_STATE, {\n increaseStep,\n decreaseStep,\n})\n\ndefineExpose({\n wrapper,\n currentActive,\n currentIndex,\n currentStep,\n allSteps,\n start,\n prev,\n next,\n close,\n})\n\nconst actions = { start, prev, next, close }\nconst slotParams = shallowReadonly(\n reactive({\n ...actions,\n step: currentStep,\n index: currentIndex,\n }),\n)\n\nfunction increaseStep(step: TourStepOptions) {\n tempSteps.add(step)\n}\n\nfunction decreaseStep(step: TourStepOptions) {\n tempSteps.delete(step)\n}\n\nfunction start() {\n if (currentActive.value) return\n\n currentActive.value = true\n emit('update:active', true)\n emitEvent(props.onToggle, true)\n\n if (currentIndex.value) {\n currentIndex.value = 0\n emit('update:index', 0)\n }\n}\n\nfunction prev() {\n if (!currentActive.value || currentIndex.value <= 0) return\n\n --currentIndex.value\n emit('update:index', currentIndex.value)\n emitEvent(props.onChange, currentIndex.value, currentStep.value)\n}\n\nfunction next(autoClose = true) {\n if (!currentActive.value) return\n\n if (currentIndex.value >= allSteps.value.length - 1) {\n if (autoClose) {\n close()\n }\n\n return\n }\n\n ++currentIndex.value\n emit('update:index', currentIndex.value)\n emitEvent(props.onChange, currentIndex.value, currentStep.value)\n}\n\nfunction close() {\n if (!currentActive.value) return\n\n currentActive.value = false\n emit('update:active', false)\n emitEvent(props.onToggle, false)\n}\n\nfunction handleClose() {\n if (!currentActive.value) return\n\n close()\n emitEvent(props.onClose)\n}\n</script>\n\n<template>\n <div v-show=\"false\" role=\"none\" aria-hidden=\"true\">\n <slot></slot>\n </div>\n <Masker\n v-bind=\"$attrs\"\n ref=\"masker\"\n v-model:active=\"currentActive\"\n :inherit=\"props.inherit\"\n :class=\"className\"\n :transfer=\"transfer\"\n auto-remove\n transition-name=\"\"\n :disabled=\"props.hideMask\"\n @show=\"updatePopper\"\n @hide=\"currentRect = undefined\"\n @mask-click=\"emitEvent(props.onMaskClick, $event)\"\n >\n <template #default=\"{ show }\">\n <div\n v-if=\"currentRect\"\n ref=\"reference\"\n :class=\"nh.be('reference')\"\n role=\"none\"\n aria-hidden=\"true\"\n :style=\"{\n top: `${currentRect[1]}px`,\n left: `${currentRect[0]}px`,\n width: `${currentRect[2]}px`,\n height: `${currentRect[3]}px`\n }\"\n ></div>\n <Transition appear :name=\"nh.ns('fade')\">\n <Bubble\n v-if=\"show && currentStep\"\n ref=\"bubble\"\n inherit\n :class=\"[\n nh.be('bubble'),\n !currentRect && nh.bem('bubble', 'center'),\n type && nh.bem('bubble', 'typed'),\n type && nh.bem('bubble', type)\n ]\"\n :content-class=\"nh.be('step')\"\n :placement=\"placement\"\n :type=\"currentStep.type || props.type\"\n >\n <Renderer\n v-if=\"isFunction(currentStep.renderer)\"\n :renderer=\"currentStep.renderer\"\n :data=\"actions\"\n ></Renderer>\n <template v-else>\n <div :class=\"nh.be('header')\">\n <slot name=\"header\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.header\" :data=\"slotParams\">\n <div :class=\"nh.be('title')\">\n <slot name=\"title\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.title\" :data=\"slotParams\">\n {{ currentStep.title ?? getStepByWord(locale.stepCount, currentIndex) }}\n </Renderer>\n </slot>\n </div>\n <button\n v-if=\"props.closable\"\n type=\"button\"\n :class=\"nh.be('close')\"\n @click=\"handleClose\"\n >\n <slot name=\"close\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.close\" :data=\"slotParams\">\n <Icon\n v-bind=\"icons.close\"\n :scale=\"+(icons.close.scale || 1) * 1.2\"\n label=\"close\"\n ></Icon>\n </Renderer>\n </slot>\n </button>\n </Renderer>\n </slot>\n </div>\n <div :class=\"nh.be('content')\">\n <slot name=\"body\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.body\" :data=\"slotParams\">\n {{ currentStep.content }}\n </Renderer>\n </slot>\n </div>\n <div :class=\"nh.be('footer')\">\n <slot name=\"footer\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.footer\" :data=\"slotParams\">\n <div :class=\"[nh.be('sign'), nh.bem('sign', props.signType)]\">\n <slot name=\"sign\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.sign\" :data=\"slotParams\">\n <template v-if=\"props.signType === 'count'\">\n <span>{{ currentIndex + 1 }}</span>\n <span :class=\"nh.be('count-sep')\">/</span>\n <span>{{ allSteps.length }}</span>\n </template>\n <template v-else>\n <span\n v-for=\"n in allSteps.length\"\n :key=\"n\"\n :class=\"[\n nh.be(`sign-${props.signType === 'dot' ? 'dot' : 'bar'}`),\n n - 1 === currentIndex &&\n nh.bem(`sign-${props.signType === 'dot' ? 'dot' : 'bar'}`, 'active')\n ]\"\n ></span>\n </template>\n </Renderer>\n </slot>\n </div>\n <span style=\"flex: auto\" role=\"none\"></span>\n <slot name=\"actions\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.actions\" :data=\"slotParams\">\n <Button\n v-if=\"currentIndex > 0\"\n inherit\n :class=\"[nh.be('action'), nh.bem('action', 'prev')]\"\n size=\"small\"\n :text=\"!!type\"\n @click=\"prev\"\n >\n {{ locale.prev }}\n </Button>\n <Button\n v-if=\"currentIndex <= allSteps.length - 1\"\n inherit\n :class=\"[nh.be('action'), nh.bem('action', 'next')]\"\n :type=\"type ? 'default' : 'primary'\"\n size=\"small\"\n @click=\"next()\"\n >\n {{ currentIndex === allSteps.length - 1 ? locale.done : locale.next }}\n </Button>\n </Renderer>\n </slot>\n </Renderer>\n </slot>\n </div>\n </template>\n </Bubble>\n </Transition>\n </template>\n <template #mask>\n <svg style=\"width: 100%; height: 100%\">\n <defs>\n <mask :id=\"maskId\">\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"white\"\n />\n <rect\n v-if=\"currentRect\"\n :class=\"[nh.be('hollow'), nh.bem('hollow', 'active')]\"\n :x=\"currentRect[0]\"\n :y=\"currentRect[1]\"\n :width=\"currentRect[2]\"\n :height=\"currentRect[3]\"\n fill=\"black\"\n />\n </mask>\n </defs>\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"rgba(0, 0, 0, 45%)\"\n :mask=\"`url(#${maskId})`\"\n />\n <g v-if=\"sideRects?.length\" fill=\"transparent\" style=\"pointer-events: auto\">\n <rect\n v-for=\"(rect, index) in sideRects\"\n :key=\"index\"\n :x=\"rect[0]\"\n :y=\"rect[1]\"\n :width=\"rect[2]\"\n :height=\"rect[3]\"\n />\n </g>\n </svg>\n </template>\n </Masker>\n</template>\n"],"names":["_props","__props","props","useProps","value","emit","__emit","nh","useNameHelper","locale","useLocale","toRef","icons","useIcons","currentActive","ref","currentIndex","tempSteps","reactive","currentRect","sideRects","masker","bubble","wrapper","computed","_a","useModifier","event","modifier","decide","prev","next","handleClose","allSteps","currentStep","type","className","padding","maskId","useId","reference","placement","updatePopper","usePopper","watch","start","isClient","target","unrefElement","callIfFunc","top","left","width","height","x","y","w","h","provide","TOUR_STATE","increaseStep","decreaseStep","__expose","close","actions","slotParams","shallowReadonly","step","emitEvent","autoClose","_withDirectives","_createElementVNode","_hoisted_1","_renderSlot","_ctx","_createVNode","_unref","Masker","_mergeProps","$event","transfer","_cache","_withCtx","show","_createElementBlock","_normalizeClass","_normalizeStyle","_Transition","_createBlock","Bubble","isFunction","Renderer","_Fragment","_normalizeProps","_guardReactiveProps","getStepByWord","Icon","_createTextVNode","_toDisplayString","_openBlock","_renderList","n","Button","_hoisted_2","_hoisted_6","rect","index"],"mappings":"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"}