@eyeon/map 2.0.15 → 2.0.19

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 (106) hide show
  1. package/dist/assets/MapViewer.css +1 -1
  2. package/dist/assets/index.css +1 -1
  3. package/dist/chunks/MapViewer.js +2566 -2161
  4. package/dist/chunks/MapViewer.js.map +1 -1
  5. package/dist/chunks/responsive.js +2590 -0
  6. package/dist/chunks/responsive.js.map +1 -0
  7. package/dist/chunks/wheelZoom.js +163 -177
  8. package/dist/chunks/wheelZoom.js.map +1 -1
  9. package/dist/core/assignment.d.ts +19 -2
  10. package/dist/core/assignment.d.ts.map +1 -1
  11. package/dist/core/color.d.ts +7 -0
  12. package/dist/core/color.d.ts.map +1 -1
  13. package/dist/core/entranceIcon.d.ts +17 -3
  14. package/dist/core/entranceIcon.d.ts.map +1 -1
  15. package/dist/core/hostChrome.d.ts +13 -2
  16. package/dist/core/hostChrome.d.ts.map +1 -1
  17. package/dist/core/hoverTooltip.d.ts +37 -0
  18. package/dist/core/hoverTooltip.d.ts.map +1 -0
  19. package/dist/core/import/index.d.ts +10 -1
  20. package/dist/core/import/index.d.ts.map +1 -1
  21. package/dist/core/index.d.ts +3 -0
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +237 -189
  24. package/dist/core/layerStyles.d.ts +31 -0
  25. package/dist/core/layerStyles.d.ts.map +1 -1
  26. package/dist/core/outdoorDecoration.d.ts.map +1 -1
  27. package/dist/core/publicShapes.d.ts +14 -0
  28. package/dist/core/publicShapes.d.ts.map +1 -1
  29. package/dist/core/responsive.d.ts +6 -0
  30. package/dist/core/responsive.d.ts.map +1 -1
  31. package/dist/core/routing/graph-tools.d.ts +6 -5
  32. package/dist/core/routing/graph-tools.d.ts.map +1 -1
  33. package/dist/core/routing/pathfinding.d.ts +36 -0
  34. package/dist/core/routing/pathfinding.d.ts.map +1 -1
  35. package/dist/core/shapeFill.d.ts +40 -0
  36. package/dist/core/shapeFill.d.ts.map +1 -0
  37. package/dist/core/stacking.d.ts +4 -0
  38. package/dist/core/stacking.d.ts.map +1 -1
  39. package/dist/core/types.d.ts +21 -3
  40. package/dist/core/types.d.ts.map +1 -1
  41. package/dist/core/viewerReset.d.ts +24 -0
  42. package/dist/core/viewerReset.d.ts.map +1 -0
  43. package/dist/core/websiteModal.d.ts +15 -0
  44. package/dist/core/websiteModal.d.ts.map +1 -1
  45. package/dist/editor/MapEditor.d.ts.map +1 -1
  46. package/dist/editor/assignmentOverlay.d.ts +37 -0
  47. package/dist/editor/assignmentOverlay.d.ts.map +1 -0
  48. package/dist/editor/canvas/AssignedShapeOverlay.d.ts +8 -0
  49. package/dist/editor/canvas/AssignedShapeOverlay.d.ts.map +1 -0
  50. package/dist/editor/canvas/EditorCanvas.d.ts +6 -1
  51. package/dist/editor/canvas/EditorCanvas.d.ts.map +1 -1
  52. package/dist/editor/canvas/coords.d.ts +9 -0
  53. package/dist/editor/canvas/coords.d.ts.map +1 -1
  54. package/dist/editor/canvas/editorFill.d.ts.map +1 -1
  55. package/dist/editor/canvas/editorHover.d.ts +4 -0
  56. package/dist/editor/canvas/editorHover.d.ts.map +1 -1
  57. package/dist/editor/draftOps.d.ts.map +1 -1
  58. package/dist/editor/entranceIcon.d.ts +2 -2
  59. package/dist/editor/entranceIcon.d.ts.map +1 -1
  60. package/dist/editor/index.css +369 -87
  61. package/dist/editor/index.js +4735 -4328
  62. package/dist/editor/index.js.map +1 -1
  63. package/dist/editor/panels/AssignForm.d.ts +4 -3
  64. package/dist/editor/panels/AssignForm.d.ts.map +1 -1
  65. package/dist/editor/panels/BulkAssignForm.d.ts +3 -1
  66. package/dist/editor/panels/BulkAssignForm.d.ts.map +1 -1
  67. package/dist/editor/panels/ConnectorAssign.d.ts.map +1 -1
  68. package/dist/editor/panels/FloorsPanel.d.ts.map +1 -1
  69. package/dist/editor/panels/Inspector.d.ts +4 -2
  70. package/dist/editor/panels/Inspector.d.ts.map +1 -1
  71. package/dist/editor/panels/LeftRail.d.ts.map +1 -1
  72. package/dist/editor/routeStubs.d.ts +11 -0
  73. package/dist/editor/routeStubs.d.ts.map +1 -1
  74. package/dist/specialIcons.d.ts +22 -1
  75. package/dist/specialIcons.d.ts.map +1 -1
  76. package/dist/test-maps/LF - Shops At South Town.ai +4468 -1
  77. package/dist/test-maps/LF - Shops At South Town.svg +245 -0
  78. package/dist/test-maps/shops-at-south-town/SVG/escalator.svg +13 -0
  79. package/dist/viewer/MapViewer.d.ts.map +1 -1
  80. package/dist/viewer/camera.d.ts +10 -0
  81. package/dist/viewer/camera.d.ts.map +1 -1
  82. package/dist/viewer/components/CameraRig.d.ts.map +1 -1
  83. package/dist/viewer/components/LevelMeshes.d.ts +12 -2
  84. package/dist/viewer/components/LevelMeshes.d.ts.map +1 -1
  85. package/dist/viewer/components/MapScene.d.ts +5 -2
  86. package/dist/viewer/components/MapScene.d.ts.map +1 -1
  87. package/dist/viewer/components/RouteLine.d.ts +28 -9
  88. package/dist/viewer/components/RouteLine.d.ts.map +1 -1
  89. package/dist/viewer/components/SvgVectorLayer.d.ts +1 -1
  90. package/dist/viewer/components/SvgVectorLayer.d.ts.map +1 -1
  91. package/dist/viewer/index.css +319 -62
  92. package/dist/viewer/index.js +1 -1
  93. package/dist/viewer/pointer.d.ts +42 -6
  94. package/dist/viewer/pointer.d.ts.map +1 -1
  95. package/dist/viewer/routeFloorChanges.d.ts +33 -0
  96. package/dist/viewer/routeFloorChanges.d.ts.map +1 -0
  97. package/dist/viewer/ui/HoverTooltip.d.ts +6 -0
  98. package/dist/viewer/ui/HoverTooltip.d.ts.map +1 -0
  99. package/dist/viewer/ui/MapControls.d.ts.map +1 -1
  100. package/dist/viewer/ui/RuntimeChrome.d.ts +2 -1
  101. package/dist/viewer/ui/RuntimeChrome.d.ts.map +1 -1
  102. package/dist/viewer/ui/WebsiteInfoModal.d.ts +3 -2
  103. package/dist/viewer/ui/WebsiteInfoModal.d.ts.map +1 -1
  104. package/package.json +1 -1
  105. package/dist/chunks/stacking.js +0 -2243
  106. package/dist/chunks/stacking.js.map +0 -1
