| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { defineComponent, inject, computed, toRef, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, normalizeStyle, createCommentVNode } from 'vue';
- import { useWindowSize } from '@vueuse/core';
- import { maskProps } from './mask.mjs';
- import { tourKey } from './helper.mjs';
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
- import { useLockscreen } from '../../../hooks/use-lockscreen/index.mjs';
- const __default__ = defineComponent({
- name: "ElTourMask",
- inheritAttrs: false
- });
- const _sfc_main = /* @__PURE__ */ defineComponent({
- ...__default__,
- props: maskProps,
- setup(__props) {
- const props = __props;
- const { ns } = inject(tourKey);
- const radius = computed(() => {
- var _a, _b;
- return (_b = (_a = props.pos) == null ? void 0 : _a.radius) != null ? _b : 2;
- });
- const roundInfo = computed(() => {
- const v = radius.value;
- const baseInfo = `a${v},${v} 0 0 1`;
- return {
- topRight: `${baseInfo} ${v},${v}`,
- bottomRight: `${baseInfo} ${-v},${v}`,
- bottomLeft: `${baseInfo} ${-v},${-v}`,
- topLeft: `${baseInfo} ${v},${-v}`
- };
- });
- const { width: windowWidth, height: windowHeight } = useWindowSize();
- const path = computed(() => {
- const width = windowWidth.value;
- const height = windowHeight.value;
- const info = roundInfo.value;
- const _path = `M${width},0 L0,0 L0,${height} L${width},${height} L${width},0 Z`;
- const _radius = radius.value;
- return props.pos ? `${_path} M${props.pos.left + _radius},${props.pos.top} h${props.pos.width - _radius * 2} ${info.topRight} v${props.pos.height - _radius * 2} ${info.bottomRight} h${-props.pos.width + _radius * 2} ${info.bottomLeft} v${-props.pos.height + _radius * 2} ${info.topLeft} z` : _path;
- });
- const maskStyle = computed(() => ({
- position: "fixed",
- left: 0,
- right: 0,
- top: 0,
- bottom: 0,
- zIndex: props.zIndex,
- pointerEvents: props.pos && props.targetAreaClickable ? "none" : "auto"
- }));
- const pathStyle = computed(() => ({
- fill: props.fill,
- pointerEvents: "auto",
- cursor: "auto"
- }));
- useLockscreen(toRef(props, "visible"), {
- ns
- });
- return (_ctx, _cache) => {
- return _ctx.visible ? (openBlock(), createElementBlock("div", mergeProps({
- key: 0,
- class: unref(ns).e("mask"),
- style: unref(maskStyle)
- }, _ctx.$attrs), [
- (openBlock(), createElementBlock("svg", { style: {
- width: "100%",
- height: "100%"
- } }, [
- createElementVNode("path", {
- class: normalizeClass(unref(ns).e("hollow")),
- style: normalizeStyle(unref(pathStyle)),
- d: unref(path)
- }, null, 14, ["d"])
- ]))
- ], 16)) : createCommentVNode("v-if", true);
- };
- }
- });
- var ElTourMask = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "mask.vue"]]);
- export { ElTourMask as default };
- //# sourceMappingURL=mask2.mjs.map
|