@yimou6/common-ui 1.13.19 → 1.13.20

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.
Files changed (125) hide show
  1. package/cdn/index.cdn.js +25 -22
  2. package/cdn/index.cdn.js.map +1 -1
  3. package/cdn/index.cdn.mjs +19 -16
  4. package/cdn/index.cdn.mjs.map +1 -1
  5. package/cdn/index.css +1 -1
  6. package/es/components/geoMark/index.d.ts +733 -0
  7. package/es/components/geoMark/index.mjs +9 -0
  8. package/es/components/geoMark/index.mjs.map +1 -0
  9. package/es/components/geoMark/src/DragIcon.vue.d.ts +77 -0
  10. package/es/components/geoMark/src/DragIcon.vue.mjs +6 -0
  11. package/es/components/geoMark/src/DragIcon.vue.mjs.map +1 -0
  12. package/es/components/geoMark/src/DragIcon.vue2.mjs +67 -0
  13. package/es/components/geoMark/src/DragIcon.vue2.mjs.map +1 -0
  14. package/es/components/geoMark/src/assets//344/277/235/345/255/230.png.mjs +4 -0
  15. package/es/components/geoMark/src/assets//344/277/235/345/255/230.png.mjs.map +1 -0
  16. package/es/components/geoMark/src/assets//345/210/240/351/231/244.png.mjs +4 -0
  17. package/es/components/geoMark/src/assets//345/210/240/351/231/244.png.mjs.map +1 -0
  18. package/es/components/geoMark/src/assets//347/274/226/350/276/221.png.mjs +4 -0
  19. package/es/components/geoMark/src/assets//347/274/226/350/276/221.png.mjs.map +1 -0
  20. package/es/components/geoMark/src/assets//351/242/234/350/211/262.png.mjs +4 -0
  21. package/es/components/geoMark/src/assets//351/242/234/350/211/262.png.mjs.map +1 -0
  22. package/es/components/geoMark/src/default.png.mjs +4 -0
  23. package/es/components/geoMark/src/default.png.mjs.map +1 -0
  24. package/es/components/geoMark/src/floorRight/floor.vue.d.ts +15 -0
  25. package/es/components/geoMark/src/floorRight/floor.vue.mjs +6 -0
  26. package/es/components/geoMark/src/floorRight/floor.vue.mjs.map +1 -0
  27. package/es/components/geoMark/src/floorRight/floor.vue2.mjs +119 -0
  28. package/es/components/geoMark/src/floorRight/floor.vue2.mjs.map +1 -0
  29. package/es/components/geoMark/src/geoMark.d.ts +164 -0
  30. package/es/components/geoMark/src/geoMark.mjs +6 -0
  31. package/es/components/geoMark/src/geoMark.mjs.map +1 -0
  32. package/es/components/geoMark/src/geoMark.vue.d.ts +734 -0
  33. package/es/components/geoMark/src/geoMark.vue.mjs +6 -0
  34. package/es/components/geoMark/src/geoMark.vue.mjs.map +1 -0
  35. package/es/components/geoMark/src/geoMark.vue2.mjs +1425 -0
  36. package/es/components/geoMark/src/geoMark.vue2.mjs.map +1 -0
  37. package/es/components/geoMark/src/openMap.vue.d.ts +326 -0
  38. package/es/components/geoMark/src/openMap.vue.mjs +6 -0
  39. package/es/components/geoMark/src/openMap.vue.mjs.map +1 -0
  40. package/es/components/geoMark/src/openMap.vue2.mjs +422 -0
  41. package/es/components/geoMark/src/openMap.vue2.mjs.map +1 -0
  42. package/es/components/geoMark/src/waring.png.mjs +4 -0
  43. package/es/components/geoMark/src/waring.png.mjs.map +1 -0
  44. package/es/components/geoMark/src//346/226/260/345/274/271/346/241/206.png.mjs +4 -0
  45. package/es/components/geoMark/src//346/226/260/345/274/271/346/241/206.png.mjs.map +1 -0
  46. package/es/components/geoMark/src//347/201/255/347/201/253/345/231/250.png.mjs +4 -0
  47. package/es/components/geoMark/src//347/201/255/347/201/253/345/231/250.png.mjs.map +1 -0
  48. package/es/components/index.d.ts +1 -0
  49. package/es/components/index.mjs +2 -0
  50. package/es/components/index.mjs.map +1 -1
  51. package/es/components/map/src/map.vue2.mjs +1 -1
  52. package/es/components/map/src/map.vue2.mjs.map +1 -1
  53. package/es/components/tzj-player/index.d.ts +10 -0
  54. package/es/components/tzj-player/src/ctyun-player.vue.d.ts +2 -0
  55. package/es/components/tzj-player/src/easyPlayer.vue.d.ts +2 -0
  56. package/es/components/tzj-player/src/easyPlayer.vue2.mjs +61 -37
  57. package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
  58. package/es/components/tzj-player/src/tzj-player.vue.d.ts +10 -0
  59. package/es/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +2 -0
  60. package/es/index.mjs +2 -0
  61. package/es/index.mjs.map +1 -1
  62. package/es/installer.mjs +3 -1
  63. package/es/installer.mjs.map +1 -1
  64. package/global.d.ts +5 -0
  65. package/lib/components/geoMark/index.d.ts +733 -0
  66. package/lib/components/geoMark/index.js +15 -0
  67. package/lib/components/geoMark/index.js.map +1 -0
  68. package/lib/components/geoMark/src/DragIcon.vue.d.ts +77 -0
  69. package/lib/components/geoMark/src/DragIcon.vue.js +10 -0
  70. package/lib/components/geoMark/src/DragIcon.vue.js.map +1 -0
  71. package/lib/components/geoMark/src/DragIcon.vue2.js +71 -0
  72. package/lib/components/geoMark/src/DragIcon.vue2.js.map +1 -0
  73. package/lib/components/geoMark/src/assets//344/277/235/345/255/230.png.js +8 -0
  74. package/lib/components/geoMark/src/assets//344/277/235/345/255/230.png.js.map +1 -0
  75. package/lib/components/geoMark/src/assets//345/210/240/351/231/244.png.js +8 -0
  76. package/lib/components/geoMark/src/assets//345/210/240/351/231/244.png.js.map +1 -0
  77. package/lib/components/geoMark/src/assets//347/274/226/350/276/221.png.js +8 -0
  78. package/lib/components/geoMark/src/assets//347/274/226/350/276/221.png.js.map +1 -0
  79. package/lib/components/geoMark/src/assets//351/242/234/350/211/262.png.js +8 -0
  80. package/lib/components/geoMark/src/assets//351/242/234/350/211/262.png.js.map +1 -0
  81. package/lib/components/geoMark/src/default.png.js +8 -0
  82. package/lib/components/geoMark/src/default.png.js.map +1 -0
  83. package/lib/components/geoMark/src/floorRight/floor.vue.d.ts +15 -0
  84. package/lib/components/geoMark/src/floorRight/floor.vue.js +10 -0
  85. package/lib/components/geoMark/src/floorRight/floor.vue.js.map +1 -0
  86. package/lib/components/geoMark/src/floorRight/floor.vue2.js +123 -0
  87. package/lib/components/geoMark/src/floorRight/floor.vue2.js.map +1 -0
  88. package/lib/components/geoMark/src/geoMark.d.ts +164 -0
  89. package/lib/components/geoMark/src/geoMark.js +8 -0
  90. package/lib/components/geoMark/src/geoMark.js.map +1 -0
  91. package/lib/components/geoMark/src/geoMark.vue.d.ts +734 -0
  92. package/lib/components/geoMark/src/geoMark.vue.js +10 -0
  93. package/lib/components/geoMark/src/geoMark.vue.js.map +1 -0
  94. package/lib/components/geoMark/src/geoMark.vue2.js +1429 -0
  95. package/lib/components/geoMark/src/geoMark.vue2.js.map +1 -0
  96. package/lib/components/geoMark/src/openMap.vue.d.ts +326 -0
  97. package/lib/components/geoMark/src/openMap.vue.js +10 -0
  98. package/lib/components/geoMark/src/openMap.vue.js.map +1 -0
  99. package/lib/components/geoMark/src/openMap.vue2.js +426 -0
  100. package/lib/components/geoMark/src/openMap.vue2.js.map +1 -0
  101. package/lib/components/geoMark/src/waring.png.js +8 -0
  102. package/lib/components/geoMark/src/waring.png.js.map +1 -0
  103. package/lib/components/geoMark/src//346/226/260/345/274/271/346/241/206.png.js +8 -0
  104. package/lib/components/geoMark/src//346/226/260/345/274/271/346/241/206.png.js.map +1 -0
  105. package/lib/components/geoMark/src//347/201/255/347/201/253/345/231/250.png.js +8 -0
  106. package/lib/components/geoMark/src//347/201/255/347/201/253/345/231/250.png.js.map +1 -0
  107. package/lib/components/index.d.ts +1 -0
  108. package/lib/components/index.js +4 -0
  109. package/lib/components/index.js.map +1 -1
  110. package/lib/components/map/src/map.vue2.js +1 -1
  111. package/lib/components/map/src/map.vue2.js.map +1 -1
  112. package/lib/components/tzj-player/index.d.ts +10 -0
  113. package/lib/components/tzj-player/src/ctyun-player.vue.d.ts +2 -0
  114. package/lib/components/tzj-player/src/easyPlayer.vue.d.ts +2 -0
  115. package/lib/components/tzj-player/src/easyPlayer.vue2.js +60 -36
  116. package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
  117. package/lib/components/tzj-player/src/tzj-player.vue.d.ts +10 -0
  118. package/lib/components/tzj-player/src/yunzhiyanPlayer.vue.d.ts +2 -0
  119. package/lib/index.js +8 -4
  120. package/lib/index.js.map +1 -1
  121. package/lib/installer.js +3 -1
  122. package/lib/installer.js.map +1 -1
  123. package/package.json +3 -1
  124. package/theme-default/i-geo-mark.css +1 -0
  125. package/theme-default/index.css +1 -1