@@ -0,0 +1,2590 @@
1
+ import me from "ngraph.graph";
2
+ import xe from "ngraph.path";
3
+ const gt = "transparent", Ct = "#94a3b8", be = 0.28, Et = 32, Ie = 48, ct = 56;
4
+ function W(t) {
5
+ const e = (t ?? "").trim().toLowerCase();
6
+ return e === gt || e === "none";
7
+ }
8
+ function Rt(t) {
9
+ const e = t.replace("#", "").trim();
10
+ if (e.length === 3) {
11
+ const i = [
12
+ parseInt(e[0] + e[0], 16),
13
+ parseInt(e[1] + e[1], 16),
14
+ parseInt(e[2] + e[2], 16)
15
+ ];
16
+ return i.some((l) => Number.isNaN(l)) ? null : i;
17
+ }
18
+ if (e.length !== 6) return null;
19
+ const n = parseInt(e.slice(0, 2), 16), r = parseInt(e.slice(2, 4), 16), o = parseInt(e.slice(4, 6), 16);
20
+ return [n, r, o].some((i) => Number.isNaN(i)) ? null : [n, r, o];
21
+ }
22
+ function Lt(t, e, n) {
23
+ const r = (o) => Math.max(0, Math.min(255, Math.round(o))).toString(16).padStart(2, "0");
24
+ return `#${r(t)}${r(e)}${r(n)}`;
25
+ }
26
+ function Yr(t, e = Ct) {
27
+ const n = W(t) ? e : t, r = Rt(n) ?? Rt(e);
28
+ return r ? ge(r) : Ct;
29
+ }
30
+ function ge([t, e, n]) {
31
+ const r = Math.max(t, e, n);
32
+ if (r < Ie)
33
+ return Lt(t + ct, e + ct, n + ct);
34
+ let o = 1 - be, i = t * o, l = e * o, c = n * o;
35
+ return r - Math.max(i, l, c) < Et && (o = (r - Et) / r, i = t * o, l = e * o, c = n * o), Lt(i, l, c);
36
+ }
37
+ const qt = "#E9F7FC", _e = [
38
+ "green-area",
39
+ "water-area",
40
+ "parking-lane",
41
+ "parking-icon",
42
+ "walking-path"
43
+ ], ke = {
44
+ "green-area": "GREEN_AREA_COLOR",
45
+ "water-area": "WATER_COLOR",
46
+ "parking-lane": "PARKING_LANE_COLOR",
47
+ "parking-icon": "PARKING_ICON_COLOR",
48
+ "walking-path": "WALKABLE_COLOR"
49
+ }, Oe = 2, Qt = {
50
+ "green-area": {
51
+ fill: "#C4DDAB",
52
+ // Above parking lanes (and other house fills). Parking icons stay at 7.
53
+ renderOrder: 4,
54
+ extrudeHeight: 1
55
+ },
56
+ "water-area": {
57
+ fill: "#5cc0f9",
58
+ renderOrder: 2,
59
+ extrudeHeight: 1
60
+ },
61
+ "parking-lane": {
62
+ fill: "#F6F6F6",
63
+ renderOrder: 2,
64
+ extrudeHeight: 1
65
+ },
66
+ "parking-icon": {
67
+ fill: "#CCCCCC",
68
+ renderOrder: 7,
69
+ extrudeHeight: 1
70
+ },
71
+ "walking-path": {
72
+ fill: qt,
73
+ renderOrder: 2,
74
+ extrudeHeight: 1
75
+ }
76
+ };
77
+ function X(t) {
78
+ const e = Qt[t];
79
+ return e.fill ?? e.stroke ?? "";
80
+ }
81
+ function Se() {
82
+ return {
83
+ GREEN_AREA_COLOR: X("green-area"),
84
+ WATER_COLOR: X("water-area"),
85
+ PARKING_LANE_COLOR: X("parking-lane"),
86
+ PARKING_ICON_COLOR: X("parking-icon"),
87
+ WALKABLE_COLOR: X("walking-path")
88
+ };
89
+ }
90
+ const at = {
91
+ amenity: "#444444",
92
+ kiosk: "#444444",
93
+ connector: "#0763b1"
94
+ }, Br = {
95
+ amenity: "AMENITY_ICON_COLOR",
96
+ kiosk: "KIOSK_ICON_COLOR",
97
+ connector: "CONNECTOR_ICON_COLOR"
98
+ };
99
+ function Ae() {
100
+ return {
101
+ AMENITY_ICON_COLOR: at.amenity,
102
+ KIOSK_ICON_COLOR: at.kiosk,
103
+ CONNECTOR_ICON_COLOR: at.connector
104
+ };
105
+ }
106
+ function Jt(t) {
107
+ return t.toLowerCase().replace(/[-_]+/g, " ").replace(/\s+/g, " ").trim();
108
+ }
109
+ function Ce(t, e) {
110
+ const n = Jt(e);
111
+ return !!(t === n || t.startsWith(`${n} `) || t === `${n}s` || t.startsWith(`${n}s `));
112
+ }
113
+ function Ee(t) {
114
+ if (!t) return null;
115
+ const e = Jt(t);
116
+ if (!e) return null;
117
+ const n = [..._e].sort((r, o) => o.length - r.length);
118
+ for (const r of n)
119
+ if (Ce(e, r)) return r;
120
+ return null;
121
+ }
122
+ function Re(t, e, n) {
123
+ const r = ke[e];
124
+ if (!r) return t;
125
+ const o = n == null ? void 0 : n[r];
126
+ return typeof o != "string" ? t : W(o) ? t.fill ? { ...t, fill: "transparent" } : t.stroke ? { ...t, stroke: "transparent" } : t : o.trim() ? t.fill ? { ...t, fill: o } : t.stroke ? { ...t, stroke: o } : t : t;
127
+ }
128
+ function rt(t, e) {
129
+ const n = Ee(t);
130
+ return n ? Re(Qt[n], n, e) : null;
131
+ }
132
+ function vt(t) {
133
+ var e;
134
+ return ((e = rt(t)) == null ? void 0 : e.renderOrder) ?? Oe;
135
+ }
136
+ function zr(t, e) {
137
+ return t.map((n, r) => ({ item: n, index: r })).sort((n, r) => {
138
+ const o = vt(e(n.item)) - vt(e(r.item));
139
+ return o !== 0 ? o : n.index - r.index;
140
+ }).map(({ item: n }) => n);
141
+ }
142
+ function Le(t, e) {
143
+ const n = (e == null ? void 0 : e.omitStaticLayers) === !0, r = /* @__PURE__ */ new Set();
144
+ for (const o of t) {
145
+ const i = o.sourceSvgId;
146
+ i && (n && rt(i) || r.add(i));
147
+ }
148
+ return r;
149
+ }
150
+ function $r(t) {
151
+ return Le(
152
+ t.flatMap((e) => [...e.shapes]),
153
+ { omitStaticLayers: !0 }
154
+ );
155
+ }
156
+ const Gr = ["escalator", "elevator"];
157
+ function ve(t) {
158
+ return t === "escalator" || t === "elevator";
159
+ }
160
+ const H = {
161
+ MAP_STYLE: "2D",
162
+ MAP_BACKGROUND_COLOR: "#FFFFFF",
163
+ ACCENT_COLOR: "#2563eb",
164
+ ROUTE_COLOR: "#4ea5ff",
165
+ ROUTE_THICKNESS: 4,
166
+ STORE_DEFAULT_COLOR: "#b6babe",
167
+ STORE_TEXT_COLOR: "#1e293b",
168
+ STORE_HEIGHT: 4,
169
+ STORE_RADIUS: 0,
170
+ WALL_COLOR: "#64748b",
171
+ WALL_THICKNESS: 0.4,
172
+ BOUNDARY_COLOR: "#334155",
173
+ BOUNDARY_THICKNESS: 0.6,
174
+ BASE_COLOR: "#ffffff",
175
+ OVERLAY_COLOR: "#000000",
176
+ OVERLAY_OPACITY: 0.15,
177
+ PARKING_ZONE_COLOR: "#cbd5e1",
178
+ ...Se(),
179
+ ...Ae(),
180
+ KIOSK_SIZE: 12,
181
+ ZOOM_STEP: 0.5,
182
+ CAMERA_MAX_DISTANCE: 2e3,
183
+ CAMERA_MIN_DISTANCE: 50
184
+ }, Ne = "#f5f5f5", Te = /* @__PURE__ */ new Set(["#f8fafc", "#f1efea"]), Me = "#86efac", we = "#7dd3fc", Pe = "#e2e8f0", Fe = 500, De = 100;
185
+ function te(t) {
186
+ const e = typeof t == "number" ? t : Number(t);
187
+ return !Number.isFinite(e) || e <= 0 ? 0 : Math.min(e, Fe);
188
+ }
189
+ function Ke(t) {
190
+ const e = typeof t == "number" ? t : Number(t);
191
+ return !Number.isFinite(e) || e <= 0 ? H.ROUTE_THICKNESS : Math.min(e, De);
192
+ }
193
+ function Ye(...t) {
194
+ const e = Object.assign({}, H, ...t.filter(Boolean));
195
+ return e.MAP_BACKGROUND_COLOR.toLowerCase() === Ne && (e.MAP_BACKGROUND_COLOR = H.MAP_BACKGROUND_COLOR), Te.has(e.WALKABLE_COLOR.toLowerCase()) && (e.WALKABLE_COLOR = qt), e.GREEN_AREA_COLOR.toLowerCase() === Me && (e.GREEN_AREA_COLOR = H.GREEN_AREA_COLOR), e.WATER_COLOR.toLowerCase() === we && (e.WATER_COLOR = H.WATER_COLOR), e.STORE_DEFAULT_COLOR.toLowerCase() === Pe && (e.STORE_DEFAULT_COLOR = H.STORE_DEFAULT_COLOR), e.STORE_RADIUS = te(e.STORE_RADIUS), e.ROUTE_THICKNESS = Ke(e.ROUTE_THICKNESS), e;
196
+ }
197
+ const Be = [
198
+ "unit",
199
+ "amenity",
200
+ "kiosk_screen",
201
+ "connector",
202
+ "entrance",
203
+ "parking_zone"
204
+ ], xt = 1e4, Xr = 2.5, nt = "entrance", Hr = 24, ze = 8;
205
+ function $e(t) {
206
+ var o;
207
+ if (!t) return !1;
208
+ const e = t.trim();
209
+ return e ? e === nt ? !0 : ((o = (e.split(/[?#]/, 1)[0] ?? e).split("/").filter(Boolean).pop()) == null ? void 0 : o.toLowerCase()) === nt : !1;
210
+ }
211
+ function Ge(t) {
212
+ var e;
213
+ return t.kind !== "entrance" ? !1 : $e((e = t.label) == null ? void 0 : e.imageKey) ? !0 : t.origin === "manual" && !t.sourceSvgId;
214
+ }
215
+ function ee(t) {
216
+ var e;
217
+ return !Ge(t) || ((e = t.label) == null ? void 0 : e.imageKey) === nt ? t.label : {
218
+ ...t.label ?? {},
219
+ imageKey: nt
220
+ };
221
+ }
222
+ function Vr(t, e, n) {
223
+ const r = e != null ? { ...t, ...e } : { ...t ?? {} };
224
+ return ee({
225
+ ...n,
226
+ kind: n.kind ?? "unit",
227
+ label: r
228
+ }) ?? r;
229
+ }
230
+ function Wr(t) {
231
+ return Math.max(ze, t);
232
+ }
233
+ const Ur = ["left", "center", "right"], Xe = "center";
234
+ function Zr(t) {
235
+ return t === "left" || t === "right" ? t : Xe;
236
+ }
237
+ function jr(t, e) {
238
+ return e === "left" ? t.minX : e === "right" ? t.maxX : (t.minX + t.maxX) / 2;
239
+ }
240
+ function qr(t) {
241
+ return t === "left" ? "start" : t === "right" ? "end" : "middle";
242
+ }
243
+ const ot = 12, He = ot, Ve = 4, We = [
244
+ "retail_name",
245
+ "retail_logo",
246
+ "retail_text",
247
+ "kiosk",
248
+ "amenity",
249
+ "connector",
250
+ "custom_text",
251
+ "custom_image"
252
+ ], Ue = new Set(We);
253
+ function U(t, e) {
254
+ const n = typeof t == "number" ? t : Number(t);
255
+ return Number.isFinite(n) ? n : e;
256
+ }
257
+ const Ze = /^(?:|[+\-]|[+\-]?\.(?:0*)?)$/;
258
+ function je(t) {
259
+ const e = t.trim();
260
+ if (Ze.test(e))
261
+ return { render: 0, complete: !1 };
262
+ const n = Number(e);
263
+ return Number.isFinite(n) ? { render: n, complete: !0 } : { render: 0, complete: !1 };
264
+ }
265
+ function Qr(t) {
266
+ const e = je(t);
267
+ return e.complete ? { display: String(e.render), render: e.render } : { display: "0", render: 0 };
268
+ }
269
+ function F(t) {
270
+ if (t == null) return null;
271
+ const e = String(t).trim();
272
+ return e || null;
273
+ }
274
+ function qe(t) {
275
+ if (t == null) return null;
276
+ const e = String(t);
277
+ return e === "" ? null : e;
278
+ }
279
+ function lt(t) {
280
+ if (t == null || t === "") return null;
281
+ const e = Number(t);
282
+ return Number.isFinite(e) ? e : null;
283
+ }
284
+ function Qe(t) {
285
+ return typeof t == "string" && Ue.has(t);
286
+ }
287
+ function _t(t) {
288
+ return t === "amenity" ? "amenity" : t === "kiosk_screen" ? "kiosk" : t === "connector" ? "connector" : "retail_name";
289
+ }
290
+ function Jr(t) {
291
+ return t === "amenity" ? "amenity" : t === "kiosk_screen" ? "kiosk" : t === "unit" || t === "parking_zone" ? "retailer" : "none";
292
+ }
293
+ function to(t, e) {
294
+ return {
295
+ shapeId: t,
296
+ targetType: "none",
297
+ retailerId: null,
298
+ amenityId: null,
299
+ kioskId: null,
300
+ unitStatus: "vacant",
301
+ unitNumber: null,
302
+ customLabel: null,
303
+ customImageKey: null,
304
+ layerType: _t(e),
305
+ size: ot,
306
+ rotate: 0,
307
+ offsetX: 0,
308
+ offsetY: 0,
309
+ bgColor: null,
310
+ textColor: null
311
+ };
312
+ }
313
+ function eo(t, e = "unit") {
314
+ const n = t.layerType ?? t.layer_type, r = t.unitStatus ?? t.unit_status ?? "vacant";
315
+ return {
316
+ shapeId: U(
317
+ t.shapeId ?? t.shape_id,
318
+ 0
319
+ ),
320
+ targetType: t.targetType ?? t.target_type ?? "none",
321
+ retailerId: lt(
322
+ t.retailerId ?? t.retailer_id
323
+ ),
324
+ amenityId: lt(
325
+ t.amenityId ?? t.amenity_id
326
+ ),
327
+ kioskId: lt(
328
+ t.kioskId ?? t.kiosk_id
329
+ ),
330
+ unitStatus: r || "vacant",
331
+ unitNumber: F(
332
+ t.unitNumber ?? t.unit_number
333
+ ),
334
+ customLabel: qe(
335
+ t.customLabel ?? t.custom_label
336
+ ),
337
+ customImageKey: F(
338
+ t.customImageKey ?? t.custom_image_key
339
+ ),
340
+ layerType: Qe(n) ? n : _t(e),
341
+ size: U(t.size, ot),
342
+ rotate: U(t.rotate, 0),
343
+ offsetX: U(
344
+ t.offsetX ?? t.offset_x,
345
+ 0
346
+ ),
347
+ offsetY: U(
348
+ t.offsetY ?? t.offset_y,
349
+ 0
350
+ ),
351
+ bgColor: F(
352
+ t.bgColor ?? t.bg_color
353
+ ),
354
+ textColor: F(
355
+ t.textColor ?? t.text_color
356
+ ),
357
+ align: Je(t.align)
358
+ };
359
+ }
360
+ function Je(t) {
361
+ if (t === "left" || t === "right" || t === "center") return t;
362
+ }
363
+ function no(t, e) {
364
+ const n = (t.location ?? "").trim();
365
+ return e && n && n !== "-" ? `${t.name} (${n})` : t.name;
366
+ }
367
+ function Nt(t, e) {
368
+ var r;
369
+ const n = (r = t == null ? void 0 : t.bgColor) == null ? void 0 : r.trim();
370
+ return W(n) ? "transparent" : n || e;
371
+ }
372
+ function kt(t) {
373
+ return t === "amenity" || t === "kiosk_screen" || t === "connector";
374
+ }
375
+ function ro(t, e) {
376
+ return kt(t) ? gt : e;
377
+ }
378
+ function oo(t, e) {
379
+ var r;
380
+ const n = (r = t == null ? void 0 : t.textColor) == null ? void 0 : r.trim();
381
+ return W(n) ? "transparent" : n || e;
382
+ }
383
+ function tn(t, e, n) {
384
+ const r = (t == null ? void 0 : t.layerType) ?? (n ? _t(n) : void 0);
385
+ return r === "kiosk" ? e.KIOSK_ICON_COLOR : r === "amenity" ? e.AMENITY_ICON_COLOR : r === "connector" ? e.CONNECTOR_ICON_COLOR : e.STORE_TEXT_COLOR;
386
+ }
387
+ function io(t, e, n, r) {
388
+ var i;
389
+ const o = (i = n ?? (t == null ? void 0 : t.textColor)) == null ? void 0 : i.trim();
390
+ return W(o) ? "transparent" : o || tn(t, e, r);
391
+ }
392
+ function so(t) {
393
+ const e = t.trim();
394
+ if (!e || !/^\d+$/.test(e)) return null;
395
+ const n = Number(e);
396
+ return Number.isSafeInteger(n) && n > 0 ? n : null;
397
+ }
398
+ function co(t, e) {
399
+ var o;
400
+ const n = e == null ? void 0 : e.trim();
401
+ if (n) return n;
402
+ const r = (o = t == null ? void 0 : t.customLabel) == null ? void 0 : o.trim();
403
+ return r || ((t == null ? void 0 : t.amenityId) != null ? `Amenity ${t.amenityId}` : null);
404
+ }
405
+ function ao(t, e) {
406
+ var o;
407
+ const n = (o = t == null ? void 0 : t.customLabel) == null ? void 0 : o.trim();
408
+ if (n) return n;
409
+ const r = e == null ? void 0 : e.trim();
410
+ return r || ((t == null ? void 0 : t.kioskId) != null ? `Kiosk ${t.kioskId}` : null);
411
+ }
412
+ function N(t) {
413
+ var e, n;
414
+ return t ? t.targetType === "retailer" ? t.retailerId != null : t.targetType === "amenity" ? t.amenityId != null || !!((e = t.customLabel) != null && e.trim()) : t.targetType === "kiosk" ? t.kioskId != null || !!((n = t.customLabel) != null && n.trim()) : !1 : !1;
415
+ }
416
+ const en = /* @__PURE__ */ new Set([
417
+ "unit",
418
+ "parking_zone",
419
+ "amenity",
420
+ "kiosk_screen"
421
+ ]);
422
+ function ne(t, e, n) {
423
+ var r, o;
424
+ return t.kind === "label" ? t.label : t.kind === "entrance" ? ee(t) ?? t.label : t.kind === "connector" || (e == null ? void 0 : e.layerType) === "connector" ? e ? Mt(
425
+ { style: t.style ?? {}, label: t.label },
426
+ e,
427
+ n
428
+ ).label : t.label : en.has(t.kind) ? !e || !N(e) ? !((r = t.label) != null && r.text) && !((o = t.label) != null && o.imageKey) ? t.label : {
429
+ ...t.label,
430
+ text: void 0,
431
+ imageKey: void 0
432
+ } : Mt(
433
+ { style: t.style ?? {}, label: t.label },
434
+ e,
435
+ n
436
+ ).label : t.label;
437
+ }
438
+ function nn(t, e) {
439
+ if (N(t)) {
440
+ if (t.layerType === "retail_text" || t.layerType === "custom_text")
441
+ return t.customLabel ?? void 0;
442
+ if (t.layerType === "retail_name")
443
+ return (e == null ? void 0 : e.name) ?? t.customLabel ?? void 0;
444
+ }
445
+ }
446
+ function re(t, e, n) {
447
+ if (!(!N(t) || !t) && !(t.layerType !== "retail_logo" && t.layerType !== "custom_image"))
448
+ return on(t, e) ?? F(n == null ? void 0 : n.imageKey) ?? void 0;
449
+ }
450
+ function lo(t, e) {
451
+ var n, r;
452
+ if (!(!N(t) || !t)) {
453
+ if (t.layerType === "kiosk") return "kiosk";
454
+ if (t.layerType === "amenity")
455
+ return ((n = e == null ? void 0 : e.find((o) => o.id === t.amenityId)) == null ? void 0 : n.code) ?? ((r = t.customLabel) == null ? void 0 : r.trim()) ?? void 0;
456
+ }
457
+ }
458
+ function rn(t, e) {
459
+ const n = Number.isFinite(t) && t > 0 ? t : ot;
460
+ return (e == null ? void 0 : e.layerType) === "retail_logo" ? n * Ve : n;
461
+ }
462
+ function uo(t) {
463
+ const e = t.assignment, n = t.label;
464
+ return {
465
+ size: rn(
466
+ (e == null ? void 0 : e.size) ?? (n == null ? void 0 : n.size) ?? He
467
+ ),
468
+ rotate: (e == null ? void 0 : e.rotate) ?? (n == null ? void 0 : n.rotate) ?? 0,
469
+ offsetX: (e == null ? void 0 : e.offsetX) ?? (n == null ? void 0 : n.offsetX) ?? 0,
470
+ offsetY: (e == null ? void 0 : e.offsetY) ?? (n == null ? void 0 : n.offsetY) ?? 0,
471
+ iconColor: (e == null ? void 0 : e.textColor) ?? (n == null ? void 0 : n.color) ?? null
472
+ };
473
+ }
474
+ function fo(t, e) {
475
+ var n;
476
+ return N(t) ? (t == null ? void 0 : t.layerType) === "kiosk" || (t == null ? void 0 : t.layerType) === "amenity" || re(t, null, e) ? !0 : !!((n = e == null ? void 0 : e.text) != null && n.trim()) : !1;
477
+ }
478
+ function on(t, e) {
479
+ if (N(t)) {
480
+ if (t.layerType === "retail_logo")
481
+ return F(e == null ? void 0 : e.logoKey) ?? F(e == null ? void 0 : e.logoUrl) ?? F(t.customImageKey) ?? void 0;
482
+ if (t.layerType === "custom_image")
483
+ return F(t.customImageKey) ?? void 0;
484
+ }
485
+ }
486
+ function ut(t) {
487
+ if (t.length === 0) return "";
488
+ const e = t[0];
489
+ return t.every((n) => n === e) ? e : "";
490
+ }
491
+ function Tt(t) {
492
+ if (t.length === 0) return !1;
493
+ const e = t[0];
494
+ return t.some((n) => n !== e);
495
+ }
496
+ function ho(t) {
497
+ const e = t.map((r) => r.bgColor ?? ""), n = t.map((r) => r.textColor ?? "");
498
+ return {
499
+ size: ut(t.map((r) => r.size)),
500
+ bgColor: ut(e),
501
+ textColor: ut(n),
502
+ bgColorMixed: Tt(e),
503
+ textColorMixed: Tt(n)
504
+ };
505
+ }
506
+ function yo(t, e) {
507
+ return {
508
+ ...t,
509
+ ...e.size != null ? { size: e.size } : {},
510
+ ...e.bgColor !== void 0 ? { bgColor: e.bgColor } : {},
511
+ ...e.textColor !== void 0 ? { textColor: e.textColor } : {}
512
+ };
513
+ }
514
+ function Mt(t, e, n) {
515
+ const r = re(e, n, t.label), o = N(e) ? r ? void 0 : nn(e, n) ?? t.label.text : void 0;
516
+ return {
517
+ style: {
518
+ ...t.style,
519
+ fill: e.bgColor ?? void 0
520
+ },
521
+ label: {
522
+ ...t.label,
523
+ text: o,
524
+ imageKey: r,
525
+ size: Number.isFinite(e.size) ? e.size : 0,
526
+ rotate: Number.isFinite(e.rotate) ? e.rotate : 0,
527
+ offsetX: Number.isFinite(e.offsetX) ? e.offsetX : 0,
528
+ offsetY: Number.isFinite(e.offsetY) ? e.offsetY : 0,
529
+ color: e.textColor ?? void 0,
530
+ ...e.align ? { align: e.align } : {}
531
+ }
532
+ };
533
+ }
534
+ const sn = [
535
+ "floorplate",
536
+ "walkable",
537
+ "decor",
538
+ "zone",
539
+ "green_area",
540
+ "water",
541
+ "parking_zone"
542
+ ];
543
+ function cn(t) {
544
+ return t === "void";
545
+ }
546
+ function po(t) {
547
+ return sn.includes(t);
548
+ }
549
+ function oe(t) {
550
+ return cn(t.kind) && !t.orphanedAt;
551
+ }
552
+ function an(t) {
553
+ return (t.shapes ?? []).some(oe);
554
+ }
555
+ function mo(t) {
556
+ var n;
557
+ const e = [];
558
+ for (const r of t.shapes ?? [])
559
+ if (oe(r))
560
+ for (const o of ((n = r.geometry) == null ? void 0 : n.polygons) ?? [])
561
+ o.length >= 3 && e.push(o);
562
+ return e;
563
+ }
564
+ function wt(t) {
565
+ let e = 0;
566
+ for (let n = 0, r = t.length - 1; n < t.length; r = n++)
567
+ e += t[r].x * t[n].y - t[n].x * t[r].y;
568
+ return e / 2;
569
+ }
570
+ function ln(t) {
571
+ return t.slice().reverse();
572
+ }
573
+ function un(t, e) {
574
+ const n = wt(t), r = wt(e);
575
+ return n === 0 || r === 0 ? e : Math.sign(n) === Math.sign(r) ? ln(e) : e;
576
+ }
577
+ function Pt(t) {
578
+ let e = 1 / 0, n = 1 / 0, r = -1 / 0, o = -1 / 0;
579
+ for (const i of t)
580
+ i.x < e && (e = i.x), i.y < n && (n = i.y), i.x > r && (r = i.x), i.y > o && (o = i.y);
581
+ return { minX: e, minY: n, maxX: r, maxY: o };
582
+ }
583
+ function fn(t, e) {
584
+ const n = Pt(t), r = Pt(e);
585
+ return n.minX <= r.maxX && n.maxX >= r.minX && n.minY <= r.maxY && n.maxY >= r.minY;
586
+ }
587
+ function xo(t, e) {
588
+ return e.filter((n) => n.length >= 3 && fn(t, n)).map((n) => un(t, n));
589
+ }
590
+ const bo = "#e8eef4", Io = "#64748b", go = "#475569";
591
+ function dn(t, e) {
592
+ return t.ordering - e.ordering || t.levelIndex - e.levelIndex;
593
+ }
594
+ function V(t) {
595
+ return t.kind === "outdoor";
596
+ }
597
+ function hn(t, e) {
598
+ const n = t.filter(V), r = e == null ? null : t.find((o) => o.id === e) ?? null;
599
+ return !r || V(r) || n.some((o) => o.id === r.id) ? n : [...n, r];
600
+ }
601
+ function yn(t, e) {
602
+ if (e == null) return [];
603
+ const n = it(t), r = n.findIndex((l) => l.id === e);
604
+ if (r < 0) return [];
605
+ const o = [];
606
+ let i = n[r];
607
+ for (let l = r; l < n.length - 1 && an(i); l++) {
608
+ const c = n[l + 1];
609
+ if (!c) break;
610
+ o.unshift(c), i = c;
611
+ }
612
+ return o;
613
+ }
614
+ function _o(t, e) {
615
+ return yn(t, e).at(-1) ?? null;
616
+ }
617
+ function ko(t, e, n) {
618
+ const r = t.find((i) => i.id === n);
619
+ if (!r || !V(r)) return n;
620
+ const o = e == null ? null : t.find((i) => i.id === e) ?? null;
621
+ return o && !V(o) ? o.id : xn(t) ?? n;
622
+ }
623
+ function it(t) {
624
+ return t.filter((e) => e.kind === "floor").slice().sort(dn);
625
+ }
626
+ function Oo(t) {
627
+ return it(t);
628
+ }
629
+ function So(t) {
630
+ return it(t).length > 1;
631
+ }
632
+ function pn(t) {
633
+ return t.some((e) => e.kind === "floor");
634
+ }
635
+ function mn(t) {
636
+ return t.some(V);
637
+ }
638
+ const Ao = "This map doesn’t have any floors yet.";
639
+ function xn(t) {
640
+ var e, n;
641
+ return ((e = it(t).at(-1)) == null ? void 0 : e.id) ?? ((n = t[0]) == null ? void 0 : n.id) ?? null;
642
+ }
643
+ function Ft(t) {
644
+ return {
645
+ minX: t.x,
646
+ minY: t.y,
647
+ maxX: t.x + t.width,
648
+ maxY: t.y + t.height,
649
+ cx: t.x + t.width / 2,
650
+ cy: t.y + t.height / 2,
651
+ size: Math.max(t.width, t.height, 100)
652
+ };
653
+ }
654
+ function bn(t, e) {
655
+ const n = e.scale || 1, r = (e.rotate || 0) * Math.PI / 180, o = Math.cos(r), i = Math.sin(r), l = t.x * n, c = t.y * n;
656
+ return {
657
+ x: l * o - c * i + (e.translateX || 0),
658
+ y: l * i + c * o + (e.translateY || 0)
659
+ };
660
+ }
661
+ function In(t, e) {
662
+ const n = [
663
+ { x: t.minX, y: t.minY },
664
+ { x: t.maxX, y: t.minY },
665
+ { x: t.minX, y: t.maxY },
666
+ { x: t.maxX, y: t.maxY }
667
+ ].map((c) => e ? bn(c, e) : c), r = Math.min(
668
+ n[0].x,
669
+ n[1].x,
670
+ n[2].x,
671
+ n[3].x
672
+ ), o = Math.min(
673
+ n[0].y,
674
+ n[1].y,
675
+ n[2].y,
676
+ n[3].y
677
+ ), i = Math.max(
678
+ n[0].x,
679
+ n[1].x,
680
+ n[2].x,
681
+ n[3].x
682
+ ), l = Math.max(
683
+ n[0].y,
684
+ n[1].y,
685
+ n[2].y,
686
+ n[3].y
687
+ );
688
+ return {
689
+ minX: r,
690
+ minY: o,
691
+ maxX: i,
692
+ maxY: l,
693
+ cx: (r + i) / 2,
694
+ cy: (o + l) / 2,
695
+ size: Math.max(i - r, l - o, 100)
696
+ };
697
+ }
698
+ function Dt(t, e) {
699
+ const n = Math.min(t.minX, e.minX), r = Math.min(t.minY, e.minY), o = Math.max(t.maxX, e.maxX), i = Math.max(t.maxY, e.maxY);
700
+ return {
701
+ minX: n,
702
+ minY: r,
703
+ maxX: o,
704
+ maxY: i,
705
+ cx: (n + o) / 2,
706
+ cy: (r + i) / 2,
707
+ size: Math.max(o - n, i - r, 100)
708
+ };
709
+ }
710
+ function Co(t, e, n) {
711
+ let r = n ? Ft(n) : null;
712
+ for (const o of hn(t, e)) {
713
+ if (o.viewbox) {
714
+ const i = Ft(o.viewbox);
715
+ r = r ? Dt(r, i) : i;
716
+ }
717
+ for (const i of o.shapes) {
718
+ const l = In(i.bbox);
719
+ r = r ? Dt(r, l) : l;
720
+ }
721
+ }
722
+ return r ?? { minX: 0, minY: 0, maxX: 500, maxY: 500, cx: 250, cy: 250, size: 500 };
723
+ }
724
+ function Eo(t, e) {
725
+ if (!t && !e) return { x: 0, y: 0, width: 1e3, height: 800 };
726
+ if (!t) return e;
727
+ if (!e) return t;
728
+ const n = Math.min(t.x, e.x), r = Math.min(t.y, e.y), o = Math.max(t.x + t.width, e.x + e.width), i = Math.max(t.y + t.height, e.y + e.height);
729
+ return { x: n, y: r, width: o - n, height: i - r };
730
+ }
731
+ function Ro(t) {
732
+ return t === "PORTAL" ? "editor" : "viewer";
733
+ }
734
+ const ft = {
735
+ search: !1,
736
+ amenities: !1,
737
+ floors: !0,
738
+ zoomReset: !0,
739
+ kioskOrigin: !1,
740
+ fetchDraft: !1,
741
+ storeModal: !1,
742
+ hoverTooltip: !1
743
+ }, gn = {
744
+ /** v1 WP_SITE / MapBox HOST WEBSITE. */
745
+ WEBSITE: { ...ft, storeModal: !0, hoverTooltip: !0 },
746
+ /** Assign mode: click shapes, no public directory chrome. */
747
+ PORTAL_ASSIGN: ft,
748
+ DISPLAY_APP: {
749
+ ...ft,
750
+ kioskOrigin: !0,
751
+ hoverTooltip: !0
752
+ }
753
+ };
754
+ function ie(t) {
755
+ return gn[t];
756
+ }
757
+ function Lo(t) {
758
+ return t !== "WEBSITE";
759
+ }
760
+ function vo(t) {
761
+ return t !== "PORTAL";
762
+ }
763
+ function _n(t) {
764
+ return t === "WEBSITE" || t === "DISPLAY_APP";
765
+ }
766
+ function No(t, e) {
767
+ return pn(e) ? !0 : _n(t) ? !1 : mn(e);
768
+ }
769
+ function Kt(...t) {
770
+ for (const e of t) {
771
+ const n = e == null ? void 0 : e.trim();
772
+ if (n) return n;
773
+ }
774
+ return null;
775
+ }
776
+ function To(t) {
777
+ return ie(t).hoverTooltip;
778
+ }
779
+ function Mo(t, e = [], n = []) {
780
+ var r, o, i, l, c, s, h;
781
+ if (t.kind === "unit") {
782
+ const p = (r = t.assignment) == null ? void 0 : r.retailerId, a = p != null ? e.find((x) => x.id === p) : void 0;
783
+ return Kt(
784
+ a == null ? void 0 : a.name,
785
+ (o = t.assignment) == null ? void 0 : o.customLabel,
786
+ (i = t.label) == null ? void 0 : i.text
787
+ );
788
+ }
789
+ if (t.kind === "amenity") {
790
+ const p = (l = t.assignment) == null ? void 0 : l.amenityId, a = (s = (c = t.assignment) == null ? void 0 : c.customLabel) == null ? void 0 : s.trim(), x = p != null ? n.find((d) => d.id === p) : void 0, u = a ? n.find((d) => d.code === a) : void 0;
791
+ return Kt(x == null ? void 0 : x.name, u == null ? void 0 : u.name, a, (h = t.label) == null ? void 0 : h.text);
792
+ }
793
+ return null;
794
+ }
795
+ function kn(t, e, n) {
796
+ var r;
797
+ return t === "DISPLAY_APP" && e != null && n.kind === "kiosk_screen" && !n.orphanedAt && ((r = n.assignment) == null ? void 0 : r.kioskId) === e;
798
+ }
799
+ function wo(t, e, n) {
800
+ var r;
801
+ for (const o of t.levels) {
802
+ const i = o.shapes.find(
803
+ (l) => kn(e, n, l)
804
+ );
805
+ if (i)
806
+ return {
807
+ levelId: o.id,
808
+ shapeId: i.id,
809
+ anchorId: ((r = o.anchors.find((l) => l.shapeId === i.id)) == null ? void 0 : r.id) ?? null
810
+ };
811
+ }
812
+ return null;
813
+ }
814
+ function Po(t) {
815
+ var o, i;
816
+ const e = ((o = t.kioskOrigin) == null ? void 0 : o.anchorId) ?? null;
817
+ if (t.kind === "chrome")
818
+ return {
819
+ fromAnchorId: e,
820
+ toAnchorId: null,
821
+ nextLevelId: null,
822
+ resetCamera: !0
823
+ };
824
+ const n = ((i = t.kioskOrigin) == null ? void 0 : i.levelId) ?? t.defaultLevelId, r = n != null && n !== t.activeLevelId;
825
+ return {
826
+ fromAnchorId: e,
827
+ toAnchorId: null,
828
+ nextLevelId: r ? n : null,
829
+ resetCamera: !r
830
+ };
831
+ }
832
+ function k(t) {
833
+ if (typeof t != "string") return null;
834
+ const e = t.trim();
835
+ return e || null;
836
+ }
837
+ function Q(t) {
838
+ const e = typeof t == "number" ? t : Number(t);
839
+ return Number.isFinite(e) && e > 0 ? e : null;
840
+ }
841
+ function J(t) {
842
+ return !t || typeof t != "object" ? null : k(t.url);
843
+ }
844
+ function Fo(t, e) {
845
+ var n;
846
+ return !e || !ie(t).storeModal ? !1 : e.kind === "unit" ? ((n = e.assignment) == null ? void 0 : n.retailerId) != null : e.kind === "amenity" ? N(e.assignment) : !1;
847
+ }
848
+ function On(t, e) {
849
+ for (const n of t.levels) {
850
+ const r = n.shapes.find((o) => o.id === e);
851
+ if (r) return { level: n, shape: r };
852
+ }
853
+ return null;
854
+ }
855
+ function Sn(t, e) {
856
+ var r, o, i, l;
857
+ const n = ((r = t.assignment) == null ? void 0 : r.amenityId) != null ? e == null ? void 0 : e.find((c) => c.id === t.assignment.amenityId) : void 0;
858
+ return k((o = t.assignment) == null ? void 0 : o.customLabel) || k(n == null ? void 0 : n.name) || k((i = t.label) == null ? void 0 : i.text) || k((l = t.assignment) == null ? void 0 : l.unitNumber) || t.key;
859
+ }
860
+ function Do(t, e) {
861
+ var i, l;
862
+ const n = On(t, e);
863
+ if (!n) return null;
864
+ const r = n.shape.kind === "amenity" ? "amenity" : "store", o = n.level.anchors.find((c) => c.shapeId === e);
865
+ return {
866
+ shapeId: e,
867
+ levelId: n.level.id,
868
+ anchorId: (o == null ? void 0 : o.id) ?? null,
869
+ kind: r,
870
+ retailerId: ((i = n.shape.assignment) == null ? void 0 : i.retailerId) ?? null,
871
+ amenityId: ((l = n.shape.assignment) == null ? void 0 : l.amenityId) ?? null,
872
+ name: Sn(n.shape, t.amenities),
873
+ isExterior: V(n.level)
874
+ };
875
+ }
876
+ const An = "Directions are unavailable for this location.";
877
+ function Cn(t) {
878
+ return t ? t.isExterior || t.anchorId == null : !0;
879
+ }
880
+ function Ko(t, e) {
881
+ const n = Cn(e), r = t !== "DISPLAY_APP";
882
+ return {
883
+ showFromRetailers: r && !n,
884
+ showMapIt: r,
885
+ mapItDisabled: n,
886
+ mapItTooltip: r && n ? An : null
887
+ };
888
+ }
889
+ function En(t) {
890
+ const e = /* @__PURE__ */ new Map();
891
+ for (const n of t ?? [])
892
+ (n == null ? void 0 : n.id) != null && e.set(n.id, n);
893
+ return e;
894
+ }
895
+ function Rn(t, e) {
896
+ var n, r;
897
+ return k(t == null ? void 0 : t.logoUrl) || k(t == null ? void 0 : t.logoKey) || k((n = e.label) == null ? void 0 : n.imageKey) || k((r = e.assignment) == null ? void 0 : r.customImageKey);
898
+ }
899
+ function Yo(t, e) {
900
+ var i, l, c, s;
901
+ const n = En(e ?? t.retailers), r = /* @__PURE__ */ new Map();
902
+ for (const h of t.levels)
903
+ for (const p of h.shapes) {
904
+ const a = (i = p.assignment) == null ? void 0 : i.retailerId;
905
+ if (a == null || p.kind !== "unit") continue;
906
+ const x = n.get(a), u = h.anchors.find((y) => y.shapeId === p.id), d = {
907
+ id: a,
908
+ name: k(x == null ? void 0 : x.name) || k((l = p.label) == null ? void 0 : l.text) || k((c = p.assignment) == null ? void 0 : c.customLabel) || `Store ${a}`,
909
+ location: k(x == null ? void 0 : x.location) || k((s = p.assignment) == null ? void 0 : s.unitNumber),
910
+ phone: k(x == null ? void 0 : x.phone),
911
+ description: k(x == null ? void 0 : x.description),
912
+ logoUrl: Rn(x, p),
913
+ globalRetailerId: (x == null ? void 0 : x.globalRetailerId) ?? null,
914
+ shapeId: p.id,
915
+ levelId: h.id,
916
+ anchorId: (u == null ? void 0 : u.id) ?? null
917
+ }, f = r.get(a);
918
+ (!f || f.anchorId == null && d.anchorId != null) && r.set(a, d);
919
+ }
920
+ return Array.from(r.values()).sort((h, p) => h.name.localeCompare(p.name));
921
+ }
922
+ function Bo(t, e) {
923
+ const n = /* @__PURE__ */ new Map();
924
+ for (const r of t)
925
+ r.globalRetailerId != null && n.set(r.globalRetailerId, (n.get(r.globalRetailerId) ?? 0) + 1);
926
+ return t.filter((r) => r.id !== e && r.anchorId != null).map((r) => {
927
+ const o = r.globalRetailerId != null && (n.get(r.globalRetailerId) ?? 0) > 1 && r.location;
928
+ return {
929
+ value: String(r.id),
930
+ label: o ? `${r.name} (${r.location})` : r.name
931
+ };
932
+ });
933
+ }
934
+ function zo(t, e) {
935
+ return (t == null ? void 0 : t.anchorId) == null || (e == null ? void 0 : e.anchorId) == null ? null : {
936
+ fromAnchorId: t.anchorId,
937
+ toAnchorId: e.anchorId,
938
+ toLevelId: e.levelId
939
+ };
940
+ }
941
+ function $o(t) {
942
+ const e = t.replace(/\D/g, "").slice(-10);
943
+ return e.length === 10 ? `${e.slice(0, 3)}.${e.slice(3, 6)}.${e.slice(-4)}` : t;
944
+ }
945
+ function Go(t) {
946
+ if (!t || typeof t != "object") return null;
947
+ const e = t, n = e.global_retailer && typeof e.global_retailer == "object" ? e.global_retailer : null, r = Q(e.id);
948
+ if (r == null) return null;
949
+ const o = k(n == null ? void 0 : n.name) || k(e.name) || `Retailer ${r}`;
950
+ return {
951
+ id: r,
952
+ name: o,
953
+ location: k(e.location),
954
+ phone: k(e.retailer_phone) || k(e.phone),
955
+ description: k(n == null ? void 0 : n.description) || k(e.description) || k(e.local_description),
956
+ logoUrl: J(n == null ? void 0 : n.media) || J(n == null ? void 0 : n.featured_image) || J(e.media) || J(e.featured_image) || k(e.logoUrl) || k(e.logo),
957
+ logoKey: k(e.logoKey),
958
+ globalRetailerId: Q(n == null ? void 0 : n.id) || Q(e.global_retailer_id) || Q(e.globalRetailerId)
959
+ };
960
+ }
961
+ function se(t) {
962
+ return t === "WEBSITE" || t === "DISPLAY_APP";
963
+ }
964
+ function Ln(t) {
965
+ return t === "PORTAL_ASSIGN";
966
+ }
967
+ function vn(t) {
968
+ return se(t);
969
+ }
970
+ function Xo(t, e) {
971
+ return vn(e) ? N(t.assignment) : !0;
972
+ }
973
+ function Nn(t) {
974
+ const e = (t.sourceSvgId ?? t.key ?? "").trim().toLowerCase().replace(/_/g, "-");
975
+ return e === "escalator" || e.startsWith("escalator-") ? "escalator" : e === "elevator" || e.startsWith("elevator-") ? "elevator" : null;
976
+ }
977
+ function Tn(t, e) {
978
+ return Nn(t) ? e.has(t.id) : t.kind === "amenity" || t.kind === "kiosk_screen" ? N(t.assignment) : !0;
979
+ }
980
+ function Ho(t, e, n) {
981
+ return se(e) ? Tn(t, n) : !0;
982
+ }
983
+ const ce = "#e2e8f0";
984
+ function Vo(t) {
985
+ if (!t) return !1;
986
+ const e = t.toLowerCase();
987
+ return e === "amenity" || e.startsWith("amenity-");
988
+ }
989
+ function Mn(t) {
990
+ var n;
991
+ return ((n = t == null ? void 0 : t.GREEN_AREA_COLOR) == null ? void 0 : n.trim()) || X("green-area");
992
+ }
993
+ function wn(t, e) {
994
+ return t === "amenity" ? Mn(e) : ce;
995
+ }
996
+ function Pn(t, e, n, r) {
997
+ if (t === "walkable") return e.WALKABLE_COLOR;
998
+ if (kt(t))
999
+ return Nt(r, gt);
1000
+ if (t === "unit")
1001
+ return Nt(r, e.STORE_DEFAULT_COLOR);
1002
+ if (n) return n;
1003
+ switch (t) {
1004
+ case "wall":
1005
+ case "boundary":
1006
+ return e.WALL_COLOR;
1007
+ case "parking_zone":
1008
+ return e.PARKING_ZONE_COLOR;
1009
+ case "green_area":
1010
+ return e.GREEN_AREA_COLOR;
1011
+ case "water":
1012
+ return e.WATER_COLOR;
1013
+ case "floorplate":
1014
+ return e.BASE_COLOR;
1015
+ case "void":
1016
+ return "#00000000";
1017
+ default:
1018
+ return ce;
1019
+ }
1020
+ }
1021
+ function Wo(t, e, n, r, o) {
1022
+ const i = Pn(t, e, r, o);
1023
+ return Ln(n) && kt(t) && W(i) ? wn(t, e) : i;
1024
+ }
1025
+ function Uo(t, e) {
1026
+ return t === "amenity" ? 1 : e ?? 1;
1027
+ }
1028
+ function Fn(t) {
1029
+ return /^https?:\/\//i.test(t.trim());
1030
+ }
1031
+ function Zo(t, e) {
1032
+ return !e || !Fn(t) ? t : e + encodeURIComponent(t);
1033
+ }
1034
+ function jo(t, e) {
1035
+ return t.map((n) => ({ x: n.x, y: e - n.y }));
1036
+ }
1037
+ function D(t, e) {
1038
+ const n = t.x - e.x, r = t.y - e.y;
1039
+ return Math.hypot(n, r);
1040
+ }
1041
+ function Dn(t) {
1042
+ if (t.length === 0)
1043
+ return { minX: 0, minY: 0, maxX: 0, maxY: 0 };
1044
+ let e = t[0].x, n = t[0].y, r = t[0].x, o = t[0].y;
1045
+ for (let i = 1; i < t.length; i++) {
1046
+ const l = t[i];
1047
+ l.x < e && (e = l.x), l.y < n && (n = l.y), l.x > r && (r = l.x), l.y > o && (o = l.y);
1048
+ }
1049
+ return { minX: e, minY: n, maxX: r, maxY: o };
1050
+ }
1051
+ function qo(t, e) {
1052
+ return {
1053
+ minX: Math.min(t.minX, e.minX),
1054
+ minY: Math.min(t.minY, e.minY),
1055
+ maxX: Math.max(t.maxX, e.maxX),
1056
+ maxY: Math.max(t.maxY, e.maxY)
1057
+ };
1058
+ }
1059
+ function Kn(t) {
1060
+ if (t.length === 0) return { x: 0, y: 0 };
1061
+ let e = 0, n = 0;
1062
+ for (const r of t)
1063
+ e += r.x, n += r.y;
1064
+ return { x: e / t.length, y: n / t.length };
1065
+ }
1066
+ function Yn(t, e) {
1067
+ let n = !1;
1068
+ for (let r = 0, o = e.length - 1; r < e.length; o = r++) {
1069
+ const i = e[r].x, l = e[r].y, c = e[o].x, s = e[o].y;
1070
+ l > t.y != s > t.y && t.x < (c - i) * (t.y - l) / (s - l + Number.EPSILON) + i && (n = !n);
1071
+ }
1072
+ return n;
1073
+ }
1074
+ function Qo(t, e) {
1075
+ return e.some((n) => Yn(t, n));
1076
+ }
1077
+ function Bn(t, e, n) {
1078
+ const r = n.x - e.x, o = n.y - e.y, i = r * r + o * o;
1079
+ if (i === 0)
1080
+ return { point: { ...e }, t: 0, distance: D(t, e) };
1081
+ let l = ((t.x - e.x) * r + (t.y - e.y) * o) / i;
1082
+ l = Math.max(0, Math.min(1, l));
1083
+ const c = { x: e.x + l * r, y: e.y + l * o };
1084
+ return { point: c, t: l, distance: D(t, c) };
1085
+ }
1086
+ function Jo(t, e) {
1087
+ if (e.length < 2) return null;
1088
+ let n = null;
1089
+ for (let r = 0; r < e.length - 1; r++) {
1090
+ const o = Bn(t, e[r], e[r + 1]);
1091
+ (!n || o.distance < n.distance) && (n = { point: o.point, segmentIndex: r, distance: o.distance });
1092
+ }
1093
+ return n;
1094
+ }
1095
+ function Yt(t, e, n, r, o = 8) {
1096
+ const i = [];
1097
+ for (let l = 0; l <= o; l++) {
1098
+ const c = l / o, s = 1 - c;
1099
+ i.push({
1100
+ x: s * s * s * t.x + 3 * s * s * c * e.x + 3 * s * c * c * n.x + c * c * c * r.x,
1101
+ y: s * s * s * t.y + 3 * s * s * c * e.y + 3 * s * c * c * n.y + c * c * c * r.y
1102
+ });
1103
+ }
1104
+ return i;
1105
+ }
1106
+ function Bt(t, e, n, r = 6) {
1107
+ const o = [];
1108
+ for (let i = 0; i <= r; i++) {
1109
+ const l = i / r, c = 1 - l;
1110
+ o.push({
1111
+ x: c * c * t.x + 2 * c * l * e.x + l * l * n.x,
1112
+ y: c * c * t.y + 2 * c * l * e.y + l * l * n.y
1113
+ });
1114
+ }
1115
+ return o;
1116
+ }
1117
+ const zn = 8;
1118
+ function $n(t, e, n, r, o, i, l) {
1119
+ if (t.x === l.x && t.y === l.y) return [{ ...t }];
1120
+ let c = Math.abs(e), s = Math.abs(n);
1121
+ if (c === 0 || s === 0 || !Number.isFinite(c) || !Number.isFinite(s))
1122
+ return [{ ...t }, { ...l }];
1123
+ const h = r % 360 * Math.PI / 180, p = Math.cos(h), a = Math.sin(h), x = (t.x - l.x) / 2, u = (t.y - l.y) / 2, d = p * x + a * u, f = -a * x + p * u, y = d * d / (c * c) + f * f / (s * s);
1124
+ if (y > 1) {
1125
+ const w = Math.sqrt(y);
1126
+ c *= w, s *= w;
1127
+ }
1128
+ const b = c * c, g = s * s, m = b * g - b * f * f - g * d * d, I = b * f * f + g * d * d, _ = Math.sqrt(Math.max(0, m / I)) * (o === i ? -1 : 1), S = _ * c * f / s, O = -_ * s * d / c, A = p * S - a * O + (t.x + l.x) / 2, R = a * S + p * O + (t.y + l.y) / 2, E = (d - S) / c, K = (f - O) / s, T = (-d - S) / c, Y = (-f - O) / s, L = Math.atan2(K, E);
1129
+ let C = Math.atan2(E * Y - K * T, E * T + K * Y);
1130
+ !i && C > 0 ? C -= 2 * Math.PI : i && C < 0 && (C += 2 * Math.PI);
1131
+ const B = Math.abs(C) / (Math.PI / 2) * zn, z = Math.max(1, Math.round(B)), M = [{ ...t }];
1132
+ for (let w = 1; w <= z; w++) {
1133
+ const j = L + C * w / z, q = Math.cos(j), At = Math.sin(j);
1134
+ M.push({
1135
+ x: A + c * p * q - s * a * At,
1136
+ y: R + c * a * q + s * p * At
1137
+ });
1138
+ }
1139
+ return M[M.length - 1] = { ...l }, M;
1140
+ }
1141
+ const Gn = /[\s,]/;
1142
+ function ae(t) {
1143
+ const e = [];
1144
+ let n = 0, r = "", o = 0;
1145
+ for (; n < t.length; ) {
1146
+ const i = t[n];
1147
+ if (Gn.test(i)) {
1148
+ n++;
1149
+ continue;
1150
+ }
1151
+ if (i >= "a" && i <= "z" || i >= "A" && i <= "Z") {
1152
+ r = i, o = 0, e.push(i), n++;
1153
+ continue;
1154
+ }
1155
+ const l = r === "A" || r === "a" ? o % 7 : -1;
1156
+ if ((l === 3 || l === 4) && (i === "0" || i === "1")) {
1157
+ e.push(i), n++, o++;
1158
+ continue;
1159
+ }
1160
+ const c = n;
1161
+ let s = 0;
1162
+ for ((i === "+" || i === "-") && n++; n < t.length && t[n] >= "0" && t[n] <= "9"; )
1163
+ n++, s++;
1164
+ if (t[n] === ".")
1165
+ for (n++; n < t.length && t[n] >= "0" && t[n] <= "9"; )
1166
+ n++, s++;
1167
+ if (s > 0 && (t[n] === "e" || t[n] === "E")) {
1168
+ const h = n;
1169
+ if (n++, (t[n] === "+" || t[n] === "-") && n++, n < t.length && t[n] >= "0" && t[n] <= "9")
1170
+ for (; n < t.length && t[n] >= "0" && t[n] <= "9"; ) n++;
1171
+ else
1172
+ n = h;
1173
+ }
1174
+ if (s === 0) {
1175
+ n = c + 1;
1176
+ continue;
1177
+ }
1178
+ e.push(t.slice(c, n)), o++;
1179
+ }
1180
+ return e;
1181
+ }
1182
+ function le(t) {
1183
+ const e = ae(t), n = [];
1184
+ let r = [], o = 0, i = 0, l = 0, c = 0, s = null, h = 0, p = "";
1185
+ const a = () => Number(e[h++]);
1186
+ for (; h < e.length; ) {
1187
+ const x = e[h];
1188
+ switch (/[a-zA-Z]/.test(x) && (p = x, h++), p) {
1189
+ case "M":
1190
+ case "m": {
1191
+ const u = p === "m", d = a(), f = a();
1192
+ o = u ? o + d : d, i = u ? i + f : f, r.length > 0 && n.push(r), r = [{ x: o, y: i }], l = o, c = i, s = null, p = u ? "l" : "L";
1193
+ break;
1194
+ }
1195
+ case "L":
1196
+ case "l": {
1197
+ const u = p === "l", d = a(), f = a();
1198
+ o = u ? o + d : d, i = u ? i + f : f, r.push({ x: o, y: i }), s = null;
1199
+ break;
1200
+ }
1201
+ case "H":
1202
+ case "h": {
1203
+ const u = p === "h", d = a();
1204
+ o = u ? o + d : d, r.push({ x: o, y: i }), s = null;
1205
+ break;
1206
+ }
1207
+ case "V":
1208
+ case "v": {
1209
+ const u = p === "v", d = a();
1210
+ i = u ? i + d : d, r.push({ x: o, y: i }), s = null;
1211
+ break;
1212
+ }
1213
+ case "C":
1214
+ case "c": {
1215
+ const u = p === "c", d = u ? o + a() : a(), f = u ? i + a() : a(), y = u ? o + a() : a(), b = u ? i + a() : a(), g = u ? o + a() : a(), m = u ? i + a() : a(), I = Yt(
1216
+ { x: o, y: i },
1217
+ { x: d, y: f },
1218
+ { x: y, y: b },
1219
+ { x: g, y: m }
1220
+ );
1221
+ r.push(...I.slice(1)), s = { x: y, y: b }, o = g, i = m;
1222
+ break;
1223
+ }
1224
+ case "Q":
1225
+ case "q": {
1226
+ const u = p === "q", d = u ? o + a() : a(), f = u ? i + a() : a(), y = u ? o + a() : a(), b = u ? i + a() : a(), g = Bt(
1227
+ { x: o, y: i },
1228
+ { x: d, y: f },
1229
+ { x: y, y: b }
1230
+ );
1231
+ r.push(...g.slice(1)), s = { x: d, y: f }, o = y, i = b;
1232
+ break;
1233
+ }
1234
+ case "S":
1235
+ case "s": {
1236
+ const u = p === "s", d = s ? 2 * o - s.x : o, f = s ? 2 * i - s.y : i, y = u ? o + a() : a(), b = u ? i + a() : a(), g = u ? o + a() : a(), m = u ? i + a() : a(), I = Yt(
1237
+ { x: o, y: i },
1238
+ { x: d, y: f },
1239
+ { x: y, y: b },
1240
+ { x: g, y: m }
1241
+ );
1242
+ r.push(...I.slice(1)), s = { x: y, y: b }, o = g, i = m;
1243
+ break;
1244
+ }
1245
+ case "T":
1246
+ case "t": {
1247
+ const u = p === "t", d = s ? 2 * o - s.x : o, f = s ? 2 * i - s.y : i, y = u ? o + a() : a(), b = u ? i + a() : a(), g = Bt(
1248
+ { x: o, y: i },
1249
+ { x: d, y: f },
1250
+ { x: y, y: b }
1251
+ );
1252
+ r.push(...g.slice(1)), s = { x: d, y: f }, o = y, i = b;
1253
+ break;
1254
+ }
1255
+ case "A":
1256
+ case "a": {
1257
+ const u = p === "a", d = a(), f = a(), y = a(), b = a() !== 0, g = a() !== 0, m = u ? o + a() : a(), I = u ? i + a() : a(), _ = $n(
1258
+ { x: o, y: i },
1259
+ d,
1260
+ f,
1261
+ y,
1262
+ b,
1263
+ g,
1264
+ { x: m, y: I }
1265
+ );
1266
+ r.push(..._.slice(1)), s = null, o = m, i = I;
1267
+ break;
1268
+ }
1269
+ case "Z":
1270
+ case "z": {
1271
+ r.push({ x: l, y: c }), n.push(r), r = [], o = l, i = c, s = null;
1272
+ break;
1273
+ }
1274
+ default:
1275
+ h++;
1276
+ break;
1277
+ }
1278
+ }
1279
+ return r.length > 0 && n.push(r), n;
1280
+ }
1281
+ function Xn(t) {
1282
+ const e = t.match(
1283
+ /^\s*M\s*(-?\d*\.?\d+(?:e[-+]?\d+)?)[\s,]+(-?\d*\.?\d+(?:e[-+]?\d+)?)/i
1284
+ );
1285
+ if (!e) return null;
1286
+ const n = Number(e[1]), r = Number(e[2]);
1287
+ return Number.isFinite(n) && Number.isFinite(r) ? { x: n, y: r } : null;
1288
+ }
1289
+ function Hn(t) {
1290
+ var o, i;
1291
+ const e = (o = t.paths[0]) == null ? void 0 : o.d;
1292
+ if (!e || t.polygons.length === 0) return !1;
1293
+ const n = Xn(e), r = (i = t.polygons[0]) == null ? void 0 : i[0];
1294
+ return !n || !r ? !1 : Math.abs(n.x - r.x) > 0.01 || Math.abs(n.y - r.y) > 0.01;
1295
+ }
1296
+ function ue(t) {
1297
+ if (!Hn(t)) return t;
1298
+ const e = t.paths.flatMap((n) => le(n.d));
1299
+ return e.length === 0 ? t : { paths: t.paths, polygons: e };
1300
+ }
1301
+ function Vn(t) {
1302
+ const e = t.map((r) => ({
1303
+ d: r,
1304
+ closed: /z/i.test(r)
1305
+ })), n = t.flatMap((r) => le(r));
1306
+ return { paths: e, polygons: n };
1307
+ }
1308
+ function Ot(t) {
1309
+ const e = t.polygons.flat();
1310
+ return Dn(e);
1311
+ }
1312
+ function Wn(t) {
1313
+ return Kn(t.polygons.flat());
1314
+ }
1315
+ function ti(t, e, n = 0, r = [15, 45, 90]) {
1316
+ const o = e.x - t.x, i = e.y - t.y, l = Math.hypot(o, i);
1317
+ if (l === 0) return { ...e };
1318
+ const s = Math.atan2(i, o) * 180 / Math.PI - n;
1319
+ let h = s, p = 1 / 0;
1320
+ for (const x of r) {
1321
+ const u = Math.round(s / x) * x, d = Math.abs(s - u);
1322
+ d < p && (p = d, h = u);
1323
+ }
1324
+ const a = (h + n) * Math.PI / 180;
1325
+ return {
1326
+ x: t.x + Math.cos(a) * l,
1327
+ y: t.y + Math.sin(a) * l
1328
+ };
1329
+ }
1330
+ function ei(t, e) {
1331
+ return Math.atan2(e.y - t.y, e.x - t.x) * 180 / Math.PI;
1332
+ }
1333
+ function Un(t) {
1334
+ if (!t) return null;
1335
+ const e = t.trim().split(/[\s,]+/).map(Number);
1336
+ return e.length !== 4 || e.some((n) => Number.isNaN(n)) ? null : { x: e[0], y: e[1], width: e[2], height: e[3] };
1337
+ }
1338
+ const Zn = {
1339
+ fill: "fill",
1340
+ "fill-opacity": "fill-opacity",
1341
+ stroke: "stroke",
1342
+ "stroke-width": "stroke-width",
1343
+ "stroke-opacity": "stroke-opacity",
1344
+ opacity: "opacity"
1345
+ };
1346
+ function jn(t) {
1347
+ const e = {};
1348
+ for (const n of t.split(";")) {
1349
+ const r = n.indexOf(":");
1350
+ if (r === -1) continue;
1351
+ const o = n.slice(0, r).trim().toLowerCase(), i = n.slice(r + 1).trim();
1352
+ o && i && (e[o] = i);
1353
+ }
1354
+ return e;
1355
+ }
1356
+ function qn(t) {
1357
+ const e = /* @__PURE__ */ new Map(), n = t.replace(/\/\*[\s\S]*?\*\//g, "");
1358
+ for (const r of n.matchAll(/([^{]+)\{([^}]*)\}/g)) {
1359
+ const o = r[1].split(",").map((l) => l.trim()), i = jn(r[2]);
1360
+ for (const l of o) {
1361
+ const c = l.match(/^\.([a-zA-Z0-9_-]+)$/);
1362
+ if (!c) continue;
1363
+ const s = c[1];
1364
+ e.set(s, {
1365
+ ...e.get(s) || {},
1366
+ ...i
1367
+ });
1368
+ }
1369
+ }
1370
+ return e;
1371
+ }
1372
+ function Qn(t, e) {
1373
+ const n = {};
1374
+ for (const r of t.split(/\s+/).map((o) => o.trim()).filter(Boolean))
1375
+ Object.assign(n, e.get(r) || {});
1376
+ return n;
1377
+ }
1378
+ function Jn(t) {
1379
+ const e = [], n = t.replace(/<!--[\s\S]*?-->/g, "");
1380
+ for (const o of n.matchAll(/<style\b[^>]*>([\s\S]*?)<\/style>/gi))
1381
+ e.push(o[1]);
1382
+ if (e.length === 0) return t;
1383
+ const r = /* @__PURE__ */ new Map();
1384
+ for (const o of e)
1385
+ for (const [i, l] of qn(o))
1386
+ r.set(i, { ...r.get(i) || {}, ...l });
1387
+ return r.size === 0 ? t : t.replace(
1388
+ /<(path|polygon|polyline|line|rect|g|circle|ellipse)\b([^>]*)>/gi,
1389
+ (o, i, l) => {
1390
+ const c = /\/\s*$/.test(l), s = l.replace(/\/\s*$/, ""), h = s.match(/\bclass\s*=\s*["']([^"']*)["']/i);
1391
+ if (!h) return o;
1392
+ const p = Qn(h[1], r);
1393
+ let a = s;
1394
+ for (const [x, u] of Object.entries(p)) {
1395
+ const d = Zn[x];
1396
+ d && (new RegExp(`\\b${d}\\s*=`, "i").test(a) || (a += ` ${d}="${u}"`));
1397
+ }
1398
+ return `<${i}${a}${c ? " /" : ""}>`;
1399
+ }
1400
+ );
1401
+ }
1402
+ function zt(t) {
1403
+ var c, s, h, p, a;
1404
+ const e = {}, n = (c = t.match(/\bfill\s*=\s*["']([^"']*)["']/i)) == null ? void 0 : c[1], r = (s = t.match(/\bstroke\s*=\s*["']([^"']*)["']/i)) == null ? void 0 : s[1], o = (h = t.match(/\bstroke-width\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : h[1], i = (p = t.match(/\bopacity\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : p[1], l = (a = t.match(/\bfill-opacity\s*=\s*["']?(-?[\d.]+)/i)) == null ? void 0 : a[1];
1405
+ return n && n.toLowerCase() !== "none" && (e.fill = n), r && r.toLowerCase() !== "none" && (e.stroke = r), o != null && !Number.isNaN(Number(o)) && (e.strokeWidth = Number(o)), i != null && !Number.isNaN(Number(i)) ? e.opacity = Number(i) : l != null && !Number.isNaN(Number(l)) && (e.opacity = Number(l)), e;
1406
+ }
1407
+ function dt(t, e) {
1408
+ return {
1409
+ fill: e.fill ?? t.fill,
1410
+ stroke: e.stroke ?? t.stroke,
1411
+ strokeWidth: e.strokeWidth ?? t.strokeWidth,
1412
+ opacity: e.opacity ?? t.opacity
1413
+ };
1414
+ }
1415
+ const bt = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };
1416
+ function Z(t, e) {
1417
+ return {
1418
+ a: t.a * e.a + t.c * e.b,
1419
+ b: t.b * e.a + t.d * e.b,
1420
+ c: t.a * e.c + t.c * e.d,
1421
+ d: t.b * e.c + t.d * e.d,
1422
+ e: t.a * e.e + t.c * e.f + t.e,
1423
+ f: t.b * e.e + t.d * e.f + t.f
1424
+ };
1425
+ }
1426
+ function tr(t, e) {
1427
+ return {
1428
+ x: t.a * e.x + t.c * e.y + t.e,
1429
+ y: t.b * e.x + t.d * e.y + t.f
1430
+ };
1431
+ }
1432
+ function er(t, e = 1e-9) {
1433
+ return Math.abs(t.a - 1) < e && Math.abs(t.b) < e && Math.abs(t.c) < e && Math.abs(t.d - 1) < e && Math.abs(t.e) < e && Math.abs(t.f) < e;
1434
+ }
1435
+ function ht(t, e) {
1436
+ return { a: 1, b: 0, c: 0, d: 1, e: t, f: e };
1437
+ }
1438
+ function nr(t) {
1439
+ const e = t * Math.PI / 180, n = Math.cos(e), r = Math.sin(e);
1440
+ return { a: n, b: r, c: -r, d: n, e: 0, f: 0 };
1441
+ }
1442
+ function rr(t, e) {
1443
+ switch (t) {
1444
+ case "matrix":
1445
+ return e.length < 6 ? null : { a: e[0], b: e[1], c: e[2], d: e[3], e: e[4], f: e[5] };
1446
+ case "translate":
1447
+ return e.length < 1 ? null : ht(e[0], e[1] ?? 0);
1448
+ case "scale": {
1449
+ if (e.length < 1) return null;
1450
+ const n = e[0], r = e[1] ?? n;
1451
+ return { a: n, b: 0, c: 0, d: r, e: 0, f: 0 };
1452
+ }
1453
+ case "rotate": {
1454
+ if (e.length < 1) return null;
1455
+ const n = nr(e[0]);
1456
+ if (e.length < 3) return n;
1457
+ const r = e[1], o = e[2];
1458
+ return Z(
1459
+ Z(ht(r, o), n),
1460
+ ht(-r, -o)
1461
+ );
1462
+ }
1463
+ case "skewx":
1464
+ return e.length < 1 ? null : { a: 1, b: 0, c: Math.tan(e[0] * Math.PI / 180), d: 1, e: 0, f: 0 };
1465
+ case "skewy":
1466
+ return e.length < 1 ? null : { a: 1, b: Math.tan(e[0] * Math.PI / 180), c: 0, d: 1, e: 0, f: 0 };
1467
+ default:
1468
+ return null;
1469
+ }
1470
+ }
1471
+ const $t = /([a-zA-Z]+)\s*\(([^)]*)\)/g;
1472
+ function Gt(t) {
1473
+ if (!t) return bt;
1474
+ let e = bt;
1475
+ $t.lastIndex = 0;
1476
+ let n;
1477
+ for (; (n = $t.exec(t)) !== null; ) {
1478
+ const r = n[1].toLowerCase(), o = n[2].trim().split(/[\s,]+/).filter(Boolean).map(Number);
1479
+ if (o.some((l) => Number.isNaN(l))) continue;
1480
+ const i = rr(r, o);
1481
+ i && (e = Z(e, i));
1482
+ }
1483
+ return e;
1484
+ }
1485
+ function G(t) {
1486
+ if (!Number.isFinite(t)) return "0";
1487
+ const e = Math.round(t * 1e4) / 1e4;
1488
+ return Object.is(e, -0) ? "0" : String(e);
1489
+ }
1490
+ function or(t, e, n, r) {
1491
+ const o = r * Math.PI / 180, i = Math.cos(o), l = Math.sin(o), c = i * e, s = l * e, h = -l * n, p = i * n, a = t.a * c + t.c * s, x = t.b * c + t.d * s, u = t.a * h + t.c * p, d = t.b * h + t.d * p, f = (a + d) / 2, y = (a - d) / 2, b = (x + u) / 2, g = (x - u) / 2, m = Math.hypot(f, g), I = Math.hypot(y, b), _ = Math.abs(m + I), S = Math.abs(m - I), O = Math.atan2(b, y), R = (Math.atan2(g, f) + O) / 2 * (180 / Math.PI);
1492
+ return { rx: _, ry: S, phiDeg: R };
1493
+ }
1494
+ function ir(t, e) {
1495
+ if (!t || er(e)) return t;
1496
+ const n = ae(t), r = [], o = e.a * e.d - e.b * e.c < 0;
1497
+ let i = 0, l = "", c = 0, s = 0, h = 0, p = 0;
1498
+ const a = () => {
1499
+ const d = Number(n[i++]);
1500
+ return Number.isNaN(d) ? 0 : d;
1501
+ }, x = (d, ...f) => {
1502
+ r.push(d + (f.length ? " " + f.map(G).join(" ") : ""));
1503
+ }, u = (d, f) => {
1504
+ const y = tr(e, { x: d, y: f });
1505
+ return [y.x, y.y];
1506
+ };
1507
+ for (; i < n.length; ) {
1508
+ const d = n[i];
1509
+ switch (/[a-zA-Z]/.test(d) && (l = d, i++), l) {
1510
+ case "M":
1511
+ case "m": {
1512
+ const f = l === "m", y = a(), b = a();
1513
+ c = f ? c + y : y, s = f ? s + b : b, h = c, p = s, x("M", ...u(c, s)), l = f ? "l" : "L";
1514
+ break;
1515
+ }
1516
+ case "L":
1517
+ case "l": {
1518
+ const f = l === "l", y = a(), b = a();
1519
+ c = f ? c + y : y, s = f ? s + b : b, x("L", ...u(c, s));
1520
+ break;
1521
+ }
1522
+ case "H":
1523
+ case "h": {
1524
+ const f = l === "h", y = a();
1525
+ c = f ? c + y : y, x("L", ...u(c, s));
1526
+ break;
1527
+ }
1528
+ case "V":
1529
+ case "v": {
1530
+ const f = l === "v", y = a();
1531
+ s = f ? s + y : y, x("L", ...u(c, s));
1532
+ break;
1533
+ }
1534
+ case "C":
1535
+ case "c": {
1536
+ const f = l === "c", y = f ? c + a() : a(), b = f ? s + a() : a(), g = f ? c + a() : a(), m = f ? s + a() : a(), I = f ? c + a() : a(), _ = f ? s + a() : a();
1537
+ x("C", ...u(y, b), ...u(g, m), ...u(I, _)), c = I, s = _;
1538
+ break;
1539
+ }
1540
+ case "S":
1541
+ case "s": {
1542
+ const f = l === "s", y = f ? c + a() : a(), b = f ? s + a() : a(), g = f ? c + a() : a(), m = f ? s + a() : a();
1543
+ x("S", ...u(y, b), ...u(g, m)), c = g, s = m;
1544
+ break;
1545
+ }
1546
+ case "Q":
1547
+ case "q": {
1548
+ const f = l === "q", y = f ? c + a() : a(), b = f ? s + a() : a(), g = f ? c + a() : a(), m = f ? s + a() : a();
1549
+ x("Q", ...u(y, b), ...u(g, m)), c = g, s = m;
1550
+ break;
1551
+ }
1552
+ case "T":
1553
+ case "t": {
1554
+ const f = l === "t", y = f ? c + a() : a(), b = f ? s + a() : a();
1555
+ x("T", ...u(y, b)), c = y, s = b;
1556
+ break;
1557
+ }
1558
+ case "A":
1559
+ case "a": {
1560
+ const f = l === "a", y = a(), b = a(), g = a(), m = a(), I = a(), _ = f ? c + a() : a(), S = f ? s + a() : a(), O = or(e, y, b, g), [A, R] = u(_, S);
1561
+ r.push(
1562
+ `A ${G(O.rx)} ${G(O.ry)} ${G(O.phiDeg)} ${m ? 1 : 0} ${(I ? 1 : 0) ^ (o ? 1 : 0)} ${G(A)} ${G(R)}`
1563
+ ), c = _, s = S;
1564
+ break;
1565
+ }
1566
+ case "Z":
1567
+ case "z": {
1568
+ r.push("Z"), c = h, s = p;
1569
+ break;
1570
+ }
1571
+ default:
1572
+ i++;
1573
+ break;
1574
+ }
1575
+ }
1576
+ return r.join(" ");
1577
+ }
1578
+ const sr = [
1579
+ { prefix: "walkable", kind: "walkable" },
1580
+ { prefix: "void", kind: "void" },
1581
+ { prefix: "unit", kind: "unit" },
1582
+ { prefix: "store", kind: "unit" },
1583
+ // v1 compatibility
1584
+ { prefix: "wall", kind: "wall" },
1585
+ { prefix: "boundary", kind: "boundary" },
1586
+ { prefix: "outer-wall", kind: "wall" },
1587
+ { prefix: "amenity-", kind: "amenity" },
1588
+ { prefix: "kiosk-", kind: "kiosk_screen" },
1589
+ { prefix: "escalator-", kind: "connector" },
1590
+ { prefix: "elevator-", kind: "connector" },
1591
+ { prefix: "stairs-", kind: "connector" },
1592
+ { prefix: "entrance-", kind: "entrance" },
1593
+ { prefix: "zone-", kind: "zone" },
1594
+ { prefix: "label-", kind: "label" },
1595
+ { prefix: "floorplate", kind: "floorplate" },
1596
+ { prefix: "base", kind: "floorplate" },
1597
+ { prefix: "decor", kind: "decor" },
1598
+ { prefix: "special-shape", kind: "decor" },
1599
+ { prefix: "overlay", kind: "decor" },
1600
+ { prefix: "green-area", kind: "green_area" },
1601
+ { prefix: "parking-lane", kind: "parking_zone" },
1602
+ { prefix: "parking-icon", kind: "parking_icon" },
1603
+ { prefix: "walking-path", kind: "walkable" },
1604
+ { prefix: "water", kind: "water" }
1605
+ ], cr = [
1606
+ { prefix: "parking-zone", kind: "parking_zone" },
1607
+ { prefix: "parking-lane", kind: "parking_zone" },
1608
+ { prefix: "parking-icon", kind: "parking_icon" },
1609
+ { prefix: "green-area", kind: "green_area" },
1610
+ { prefix: "water", kind: "water" },
1611
+ { prefix: "walking-path", kind: "walkable" },
1612
+ { prefix: "decor", kind: "decor" },
1613
+ { prefix: "entrance-", kind: "entrance" },
1614
+ { prefix: "unit", kind: "unit" },
1615
+ { prefix: "store", kind: "unit" },
1616
+ { prefix: "interactive-", kind: "unit" },
1617
+ { prefix: "walkable", kind: "walkable" },
1618
+ { prefix: "void", kind: "void" },
1619
+ { prefix: "amenity-", kind: "amenity" },
1620
+ { prefix: "kiosk-", kind: "kiosk_screen" },
1621
+ // Connectors also appear in outdoor artboards (car-park decks, ramps).
1622
+ { prefix: "escalator-", kind: "connector" },
1623
+ { prefix: "elevator-", kind: "connector" },
1624
+ { prefix: "stairs-", kind: "connector" }
1625
+ ];
1626
+ function Xt(t) {
1627
+ const e = st(t);
1628
+ return e === "route path" || e.startsWith("route path ");
1629
+ }
1630
+ function fe(t) {
1631
+ return /^routes?( \d+)?$/.test(st(t));
1632
+ }
1633
+ function Ht(t, e) {
1634
+ const n = t.toLowerCase();
1635
+ return n === "line" || n === "polyline" ? !0 : !(n !== "path" || !e || /[zZ]/.test(e) || /[csqtaCSQTA]/.test(e));
1636
+ }
1637
+ const ar = [
1638
+ ...Be,
1639
+ "walkable",
1640
+ "void"
1641
+ ], lr = 8;
1642
+ function ur(t, e = "floor") {
1643
+ if (ye(t))
1644
+ return { kind: null, guessed: !1 };
1645
+ const n = t.toLowerCase(), r = e === "base" ? cr : sr;
1646
+ for (const { prefix: o, kind: i } of r)
1647
+ if (n === o || n.startsWith(o))
1648
+ return { kind: i, guessed: !1 };
1649
+ return n.startsWith("interactive") ? { kind: "unit", guessed: !0 } : { kind: null, guessed: !1 };
1650
+ }
1651
+ function st(t) {
1652
+ return t.toLowerCase().replace(/[-_]+/g, " ").replace(/\s+/g, " ").trim();
1653
+ }
1654
+ function St(t) {
1655
+ return /non[-_ ]?interactive/i.test(t);
1656
+ }
1657
+ function de(t) {
1658
+ return St(t) ? !1 : /^interactive( items)?( \d+)?$/.test(st(t));
1659
+ }
1660
+ function he(t) {
1661
+ const e = st(t);
1662
+ return e === "stores" || e === "store layer" || e === "units" || e === "unit layer";
1663
+ }
1664
+ function ye(t) {
1665
+ return de(t) || St(t) || he(t) || fe(t);
1666
+ }
1667
+ function yt(t) {
1668
+ return t.interactiveContainer || t.nonInteractiveContainer || t.storeFolder || t.routeContainer;
1669
+ }
1670
+ function P(t, e) {
1671
+ const n = t.match(new RegExp(`\\b${e}\\s*=\\s*["']([^"']*)["']`, "i"));
1672
+ return n ? n[1] : null;
1673
+ }
1674
+ function $(t, e) {
1675
+ const n = t.match(new RegExp(`\\b${e}\\s*=\\s*["']?(-?[\\d.]+)`, "i"));
1676
+ return n ? Number(n[1]) : 0;
1677
+ }
1678
+ function Vt(t) {
1679
+ return /\bdata-interactive\s*=\s*["']?(true|1|yes)/i.test(t);
1680
+ }
1681
+ function fr(t) {
1682
+ return [P(t, "id"), P(t, "data-name")].filter(
1683
+ (e) => !!e
1684
+ );
1685
+ }
1686
+ function dr(t) {
1687
+ return t.some(St) ? { interactiveContainer: !1, nonInteractiveContainer: !0, storeFolder: !1 } : t.some(de) ? { interactiveContainer: !0, nonInteractiveContainer: !1, storeFolder: !1 } : t.some(he) ? { interactiveContainer: !1, nonInteractiveContainer: !1, storeFolder: !0 } : { interactiveContainer: !1, nonInteractiveContainer: !1, storeFolder: !1 };
1688
+ }
1689
+ function hr(t) {
1690
+ const e = t.trim().split(/[\s,]+/).map(Number);
1691
+ if (e.length < 4) return "";
1692
+ let n = `M ${e[0]} ${e[1]}`;
1693
+ for (let r = 2; r < e.length; r += 2)
1694
+ n += ` L ${e[r]} ${e[r + 1]}`;
1695
+ return n += " Z", n;
1696
+ }
1697
+ function yr(t, e, n, r) {
1698
+ return `M ${t} ${e} L ${n} ${r}`;
1699
+ }
1700
+ function pr(t, e) {
1701
+ if (t === "path")
1702
+ return P(e, "d") ?? void 0;
1703
+ if (t === "polygon" || t === "polyline") {
1704
+ const n = P(e, "points");
1705
+ return n ? hr(n) : void 0;
1706
+ }
1707
+ if (t === "line")
1708
+ return yr(
1709
+ $(e, "x1"),
1710
+ $(e, "y1"),
1711
+ $(e, "x2"),
1712
+ $(e, "y2")
1713
+ );
1714
+ if (t === "rect") {
1715
+ const n = $(e, "x"), r = $(e, "y"), o = $(e, "width"), i = $(e, "height");
1716
+ return `M ${n} ${r} L ${n + o} ${r} L ${n + o} ${r + i} L ${n} ${r + i} Z`;
1717
+ }
1718
+ }
1719
+ function mr(t) {
1720
+ const e = Jn(t).replace(/<!--[\s\S]*?-->/g, ""), n = e.match(/viewBox\s*=\s*["']([^"']+)["']/i), r = Un(n == null ? void 0 : n[1]), o = [], i = [], l = [], c = [];
1721
+ let s = 0;
1722
+ const h = () => c.some((m) => m.routeContainer), p = () => {
1723
+ for (let I = c.length - 1; I >= 0; I--) {
1724
+ const _ = c[I].style;
1725
+ if (_.fill || _.stroke || _.strokeWidth != null || _.opacity != null)
1726
+ break;
1727
+ }
1728
+ let m = {};
1729
+ for (const I of c)
1730
+ m = dt(m, I.style);
1731
+ return m;
1732
+ }, a = () => {
1733
+ for (let m = c.length - 1; m >= 0; m--) {
1734
+ if (c[m].nonInteractiveContainer) return !1;
1735
+ if (c[m].interactiveContainer || c[m].storeFolder) return !0;
1736
+ }
1737
+ return !1;
1738
+ }, x = () => c.length > 0 ? c[c.length - 1].matrix : bt, u = () => {
1739
+ for (let m = c.length - 1; m >= 0; m--) {
1740
+ const I = c[m];
1741
+ if (!yt(I) && I.id) {
1742
+ I.hasNamedChild = !0;
1743
+ return;
1744
+ }
1745
+ }
1746
+ }, d = () => {
1747
+ for (let m = c.length - 1; m >= 0; m--) {
1748
+ const I = c[m];
1749
+ if (!yt(I) && I.id)
1750
+ return I;
1751
+ }
1752
+ return null;
1753
+ }, f = (m) => {
1754
+ if (m.routeContainer) {
1755
+ for (const I of m.collectedPaths)
1756
+ Ht("path", I) && y("path", I);
1757
+ return;
1758
+ }
1759
+ yt(m) || !m.id || m.collectedPaths.length === 0 || (m.hasNamedChild && l.push(
1760
+ `Group ${m.id} mixes named children with ${m.collectedPaths.length} unnamed path(s); the unnamed paths were merged into a single shape "${m.id}" — give them ids if they are separate shapes`
1761
+ ), o.push({
1762
+ id: m.id,
1763
+ tag: "g",
1764
+ d: m.collectedPaths.join(" "),
1765
+ interactive: m.inInteractive,
1766
+ style: dt(p(), m.style)
1767
+ }));
1768
+ }, y = (m, I) => {
1769
+ if (!I) return;
1770
+ const _ = m === "polyline" || m === "polygon" || m === "path" ? I.replace(/\s*Z\s*$/i, "") : I;
1771
+ i.includes(_) || i.push(_);
1772
+ }, b = /<(\/?)(path|polygon|polyline|line|rect|g)\b([^>]*)(\/?)>/gi;
1773
+ let g;
1774
+ for (; (g = b.exec(e)) !== null; ) {
1775
+ const m = g[1] === "/", I = g[2].toLowerCase(), _ = g[3] ?? "", S = g[4] === "/" || /\/\s*$/.test(_);
1776
+ if (m) {
1777
+ if (I === "g") {
1778
+ const C = c.pop();
1779
+ C && f(C);
1780
+ }
1781
+ continue;
1782
+ }
1783
+ if (I === "g") {
1784
+ const C = P(_, "id"), B = fr(_), { interactiveContainer: z, nonInteractiveContainer: M, storeFolder: w } = dr(B), j = a();
1785
+ C && u();
1786
+ const q = {
1787
+ id: C,
1788
+ interactiveContainer: z,
1789
+ nonInteractiveContainer: M,
1790
+ storeFolder: w,
1791
+ inInteractive: z || w || Vt(_) || j && !M,
1792
+ collectedPaths: [],
1793
+ style: zt(_),
1794
+ matrix: Z(x(), Gt(P(_, "transform"))),
1795
+ hasNamedChild: !1,
1796
+ routeContainer: B.some(fe) || h()
1797
+ };
1798
+ S || c.push(q);
1799
+ continue;
1800
+ }
1801
+ const O = P(_, "id"), A = pr(I, _), R = Z(x(), Gt(P(_, "transform"))), E = A && ir(A, R), K = Vt(_) || a(), T = dt(p(), zt(_)), Y = P(_, "data-name");
1802
+ if (h()) {
1803
+ Ht(I, A) && y(I, E);
1804
+ continue;
1805
+ }
1806
+ if (O != null && Xt(O) || Y != null && Xt(Y))
1807
+ continue;
1808
+ if (O) {
1809
+ u(), E && o.push({ id: O, tag: I, d: E, interactive: K, style: T });
1810
+ continue;
1811
+ }
1812
+ if (!E) continue;
1813
+ const L = d();
1814
+ L ? (L.collectedPaths.push(E), !L.style.fill && T.fill && (L.style = T)) : K && (s += 1, o.push({
1815
+ id: `interactive-anon-${s}`,
1816
+ tag: I,
1817
+ d: E,
1818
+ interactive: !0,
1819
+ style: T
1820
+ }));
1821
+ }
1822
+ for (; c.length > 0; )
1823
+ f(c.pop());
1824
+ return { viewbox: r, elements: o, routePathDs: i, warnings: l };
1825
+ }
1826
+ function xr(t) {
1827
+ return t.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 80);
1828
+ }
1829
+ function br(t, e) {
1830
+ var o, i, l, c;
1831
+ const n = rt(e), r = {};
1832
+ return n != null && n.fill ? r.fill = n.fill : (o = t.style) != null && o.fill && (r.fill = t.style.fill), n != null && n.stroke ? r.stroke = n.stroke : (i = t.style) != null && i.stroke && (r.stroke = t.style.stroke), (n == null ? void 0 : n.strokeWidth) != null ? r.strokeWidth = n.strokeWidth : ((l = t.style) == null ? void 0 : l.strokeWidth) != null && (r.strokeWidth = t.style.strokeWidth), ((c = t.style) == null ? void 0 : c.opacity) != null && (r.opacity = t.style.opacity), (n == null ? void 0 : n.extrudeHeight) != null && (r.extrudeHeight = n.extrudeHeight), r;
1833
+ }
1834
+ function Ir(t, e) {
1835
+ return t == null && e == null ? !0 : t == null || e == null ? !1 : Math.abs(t.x - e.x) < 0.01 && Math.abs(t.y - e.y) < 0.01 && Math.abs(t.width - e.width) < 0.01 && Math.abs(t.height - e.height) < 0.01;
1836
+ }
1837
+ function ni(t, e = "floor", n = {}) {
1838
+ const r = mr(t), o = [], i = [], l = [], c = [...r.warnings], s = [];
1839
+ let h = 0, p = 0, a = 0;
1840
+ const x = n.previousViewbox != null && r.viewbox != null && !Ir(n.previousViewbox, r.viewbox);
1841
+ x && c.push(
1842
+ "SVG viewBox differs from the stored artboard — re-upload blocked until the designer restores the original viewBox"
1843
+ );
1844
+ for (const u of r.elements) {
1845
+ if (ye(u.id)) continue;
1846
+ let { kind: d, guessed: f } = ur(u.id, e);
1847
+ u.interactive && !d && (d = "unit", f = !0);
1848
+ const y = {
1849
+ sourceSvgId: u.id,
1850
+ kind: d,
1851
+ guessed: f
1852
+ };
1853
+ if (!d)
1854
+ if (i.push(u.id), e === "floor")
1855
+ d = "decor", y.kind = "decor", y.message = "No matching prefix; imported as decor (floor mode)";
1856
+ else {
1857
+ y.message = "No matching prefix; skipped (outdoor decor stays in SVG)", o.push(y);
1858
+ continue;
1859
+ }
1860
+ if (!u.d) {
1861
+ c.push(`Element ${u.id} has no drawable geometry`);
1862
+ continue;
1863
+ }
1864
+ if (e === "base") {
1865
+ const m = rt(u.id) != null;
1866
+ if (!(!m && (ar.includes(d) || !!u.interactive))) {
1867
+ o.push({
1868
+ ...y,
1869
+ message: m ? "Static decoration — rendered from outdoor SVG" : "Decoration — not persisted; rendered from outdoor SVG"
1870
+ });
1871
+ continue;
1872
+ }
1873
+ }
1874
+ f && (l.push(y), y.message = y.message ?? "Guessed kind from interactive/fallback rule"), o.push(y), d === "walkable" && h++, d === "void" && p++, d === "unit" && a++;
1875
+ const b = Vn([u.d]), g = Ot(b);
1876
+ s.push({
1877
+ key: xr(u.id),
1878
+ kind: d,
1879
+ geometry: b,
1880
+ bbox: g,
1881
+ sourceSvgId: u.id,
1882
+ style: br(u, u.id)
1883
+ });
1884
+ }
1885
+ return e === "floor" && h === 0 && c.push(
1886
+ "No walkable layer found — auto-skeleton will be unavailable for this level"
1887
+ ), {
1888
+ report: {
1889
+ classified: o,
1890
+ unrecognized: i,
1891
+ guessed: l,
1892
+ walkableCount: h,
1893
+ voidCount: p,
1894
+ unitCount: a,
1895
+ warnings: c
1896
+ },
1897
+ shapes: s,
1898
+ viewbox: r.viewbox,
1899
+ routePathDs: r.routePathDs,
1900
+ viewBoxChanged: x
1901
+ };
1902
+ }
1903
+ function ri(t, e, n, r = {}) {
1904
+ const o = r.driftThreshold ?? lr, i = new Map(
1905
+ e.filter((s) => s.sourceSvgId).map((s) => [s.sourceSvgId, s])
1906
+ ), l = /* @__PURE__ */ new Set(), c = [];
1907
+ for (const s of t) {
1908
+ const h = i.get(s.sourceSvgId);
1909
+ if (l.add(s.sourceSvgId), !h)
1910
+ c.push({
1911
+ sourceSvgId: s.sourceSvgId,
1912
+ change: "added",
1913
+ newKind: s.kind
1914
+ });
1915
+ else if (h.kind !== s.kind)
1916
+ c.push({
1917
+ sourceSvgId: s.sourceSvgId,
1918
+ change: "kind_changed",
1919
+ existingShapeId: h.id,
1920
+ existingKind: h.kind,
1921
+ newKind: s.kind,
1922
+ preserve: { key: h.key, assignment: !0, anchors: !0 },
1923
+ geometryLocked: h.geometryLocked
1924
+ });
1925
+ else {
1926
+ let p = "unchanged";
1927
+ if (h.bbox) {
1928
+ const a = (h.bbox.minX + h.bbox.maxX) / 2, x = (h.bbox.minY + h.bbox.maxY) / 2, u = Wn(s.geometry);
1929
+ Math.hypot(u.x - a, u.y - x) > o && (p = "moved");
1930
+ }
1931
+ c.push({
1932
+ sourceSvgId: s.sourceSvgId,
1933
+ change: p,
1934
+ existingShapeId: h.id,
1935
+ existingKind: h.kind,
1936
+ newKind: s.kind,
1937
+ preserve: { key: h.key, assignment: !0, anchors: !0 },
1938
+ geometryLocked: h.geometryLocked
1939
+ });
1940
+ }
1941
+ }
1942
+ for (const s of e)
1943
+ s.sourceSvgId && !l.has(s.sourceSvgId) && c.push({
1944
+ sourceSvgId: s.sourceSvgId,
1945
+ change: "removed",
1946
+ existingShapeId: s.id,
1947
+ existingKind: s.kind,
1948
+ geometryLocked: s.geometryLocked
1949
+ });
1950
+ return {
1951
+ items: c,
1952
+ shapes: t,
1953
+ viewbox: n
1954
+ };
1955
+ }
1956
+ const v = 1e-6, gr = 15 * Math.PI / 180, _r = 1e-3, tt = Math.PI * 2;
1957
+ function Wt(t, e) {
1958
+ return Math.abs(t.x - e.x) < v && Math.abs(t.y - e.y) < v;
1959
+ }
1960
+ function pt(t, e) {
1961
+ return { x: t.x + e.x, y: t.y + e.y };
1962
+ }
1963
+ function Ut(t, e) {
1964
+ return { x: t.x - e.x, y: t.y - e.y };
1965
+ }
1966
+ function et(t, e) {
1967
+ return { x: t.x * e, y: t.y * e };
1968
+ }
1969
+ function mt(t, e, n) {
1970
+ return {
1971
+ x: t.x + Math.cos(n) * e,
1972
+ y: t.y + Math.sin(n) * e
1973
+ };
1974
+ }
1975
+ function kr(t) {
1976
+ const e = [];
1977
+ for (const n of t) {
1978
+ const r = e[e.length - 1];
1979
+ r && Wt(r, n) || e.push(n);
1980
+ }
1981
+ return e.length >= 2 && Wt(e[0], e[e.length - 1]) && e.pop(), e;
1982
+ }
1983
+ function oi(t, e) {
1984
+ const n = te(e), r = kr(t);
1985
+ if (r.length < 3 || n <= 0) return t;
1986
+ const o = r.length, i = new Array(o), l = new Array(o), c = new Array(o), s = new Array(o), h = new Array(o).fill(0), p = new Array(o).fill(0), a = new Array(o).fill(!1);
1987
+ for (let u = 0; u < o; u++) {
1988
+ const d = r[(u - 1 + o) % o], f = r[u], y = r[(u + 1) % o], b = D(d, f), g = D(f, y);
1989
+ if (c[u] = g, b < v || g < v) {
1990
+ i[u] = { x: 1, y: 0 }, l[u] = { x: 1, y: 0 }, s[u] = 0;
1991
+ continue;
1992
+ }
1993
+ i[u] = et(Ut(f, d), 1 / b), l[u] = et(Ut(y, f), 1 / g);
1994
+ const m = i[u].x * l[u].y - i[u].y * l[u].x, I = i[u].x * l[u].x + i[u].y * l[u].y;
1995
+ s[u] = Math.atan2(m, I);
1996
+ const _ = Math.abs(s[u]);
1997
+ if (_ < gr) continue;
1998
+ const S = Math.PI - _, O = Math.tan(S / 2);
1999
+ if (O < v || S <= v || S >= Math.PI - v) continue;
2000
+ const A = n / O;
2001
+ h[u] = A, p[u] = A, a[u] = !0;
2002
+ }
2003
+ for (let u = 0; u < o; u++) {
2004
+ const d = (u + 1) % o, f = p[u] + h[d], y = Math.max(0, c[u] - _r);
2005
+ if (f <= y || f <= v) continue;
2006
+ const b = y / f;
2007
+ p[u] *= b, h[d] *= b;
2008
+ }
2009
+ const x = [];
2010
+ for (let u = 0; u < o; u++) {
2011
+ const d = r[u], f = Math.min(h[u], p[u]), y = Math.abs(s[u]), b = Math.PI - y, g = f * Math.tan(b / 2);
2012
+ if (!a[u] || g < v || f < v) {
2013
+ x.push({ ...d });
2014
+ continue;
2015
+ }
2016
+ const m = pt(d, et(i[u], -f)), I = pt(d, et(l[u], f)), _ = s[u] > 0 ? 1 : -1, S = pt(m, {
2017
+ x: -i[u].y * _ * g,
2018
+ y: i[u].x * _ * g
2019
+ }), O = Math.atan2(m.y - S.y, m.x - S.x), A = Math.atan2(I.y - S.y, I.x - S.x), R = (A - O + tt) % tt, E = (O - A + tt) % tt, K = mt(S, g, O + R / 2), T = mt(S, g, O - E / 2), Y = D(K, d) <= D(T, d), L = Y ? R : E, C = Math.max(8, Math.min(28, Math.ceil(L * g / 2)));
2020
+ for (let B = 0; B <= C; B++) {
2021
+ const z = B / C, M = Y ? O + L * z : O - L * z;
2022
+ x.push(mt(S, g, M));
2023
+ }
2024
+ }
2025
+ return x;
2026
+ }
2027
+ function Or(t, e, n) {
2028
+ const r = t.connectorId ?? e.connectorId;
2029
+ return r == null ? void 0 : n.get(r);
2030
+ }
2031
+ function Sr(t, e, n, r) {
2032
+ var o;
2033
+ return e.levelId === n.levelId ? !0 : t.kind !== "connector" ? !1 : ve(
2034
+ (o = Or(e, n, r)) == null ? void 0 : o.kind
2035
+ );
2036
+ }
2037
+ function Ar(t, e, n = []) {
2038
+ const r = me(), o = new Map(t.map((s) => [s.id, s])), i = new Map(n.map((s) => [s.id, s])), l = t.map((s) => ({
2039
+ id: s.id,
2040
+ levelId: s.levelId,
2041
+ x: s.x,
2042
+ y: s.y,
2043
+ kind: s.kind,
2044
+ shapeId: s.shapeId,
2045
+ connectorId: s.connectorId
2046
+ }));
2047
+ for (const s of l)
2048
+ r.addNode(s.id, s);
2049
+ const c = [];
2050
+ for (const s of e) {
2051
+ const h = o.get(s.fromAnchorId), p = o.get(s.toAnchorId);
2052
+ if (!h || !p || !Sr(s, h, p, i)) continue;
2053
+ let a = s.weight;
2054
+ a == null && (a = D(h, p), h.levelId !== p.levelId && (a += xt));
2055
+ let x = s.accessible;
2056
+ if (s.kind === "connector" && h.connectorId != null) {
2057
+ const d = i.get(h.connectorId);
2058
+ d && (x = d.accessible);
2059
+ }
2060
+ const u = {
2061
+ id: s.id,
2062
+ from: s.fromAnchorId,
2063
+ to: s.toAnchorId,
2064
+ weight: a,
2065
+ directed: s.directed,
2066
+ accessible: x,
2067
+ kind: s.kind
2068
+ };
2069
+ c.push(u), r.addLink(s.fromAnchorId, s.toAnchorId, u), s.directed || r.addLink(s.toAnchorId, s.fromAnchorId, u);
2070
+ }
2071
+ return { graph: r, nodes: l, edges: c, anchorById: o };
2072
+ }
2073
+ function Cr(t, e, n, r = {}) {
2074
+ const { graph: o, anchorById: i } = t;
2075
+ if (!i.has(e) || !i.has(n))
2076
+ return null;
2077
+ const c = xe.nba(o, {
2078
+ oriented: !0,
2079
+ distance(u, d, f) {
2080
+ const y = f.data;
2081
+ return r.accessibleOnly && y && !y.accessible ? Number.POSITIVE_INFINITY : (y == null ? void 0 : y.weight) ?? 1;
2082
+ },
2083
+ heuristic(u, d) {
2084
+ const f = i.get(u.id), y = i.get(d.id);
2085
+ if (!f || !y) return 0;
2086
+ let b = D(f, y);
2087
+ return f.levelId !== y.levelId && (b += xt), b;
2088
+ }
2089
+ }).find(e, n);
2090
+ if (!c || c.length === 0) return null;
2091
+ const h = c.reverse().map((u) => u.id), p = [], a = [];
2092
+ let x = 0;
2093
+ for (let u = 0; u < h.length; u++) {
2094
+ const d = i.get(h[u]);
2095
+ if (p.push({ x: d.x, y: d.y, levelId: d.levelId }), u > 0) {
2096
+ const f = i.get(h[u - 1]);
2097
+ x += D(f, d), f.levelId !== d.levelId && (x += xt, a.push({
2098
+ fromLevelId: f.levelId,
2099
+ toLevelId: d.levelId,
2100
+ connectorId: d.connectorId ?? f.connectorId
2101
+ }));
2102
+ }
2103
+ }
2104
+ return { anchorIds: h, points: p, totalWeight: x, levelChanges: a };
2105
+ }
2106
+ function It(t) {
2107
+ const e = /* @__PURE__ */ new Set(), n = [];
2108
+ for (const r of t)
2109
+ !Number.isFinite(r) || e.has(r) || (e.add(r), n.push(r));
2110
+ return n;
2111
+ }
2112
+ function ii(t, e) {
2113
+ return t.filter((n) => n.shapeId === e).map((n) => n.id);
2114
+ }
2115
+ function si(t, e) {
2116
+ const n = [];
2117
+ for (const r of t) {
2118
+ const o = /* @__PURE__ */ new Set();
2119
+ for (const i of r.shapes)
2120
+ e(i) && o.add(i.id);
2121
+ if (o.size !== 0)
2122
+ for (const i of r.anchors)
2123
+ i.shapeId != null && o.has(i.shapeId) && n.push(i.id);
2124
+ }
2125
+ return n;
2126
+ }
2127
+ function Er(t, e) {
2128
+ const n = t.anchorById.get(e);
2129
+ if (!n) return [];
2130
+ if (n.shapeId == null) return [e];
2131
+ const r = t.nodes.filter((o) => o.shapeId === n.shapeId).map((o) => o.id);
2132
+ return r.length > 0 ? r : [e];
2133
+ }
2134
+ function Zt(t, e) {
2135
+ const n = /* @__PURE__ */ new Set();
2136
+ for (const r of It(e))
2137
+ for (const o of Er(t, r))
2138
+ n.add(o);
2139
+ return [...n];
2140
+ }
2141
+ function Rr(t, e, n, r = {}) {
2142
+ const o = It(e), i = It(n);
2143
+ if (o.length === 0 || i.length === 0) return null;
2144
+ let l = null;
2145
+ for (const c of o)
2146
+ for (const s of i) {
2147
+ const h = Cr(t, c, s, r);
2148
+ h && (!l || h.totalWeight < l.totalWeight) && (l = h);
2149
+ }
2150
+ return l;
2151
+ }
2152
+ function Lr(t, e, n, r = {}) {
2153
+ return Rr(
2154
+ t,
2155
+ Zt(t, e),
2156
+ Zt(t, n),
2157
+ r
2158
+ );
2159
+ }
2160
+ function ci(t, e, n, r = {}) {
2161
+ return Lr(
2162
+ t,
2163
+ [e],
2164
+ n,
2165
+ r
2166
+ );
2167
+ }
2168
+ function ai(t) {
2169
+ const e = Ye(t.theme), n = new Map(
2170
+ t.assignments.map((s) => [s.shapeId, s])
2171
+ ), r = new Map(
2172
+ (t.retailers ?? []).map((s) => [s.id, s])
2173
+ ), o = t.resolveSvgUrl ?? ((s) => s), i = t.levels.filter((s) => s.isActive).sort((s, h) => s.ordering - h.ordering).map((s) => {
2174
+ const h = t.shapes.filter((a) => a.levelId === s.id).map((a) => {
2175
+ const x = ue(a.geometry), u = n.get(a.id) ?? null, d = (u == null ? void 0 : u.retailerId) != null ? r.get(u.retailerId) ?? null : null, f = d && !t.persistMediaKeys ? { ...d, logoKey: null } : d;
2176
+ return {
2177
+ ...a,
2178
+ geometry: x,
2179
+ bbox: x === a.geometry ? a.bbox : Ot(x),
2180
+ assignment: u,
2181
+ label: ne(a, u, f)
2182
+ };
2183
+ }), p = t.anchors.filter((a) => a.levelId === s.id);
2184
+ return {
2185
+ id: s.id,
2186
+ buildingId: s.buildingId,
2187
+ kind: s.kind,
2188
+ name: s.name,
2189
+ levelIndex: s.levelIndex,
2190
+ ordering: s.ordering,
2191
+ sourceSvgUrl: o(s.sourceSvgKey) ?? s.sourceSvgUrl ?? null,
2192
+ viewbox: s.sourceViewbox,
2193
+ transform: s.transform,
2194
+ shapes: h,
2195
+ anchors: p
2196
+ };
2197
+ }), { nodes: l, edges: c } = Ar(
2198
+ t.anchors,
2199
+ t.edges,
2200
+ t.connectors
2201
+ );
2202
+ return {
2203
+ version: 2,
2204
+ revisionId: t.revisionId,
2205
+ revisionNumber: t.revisionNumber,
2206
+ centerId: t.centerId,
2207
+ mapId: t.mapId,
2208
+ theme: e,
2209
+ baseSvgUrl: t.baseSvgUrl,
2210
+ baseViewbox: t.baseViewbox,
2211
+ buildings: t.buildings,
2212
+ levels: i,
2213
+ connectors: t.connectors,
2214
+ amenities: t.amenities.filter((s) => s.isActive),
2215
+ retailers: (t.retailers ?? []).map(
2216
+ (s) => vr(s, !!t.persistMediaKeys)
2217
+ ),
2218
+ graph: { nodes: l, edges: c },
2219
+ responsiveOverrides: t.responsiveOverrides,
2220
+ publishedAt: t.publishedAt ?? (/* @__PURE__ */ new Date()).toISOString()
2221
+ };
2222
+ }
2223
+ function vr(t, e) {
2224
+ return {
2225
+ id: t.id,
2226
+ name: t.name,
2227
+ location: t.location ?? null,
2228
+ logoUrl: e ? null : t.logoUrl ?? null,
2229
+ logoKey: e ? t.logoKey ?? null : null,
2230
+ phone: t.phone ?? null,
2231
+ description: t.description ?? null,
2232
+ globalRetailerId: t.globalRetailerId ?? null
2233
+ };
2234
+ }
2235
+ function li(t) {
2236
+ let e = !1;
2237
+ const n = t.levels.map((r) => {
2238
+ let o = !1;
2239
+ const i = r.shapes.map((l) => {
2240
+ const c = ue(l.geometry), s = ne(l, l.assignment), h = c !== l.geometry, p = s !== l.label;
2241
+ return !h && !p ? l : (o = !0, {
2242
+ ...l,
2243
+ geometry: c,
2244
+ bbox: h ? Ot(c) : l.bbox,
2245
+ label: s
2246
+ });
2247
+ });
2248
+ return o ? (e = !0, { ...r, shapes: i }) : r;
2249
+ });
2250
+ return e ? { ...t, levels: n } : t;
2251
+ }
2252
+ const ui = [
2253
+ "admin_portal",
2254
+ "desktop",
2255
+ "tablet",
2256
+ "mobile",
2257
+ "display_app"
2258
+ ], fi = [
2259
+ { id: "admin_portal", label: "Admin Portal" },
2260
+ { id: "desktop", label: "Desktop" },
2261
+ { id: "tablet", label: "Tablet" },
2262
+ { id: "mobile", label: "Mobile" },
2263
+ { id: "display_app", label: "Kiosk App" }
2264
+ ], Nr = 1024, Tr = 767;
2265
+ function di(t) {
2266
+ return t === "admin_portal" || t === "display_app" || t === "desktop" || t === "tablet" || t === "mobile";
2267
+ }
2268
+ function hi(t, e) {
2269
+ return t === "PORTAL_ASSIGN" ? "admin_portal" : t === "DISPLAY_APP" ? "display_app" : e > Nr ? "desktop" : e > Tr ? "tablet" : "mobile";
2270
+ }
2271
+ function Mr(t, e) {
2272
+ return `${t ?? "none"}:${e}`;
2273
+ }
2274
+ function yi(t, e, n) {
2275
+ return `${n ? "capture" : "viewer"}:${Mr(t, e)}`;
2276
+ }
2277
+ function jt(t) {
2278
+ return t ? t.x === 0 && t.y === 0 && t.z === 0 : !0;
2279
+ }
2280
+ function pe(t) {
2281
+ var n;
2282
+ if (!t) return !0;
2283
+ const e = (n = t.camera) == null ? void 0 : n.zoom;
2284
+ return typeof e == "number" && Number.isFinite(e) && e > 0 ? !1 : jt(t.camera) && jt(t.controls);
2285
+ }
2286
+ function pi(t, e, n) {
2287
+ if (!(t != null && t.length) || e == null) return null;
2288
+ const r = t.find(
2289
+ (o) => o.levelId === e && o.device === n
2290
+ );
2291
+ return !r || pe(r) ? null : r;
2292
+ }
2293
+ function mi(t) {
2294
+ const e = t.camera.zoom;
2295
+ return {
2296
+ zoom: typeof e == "number" && Number.isFinite(e) && e > 0 ? e : 0,
2297
+ position: [t.camera.x, t.camera.y, t.camera.z],
2298
+ target: [t.controls.x, t.controls.y, t.controls.z]
2299
+ };
2300
+ }
2301
+ function xi(t) {
2302
+ return {
2303
+ camera: {
2304
+ x: t.position[0],
2305
+ y: t.position[1],
2306
+ z: t.position[2],
2307
+ zoom: t.zoom
2308
+ },
2309
+ controls: {
2310
+ x: t.target[0],
2311
+ y: t.target[1],
2312
+ z: t.target[2]
2313
+ }
2314
+ };
2315
+ }
2316
+ const wr = {
2317
+ x: 0,
2318
+ y: 0,
2319
+ z: 0,
2320
+ zoom: 0
2321
+ }, Pr = { x: 0, y: 0, z: 0 };
2322
+ function bi(t, e) {
2323
+ return {
2324
+ levelId: t,
2325
+ device: e,
2326
+ camera: { ...wr },
2327
+ controls: { ...Pr }
2328
+ };
2329
+ }
2330
+ function Fr(t, e) {
2331
+ const n = {
2332
+ id: e.id ?? 0,
2333
+ mapId: e.mapId ?? 0,
2334
+ levelId: e.levelId,
2335
+ device: e.device,
2336
+ camera: e.camera,
2337
+ controls: e.controls
2338
+ }, r = t.findIndex(
2339
+ (i) => i.levelId === e.levelId && i.device === e.device
2340
+ );
2341
+ if (r < 0) return [...t, n];
2342
+ const o = t.slice();
2343
+ return o[r] = {
2344
+ ...t[r],
2345
+ ...n,
2346
+ id: e.id ?? t[r].id,
2347
+ mapId: e.mapId ?? t[r].mapId
2348
+ }, o;
2349
+ }
2350
+ function Ii(t, e) {
2351
+ let n = t;
2352
+ for (const r of e) {
2353
+ if (pe(r)) {
2354
+ n = n.filter(
2355
+ (o) => !(o.levelId === r.levelId && o.device === r.device)
2356
+ );
2357
+ continue;
2358
+ }
2359
+ n = Fr(n, r);
2360
+ }
2361
+ return n;
2362
+ }
2363
+ export {
2364
+ rn as $,
2365
+ We as A,
2366
+ Mn as B,
2367
+ He as C,
2368
+ ot as D,
2369
+ wr as E,
2370
+ xt as F,
2371
+ ei as G,
2372
+ yo as H,
2373
+ Br as I,
2374
+ bn as J,
2375
+ tr as K,
2376
+ Ur as L,
2377
+ Ao as M,
2378
+ $n as N,
2379
+ bo as O,
2380
+ Yt as P,
2381
+ Bt as Q,
2382
+ Nr as R,
2383
+ sn as S,
2384
+ gt as T,
2385
+ je as U,
2386
+ Gr as V,
2387
+ qt as W,
2388
+ nn as X,
2389
+ N as Y,
2390
+ tn as Z,
2391
+ re as _,
2392
+ Hr as a,
2393
+ vo as a$,
2394
+ fo as a0,
2395
+ ro as a1,
2396
+ lo as a2,
2397
+ Mt as a3,
2398
+ Dn as a4,
2399
+ qo as a5,
2400
+ Co as a6,
2401
+ Vn as a7,
2402
+ ho as a8,
2403
+ ee as a9,
2404
+ Rr as aA,
2405
+ Lr as aB,
2406
+ wo as aC,
2407
+ jo as aD,
2408
+ Oo as aE,
2409
+ it as aF,
2410
+ $o as aG,
2411
+ Ot as aH,
2412
+ Wn as aI,
2413
+ pn as aJ,
2414
+ mn as aK,
2415
+ un as aL,
2416
+ xo as aM,
2417
+ ni as aN,
2418
+ Jn as aO,
2419
+ oe as aP,
2420
+ Vo as aQ,
2421
+ Qe as aR,
2422
+ di as aS,
2423
+ pe as aT,
2424
+ jt as aU,
2425
+ Ge as aV,
2426
+ $e as aW,
2427
+ Hn as aX,
2428
+ er as aY,
2429
+ de as aZ,
2430
+ ye as a_,
2431
+ Kn as aa,
2432
+ Wr as ab,
2433
+ Ke as ac,
2434
+ te as ad,
2435
+ ur as ae,
2436
+ Qr as af,
2437
+ dn as ag,
2438
+ ai as ah,
2439
+ Ar as ai,
2440
+ uo as aj,
2441
+ Yr as ak,
2442
+ _t as al,
2443
+ Jr as am,
2444
+ xn as an,
2445
+ hi as ao,
2446
+ ri as ap,
2447
+ D as aq,
2448
+ bi as ar,
2449
+ to as as,
2450
+ Dt as at,
2451
+ Zt as au,
2452
+ oi as av,
2453
+ ci as aw,
2454
+ Cr as ax,
2455
+ On as ay,
2456
+ pi as az,
2457
+ Xe as b,
2458
+ Lt as b$,
2459
+ St as b0,
2460
+ V as b1,
2461
+ fe as b2,
2462
+ Ht as b3,
2463
+ Xt as b4,
2464
+ po as b5,
2465
+ he as b6,
2466
+ W as b7,
2467
+ kt as b8,
2468
+ ve as b9,
2469
+ eo as bA,
2470
+ mr as bB,
2471
+ Gt as bC,
2472
+ Un as bD,
2473
+ le as bE,
2474
+ Yn as bF,
2475
+ Qo as bG,
2476
+ Pt as bH,
2477
+ wt as bI,
2478
+ fn as bJ,
2479
+ xi as bK,
2480
+ Bn as bL,
2481
+ ne as bM,
2482
+ zt as bN,
2483
+ Zo as bO,
2484
+ rt as bP,
2485
+ Ee as bQ,
2486
+ Nt as bR,
2487
+ io as bS,
2488
+ oo as bT,
2489
+ Pn as bU,
2490
+ Wo as bV,
2491
+ Mr as bW,
2492
+ yi as bX,
2493
+ no as bY,
2494
+ yn as bZ,
2495
+ ln as b_,
2496
+ kn as ba,
2497
+ cn as bb,
2498
+ ao as bc,
2499
+ jr as bd,
2500
+ qr as be,
2501
+ an as bf,
2502
+ Ro as bg,
2503
+ si as bh,
2504
+ Vr as bi,
2505
+ dt as bj,
2506
+ Ii as bk,
2507
+ Ye as bl,
2508
+ Z as bm,
2509
+ Jo as bn,
2510
+ _o as bo,
2511
+ ue as bp,
2512
+ Zr as bq,
2513
+ st as br,
2514
+ Jt as bs,
2515
+ li as bt,
2516
+ Go as bu,
2517
+ vt as bv,
2518
+ $r as bw,
2519
+ mi as bx,
2520
+ Rt as by,
2521
+ so as bz,
2522
+ H as c,
2523
+ In as c0,
2524
+ ii as c1,
2525
+ Fn as c2,
2526
+ So as c3,
2527
+ Er as c4,
2528
+ ti as c5,
2529
+ zr as c6,
2530
+ wn as c7,
2531
+ Ae as c8,
2532
+ X as c9,
2533
+ Fo as cA,
2534
+ Do as cB,
2535
+ Cn as cC,
2536
+ Bo as cD,
2537
+ Ko as cE,
2538
+ zo as cF,
2539
+ Yo as cG,
2540
+ Se as ca,
2541
+ Le as cb,
2542
+ ae as cc,
2543
+ ir as cd,
2544
+ Eo as ce,
2545
+ It as cf,
2546
+ kr as cg,
2547
+ Fr as ch,
2548
+ Ft as ci,
2549
+ Lo as cj,
2550
+ No as ck,
2551
+ ie as cl,
2552
+ se as cm,
2553
+ vn as cn,
2554
+ Mo as co,
2555
+ ko as cp,
2556
+ hn as cq,
2557
+ _n as cr,
2558
+ Po as cs,
2559
+ Tn as ct,
2560
+ Uo as cu,
2561
+ Xo as cv,
2562
+ Ho as cw,
2563
+ To as cx,
2564
+ Ln as cy,
2565
+ mo as cz,
2566
+ Xr as d,
2567
+ An as e,
2568
+ Pr as f,
2569
+ nt as g,
2570
+ bt as h,
2571
+ lr as i,
2572
+ ar as j,
2573
+ Be as k,
2574
+ ze as l,
2575
+ go as m,
2576
+ Io as n,
2577
+ Oe as o,
2578
+ ui as p,
2579
+ fi as q,
2580
+ Tr as r,
2581
+ Ve as s,
2582
+ ce as t,
2583
+ at as u,
2584
+ _e as v,
2585
+ Qt as w,
2586
+ ke as x,
2587
+ Sr as y,
2588
+ co as z
2589
+ };
2590
+ //# sourceMappingURL=responsive.js.map