{"version":3,"file":"mask.vue2.mjs","sources":["../../../../../../packages/components/tour/src/mask.vue"],"sourcesContent":["<template>\n  <div v-if=\"visible\" :class=\"ns.e('mask')\" :style=\"maskStyle\" v-bind=\"$attrs\">\n    <svg\n      :style=\"{\n        width: '100%',\n        height: '100%',\n      }\"\n    >\n      <path :class=\"ns.e('hollow')\" :style=\"pathStyle\" :d=\"path\" />\n    </svg>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, toRef } from 'vue'\nimport { useLockscreen } from '@element-plus/hooks'\nimport { useWindowSize } from '@vueuse/core'\nimport { tourKey } from './helper'\n\nimport type { CSSProperties } from 'vue'\nimport type { MaskProps } from './mask'\n\ndefineOptions({\n  name: 'ElTourMask',\n  inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<MaskProps>(), {\n  zIndex: 1001,\n  fill: 'rgba(0,0,0,0.5)',\n  targetAreaClickable: true,\n})\n\nconst { ns } = inject(tourKey)!\nconst radius = computed(() => props.pos?.radius ?? 2)\nconst roundInfo = computed(() => {\n  const v = radius.value\n  const baseInfo = `a${v},${v} 0 0 1`\n  return {\n    topRight: `${baseInfo} ${v},${v}`,\n    bottomRight: `${baseInfo} ${-v},${v}`,\n    bottomLeft: `${baseInfo} ${-v},${-v}`,\n    topLeft: `${baseInfo} ${v},${-v}`,\n  }\n})\n\nconst { width: windowWidth, height: windowHeight } = useWindowSize()\n\nconst path = computed(() => {\n  const width = windowWidth.value\n  const height = windowHeight.value\n  const info = roundInfo.value\n  const _path = `M${width},0 L0,0 L0,${height} L${width},${height} L${width},0 Z`\n  const _radius = radius.value\n  return props.pos\n    ? `${_path} M${props.pos.left + _radius},${props.pos.top} h${\n        props.pos.width - _radius * 2\n      } ${info.topRight} v${props.pos.height - _radius * 2} ${\n        info.bottomRight\n      } h${-props.pos.width + _radius * 2} ${info.bottomLeft} v${\n        -props.pos.height + _radius * 2\n      } ${info.topLeft} z`\n    : _path\n})\n\nconst maskStyle = computed<CSSProperties>(() => ({\n  position: 'fixed',\n  left: 0,\n  right: 0,\n  top: 0,\n  bottom: 0,\n  zIndex: props.zIndex,\n  pointerEvents: props.pos && props.targetAreaClickable ? 'none' : 'auto',\n}))\n\nconst pathStyle = computed<CSSProperties>(() => ({\n  fill: props.fill,\n  pointerEvents: 'auto',\n  cursor: 'auto',\n}))\n\nuseLockscreen(toRef(props, 'visible'), {\n  ns,\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_mergeProps","_unref","$attrs","_createElementVNode","_normalizeClass"],"mappings":"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"}