@@ -0,0 +1,422 @@
1
+ import { defineComponent, ref, toRef, watch, nextTick, onMounted, openBlock, createBlock, unref, withCtx, createVNode, createCommentVNode, createElementVNode, renderSlot } from 'vue';
2
+ import DragPan from 'ol/interaction/DragPan';
3
+ import Projection from 'ol/proj/Projection';
4
+ import { Style, Icon } from 'ol/style';
5
+ import { Map as Map$1, Layers, Sources, MapControls, Interactions, Styles } from 'vue3-openlayers';
6
+ import 'ol/ol.css';
7
+
8
+ var __defProp = Object.defineProperty;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ const _hoisted_1 = { class: "waring-bubble flex flex-col justify-start text-white flex-nowrap" };
11
+ const _hoisted_2 = ["src"];
12
+ var _sfc_main = /* @__PURE__ */ defineComponent({
13
+ __name: "openMap",
14
+ props: {
15
+ apiKey: { type: String, default: "" },
16
+ // 外部传入的中心点。图片切换后组件会以图片中心重置视图;外部显式修改 center 时立即生效
17
+ center: { type: Array, default: /* @__PURE__ */ __name(() => [0, 0], "default") },
18
+ // 外部传入的缩放级别。首次加载/切换图片时组件会按图片 extent 自动适配(fit),
19
+ // 之后外部显式修改 zoom 时立即生效并覆盖自动适配结果
20
+ zoom: { type: Number, default: 1 },
21
+ // 外部传入的投影(保留接口兼容,实际不使用,改用内部像素投影)
22
+ projection: { type: [String, Object], default: void 0 },
23
+ imgUrl: { type: String, default: "" },
24
+ // 图片的像素尺寸 [width, height],与 extent(图片的坐标范围)配套使用。
25
+ // 原生 ol/source/ImageStatic 用它定义图片渲染分辨率;当 extent 宽高比与图片实际
26
+ // 像素宽高比不一致时,该值可作图片真实像素尺寸用于拉伸矫正。
27
+ // 注意:vue3-openlayers 的 ol-source-image-static 未暴露 imageSize 属性,
28
+ // 实际渲染范围由 extent 决定,size 主要作为元数据保留(与父组件同步维护)
29
+ size: { type: Array, default: /* @__PURE__ */ __name(() => [1024, 968], "default") },
30
+ extent: { type: Array, default: /* @__PURE__ */ __name(() => [0, 0, 1024, 968], "default") },
31
+ configMenuItems: { type: Array, default: /* @__PURE__ */ __name(() => [], "default") },
32
+ activatedBottomBar: { type: String, default: "" },
33
+ _waring: { type: [String, Number, null], default: null },
34
+ activatedPositionOverlayWaring: { type: Array, default: /* @__PURE__ */ __name(() => [], "default") },
35
+ activatedPositionOverlay: { type: Array, default: /* @__PURE__ */ __name(() => [], "default") },
36
+ activatedPropertiesOverlay: { type: Object, default: /* @__PURE__ */ __name(() => ({}), "default") },
37
+ list_title: { type: String, default: "" },
38
+ alarmType: { type: String, default: "" },
39
+ svgOverlay: { type: String, default: "" },
40
+ waringIcon: { type: String, default: "" },
41
+ FnUpdateDrawFeature: { type: Function, default: void 0 },
42
+ FnUpdateDrawFeature2: { type: Function, default: void 0 },
43
+ FnOverrideStyle: { type: Function, default: void 0 }
44
+ },
45
+ emits: [
46
+ "ready",
47
+ "featuresChanged",
48
+ "customPointerMove",
49
+ "customContextMenu",
50
+ "customPostCompose"
51
+ ],
52
+ setup(__props, { expose: __expose, emit: __emit }) {
53
+ const props = __props;
54
+ const emit = __emit;
55
+ const OlMap = Map$1.OlMap;
56
+ const OlOverlay = Map$1.OlOverlay;
57
+ const OlView = Map$1.OlView;
58
+ const OlImageLayer = Layers.OlImageLayer;
59
+ const OlVectorLayer = Layers.OlVectorLayer;
60
+ const OlSourceImageStatic = Sources.OlSourceImageStatic;
61
+ const OlSourceVector = Sources.OlSourceVector;
62
+ const OlContextMenuControl = MapControls.OlContextMenuControl;
63
+ const OlZoomControl = MapControls.OlZoomControl;
64
+ const OlDrawInteraction = Interactions.OlDrawInteraction;
65
+ const OlModifyInteraction = Interactions.OlModifyInteraction;
66
+ const OlSnapInteraction = Interactions.OlSnapInteraction;
67
+ const OlTransformInteraction = Interactions.OlTransformInteraction;
68
+ const OlStyle = Styles.OlStyle;
69
+ const mapRef = ref(null);
70
+ const viewRef = ref(null);
71
+ const vectorSourceRef = ref(null);
72
+ const drawRef = ref(null);
73
+ const currentImageUrl = toRef(props, "imgUrl");
74
+ const pixelProjection = new Projection({
75
+ code: "xkcd-image",
76
+ units: "pixels",
77
+ extent: props.extent
78
+ });
79
+ watch(
80
+ () => props.extent,
81
+ (extent) => {
82
+ if (extent && pixelProjection) {
83
+ pixelProjection.setExtent(extent);
84
+ }
85
+ nextTick(() => {
86
+ calculateAutoZoom();
87
+ });
88
+ }
89
+ );
90
+ watch(
91
+ () => props.zoom,
92
+ (val) => {
93
+ var _a;
94
+ const view = (_a = viewRef.value) == null ? void 0 : _a.view;
95
+ if (view && typeof val === "number" && !Number.isNaN(val)) {
96
+ view.setZoom(val);
97
+ }
98
+ }
99
+ );
100
+ watch(
101
+ () => props.center,
102
+ (val) => {
103
+ var _a;
104
+ const view = (_a = viewRef.value) == null ? void 0 : _a.view;
105
+ if (view && Array.isArray(val) && val.length === 2) {
106
+ view.setCenter(val);
107
+ }
108
+ }
109
+ );
110
+ const getVectorSource = /* @__PURE__ */ __name(() => {
111
+ var _a;
112
+ return (_a = vectorSourceRef.value) == null ? void 0 : _a.source;
113
+ }, "getVectorSource");
114
+ const getMap = /* @__PURE__ */ __name(() => {
115
+ var _a;
116
+ return (_a = mapRef.value) == null ? void 0 : _a.map;
117
+ }, "getMap");
118
+ const getView = /* @__PURE__ */ __name(() => {
119
+ var _a;
120
+ return (_a = viewRef.value) == null ? void 0 : _a.view;
121
+ }, "getView");
122
+ const iconColorCache = /* @__PURE__ */ new Map();
123
+ const iconColorPending = /* @__PURE__ */ new Set();
124
+ const STATE_COLORS = {
125
+ orange: { r: 255, g: 140, b: 0 },
126
+ red: { r: 230, g: 30, b: 30 }
127
+ };
128
+ const getIconMode = /* @__PURE__ */ __name((state) => {
129
+ const s = Number(state);
130
+ if (s === 0) return "orange";
131
+ if (s === 1) return "red";
132
+ if (s === 4) return "gray";
133
+ return null;
134
+ }, "getIconMode");
135
+ const createIcon = /* @__PURE__ */ __name((src, scale, state) => {
136
+ const mode = getIconMode(state);
137
+ let effectiveSrc = src;
138
+ if (mode) {
139
+ const key = `${src}#${mode}`;
140
+ effectiveSrc = iconColorCache.get(key) || src;
141
+ if (!iconColorCache.has(key) && !iconColorPending.has(key)) {
142
+ iconColorPending.add(key);
143
+ processIcon(key, src, mode, (result) => {
144
+ iconColorCache.set(key, result);
145
+ iconColorPending.delete(key);
146
+ refreshFeaturesUsingIcon();
147
+ });
148
+ }
149
+ }
150
+ return new Style({
151
+ image: new Icon({
152
+ src: effectiveSrc,
153
+ anchor: [0.5, 1],
154
+ anchorXUnits: "fraction",
155
+ anchorYUnits: "fraction",
156
+ scale
157
+ })
158
+ });
159
+ }, "createIcon");
160
+ const refreshFeaturesUsingIcon = /* @__PURE__ */ __name(() => {
161
+ var _a;
162
+ const source = (_a = vectorSourceRef.value) == null ? void 0 : _a.source;
163
+ const fn = props.FnOverrideStyle;
164
+ if (!source || typeof fn !== "function") return;
165
+ source.getFeatures().forEach((feature) => {
166
+ if (feature.get("code")) {
167
+ fn(feature);
168
+ }
169
+ });
170
+ }, "refreshFeaturesUsingIcon");
171
+ function processIcon(key, imageSrc, mode, callback) {
172
+ const img = new Image();
173
+ img.crossOrigin = "anonymous";
174
+ img.onload = () => {
175
+ try {
176
+ const canvas = document.createElement("canvas");
177
+ canvas.width = img.width;
178
+ canvas.height = img.height;
179
+ const ctx = canvas.getContext("2d");
180
+ if (!ctx) return;
181
+ ctx.drawImage(img, 0, 0);
182
+ const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
183
+ const data = imageData.data;
184
+ const tint = STATE_COLORS[mode];
185
+ for (let i = 0; i < data.length; i += 4) {
186
+ const lum = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];
187
+ if (tint) {
188
+ const factor = 0.4 + 0.6 * (lum / 255);
189
+ data[i] = tint.r * factor;
190
+ data[i + 1] = tint.g * factor;
191
+ data[i + 2] = tint.b * factor;
192
+ } else {
193
+ data[i] = lum;
194
+ data[i + 1] = lum;
195
+ data[i + 2] = lum;
196
+ }
197
+ }
198
+ ctx.putImageData(imageData, 0, 0);
199
+ callback(canvas.toDataURL("image/png"));
200
+ } catch (error) {
201
+ iconColorPending.delete(key);
202
+ }
203
+ };
204
+ img.onerror = () => {
205
+ iconColorPending.delete(key);
206
+ };
207
+ img.src = imageSrc;
208
+ }
209
+ __name(processIcon, "processIcon");
210
+ const clearSource = /* @__PURE__ */ __name(() => {
211
+ var _a, _b;
212
+ return (_b = (_a = vectorSourceRef.value) == null ? void 0 : _a.source) == null ? void 0 : _b.clear();
213
+ }, "clearSource");
214
+ const addFeature = /* @__PURE__ */ __name((feature) => {
215
+ var _a, _b;
216
+ return (_b = (_a = vectorSourceRef.value) == null ? void 0 : _a.source) == null ? void 0 : _b.addFeature(feature);
217
+ }, "addFeature");
218
+ const addFeatures = /* @__PURE__ */ __name((features) => {
219
+ var _a, _b;
220
+ return (_b = (_a = vectorSourceRef.value) == null ? void 0 : _a.source) == null ? void 0 : _b.addFeatures(features);
221
+ }, "addFeatures");
222
+ const removeFeature = /* @__PURE__ */ __name((feature) => {
223
+ var _a, _b;
224
+ return (_b = (_a = vectorSourceRef.value) == null ? void 0 : _a.source) == null ? void 0 : _b.removeFeature(feature);
225
+ }, "removeFeature");
226
+ const getFeatures = /* @__PURE__ */ __name(() => {
227
+ var _a;
228
+ return ((_a = vectorSourceRef.value) == null ? void 0 : _a.source) ? vectorSourceRef.value.source.getFeatures() : [];
229
+ }, "getFeatures");
230
+ const getZoom = /* @__PURE__ */ __name(() => {
231
+ var _a, _b, _c;
232
+ return (_c = (_b = (_a = mapRef.value) == null ? void 0 : _a.map) == null ? void 0 : _b.getView()) == null ? void 0 : _c.getZoom();
233
+ }, "getZoom");
234
+ const setZoom = /* @__PURE__ */ __name((zoom) => {
235
+ var _a, _b, _c;
236
+ return (_c = (_b = (_a = mapRef.value) == null ? void 0 : _a.map) == null ? void 0 : _b.getView()) == null ? void 0 : _c.setZoom(zoom);
237
+ }, "setZoom");
238
+ const calculateAutoZoom = /* @__PURE__ */ __name(() => {
239
+ var _a;
240
+ const container = document.getElementById("ypc-map-container");
241
+ if (!container) return;
242
+ const view = (_a = viewRef.value) == null ? void 0 : _a.view;
243
+ if (view && typeof view.fit === "function") {
244
+ view.fit(props.extent, {
245
+ size: [container.clientWidth, container.clientHeight],
246
+ padding: [10, 10, 10, 10],
247
+ constrainResolution: false,
248
+ nearest: false
249
+ });
250
+ }
251
+ }, "calculateAutoZoom");
252
+ const isDrawingMode = /* @__PURE__ */ __name(() => props.activatedBottomBar === "\u533A\u57DF\u7ED8\u5236" || props.activatedBottomBar === "\u9003\u751F\u8DEF\u7EBF", "isDrawingMode");
253
+ const setDragPanActive = /* @__PURE__ */ __name((active) => {
254
+ var _a;
255
+ const map = (_a = mapRef.value) == null ? void 0 : _a.map;
256
+ if (!map) return;
257
+ map.getInteractions().getArray().forEach((interaction) => {
258
+ if (interaction instanceof DragPan) {
259
+ interaction.setActive(active);
260
+ }
261
+ });
262
+ }, "setDragPanActive");
263
+ watch(
264
+ () => props.activatedBottomBar,
265
+ () => {
266
+ setDragPanActive(!isDrawingMode());
267
+ }
268
+ );
269
+ __expose({
270
+ getVectorSource,
271
+ getMap,
272
+ getView,
273
+ createIcon,
274
+ clearSource,
275
+ addFeature,
276
+ addFeatures,
277
+ removeFeature,
278
+ getFeatures,
279
+ getZoom,
280
+ setZoom,
281
+ calculateAutoZoom
282
+ });
283
+ onMounted(() => {
284
+ nextTick(() => {
285
+ var _a;
286
+ emit("ready");
287
+ const map = (_a = mapRef.value) == null ? void 0 : _a.map;
288
+ if (map) {
289
+ map.on("postcompose", (e) => emit("customPostCompose", e));
290
+ map.on("pointermove", (e) => emit("customPointerMove", e));
291
+ map.on("contextmenu", (e) => emit("customContextMenu", e));
292
+ setDragPanActive(!isDrawingMode());
293
+ }
294
+ });
295
+ });
296
+ return (_ctx, _cache) => {
297
+ return openBlock(), createBlock(
298
+ unref(OlMap),
299
+ {
300
+ ref_key: "mapRef",
301
+ ref: mapRef,
302
+ class: "w-full",
303
+ style: { "height": "100%" }
304
+ },
305
+ {
306
+ default: withCtx(() => [
307
+ createVNode(unref(OlView), {
308
+ ref_key: "viewRef",
309
+ ref: viewRef,
310
+ center: __props.center,
311
+ zoom: __props.zoom,
312
+ projection: unref(pixelProjection)
313
+ }, null, 8, ["center", "zoom", "projection"]),
314
+ createVNode(unref(OlZoomControl)),
315
+ createVNode(unref(OlContextMenuControl), { items: __props.configMenuItems }, null, 8, ["items"]),
316
+ createCommentVNode(" \u5E95\u56FE\u9759\u6001\u5F71\u50CF\u5C42\uFF1Akey \u7ED1\u5B9A imgUrl+extent\uFF0C\u4E8C\u8005\u4EFB\u4E00\u53D8\u5316\u5373\u6574\u4F53\u9500\u6BC1\u91CD\u5EFA\u5F71\u50CF\u5C42\u3002\n \u56E0\u4E3A OL ImageStatic \u7684 imageExtent \u5728\u6784\u9020\u540E\u4E0D\u53EF\u53D8\uFF0Cvue3-openlayers \u53EA\u80FD\u9760\u91CD\u5EFA source\n \u6765\u5E94\u7528\u65B0 extent\uFF1B\u82E5\u4E0D\u52A0 key\uFF0C\u91CD\u5EFA/\u56FE\u7247\u5F02\u6B65\u52A0\u8F7D\u671F\u95F4\u4F1A\u77ED\u6682\u4EE5\u65E7 imageExtent \u6E32\u67D3\uFF0C\n \u5BFC\u81F4\u9996\u5E27\u56FE\u6807\u4E0E\u5E95\u56FE\u9519\u4F4D\uFF08\u518D\u6B21\u70B9\u51FB\u697C\u5C42\u540E\u624D\u5BF9\u9F50\uFF09 "),
317
+ (openBlock(), createBlock(unref(OlImageLayer), {
318
+ id: "xkcd",
319
+ key: `${currentImageUrl.value}|${__props.extent.join(",")}`,
320
+ "z-index": -1
321
+ }, {
322
+ default: withCtx(() => [
323
+ createVNode(unref(OlSourceImageStatic), {
324
+ url: currentImageUrl.value,
325
+ "image-extent": __props.extent,
326
+ projection: unref(pixelProjection)
327
+ }, null, 8, ["url", "image-extent", "projection"])
328
+ ]),
329
+ _: 1
330
+ /* STABLE */
331
+ })),
332
+ createCommentVNode(" \u77E2\u91CF\u56FE\u5C42 "),
333
+ createVNode(unref(OlVectorLayer), { "z-index": 1 }, {
334
+ default: withCtx(() => [
335
+ createVNode(
336
+ unref(OlSourceVector),
337
+ {
338
+ ref_key: "vectorSourceRef",
339
+ ref: vectorSourceRef
340
+ },
341
+ {
342
+ default: withCtx(() => [
343
+ createCommentVNode(" \u533A\u57DF\u8BBE\u7F6E "),
344
+ __props.activatedBottomBar === "\u533A\u57DF\u8BBE\u7F6E" ? (openBlock(), createBlock(unref(OlModifyInteraction), { key: 0 })) : createCommentVNode("v-if", true),
345
+ createCommentVNode(" \u533A\u57DF\u7ED8\u5236 "),
346
+ __props.activatedBottomBar === "\u533A\u57DF\u7ED8\u5236" ? (openBlock(), createBlock(unref(OlDrawInteraction), {
347
+ key: 1,
348
+ type: "Polygon",
349
+ "stop-click": true,
350
+ onDrawend: __props.FnUpdateDrawFeature
351
+ }, null, 8, ["onDrawend"])) : createCommentVNode("v-if", true),
352
+ createCommentVNode(" \u9003\u751F\u8DEF\u7EBF "),
353
+ __props.activatedBottomBar === "\u9003\u751F\u8DEF\u7EBF" ? (openBlock(), createBlock(unref(OlDrawInteraction), {
354
+ key: 2,
355
+ ref_key: "drawRef",
356
+ ref: drawRef,
357
+ type: "LineString",
358
+ "stop-click": true,
359
+ onDrawend: __props.FnUpdateDrawFeature2
360
+ }, null, 8, ["onDrawend"])) : createCommentVNode("v-if", true),
361
+ createCommentVNode(" \u533A\u57DF\u8BBE\u7F6E\u5438\u9644 "),
362
+ __props.activatedBottomBar === "\u533A\u57DF\u8BBE\u7F6E" ? (openBlock(), createBlock(unref(OlSnapInteraction), { key: 3 })) : createCommentVNode("v-if", true)
363
+ ]),
364
+ _: 1
365
+ /* STABLE */
366
+ },
367
+ 512
368
+ /* NEED_PATCH */
369
+ ),
370
+ createVNode(unref(OlStyle), { "override-style-function": __props.FnOverrideStyle }, null, 8, ["override-style-function"])
371
+ ]),
372
+ _: 1
373
+ /* STABLE */
374
+ }),
375
+ createCommentVNode(" \u7F16\u8F91 / \u533A\u57DF\u6A21\u677F "),
376
+ __props.activatedBottomBar === "\u7F16\u8F91" || __props.activatedBottomBar === "\u533A\u57DF\u6A21\u677F" ? (openBlock(), createBlock(unref(OlTransformInteraction), { key: 0 })) : createCommentVNode("v-if", true),
377
+ createCommentVNode(" \u8B66\u544A\u6C14\u6CE1\uFF1AactivatedPositionOverlayWaring \u4E3A\u544A\u8B66\u8BBE\u5907\u5750\u6807 "),
378
+ __props._waring && __props.activatedPositionOverlayWaring && __props.activatedPositionOverlayWaring.length > 0 ? (openBlock(), createBlock(unref(OlOverlay), {
379
+ key: 1,
380
+ position: __props.activatedPositionOverlayWaring,
381
+ "auto-pan": true,
382
+ anchor: [0.5, 1],
383
+ offset: [-50, -30]
384
+ }, {
385
+ default: withCtx(() => [
386
+ createElementVNode("div", _hoisted_1, [
387
+ createElementVNode("img", {
388
+ src: __props.waringIcon,
389
+ alt: "",
390
+ class: "absolute w-full h-full"
391
+ }, null, 8, _hoisted_2)
392
+ ])
393
+ ]),
394
+ _: 1
395
+ /* STABLE */
396
+ }, 8, ["position"])) : createCommentVNode("v-if", true),
397
+ createCommentVNode(" \u4F4D\u7F6E\u6C14\u6CE1\uFF08\u63D2\u69FD\uFF09 "),
398
+ __props.activatedPositionOverlay.length > 0 ? (openBlock(), createBlock(unref(OlOverlay), {
399
+ key: 2,
400
+ position: __props.activatedPositionOverlay,
401
+ offset: [-175, -255],
402
+ "auto-pan": true
403
+ }, {
404
+ default: withCtx(() => [
405
+ renderSlot(_ctx.$slots, "overlay")
406
+ ]),
407
+ _: 3
408
+ /* FORWARDED */
409
+ }, 8, ["position"])) : createCommentVNode("v-if", true)
410
+ ]),
411
+ _: 3
412
+ /* FORWARDED */
413
+ },
414
+ 512
415
+ /* NEED_PATCH */
416
+ );
417
+ };
418
+ }
419
+ });
420
+
421
+ export { _sfc_main as default };
422
+ //# sourceMappingURL=openMap.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openMap.vue2.mjs","sources":["../../../../../../../packages/components/geoMark/src/openMap.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport DragPan from \"ol/interaction/DragPan\";\nimport Projection from \"ol/proj/Projection\";\nimport { Icon, Style } from \"ol/style\";\n// @ts-nocheck\nimport { nextTick, onMounted, ref, toRef, watch } from \"vue\";\nimport {\n Interactions as _Interactions,\n Layers as _Layers,\n Map as _Map,\n MapControls as _MapControls,\n Sources as _Sources,\n Styles as _Styles,\n} from \"vue3-openlayers\";\nimport type { Extent } from \"ol/extent\";\nimport \"ol/ol.css\";\n\n/**\n * openMap —— 重新实现的楼层图组件(替代丢失源码的 gkestor-battlefield-cesium-plus)\n *\n * 通过 vue3-openlayers 渲染一张静态楼层影像,并在其上叠加矢量图层,\n * 支持绘制(区域/逃生路线)、编辑、吸附、变换等交互。\n *\n * 关键点:\n * 1. 地图坐标系使用「像素」单位,坐标与图片像素一一对应,\n * 因此内部始终使用自建的像素投影(xkcd-image / pixels),\n * 忽略外部传入的 projection(如 EPSG:3857),否则楼层图坐标会错乱。\n * 2. center / zoom / size / extent / imgUrl 均与父组件双向联动,\n * 图片切换时会自动重设视图。\n */\nconst props = defineProps({\n apiKey: { type: String, default: \"\" },\n // 外部传入的中心点。图片切换后组件会以图片中心重置视图;外部显式修改 center 时立即生效\n center: { type: Array, default: () => [0, 0] },\n // 外部传入的缩放级别。首次加载/切换图片时组件会按图片 extent 自动适配(fit),\n // 之后外部显式修改 zoom 时立即生效并覆盖自动适配结果\n zoom: { type: Number, default: 1 },\n // 外部传入的投影(保留接口兼容,实际不使用,改用内部像素投影)\n projection: { type: [String, Object], default: undefined },\n imgUrl: { type: String, default: \"\" },\n // 图片的像素尺寸 [width, height],与 extent(图片的坐标范围)配套使用。\n // 原生 ol/source/ImageStatic 用它定义图片渲染分辨率;当 extent 宽高比与图片实际\n // 像素宽高比不一致时,该值可作图片真实像素尺寸用于拉伸矫正。\n // 注意:vue3-openlayers 的 ol-source-image-static 未暴露 imageSize 属性,\n // 实际渲染范围由 extent 决定,size 主要作为元数据保留(与父组件同步维护)\n size: { type: Array, default: () => [1024, 968] },\n extent: { type: Array, default: () => [0, 0, 1024, 968] },\n configMenuItems: { type: Array, default: () => [] },\n activatedBottomBar: { type: String, default: \"\" },\n _waring: { type: [String, Number, null] as any, default: null },\n activatedPositionOverlayWaring: { type: Array, default: () => [] },\n activatedPositionOverlay: { type: Array, default: () => [] },\n activatedPropertiesOverlay: { type: Object, default: () => ({}) },\n list_title: { type: String, default: \"\" },\n alarmType: { type: String, default: \"\" },\n svgOverlay: { type: String, default: \"\" },\n waringIcon: { type: String, default: \"\" },\n FnUpdateDrawFeature: { type: Function, default: undefined },\n FnUpdateDrawFeature2: { type: Function, default: undefined },\n FnOverrideStyle: { type: Function, default: undefined },\n});\nconst emit = defineEmits([\n \"ready\",\n \"featuresChanged\",\n \"customPointerMove\",\n \"customContextMenu\",\n \"customPostCompose\",\n]);\n// 组件擦除为 any:避免具体 ol 组件类型进入 _sfc_main 返回类型触发 TS2742/TS7056\nconst OlMap: any = _Map.OlMap;\nconst OlOverlay: any = _Map.OlOverlay;\nconst OlView: any = _Map.OlView;\nconst OlImageLayer: any = _Layers.OlImageLayer;\nconst OlVectorLayer: any = _Layers.OlVectorLayer;\nconst OlSourceImageStatic: any = _Sources.OlSourceImageStatic;\nconst OlSourceVector: any = _Sources.OlSourceVector;\nconst OlContextMenuControl: any = _MapControls.OlContextMenuControl;\nconst OlZoomControl: any = _MapControls.OlZoomControl;\nconst OlDrawInteraction: any = _Interactions.OlDrawInteraction;\nconst OlModifyInteraction: any = _Interactions.OlModifyInteraction;\nconst OlSnapInteraction: any = _Interactions.OlSnapInteraction;\nconst OlTransformInteraction: any = _Interactions.OlTransformInteraction;\nconst OlStyle: any = _Styles.OlStyle;\n\nconst mapRef = ref<any>(null);\nconst viewRef = ref<any>(null);\nconst vectorSourceRef = ref<any>(null);\nconst drawRef = ref<any>(null);\nconst currentImageUrl = toRef(props, \"imgUrl\");\n\n// 内部像素投影:使地图坐标与图片像素一一对应\nconst pixelProjection: any = new Projection({\n code: \"xkcd-image\",\n units: \"pixels\",\n extent: props.extent as unknown as Extent,\n});\n\n// 图片尺寸变化时,同步投影的 extent\nwatch(\n () => props.extent,\n (extent) => {\n if (extent && pixelProjection) {\n pixelProjection.setExtent(extent as unknown as Extent);\n }\n // 图片范围更新后重新适配视图,确保图片按新尺寸正确显示(无需二次操作)\n nextTick(() => {\n // eslint-disable-next-line no-use-before-define\n calculateAutoZoom();\n });\n },\n);\n\n// 外部传入的 zoom 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.zoom,\n (val) => {\n const view = viewRef.value?.view;\n if (view && typeof val === \"number\" && !Number.isNaN(val)) {\n view.setZoom(val);\n }\n },\n);\n\n// 外部传入的 center 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.center,\n (val) => {\n const view = viewRef.value?.view;\n if (view && Array.isArray(val) && val.length === 2) {\n view.setCenter(val);\n }\n },\n);\n\nconst getVectorSource = () => vectorSourceRef.value?.source;\nconst getMap = () => mapRef.value?.map;\nconst getView = () => viewRef.value?.view;\n\n// 状态图标处理缓存:key = `${src}#${mode}`,value = 处理后图片的 dataURL。\n// 同一张图片的同一状态只处理一次,后续 createIcon 直接读缓存,避免重复做像素级转换。\n// 仅放内存、不写 localStorage:图标源有限且体积小(几十 KB/张),会话级缓存完全无压力;\n// localStorage 有 5MB 配额、base64 膨胀约 37%、且同步 I/O 阻塞主线程,没有必要持久化。\nconst iconColorCache = new Map<string, string>();\n// 正在处理的缓存 key,防止同一 src+状态被并发重复触发\nconst iconColorPending = new Set<string>();\n\n// 着色目标色:0 故障=橙、1 报警=红\nconst STATE_COLORS: Record<string, { r: number; g: number; b: number }> = {\n orange: { r: 255, g: 140, b: 0 },\n red: { r: 230, g: 30, b: 30 },\n};\n// 设备状态 → 处理模式:0 故障=orange、1 报警=red、4 离线=gray;\n// 2(正常)及其它(-1 未启用/缺失)返回 null,直接使用原图,不产生新图与缓存。\nconst getIconMode = (state: unknown): string | null => {\n const s = Number(state);\n if (s === 0) return \"orange\";\n if (s === 1) return \"red\";\n if (s === 4) return \"gray\";\n return null;\n};\n\n// 同步创建设备图标样式(style 函数必须同步 return):\n// 1) 状态为 0/1/4:优先使用按状态处理后的缓存图;缓存未就绪时先用原图占位,\n// 同时异步处理,完成后写缓存并刷新当前图层要素使图标更新;\n// 2) 状态为 2(正常)及其它:直接使用原图 src,不做任何处理。\nconst createIcon = (src: string, scale: number, state?: unknown): any => {\n const mode = getIconMode(state);\n let effectiveSrc = src;\n if (mode) {\n const key = `${src}#${mode}`;\n effectiveSrc = iconColorCache.get(key) || src;\n if (!iconColorCache.has(key) && !iconColorPending.has(key)) {\n iconColorPending.add(key);\n processIcon(key, src, mode, (result: string) => {\n iconColorCache.set(key, result);\n iconColorPending.delete(key);\n // eslint-disable-next-line no-use-before-define\n refreshFeaturesUsingIcon();\n });\n }\n }\n return new Style({\n image: new Icon({\n src: effectiveSrc,\n anchor: [0.5, 1],\n anchorXUnits: \"fraction\",\n anchorYUnits: \"fraction\",\n scale,\n }),\n });\n};\n\n// 某张按状态处理后的图片就绪后,重设当前图层所有设备要素的样式,\n// 使仍使用原图占位的图标切换到处理后的状态图。\n// 依赖 index.vue 传入的 FnOverrideStyle(其内部会再次调用 createIcon 读取缓存)。\nconst refreshFeaturesUsingIcon = (): void => {\n const source = vectorSourceRef.value?.source;\n const fn = props.FnOverrideStyle;\n if (!source || typeof fn !== \"function\") return;\n source.getFeatures().forEach((feature: any) => {\n if (feature.get(\"code\")) {\n fn(feature);\n }\n });\n};\n\n// 将图片异步处理为 dataURL:mode=gray 灰度化;mode=orange/red 按目标色着色。\n// 着色保留原图亮度层次(亮部更接近目标色、暗部更暗),透明区域保持不变。\n// 失败(如跨域导致 canvas 被污染)时仅移除 pending,回退继续使用原图。\nfunction processIcon(\n key: string,\n imageSrc: string,\n mode: string,\n callback: (dataUrl: string) => void,\n): void {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onload = () => {\n try {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n // 1. 绘制原图\n ctx.drawImage(img, 0, 0);\n // 2. 获取像素数据,按状态处理(透明度通道保持不变)\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n const tint = STATE_COLORS[mode];\n for (let i = 0; i < data.length; i += 4) {\n const lum = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n if (tint) {\n // 着色:用亮度调制目标色,保留图标明暗层次\n const factor = 0.4 + 0.6 * (lum / 255);\n data[i] = tint.r * factor;\n data[i + 1] = tint.g * factor;\n data[i + 2] = tint.b * factor;\n } else {\n // 离线:标准灰度\n data[i] = lum;\n data[i + 1] = lum;\n data[i + 2] = lum;\n }\n }\n // 3. 写回 canvas 并导出 dataURL\n ctx.putImageData(imageData, 0, 0);\n callback(canvas.toDataURL(\"image/png\"));\n } catch (error) {\n iconColorPending.delete(key);\n }\n };\n img.onerror = () => {\n iconColorPending.delete(key);\n };\n img.src = imageSrc;\n}\n\nconst clearSource = () => vectorSourceRef.value?.source?.clear();\nconst addFeature = (feature: any) =>\n vectorSourceRef.value?.source?.addFeature(feature);\nconst addFeatures = (features: any[]) =>\n vectorSourceRef.value?.source?.addFeatures(features);\nconst removeFeature = (feature: any) =>\n vectorSourceRef.value?.source?.removeFeature(feature);\nconst getFeatures = () =>\n vectorSourceRef.value?.source\n ? vectorSourceRef.value.source.getFeatures()\n : [];\nconst getZoom = () => mapRef.value?.map?.getView()?.getZoom();\nconst setZoom = (zoom: number) => mapRef.value?.map?.getView()?.setZoom(zoom);\n\nconst calculateAutoZoom = () => {\n const container = document.getElementById(\"ypc-map-container\");\n if (!container) return;\n const view = viewRef.value?.view;\n if (view && typeof view.fit === \"function\") {\n view.fit(props.extent as unknown as Extent, {\n size: [container.clientWidth, container.clientHeight],\n padding: [10, 10, 10, 10],\n constrainResolution: false,\n nearest: false,\n });\n }\n};\n\n// 绘制模式下,地图拖拽平移(DragPan)会与绘制交互冲突,\n// 导致按住鼠标拖动放置顶点时底图跟着平移,因此绘制期间禁用 DragPan。\nconst isDrawingMode = (): boolean =>\n props.activatedBottomBar === \"区域绘制\" ||\n props.activatedBottomBar === \"逃生路线\";\n\nconst setDragPanActive = (active: boolean): void => {\n const map = mapRef.value?.map;\n if (!map) return;\n map\n .getInteractions()\n .getArray()\n .forEach((interaction: any) => {\n if (interaction instanceof DragPan) {\n interaction.setActive(active);\n }\n });\n};\n\n// 切换底部栏按钮时,同步 DragPan 的启用/禁用状态\nwatch(\n () => props.activatedBottomBar,\n () => {\n setDragPanActive(!isDrawingMode());\n },\n);\n\ndefineExpose({\n getVectorSource,\n getMap,\n getView,\n createIcon,\n clearSource,\n addFeature,\n addFeatures,\n removeFeature,\n getFeatures,\n getZoom,\n setZoom,\n calculateAutoZoom,\n});\n\nonMounted(() => {\n nextTick(() => {\n emit(\"ready\");\n const map = mapRef.value?.map;\n if (map) {\n map.on(\"postcompose\", (e: any) => emit(\"customPostCompose\", e));\n map.on(\"pointermove\", (e: any) => emit(\"customPointerMove\", e));\n map.on(\"contextmenu\", (e: any) => emit(\"customContextMenu\", e));\n setDragPanActive(!isDrawingMode());\n }\n });\n});\n</script>\n\n<template>\n <OlMap ref=\"mapRef\" class=\"w-full\" style=\"height: 100%\">\n <OlView\n ref=\"viewRef\"\n :center=\"center\"\n :zoom=\"zoom\"\n :projection=\"pixelProjection\"\n />\n\n <OlZoomControl />\n\n <OlContextMenuControl :items=\"configMenuItems\" />\n\n <!-- 底图静态影像层:key 绑定 imgUrl+extent,二者任一变化即整体销毁重建影像层。\n 因为 OL ImageStatic 的 imageExtent 在构造后不可变,vue3-openlayers 只能靠重建 source\n 来应用新 extent;若不加 key,重建/图片异步加载期间会短暂以旧 imageExtent 渲染,\n 导致首帧图标与底图错位(再次点击楼层后才对齐) -->\n <OlImageLayer\n id=\"xkcd\"\n :key=\"`${currentImageUrl}|${extent.join(',')}`\"\n :z-index=\"-1\"\n >\n <OlSourceImageStatic\n :url=\"currentImageUrl\"\n :image-extent=\"extent\"\n :projection=\"pixelProjection\"\n />\n </OlImageLayer>\n\n <!-- 矢量图层 -->\n <OlVectorLayer :z-index=\"1\">\n <OlSourceVector ref=\"vectorSourceRef\">\n <!-- 区域设置 -->\n <OlModifyInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n <!-- 区域绘制 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '区域绘制'\"\n type=\"Polygon\"\n :stop-click=\"true\"\n @drawend=\"FnUpdateDrawFeature\"\n />\n <!-- 逃生路线 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '逃生路线'\"\n ref=\"drawRef\"\n type=\"LineString\"\n :stop-click=\"true\"\n @drawend=\"FnUpdateDrawFeature2\"\n />\n <!-- 区域设置吸附 -->\n <OlSnapInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n </OlSourceVector>\n\n <OlStyle :override-style-function=\"FnOverrideStyle\" />\n </OlVectorLayer>\n\n <!-- 编辑 / 区域模板 -->\n <OlTransformInteraction\n v-if=\"activatedBottomBar === '编辑' || activatedBottomBar === '区域模板'\"\n />\n\n <!-- 警告气泡:activatedPositionOverlayWaring 为告警设备坐标 -->\n <OlOverlay\n v-if=\"\n _waring &&\n activatedPositionOverlayWaring &&\n activatedPositionOverlayWaring.length > 0\n \"\n :position=\"activatedPositionOverlayWaring\"\n :auto-pan=\"true\"\n :anchor=\"[0.5, 1]\"\n :offset=\"[-50, -30]\"\n >\n <div\n class=\"waring-bubble flex flex-col justify-start text-white flex-nowrap\"\n >\n <img :src=\"waringIcon\" alt=\"\" class=\"absolute w-full h-full\" />\n </div>\n </OlOverlay>\n\n <!-- 位置气泡(插槽) -->\n <OlOverlay\n v-if=\"activatedPositionOverlay.length > 0\"\n :position=\"activatedPositionOverlay\"\n :offset=\"[-175, -255]\"\n :auto-pan=\"true\"\n >\n <slot name=\"overlay\" />\n </OlOverlay>\n </OlMap>\n</template>\n"],"names":["_Map","_Layers","_Sources","_MapControls","_Interactions","_Styles","_createBlock","_unref","_createVNode","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}