leiting-bim 2.1.126 → 2.1.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/leiting-bim.es.js +1 -1
- package/package.json +1 -1
- package/plugins/cesium-core/dist/cesium-core.mjs +53 -54
- package/plugins/cesium-core/dist/cesium-core.mjs.map +1 -1
- package/plugins/cesium-core/dist/cesium-core.umd.js +5 -5
- package/plugins/cesium-core/dist/cesium-core.umd.js.map +1 -1
- package/plugins/cesium-vue/dist/cesium-vue/src/components/marker-bubble/index.d.ts +34 -16
- package/plugins/cesium-vue/dist/components/card-content.js +1 -1
- package/plugins/cesium-vue/dist/components/echarts-pro.js +1 -1
- package/plugins/cesium-vue/dist/components/marker-bubble.js +60 -54
- package/plugins/cesium-vue/dist/components/marker-bubble.js.map +1 -1
- package/plugins/cesium-vue/dist/components/marker-manage.js +323 -307
- package/plugins/cesium-vue/dist/components/marker-manage.js.map +1 -1
- package/plugins/cesium-vue/dist/index-Kqi_S6KA.js +404 -0
- package/plugins/cesium-vue/dist/index-Kqi_S6KA.js.map +1 -0
- package/plugins/cesium-vue/dist/index-McKGafjp.js +45856 -0
- package/plugins/cesium-vue/dist/index-McKGafjp.js.map +1 -0
- package/plugins/cesium-vue/dist/index.js +1 -1
- package/plugins/theme-chalk/dist/theme-chalk.css +1 -0
|
@@ -6,26 +6,35 @@ declare const CxMarkerBubble: import('../../../../utils/with-install').SFCWithIn
|
|
|
6
6
|
};
|
|
7
7
|
readonly textStyle: {
|
|
8
8
|
readonly type: ObjectConstructor;
|
|
9
|
-
readonly default: () =>
|
|
9
|
+
readonly default: () => {};
|
|
10
10
|
};
|
|
11
11
|
readonly lineStyle: {
|
|
12
12
|
readonly type: ObjectConstructor;
|
|
13
|
-
readonly default: () =>
|
|
13
|
+
readonly default: () => {};
|
|
14
14
|
};
|
|
15
15
|
readonly isCanDraggable: {
|
|
16
16
|
readonly type: BooleanConstructor;
|
|
17
17
|
readonly default: false;
|
|
18
18
|
};
|
|
19
19
|
readonly onCanDraggable: {
|
|
20
|
-
readonly type:
|
|
20
|
+
readonly type: import('vue').PropType<() => boolean>;
|
|
21
21
|
};
|
|
22
22
|
readonly pixelOffset: {
|
|
23
|
-
readonly type:
|
|
24
|
-
readonly default: () =>
|
|
23
|
+
readonly type: import('vue').PropType<import('./src/markerBubble').OtherOffset>;
|
|
24
|
+
readonly default: () => {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
};
|
|
25
28
|
};
|
|
26
29
|
readonly otherOffset: {
|
|
27
|
-
readonly type:
|
|
28
|
-
readonly default: () =>
|
|
30
|
+
readonly type: import('vue').PropType<import('./src/markerBubble').OtherOffset>;
|
|
31
|
+
readonly default: () => {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
readonly onSetOtherOffset: {
|
|
37
|
+
readonly type: import('vue').PropType<(offset: import('./src/markerBubble').OtherOffset) => void>;
|
|
29
38
|
};
|
|
30
39
|
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
31
40
|
setOtherOffset: (...args: any[]) => void;
|
|
@@ -36,26 +45,35 @@ declare const CxMarkerBubble: import('../../../../utils/with-install').SFCWithIn
|
|
|
36
45
|
};
|
|
37
46
|
readonly textStyle: {
|
|
38
47
|
readonly type: ObjectConstructor;
|
|
39
|
-
readonly default: () =>
|
|
48
|
+
readonly default: () => {};
|
|
40
49
|
};
|
|
41
50
|
readonly lineStyle: {
|
|
42
51
|
readonly type: ObjectConstructor;
|
|
43
|
-
readonly default: () =>
|
|
52
|
+
readonly default: () => {};
|
|
44
53
|
};
|
|
45
54
|
readonly isCanDraggable: {
|
|
46
55
|
readonly type: BooleanConstructor;
|
|
47
56
|
readonly default: false;
|
|
48
57
|
};
|
|
49
58
|
readonly onCanDraggable: {
|
|
50
|
-
readonly type:
|
|
59
|
+
readonly type: import('vue').PropType<() => boolean>;
|
|
51
60
|
};
|
|
52
61
|
readonly pixelOffset: {
|
|
53
|
-
readonly type:
|
|
54
|
-
readonly default: () =>
|
|
62
|
+
readonly type: import('vue').PropType<import('./src/markerBubble').OtherOffset>;
|
|
63
|
+
readonly default: () => {
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
};
|
|
55
67
|
};
|
|
56
68
|
readonly otherOffset: {
|
|
57
|
-
readonly type:
|
|
58
|
-
readonly default: () =>
|
|
69
|
+
readonly type: import('vue').PropType<import('./src/markerBubble').OtherOffset>;
|
|
70
|
+
readonly default: () => {
|
|
71
|
+
x: number;
|
|
72
|
+
y: number;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
readonly onSetOtherOffset: {
|
|
76
|
+
readonly type: import('vue').PropType<(offset: import('./src/markerBubble').OtherOffset) => void>;
|
|
59
77
|
};
|
|
60
78
|
}>> & Readonly<{
|
|
61
79
|
onSetOtherOffset?: ((...args: any[]) => any) | undefined;
|
|
@@ -64,8 +82,8 @@ declare const CxMarkerBubble: import('../../../../utils/with-install').SFCWithIn
|
|
|
64
82
|
readonly textStyle: Record<string, any>;
|
|
65
83
|
readonly lineStyle: Record<string, any>;
|
|
66
84
|
readonly isCanDraggable: boolean;
|
|
67
|
-
readonly pixelOffset:
|
|
68
|
-
readonly otherOffset:
|
|
85
|
+
readonly pixelOffset: import('./src/markerBubble').OtherOffset;
|
|
86
|
+
readonly otherOffset: import('./src/markerBubble').OtherOffset;
|
|
69
87
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
70
88
|
el: HTMLDivElement;
|
|
71
89
|
}, HTMLDivElement>>;
|
|
@@ -2,7 +2,7 @@ import { p as l, c as i, w as m } from "../create-DynflqE1.js";
|
|
|
2
2
|
import { defineComponent as p, openBlock as s, createElementBlock as o, normalizeClass as n, unref as e, normalizeStyle as u, createElementVNode as r, createVNode as c, normalizeProps as f, guardReactiveProps as _, createCommentVNode as y } from "vue";
|
|
3
3
|
import { CxBasicVideo as C } from "./basic-video.js";
|
|
4
4
|
import { CxCarouselImg as b } from "./carousel-img.js";
|
|
5
|
-
import { C as v } from "../index-
|
|
5
|
+
import { C as v } from "../index-McKGafjp.js";
|
|
6
6
|
const h = {
|
|
7
7
|
data: {
|
|
8
8
|
type: Object,
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { p as fe, c as oe, w as ne } from "../create-DynflqE1.js";
|
|
2
2
|
import { defineComponent as ue, ref as m, computed as K, openBlock as Q, createElementBlock as U, normalizeClass as H, unref as W, createElementVNode as Z, normalizeStyle as q, toDisplayString as ie, createCommentVNode as be } from "vue";
|
|
3
|
-
import {
|
|
4
|
-
const
|
|
3
|
+
import { b as me, c as he, d as pe } from "../index-Kqi_S6KA.js";
|
|
4
|
+
const ve = {
|
|
5
5
|
text: { type: String, default: "文字" },
|
|
6
6
|
textStyle: {
|
|
7
7
|
type: Object,
|
|
8
|
-
default: () => {
|
|
9
|
-
}
|
|
8
|
+
default: () => ({})
|
|
10
9
|
},
|
|
11
10
|
lineStyle: {
|
|
12
11
|
type: Object,
|
|
13
|
-
default: () => {
|
|
14
|
-
}
|
|
12
|
+
default: () => ({})
|
|
15
13
|
},
|
|
16
14
|
isCanDraggable: {
|
|
17
15
|
type: Boolean,
|
|
@@ -22,86 +20,94 @@ const pe = {
|
|
|
22
20
|
},
|
|
23
21
|
pixelOffset: {
|
|
24
22
|
type: Object,
|
|
25
|
-
default: () => {
|
|
26
|
-
}
|
|
23
|
+
default: () => ({ x: 0, y: 0 })
|
|
27
24
|
},
|
|
28
25
|
otherOffset: {
|
|
29
26
|
type: Object,
|
|
30
|
-
default: () => {
|
|
31
|
-
|
|
27
|
+
default: () => ({ x: 0, y: 0 })
|
|
28
|
+
},
|
|
29
|
+
onSetOtherOffset: {
|
|
30
|
+
type: Function
|
|
32
31
|
}
|
|
33
|
-
},
|
|
32
|
+
}, ce = /* @__PURE__ */ ue({
|
|
34
33
|
name: `${fe}-marker`,
|
|
35
34
|
__name: "MarkerBubble",
|
|
36
|
-
props:
|
|
35
|
+
props: ve,
|
|
37
36
|
emits: ["setOtherOffset"],
|
|
38
37
|
setup(ee, { emit: te }) {
|
|
39
|
-
const e = ee, I = oe("marker"), le = te, S = m(), { width:
|
|
40
|
-
let a = e.otherOffset?.x || 0,
|
|
41
|
-
|
|
42
|
-
let E = (e.pixelOffset?.x || 0) + a, _ = (e.pixelOffset?.y || 0) +
|
|
43
|
-
if (l <
|
|
44
|
-
|
|
38
|
+
const e = ee, I = oe("marker"), le = te, S = m(), { width: w, height: k } = me(S), p = m(!1), ae = K(() => {
|
|
39
|
+
let a = e.otherOffset?.x || 0, h = e.otherOffset?.y || 0;
|
|
40
|
+
x.value && (e.isCanDraggable || p.value) && (a = P.value || 0, h = B.value || 0);
|
|
41
|
+
let E = (e.pixelOffset?.x || 0) + a, _ = (e.pixelOffset?.y || 0) + h, l = 0, t = 0, y = l + E, F = l + E + w.value / 2, L = l + E + w.value, b = t + _, j = t + _ + k.value / 2, d = t + _ + k.value, s = 0, r = 0, u = 0, i = 0, z = 0, N = 0, R = 0, G = 0, T = 24, o = 4, V = 4, f = "", g = "", M = "";
|
|
42
|
+
if (l < y && t >= b && t <= d) {
|
|
43
|
+
s = y, u = y;
|
|
45
44
|
let n = t < j ? b : j;
|
|
46
|
-
|
|
47
|
-
} else if (l > L && t >= b && t <=
|
|
48
|
-
|
|
45
|
+
r = n + o, i = n + o + Math.min(T, k.value / 2 - o - V), f = "left";
|
|
46
|
+
} else if (l > L && t >= b && t <= d) {
|
|
47
|
+
s = L, u = L;
|
|
49
48
|
let n = t < j ? b : j;
|
|
50
|
-
|
|
49
|
+
r = n + o, i = n + o + Math.min(T, k.value / 2 - o - V), f = "right";
|
|
51
50
|
} else if (t < b) {
|
|
52
|
-
|
|
53
|
-
let n = l < F ?
|
|
54
|
-
|
|
55
|
-
} else if (t >
|
|
56
|
-
|
|
57
|
-
let n = l < F ?
|
|
58
|
-
|
|
51
|
+
r = b, i = b;
|
|
52
|
+
let n = l < F ? y : F;
|
|
53
|
+
s = n + o, u = n + o + Math.min(T, w.value / 2 - o - V), f = "top";
|
|
54
|
+
} else if (t > d) {
|
|
55
|
+
r = d, i = d;
|
|
56
|
+
let n = l < F ? y : F;
|
|
57
|
+
s = n + o, u = n + o + Math.min(T, w.value / 2 - o - V), f = "bottom";
|
|
59
58
|
} else
|
|
60
|
-
|
|
61
|
-
l >=
|
|
62
|
-
let
|
|
63
|
-
(f == "top" || f == "bottom") && (
|
|
64
|
-
let
|
|
59
|
+
s = 0, u = 0, r = 0, i = 0;
|
|
60
|
+
l >= s && l <= u ? (z = Math.abs(l - s) + Math.abs(l - u), R = -Math.abs(l - s), g = "mid") : (z = Math.max(Math.abs(l - s), Math.abs(l - u)), R = l < s ? 0 : -z, g = l < s ? "left" : "right"), t >= r && t <= i ? (N = Math.abs(t - r) + Math.abs(t - i), G = -Math.abs(t - r), M = "mid") : (N = Math.max(Math.abs(t - r), Math.abs(t - i)), G = t < r ? 0 : -N, M = t < r ? "top" : "bottom");
|
|
61
|
+
let O = 0, D = 0, X = 0, Y = 0, $ = 0, C = 0;
|
|
62
|
+
(f == "top" || f == "bottom") && (D = f == "top" ? 0 : "100%", Y = f == "top" ? "100%" : 0, C = f == "top" ? "100%" : 0, g == "left" ? (O = 0, X = s + "px", $ = "100%") : g == "right" ? (O = "100%", X = 0, $ = Math.abs(u - s) + "px") : g == "mid" && (O = Math.abs(l - s) + "px", X = 0, $ = "100%")), (f == "left" || f == "right") && (O = f == "left" ? 0 : "100%", X = f == "left" ? "100%" : 0, $ = f == "left" ? "100%" : 0, M == "top" ? (D = 0, Y = r + "px", C = "100%") : M == "bottom" ? (D = "100%", Y = 0, C = Math.abs(i - r) + "px") : M == "mid" && (D = Math.abs(t - r) + "px", Y = 0, C = "100%"));
|
|
63
|
+
let re = `polygon(${O} ${D}, ${X} ${Y},${$} ${C})`;
|
|
65
64
|
return {
|
|
66
65
|
...e.lineStyle,
|
|
67
66
|
width: z + "px",
|
|
68
67
|
height: N + "px",
|
|
69
|
-
clipPath:
|
|
70
|
-
|
|
68
|
+
clipPath: re,
|
|
69
|
+
position: "absolute",
|
|
70
|
+
top: 0,
|
|
71
|
+
left: 0,
|
|
72
|
+
transform: `translate(${-E + R + a}px , ${-_ + G + h}px)`
|
|
71
73
|
};
|
|
72
|
-
}),
|
|
74
|
+
}), v = m(0), c = m(0), P = m(0), B = m(0), x = m(!1), se = K(() => x.value && (e.isCanDraggable || p.value) ? {
|
|
73
75
|
width: "max-content",
|
|
74
|
-
transform: `translate(${
|
|
76
|
+
transform: `translate(${P.value}px, ${B.value}px)`
|
|
75
77
|
} : {
|
|
76
78
|
width: "max-content",
|
|
77
79
|
transform: `translate(${e.otherOffset?.x || 0}px, ${e.otherOffset?.y || 0}px)`
|
|
78
|
-
}), { elementPositionX: A, elementPositionY: J } =
|
|
79
|
-
return
|
|
80
|
+
}), { elementPositionX: A, elementPositionY: J } = he(S);
|
|
81
|
+
return pe(S, {
|
|
80
82
|
initialValue: { x: A.value, y: J.value },
|
|
81
83
|
onStart: () => {
|
|
82
|
-
|
|
83
|
-
e.onCanDraggable && (
|
|
84
|
+
v.value = A.value, c.value = J.value, setTimeout(() => {
|
|
85
|
+
e.onCanDraggable && (p.value = e.onCanDraggable()), x.value = !0;
|
|
84
86
|
});
|
|
85
87
|
},
|
|
86
88
|
onMove: (a) => {
|
|
87
|
-
(e.isCanDraggable ||
|
|
88
|
-
x: x.value,
|
|
89
|
-
y: c.value
|
|
90
|
-
}));
|
|
89
|
+
(e.isCanDraggable || p.value) && x.value && (P.value = a.x - v.value + (e.otherOffset?.x || 0), B.value = a.y - c.value + (e.otherOffset?.y || 0));
|
|
91
90
|
},
|
|
92
91
|
onEnd: (a) => {
|
|
93
|
-
a.x == 0 && a.y == 0
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
if (!(a.x == 0 && a.y == 0) && !(a.x == v.value && a.y == c.value)) {
|
|
93
|
+
if (e.isCanDraggable || p.value) {
|
|
94
|
+
P.value = a.x - v.value + (e.otherOffset?.x || 0), B.value = a.y - c.value + (e.otherOffset?.y || 0);
|
|
95
|
+
const h = {
|
|
96
|
+
x: a.x - v.value + (e.otherOffset?.x || 0),
|
|
97
|
+
y: a.y - c.value + (e.otherOffset?.y || 0)
|
|
98
|
+
};
|
|
99
|
+
le("setOtherOffset", h);
|
|
100
|
+
}
|
|
101
|
+
x.value = !1;
|
|
102
|
+
}
|
|
97
103
|
}
|
|
98
|
-
}), (a,
|
|
104
|
+
}), (a, h) => (Q(), U("div", {
|
|
99
105
|
class: H(W(I).b("bubble"))
|
|
100
106
|
}, [
|
|
101
107
|
Z("div", {
|
|
102
108
|
ref_key: "el",
|
|
103
109
|
ref: S,
|
|
104
|
-
style: q(
|
|
110
|
+
style: q(se.value)
|
|
105
111
|
}, [
|
|
106
112
|
e.text ? (Q(), U("div", {
|
|
107
113
|
key: 0,
|
|
@@ -115,10 +121,10 @@ const pe = {
|
|
|
115
121
|
}, null, 6)
|
|
116
122
|
], 2));
|
|
117
123
|
}
|
|
118
|
-
}), ge = ne(
|
|
124
|
+
}), ge = ne(ce);
|
|
119
125
|
export {
|
|
120
126
|
ge as CxMarkerBubble,
|
|
121
127
|
ge as default,
|
|
122
|
-
|
|
128
|
+
ve as markerBubbleProps
|
|
123
129
|
};
|
|
124
130
|
//# sourceMappingURL=marker-bubble.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker-bubble.js","sources":["../../src/components/marker-bubble/src/markerBubble.ts","../../src/components/marker-bubble/src/MarkerBubble.vue","../../src/components/marker-bubble/index.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue';\r\nexport const markerBubbleProps = {\r\n text: { type: String, default: '文字' },\r\n textStyle: {\r\n type: Object,\r\n default: () => {},\r\n },\r\n lineStyle: {\r\n type: Object,\r\n default: () => {},\r\n },\r\n isCanDraggable: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n onCanDraggable: {\r\n type: Function,\r\n },\r\n pixelOffset: {\r\n type: Object,\r\n default: () => {\r\n x: 0;\r\n y: 0;\r\n },\r\n },\r\n otherOffset: {\r\n type: Object,\r\n default: () => {\r\n x: 0;\r\n y: 0;\r\n },\r\n },\r\n} as const;\r\n\r\nexport type MarkerBubbleProps = ExtractPropTypes<typeof markerBubbleProps>;\r\n","<template>\r\n <div :class=\"bem.b('bubble')\">\r\n <div ref=\"el\" :style=\"nameTransform\">\r\n <div :class=\"bem.be('bubble', 'name')\" v-if=\"props.text\" :style=\"props.textStyle\">\r\n {{ props.text }}\r\n </div>\r\n </div>\r\n <div :class=\"bem.be('bubble', 'line')\" :style=\"lineStyle\"></div>\r\n </div>\r\n</template>\r\n<script lang=\"ts\" setup>\r\n import { createNamespace, prefix } from '../../../../../utils/create';\r\n import { markerBubbleProps } from './markerBubble';\r\n import { computed, ref } from 'vue';\r\n import { useElementSize, useDraggable, useMouseInElement } from '@vueuse/core';\r\n defineOptions({ name: `${prefix}-marker` });\r\n const props = defineProps(markerBubbleProps);\r\n const bem = createNamespace('marker');\r\n\r\n const emit = defineEmits(['setOtherOffset']);\r\n const el = ref();\r\n const { width, height } = useElementSize(el);\r\n const draggable = ref(false);\r\n const lineStyle = computed(() => {\r\n let otherOffsetX = props.otherOffset?.x || 0;\r\n let otherOffsetY = props.otherOffset?.y || 0;\r\n if (isMove.value && (props.isCanDraggable || draggable.value)) {\r\n otherOffsetX = currX.value || 0;\r\n otherOffsetY = currY.value || 0;\r\n }\r\n\r\n let XF = (props.pixelOffset?.x || 0) + otherOffsetX;\r\n let YF = (props.pixelOffset?.y || 0) + otherOffsetY;\r\n let X = 0;\r\n let Y = 0;\r\n let XL = X + XF;\r\n let XM = X + XF + width.value / 2;\r\n let XR = X + XF + width.value;\r\n let YT = Y + YF;\r\n let YM = Y + YF + height.value / 2;\r\n let YB = Y + YF + height.value;\r\n let DX1 = 0;\r\n let DY1 = 0;\r\n let DX2 = 0;\r\n let DY2 = 0;\r\n let arrowW = 0;\r\n let arrowH = 0;\r\n let arrowXF = 0;\r\n let arrowYF = 0;\r\n let interval = 24;\r\n let PML = 4;\r\n let borderRadius = 4;\r\n let EDGE = '';\r\n let directionX = '';\r\n let directionY = '';\r\n //计算动态点位\r\n if (X < XL && Y >= YT && Y <= YB) {\r\n //点在矩形左边\r\n DX1 = XL;\r\n DX2 = XL;\r\n let PY = Y < YM ? YT : YM;\r\n DY1 = PY + PML;\r\n DY2 = PY + PML + Math.min(interval, height.value / 2 - PML - borderRadius);\r\n // DY1 = PY + PML;\r\n // DY2 = PY + PML + interval;\r\n EDGE = 'left';\r\n } else if (X > XR && Y >= YT && Y <= YB) {\r\n //点在矩形右边\r\n DX1 = XR;\r\n DX2 = XR;\r\n let PY = Y < YM ? YT : YM;\r\n DY1 = PY + PML;\r\n DY2 = PY + PML + Math.min(interval, height.value / 2 - PML - borderRadius);\r\n // DY1 = PY + PML;\r\n // DY2 = PY + PML + interval;\r\n EDGE = 'right';\r\n } else if (Y < YT) {\r\n //点在矩形上方\r\n DY1 = YT;\r\n DY2 = YT;\r\n let PX = X < XM ? XL : XM;\r\n DX1 = PX + PML;\r\n DX2 = PX + PML + Math.min(interval, width.value / 2 - PML - borderRadius);\r\n // DX1 = PX + PML;\r\n // DX2 = PX + PML + interval;\r\n EDGE = 'top';\r\n } else if (Y > YB) {\r\n //点在矩形下方\r\n DY1 = YB;\r\n DY2 = YB;\r\n let PX = X < XM ? XL : XM;\r\n DX1 = PX + PML;\r\n DX2 = PX + PML + Math.min(interval, width.value / 2 - PML - borderRadius);\r\n // DX1 = PX + PML;\r\n // DX2 = PX + PML + interval;\r\n EDGE = 'bottom';\r\n } else {\r\n DX1 = 0;\r\n DX2 = 0;\r\n DY1 = 0;\r\n DY2 = 0;\r\n }\r\n //计算箭头容器大小与偏移量\r\n if (X >= DX1 && X <= DX2) {\r\n arrowW = Math.abs(X - DX1) + Math.abs(X - DX2);\r\n arrowXF = -Math.abs(X - DX1);\r\n directionX = 'mid';\r\n } else {\r\n arrowW = Math.max(Math.abs(X - DX1), Math.abs(X - DX2));\r\n arrowXF = X < DX1 ? 0 : -arrowW;\r\n directionX = X < DX1 ? 'left' : 'right';\r\n }\r\n\r\n if (Y >= DY1 && Y <= DY2) {\r\n arrowH = Math.abs(Y - DY1) + Math.abs(Y - DY2);\r\n arrowYF = -Math.abs(Y - DY1);\r\n directionY = 'mid';\r\n } else {\r\n arrowH = Math.max(Math.abs(Y - DY1), Math.abs(Y - DY2));\r\n arrowYF = Y < DY1 ? 0 : -arrowH;\r\n directionY = Y < DY1 ? 'top' : 'bottom';\r\n }\r\n //计算剖切路径\r\n let p1x = 0 as Number | String;\r\n let p1y = 0 as Number | String;\r\n let p2x = 0 as Number | String;\r\n let p2y = 0 as Number | String;\r\n let p3x = 0 as Number | String;\r\n let p3y = 0 as Number | String;\r\n\r\n if (EDGE == 'top' || EDGE == 'bottom') {\r\n p1y = EDGE == 'top' ? 0 : '100%';\r\n p2y = EDGE == 'top' ? '100%' : 0;\r\n p3y = EDGE == 'top' ? '100%' : 0;\r\n if (directionX == 'left') {\r\n p1x = 0;\r\n p2x = DX1 + 'px';\r\n p3x = '100%';\r\n } else if (directionX == 'right') {\r\n p1x = '100%';\r\n p2x = 0;\r\n p3x = Math.abs(DX2 - DX1) + 'px';\r\n } else if (directionX == 'mid') {\r\n p1x = Math.abs(X - DX1) + 'px';\r\n p2x = 0;\r\n p3x = '100%';\r\n }\r\n }\r\n\r\n if (EDGE == 'left' || EDGE == 'right') {\r\n p1x = EDGE == 'left' ? 0 : '100%';\r\n p2x = EDGE == 'left' ? '100%' : 0;\r\n p3x = EDGE == 'left' ? '100%' : 0;\r\n if (directionY == 'top') {\r\n p1y = 0;\r\n p2y = DY1 + 'px';\r\n p3y = '100%';\r\n } else if (directionY == 'bottom') {\r\n p1y = '100%';\r\n p2y = 0;\r\n p3y = Math.abs(DY2 - DY1) + 'px';\r\n } else if (directionY == 'mid') {\r\n p1y = Math.abs(Y - DY1) + 'px';\r\n p2y = 0;\r\n p3y = '100%';\r\n }\r\n }\r\n let clipPath = `polygon(${p1x} ${p1y}, ${p2x} ${p2y},${p3x} ${p3y})`;\r\n return {\r\n ...props.lineStyle,\r\n width: arrowW + 'px',\r\n height: arrowH + 'px',\r\n clipPath: clipPath,\r\n transform: `translate(${-XF + arrowXF + otherOffsetX}px , ${\r\n -YF + arrowYF + otherOffsetY\r\n }px)`,\r\n };\r\n });\r\n let isMouseOver = false;\r\n const oldX = ref(0);\r\n const oldY = ref(0);\r\n const currX = ref(0);\r\n const currY = ref(0);\r\n const isMove = ref(false);\r\n const nameTransform = computed(() => {\r\n if (isMove.value && (props.isCanDraggable || draggable.value)) {\r\n return {\r\n width: `max-content`,\r\n transform: `translate(${currX.value}px, ${currY.value}px)`,\r\n };\r\n } else {\r\n return {\r\n width: `max-content`,\r\n transform: `translate(${props.otherOffset?.x || 0}px, ${props.otherOffset?.y || 0}px)`,\r\n };\r\n }\r\n });\r\n const { elementPositionX, elementPositionY } = useMouseInElement(el);\r\n useDraggable(el, {\r\n initialValue: { x: elementPositionX.value, y: elementPositionY.value },\r\n onStart: () => {\r\n oldX.value = elementPositionX.value;\r\n oldY.value = elementPositionY.value;\r\n setTimeout(() => {\r\n if (props.onCanDraggable) {\r\n draggable.value = props.onCanDraggable();\r\n }\r\n isMove.value = true;\r\n });\r\n },\r\n onMove: (position) => {\r\n if ((props.isCanDraggable || draggable.value) && isMove.value) {\r\n currX.value = position.x - oldX.value + (props.otherOffset?.x || 0);\r\n currY.value = position.y - oldY.value + (props.otherOffset?.y || 0);\r\n console.log({\r\n x: currX.value,\r\n y: currY.value,\r\n });\r\n }\r\n },\r\n onEnd: (position) => {\r\n if (position.x == 0 && position.y == 0) return;\r\n if (position.x == oldX.value && position.y == oldY.value) return;\r\n if (props.isCanDraggable || draggable.value) {\r\n currX.value = position.x - oldX.value + (props.otherOffset?.x || 0);\r\n currY.value = position.y - oldY.value + (props.otherOffset?.y || 0);\r\n emit('setOtherOffset', {\r\n x: position.x - oldX.value + (props.otherOffset?.x || 0),\r\n y: position.y - oldY.value + (props.otherOffset?.y || 0),\r\n });\r\n }\r\n isMove.value = false;\r\n },\r\n });\r\n</script>\r\n","import { withInstall } from '../../../../utils/with-install';\r\nimport _MarkerBubble from './src/MarkerBubble.vue';\r\nexport * from './src/markerBubble';\r\n\r\nconst CxMarkerBubble = withInstall(_MarkerBubble);\r\nexport { CxMarkerBubble };\r\nexport default CxMarkerBubble;\r\n"],"names":["markerBubbleProps","props","__props","bem","createNamespace","emit","__emit","el","ref","width","height","useElementSize","draggable","lineStyle","computed","otherOffsetX","otherOffsetY","isMove","currX","currY","XF","YF","X","Y","XL","XM","XR","YT","YM","YB","DX1","DY1","DX2","DY2","arrowW","arrowH","arrowXF","arrowYF","interval","PML","borderRadius","EDGE","directionX","directionY","PY","PX","p1x","p1y","p2x","p2y","p3x","p3y","clipPath","oldX","oldY","nameTransform","elementPositionX","elementPositionY","useMouseInElement","useDraggable","position","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_normalizeStyle","_toDisplayString","CxMarkerBubble","withInstall","_MarkerBubble"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"marker-bubble.js","sources":["../../src/components/marker-bubble/src/markerBubble.ts","../../src/components/marker-bubble/src/MarkerBubble.vue","../../src/components/marker-bubble/index.ts"],"sourcesContent":["import { ExtractPropTypes, PropType } from 'vue';\r\n\r\nexport type OtherOffset = { x: number; y: number };\r\n\r\nexport const markerBubbleProps = {\r\n text: { type: String, default: '文字' },\r\n textStyle: {\r\n type: Object,\r\n default: () => ({}),\r\n },\r\n lineStyle: {\r\n type: Object,\r\n default: () => ({}),\r\n },\r\n isCanDraggable: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n onCanDraggable: {\r\n type: Function as PropType<() => boolean>,\r\n },\r\n pixelOffset: {\r\n type: Object as PropType<OtherOffset>,\r\n default: () => ({ x: 0, y: 0 }),\r\n },\r\n otherOffset: {\r\n type: Object as PropType<OtherOffset>,\r\n default: () => ({ x: 0, y: 0 }),\r\n },\r\n onSetOtherOffset: {\r\n type: Function as PropType<(offset: OtherOffset) => void>,\r\n },\r\n\r\n} as const;\r\n\r\nexport type MarkerBubbleProps = ExtractPropTypes<typeof markerBubbleProps>;\r\n","<template>\r\n <div :class=\"bem.b('bubble')\">\r\n <div ref=\"el\" :style=\"nameTransform\">\r\n <div :class=\"bem.be('bubble', 'name')\" v-if=\"props.text\" :style=\"props.textStyle\">\r\n {{ props.text }}\r\n </div>\r\n </div>\r\n <div :class=\"bem.be('bubble', 'line')\" :style=\"lineStyle\"></div>\r\n </div>\r\n</template>\r\n<script lang=\"ts\" setup>\r\n import { createNamespace, prefix } from '../../../../../utils/create';\r\n import { markerBubbleProps } from './markerBubble';\r\n import { computed, ref } from 'vue';\r\n import { useElementSize, useDraggable, useMouseInElement } from '@vueuse/core';\r\n defineOptions({ name: `${prefix}-marker` });\r\n const props = defineProps(markerBubbleProps);\r\n const bem = createNamespace('marker');\r\n\r\n const emit = defineEmits(['setOtherOffset']);\r\n const el = ref();\r\n const { width, height } = useElementSize(el);\r\n const draggable = ref(false);\r\n const lineStyle = computed(() => {\r\n let otherOffsetX = props.otherOffset?.x || 0;\r\n let otherOffsetY = props.otherOffset?.y || 0;\r\n if (isMove.value && (props.isCanDraggable || draggable.value)) {\r\n otherOffsetX = currX.value || 0;\r\n otherOffsetY = currY.value || 0;\r\n }\r\n\r\n let XF = (props.pixelOffset?.x || 0) + otherOffsetX;\r\n let YF = (props.pixelOffset?.y || 0) + otherOffsetY;\r\n let X = 0;\r\n let Y = 0;\r\n let XL = X + XF;\r\n let XM = X + XF + width.value / 2;\r\n let XR = X + XF + width.value;\r\n let YT = Y + YF;\r\n let YM = Y + YF + height.value / 2;\r\n let YB = Y + YF + height.value;\r\n let DX1 = 0;\r\n let DY1 = 0;\r\n let DX2 = 0;\r\n let DY2 = 0;\r\n let arrowW = 0;\r\n let arrowH = 0;\r\n let arrowXF = 0;\r\n let arrowYF = 0;\r\n let interval = 24;\r\n let PML = 4;\r\n let borderRadius = 4;\r\n let EDGE = '';\r\n let directionX = '';\r\n let directionY = '';\r\n //计算动态点位\r\n if (X < XL && Y >= YT && Y <= YB) {\r\n //点在矩形左边\r\n DX1 = XL;\r\n DX2 = XL;\r\n let PY = Y < YM ? YT : YM;\r\n DY1 = PY + PML;\r\n DY2 = PY + PML + Math.min(interval, height.value / 2 - PML - borderRadius);\r\n // DY1 = PY + PML;\r\n // DY2 = PY + PML + interval;\r\n EDGE = 'left';\r\n } else if (X > XR && Y >= YT && Y <= YB) {\r\n //点在矩形右边\r\n DX1 = XR;\r\n DX2 = XR;\r\n let PY = Y < YM ? YT : YM;\r\n DY1 = PY + PML;\r\n DY2 = PY + PML + Math.min(interval, height.value / 2 - PML - borderRadius);\r\n // DY1 = PY + PML;\r\n // DY2 = PY + PML + interval;\r\n EDGE = 'right';\r\n } else if (Y < YT) {\r\n //点在矩形上方\r\n DY1 = YT;\r\n DY2 = YT;\r\n let PX = X < XM ? XL : XM;\r\n DX1 = PX + PML;\r\n DX2 = PX + PML + Math.min(interval, width.value / 2 - PML - borderRadius);\r\n // DX1 = PX + PML;\r\n // DX2 = PX + PML + interval;\r\n EDGE = 'top';\r\n } else if (Y > YB) {\r\n //点在矩形下方\r\n DY1 = YB;\r\n DY2 = YB;\r\n let PX = X < XM ? XL : XM;\r\n DX1 = PX + PML;\r\n DX2 = PX + PML + Math.min(interval, width.value / 2 - PML - borderRadius);\r\n // DX1 = PX + PML;\r\n // DX2 = PX + PML + interval;\r\n EDGE = 'bottom';\r\n } else {\r\n DX1 = 0;\r\n DX2 = 0;\r\n DY1 = 0;\r\n DY2 = 0;\r\n }\r\n //计算箭头容器大小与偏移量\r\n if (X >= DX1 && X <= DX2) {\r\n arrowW = Math.abs(X - DX1) + Math.abs(X - DX2);\r\n arrowXF = -Math.abs(X - DX1);\r\n directionX = 'mid';\r\n } else {\r\n arrowW = Math.max(Math.abs(X - DX1), Math.abs(X - DX2));\r\n arrowXF = X < DX1 ? 0 : -arrowW;\r\n directionX = X < DX1 ? 'left' : 'right';\r\n }\r\n\r\n if (Y >= DY1 && Y <= DY2) {\r\n arrowH = Math.abs(Y - DY1) + Math.abs(Y - DY2);\r\n arrowYF = -Math.abs(Y - DY1);\r\n directionY = 'mid';\r\n } else {\r\n arrowH = Math.max(Math.abs(Y - DY1), Math.abs(Y - DY2));\r\n arrowYF = Y < DY1 ? 0 : -arrowH;\r\n directionY = Y < DY1 ? 'top' : 'bottom';\r\n }\r\n //计算剖切路径\r\n let p1x = 0 as Number | String;\r\n let p1y = 0 as Number | String;\r\n let p2x = 0 as Number | String;\r\n let p2y = 0 as Number | String;\r\n let p3x = 0 as Number | String;\r\n let p3y = 0 as Number | String;\r\n\r\n if (EDGE == 'top' || EDGE == 'bottom') {\r\n p1y = EDGE == 'top' ? 0 : '100%';\r\n p2y = EDGE == 'top' ? '100%' : 0;\r\n p3y = EDGE == 'top' ? '100%' : 0;\r\n if (directionX == 'left') {\r\n p1x = 0;\r\n p2x = DX1 + 'px';\r\n p3x = '100%';\r\n } else if (directionX == 'right') {\r\n p1x = '100%';\r\n p2x = 0;\r\n p3x = Math.abs(DX2 - DX1) + 'px';\r\n } else if (directionX == 'mid') {\r\n p1x = Math.abs(X - DX1) + 'px';\r\n p2x = 0;\r\n p3x = '100%';\r\n }\r\n }\r\n\r\n if (EDGE == 'left' || EDGE == 'right') {\r\n p1x = EDGE == 'left' ? 0 : '100%';\r\n p2x = EDGE == 'left' ? '100%' : 0;\r\n p3x = EDGE == 'left' ? '100%' : 0;\r\n if (directionY == 'top') {\r\n p1y = 0;\r\n p2y = DY1 + 'px';\r\n p3y = '100%';\r\n } else if (directionY == 'bottom') {\r\n p1y = '100%';\r\n p2y = 0;\r\n p3y = Math.abs(DY2 - DY1) + 'px';\r\n } else if (directionY == 'mid') {\r\n p1y = Math.abs(Y - DY1) + 'px';\r\n p2y = 0;\r\n p3y = '100%';\r\n }\r\n }\r\n let clipPath = `polygon(${p1x} ${p1y}, ${p2x} ${p2y},${p3x} ${p3y})`;\r\n return {\r\n ...props.lineStyle,\r\n width: arrowW + 'px',\r\n height: arrowH + 'px',\r\n clipPath: clipPath,\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n transform: `translate(${-XF + arrowXF + otherOffsetX}px , ${\r\n -YF + arrowYF + otherOffsetY\r\n }px)`,\r\n };\r\n });\r\n let isMouseOver = false;\r\n const oldX = ref(0);\r\n const oldY = ref(0);\r\n const currX = ref(0);\r\n const currY = ref(0);\r\n const isMove = ref(false);\r\n const nameTransform = computed(() => {\r\n if (isMove.value && (props.isCanDraggable || draggable.value)) {\r\n return {\r\n width: `max-content`,\r\n transform: `translate(${currX.value}px, ${currY.value}px)`,\r\n };\r\n } else {\r\n return {\r\n width: `max-content`,\r\n transform: `translate(${props.otherOffset?.x || 0}px, ${props.otherOffset?.y || 0}px)`,\r\n };\r\n }\r\n });\r\n const { elementPositionX, elementPositionY } = useMouseInElement(el);\r\n useDraggable(el, {\r\n initialValue: { x: elementPositionX.value, y: elementPositionY.value },\r\n onStart: () => {\r\n oldX.value = elementPositionX.value;\r\n oldY.value = elementPositionY.value;\r\n setTimeout(() => {\r\n if (props.onCanDraggable) {\r\n draggable.value = props.onCanDraggable();\r\n }\r\n isMove.value = true;\r\n });\r\n },\r\n onMove: (position) => {\r\n if ((props.isCanDraggable || draggable.value) && isMove.value) {\r\n currX.value = position.x - oldX.value + (props.otherOffset?.x || 0);\r\n currY.value = position.y - oldY.value + (props.otherOffset?.y || 0);\r\n }\r\n },\r\n onEnd: (position) => {\r\n if (position.x == 0 && position.y == 0) return;\r\n if (position.x == oldX.value && position.y == oldY.value) return;\r\n if (props.isCanDraggable || draggable.value) {\r\n currX.value = position.x - oldX.value + (props.otherOffset?.x || 0);\r\n currY.value = position.y - oldY.value + (props.otherOffset?.y || 0);\r\n const offset = {\r\n x: position.x - oldX.value + (props.otherOffset?.x || 0),\r\n y: position.y - oldY.value + (props.otherOffset?.y || 0),\r\n };\r\n emit('setOtherOffset', offset);\r\n }\r\n isMove.value = false;\r\n },\r\n });\r\n</script>\r\n","import { withInstall } from '../../../../utils/with-install';\r\nimport _MarkerBubble from './src/MarkerBubble.vue';\r\nexport * from './src/markerBubble';\r\n\r\nconst CxMarkerBubble = withInstall(_MarkerBubble);\r\nexport { CxMarkerBubble };\r\nexport default CxMarkerBubble;\r\n"],"names":["markerBubbleProps","props","__props","bem","createNamespace","emit","__emit","el","ref","width","height","useElementSize","draggable","lineStyle","computed","otherOffsetX","otherOffsetY","isMove","currX","currY","XF","YF","X","Y","XL","XM","XR","YT","YM","YB","DX1","DY1","DX2","DY2","arrowW","arrowH","arrowXF","arrowYF","interval","PML","borderRadius","EDGE","directionX","directionY","PY","PX","p1x","p1y","p2x","p2y","p3x","p3y","clipPath","oldX","oldY","nameTransform","elementPositionX","elementPositionY","useMouseInElement","useDraggable","position","offset","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_normalizeStyle","_toDisplayString","CxMarkerBubble","withInstall","_MarkerBubble"],"mappings":"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"}
|