{"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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"}