element-plus
Version:
A Component Library for Vue 3
1 lines • 5.31 kB
Source Map (JSON)
{"version":3,"file":"mask2.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 setup lang=\"ts\">\nimport { computed, inject, toRef } from 'vue'\nimport { useLockscreen } from '@element-plus/hooks'\nimport { useWindowSize } from '@vueuse/core'\nimport { maskProps } from './mask'\nimport { tourKey } from './helper'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElTourMask',\n inheritAttrs: false,\n})\n\nconst props = defineProps(maskProps)\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":["visible","_openBlock","_createElementBlock","_mergeProps","_unref","$attrs","_createElementVNode","_normalizeClass","_normalizeStyle"],"mappings":"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"}