@eyeon/map 2.0.2 → 2.0.4

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 (183) hide show
  1. package/dist/assets/MapViewer.css +1 -1
  2. package/dist/assets/index.css +1 -1
  3. package/dist/chunks/MapViewer.js +2656 -1290
  4. package/dist/chunks/MapViewer.js.map +1 -1
  5. package/dist/chunks/stacking.js +1496 -873
  6. package/dist/chunks/stacking.js.map +1 -1
  7. package/dist/chunks/wheelZoom.js +259 -0
  8. package/dist/chunks/wheelZoom.js.map +1 -0
  9. package/dist/core/assignment.d.ts +97 -0
  10. package/dist/core/assignment.d.ts.map +1 -0
  11. package/dist/core/color.d.ts +5 -0
  12. package/dist/core/color.d.ts.map +1 -0
  13. package/dist/core/entranceIcon.d.ts +12 -0
  14. package/dist/core/entranceIcon.d.ts.map +1 -0
  15. package/dist/core/filletPolygon.d.ts +10 -0
  16. package/dist/core/filletPolygon.d.ts.map +1 -0
  17. package/dist/core/hostChrome.d.ts +2 -4
  18. package/dist/core/hostChrome.d.ts.map +1 -1
  19. package/dist/core/import/index.d.ts +4 -0
  20. package/dist/core/import/index.d.ts.map +1 -1
  21. package/dist/core/index.d.ts +9 -0
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +160 -219
  24. package/dist/core/index.js.map +1 -1
  25. package/dist/core/labelAlign.d.ts +7 -0
  26. package/dist/core/labelAlign.d.ts.map +1 -0
  27. package/dist/core/layerStyles.d.ts +54 -5
  28. package/dist/core/layerStyles.d.ts.map +1 -1
  29. package/dist/core/mediaUrl.d.ts +3 -0
  30. package/dist/core/mediaUrl.d.ts.map +1 -0
  31. package/dist/core/outdoorDecoration.d.ts +16 -0
  32. package/dist/core/outdoorDecoration.d.ts.map +1 -0
  33. package/dist/core/publish/index.d.ts +6 -4
  34. package/dist/core/publish/index.d.ts.map +1 -1
  35. package/dist/core/routing/graph-tools.d.ts +23 -1
  36. package/dist/core/routing/graph-tools.d.ts.map +1 -1
  37. package/dist/core/routing/pathfinding.d.ts.map +1 -1
  38. package/dist/core/stacking.d.ts +50 -3
  39. package/dist/core/stacking.d.ts.map +1 -1
  40. package/dist/core/types.d.ts +34 -2
  41. package/dist/core/types.d.ts.map +1 -1
  42. package/dist/core/voids.d.ts +41 -0
  43. package/dist/core/voids.d.ts.map +1 -0
  44. package/dist/core/wheelZoom.d.ts +30 -0
  45. package/dist/core/wheelZoom.d.ts.map +1 -0
  46. package/dist/editor/FieldResetButton.d.ts +7 -0
  47. package/dist/editor/FieldResetButton.d.ts.map +1 -0
  48. package/dist/editor/MapEditor.d.ts +13 -3
  49. package/dist/editor/MapEditor.d.ts.map +1 -1
  50. package/dist/editor/canvas/EditorCanvas.d.ts +49 -7
  51. package/dist/editor/canvas/EditorCanvas.d.ts.map +1 -1
  52. package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts +8 -0
  53. package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts.map +1 -0
  54. package/dist/editor/canvas/coords.d.ts +56 -3
  55. package/dist/editor/canvas/coords.d.ts.map +1 -1
  56. package/dist/editor/canvas/editorFill.d.ts +12 -0
  57. package/dist/editor/canvas/editorFill.d.ts.map +1 -0
  58. package/dist/editor/canvas/editorHover.d.ts +18 -0
  59. package/dist/editor/canvas/editorHover.d.ts.map +1 -0
  60. package/dist/editor/canvas/underlayHint.d.ts +13 -0
  61. package/dist/editor/canvas/underlayHint.d.ts.map +1 -0
  62. package/dist/editor/connectorAssignments.d.ts +125 -0
  63. package/dist/editor/connectorAssignments.d.ts.map +1 -0
  64. package/dist/editor/draftOps.d.ts +12 -1
  65. package/dist/editor/draftOps.d.ts.map +1 -1
  66. package/dist/editor/editorSectionReturn.d.ts +12 -0
  67. package/dist/editor/editorSectionReturn.d.ts.map +1 -0
  68. package/dist/editor/ellipseDraw.d.ts +12 -0
  69. package/dist/editor/ellipseDraw.d.ts.map +1 -0
  70. package/dist/editor/entranceIcon.d.ts +15 -0
  71. package/dist/editor/entranceIcon.d.ts.map +1 -0
  72. package/dist/editor/floorsListReturn.d.ts +5 -0
  73. package/dist/editor/floorsListReturn.d.ts.map +1 -0
  74. package/dist/editor/geometryEdit.d.ts +23 -3
  75. package/dist/editor/geometryEdit.d.ts.map +1 -1
  76. package/dist/editor/hexColor.d.ts +6 -0
  77. package/dist/editor/hexColor.d.ts.map +1 -0
  78. package/dist/editor/history.d.ts +31 -0
  79. package/dist/editor/history.d.ts.map +1 -0
  80. package/dist/editor/index.css +1038 -68
  81. package/dist/editor/index.d.ts +6 -4
  82. package/dist/editor/index.d.ts.map +1 -1
  83. package/dist/editor/index.js +8744 -2136
  84. package/dist/editor/index.js.map +1 -1
  85. package/dist/editor/labelText.d.ts +25 -0
  86. package/dist/editor/labelText.d.ts.map +1 -0
  87. package/dist/editor/labels.d.ts +8 -0
  88. package/dist/editor/labels.d.ts.map +1 -1
  89. package/dist/editor/panels/AssignForm.d.ts +17 -0
  90. package/dist/editor/panels/AssignForm.d.ts.map +1 -0
  91. package/dist/editor/panels/AssignmentStyleFields.d.ts +14 -0
  92. package/dist/editor/panels/AssignmentStyleFields.d.ts.map +1 -0
  93. package/dist/editor/panels/BulkAssignForm.d.ts +11 -0
  94. package/dist/editor/panels/BulkAssignForm.d.ts.map +1 -0
  95. package/dist/editor/panels/CatalogKioskForm.d.ts +18 -0
  96. package/dist/editor/panels/CatalogKioskForm.d.ts.map +1 -0
  97. package/dist/editor/panels/ConnectorAssign.d.ts +16 -0
  98. package/dist/editor/panels/ConnectorAssign.d.ts.map +1 -0
  99. package/dist/editor/panels/CopyToLevelButton.d.ts +10 -0
  100. package/dist/editor/panels/CopyToLevelButton.d.ts.map +1 -0
  101. package/dist/editor/panels/EntranceIconForm.d.ts +11 -0
  102. package/dist/editor/panels/EntranceIconForm.d.ts.map +1 -0
  103. package/dist/editor/panels/FloorsPanel.d.ts +4 -0
  104. package/dist/editor/panels/FloorsPanel.d.ts.map +1 -1
  105. package/dist/editor/panels/ImportReviewPanel.d.ts.map +1 -1
  106. package/dist/editor/panels/Inspector.d.ts +24 -2
  107. package/dist/editor/panels/Inspector.d.ts.map +1 -1
  108. package/dist/editor/panels/LeftRail.d.ts +24 -11
  109. package/dist/editor/panels/LeftRail.d.ts.map +1 -1
  110. package/dist/editor/panels/PreviewOverlay.d.ts +9 -3
  111. package/dist/editor/panels/PreviewOverlay.d.ts.map +1 -1
  112. package/dist/editor/panels/TextLabelForm.d.ts +11 -0
  113. package/dist/editor/panels/TextLabelForm.d.ts.map +1 -0
  114. package/dist/editor/panels/formRows.d.ts +41 -0
  115. package/dist/editor/panels/formRows.d.ts.map +1 -0
  116. package/dist/editor/pathRings.d.ts +79 -0
  117. package/dist/editor/pathRings.d.ts.map +1 -0
  118. package/dist/editor/portalSurface.d.ts +37 -3
  119. package/dist/editor/portalSurface.d.ts.map +1 -1
  120. package/dist/editor/previewDocument.d.ts +2 -1
  121. package/dist/editor/previewDocument.d.ts.map +1 -1
  122. package/dist/editor/railAssignments.d.ts +29 -0
  123. package/dist/editor/railAssignments.d.ts.map +1 -0
  124. package/dist/editor/railKiosks.d.ts +27 -0
  125. package/dist/editor/railKiosks.d.ts.map +1 -0
  126. package/dist/editor/railListCopy.d.ts +31 -0
  127. package/dist/editor/railListCopy.d.ts.map +1 -0
  128. package/dist/editor/routeStubs.d.ts +103 -0
  129. package/dist/editor/routeStubs.d.ts.map +1 -0
  130. package/dist/editor/shapeCopy.d.ts +40 -0
  131. package/dist/editor/shapeCopy.d.ts.map +1 -0
  132. package/dist/editor/shapeSelection.d.ts +6 -0
  133. package/dist/editor/shapeSelection.d.ts.map +1 -0
  134. package/dist/editor/snapPoint.d.ts +5 -0
  135. package/dist/editor/snapPoint.d.ts.map +1 -0
  136. package/dist/editor/splitJoin.d.ts +78 -0
  137. package/dist/editor/splitJoin.d.ts.map +1 -0
  138. package/dist/editor/tools.d.ts +46 -7
  139. package/dist/editor/tools.d.ts.map +1 -1
  140. package/dist/fonts/assets.d.ts +4 -0
  141. package/dist/fonts/mapFont.d.ts +5 -0
  142. package/dist/fonts/mapFont.d.ts.map +1 -0
  143. package/dist/fonts/mapFontUrl.d.ts +8 -0
  144. package/dist/fonts/mapFontUrl.d.ts.map +1 -0
  145. package/dist/specialIcons.d.ts +39 -0
  146. package/dist/specialIcons.d.ts.map +1 -0
  147. package/dist/test-maps/shops-at-south-town/BASE - Shops At South Town.ai +6326 -6407
  148. package/dist/test-maps/shops-at-south-town/LF - Shops At South Town.ai +458 -484
  149. package/dist/test-maps/shops-at-south-town/SVG/BASE - Shops At South Town.svg +6 -6
  150. package/dist/test-maps/shops-at-south-town/SVG/LF - Shops At South Town.svg +52 -52
  151. package/dist/test-maps/shops-at-south-town/SVG/UF - Shops At South Town.svg +74 -74
  152. package/dist/test-maps/shops-at-south-town/UF - Shops At South Town.ai +341 -436
  153. package/dist/ui/ModernSelect.d.ts +14 -0
  154. package/dist/ui/ModernSelect.d.ts.map +1 -0
  155. package/dist/ui/selectSearch.d.ts +12 -0
  156. package/dist/ui/selectSearch.d.ts.map +1 -0
  157. package/dist/viewer/MapViewer.d.ts +14 -1
  158. package/dist/viewer/MapViewer.d.ts.map +1 -1
  159. package/dist/viewer/camera.d.ts +85 -1
  160. package/dist/viewer/camera.d.ts.map +1 -1
  161. package/dist/viewer/components/CameraRig.d.ts +18 -1
  162. package/dist/viewer/components/CameraRig.d.ts.map +1 -1
  163. package/dist/viewer/components/LevelMeshes.d.ts +15 -4
  164. package/dist/viewer/components/LevelMeshes.d.ts.map +1 -1
  165. package/dist/viewer/components/MapScene.d.ts +10 -4
  166. package/dist/viewer/components/MapScene.d.ts.map +1 -1
  167. package/dist/viewer/components/OpeningWell.d.ts +7 -0
  168. package/dist/viewer/components/OpeningWell.d.ts.map +1 -0
  169. package/dist/viewer/components/RouteLine.d.ts.map +1 -1
  170. package/dist/viewer/components/SvgVectorLayer.d.ts +5 -3
  171. package/dist/viewer/components/SvgVectorLayer.d.ts.map +1 -1
  172. package/dist/viewer/components/openingGeometry.d.ts +7 -0
  173. package/dist/viewer/components/openingGeometry.d.ts.map +1 -0
  174. package/dist/viewer/index.css +251 -9
  175. package/dist/viewer/index.d.ts +1 -1
  176. package/dist/viewer/index.d.ts.map +1 -1
  177. package/dist/viewer/index.js +5 -5
  178. package/dist/viewer/pointer.d.ts +26 -0
  179. package/dist/viewer/pointer.d.ts.map +1 -0
  180. package/dist/viewer/ui/MapControls.d.ts +11 -3
  181. package/dist/viewer/ui/MapControls.d.ts.map +1 -1
  182. package/dist/viewer/ui/RuntimeChrome.d.ts.map +1 -1
  183. package/package.json +4 -2
@@ -1,124 +1,1124 @@
1
- import { jsx as _, jsxs as ne, Fragment as We } from "react/jsx-runtime";
2
- import { useMemo as ie, useState as ue, useEffect as me, useRef as Ae, useCallback as _e, useImperativeHandle as qe, Suspense as Xe } from "react";
3
- import { f as Ye, N as $e, Q as Oe, V as ve, a7 as Ze, ae as Qe, r as Ke, U as Me, H as Je, a8 as et, a0 as Ge, z as De, v as Te, y as tt, X as nt, E as ot } from "./stacking.js";
4
- import { useThree as rt, Canvas as st } from "@react-three/fiber";
5
- import { OrthographicCamera as it, OrbitControls as at } from "@react-three/drei";
6
- import * as fe from "three";
7
- import { Loader as ct, FileLoader as lt, Matrix3 as ye, Vector2 as Q, Vector3 as ke, Box2 as ut, ShapeUtils as ft, Shape as ht, Path as Ne, BufferGeometry as mt, Float32BufferAttribute as Ee, SRGBColorSpace as dt, ShapePath as pe } from "three";
8
- function pt(u, a, A) {
9
- if (A) return A;
10
- switch (u) {
11
- case "unit":
12
- return a.STORE_DEFAULT_COLOR;
13
- case "walkable":
14
- return a.WALKABLE_COLOR;
1
+ import { jsx as T, jsxs as ct, Fragment as Pe } from "react/jsx-runtime";
2
+ import { useId as Re, useRef as at, useState as dt, useMemo as ot, useCallback as mt, useEffect as lt, useImperativeHandle as Ge, useLayoutEffect as Ve, Suspense as We } from "react";
3
+ import { ad as De, bd as Be, ah as ve, G as He, aj as Ze, a_ as Fe, j as Xe, O as Ue, i as qe, bq as Ye, ao as zt, g as Ke, b5 as Me, ay as je, a9 as Qe, B as Je, a1 as _e, af as Ot, aN as ee, aD as $e, a as tn, D as en, y as nn, z as rn, aA as Mt, b7 as ne, b4 as be, al as on, ax as cn, aw as sn, ar as Zt, az as Ft, bc as an, a8 as ln, bp as un, N as fn, av as Pt, aR as dn, aQ as re, a4 as oe, bn as Rt, bo as It, a0 as hn, aI as mn, M as pn, ab as yn } from "./stacking.js";
4
+ import { useThree as gn, useFrame as An, Canvas as xn } from "@react-three/fiber";
5
+ import { Text as ce, OrthographicCamera as vn, OrbitControls as Mn } from "@react-three/drei";
6
+ import * as rt from "three";
7
+ import { Loader as bn, FileLoader as Cn, Matrix3 as vt, Vector2 as it, Vector3 as Lt, Box2 as wn, ShapeUtils as On, Shape as In, Path as Gt, BufferGeometry as Ln, Float32BufferAttribute as Vt, SRGBColorSpace as Nn, ShapePath as xt } from "three";
8
+ import { createPortal as En } from "react-dom";
9
+ function kn({
10
+ levels: t,
11
+ activeLevelId: e,
12
+ onActiveLevelChange: s,
13
+ onZoomIn: a,
14
+ onZoomOut: d,
15
+ onReset: m,
16
+ showFloors: b = !0,
17
+ showZoomReset: Q = !0,
18
+ floorOptions: x,
19
+ alwaysShowFloors: z = !1
20
+ }) {
21
+ const W = x ?? De(t), k = b && (z ? W.length > 0 : Be(t)), H = Q && ve(t);
22
+ return !k && !H ? null : /* @__PURE__ */ T("div", { className: "eyeon-map-controls", children: /* @__PURE__ */ ct("div", { className: "eyeon-map-controls__stack", children: [
23
+ k && /* @__PURE__ */ T("div", { className: "eyeon-map-controls__floors", role: "tablist", "aria-label": "Floors", children: W.map((G) => {
24
+ const X = G.id === e;
25
+ return /* @__PURE__ */ T(
26
+ "button",
27
+ {
28
+ type: "button",
29
+ role: "tab",
30
+ "aria-selected": X,
31
+ className: X ? "eyeon-map-controls__floor is-active" : "eyeon-map-controls__floor",
32
+ onClick: () => s(G.id),
33
+ children: G.name
34
+ },
35
+ G.id
36
+ );
37
+ }) }),
38
+ H && /* @__PURE__ */ ct(Pe, { children: [
39
+ /* @__PURE__ */ T(
40
+ "button",
41
+ {
42
+ type: "button",
43
+ className: "eyeon-map-controls__reset",
44
+ onClick: m,
45
+ "aria-label": "Reset map",
46
+ children: "Reset"
47
+ }
48
+ ),
49
+ /* @__PURE__ */ ct("div", { className: "eyeon-map-controls__zoom", children: [
50
+ /* @__PURE__ */ T(
51
+ "button",
52
+ {
53
+ type: "button",
54
+ className: "eyeon-map-controls__zoom-btn",
55
+ onClick: d,
56
+ "aria-label": "Zoom out",
57
+ children: "−"
58
+ }
59
+ ),
60
+ /* @__PURE__ */ T(
61
+ "button",
62
+ {
63
+ type: "button",
64
+ className: "eyeon-map-controls__zoom-btn",
65
+ onClick: a,
66
+ "aria-label": "Zoom in",
67
+ children: "+"
68
+ }
69
+ )
70
+ ] })
71
+ ] })
72
+ ] }) });
73
+ }
74
+ const Jr = "Montserrat, sans-serif", se = 1.15, ht = {
75
+ Entrance: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
76
+ <path fill="none" stroke="#444444" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round" d="M8.25 3.75h8.25A3.5 3.5 0 0 1 20 7.25v9.5a3.5 3.5 0 0 1-3.5 3.5H8.25"/>
77
+ <path fill="none" stroke="#444444" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round" d="M3.5 12h12.35M12.2 7.85 16.4 12l-4.2 4.15"/>
78
+ </svg>`,
79
+ Kiosk: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 443.83 787.21">
80
+ <path fill="#444444" d="M451,587.7V8.14H7.14V589.5H111.43V730.89H71.27L38.59,763.58v31.78H416.36V764.93l-34.05-34H345.78V587.7ZM396.91,71.23v452.7H59.85V71.23Z" transform="translate(-7.14 -8.14)" />
81
+ </svg>`,
82
+ Escalator: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 445.3">
83
+ <path fill="#444444" d="M243.4,75.9c21.2,0,38.1-16.8,38.1-38S264.6,0,243.4,0c-21.2,0-38.1,16.8-38.1,38S222.1,75.9,243.4,75.9z M508.5,41.2h-88.7 c-18.5,0-41.9,7.6-56.1,21.7l-82.2,81.9V121c0-51-75.7-50.4-75.7,0v98.2l-71.3,71c-6.5,6.5-7.6,7.1-20.7,7.1H70.2 C26.1,297.2,0,336.8,0,369.9c0,33.6,26.1,75.4,74,75.4h77.9c18.5,0,40.8-7.1,58.8-24.4l228.1-226.7c4.9-4.3,7.6-5.4,15.8-5.4h56.1 c27.2,0,65.3-30.4,65.3-74.8C576.5,70.5,537.9,41.2,508.5,41.2z M504.7,150.8h-47.9c-20.1,0-29.4,2.7-41.4,14.7L185.7,394.3 c-9.3,9.2-21.2,13-36.5,13H73.5c-19.6,0-36.5-16.3-36.5-38c0-21.7,16.3-33.6,33.2-33.6H122c15.2,0,25-4.3,33.7-13L389.3,90 c9.8-9.8,19.1-10.9,35.4-10.9h80c19.6,0,32.7,21.7,32.7,34.7C537.9,126.4,528.6,150.8,504.7,150.8z" />
84
+ </svg>`,
85
+ ATM: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 577.8 577">
86
+ <path fill="#444444" d="M388.7,314c-3.7-10.3-10.3-19.8-17.7-27.2c-7.4-7.4-17.7-14-29.5-19.1c-6.6-2.9-19.2-6.6-39.1-11.8V144.2 c13.3,2.2,22.8,8.1,30.2,16.2c7.4,8.1,11.8,19.9,14,35.3l39.8-5.9c-2.9-24.3-13.3-44.1-30.2-58.1c-13.3-11-31-17.7-53.8-19.8V93.4 h-24.3v18.4c-25.8,2.2-45,9.6-58.2,21.3c-19.9,17.7-29.5,39.7-29.5,67.6c0,15.5,3.7,29.4,10.3,41.9s16.2,22,28.7,28.7 c17,9.6,33.2,16.2,49.4,20.6v121.3c-14.8-1.5-28-8.8-39.1-22.8c-7.4-9.6-13.3-25-16.2-46.3l-39.1,7.4c1.5,20.6,6.6,37.5,15.5,51.5 s19.9,23.5,31.7,30.1c12.5,6.6,28,11,47.9,13.2v39v-0.1V483h22.1v-39c28-0.7,50.1-11,67.1-28.7c17-18.4,25.8-40.4,25.8-67.6 C394.6,336,392.4,324.3,388.7,314z M278.9,145.1v107.2c-17.7-5.2-30.2-11.8-37.6-20.6s-11.1-19.8-11.1-33.1c0-14,4.4-25.7,13.3-35.3 C252.2,153.9,263.7,147.4,278.9,145.1V145h0.7C279.3,145,279.1,145,278.9,145.1z M340,394.2c-9.6,11-22.1,18.4-37.6,19.8l0,0V297.9 c20.6,5.2,34.6,11.8,42,20.6c6.6,8.1,10.3,19.8,10.3,33.8C354.8,369.2,349.6,383.1,340,394.2z" />
87
+ <path fill="#444444" d="M289.8,2.5c-158.7,0-288,128-288,287.2c0,158.3,129.3,287.2,288,287.2s288-128.9,288-287.2S448.6,2.5,289.8,2.5z M289.9,533.9C155,533.9,45.2,424.3,45.2,289.8C45.2,154.5,155,45.7,289.9,45.7s244.7,109.5,244.7,244.1S424.8,533.9,289.9,533.9z" />
88
+ </svg>`,
89
+ Management: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 414.6">
90
+ <path fill="#444444" d="M371.6,180.4c66.8,0,101,58.5,121.4,121.9l16.4,50.4c2.7,8.8-7.5,16.3-16.4,16.3h-56.6l-7.5-27.2 c-17.7-53.1-45-106.2-94.8-125.9c13-8.8,23.9-21.1,30.7-35.4C366.1,180.4,368.8,180.4,371.6,180.4z M441.2,145.7 c64.8,2,98.2,59.2,118.7,121.9l15.7,49.7c2.7,8.8-7.5,17.7-16.4,17.7h-35.5l-12.3-38.1c-16.4-53.1-44.3-106.2-94.8-125.9 C426.2,162.7,434.3,155.2,441.2,145.7z M51.6,334.3H16.8c-9.6,0-19.1-8.2-16.4-17.7l15.7-49.7C35.9,204.2,70.1,147.1,134.9,145 c6.1,9.5,15,18.4,24.6,24.5c-49.8,19.7-77.8,72.8-94.8,125.9L51.6,334.3L51.6,334.3z M437.7,0c35.5,0,64.8,28.6,64.8,64.7 c0,31.3-22.5,57.2-52.5,62.6c3.4-8.8,5.5-18.4,5.5-27.9c0-39.5-27.3-71.5-62.8-81C403.6,6.8,419.3,0,437.7,0L437.7,0z M137.6,0 c17.7,0,34.1,6.8,45,18.4c-35.5,9.5-62.8,41.5-62.8,81c0,9.5,2.1,19.1,5.5,27.9C96,121.9,72.8,96,72.8,64.7 C73.5,28.6,102.1,0,137.6,0L137.6,0z M287.7,0c19.8,0,37.5,8.8,49.8,22.5c-15.7,6.8-29.3,19.1-38.2,34l-3.4,5.5c-2.7,0-5.5,0-7.5,0 c-2,0-6.1,0-8.9,0l-3.4-5.5c-9.6-15-22.5-27.2-38.2-34C250.2,8.9,267.9,0,287.7,0L287.7,0z M287.7,226c66.8,0,101,58.5,122.1,121.9 l15.7,50.4c2.7,8.8-8.2,16.3-16.4,16.3H166.2c-9.6,0-19.8-8.2-16.4-16.3l15.7-50.4C186,284.6,220.8,226,287.7,226z M287.7,81 c35.5,0,64.8,28.6,64.8,64.7s-28.7,64.7-64.8,64.7c-35.5,0-64.8-28.6-64.8-64.7S252.2,81,287.7,81z M138.3,369H82.3 c-9.6,0-19.1-8.2-16.4-16.3l15.7-50.4c21.1-63.3,55.3-121.9,122.1-121.9c2.7,0,5.5,0,7.5,0c6.1,15,17.7,27.2,30.7,35.4 c-49.8,19.7-78.5,72.8-94.8,125.9C147.1,341.8,138.3,369,138.3,369z M203.8,34.7c23.9,0,44.3,12.9,55.9,31.3 c-32.1,12.2-55.9,42.9-55.9,79c0,6.1,0.7,12.2,2.1,18.4h-2.1c-35.5,0-64.8-28.6-64.8-64.7S168.3,34.7,203.8,34.7z M371.6,34.7 c35.5,0,64.8,28.6,64.8,64.7s-29.3,64-64.8,64h-2.7c2.1-6.1,2.7-12.2,2.7-18.4c0-36.8-23.9-66.7-55.9-79 C327.2,47.7,347,34.7,371.6,34.7z" />
91
+ </svg>`,
92
+ PlayArea: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 537.9">
93
+ <path fill="#444444" d="M384.3,137c38,0,68.8-30.7,68.8-68.5S422.3,0,384.3,0s-68.8,30.7-68.8,68.5S346.4,137,384.3,137z" />
94
+ <path fill="#444444" d="M283.3,96c20,26.3,35.9,53.3,67.6,64.4c31.2,11.1,60.5,11.1,83.5-5.3c22.9-16.4,34.7-46.8,54.1-87.2 c18.8-40.4,34.1-48,57-48c23.5,0,31.2,28.1,30.6,39.8s-10.6,31-40,52.7c-49.4,36.3-57.6,108.3-59.4,127.7 c-1.8,19.3-2.9,50.4,17.6,169.2c20.6,118.9-20,125.9-25.3,127.1c-5.3,0.6-21.2,8.2-31.1-16.4c-10-24.6-11.8-91.3-14.1-120 c-2.9-28.7-6.5-70.9-35.9-79c-30-8.2-40.6,39.8-51.7,76.1c-10.6,36.9-40,71.4-72.3,59.1s-29.4-50.4-10-78.5 c19.4-27.5,61.7-57.4,67.6-124.1c5.9-66.8-11.8-69.1-68.2-90.8c-55.8-22.3-60.5-33.4-67.6-48.6s7.6-46.8,31.1-52.7 C239.2,55.1,259.1,63.9,283.3,96L283.3,96z" />
95
+ <path fill="#444444" d="M134.7,251.7c26.9,0,48.8-21.8,48.8-48.6s-21.8-48.6-48.8-48.6s-48.8,21.8-48.8,48.6S107.7,251.7,134.7,251.7z" />
96
+ <path fill="#444444" d="M204,227.8c-15.3,17.6-28.2,35.7-51.1,41.6c-22.9,6.4-43.5,4.7-58.8-8.2c-15.3-12.9-21.7-35.1-32.9-64.4S40,161,23.5,159.8 C7.1,158.7,0,178,0,186.2c-0.6,8.2,5.9,22.3,25.3,39.2C58.2,253.5,60,305.1,60,318.5c0.6,13.5-0.6,35.7-21.7,118.3 s7.1,89.6,10.6,90.8s14.7,7,22.9-10s12.9-63.8,16.5-83.7c3.5-19.9,8.2-49.8,29.4-53.9s26.5,30.4,32.3,56.8 c5.9,26.3,24.7,52.7,47.6,45.7c22.9-7,23.5-34,11.2-54.4c-12.3-20.5-40-43.9-40.6-90.8c-0.6-47.4,12.3-48,52.9-60.3 c40.6-12.3,44.7-20.5,50.5-30.4c5.9-10-2.9-33.4-18.8-38.6C237.5,201.4,222.8,206.7,204,227.8L204,227.8z" />
97
+ </svg>`,
98
+ RestRoom: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 533.9">
99
+ <path fill="#444444" d="M282.3,533.9h9.2V0h-9.2V533.9z" />
100
+ <path fill="#444444" d="M118.2,97.1c25.4-4.6,41.6-30.1,34.7-55.5C146,16.2,122.9,2.3,97.4,6.9S58.1,39.3,62.8,62.4S95.1,104,118.2,97.1z" />
101
+ <path fill="#444444" d="M159.8,145.6h4.6c0,0,2.3,0,2.3,2.3L183,270.4c2.3,9.2,9.2,16.2,18.5,16.2c11.6,0,18.5-9.2,18.5-20.8l-18.5-129.4 c-2.3-13.9-13.9-23.1-27.7-23.1H44.3c-13.9,0-25.4,9.2-27.7,23.1L0.4,265.8c-2.3,11.6,6.9,20.8,18.5,20.8c9.2,0,16.2-6.9,18.5-16.2 l16.2-122.5c0,0,0-2.3,2.3-2.3h4.6c0,0,2.3,0,2.3,2.3L30.4,390.6c0,0,0,2.3,2.3,2.3h37c0,0,2.3,0,2.3,2.3v117.9 c0,9.2,6.9,16.2,16.2,16.2s16.2-6.9,16.2-16.2V393c0,0,0-2.3,2.3-2.3h11.6c0,0,2.3,0,2.3,2.3v117.9c0,9.2,6.9,16.2,16.2,16.2 c9.2,0,16.2-6.9,16.2-16.2V393c0,0,0-2.3,2.3-2.3h30.1c0,0,2.3,0,2.3-2.3l-27.7-242.7l0,0l0,0L159.8,145.6z" />
102
+ <path fill="#444444" d="M497.3,76.3c13.9-23.1,4.6-50.9-16.2-62.4s-50.9-6.9-64.7,16.2c-13.9,23.1-4.6,50.9,16.2,62.4 C455.7,106.3,483.5,99.4,497.3,76.3z" />
103
+ <path fill="#444444" d="M545.9,113.3h-178c-13.9,0-25.4,9.2-27.7,23.1v129.4c0,11.6,9.2,20.8,20.8,20.8s18.5-9.2,18.5-20.8V159.5c0,0,0-2.3,2.3-2.3 h2.3c0,0,2.3,0,2.3,2.3l25.4,161.8v187.2c0,11.6,9.2,20.8,20.8,20.8l0,0c11.6,0,20.8-9.2,20.8-20.8V323.6c0,0,0-2.3,2.3-2.3h6.9 c0,0,2.3,0,2.3,2.3v184.9c0,11.6,9.2,20.8,20.8,20.8l0,0c11.6,0,20.8-9.2,20.8-20.8V321.3l25.4-161.8c0,0,0-2.3,2.3-2.3h-2.3 c0,0,2.3,0,2.3,2.3v106.3c0,11.6,9.2,20.8,20.8,20.8s20.8-9.2,20.8-20.8V136.4C571.4,122.5,559.8,113.3,545.9,113.3L545.9,113.3 L545.9,113.3z" />
104
+ </svg>`,
105
+ FamilyRestRoom: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 522.5">
106
+ <path fill="#444444" d="M119.8,91.5c25-5.9,40.5-30.8,34.6-55.7c-5.9-24.9-30.9-40.4-55.9-34.5S58,32,63.9,56.9S94.8,97.3,119.8,91.5z" />
107
+ <path fill="#444444" d="M160.6,139.1h4.5c0.6,0,1.3,0.6,1.3,1.3l15.3,123.1c1.3,8.9,8.9,15.9,17.8,15.9c10.8,0,19.1-9.5,17.8-20.3l-15.9-128.9 c-1.9-13.3-13.4-24.1-27.4-24.1H43.4c-14,0-25.5,10.2-27.4,24.1L0.1,259.1c-1.3,10.8,7,20.3,17.8,20.3c8.9,0,16.5-7,17.8-15.9 l15.3-123.8c0-0.6,0.6-1.3,1.3-1.3h4.5c0.6,0,1.3,0.6,1.3,1.3L29.4,384.1c0,0.6,0.6,1.3,1.3,1.3H67c0.6,0,1.3,0.6,1.3,1.3v118.1 c0,9.5,7.6,16.5,16.5,16.5c9.5,0,16.5-7.6,16.5-16.5V387.3c0-0.6,0.6-1.3,1.3-1.3h10.8c0.6,0,1.3,0.6,1.3,1.3v118.1 c0,9.5,7.6,16.5,16.5,16.5c9.5,0,16.5-7.6,16.5-16.5V387.3c0-0.6,0.6-1.3,1.3-1.3h36.3c0.6,0,1.3-0.6,1.3-1.3L158,140.3 C159.3,139.7,159.9,139.1,160.6,139.1L160.6,139.1z" />
108
+ <path fill="#444444" d="M498.9,69.8c12.9-22.1,5.4-50.5-16.8-63.4c-22.2-12.9-50.6-5.4-63.6,16.7c-12.9,22.1-5.4,50.5,16.8,63.4 C457.5,99.4,486,91.9,498.9,69.8z" />
109
+ <path fill="#444444" d="M547.9,106.1H369.6c-14,0-25.5,10.2-27.4,24.1v128.9c0,10.8,8.9,19.7,19.7,19.7s19.7-8.9,19.7-19.7v-106 c0-0.6,0.6-1.3,1.3-1.3h2.5c0.6,0,1.3,0.6,1.3,1.3l25.5,162.5v187.3c0,10.8,8.9,19.7,19.7,19.7h0.6c10.8,0,19.7-8.9,19.7-19.7v-186 c0-0.6,0.6-1.3,1.3-1.3h10.8c0.6,0,1.3,0.6,1.3,1.3v186c0,10.8,8.9,19.7,19.7,19.7h0.6c10.8,0,19.7-8.9,19.7-19.7V315.6l25.5-162.5 c0-0.6,0.6-1.3,1.3-1.3h2.6c0.6,0,1.3,0.6,1.3,1.3v106c0,10.8,8.9,19.7,19.7,19.7s19.7-8.9,19.7-19.7V130.2 C573.4,116.2,562,106.1,547.9,106.1L547.9,106.1z" />
110
+ <path fill="#444444" d="M259.6,480l19.7-19.7L251.9,433L229,455.8c-7.6,7.6-5.7,20.3,1.3,27.3l32.5,33.6c12.7,12.7,29.3-5.1,17.2-17.1L259.6,480 L259.6,480z M288.9,347.9c19.1,0,34.4-15.2,34.4-34.3s-15.3-34.3-34.4-34.3s-34.4,15.2-34.4,34.3S269.7,347.9,288.9,347.9z M369.7,405.7l-46.5-46.3c-3.8-3.8-8.3-6.3-14.7-6.3h-41.4c-6.4,0-10.8,2.5-14,6.3l-45.9,45.7c-12.7,12.7,4.5,28.6,17.2,15.9 l28-27.9v26h72.6v-26l28.6,28.6C364.6,433.6,381.8,417.1,369.7,405.7L369.7,405.7z M324.5,433l-27.4,27.3l19.7,19.7l-20.4,20.3 c-12.1,12.1,4.5,29.2,17.2,17.1l32.5-33.6c7-7,8.9-20.3,1.3-27.3C347.4,455.9,324.5,433,324.5,433z" />
111
+ </svg>`,
112
+ Elevator: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 576">
113
+ <path fill="#444444" d="M576,145.2v268.6c-0.1,1.6-0.3,3.1-0.3,4.7c-0.3,33.3-0.6,66.6-0.8,99.9c-0.1,21.1-9.7,37.2-26.7,49 c-7.7,5.4-15.9,9.3-25.9,8c-3.8-0.5-7.7-0.1-11.5-0.1c-115.3,0.1-230.6,0.2-345.9,0.3c-1.1,0-2.2,0.2-3.3,0.3h-16.9 c-1.2-0.1-2.4-0.3-3.6-0.3c-30.2-0.3-60.4-0.6-90.7-0.8c-11.1-0.1-20.7-4.1-29.1-11.2c-8.7-7.4-15.5-16.7-19.9-27.3l-0.2-0.5 c-0.7-1.6-1.1-3.4-1.2-5.4v0C0,492.8,0,455.1,0,417.4c0-124.1,0-248.1,0-372.2c0-0.2,0-0.3,0-0.5c0-1.5,0.3-2.9,0.7-4.2l0,0.1 C8.3,22.5,20.5,8.9,38.7,1c1.2-0.5,2.6-0.9,4-0.9h0c162.8,0,325.6,0,488.4,0c1.5,0,2.8,0.4,4.1,0.9l-0.1,0c3.4,1.4,6.1,2.7,8.8,4.2 l-0.4-0.2c19.7,11.2,30.9,27.8,31.3,50.8c0.4,28.2,0.6,56.3,0.8,84.5C575.7,141.8,575.8,143.5,576,145.2L576,145.2z M536.4,288.6 h0.3c0-56.7,0-113.4,0-170c0-18.2-0.4-36.4-0.7-54.6c-0.1-8-8.4-19.8-15.9-22.7c-1-0.4-2.1-0.6-3.2-0.7h0c-3.2-0.3-6.4-0.6-9.5-0.6 c-25.5-0.4-51-0.9-76.6-1c-96.4-0.2-192.7-0.4-289.1-0.4c-22.9,0-45.8,0.1-68.7,0.3c-3.4,0-6.8,0.1-10,0.9 c-9.9,2.3-17.1,8.3-21.7,17.3c-1,1.9-2,3.9-2.1,5.9c-0.1,149.8-0.1,299.6-0.1,449.4c0,0.9-0.1,2,0.3,2.7c2.7,4.2,5.1,8.6,8.3,12.3 c5.6,6.3,13.2,8.4,21.6,8.4c23.7,0.1,47.5,0.6,71.2,0.6c123.5,0,247,0,370.5,0c0.1,0,0.2,0,0.3,0c1.1,0,2.1-0.2,3-0.6l-0.1,0 c8.3-3.5,15.4-8.4,20.2-16.3c1.2-1.8,2-4.1,2-6.5l0,0C536.4,438.2,536.4,363.4,536.4,288.6L536.4,288.6z" />
114
+ <path fill="#444444" d="M307,277.5l75.9,68.4l0.9-0.2V150.9h49.7v194.8l1,0.3l78.2-67.4c0.1,1,0.2,1.7,0.3,2.4c0.3,19.9,0.6,39.8,0.8,59.7 c0,0,0,0,0,0.1c0,1.4-0.5,2.6-1.4,3.6l0,0c-34.1,32.7-68.2,65.3-102.3,97.9c-0.3,0.3-0.6,0.5-1,0.9c-0.6-0.5-1.3-1-1.9-1.5 c-32.7-30.7-65.5-61.4-98.2-92c-1.4-1.2-2.3-3-2.3-5c0-0.1,0-0.3,0-0.4v0c0.2-20.9,0.3-41.9,0.4-62.8C307,280.5,307,279.4,307,277.5 L307,277.5z" />
115
+ <path fill="#444444" d="M142.2,234.5L67,301.8c-0.1-1.2-0.3-1.9-0.3-2.7c-0.3-20.7-0.7-41.5-1-62.2c0-1.3,0.5-2.5,1.3-3.4l0,0 c33.3-31.4,66.7-62.8,100.1-94.1c0.3-0.3,0.6-0.5,1-0.8c5.9,5.7,11.8,11.3,17.7,16.9c28.1,26.9,56.2,53.9,84.3,80.9 c0.9,0.8,1.4,2,1.5,3.3v0c-0.5,20.2-1.1,40.3-1.6,60.5c0,0.3-0.1,0.7-0.2,1.7l-77.4-67.1l-0.9,0.1v193.9h-48.3v-194L142.2,234.5z" />
116
+ </svg>`,
117
+ Security: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 576 597.6">
118
+ <path fill="#444444" d="M554,80.7L298.5,1.5c-6.6-2-13.2-2-19.9,0L23.2,80.7C9.3,84.7,0,97.9,0,112.4c0,352.5,178.7,436.4,274,481.9 c4.6,2,9.3,3.3,13.9,3.3c4.6,0,9.9-1.3,13.9-3.3c96-45.5,274-129.4,274-481.9C577.2,97.9,567.9,85.3,554,80.7z M288.6,527.6 C197.2,484.1,73.5,411.4,66.2,136.2l222.4-68.6L511,136.8C503.7,412.1,379.3,484.1,288.6,527.6z" />
119
+ <path fill="#444444" d="M278.7,152l-26.5,87.1l-90.7-2.6c-4.6,0-8.6,2.6-9.9,7.3c-1.3,4.6,0,9.2,4,11.9l74.8,51.5L200.6,393c-1.3,4.6,0,9.2,4,11.9 c4,2.6,8.6,2.6,12.6,0l72.1-54.8l72.1,54.8c4,2.6,8.6,2.6,12.6,0c4-2.6,5.3-7.3,4-11.9l-29.8-85.8l74.8-51.5c4-2.6,5.3-7.3,4-11.9 c-1.3-4.6-5.3-7.3-9.9-7.3l-90.7,2l-26.5-87.1c-1.3-4.6-5.3-7.3-9.9-7.3C283.9,144.1,280,147.4,278.7,152L278.7,152z" />
120
+ </svg>`,
121
+ ChildStroller: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 432 370.06">
122
+ <path fill="#444444" d="M130.29,178.61l-42.67,34L33.24,254.13c-15.48,12.09-28.32-2.64-28.32-2.64-12.08-15.86,1.89-26.06,1.89-26.06l68-53.24s7.55-7.93,26.81-2.26l28.7,8.68"/>
123
+ <path fill="#444444" d="M210,111A38.52,38.52,0,1,1,248.48,72.5,38.68,38.68,0,0,1,210,111"/>
124
+ <path fill="#444444" d="M390.84,0a42.88,42.88,0,0,0-24.92,8.31L80.44,235.63a43.71,43.71,0,0,0-13.59,22.28,40.67,40.67,0,0,0,1.89,23.41,47.9,47.9,0,0,0-22.28,41.16A47.58,47.58,0,1,0,94,274.9,41.43,41.43,0,0,0,84.22,276a22.77,22.77,0,0,1-1.51-14.35,25.82,25.82,0,0,1,8.68-13.59l17.37-14,88,29.08a33.54,33.54,0,0,0,42.67-21.53l1.51-4.91,18.88,45.32a47.09,47.09,0,0,0-22.28,40.4,47.58,47.58,0,1,0,47.58-47.58,41.43,41.43,0,0,0-9.82,1.13l-26.43-62.68,43.8-126.12,83.08-66.08a23.7,23.7,0,0,1,15.1-5.29,25.3,25.3,0,0,1,25.3,25.3,25.72,25.72,0,0,1-10.2,20.39,8,8,0,0,0,10.58,12.08A41.37,41.37,0,0,0,390.84,0ZM93.66,301.33A20.77,20.77,0,1,1,72.89,322.1,20.71,20.71,0,0,1,93.66,301.33Zm191.07,0A20.77,20.77,0,1,1,264,322.1,20.71,20.71,0,0,1,284.73,301.33Z"/>
125
+ </svg>`,
126
+ VendingMachine: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 432 594">
127
+ <circle fill="#444444" cx="324" cy="175.5" r="13.5"/>
128
+ <circle fill="#444444" cx="364.5" cy="175.5" r="13.5"/>
129
+ <circle fill="#444444" cx="324" cy="243" r="13.5"/>
130
+ <circle fill="#444444" cx="364.5" cy="243" r="13.5"/>
131
+ <circle fill="#444444" cx="324" cy="310.5" r="13.5"/>
132
+ <circle fill="#444444" cx="364.5" cy="310.5" r="13.5"/>
133
+ <path fill="#444444" d="M216,94.5H67.5C59.4,94.5,54,99.9,54,108c0,8.1,5.4,13.5,13.5,13.5H216c8.1,0,13.5-5.4,13.5-13.5 C229.5,99.9,224.1,94.5,216,94.5z"/>
134
+ <path fill="#444444" d="M216,162H67.5c-8.1,0-13.5,5.4-13.5,13.5c0,8.1,5.4,13.5,13.5,13.5H216c8.1,0,13.5-5.4,13.5-13.5 C229.5,167.4,224.1,162,216,162z"/>
135
+ <path fill="#444444" d="M216,229.5H67.5c-8.1,0-13.5,5.4-13.5,13.5c0,8.1,5.4,13.5,13.5,13.5H216c8.1,0,13.5-5.4,13.5-13.5 C229.5,234.9,224.1,229.5,216,229.5z"/>
136
+ <path fill="#444444" d="M216,297H67.5c-8.1,0-13.5,5.4-13.5,13.5S59.4,324,67.5,324H216c8.1,0,13.5-5.4,13.5-13.5S224.1,297,216,297z"/>
137
+ <path fill="#444444" d="M391.5,0H324c-8.1,0-13.5,5.4-13.5,13.5S315.9,27,324,27h67.5c8.1,0,13.5,5.4,13.5,13.5V567H27V40.5 C27,32.4,32.4,27,40.5,27h216v499.5c0,8.1,5.4,13.5,13.5,13.5s13.5-5.4,13.5-13.5v-513C283.5,5.4,278.1,0,270,0H40.5 C17.5,0,0,17.5,0,40.5v540c0,8.1,5.4,13.5,13.5,13.5h405c8.1,0,13.5-5.4,13.5-13.5v-540C432,17.5,414.5,0,391.5,0z"/>
138
+ <path fill="#444444" d="M364.5,94.5H324c-8.1,0-13.5,5.4-13.5,13.5c0,8.1,5.4,13.5,13.5,13.5h40.5c8.1,0,13.5-5.4,13.5-13.5 C378,99.9,372.6,94.5,364.5,94.5z"/>
139
+ <path fill="#444444" d="M216,432H67.5c-8.1,0-13.5,5.4-13.5,13.5V513c0,8.1,5.4,13.5,13.5,13.5H216c8.1,0,13.5-5.4,13.5-13.5v-67.5 C229.5,437.4,224.1,432,216,432z M81,499.5V459h121.5v40.5H81z"/>
140
+ </svg>`,
141
+ Stairs: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 432 448.5">
142
+ <path fill="#444444" d="M432,243.3h-81.7v33.1h-72.2v33.1h-72.2v33.1h-72.2v33.1H61.5v33.1H0v39.7h101.2v-33.1h72.2v-33.1h72.2v-33.1h72.2v-33.1 h72.2V283H432L432,243.3"/>
143
+ <path fill="#444444" d="M99.9,109.3c12,0,21.8-9.7,21.8-21.8c0-12-9.8-21.8-21.8-21.8c-12,0-21.8,9.7-21.8,21.8C78.1,99.6,87.9,109.3,99.9,109.3"/>
144
+ <path fill="#444444" d="M179.4,299.8l-56.5-47.4l11.7-82.9c12.5,14.8,20.7,33.4,22.7,53.8l17.8-4.8c-0.9-32.2-14.2-61.3-35.3-82.6 c-14.4-14.5-32.9-19.2-45.9-20.6c-0.1,0-0.2,0-0.3,0c-1.6,0-2.9,1.2-3.2,2.7c-6.5,34.7-27.7,64.2-56.9,81.9l9.3,16.1 c15.6-6.6,29.5-16.4,40.9-28.6v177.3H107l10.4-73.7l57.7,33.3L179.4,299.8"/>
145
+ <path fill="#444444" d="M294.1,43.6c12,0,21.8-9.8,21.8-21.8c0-12-9.8-21.8-21.8-21.8c-12,0-21.8,9.8-21.8,21.8C272.3,33.8,282.1,43.6,294.1,43.6" />
146
+ <path fill="#444444" d="M337.2,154.3l-41.8-24.1l3.9-20c1.4-7.5,2.2-15.2,2.2-23.1c0-12-1.8-23.7-5-34.6c-0.4-1.4-1.7-2.4-3.1-2.4c0,0-0.1,0-0.1,0 c-46.7,1.6-84.1,40-84.1,87.1c0,2.3,0.1,4.6,0.3,6.9l18.3,3.2c0-0.5,0-0.9,0-1.4c0-19.5,8.6-36.9,22.3-48.7l-10.5,201.1h23.3 l24.9-128l23,10.7L294.9,240l16.6,16.6l34.6-74.3c1.3-2.8,2-5.9,2-9.2C348.1,165.1,343.8,158,337.2,154.3"/>
147
+ </svg>`,
148
+ ChargingStation: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 432 627.4">
149
+ <polygon fill="#444444" points="314.4,282.1 133.8,467.8 188.6,334.2 114.9,334.2 225.6,148.6 314.4,148.6 236.7,282.1 "/>
150
+ <path fill="#444444" d="M374.2,0H63.3C28.4,0.1,0.1,28.4,0,63.3v503.6c0,32.8,30.1,60.5,62.6,60.5h309.2c33.3,0,60.3-27,60.3-60.3V374.2l0,0V57.8 C432,25.9,406.1,0,374.2,0z M220.3,600.4c-8.3,0.2-15.2-6.4-15.4-14.7c0-0.2,0-0.5,0-0.7c0.1-8.5,6.9-15.3,15.4-15.4 c8.3-0.2,15.2,6.4,15.4,14.7c0,0.2,0,0.5,0,0.7C235.4,593.8,229.1,600.4,220.3,600.4z M391.1,544.8H44v-465h346.7v294.4l0.4,55 V544.8z"/>
151
+ </svg>`,
152
+ WheelChair: `<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 432 492.2">
153
+ <path fill="#444444" d="M134.7,80.1l9.5,103h104.6v33.3H146.6l3.2,30.9h147.4l66.6,157l56.3-23.8l11.9,27l-84,36.4l-69.7-163.3H118.9l-19-221.9 c-3.2-5.5-4.7-11.9-4.7-18.2C95.1,18.2,112.5,0,134.7,0c22.2,0,40.4,18.2,40.4,40.4C175.2,61.8,156.9,80.1,134.7,80.1L134.7,80.1z" />
154
+ <path fill="#444444" d="M306.7,397.1c-25.3,56.3-81.6,95.1-146.6,95.1C72.1,492.2,0,420.9,0,332.1C0,268.7,37.2,214,91.1,187.9l3.2,36.5 c-36.5,22.2-61,61.8-61,107.8c0,69.8,57.1,126.8,126.8,126.8c65,0,118.1-48.3,126-110.2L306.7,397.1"/>
155
+ </svg>`
156
+ }, Ce = [
157
+ {
158
+ name: "ATM",
159
+ type: "atm",
160
+ svgCode: ht.ATM
161
+ },
162
+ {
163
+ name: "Management",
164
+ type: "management",
165
+ svgCode: ht.Management
166
+ },
167
+ {
168
+ name: "Kids Area",
169
+ type: "playarea",
170
+ svgCode: ht.PlayArea
171
+ },
172
+ {
173
+ name: "Restroom",
174
+ type: "restroom",
175
+ svgCode: ht.RestRoom
176
+ },
177
+ {
178
+ name: "Family Restroom",
179
+ type: "family-restroom",
180
+ svgCode: ht.FamilyRestRoom
181
+ },
182
+ {
183
+ name: "Elevator",
184
+ type: "elevator",
185
+ svgCode: ht.Elevator
186
+ },
187
+ {
188
+ name: "Security",
189
+ type: "security",
190
+ svgCode: ht.Security
191
+ },
192
+ {
193
+ name: "Escalator",
194
+ type: "escalator",
195
+ svgCode: ht.Escalator
196
+ },
197
+ {
198
+ name: "Child Stroller",
199
+ type: "child-stroller",
200
+ svgCode: ht.ChildStroller
201
+ },
202
+ {
203
+ name: "Vending Machine",
204
+ type: "vending-machine",
205
+ svgCode: ht.VendingMachine
206
+ },
207
+ {
208
+ name: "Stairs",
209
+ type: "stairs",
210
+ svgCode: ht.Stairs
211
+ },
212
+ {
213
+ name: "Charging Station",
214
+ type: "charging-station",
215
+ svgCode: ht.ChargingStation
216
+ },
217
+ {
218
+ name: "Wheelchair",
219
+ type: "wheelchair",
220
+ svgCode: ht.WheelChair
221
+ }
222
+ ], Tn = /* @__PURE__ */ new Set([
223
+ "elevator",
224
+ "escalator"
225
+ ]), Yt = Ce.filter(
226
+ (t) => !Tn.has(t.type)
227
+ ), Sn = ht.Kiosk, zn = ht.Entrance;
228
+ function Pn(t) {
229
+ return Yt.some((e) => e.type === t);
230
+ }
231
+ function we(t) {
232
+ return Yt.find((e) => e.type === t) ?? Ce.find((e) => e.type === t);
233
+ }
234
+ function Kt(t) {
235
+ var e;
236
+ return t === "kiosk" ? Sn : t === "entrance" ? zn : (e = we(t)) == null ? void 0 : e.svgCode;
237
+ }
238
+ function Oe(t, e) {
239
+ const s = e.startsWith("#") ? e : `#${e}`;
240
+ return t.replace(/fill="(?!none")[^"]*"/gi, `fill="${s}"`).replace(/stroke="(?!none")[^"]*"/gi, `stroke="${s}"`);
241
+ }
242
+ function jt(t, e) {
243
+ const s = e ? Oe(t, e) : t;
244
+ return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(s)}`;
245
+ }
246
+ function Rn(t) {
247
+ const e = Kt("entrance");
248
+ if (e)
249
+ return jt(e, t);
250
+ }
251
+ function _r() {
252
+ return Yt.map((t) => ({
253
+ value: t.type,
254
+ label: t.name
255
+ }));
256
+ }
257
+ function $r(t, e) {
258
+ var s;
259
+ return t == null ? "" : ((s = e.find((a) => a.id === t)) == null ? void 0 : s.code) ?? "";
260
+ }
261
+ function to(t, e) {
262
+ const s = e.find(
263
+ (a) => a.isActive !== !1 && a.code === t
264
+ );
265
+ return (s == null ? void 0 : s.id) ?? null;
266
+ }
267
+ function Gn(t, e, s) {
268
+ const a = He(t, e);
269
+ if (!a) return;
270
+ const d = Kt(a);
271
+ if (d)
272
+ return jt(d, s);
273
+ }
274
+ const Vn = "#0763b1", Wn = "#94a3b8";
275
+ function Dn(t) {
276
+ const e = (t.sourceSvgId ?? t.key).trim().toLowerCase().replace(/_/g, "-");
277
+ return e === "escalator" || e.startsWith("escalator-") ? "escalator" : e === "elevator" || e.startsWith("elevator-") ? "elevator" : null;
278
+ }
279
+ function Bn(t, e, s) {
280
+ const a = Kt(t);
281
+ if (!a) return;
282
+ const d = s != null && s.trim() ? s.trim() : e ? Vn : Wn;
283
+ return jt(a, d);
284
+ }
285
+ function Hn(t) {
286
+ const e = /* @__PURE__ */ new Set();
287
+ for (const s of t)
288
+ s.shapeId != null && s.connectorId != null && e.add(s.shapeId);
289
+ return e;
290
+ }
291
+ function Zn(t, e) {
292
+ if (t.orphanedAt) return null;
293
+ const s = Dn(t);
294
+ return !s || !e.has(t.id) ? null : s;
295
+ }
296
+ const Fn = "data:font/woff;base64,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", Xt = Fn;
297
+ let ie = !1;
298
+ function Ie() {
299
+ if (ie || typeof document > "u" || !("fonts" in document))
300
+ return;
301
+ ie = !0, new FontFace("Montserrat", `url(${Xt})`).load().then((e) => {
302
+ document.fonts.add(e);
303
+ });
304
+ }
305
+ Ie();
306
+ const Xn = 8;
307
+ function Un(t, e) {
308
+ const s = e.trim().toLowerCase();
309
+ return s ? t.filter((a) => `${a.label} ${a.hint ?? ""}`.toLowerCase().includes(s)) : t;
310
+ }
311
+ function qn(t, e) {
312
+ return e ?? t >= Xn;
313
+ }
314
+ function ae() {
315
+ return /* @__PURE__ */ T(
316
+ "svg",
317
+ {
318
+ className: "eyeon-map-select__chevron",
319
+ width: "12",
320
+ height: "12",
321
+ viewBox: "0 0 12 12",
322
+ "aria-hidden": !0,
323
+ children: /* @__PURE__ */ T(
324
+ "path",
325
+ {
326
+ d: "M2.5 4.5 6 8l3.5-3.5",
327
+ fill: "none",
328
+ stroke: "currentColor",
329
+ strokeWidth: "1.5",
330
+ strokeLinecap: "round",
331
+ strokeLinejoin: "round"
332
+ }
333
+ )
334
+ }
335
+ );
336
+ }
337
+ function le({
338
+ value: t,
339
+ options: e,
340
+ onChange: s,
341
+ disabled: a = !1,
342
+ placeholder: d = "Select…",
343
+ searchable: m,
344
+ ariaLabel: b
345
+ }) {
346
+ const Q = Re(), x = at(null), z = at(null), W = at(null), k = at(null), H = at(null), [G, X] = dt(!1), [w, L] = dt(""), [M, U] = dt(0), [c, p] = dt(null), I = qn(e.length, m), u = e.find((E) => E.value === t), N = ot(
347
+ () => Un(e, I && G ? w : ""),
348
+ [G, e, w, I]
349
+ ), O = mt(() => {
350
+ X(!1), L(""), U(0);
351
+ }, []), D = mt(
352
+ (E) => {
353
+ s(E), O();
354
+ },
355
+ [O, s]
356
+ ), Y = mt(() => {
357
+ const E = z.current ?? W.current;
358
+ if (!E) return;
359
+ const q = E.getBoundingClientRect(), $ = window.innerHeight - q.bottom - 8, K = q.top - 8, l = Math.min(280, Math.max($, K, 120)), B = $ < 160 && K > $;
360
+ p({
361
+ top: B ? Math.max(8, q.top - l - 4) : q.bottom + 4,
362
+ left: q.left,
363
+ width: Math.max(q.width, 160),
364
+ maxHeight: l
365
+ });
366
+ }, []);
367
+ lt(() => {
368
+ if (!G) {
369
+ p(null);
370
+ return;
371
+ }
372
+ Y();
373
+ const E = (K) => {
374
+ var B, _;
375
+ const l = K.target;
376
+ (B = x.current) != null && B.contains(l) || (_ = k.current) != null && _.contains(l) || O();
377
+ }, q = (K) => {
378
+ var l;
379
+ K.key === "Escape" && (O(), (l = I ? H.current : W.current) == null || l.blur());
380
+ }, $ = () => Y();
381
+ return document.addEventListener("mousedown", E), document.addEventListener("keydown", q), window.addEventListener("resize", $), window.addEventListener("scroll", $, !0), () => {
382
+ document.removeEventListener("mousedown", E), document.removeEventListener("keydown", q), window.removeEventListener("resize", $), window.removeEventListener("scroll", $, !0);
383
+ };
384
+ }, [O, G, Y, I]), lt(() => {
385
+ !G || !I || requestAnimationFrame(() => {
386
+ var E;
387
+ return (E = H.current) == null ? void 0 : E.focus();
388
+ });
389
+ }, [G, I]), lt(() => {
390
+ U(0);
391
+ }, [w, N.length]);
392
+ const tt = (E) => {
393
+ N.length !== 0 && U((q) => (q + E + N.length) % N.length);
394
+ }, Z = (E) => {
395
+ if (E.key === "ArrowDown") {
396
+ E.preventDefault(), G ? tt(1) : X(!0);
397
+ return;
398
+ }
399
+ if (E.key === "ArrowUp") {
400
+ E.preventDefault(), G ? tt(-1) : X(!0);
401
+ return;
402
+ }
403
+ if (E.key === "Enter") {
404
+ E.preventDefault();
405
+ const q = N[M];
406
+ G && q ? D(q.value) : X(!0);
407
+ }
408
+ }, J = G && c && !a ? En(
409
+ /* @__PURE__ */ T(
410
+ "div",
411
+ {
412
+ ref: k,
413
+ id: Q,
414
+ className: "eyeon-map-select__menu",
415
+ role: "listbox",
416
+ "aria-label": b,
417
+ style: {
418
+ top: c.top,
419
+ left: c.left,
420
+ width: c.width,
421
+ maxHeight: c.maxHeight
422
+ },
423
+ children: /* @__PURE__ */ T("ul", { className: "eyeon-map-select__list", children: N.length === 0 ? /* @__PURE__ */ T("li", { className: "eyeon-map-select__empty", children: "No matches" }) : N.map((E, q) => {
424
+ const $ = E.value === t, K = q === M;
425
+ return /* @__PURE__ */ T(
426
+ "li",
427
+ {
428
+ id: `${Q}-${E.value}`,
429
+ role: "option",
430
+ "aria-selected": $,
431
+ children: /* @__PURE__ */ ct(
432
+ "button",
433
+ {
434
+ type: "button",
435
+ className: [
436
+ "eyeon-map-select__option",
437
+ $ ? "is-active" : "",
438
+ K ? "is-highlight" : ""
439
+ ].filter(Boolean).join(" "),
440
+ onMouseDown: (l) => l.preventDefault(),
441
+ onMouseEnter: () => U(q),
442
+ onClick: () => D(E.value),
443
+ children: [
444
+ E.iconUrl ? /* @__PURE__ */ T(
445
+ "img",
446
+ {
447
+ className: E.iconMuted ? "eyeon-map-select__option-icon is-muted" : "eyeon-map-select__option-icon",
448
+ src: E.iconUrl,
449
+ alt: ""
450
+ }
451
+ ) : null,
452
+ /* @__PURE__ */ ct("span", { className: "eyeon-map-select__option-copy", children: [
453
+ /* @__PURE__ */ T("span", { children: E.label }),
454
+ E.hint ? /* @__PURE__ */ T("span", { className: "eyeon-map-select__option-hint", children: E.hint }) : null
455
+ ] })
456
+ ]
457
+ }
458
+ )
459
+ },
460
+ E.value
461
+ );
462
+ }) })
463
+ }
464
+ ),
465
+ document.body
466
+ ) : null;
467
+ return /* @__PURE__ */ ct("div", { ref: x, className: "eyeon-map-select", children: [
468
+ I ? /* @__PURE__ */ ct(
469
+ "div",
470
+ {
471
+ ref: z,
472
+ className: G ? "eyeon-map-select__trigger is-open" : "eyeon-map-select__trigger",
473
+ onMouseDown: (E) => {
474
+ var $;
475
+ if (a) return;
476
+ const q = E.target;
477
+ q.closest(".eyeon-map-select__chevron-btn") || (q !== H.current && (E.preventDefault(), ($ = H.current) == null || $.focus()), G || X(!0));
478
+ },
479
+ children: [
480
+ /* @__PURE__ */ T(
481
+ "input",
482
+ {
483
+ ref: H,
484
+ className: "eyeon-map-select__input",
485
+ type: "text",
486
+ role: "combobox",
487
+ "aria-label": b,
488
+ "aria-expanded": G,
489
+ "aria-haspopup": "listbox",
490
+ "aria-controls": Q,
491
+ "aria-autocomplete": "list",
492
+ "aria-activedescendant": G && N[M] ? `${Q}-${N[M].value}` : void 0,
493
+ disabled: a,
494
+ placeholder: d,
495
+ value: G ? w : (u == null ? void 0 : u.label) ?? "",
496
+ onChange: (E) => {
497
+ L(E.target.value), G || X(!0);
498
+ },
499
+ onFocus: () => {
500
+ a || X(!0);
501
+ },
502
+ onKeyDown: Z
503
+ }
504
+ ),
505
+ /* @__PURE__ */ T(
506
+ "button",
507
+ {
508
+ type: "button",
509
+ className: "eyeon-map-select__chevron-btn",
510
+ tabIndex: -1,
511
+ "aria-hidden": !0,
512
+ disabled: a,
513
+ onMouseDown: (E) => E.preventDefault(),
514
+ onClick: () => {
515
+ a || X((E) => !E);
516
+ },
517
+ children: /* @__PURE__ */ T(ae, {})
518
+ }
519
+ )
520
+ ]
521
+ }
522
+ ) : /* @__PURE__ */ ct(
523
+ "button",
524
+ {
525
+ ref: W,
526
+ type: "button",
527
+ className: "eyeon-map-select__trigger",
528
+ "aria-label": b,
529
+ "aria-expanded": G,
530
+ "aria-haspopup": "listbox",
531
+ disabled: a,
532
+ onClick: () => {
533
+ a || X((E) => !E);
534
+ },
535
+ children: [
536
+ /* @__PURE__ */ ct(
537
+ "span",
538
+ {
539
+ className: u ? "eyeon-map-select__value" : "eyeon-map-select__placeholder",
540
+ children: [
541
+ u != null && u.iconUrl ? /* @__PURE__ */ T(
542
+ "img",
543
+ {
544
+ className: u.iconMuted ? "eyeon-map-select__option-icon is-muted" : "eyeon-map-select__option-icon",
545
+ src: u.iconUrl,
546
+ alt: ""
547
+ }
548
+ ) : null,
549
+ (u == null ? void 0 : u.label) ?? d
550
+ ]
551
+ }
552
+ ),
553
+ /* @__PURE__ */ T(ae, {})
554
+ ]
555
+ }
556
+ ),
557
+ J
558
+ ] });
559
+ }
560
+ function Qt(t) {
561
+ if (t.length < 3) return null;
562
+ const e = new rt.Shape();
563
+ e.moveTo(t[0].x, t[0].y);
564
+ for (let s = 1; s < t.length; s++)
565
+ e.lineTo(t[s].x, t[s].y);
566
+ return e.closePath(), e;
567
+ }
568
+ function Yn(t) {
569
+ if (t.length < 3) return null;
570
+ const e = new rt.Path();
571
+ e.moveTo(t[0].x, t[0].y);
572
+ for (let s = 1; s < t.length; s++)
573
+ e.lineTo(t[s].x, t[s].y);
574
+ return e.closePath(), e;
575
+ }
576
+ function Kn(t, e) {
577
+ const s = Qt(t);
578
+ if (!s) return null;
579
+ for (const a of Ze(t, e)) {
580
+ const d = Yn(a);
581
+ d && s.holes.push(d);
582
+ }
583
+ return s;
584
+ }
585
+ function ue() {
586
+ }
587
+ function jn(t) {
588
+ const s = Math.max(48, Math.round(256 * Math.max(t, 0.2))), a = document.createElement("canvas");
589
+ a.width = s, a.height = 256;
590
+ const d = a.getContext("2d");
591
+ if (!d) return new rt.CanvasTexture(a);
592
+ d.clearRect(0, 0, s, 256);
593
+ const m = Math.min(s, 256) * 0.14;
594
+ d.strokeStyle = qe, d.globalAlpha = 0.82, d.lineWidth = Math.max(5, Math.min(s, 256) * 0.045), d.lineCap = "round", d.beginPath(), d.moveTo(m, m), d.lineTo(s - m, 256 - m), d.moveTo(s - m, m), d.lineTo(m, 256 - m), d.stroke();
595
+ const b = new rt.CanvasTexture(a);
596
+ return b.colorSpace = rt.SRGBColorSpace, b.anisotropy = 4, b.needsUpdate = !0, b;
597
+ }
598
+ function Qn({ polygon: t }) {
599
+ const e = ot(() => Qt(t), [t]), s = ot(() => Fe(t), [t]), a = Math.max(8, Jn(s)), d = ot(() => {
600
+ if (t.length < 2) return null;
601
+ const b = t[0], Q = [
602
+ ...t.map((k) => new rt.Vector3(k.x, k.y, 0.05)),
603
+ new rt.Vector3(b.x, b.y, 0.05)
604
+ ], x = new rt.BufferGeometry().setFromPoints(Q), z = new rt.LineDashedMaterial({
605
+ color: Xe,
606
+ dashSize: a,
607
+ gapSize: a * 0.65
608
+ }), W = new rt.Line(x, z);
609
+ return W.renderOrder = 8, W.computeLineDistances(), W.raycast = ue, W;
610
+ }, [a, t]);
611
+ lt(
612
+ () => () => {
613
+ if (!d) return;
614
+ d.geometry.dispose();
615
+ const b = d.material;
616
+ Array.isArray(b) ? b.forEach((Q) => Q.dispose()) : b.dispose();
617
+ },
618
+ [d]
619
+ );
620
+ const m = ot(() => {
621
+ const b = Math.max(s.maxX - s.minX, 1), Q = Math.max(s.maxY - s.minY, 1);
622
+ return jn(b / Q);
623
+ }, [s]);
624
+ return lt(() => () => m.dispose(), [m]), !e || !d ? null : /* @__PURE__ */ ct("group", { children: [
625
+ /* @__PURE__ */ ct(
626
+ "mesh",
627
+ {
628
+ position: [0, 0, 0.02],
629
+ renderOrder: 6,
630
+ onClick: (b) => b.stopPropagation(),
631
+ onPointerDown: (b) => b.stopPropagation(),
632
+ children: [
633
+ /* @__PURE__ */ T("shapeGeometry", { args: [e] }),
634
+ /* @__PURE__ */ T(
635
+ "meshBasicMaterial",
636
+ {
637
+ color: Ue,
638
+ side: rt.DoubleSide,
639
+ depthWrite: !1
640
+ }
641
+ )
642
+ ]
643
+ }
644
+ ),
645
+ /* @__PURE__ */ ct("mesh", { position: [0, 0, 0.03], renderOrder: 7, raycast: ue, children: [
646
+ /* @__PURE__ */ T("shapeGeometry", { args: [e] }),
647
+ /* @__PURE__ */ T(
648
+ "meshBasicMaterial",
649
+ {
650
+ map: m,
651
+ transparent: !0,
652
+ depthWrite: !1,
653
+ side: rt.DoubleSide,
654
+ toneMapped: !1
655
+ }
656
+ )
657
+ ] }),
658
+ d ? /* @__PURE__ */ T("primitive", { object: d }) : null
659
+ ] });
660
+ }
661
+ function Jn(t) {
662
+ const e = Math.min(t.maxX - t.minX, t.maxY - t.minY);
663
+ return Math.min(18, Math.max(7, e * 0.08));
664
+ }
665
+ function _n({
666
+ polygons: t
667
+ }) {
668
+ return t.length === 0 ? null : /* @__PURE__ */ T("group", { children: t.map((e, s) => /* @__PURE__ */ T(Qn, { polygon: e }, `opening-void-${s}`)) });
669
+ }
670
+ const $n = [
671
+ "unit",
672
+ "amenity",
673
+ "kiosk_screen",
674
+ "connector",
675
+ "entrance",
676
+ "parking_zone"
677
+ ];
678
+ function Jt(t) {
679
+ return $n.includes(t);
680
+ }
681
+ function tr(t, e, s) {
682
+ return e === t || s.includes(t);
683
+ }
684
+ function er(t, e) {
685
+ return e ?? t ?? null;
686
+ }
687
+ function nr(t) {
688
+ return Jt(t) ? "pointer" : "";
689
+ }
690
+ function Wt(t, e) {
691
+ t && t.classList.toggle("is-hover-shape", e === "pointer");
692
+ }
693
+ function rr(t, e, s) {
694
+ return !s || !Jt(t) ? e : e < 0.08 ? 0.28 : e;
695
+ }
696
+ function fe(t) {
697
+ const e = t.replace("#", "").trim();
698
+ if (e.length === 3)
699
+ return [
700
+ parseInt(e[0] + e[0], 16),
701
+ parseInt(e[1] + e[1], 16),
702
+ parseInt(e[2] + e[2], 16)
703
+ ];
704
+ if (e.length !== 6) return null;
705
+ const s = parseInt(e.slice(0, 2), 16), a = parseInt(e.slice(2, 4), 16), d = parseInt(e.slice(4, 6), 16);
706
+ return [s, a, d].some((m) => Number.isNaN(m)) ? null : [s, a, d];
707
+ }
708
+ function or(t, e, s) {
709
+ const a = (d) => Math.max(0, Math.min(255, Math.round(d))).toString(16).padStart(2, "0");
710
+ return `#${a(t)}${a(e)}${a(s)}`;
711
+ }
712
+ function cr(t, e, s, a = 0.2) {
713
+ if (!s) return t;
714
+ const d = fe(t), m = fe(e);
715
+ return !d || !m ? t : or(
716
+ d[0] + (m[0] - d[0]) * a,
717
+ d[1] + (m[1] - d[1]) * a,
718
+ d[2] + (m[2] - d[2]) * a
719
+ );
720
+ }
721
+ const de = 5;
722
+ function sr(t, e) {
723
+ if ((e.button ?? 0) !== 0) return !1;
724
+ if (!t) return !0;
725
+ const s = e.x - t.x, a = e.y - t.y;
726
+ return s * s + a * a <= de * de;
727
+ }
728
+ function ir(t, e, s, a) {
729
+ if (t === "walkable") return e.WALKABLE_COLOR;
730
+ if (t === "unit")
731
+ return ne(a, e.STORE_DEFAULT_COLOR);
732
+ if (t === "connector" && (a != null && a.bgColor))
733
+ return ne(a, s || "#e2e8f0");
734
+ if (s) return s;
735
+ switch (t) {
15
736
  case "wall":
16
737
  case "boundary":
17
- return a.WALL_COLOR;
738
+ return e.WALL_COLOR;
18
739
  case "parking_zone":
19
- return a.PARKING_ZONE_COLOR;
740
+ return e.PARKING_ZONE_COLOR;
20
741
  case "green_area":
21
- return a.GREEN_AREA_COLOR;
742
+ return e.GREEN_AREA_COLOR;
22
743
  case "water":
23
- return a.WATER_COLOR;
744
+ return e.WATER_COLOR;
24
745
  case "floorplate":
25
- return a.BASE_COLOR;
746
+ return e.BASE_COLOR;
26
747
  case "void":
27
748
  return "#00000000";
28
749
  default:
29
750
  return "#e2e8f0";
30
751
  }
31
752
  }
32
- function yt(u) {
33
- if (u.length < 3) return null;
34
- const a = new fe.Shape();
35
- a.moveTo(u[0].x, u[0].y);
36
- for (let A = 1; A < u.length; A++)
37
- a.lineTo(u[A].x, u[A].y);
38
- return a.closePath(), a;
39
- }
40
- function gt({
41
- level: u,
42
- theme: a,
43
- is3d: A,
44
- selectedRetailerId: M,
45
- onSelectShape: I,
46
- interactiveOnly: h = !1
753
+ function ar(t) {
754
+ return Qt(t);
755
+ }
756
+ function lr({
757
+ shape: t,
758
+ extrude: e,
759
+ color: s
760
+ }) {
761
+ const a = ot(
762
+ () => e > 0 ? new rt.ExtrudeGeometry(t, {
763
+ depth: e,
764
+ bevelEnabled: !1
765
+ }) : new rt.ShapeGeometry(t),
766
+ [e, t]
767
+ );
768
+ return lt(() => () => a.dispose(), [a]), /* @__PURE__ */ ct("lineSegments", { renderOrder: 40, children: [
769
+ /* @__PURE__ */ T("edgesGeometry", { args: [a] }),
770
+ /* @__PURE__ */ T("lineBasicMaterial", { color: s, depthTest: !1 })
771
+ ] });
772
+ }
773
+ function ur({
774
+ level: t,
775
+ theme: e,
776
+ is3d: s,
777
+ onSelectShape: a,
778
+ selectedShapeIds: d = [],
779
+ hoveredShapeId: m = null,
780
+ eventSource: b,
781
+ interactiveOnly: Q = !1,
782
+ imageProxyUrl: x = null,
783
+ amenities: z = []
47
784
  }) {
48
- const v = ie(() => u.shapes.filter((x) => x.kind !== "void").filter((x) => !h || Ye.includes(x.kind)).filter((x) => !x.orphanedAt).map((x) => {
49
- var W;
50
- const T = x.geometry.polygons.map(yt).filter((N) => N != null);
51
- if (T.length === 0) return null;
52
- const H = M != null && ((W = x.assignment) == null ? void 0 : W.retailerId) === M, G = H ? a.ACCENT_COLOR : pt(x.kind, a, x.style.fill), E = A && (x.kind === "unit" || x.kind === "wall") ? x.style.extrudeHeight ?? (x.kind === "unit" ? a.STORE_HEIGHT : 2) : 0;
53
- return { shape: x, threeShapes: T, color: G, extrude: E, selected: H };
54
- }).filter(Boolean), [u, a, A, M, h]);
55
- return /* @__PURE__ */ _("group", { children: v.map(({ shape: x, threeShapes: q, color: T, extrude: H, selected: G }) => /* @__PURE__ */ _("group", { children: q.map((E, W) => /* @__PURE__ */ ne(
785
+ const [W, k] = dt(null), H = er(
786
+ m,
787
+ W
788
+ );
789
+ lt(
790
+ () => () => Wt(b == null ? void 0 : b.current, ""),
791
+ [b]
792
+ );
793
+ const G = ot(() => Ye(t), [t]), X = ot(() => t.shapes.filter((c) => c.kind !== "void").filter((c) => {
794
+ var p, I;
795
+ return !(c.kind === "label" && ((I = (p = c.label) == null ? void 0 : p.text) != null && I.trim()));
796
+ }).filter((c) => !zt(c)).filter(
797
+ (c) => {
798
+ var p, I;
799
+ return !Q || Ke.includes(c.kind) || c.kind === "label" && !!((I = (p = c.label) == null ? void 0 : p.text) != null && I.trim()) || c.kind === "walkable" && !Me(c.sourceSvgId);
800
+ }
801
+ ).filter((c) => !c.orphanedAt).map((c) => {
802
+ const p = c.kind === "unit" ? e.STORE_RADIUS : 0, I = je(c.kind) && G.length > 0, N = c.geometry.polygons.map(
803
+ (Y) => p > 0 ? Qe(Y, p) : Y
804
+ ).map(
805
+ (Y) => I ? Kn(Y, G) : ar(Y)
806
+ ).filter((Y) => Y != null);
807
+ if (N.length === 0) return null;
808
+ const O = ir(
809
+ c.kind,
810
+ e,
811
+ c.style.fill,
812
+ c.assignment
813
+ ), D = s && (c.kind === "unit" || c.kind === "wall") ? c.style.extrudeHeight ?? (c.kind === "unit" ? e.STORE_HEIGHT : 2) : 0;
814
+ return { shape: c, threeShapes: N, color: O, extrude: D };
815
+ }).filter(Boolean), [t, e, s, Q, G]), w = ot(
816
+ () => t.shapes.filter(
817
+ (c) => {
818
+ var p, I;
819
+ return !c.orphanedAt && c.kind === "label" && !!((I = (p = c.label) == null ? void 0 : p.text) != null && I.trim());
820
+ }
821
+ ),
822
+ [t.shapes]
823
+ ), L = ot(
824
+ () => t.shapes.filter((c) => !c.orphanedAt && zt(c)),
825
+ [t.shapes]
826
+ ), M = ot(
827
+ () => t.shapes.filter(
828
+ (c) => !c.orphanedAt && c.kind !== "label" && !zt(c) && Je(c.assignment, c.label)
829
+ ),
830
+ [t.shapes]
831
+ ), U = ot(() => {
832
+ const c = Hn(t.anchors);
833
+ return t.shapes.flatMap((p) => {
834
+ const I = Zn(p, c);
835
+ if (!I) return [];
836
+ const u = _e(p), N = Bn(I, !0, u.iconColor);
837
+ if (!N) return [];
838
+ const O = Ot(p.geometry);
839
+ return [
840
+ {
841
+ shape: p,
842
+ url: N,
843
+ width: u.size,
844
+ rotation: u.rotate * Math.PI / 180,
845
+ x: (O.minX + O.maxX) / 2 + u.offsetX,
846
+ y: (O.minY + O.maxY) / 2 + u.offsetY
847
+ }
848
+ ];
849
+ });
850
+ }, [t.anchors, t.shapes]);
851
+ return /* @__PURE__ */ ct("group", { children: [
852
+ w.map((c) => {
853
+ const p = Ot(c.geometry), I = ee(c.label.align), u = (p.minX + p.maxX) / 2, N = (p.minY + p.maxY) / 2, O = (c.label.rotate ?? 0) * Math.PI / 180;
854
+ return /* @__PURE__ */ T(
855
+ "group",
856
+ {
857
+ position: [u, N, 0.15],
858
+ rotation: [0, 0, O],
859
+ children: /* @__PURE__ */ T(
860
+ ce,
861
+ {
862
+ font: Xt,
863
+ position: [$e(p, I) - u, 0, 0],
864
+ fontSize: c.label.size ?? 24,
865
+ color: c.label.color ?? e.STORE_TEXT_COLOR,
866
+ anchorX: I,
867
+ anchorY: "middle",
868
+ textAlign: I,
869
+ lineHeight: se,
870
+ scale: [1, -1, 1],
871
+ children: c.label.text
872
+ }
873
+ )
874
+ },
875
+ `label-${c.id}`
876
+ );
877
+ }),
878
+ L.map((c) => {
879
+ const p = Ot(c.geometry), I = (p.minX + p.maxX) / 2 + (c.label.offsetX ?? 0), u = (p.minY + p.maxY) / 2 + (c.label.offsetY ?? 0), N = (c.label.rotate ?? 0) * Math.PI / 180, O = c.label.size || tn, D = Rn(
880
+ c.label.color ?? e.STORE_TEXT_COLOR
881
+ );
882
+ return D ? /* @__PURE__ */ T(
883
+ Dt,
884
+ {
885
+ url: D,
886
+ width: O,
887
+ position: [I, u, 0.18],
888
+ rotation: N
889
+ },
890
+ `entrance-${c.id}`
891
+ ) : null;
892
+ }),
893
+ M.map((c) => {
894
+ var q, $, K;
895
+ const p = Ot(c.geometry), I = (p.minX + p.maxX) / 2 + (c.label.offsetX ?? 0), u = (p.minY + p.maxY) / 2 + (c.label.offsetY ?? 0), N = (c.label.rotate ?? 0) * Math.PI / 180, O = c.label.size || ((q = c.assignment) == null ? void 0 : q.size) || en, D = s && (c.kind === "unit" || c.kind === "wall") ? c.style.extrudeHeight ?? (c.kind === "unit" ? e.STORE_HEIGHT : 2) : 0, Y = D > 0 ? D + 0.15 : 0.2, tt = c.label.color ?? (($ = c.assignment) == null ? void 0 : $.textColor) ?? e.STORE_TEXT_COLOR, Z = nn(c.assignment, null, c.label) ?? Gn(
896
+ c.assignment,
897
+ z,
898
+ tt
899
+ ), J = (K = c.label.text) == null ? void 0 : K.trim(), E = ee(c.label.align);
900
+ return Z ? /* @__PURE__ */ T(
901
+ Dt,
902
+ {
903
+ url: Z,
904
+ width: rn(O, c.assignment),
905
+ position: [I, u, Y],
906
+ rotation: N,
907
+ imageProxyUrl: x
908
+ },
909
+ `overlay-${c.id}`
910
+ ) : /* @__PURE__ */ T(
911
+ ce,
912
+ {
913
+ font: Xt,
914
+ position: [I, u, Y],
915
+ rotation: [0, 0, N],
916
+ fontSize: O,
917
+ color: c.label.color ?? e.STORE_TEXT_COLOR,
918
+ anchorX: "center",
919
+ anchorY: "middle",
920
+ textAlign: E,
921
+ lineHeight: se,
922
+ scale: [1, -1, 1],
923
+ raycast: Le,
924
+ children: J
925
+ },
926
+ `overlay-${c.id}`
927
+ );
928
+ }),
929
+ U.map(({ shape: c, url: p, width: I, rotation: u, x: N, y: O }) => /* @__PURE__ */ T(
930
+ Dt,
931
+ {
932
+ url: p,
933
+ width: I,
934
+ position: [N, O, 0.22],
935
+ rotation: u
936
+ },
937
+ `connector-icon-${c.id}`
938
+ )),
939
+ /* @__PURE__ */ T(_n, { polygons: G }),
940
+ X.map(({ shape: c, threeShapes: p, color: I, extrude: u }) => {
941
+ const N = Jt(c.kind), O = N && tr(c.id, H, d), D = c.style.opacity ?? (c.kind === "amenity" ? 0.01 : 1), Y = Mt(I), tt = Y ? O ? 0.2 : 0 : rr(
942
+ c.kind,
943
+ D,
944
+ O
945
+ ), Z = Y ? O ? e.ACCENT_COLOR : "#000000" : cr(I, e.ACCENT_COLOR, O);
946
+ return /* @__PURE__ */ T("group", { children: p.map((J, E) => /* @__PURE__ */ ct(
947
+ "mesh",
948
+ {
949
+ position: [0, 0, c.zIndex * 0.01],
950
+ onPointerOver: (q) => {
951
+ N && (q.stopPropagation(), k(c.id), Wt(
952
+ b == null ? void 0 : b.current,
953
+ nr(c.kind)
954
+ ));
955
+ },
956
+ onPointerOut: (q) => {
957
+ N && (q.stopPropagation(), k(($) => $ === c.id ? null : $), Wt(b == null ? void 0 : b.current, ""));
958
+ },
959
+ onPointerDown: (q) => {
960
+ var K;
961
+ !!(q.shiftKey || (K = q.nativeEvent) != null && K.shiftKey) && q.stopPropagation();
962
+ },
963
+ onClick: (q) => {
964
+ var $;
965
+ if (q.stopPropagation(), N) {
966
+ a == null || a(c.id, {
967
+ additive: !!(q.shiftKey || ($ = q.nativeEvent) != null && $.shiftKey)
968
+ });
969
+ return;
970
+ }
971
+ a == null || a(null);
972
+ },
973
+ children: [
974
+ u > 0 ? /* @__PURE__ */ T(
975
+ "extrudeGeometry",
976
+ {
977
+ args: [
978
+ J,
979
+ { depth: u, bevelEnabled: !1 }
980
+ ]
981
+ }
982
+ ) : /* @__PURE__ */ T("shapeGeometry", { args: [J] }),
983
+ /* @__PURE__ */ T(
984
+ "meshBasicMaterial",
985
+ {
986
+ color: Z,
987
+ transparent: c.style.transparent || c.kind === "amenity" || tt < 1,
988
+ opacity: tt,
989
+ side: rt.DoubleSide
990
+ }
991
+ ),
992
+ O ? /* @__PURE__ */ T(
993
+ lr,
994
+ {
995
+ shape: J,
996
+ extrude: u,
997
+ color: e.ACCENT_COLOR
998
+ }
999
+ ) : null
1000
+ ]
1001
+ },
1002
+ `${c.id}-${E}`
1003
+ )) }, c.id);
1004
+ })
1005
+ ] });
1006
+ }
1007
+ function Le() {
1008
+ }
1009
+ function fr(t, e) {
1010
+ return new Promise((s, a) => {
1011
+ const d = new Image(), m = () => {
1012
+ e == null || e.removeEventListener("abort", b), d.onload = null, d.onerror = null;
1013
+ }, b = () => {
1014
+ m(), d.src = "", a(new DOMException("Image load aborted", "AbortError"));
1015
+ };
1016
+ if (e != null && e.aborted) {
1017
+ b();
1018
+ return;
1019
+ }
1020
+ e == null || e.addEventListener("abort", b, { once: !0 }), d.crossOrigin = "anonymous", d.onload = () => {
1021
+ m();
1022
+ const Q = d.naturalWidth || d.width, x = d.naturalHeight || d.height;
1023
+ if (!Q || !x) {
1024
+ a(new Error("empty image"));
1025
+ return;
1026
+ }
1027
+ const z = document.createElement("canvas");
1028
+ z.width = Q, z.height = x;
1029
+ const W = z.getContext("2d");
1030
+ if (!W) {
1031
+ a(new Error("canvas"));
1032
+ return;
1033
+ }
1034
+ W.drawImage(d, 0, 0);
1035
+ const k = new rt.CanvasTexture(z);
1036
+ k.colorSpace = rt.SRGBColorSpace, k.needsUpdate = !0, s({ texture: k, aspect: x / Q });
1037
+ }, d.onerror = () => {
1038
+ m(), a(new Error(`Failed to load ${t}`));
1039
+ }, d.src = t;
1040
+ });
1041
+ }
1042
+ function Dt({
1043
+ url: t,
1044
+ width: e,
1045
+ position: s,
1046
+ rotation: a,
1047
+ imageProxyUrl: d
1048
+ }) {
1049
+ const [m, b] = dt(null), [Q, x] = dt(1);
1050
+ return lt(() => {
1051
+ let z = !1, W = null;
1052
+ const k = new AbortController();
1053
+ b(null);
1054
+ const H = be(t, d), G = H === t ? [t] : [H, t];
1055
+ return (async () => {
1056
+ let w;
1057
+ for (const L of G)
1058
+ try {
1059
+ const M = await fr(L, k.signal);
1060
+ if (z) {
1061
+ M.texture.dispose();
1062
+ return;
1063
+ }
1064
+ W = M.texture, x(M.aspect), b(M.texture);
1065
+ return;
1066
+ } catch (M) {
1067
+ if (k.signal.aborted) return;
1068
+ w = M;
1069
+ }
1070
+ z || (b(null), w && console.warn("Retail logo failed to load", t, w));
1071
+ })(), () => {
1072
+ z = !0, k.abort(), W == null || W.dispose();
1073
+ };
1074
+ }, [t, d]), !m || e <= 0 ? null : /* @__PURE__ */ ct(
56
1075
  "mesh",
57
1076
  {
58
- position: [0, 0, x.zIndex * 0.01],
59
- onClick: (N) => {
60
- N.stopPropagation(), (x.kind === "unit" || x.kind === "amenity" || x.kind === "kiosk_screen" || x.kind === "entrance" || x.kind === "parking_zone") && (I == null || I(x.id));
61
- },
1077
+ position: s,
1078
+ rotation: [0, 0, a],
1079
+ scale: [1, -1, 1],
1080
+ renderOrder: 30,
1081
+ raycast: Le,
62
1082
  children: [
63
- H > 0 ? /* @__PURE__ */ _(
64
- "extrudeGeometry",
65
- {
66
- args: [
67
- E,
68
- { depth: H, bevelEnabled: !1 }
69
- ]
70
- }
71
- ) : /* @__PURE__ */ _("shapeGeometry", { args: [E] }),
72
- /* @__PURE__ */ _(
1083
+ /* @__PURE__ */ T("planeGeometry", { args: [e, e * Q] }),
1084
+ /* @__PURE__ */ T(
73
1085
  "meshBasicMaterial",
74
1086
  {
75
- color: T,
76
- transparent: x.style.transparent || x.kind === "amenity",
77
- opacity: x.style.opacity ?? (x.kind === "amenity" ? 0.01 : 1),
78
- side: fe.DoubleSide
1087
+ map: m,
1088
+ transparent: !0,
1089
+ depthTest: !1,
1090
+ depthWrite: !1,
1091
+ side: rt.DoubleSide,
1092
+ toneMapped: !1
79
1093
  }
80
- ),
81
- G && /* @__PURE__ */ ne("lineSegments", { children: [
82
- /* @__PURE__ */ _(
83
- "edgesGeometry",
84
- {
85
- args: [
86
- H > 0 ? new fe.ExtrudeGeometry(E, {
87
- depth: H,
88
- bevelEnabled: !1
89
- }) : new fe.ShapeGeometry(E)
90
- ]
91
- }
92
- ),
93
- /* @__PURE__ */ _("lineBasicMaterial", { color: a.ACCENT_COLOR })
94
- ] })
1094
+ )
95
1095
  ]
96
- },
97
- `${x.id}-${W}`
98
- )) }, x.id)) });
1096
+ }
1097
+ );
99
1098
  }
100
- function bt({
101
- route: u,
102
- activeLevelId: a,
103
- color: A
1099
+ function dr({
1100
+ route: t,
1101
+ activeLevelId: e,
1102
+ color: s
104
1103
  }) {
105
- const M = ie(() => u.points.filter((h) => a == null || h.levelId === a).map((h) => new fe.Vector3(h.x, h.y, 2)), [u, a]);
106
- if (M.length < 2) return null;
107
- const I = new fe.CatmullRomCurve3(M);
108
- return /* @__PURE__ */ ne("mesh", { children: [
109
- /* @__PURE__ */ _("tubeGeometry", { args: [I, Math.max(M.length * 4, 8), 1.5, 8, !1] }),
110
- /* @__PURE__ */ _("meshBasicMaterial", { color: A })
111
- ] });
1104
+ const a = ot(() => t.points.filter((m) => e == null || m.levelId === e).map((m) => new rt.Vector3(m.x, m.y, 2)), [t, e]), d = ot(
1105
+ () => a.length >= 2 ? new rt.CatmullRomCurve3(a) : null,
1106
+ [a]
1107
+ );
1108
+ return d ? /* @__PURE__ */ ct("mesh", { children: [
1109
+ /* @__PURE__ */ T("tubeGeometry", { args: [d, Math.max(a.length * 4, 8), 1.5, 8, !1] }),
1110
+ /* @__PURE__ */ T("meshBasicMaterial", { color: s })
1111
+ ] }) : null;
112
1112
  }
113
- const xt = dt;
114
- class Ie extends ct {
1113
+ const hr = Nn;
1114
+ class kt extends bn {
115
1115
  /**
116
1116
  * Constructs a new SVG loader.
117
1117
  *
118
1118
  * @param {LoadingManager} [manager] - The loading manager.
119
1119
  */
120
- constructor(a) {
121
- super(a), this.defaultDPI = 90, this.defaultUnit = "px";
1120
+ constructor(e) {
1121
+ super(e), this.defaultDPI = 90, this.defaultUnit = "px";
122
1122
  }
123
1123
  /**
124
1124
  * Starts loading from the given URL and passes the loaded SVG asset
@@ -129,15 +1129,15 @@ class Ie extends ct {
129
1129
  * @param {onProgressCallback} onProgress - Executed while the loading is in progress.
130
1130
  * @param {onErrorCallback} onError - Executed when errors occur.
131
1131
  */
132
- load(a, A, M, I) {
133
- const h = this, v = new lt(h.manager);
134
- v.setPath(h.path), v.setRequestHeader(h.requestHeader), v.setWithCredentials(h.withCredentials), v.load(a, function(x) {
1132
+ load(e, s, a, d) {
1133
+ const m = this, b = new Cn(m.manager);
1134
+ b.setPath(m.path), b.setRequestHeader(m.requestHeader), b.setWithCredentials(m.withCredentials), b.load(e, function(Q) {
135
1135
  try {
136
- A(h.parse(x));
137
- } catch (q) {
138
- I ? I(q) : console.error(q), h.manager.itemError(a);
1136
+ s(m.parse(Q));
1137
+ } catch (x) {
1138
+ d ? d(x) : console.error(x), m.manager.itemError(e);
139
1139
  }
140
- }, M, I);
1140
+ }, a, d);
141
1141
  }
142
1142
  /**
143
1143
  * Parses the given SVG data and returns the resulting data.
@@ -146,377 +1146,377 @@ class Ie extends ct {
146
1146
  * @return {{paths:Array<ShapePath>,xml:string}} An object holding an array of shape paths and the
147
1147
  * SVG XML document.
148
1148
  */
149
- parse(a) {
150
- const A = this;
151
- function M(r, o) {
152
- if (r.nodeType !== 1) return;
153
- const t = S(r);
154
- let e = !1, c = null;
155
- switch (r.nodeName) {
1149
+ parse(e) {
1150
+ const s = this;
1151
+ function a(h, i) {
1152
+ if (h.nodeType !== 1) return;
1153
+ const r = p(h);
1154
+ let n = !1, C = null;
1155
+ switch (h.nodeName) {
156
1156
  case "svg":
157
- o = N(r, o);
1157
+ i = X(h, i);
158
1158
  break;
159
1159
  case "style":
160
- h(r);
1160
+ m(h);
161
1161
  break;
162
1162
  case "g":
163
- o = N(r, o);
1163
+ i = X(h, i);
164
1164
  break;
165
1165
  case "path":
166
- o = N(r, o), r.hasAttribute("d") && (c = I(r));
1166
+ i = X(h, i), h.hasAttribute("d") && (C = d(h));
167
1167
  break;
168
1168
  case "rect":
169
- o = N(r, o), c = q(r);
1169
+ i = X(h, i), C = x(h);
170
1170
  break;
171
1171
  case "polygon":
172
- o = N(r, o), c = T(r);
1172
+ i = X(h, i), C = z(h);
173
1173
  break;
174
1174
  case "polyline":
175
- o = N(r, o), c = H(r);
1175
+ i = X(h, i), C = W(h);
176
1176
  break;
177
1177
  case "circle":
178
- o = N(r, o), c = G(r);
1178
+ i = X(h, i), C = k(h);
179
1179
  break;
180
1180
  case "ellipse":
181
- o = N(r, o), c = E(r);
1181
+ i = X(h, i), C = H(h);
182
1182
  break;
183
1183
  case "line":
184
- o = N(r, o), c = W(r);
1184
+ i = X(h, i), C = G(h);
185
1185
  break;
186
1186
  case "defs":
187
- e = !0;
1187
+ n = !0;
188
1188
  break;
189
1189
  case "use":
190
- o = N(r, o);
191
- const w = (r.getAttributeNS("http://www.w3.org/1999/xlink", "href") || "").substring(1), C = r.viewportElement.getElementById(w);
192
- C ? M(C, o) : console.warn("SVGLoader: 'use node' references non-existent node id: " + w);
1190
+ i = X(h, i);
1191
+ const P = (h.getAttributeNS("http://www.w3.org/1999/xlink", "href") || "").substring(1), F = h.viewportElement.getElementById(P);
1192
+ F ? a(F, i) : console.warn("SVGLoader: 'use node' references non-existent node id: " + P);
193
1193
  break;
194
1194
  }
195
- c && (o.fill !== void 0 && o.fill !== "none" && c.color.setStyle(o.fill, xt), m(c, se), V.push(c), c.userData = { node: r, style: o });
196
- const y = r.childNodes;
197
- for (let i = 0; i < y.length; i++) {
198
- const w = y[i];
199
- e && w.nodeName !== "style" && w.nodeName !== "defs" || M(w, o);
1195
+ C && (i.fill !== void 0 && i.fill !== "none" && C.color.setStyle(i.fill, hr), u(C, et), Z.push(C), C.userData = { node: h, style: i });
1196
+ const R = h.childNodes;
1197
+ for (let g = 0; g < R.length; g++) {
1198
+ const P = R[g];
1199
+ n && P.nodeName !== "style" && P.nodeName !== "defs" || a(P, i);
200
1200
  }
201
- t && ($.pop(), $.length > 0 ? se.copy($[$.length - 1]) : se.identity());
1201
+ r && (E.pop(), E.length > 0 ? et.copy(E[E.length - 1]) : et.identity());
202
1202
  }
203
- function I(r) {
204
- const o = new pe(), t = new Q(), e = new Q(), c = new Q();
205
- let y = !0, i = !1;
206
- const w = r.getAttribute("d");
207
- if (w === "" || w === "none") return null;
208
- const C = w.match(/[a-df-z][^a-df-z]*/ig);
209
- for (let O = 0, l = C.length; O < l; O++) {
210
- const b = C[O], L = b.charAt(0), D = b.slice(1).trim();
211
- y === !0 && (i = !0, y = !1);
212
- let s;
213
- switch (L) {
1203
+ function d(h) {
1204
+ const i = new xt(), r = new it(), n = new it(), C = new it();
1205
+ let R = !0, g = !1;
1206
+ const P = h.getAttribute("d");
1207
+ if (P === "" || P === "none") return null;
1208
+ const F = P.match(/[a-df-z][^a-df-z]*/ig);
1209
+ for (let A = 0, y = F.length; A < y; A++) {
1210
+ const v = F[A], S = v.charAt(0), V = v.slice(1).trim();
1211
+ R === !0 && (g = !0, R = !1);
1212
+ let f;
1213
+ switch (S) {
214
1214
  case "M":
215
- s = f(D);
216
- for (let n = 0, B = s.length; n < B; n += 2)
217
- t.x = s[n + 0], t.y = s[n + 1], e.x = t.x, e.y = t.y, n === 0 ? o.moveTo(t.x, t.y) : o.lineTo(t.x, t.y), n === 0 && c.copy(t);
1215
+ f = L(V);
1216
+ for (let o = 0, j = f.length; o < j; o += 2)
1217
+ r.x = f[o + 0], r.y = f[o + 1], n.x = r.x, n.y = r.y, o === 0 ? i.moveTo(r.x, r.y) : i.lineTo(r.x, r.y), o === 0 && C.copy(r);
218
1218
  break;
219
1219
  case "H":
220
- s = f(D);
221
- for (let n = 0, B = s.length; n < B; n++)
222
- t.x = s[n], e.x = t.x, e.y = t.y, o.lineTo(t.x, t.y), n === 0 && i === !0 && c.copy(t);
1220
+ f = L(V);
1221
+ for (let o = 0, j = f.length; o < j; o++)
1222
+ r.x = f[o], n.x = r.x, n.y = r.y, i.lineTo(r.x, r.y), o === 0 && g === !0 && C.copy(r);
223
1223
  break;
224
1224
  case "V":
225
- s = f(D);
226
- for (let n = 0, B = s.length; n < B; n++)
227
- t.y = s[n], e.x = t.x, e.y = t.y, o.lineTo(t.x, t.y), n === 0 && i === !0 && c.copy(t);
1225
+ f = L(V);
1226
+ for (let o = 0, j = f.length; o < j; o++)
1227
+ r.y = f[o], n.x = r.x, n.y = r.y, i.lineTo(r.x, r.y), o === 0 && g === !0 && C.copy(r);
228
1228
  break;
229
1229
  case "L":
230
- s = f(D);
231
- for (let n = 0, B = s.length; n < B; n += 2)
232
- t.x = s[n + 0], t.y = s[n + 1], e.x = t.x, e.y = t.y, o.lineTo(t.x, t.y), n === 0 && i === !0 && c.copy(t);
1230
+ f = L(V);
1231
+ for (let o = 0, j = f.length; o < j; o += 2)
1232
+ r.x = f[o + 0], r.y = f[o + 1], n.x = r.x, n.y = r.y, i.lineTo(r.x, r.y), o === 0 && g === !0 && C.copy(r);
233
1233
  break;
234
1234
  case "C":
235
- s = f(D);
236
- for (let n = 0, B = s.length; n < B; n += 6)
237
- o.bezierCurveTo(
238
- s[n + 0],
239
- s[n + 1],
240
- s[n + 2],
241
- s[n + 3],
242
- s[n + 4],
243
- s[n + 5]
244
- ), e.x = s[n + 2], e.y = s[n + 3], t.x = s[n + 4], t.y = s[n + 5], n === 0 && i === !0 && c.copy(t);
1235
+ f = L(V);
1236
+ for (let o = 0, j = f.length; o < j; o += 6)
1237
+ i.bezierCurveTo(
1238
+ f[o + 0],
1239
+ f[o + 1],
1240
+ f[o + 2],
1241
+ f[o + 3],
1242
+ f[o + 4],
1243
+ f[o + 5]
1244
+ ), n.x = f[o + 2], n.y = f[o + 3], r.x = f[o + 4], r.y = f[o + 5], o === 0 && g === !0 && C.copy(r);
245
1245
  break;
246
1246
  case "S":
247
- s = f(D);
248
- for (let n = 0, B = s.length; n < B; n += 4)
249
- o.bezierCurveTo(
250
- k(t.x, e.x),
251
- k(t.y, e.y),
252
- s[n + 0],
253
- s[n + 1],
254
- s[n + 2],
255
- s[n + 3]
256
- ), e.x = s[n + 0], e.y = s[n + 1], t.x = s[n + 2], t.y = s[n + 3], n === 0 && i === !0 && c.copy(t);
1247
+ f = L(V);
1248
+ for (let o = 0, j = f.length; o < j; o += 4)
1249
+ i.bezierCurveTo(
1250
+ w(r.x, n.x),
1251
+ w(r.y, n.y),
1252
+ f[o + 0],
1253
+ f[o + 1],
1254
+ f[o + 2],
1255
+ f[o + 3]
1256
+ ), n.x = f[o + 0], n.y = f[o + 1], r.x = f[o + 2], r.y = f[o + 3], o === 0 && g === !0 && C.copy(r);
257
1257
  break;
258
1258
  case "Q":
259
- s = f(D);
260
- for (let n = 0, B = s.length; n < B; n += 4)
261
- o.quadraticCurveTo(
262
- s[n + 0],
263
- s[n + 1],
264
- s[n + 2],
265
- s[n + 3]
266
- ), e.x = s[n + 0], e.y = s[n + 1], t.x = s[n + 2], t.y = s[n + 3], n === 0 && i === !0 && c.copy(t);
1259
+ f = L(V);
1260
+ for (let o = 0, j = f.length; o < j; o += 4)
1261
+ i.quadraticCurveTo(
1262
+ f[o + 0],
1263
+ f[o + 1],
1264
+ f[o + 2],
1265
+ f[o + 3]
1266
+ ), n.x = f[o + 0], n.y = f[o + 1], r.x = f[o + 2], r.y = f[o + 3], o === 0 && g === !0 && C.copy(r);
267
1267
  break;
268
1268
  case "T":
269
- s = f(D);
270
- for (let n = 0, B = s.length; n < B; n += 2) {
271
- const Y = k(t.x, e.x), ae = k(t.y, e.y);
272
- o.quadraticCurveTo(
273
- Y,
274
- ae,
275
- s[n + 0],
276
- s[n + 1]
277
- ), e.x = Y, e.y = ae, t.x = s[n + 0], t.y = s[n + 1], n === 0 && i === !0 && c.copy(t);
1269
+ f = L(V);
1270
+ for (let o = 0, j = f.length; o < j; o += 2) {
1271
+ const nt = w(r.x, n.x), pt = w(r.y, n.y);
1272
+ i.quadraticCurveTo(
1273
+ nt,
1274
+ pt,
1275
+ f[o + 0],
1276
+ f[o + 1]
1277
+ ), n.x = nt, n.y = pt, r.x = f[o + 0], r.y = f[o + 1], o === 0 && g === !0 && C.copy(r);
278
1278
  }
279
1279
  break;
280
1280
  case "A":
281
- s = f(D, [3, 4], 7);
282
- for (let n = 0, B = s.length; n < B; n += 7) {
283
- if (s[n + 5] == t.x && s[n + 6] == t.y) continue;
284
- const Y = t.clone();
285
- t.x = s[n + 5], t.y = s[n + 6], e.x = t.x, e.y = t.y, v(
286
- o,
287
- s[n],
288
- s[n + 1],
289
- s[n + 2],
290
- s[n + 3],
291
- s[n + 4],
292
- Y,
293
- t
294
- ), n === 0 && i === !0 && c.copy(t);
1281
+ f = L(V, [3, 4], 7);
1282
+ for (let o = 0, j = f.length; o < j; o += 7) {
1283
+ if (f[o + 5] == r.x && f[o + 6] == r.y) continue;
1284
+ const nt = r.clone();
1285
+ r.x = f[o + 5], r.y = f[o + 6], n.x = r.x, n.y = r.y, b(
1286
+ i,
1287
+ f[o],
1288
+ f[o + 1],
1289
+ f[o + 2],
1290
+ f[o + 3],
1291
+ f[o + 4],
1292
+ nt,
1293
+ r
1294
+ ), o === 0 && g === !0 && C.copy(r);
295
1295
  }
296
1296
  break;
297
1297
  case "m":
298
- s = f(D);
299
- for (let n = 0, B = s.length; n < B; n += 2)
300
- t.x += s[n + 0], t.y += s[n + 1], e.x = t.x, e.y = t.y, n === 0 ? o.moveTo(t.x, t.y) : o.lineTo(t.x, t.y), n === 0 && c.copy(t);
1298
+ f = L(V);
1299
+ for (let o = 0, j = f.length; o < j; o += 2)
1300
+ r.x += f[o + 0], r.y += f[o + 1], n.x = r.x, n.y = r.y, o === 0 ? i.moveTo(r.x, r.y) : i.lineTo(r.x, r.y), o === 0 && C.copy(r);
301
1301
  break;
302
1302
  case "h":
303
- s = f(D);
304
- for (let n = 0, B = s.length; n < B; n++)
305
- t.x += s[n], e.x = t.x, e.y = t.y, o.lineTo(t.x, t.y), n === 0 && i === !0 && c.copy(t);
1303
+ f = L(V);
1304
+ for (let o = 0, j = f.length; o < j; o++)
1305
+ r.x += f[o], n.x = r.x, n.y = r.y, i.lineTo(r.x, r.y), o === 0 && g === !0 && C.copy(r);
306
1306
  break;
307
1307
  case "v":
308
- s = f(D);
309
- for (let n = 0, B = s.length; n < B; n++)
310
- t.y += s[n], e.x = t.x, e.y = t.y, o.lineTo(t.x, t.y), n === 0 && i === !0 && c.copy(t);
1308
+ f = L(V);
1309
+ for (let o = 0, j = f.length; o < j; o++)
1310
+ r.y += f[o], n.x = r.x, n.y = r.y, i.lineTo(r.x, r.y), o === 0 && g === !0 && C.copy(r);
311
1311
  break;
312
1312
  case "l":
313
- s = f(D);
314
- for (let n = 0, B = s.length; n < B; n += 2)
315
- t.x += s[n + 0], t.y += s[n + 1], e.x = t.x, e.y = t.y, o.lineTo(t.x, t.y), n === 0 && i === !0 && c.copy(t);
1313
+ f = L(V);
1314
+ for (let o = 0, j = f.length; o < j; o += 2)
1315
+ r.x += f[o + 0], r.y += f[o + 1], n.x = r.x, n.y = r.y, i.lineTo(r.x, r.y), o === 0 && g === !0 && C.copy(r);
316
1316
  break;
317
1317
  case "c":
318
- s = f(D);
319
- for (let n = 0, B = s.length; n < B; n += 6)
320
- o.bezierCurveTo(
321
- t.x + s[n + 0],
322
- t.y + s[n + 1],
323
- t.x + s[n + 2],
324
- t.y + s[n + 3],
325
- t.x + s[n + 4],
326
- t.y + s[n + 5]
327
- ), e.x = t.x + s[n + 2], e.y = t.y + s[n + 3], t.x += s[n + 4], t.y += s[n + 5], n === 0 && i === !0 && c.copy(t);
1318
+ f = L(V);
1319
+ for (let o = 0, j = f.length; o < j; o += 6)
1320
+ i.bezierCurveTo(
1321
+ r.x + f[o + 0],
1322
+ r.y + f[o + 1],
1323
+ r.x + f[o + 2],
1324
+ r.y + f[o + 3],
1325
+ r.x + f[o + 4],
1326
+ r.y + f[o + 5]
1327
+ ), n.x = r.x + f[o + 2], n.y = r.y + f[o + 3], r.x += f[o + 4], r.y += f[o + 5], o === 0 && g === !0 && C.copy(r);
328
1328
  break;
329
1329
  case "s":
330
- s = f(D);
331
- for (let n = 0, B = s.length; n < B; n += 4)
332
- o.bezierCurveTo(
333
- k(t.x, e.x),
334
- k(t.y, e.y),
335
- t.x + s[n + 0],
336
- t.y + s[n + 1],
337
- t.x + s[n + 2],
338
- t.y + s[n + 3]
339
- ), e.x = t.x + s[n + 0], e.y = t.y + s[n + 1], t.x += s[n + 2], t.y += s[n + 3], n === 0 && i === !0 && c.copy(t);
1330
+ f = L(V);
1331
+ for (let o = 0, j = f.length; o < j; o += 4)
1332
+ i.bezierCurveTo(
1333
+ w(r.x, n.x),
1334
+ w(r.y, n.y),
1335
+ r.x + f[o + 0],
1336
+ r.y + f[o + 1],
1337
+ r.x + f[o + 2],
1338
+ r.y + f[o + 3]
1339
+ ), n.x = r.x + f[o + 0], n.y = r.y + f[o + 1], r.x += f[o + 2], r.y += f[o + 3], o === 0 && g === !0 && C.copy(r);
340
1340
  break;
341
1341
  case "q":
342
- s = f(D);
343
- for (let n = 0, B = s.length; n < B; n += 4)
344
- o.quadraticCurveTo(
345
- t.x + s[n + 0],
346
- t.y + s[n + 1],
347
- t.x + s[n + 2],
348
- t.y + s[n + 3]
349
- ), e.x = t.x + s[n + 0], e.y = t.y + s[n + 1], t.x += s[n + 2], t.y += s[n + 3], n === 0 && i === !0 && c.copy(t);
1342
+ f = L(V);
1343
+ for (let o = 0, j = f.length; o < j; o += 4)
1344
+ i.quadraticCurveTo(
1345
+ r.x + f[o + 0],
1346
+ r.y + f[o + 1],
1347
+ r.x + f[o + 2],
1348
+ r.y + f[o + 3]
1349
+ ), n.x = r.x + f[o + 0], n.y = r.y + f[o + 1], r.x += f[o + 2], r.y += f[o + 3], o === 0 && g === !0 && C.copy(r);
350
1350
  break;
351
1351
  case "t":
352
- s = f(D);
353
- for (let n = 0, B = s.length; n < B; n += 2) {
354
- const Y = k(t.x, e.x), ae = k(t.y, e.y);
355
- o.quadraticCurveTo(
356
- Y,
357
- ae,
358
- t.x + s[n + 0],
359
- t.y + s[n + 1]
360
- ), e.x = Y, e.y = ae, t.x = t.x + s[n + 0], t.y = t.y + s[n + 1], n === 0 && i === !0 && c.copy(t);
1352
+ f = L(V);
1353
+ for (let o = 0, j = f.length; o < j; o += 2) {
1354
+ const nt = w(r.x, n.x), pt = w(r.y, n.y);
1355
+ i.quadraticCurveTo(
1356
+ nt,
1357
+ pt,
1358
+ r.x + f[o + 0],
1359
+ r.y + f[o + 1]
1360
+ ), n.x = nt, n.y = pt, r.x = r.x + f[o + 0], r.y = r.y + f[o + 1], o === 0 && g === !0 && C.copy(r);
361
1361
  }
362
1362
  break;
363
1363
  case "a":
364
- s = f(D, [3, 4], 7);
365
- for (let n = 0, B = s.length; n < B; n += 7) {
366
- if (s[n + 5] == 0 && s[n + 6] == 0) continue;
367
- const Y = t.clone();
368
- t.x += s[n + 5], t.y += s[n + 6], e.x = t.x, e.y = t.y, v(
369
- o,
370
- s[n],
371
- s[n + 1],
372
- s[n + 2],
373
- s[n + 3],
374
- s[n + 4],
375
- Y,
376
- t
377
- ), n === 0 && i === !0 && c.copy(t);
1364
+ f = L(V, [3, 4], 7);
1365
+ for (let o = 0, j = f.length; o < j; o += 7) {
1366
+ if (f[o + 5] == 0 && f[o + 6] == 0) continue;
1367
+ const nt = r.clone();
1368
+ r.x += f[o + 5], r.y += f[o + 6], n.x = r.x, n.y = r.y, b(
1369
+ i,
1370
+ f[o],
1371
+ f[o + 1],
1372
+ f[o + 2],
1373
+ f[o + 3],
1374
+ f[o + 4],
1375
+ nt,
1376
+ r
1377
+ ), o === 0 && g === !0 && C.copy(r);
378
1378
  }
379
1379
  break;
380
1380
  case "Z":
381
1381
  case "z":
382
- o.currentPath.autoClose = !0, o.currentPath.curves.length > 0 && (t.copy(c), o.currentPath.currentPoint.copy(t), y = !0);
1382
+ i.currentPath.autoClose = !0, i.currentPath.curves.length > 0 && (r.copy(C), i.currentPath.currentPoint.copy(r), R = !0);
383
1383
  break;
384
1384
  default:
385
- console.warn(b);
1385
+ console.warn(v);
386
1386
  }
387
- i = !1;
1387
+ g = !1;
388
1388
  }
389
- return o;
1389
+ return i;
390
1390
  }
391
- function h(r) {
392
- if (!(!r.sheet || !r.sheet.cssRules || !r.sheet.cssRules.length))
393
- for (let o = 0; o < r.sheet.cssRules.length; o++) {
394
- const t = r.sheet.cssRules[o];
395
- if (t.type !== 1) continue;
396
- const e = t.selectorText.split(/,/gm).filter(Boolean).map((c) => c.trim());
397
- for (let c = 0; c < e.length; c++) {
398
- const y = Object.fromEntries(
399
- Object.entries(t.style).filter(([, i]) => i !== "")
1391
+ function m(h) {
1392
+ if (!(!h.sheet || !h.sheet.cssRules || !h.sheet.cssRules.length))
1393
+ for (let i = 0; i < h.sheet.cssRules.length; i++) {
1394
+ const r = h.sheet.cssRules[i];
1395
+ if (r.type !== 1) continue;
1396
+ const n = r.selectorText.split(/,/gm).filter(Boolean).map((C) => C.trim());
1397
+ for (let C = 0; C < n.length; C++) {
1398
+ const R = Object.fromEntries(
1399
+ Object.entries(r.style).filter(([, g]) => g !== "")
400
1400
  );
401
- K[e[c]] = Object.assign(
402
- K[e[c]] || {},
403
- y
1401
+ J[n[C]] = Object.assign(
1402
+ J[n[C]] || {},
1403
+ R
404
1404
  );
405
1405
  }
406
1406
  }
407
1407
  }
408
- function v(r, o, t, e, c, y, i, w) {
409
- if (o == 0 || t == 0) {
410
- r.lineTo(w.x, w.y);
1408
+ function b(h, i, r, n, C, R, g, P) {
1409
+ if (i == 0 || r == 0) {
1410
+ h.lineTo(P.x, P.y);
411
1411
  return;
412
1412
  }
413
- e = e * Math.PI / 180, o = Math.abs(o), t = Math.abs(t);
414
- const C = (i.x - w.x) / 2, O = (i.y - w.y) / 2, l = Math.cos(e) * C + Math.sin(e) * O, b = -Math.sin(e) * C + Math.cos(e) * O;
415
- let L = o * o, D = t * t;
416
- const s = l * l, n = b * b, B = s / L + n / D;
417
- if (B > 1) {
418
- const xe = Math.sqrt(B);
419
- o = xe * o, t = xe * t, L = o * o, D = t * t;
1413
+ n = n * Math.PI / 180, i = Math.abs(i), r = Math.abs(r);
1414
+ const F = (g.x - P.x) / 2, A = (g.y - P.y) / 2, y = Math.cos(n) * F + Math.sin(n) * A, v = -Math.sin(n) * F + Math.cos(n) * A;
1415
+ let S = i * i, V = r * r;
1416
+ const f = y * y, o = v * v, j = f / S + o / V;
1417
+ if (j > 1) {
1418
+ const wt = Math.sqrt(j);
1419
+ i = wt * i, r = wt * r, S = i * i, V = r * r;
420
1420
  }
421
- const Y = L * n + D * s, ae = (L * D - Y) / Y;
422
- let le = Math.sqrt(Math.max(0, ae));
423
- c === y && (le = -le);
424
- const re = le * o * b / t, de = -le * t * l / o, ge = Math.cos(e) * re - Math.sin(e) * de + (i.x + w.x) / 2, Pe = Math.sin(e) * re + Math.cos(e) * de + (i.y + w.y) / 2, be = x(1, 0, (l - re) / o, (b - de) / t), we = x((l - re) / o, (b - de) / t, (-l - re) / o, (-b - de) / t) % (Math.PI * 2);
425
- r.currentPath.absellipse(ge, Pe, o, t, be, be + we, y === 0, e);
1421
+ const nt = S * o + V * f, pt = (S * V - nt) / nt;
1422
+ let yt = Math.sqrt(Math.max(0, pt));
1423
+ C === R && (yt = -yt);
1424
+ const ft = yt * i * v / r, gt = -yt * r * y / i, bt = Math.cos(n) * ft - Math.sin(n) * gt + (g.x + P.x) / 2, _t = Math.sin(n) * ft + Math.cos(n) * gt + (g.y + P.y) / 2, Ct = Q(1, 0, (y - ft) / i, (v - gt) / r), St = Q((y - ft) / i, (v - gt) / r, (-y - ft) / i, (-v - gt) / r) % (Math.PI * 2);
1425
+ h.currentPath.absellipse(bt, _t, i, r, Ct, Ct + St, R === 0, n);
426
1426
  }
427
- function x(r, o, t, e) {
428
- const c = r * t + o * e, y = Math.sqrt(r * r + o * o) * Math.sqrt(t * t + e * e);
429
- let i = Math.acos(Math.max(-1, Math.min(1, c / y)));
430
- return r * e - o * t < 0 && (i = -i), i;
1427
+ function Q(h, i, r, n) {
1428
+ const C = h * r + i * n, R = Math.sqrt(h * h + i * i) * Math.sqrt(r * r + n * n);
1429
+ let g = Math.acos(Math.max(-1, Math.min(1, C / R)));
1430
+ return h * n - i * r < 0 && (g = -g), g;
431
1431
  }
432
- function q(r) {
433
- const o = p(r.getAttribute("x") || 0), t = p(r.getAttribute("y") || 0), e = p(r.getAttribute("rx") || r.getAttribute("ry") || 0), c = p(r.getAttribute("ry") || r.getAttribute("rx") || 0), y = p(r.getAttribute("width")), i = p(r.getAttribute("height")), w = 1 - 0.551915024494, C = new pe();
434
- return C.moveTo(o + e, t), C.lineTo(o + y - e, t), (e !== 0 || c !== 0) && C.bezierCurveTo(
435
- o + y - e * w,
436
- t,
437
- o + y,
438
- t + c * w,
439
- o + y,
440
- t + c
441
- ), C.lineTo(o + y, t + i - c), (e !== 0 || c !== 0) && C.bezierCurveTo(
442
- o + y,
443
- t + i - c * w,
444
- o + y - e * w,
445
- t + i,
446
- o + y - e,
447
- t + i
448
- ), C.lineTo(o + e, t + i), (e !== 0 || c !== 0) && C.bezierCurveTo(
449
- o + e * w,
450
- t + i,
451
- o,
452
- t + i - c * w,
453
- o,
454
- t + i - c
455
- ), C.lineTo(o, t + c), (e !== 0 || c !== 0) && C.bezierCurveTo(o, t + c * w, o + e * w, t, o + e, t), C;
1432
+ function x(h) {
1433
+ const i = c(h.getAttribute("x") || 0), r = c(h.getAttribute("y") || 0), n = c(h.getAttribute("rx") || h.getAttribute("ry") || 0), C = c(h.getAttribute("ry") || h.getAttribute("rx") || 0), R = c(h.getAttribute("width")), g = c(h.getAttribute("height")), P = 1 - 0.551915024494, F = new xt();
1434
+ return F.moveTo(i + n, r), F.lineTo(i + R - n, r), (n !== 0 || C !== 0) && F.bezierCurveTo(
1435
+ i + R - n * P,
1436
+ r,
1437
+ i + R,
1438
+ r + C * P,
1439
+ i + R,
1440
+ r + C
1441
+ ), F.lineTo(i + R, r + g - C), (n !== 0 || C !== 0) && F.bezierCurveTo(
1442
+ i + R,
1443
+ r + g - C * P,
1444
+ i + R - n * P,
1445
+ r + g,
1446
+ i + R - n,
1447
+ r + g
1448
+ ), F.lineTo(i + n, r + g), (n !== 0 || C !== 0) && F.bezierCurveTo(
1449
+ i + n * P,
1450
+ r + g,
1451
+ i,
1452
+ r + g - C * P,
1453
+ i,
1454
+ r + g - C
1455
+ ), F.lineTo(i, r + C), (n !== 0 || C !== 0) && F.bezierCurveTo(i, r + C * P, i + n * P, r, i + n, r), F;
456
1456
  }
457
- function T(r) {
458
- function o(y, i, w) {
459
- const C = p(i), O = p(w);
460
- c === 0 ? e.moveTo(C, O) : e.lineTo(C, O), c++;
1457
+ function z(h) {
1458
+ function i(R, g, P) {
1459
+ const F = c(g), A = c(P);
1460
+ C === 0 ? n.moveTo(F, A) : n.lineTo(F, A), C++;
461
1461
  }
462
- const t = /([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g, e = new pe();
463
- let c = 0;
464
- return r.getAttribute("points").replace(t, o), e.currentPath.autoClose = !0, e;
1462
+ const r = /([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g, n = new xt();
1463
+ let C = 0;
1464
+ return h.getAttribute("points").replace(r, i), n.currentPath.autoClose = !0, n;
465
1465
  }
466
- function H(r) {
467
- function o(y, i, w) {
468
- const C = p(i), O = p(w);
469
- c === 0 ? e.moveTo(C, O) : e.lineTo(C, O), c++;
1466
+ function W(h) {
1467
+ function i(R, g, P) {
1468
+ const F = c(g), A = c(P);
1469
+ C === 0 ? n.moveTo(F, A) : n.lineTo(F, A), C++;
470
1470
  }
471
- const t = /([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g, e = new pe();
472
- let c = 0;
473
- return r.getAttribute("points").replace(t, o), e.currentPath.autoClose = !1, e;
1471
+ const r = /([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g, n = new xt();
1472
+ let C = 0;
1473
+ return h.getAttribute("points").replace(r, i), n.currentPath.autoClose = !1, n;
474
1474
  }
475
- function G(r) {
476
- const o = p(r.getAttribute("cx") || 0), t = p(r.getAttribute("cy") || 0), e = p(r.getAttribute("r") || 0), c = new Ne();
477
- c.absarc(o, t, e, 0, Math.PI * 2);
478
- const y = new pe();
479
- return y.subPaths.push(c), y;
1475
+ function k(h) {
1476
+ const i = c(h.getAttribute("cx") || 0), r = c(h.getAttribute("cy") || 0), n = c(h.getAttribute("r") || 0), C = new Gt();
1477
+ C.absarc(i, r, n, 0, Math.PI * 2);
1478
+ const R = new xt();
1479
+ return R.subPaths.push(C), R;
480
1480
  }
481
- function E(r) {
482
- const o = p(r.getAttribute("cx") || 0), t = p(r.getAttribute("cy") || 0), e = p(r.getAttribute("rx") || 0), c = p(r.getAttribute("ry") || 0), y = new Ne();
483
- y.absellipse(o, t, e, c, 0, Math.PI * 2);
484
- const i = new pe();
485
- return i.subPaths.push(y), i;
1481
+ function H(h) {
1482
+ const i = c(h.getAttribute("cx") || 0), r = c(h.getAttribute("cy") || 0), n = c(h.getAttribute("rx") || 0), C = c(h.getAttribute("ry") || 0), R = new Gt();
1483
+ R.absellipse(i, r, n, C, 0, Math.PI * 2);
1484
+ const g = new xt();
1485
+ return g.subPaths.push(R), g;
486
1486
  }
487
- function W(r) {
488
- const o = p(r.getAttribute("x1") || 0), t = p(r.getAttribute("y1") || 0), e = p(r.getAttribute("x2") || 0), c = p(r.getAttribute("y2") || 0), y = new pe();
489
- return y.moveTo(o, t), y.lineTo(e, c), y.currentPath.autoClose = !1, y;
1487
+ function G(h) {
1488
+ const i = c(h.getAttribute("x1") || 0), r = c(h.getAttribute("y1") || 0), n = c(h.getAttribute("x2") || 0), C = c(h.getAttribute("y2") || 0), R = new xt();
1489
+ return R.moveTo(i, r), R.lineTo(n, C), R.currentPath.autoClose = !1, R;
490
1490
  }
491
- function N(r, o) {
492
- o = Object.assign({}, o);
493
- let t = {};
494
- if (r.hasAttribute("class")) {
495
- const i = r.getAttribute("class").split(/\s/).filter(Boolean).map((w) => w.trim());
496
- for (let w = 0; w < i.length; w++)
497
- t = Object.assign(t, K["." + i[w]]);
1491
+ function X(h, i) {
1492
+ i = Object.assign({}, i);
1493
+ let r = {};
1494
+ if (h.hasAttribute("class")) {
1495
+ const g = h.getAttribute("class").split(/\s/).filter(Boolean).map((P) => P.trim());
1496
+ for (let P = 0; P < g.length; P++)
1497
+ r = Object.assign(r, J["." + g[P]]);
498
1498
  }
499
- r.hasAttribute("id") && (t = Object.assign(t, K["#" + r.getAttribute("id")]));
500
- function e(i, w, C) {
501
- C === void 0 && (C = function(l) {
502
- return l.startsWith("url") && console.warn("SVGLoader: url access in attributes is not implemented."), l;
503
- }), r.hasAttribute(i) && (o[w] = C(r.getAttribute(i))), t[i] && (o[w] = C(t[i])), r.style && r.style[i] !== "" && (o[w] = C(r.style[i]));
1499
+ h.hasAttribute("id") && (r = Object.assign(r, J["#" + h.getAttribute("id")]));
1500
+ function n(g, P, F) {
1501
+ F === void 0 && (F = function(y) {
1502
+ return y.startsWith("url") && console.warn("SVGLoader: url access in attributes is not implemented."), y;
1503
+ }), h.hasAttribute(g) && (i[P] = F(h.getAttribute(g))), r[g] && (i[P] = F(r[g])), h.style && h.style[g] !== "" && (i[P] = F(h.style[g]));
504
1504
  }
505
- function c(i) {
506
- return Math.max(0, Math.min(1, p(i)));
1505
+ function C(g) {
1506
+ return Math.max(0, Math.min(1, c(g)));
507
1507
  }
508
- function y(i) {
509
- return Math.max(0, p(i));
1508
+ function R(g) {
1509
+ return Math.max(0, c(g));
510
1510
  }
511
- return e("fill", "fill"), e("fill-opacity", "fillOpacity", c), e("fill-rule", "fillRule"), e("opacity", "opacity", c), e("stroke", "stroke"), e("stroke-opacity", "strokeOpacity", c), e("stroke-width", "strokeWidth", y), e("stroke-linejoin", "strokeLineJoin"), e("stroke-linecap", "strokeLineCap"), e("stroke-miterlimit", "strokeMiterLimit", y), e("visibility", "visibility"), o;
1511
+ return n("fill", "fill"), n("fill-opacity", "fillOpacity", C), n("fill-rule", "fillRule"), n("opacity", "opacity", C), n("stroke", "stroke"), n("stroke-opacity", "strokeOpacity", C), n("stroke-width", "strokeWidth", R), n("stroke-linejoin", "strokeLineJoin"), n("stroke-linecap", "strokeLineCap"), n("stroke-miterlimit", "strokeMiterLimit", R), n("visibility", "visibility"), i;
512
1512
  }
513
- function k(r, o) {
514
- return r - (o - r);
1513
+ function w(h, i) {
1514
+ return h - (i - h);
515
1515
  }
516
- function f(r, o, t) {
517
- if (typeof r != "string")
518
- throw new TypeError("Invalid input: " + typeof r);
519
- const e = {
1516
+ function L(h, i, r) {
1517
+ if (typeof h != "string")
1518
+ throw new TypeError("Invalid input: " + typeof h);
1519
+ const n = {
520
1520
  WHITESPACE: /[ \t\r\n]/,
521
1521
  DIGIT: /[\d]/,
522
1522
  SIGN: /[-+]/,
@@ -524,80 +1524,80 @@ class Ie extends ct {
524
1524
  COMMA: /,/,
525
1525
  EXP: /e/i,
526
1526
  FLAGS: /[01]/
527
- }, c = 0, y = 1, i = 2, w = 3;
528
- let C = c, O = !0, l = "", b = "";
529
- const L = [];
530
- function D(Y, ae, le) {
531
- const re = new SyntaxError('Unexpected character "' + Y + '" at index ' + ae + ".");
532
- throw re.partial = le, re;
1527
+ }, C = 0, R = 1, g = 2, P = 3;
1528
+ let F = C, A = !0, y = "", v = "";
1529
+ const S = [];
1530
+ function V(nt, pt, yt) {
1531
+ const ft = new SyntaxError('Unexpected character "' + nt + '" at index ' + pt + ".");
1532
+ throw ft.partial = yt, ft;
533
1533
  }
534
- function s() {
535
- l !== "" && (b === "" ? L.push(Number(l)) : L.push(Number(l) * Math.pow(10, Number(b)))), l = "", b = "";
1534
+ function f() {
1535
+ y !== "" && (v === "" ? S.push(Number(y)) : S.push(Number(y) * Math.pow(10, Number(v)))), y = "", v = "";
536
1536
  }
537
- let n;
538
- const B = r.length;
539
- for (let Y = 0; Y < B; Y++) {
540
- if (n = r[Y], Array.isArray(o) && o.includes(L.length % t) && e.FLAGS.test(n)) {
541
- C = y, l = n, s();
1537
+ let o;
1538
+ const j = h.length;
1539
+ for (let nt = 0; nt < j; nt++) {
1540
+ if (o = h[nt], Array.isArray(i) && i.includes(S.length % r) && n.FLAGS.test(o)) {
1541
+ F = R, y = o, f();
542
1542
  continue;
543
1543
  }
544
- if (C === c) {
545
- if (e.WHITESPACE.test(n))
1544
+ if (F === C) {
1545
+ if (n.WHITESPACE.test(o))
546
1546
  continue;
547
- if (e.DIGIT.test(n) || e.SIGN.test(n)) {
548
- C = y, l = n;
1547
+ if (n.DIGIT.test(o) || n.SIGN.test(o)) {
1548
+ F = R, y = o;
549
1549
  continue;
550
1550
  }
551
- if (e.POINT.test(n)) {
552
- C = i, l = n;
1551
+ if (n.POINT.test(o)) {
1552
+ F = g, y = o;
553
1553
  continue;
554
1554
  }
555
- e.COMMA.test(n) && (O && D(n, Y, L), O = !0);
1555
+ n.COMMA.test(o) && (A && V(o, nt, S), A = !0);
556
1556
  }
557
- if (C === y) {
558
- if (e.DIGIT.test(n)) {
559
- l += n;
1557
+ if (F === R) {
1558
+ if (n.DIGIT.test(o)) {
1559
+ y += o;
560
1560
  continue;
561
1561
  }
562
- if (e.POINT.test(n)) {
563
- l += n, C = i;
1562
+ if (n.POINT.test(o)) {
1563
+ y += o, F = g;
564
1564
  continue;
565
1565
  }
566
- if (e.EXP.test(n)) {
567
- C = w;
1566
+ if (n.EXP.test(o)) {
1567
+ F = P;
568
1568
  continue;
569
1569
  }
570
- e.SIGN.test(n) && l.length === 1 && e.SIGN.test(l[0]) && D(n, Y, L);
1570
+ n.SIGN.test(o) && y.length === 1 && n.SIGN.test(y[0]) && V(o, nt, S);
571
1571
  }
572
- if (C === i) {
573
- if (e.DIGIT.test(n)) {
574
- l += n;
1572
+ if (F === g) {
1573
+ if (n.DIGIT.test(o)) {
1574
+ y += o;
575
1575
  continue;
576
1576
  }
577
- if (e.EXP.test(n)) {
578
- C = w;
1577
+ if (n.EXP.test(o)) {
1578
+ F = P;
579
1579
  continue;
580
1580
  }
581
- e.POINT.test(n) && l[l.length - 1] === "." && D(n, Y, L);
1581
+ n.POINT.test(o) && y[y.length - 1] === "." && V(o, nt, S);
582
1582
  }
583
- if (C === w) {
584
- if (e.DIGIT.test(n)) {
585
- b += n;
1583
+ if (F === P) {
1584
+ if (n.DIGIT.test(o)) {
1585
+ v += o;
586
1586
  continue;
587
1587
  }
588
- if (e.SIGN.test(n)) {
589
- if (b === "") {
590
- b += n;
1588
+ if (n.SIGN.test(o)) {
1589
+ if (v === "") {
1590
+ v += o;
591
1591
  continue;
592
1592
  }
593
- b.length === 1 && e.SIGN.test(b) && D(n, Y, L);
1593
+ v.length === 1 && n.SIGN.test(v) && V(o, nt, S);
594
1594
  }
595
1595
  }
596
- e.WHITESPACE.test(n) ? (s(), C = c, O = !1) : e.COMMA.test(n) ? (s(), C = c, O = !0) : e.SIGN.test(n) ? (s(), C = y, l = n) : e.POINT.test(n) ? (s(), C = i, l = n) : D(n, Y, L);
1596
+ n.WHITESPACE.test(o) ? (f(), F = C, A = !1) : n.COMMA.test(o) ? (f(), F = C, A = !0) : n.SIGN.test(o) ? (f(), F = R, y = o) : n.POINT.test(o) ? (f(), F = g, y = o) : V(o, nt, S);
597
1597
  }
598
- return s(), L;
1598
+ return f(), S;
599
1599
  }
600
- const P = ["mm", "cm", "in", "pt", "pc", "px"], d = {
1600
+ const M = ["mm", "cm", "in", "pt", "pc", "px"], U = {
601
1601
  mm: {
602
1602
  mm: 1,
603
1603
  cm: 0.1,
@@ -642,64 +1642,64 @@ class Ie extends ct {
642
1642
  px: 1
643
1643
  }
644
1644
  };
645
- function p(r) {
646
- let o = "px";
647
- if (typeof r == "string" || r instanceof String)
648
- for (let e = 0, c = P.length; e < c; e++) {
649
- const y = P[e];
650
- if (r.endsWith(y)) {
651
- o = y, r = r.substring(0, r.length - y.length);
1645
+ function c(h) {
1646
+ let i = "px";
1647
+ if (typeof h == "string" || h instanceof String)
1648
+ for (let n = 0, C = M.length; n < C; n++) {
1649
+ const R = M[n];
1650
+ if (h.endsWith(R)) {
1651
+ i = R, h = h.substring(0, h.length - R.length);
652
1652
  break;
653
1653
  }
654
1654
  }
655
- let t;
656
- return o === "px" && A.defaultUnit !== "px" ? t = d.in[A.defaultUnit] / A.defaultDPI : (t = d[o][A.defaultUnit], t < 0 && (t = d[o].in * A.defaultDPI)), t * parseFloat(r);
1655
+ let r;
1656
+ return i === "px" && s.defaultUnit !== "px" ? r = U.in[s.defaultUnit] / s.defaultDPI : (r = U[i][s.defaultUnit], r < 0 && (r = U[i].in * s.defaultDPI)), r * parseFloat(h);
657
1657
  }
658
- function S(r) {
659
- if (!(r.hasAttribute("transform") || r.nodeName === "use" && (r.hasAttribute("x") || r.hasAttribute("y"))))
1658
+ function p(h) {
1659
+ if (!(h.hasAttribute("transform") || h.nodeName === "use" && (h.hasAttribute("x") || h.hasAttribute("y"))))
660
1660
  return null;
661
- const o = j(r);
662
- return $.length > 0 && o.premultiply($[$.length - 1]), se.copy(o), $.push(o), o;
1661
+ const i = I(h);
1662
+ return E.length > 0 && i.premultiply(E[E.length - 1]), et.copy(i), E.push(i), i;
663
1663
  }
664
- function j(r) {
665
- const o = new ye(), t = oe;
666
- if (r.nodeName === "use" && (r.hasAttribute("x") || r.hasAttribute("y"))) {
667
- const e = p(r.getAttribute("x")), c = p(r.getAttribute("y"));
668
- o.translate(e, c);
1664
+ function I(h) {
1665
+ const i = new vt(), r = q;
1666
+ if (h.nodeName === "use" && (h.hasAttribute("x") || h.hasAttribute("y"))) {
1667
+ const n = c(h.getAttribute("x")), C = c(h.getAttribute("y"));
1668
+ i.translate(n, C);
669
1669
  }
670
- if (r.hasAttribute("transform")) {
671
- const e = r.getAttribute("transform").split(")");
672
- for (let c = e.length - 1; c >= 0; c--) {
673
- const y = e[c].trim();
674
- if (y === "") continue;
675
- const i = y.indexOf("("), w = y.length;
676
- if (i > 0 && i < w) {
677
- const C = y.slice(0, i), O = f(y.slice(i + 1));
678
- switch (t.identity(), C) {
1670
+ if (h.hasAttribute("transform")) {
1671
+ const n = h.getAttribute("transform").split(")");
1672
+ for (let C = n.length - 1; C >= 0; C--) {
1673
+ const R = n[C].trim();
1674
+ if (R === "") continue;
1675
+ const g = R.indexOf("("), P = R.length;
1676
+ if (g > 0 && g < P) {
1677
+ const F = R.slice(0, g), A = L(R.slice(g + 1));
1678
+ switch (r.identity(), F) {
679
1679
  case "translate":
680
- if (O.length >= 1) {
681
- const l = O[0];
682
- let b = 0;
683
- O.length >= 2 && (b = O[1]), t.translate(l, b);
1680
+ if (A.length >= 1) {
1681
+ const y = A[0];
1682
+ let v = 0;
1683
+ A.length >= 2 && (v = A[1]), r.translate(y, v);
684
1684
  }
685
1685
  break;
686
1686
  case "rotate":
687
- if (O.length >= 1) {
688
- let l = 0, b = 0, L = 0;
689
- l = O[0] * Math.PI / 180, O.length >= 3 && (b = O[1], L = O[2]), J.makeTranslation(-b, -L), U.makeRotation(l), g.multiplyMatrices(U, J), J.makeTranslation(b, L), t.multiplyMatrices(J, g);
1687
+ if (A.length >= 1) {
1688
+ let y = 0, v = 0, S = 0;
1689
+ y = A[0] * Math.PI / 180, A.length >= 3 && (v = A[1], S = A[2]), $.makeTranslation(-v, -S), K.makeRotation(y), l.multiplyMatrices(K, $), $.makeTranslation(v, S), r.multiplyMatrices($, l);
690
1690
  }
691
1691
  break;
692
1692
  case "scale":
693
- if (O.length >= 1) {
694
- const l = O[0];
695
- let b = l;
696
- O.length >= 2 && (b = O[1]), t.scale(l, b);
1693
+ if (A.length >= 1) {
1694
+ const y = A[0];
1695
+ let v = y;
1696
+ A.length >= 2 && (v = A[1]), r.scale(y, v);
697
1697
  }
698
1698
  break;
699
1699
  case "skewX":
700
- O.length === 1 && t.set(
1700
+ A.length === 1 && r.set(
701
1701
  1,
702
- Math.tan(O[0] * Math.PI / 180),
1702
+ Math.tan(A[0] * Math.PI / 180),
703
1703
  0,
704
1704
  0,
705
1705
  1,
@@ -710,11 +1710,11 @@ class Ie extends ct {
710
1710
  );
711
1711
  break;
712
1712
  case "skewY":
713
- O.length === 1 && t.set(
1713
+ A.length === 1 && r.set(
714
1714
  1,
715
1715
  0,
716
1716
  0,
717
- Math.tan(O[0] * Math.PI / 180),
1717
+ Math.tan(A[0] * Math.PI / 180),
718
1718
  1,
719
1719
  0,
720
1720
  0,
@@ -723,13 +1723,13 @@ class Ie extends ct {
723
1723
  );
724
1724
  break;
725
1725
  case "matrix":
726
- O.length === 6 && t.set(
727
- O[0],
728
- O[2],
729
- O[4],
730
- O[1],
731
- O[3],
732
- O[5],
1726
+ A.length === 6 && r.set(
1727
+ A[0],
1728
+ A[2],
1729
+ A[4],
1730
+ A[1],
1731
+ A[3],
1732
+ A[5],
733
1733
  0,
734
1734
  0,
735
1735
  1
@@ -737,95 +1737,95 @@ class Ie extends ct {
737
1737
  break;
738
1738
  }
739
1739
  }
740
- o.premultiply(t);
1740
+ i.premultiply(r);
741
1741
  }
742
1742
  }
743
- return o;
1743
+ return i;
744
1744
  }
745
- function m(r, o) {
746
- function t(i) {
747
- ee.set(i.x, i.y, 1).applyMatrix3(o), i.set(ee.x, ee.y);
1745
+ function u(h, i) {
1746
+ function r(g) {
1747
+ _.set(g.x, g.y, 1).applyMatrix3(i), g.set(_.x, _.y);
748
1748
  }
749
- function e(i) {
750
- const w = i.xRadius, C = i.yRadius, O = Math.cos(i.aRotation), l = Math.sin(i.aRotation), b = new ke(w * O, w * l, 0), L = new ke(-C * l, C * O, 0), D = b.applyMatrix3(o), s = L.applyMatrix3(o), n = oe.set(
751
- D.x,
752
- s.x,
1749
+ function n(g) {
1750
+ const P = g.xRadius, F = g.yRadius, A = Math.cos(g.aRotation), y = Math.sin(g.aRotation), v = new Lt(P * A, P * y, 0), S = new Lt(-F * y, F * A, 0), V = v.applyMatrix3(i), f = S.applyMatrix3(i), o = q.set(
1751
+ V.x,
1752
+ f.x,
753
1753
  0,
754
- D.y,
755
- s.y,
1754
+ V.y,
1755
+ f.y,
756
1756
  0,
757
1757
  0,
758
1758
  0,
759
1759
  1
760
- ), B = J.copy(n).invert(), le = U.copy(B).transpose().multiply(B).elements, re = Z(le[0], le[1], le[4]), de = Math.sqrt(re.rt1), ge = Math.sqrt(re.rt2);
761
- if (i.xRadius = 1 / de, i.yRadius = 1 / ge, i.aRotation = Math.atan2(re.sn, re.cs), !((i.aEndAngle - i.aStartAngle) % (2 * Math.PI) < Number.EPSILON)) {
762
- const be = J.set(
763
- de,
1760
+ ), j = $.copy(o).invert(), yt = K.copy(j).transpose().multiply(j).elements, ft = tt(yt[0], yt[1], yt[4]), gt = Math.sqrt(ft.rt1), bt = Math.sqrt(ft.rt2);
1761
+ if (g.xRadius = 1 / gt, g.yRadius = 1 / bt, g.aRotation = Math.atan2(ft.sn, ft.cs), !((g.aEndAngle - g.aStartAngle) % (2 * Math.PI) < Number.EPSILON)) {
1762
+ const Ct = $.set(
1763
+ gt,
764
1764
  0,
765
1765
  0,
766
1766
  0,
767
- ge,
1767
+ bt,
768
1768
  0,
769
1769
  0,
770
1770
  0,
771
1771
  1
772
- ), we = U.set(
773
- re.cs,
774
- re.sn,
1772
+ ), St = K.set(
1773
+ ft.cs,
1774
+ ft.sn,
775
1775
  0,
776
- -re.sn,
777
- re.cs,
1776
+ -ft.sn,
1777
+ ft.cs,
778
1778
  0,
779
1779
  0,
780
1780
  0,
781
1781
  1
782
- ), xe = be.multiply(we).multiply(n), Re = (Le) => {
783
- const { x: He, y: Ue } = new ke(Math.cos(Le), Math.sin(Le), 0).applyMatrix3(xe);
784
- return Math.atan2(Ue, He);
1782
+ ), wt = Ct.multiply(St).multiply(o), $t = (te) => {
1783
+ const { x: Se, y: ze } = new Lt(Math.cos(te), Math.sin(te), 0).applyMatrix3(wt);
1784
+ return Math.atan2(ze, Se);
785
1785
  };
786
- i.aStartAngle = Re(i.aStartAngle), i.aEndAngle = Re(i.aEndAngle), z(o) && (i.aClockwise = !i.aClockwise);
1786
+ g.aStartAngle = $t(g.aStartAngle), g.aEndAngle = $t(g.aEndAngle), N(i) && (g.aClockwise = !g.aClockwise);
787
1787
  }
788
1788
  }
789
- function c(i) {
790
- const w = F(o), C = X(o);
791
- i.xRadius *= w, i.yRadius *= C;
792
- const O = w > Number.EPSILON ? Math.atan2(o.elements[1], o.elements[0]) : Math.atan2(-o.elements[3], o.elements[4]);
793
- i.aRotation += O, z(o) && (i.aStartAngle *= -1, i.aEndAngle *= -1, i.aClockwise = !i.aClockwise);
1789
+ function C(g) {
1790
+ const P = D(i), F = Y(i);
1791
+ g.xRadius *= P, g.yRadius *= F;
1792
+ const A = P > Number.EPSILON ? Math.atan2(i.elements[1], i.elements[0]) : Math.atan2(-i.elements[3], i.elements[4]);
1793
+ g.aRotation += A, N(i) && (g.aStartAngle *= -1, g.aEndAngle *= -1, g.aClockwise = !g.aClockwise);
794
1794
  }
795
- const y = r.subPaths;
796
- for (let i = 0, w = y.length; i < w; i++) {
797
- const O = y[i].curves;
798
- for (let l = 0; l < O.length; l++) {
799
- const b = O[l];
800
- b.isLineCurve ? (t(b.v1), t(b.v2)) : b.isCubicBezierCurve ? (t(b.v0), t(b.v1), t(b.v2), t(b.v3)) : b.isQuadraticBezierCurve ? (t(b.v0), t(b.v1), t(b.v2)) : b.isEllipseCurve && (te.set(b.aX, b.aY), t(te), b.aX = te.x, b.aY = te.y, R(o) ? e(b) : c(b));
1795
+ const R = h.subPaths;
1796
+ for (let g = 0, P = R.length; g < P; g++) {
1797
+ const A = R[g].curves;
1798
+ for (let y = 0; y < A.length; y++) {
1799
+ const v = A[y];
1800
+ v.isLineCurve ? (r(v.v1), r(v.v2)) : v.isCubicBezierCurve ? (r(v.v0), r(v.v1), r(v.v2), r(v.v3)) : v.isQuadraticBezierCurve ? (r(v.v0), r(v.v1), r(v.v2)) : v.isEllipseCurve && (B.set(v.aX, v.aY), r(B), v.aX = B.x, v.aY = B.y, O(i) ? n(v) : C(v));
801
1801
  }
802
1802
  }
803
1803
  }
804
- function z(r) {
805
- const o = r.elements;
806
- return o[0] * o[4] - o[1] * o[3] < 0;
1804
+ function N(h) {
1805
+ const i = h.elements;
1806
+ return i[0] * i[4] - i[1] * i[3] < 0;
807
1807
  }
808
- function R(r) {
809
- const o = r.elements, t = o[0] * o[3] + o[1] * o[4];
810
- if (t === 0) return !1;
811
- const e = F(r), c = X(r);
812
- return Math.abs(t / (e * c)) > Number.EPSILON;
1808
+ function O(h) {
1809
+ const i = h.elements, r = i[0] * i[3] + i[1] * i[4];
1810
+ if (r === 0) return !1;
1811
+ const n = D(h), C = Y(h);
1812
+ return Math.abs(r / (n * C)) > Number.EPSILON;
813
1813
  }
814
- function F(r) {
815
- const o = r.elements;
816
- return Math.sqrt(o[0] * o[0] + o[1] * o[1]);
1814
+ function D(h) {
1815
+ const i = h.elements;
1816
+ return Math.sqrt(i[0] * i[0] + i[1] * i[1]);
817
1817
  }
818
- function X(r) {
819
- const o = r.elements;
820
- return Math.sqrt(o[3] * o[3] + o[4] * o[4]);
1818
+ function Y(h) {
1819
+ const i = h.elements;
1820
+ return Math.sqrt(i[3] * i[3] + i[4] * i[4]);
821
1821
  }
822
- function Z(r, o, t) {
823
- let e, c, y, i, w;
824
- const C = r + t, O = r - t, l = Math.sqrt(O * O + 4 * o * o);
825
- return C > 0 ? (e = 0.5 * (C + l), w = 1 / e, c = r * w * t - o * w * o) : C < 0 ? c = 0.5 * (C - l) : (e = 0.5 * l, c = -0.5 * l), O > 0 ? y = O + l : y = O - l, Math.abs(y) > 2 * Math.abs(o) ? (w = -2 * o / y, i = 1 / Math.sqrt(1 + w * w), y = w * i) : Math.abs(o) === 0 ? (y = 1, i = 0) : (w = -0.5 * y / o, y = 1 / Math.sqrt(1 + w * w), i = w * y), O > 0 && (w = y, y = -i, i = w), { rt1: e, rt2: c, cs: y, sn: i };
1822
+ function tt(h, i, r) {
1823
+ let n, C, R, g, P;
1824
+ const F = h + r, A = h - r, y = Math.sqrt(A * A + 4 * i * i);
1825
+ return F > 0 ? (n = 0.5 * (F + y), P = 1 / n, C = h * P * r - i * P * i) : F < 0 ? C = 0.5 * (F - y) : (n = 0.5 * y, C = -0.5 * y), A > 0 ? R = A + y : R = A - y, Math.abs(R) > 2 * Math.abs(i) ? (P = -2 * i / R, g = 1 / Math.sqrt(1 + P * P), R = P * g) : Math.abs(i) === 0 ? (R = 1, g = 0) : (P = -0.5 * R / i, R = 1 / Math.sqrt(1 + P * P), g = P * R), A > 0 && (P = R, R = -g, g = P), { rt1: n, rt2: C, cs: R, sn: g };
826
1826
  }
827
- const V = [], K = {}, $ = [], oe = new ye(), J = new ye(), U = new ye(), g = new ye(), te = new Q(), ee = new ke(), se = new ye(), he = new DOMParser().parseFromString(a, "image/svg+xml");
828
- return M(he.documentElement, {
1827
+ const Z = [], J = {}, E = [], q = new vt(), $ = new vt(), K = new vt(), l = new vt(), B = new it(), _ = new Lt(), et = new vt(), st = new DOMParser().parseFromString(e, "image/svg+xml");
1828
+ return a(st.documentElement, {
829
1829
  fill: "#000",
830
1830
  fillOpacity: 1,
831
1831
  strokeOpacity: 1,
@@ -833,7 +1833,7 @@ class Ie extends ct {
833
1833
  strokeLineJoin: "miter",
834
1834
  strokeLineCap: "butt",
835
1835
  strokeMiterLimit: 4
836
- }), { paths: V, xml: he.documentElement };
1836
+ }), { paths: Z, xml: st.documentElement };
837
1837
  }
838
1838
  /**
839
1839
  * Creates from the given shape path and array of shapes.
@@ -841,8 +1841,8 @@ class Ie extends ct {
841
1841
  * @param {ShapePath} shapePath - The shape path.
842
1842
  * @return {Array<Shape>} An array of shapes.
843
1843
  */
844
- static createShapes(a) {
845
- const M = {
1844
+ static createShapes(e) {
1845
+ const a = {
846
1846
  ORIGIN: 0,
847
1847
  DESTINATION: 1,
848
1848
  BETWEEN: 2,
@@ -850,133 +1850,133 @@ class Ie extends ct {
850
1850
  RIGHT: 4,
851
1851
  BEHIND: 5,
852
1852
  BEYOND: 6
853
- }, I = {
854
- loc: M.ORIGIN,
1853
+ }, d = {
1854
+ loc: a.ORIGIN,
855
1855
  t: 0
856
1856
  };
857
- function h(k, f, P, d) {
858
- const p = k.x, S = f.x, j = P.x, m = d.x, z = k.y, R = f.y, F = P.y, X = d.y, Z = (m - j) * (z - F) - (X - F) * (p - j), V = (S - p) * (z - F) - (R - z) * (p - j), K = (X - F) * (S - p) - (m - j) * (R - z), $ = Z / K, oe = V / K;
859
- if (K === 0 && Z !== 0 || $ <= 0 || $ >= 1 || oe < 0 || oe > 1)
1857
+ function m(w, L, M, U) {
1858
+ const c = w.x, p = L.x, I = M.x, u = U.x, N = w.y, O = L.y, D = M.y, Y = U.y, tt = (u - I) * (N - D) - (Y - D) * (c - I), Z = (p - c) * (N - D) - (O - N) * (c - I), J = (Y - D) * (p - c) - (u - I) * (O - N), E = tt / J, q = Z / J;
1859
+ if (J === 0 && tt !== 0 || E <= 0 || E >= 1 || q < 0 || q > 1)
860
1860
  return null;
861
- if (Z === 0 && K === 0) {
862
- for (let J = 0; J < 2; J++)
863
- if (v(J === 0 ? P : d, k, f), I.loc == M.ORIGIN) {
864
- const U = J === 0 ? P : d;
865
- return { x: U.x, y: U.y, t: I.t };
866
- } else if (I.loc == M.BETWEEN) {
867
- const U = +(p + I.t * (S - p)).toPrecision(10), g = +(z + I.t * (R - z)).toPrecision(10);
868
- return { x: U, y: g, t: I.t };
1861
+ if (tt === 0 && J === 0) {
1862
+ for (let $ = 0; $ < 2; $++)
1863
+ if (b($ === 0 ? M : U, w, L), d.loc == a.ORIGIN) {
1864
+ const K = $ === 0 ? M : U;
1865
+ return { x: K.x, y: K.y, t: d.t };
1866
+ } else if (d.loc == a.BETWEEN) {
1867
+ const K = +(c + d.t * (p - c)).toPrecision(10), l = +(N + d.t * (O - N)).toPrecision(10);
1868
+ return { x: K, y: l, t: d.t };
869
1869
  }
870
1870
  return null;
871
1871
  } else {
872
- for (let g = 0; g < 2; g++)
873
- if (v(g === 0 ? P : d, k, f), I.loc == M.ORIGIN) {
874
- const te = g === 0 ? P : d;
875
- return { x: te.x, y: te.y, t: I.t };
1872
+ for (let l = 0; l < 2; l++)
1873
+ if (b(l === 0 ? M : U, w, L), d.loc == a.ORIGIN) {
1874
+ const B = l === 0 ? M : U;
1875
+ return { x: B.x, y: B.y, t: d.t };
876
1876
  }
877
- const J = +(p + $ * (S - p)).toPrecision(10), U = +(z + $ * (R - z)).toPrecision(10);
878
- return { x: J, y: U, t: $ };
1877
+ const $ = +(c + E * (p - c)).toPrecision(10), K = +(N + E * (O - N)).toPrecision(10);
1878
+ return { x: $, y: K, t: E };
879
1879
  }
880
1880
  }
881
- function v(k, f, P) {
882
- const d = P.x - f.x, p = P.y - f.y, S = k.x - f.x, j = k.y - f.y, m = d * j - S * p;
883
- if (k.x === f.x && k.y === f.y) {
884
- I.loc = M.ORIGIN, I.t = 0;
1881
+ function b(w, L, M) {
1882
+ const U = M.x - L.x, c = M.y - L.y, p = w.x - L.x, I = w.y - L.y, u = U * I - p * c;
1883
+ if (w.x === L.x && w.y === L.y) {
1884
+ d.loc = a.ORIGIN, d.t = 0;
885
1885
  return;
886
1886
  }
887
- if (k.x === P.x && k.y === P.y) {
888
- I.loc = M.DESTINATION, I.t = 1;
1887
+ if (w.x === M.x && w.y === M.y) {
1888
+ d.loc = a.DESTINATION, d.t = 1;
889
1889
  return;
890
1890
  }
891
- if (m < -Number.EPSILON) {
892
- I.loc = M.LEFT;
1891
+ if (u < -Number.EPSILON) {
1892
+ d.loc = a.LEFT;
893
1893
  return;
894
1894
  }
895
- if (m > Number.EPSILON) {
896
- I.loc = M.RIGHT;
1895
+ if (u > Number.EPSILON) {
1896
+ d.loc = a.RIGHT;
897
1897
  return;
898
1898
  }
899
- if (d * S < 0 || p * j < 0) {
900
- I.loc = M.BEHIND;
1899
+ if (U * p < 0 || c * I < 0) {
1900
+ d.loc = a.BEHIND;
901
1901
  return;
902
1902
  }
903
- if (Math.sqrt(d * d + p * p) < Math.sqrt(S * S + j * j)) {
904
- I.loc = M.BEYOND;
1903
+ if (Math.sqrt(U * U + c * c) < Math.sqrt(p * p + I * I)) {
1904
+ d.loc = a.BEYOND;
905
1905
  return;
906
1906
  }
907
- let z;
908
- d !== 0 ? z = S / d : z = j / p, I.loc = M.BETWEEN, I.t = z;
1907
+ let N;
1908
+ U !== 0 ? N = p / U : N = I / c, d.loc = a.BETWEEN, d.t = N;
909
1909
  }
910
- function x(k, f) {
911
- const P = [], d = [];
912
- for (let p = 1; p < k.length; p++) {
913
- const S = k[p - 1], j = k[p];
914
- for (let m = 1; m < f.length; m++) {
915
- const z = f[m - 1], R = f[m], F = h(S, j, z, R);
916
- F !== null && P.find((X) => X.t <= F.t + Number.EPSILON && X.t >= F.t - Number.EPSILON) === void 0 && (P.push(F), d.push(new Q(F.x, F.y)));
1910
+ function Q(w, L) {
1911
+ const M = [], U = [];
1912
+ for (let c = 1; c < w.length; c++) {
1913
+ const p = w[c - 1], I = w[c];
1914
+ for (let u = 1; u < L.length; u++) {
1915
+ const N = L[u - 1], O = L[u], D = m(p, I, N, O);
1916
+ D !== null && M.find((Y) => Y.t <= D.t + Number.EPSILON && Y.t >= D.t - Number.EPSILON) === void 0 && (M.push(D), U.push(new it(D.x, D.y)));
917
1917
  }
918
1918
  }
919
- return d;
1919
+ return U;
920
1920
  }
921
- function q(k, f, P) {
922
- const d = new Q();
923
- f.getCenter(d);
924
- const p = [];
925
- return P.forEach((S) => {
926
- S.boundingBox.containsPoint(d) && x(k, S.points).forEach((m) => {
927
- p.push({ identifier: S.identifier, isCW: S.isCW, point: m });
1921
+ function x(w, L, M) {
1922
+ const U = new it();
1923
+ L.getCenter(U);
1924
+ const c = [];
1925
+ return M.forEach((p) => {
1926
+ p.boundingBox.containsPoint(U) && Q(w, p.points).forEach((u) => {
1927
+ c.push({ identifier: p.identifier, isCW: p.isCW, point: u });
928
1928
  });
929
- }), p.sort((S, j) => S.point.x - j.point.x), p;
1929
+ }), c.sort((p, I) => p.point.x - I.point.x), c;
930
1930
  }
931
- function T(k, f, P, d, p) {
932
- (p == null || p === "") && (p = "nonzero");
933
- const S = new Q();
934
- k.boundingBox.getCenter(S);
935
- const j = [new Q(P, S.y), new Q(d, S.y)], m = q(j, k.boundingBox, f);
936
- m.sort((V, K) => V.point.x - K.point.x);
937
- const z = [], R = [];
938
- m.forEach((V) => {
939
- V.identifier === k.identifier ? z.push(V) : R.push(V);
1931
+ function z(w, L, M, U, c) {
1932
+ (c == null || c === "") && (c = "nonzero");
1933
+ const p = new it();
1934
+ w.boundingBox.getCenter(p);
1935
+ const I = [new it(M, p.y), new it(U, p.y)], u = x(I, w.boundingBox, L);
1936
+ u.sort((Z, J) => Z.point.x - J.point.x);
1937
+ const N = [], O = [];
1938
+ u.forEach((Z) => {
1939
+ Z.identifier === w.identifier ? N.push(Z) : O.push(Z);
940
1940
  });
941
- const F = z[0].point.x, X = [];
942
- let Z = 0;
943
- for (; Z < R.length && R[Z].point.x < F; )
944
- X.length > 0 && X[X.length - 1] === R[Z].identifier ? X.pop() : X.push(R[Z].identifier), Z++;
945
- if (X.push(k.identifier), p === "evenodd") {
946
- const V = X.length % 2 === 0, K = X[X.length - 2];
947
- return { identifier: k.identifier, isHole: V, for: K };
948
- } else if (p === "nonzero") {
949
- let V = !0, K = null, $ = null;
950
- for (let oe = 0; oe < X.length; oe++) {
951
- const J = X[oe];
952
- V ? ($ = f[J].isCW, V = !1, K = J) : $ !== f[J].isCW && ($ = f[J].isCW, V = !0);
1941
+ const D = N[0].point.x, Y = [];
1942
+ let tt = 0;
1943
+ for (; tt < O.length && O[tt].point.x < D; )
1944
+ Y.length > 0 && Y[Y.length - 1] === O[tt].identifier ? Y.pop() : Y.push(O[tt].identifier), tt++;
1945
+ if (Y.push(w.identifier), c === "evenodd") {
1946
+ const Z = Y.length % 2 === 0, J = Y[Y.length - 2];
1947
+ return { identifier: w.identifier, isHole: Z, for: J };
1948
+ } else if (c === "nonzero") {
1949
+ let Z = !0, J = null, E = null;
1950
+ for (let q = 0; q < Y.length; q++) {
1951
+ const $ = Y[q];
1952
+ Z ? (E = L[$].isCW, Z = !1, J = $) : E !== L[$].isCW && (E = L[$].isCW, Z = !0);
953
1953
  }
954
- return { identifier: k.identifier, isHole: V, for: K };
1954
+ return { identifier: w.identifier, isHole: Z, for: J };
955
1955
  } else
956
- console.warn('fill-rule: "' + p + '" is currently not implemented.');
1956
+ console.warn('fill-rule: "' + c + '" is currently not implemented.');
957
1957
  }
958
- let H = 999999999, G = -999999999, E = a.subPaths.map((k) => {
959
- const f = k.getPoints();
960
- let P = -999999999, d = 999999999, p = -999999999, S = 999999999;
961
- for (let j = 0; j < f.length; j++) {
962
- const m = f[j];
963
- m.y > P && (P = m.y), m.y < d && (d = m.y), m.x > p && (p = m.x), m.x < S && (S = m.x);
1958
+ let W = 999999999, k = -999999999, H = e.subPaths.map((w) => {
1959
+ const L = w.getPoints();
1960
+ let M = -999999999, U = 999999999, c = -999999999, p = 999999999;
1961
+ for (let I = 0; I < L.length; I++) {
1962
+ const u = L[I];
1963
+ u.y > M && (M = u.y), u.y < U && (U = u.y), u.x > c && (c = u.x), u.x < p && (p = u.x);
964
1964
  }
965
- return G <= p && (G = p + 1), H >= S && (H = S - 1), { curves: k.curves, points: f, isCW: ft.isClockWise(f), identifier: -1, boundingBox: new ut(new Q(S, d), new Q(p, P)) };
1965
+ return k <= c && (k = c + 1), W >= p && (W = p - 1), { curves: w.curves, points: L, isCW: On.isClockWise(L), identifier: -1, boundingBox: new wn(new it(p, U), new it(c, M)) };
966
1966
  });
967
- E = E.filter((k) => k.points.length > 1);
968
- for (let k = 0; k < E.length; k++)
969
- E[k].identifier = k;
970
- const W = E.map((k) => T(k, E, H, G, a.userData ? a.userData.style.fillRule : void 0)), N = [];
971
- return E.forEach((k) => {
972
- if (!W[k.identifier].isHole) {
973
- const P = new ht();
974
- P.curves = k.curves, W.filter((p) => p.isHole && p.for === k.identifier).forEach((p) => {
975
- const S = E[p.identifier], j = new Ne();
976
- j.curves = S.curves, P.holes.push(j);
977
- }), N.push(P);
1967
+ H = H.filter((w) => w.points.length > 1);
1968
+ for (let w = 0; w < H.length; w++)
1969
+ H[w].identifier = w;
1970
+ const G = H.map((w) => z(w, H, W, k, e.userData ? e.userData.style.fillRule : void 0)), X = [];
1971
+ return H.forEach((w) => {
1972
+ if (!G[w.identifier].isHole) {
1973
+ const M = new In();
1974
+ M.curves = w.curves, G.filter((c) => c.isHole && c.for === w.identifier).forEach((c) => {
1975
+ const p = H[c.identifier], I = new Gt();
1976
+ I.curves = p.curves, M.holes.push(I);
1977
+ }), X.push(M);
978
1978
  }
979
- }), N;
1979
+ }), X;
980
1980
  }
981
1981
  /**
982
1982
  * Returns a stroke style object from the given parameters.
@@ -988,13 +1988,13 @@ class Ie extends ct {
988
1988
  * @param {number} [miterLimit=4] - Maximum join length, in multiples of the `width` parameter (join is truncated if it exceeds that distance).
989
1989
  * @return {Object} The style object.
990
1990
  */
991
- static getStrokeStyle(a, A, M, I, h) {
992
- return a = a !== void 0 ? a : 1, A = A !== void 0 ? A : "#000", M = M !== void 0 ? M : "miter", I = I !== void 0 ? I : "butt", h = h !== void 0 ? h : 4, {
993
- strokeColor: A,
994
- strokeWidth: a,
995
- strokeLineJoin: M,
996
- strokeLineCap: I,
997
- strokeMiterLimit: h
1991
+ static getStrokeStyle(e, s, a, d, m) {
1992
+ return e = e !== void 0 ? e : 1, s = s !== void 0 ? s : "#000", a = a !== void 0 ? a : "miter", d = d !== void 0 ? d : "butt", m = m !== void 0 ? m : 4, {
1993
+ strokeColor: s,
1994
+ strokeWidth: e,
1995
+ strokeLineJoin: a,
1996
+ strokeLineCap: d,
1997
+ strokeMiterLimit: m
998
1998
  };
999
1999
  }
1000
2000
  /**
@@ -1007,12 +2007,12 @@ class Ie extends ct {
1007
2007
  * @return {?BufferGeometry} The stroke geometry. UV coordinates are generated ('u' along path. 'v' across it, from left to right).
1008
2008
  * Returns `null` if not geometry was generated.
1009
2009
  */
1010
- static pointsToStroke(a, A, M, I) {
1011
- const h = [], v = [], x = [];
1012
- if (Ie.pointsToStrokeWithBuffers(a, A, M, I, h, v, x) === 0)
2010
+ static pointsToStroke(e, s, a, d) {
2011
+ const m = [], b = [], Q = [];
2012
+ if (kt.pointsToStrokeWithBuffers(e, s, a, d, m, b, Q) === 0)
1013
2013
  return null;
1014
- const q = new mt();
1015
- return q.setAttribute("position", new Ee(h, 3)), q.setAttribute("normal", new Ee(v, 3)), q.setAttribute("uv", new Ee(x, 2)), q;
2014
+ const x = new Ln();
2015
+ return x.setAttribute("position", new Vt(m, 3)), x.setAttribute("normal", new Vt(b, 3)), x.setAttribute("uv", new Vt(Q, 2)), x;
1016
2016
  }
1017
2017
  /**
1018
2018
  * Creates a stroke from an array of points.
@@ -1027,893 +2027,1259 @@ class Ie extends ct {
1027
2027
  * @param {number} [vertexOffset=0] - The vertex offset.
1028
2028
  * @return {number} The number of vertices.
1029
2029
  */
1030
- static pointsToStrokeWithBuffers(a, A, M, I, h, v, x, q) {
1031
- const T = new Q(), H = new Q(), G = new Q(), E = new Q(), W = new Q(), N = new Q(), k = new Q(), f = new Q(), P = new Q(), d = new Q(), p = new Q(), S = new Q(), j = new Q(), m = new Q(), z = new Q(), R = new Q(), F = new Q();
1032
- M = M !== void 0 ? M : 12, I = I !== void 0 ? I : 1e-3, q = q !== void 0 ? q : 0, a = O(a);
1033
- const X = a.length;
1034
- if (X < 2) return 0;
1035
- const Z = a[0].equals(a[X - 1]);
1036
- let V, K = a[0], $;
1037
- const oe = A.strokeWidth / 2, J = 1 / (X - 1);
1038
- let U = 0, g, te, ee, se, he = !1, ce = 0, r = q * 3, o = q * 2;
1039
- t(a[0], a[1], T).multiplyScalar(oe), f.copy(a[0]).sub(T), P.copy(a[0]).add(T), d.copy(f), p.copy(P);
1040
- for (let l = 1; l < X; l++) {
1041
- V = a[l], l === X - 1 ? Z ? $ = a[1] : $ = void 0 : $ = a[l + 1];
1042
- const b = T;
1043
- if (t(K, V, b), G.copy(b).multiplyScalar(oe), S.copy(V).sub(G), j.copy(V).add(G), g = U + J, te = !1, $ !== void 0) {
1044
- t(V, $, H), G.copy(H).multiplyScalar(oe), m.copy(V).sub(G), z.copy(V).add(G), ee = !0, G.subVectors($, K), b.dot(G) < 0 && (ee = !1), l === 1 && (he = ee), G.subVectors($, V), G.normalize();
1045
- const L = Math.abs(b.dot(G));
1046
- if (L > Number.EPSILON) {
1047
- const D = oe / L;
1048
- G.multiplyScalar(-D), E.subVectors(V, K), W.copy(E).setLength(D).add(G), R.copy(W).negate();
1049
- const s = W.length(), n = E.length();
1050
- E.divideScalar(n), N.subVectors($, V);
1051
- const B = N.length();
1052
- switch (N.divideScalar(B), E.dot(R) < n && N.dot(R) < B && (te = !0), F.copy(W).add(V), R.add(V), se = !1, te ? ee ? (z.copy(R), j.copy(R)) : (m.copy(R), S.copy(R)) : y(), A.strokeLineJoin) {
2030
+ static pointsToStrokeWithBuffers(e, s, a, d, m, b, Q, x) {
2031
+ const z = new it(), W = new it(), k = new it(), H = new it(), G = new it(), X = new it(), w = new it(), L = new it(), M = new it(), U = new it(), c = new it(), p = new it(), I = new it(), u = new it(), N = new it(), O = new it(), D = new it();
2032
+ a = a !== void 0 ? a : 12, d = d !== void 0 ? d : 1e-3, x = x !== void 0 ? x : 0, e = A(e);
2033
+ const Y = e.length;
2034
+ if (Y < 2) return 0;
2035
+ const tt = e[0].equals(e[Y - 1]);
2036
+ let Z, J = e[0], E;
2037
+ const q = s.strokeWidth / 2, $ = 1 / (Y - 1);
2038
+ let K = 0, l, B, _, et, st = !1, ut = 0, h = x * 3, i = x * 2;
2039
+ r(e[0], e[1], z).multiplyScalar(q), L.copy(e[0]).sub(z), M.copy(e[0]).add(z), U.copy(L), c.copy(M);
2040
+ for (let y = 1; y < Y; y++) {
2041
+ Z = e[y], y === Y - 1 ? tt ? E = e[1] : E = void 0 : E = e[y + 1];
2042
+ const v = z;
2043
+ if (r(J, Z, v), k.copy(v).multiplyScalar(q), p.copy(Z).sub(k), I.copy(Z).add(k), l = K + $, B = !1, E !== void 0) {
2044
+ r(Z, E, W), k.copy(W).multiplyScalar(q), u.copy(Z).sub(k), N.copy(Z).add(k), _ = !0, k.subVectors(E, J), v.dot(k) < 0 && (_ = !1), y === 1 && (st = _), k.subVectors(E, Z), k.normalize();
2045
+ const S = Math.abs(v.dot(k));
2046
+ if (S > Number.EPSILON) {
2047
+ const V = q / S;
2048
+ k.multiplyScalar(-V), H.subVectors(Z, J), G.copy(H).setLength(V).add(k), O.copy(G).negate();
2049
+ const f = G.length(), o = H.length();
2050
+ H.divideScalar(o), X.subVectors(E, Z);
2051
+ const j = X.length();
2052
+ switch (X.divideScalar(j), H.dot(O) < o && X.dot(O) < j && (B = !0), D.copy(G).add(Z), O.add(Z), et = !1, B ? _ ? (N.copy(O), I.copy(O)) : (u.copy(O), p.copy(O)) : R(), s.strokeLineJoin) {
1053
2053
  case "bevel":
1054
- i(ee, te, g);
2054
+ g(_, B, l);
1055
2055
  break;
1056
2056
  case "round":
1057
- w(ee, te), ee ? c(V, S, m, g, 0) : c(V, z, j, g, 1);
2057
+ P(_, B), _ ? C(Z, p, u, l, 0) : C(Z, N, I, l, 1);
1058
2058
  break;
1059
2059
  case "miter":
1060
2060
  case "miter-clip":
1061
2061
  default:
1062
- const Y = oe * A.strokeMiterLimit / s;
1063
- if (Y < 1)
1064
- if (A.strokeLineJoin !== "miter-clip") {
1065
- i(ee, te, g);
2062
+ const nt = q * s.strokeMiterLimit / f;
2063
+ if (nt < 1)
2064
+ if (s.strokeLineJoin !== "miter-clip") {
2065
+ g(_, B, l);
1066
2066
  break;
1067
2067
  } else
1068
- w(ee, te), ee ? (N.subVectors(F, S).multiplyScalar(Y).add(S), k.subVectors(F, m).multiplyScalar(Y).add(m), e(S, g, 0), e(N, g, 0), e(V, g, 0.5), e(V, g, 0.5), e(N, g, 0), e(k, g, 0), e(V, g, 0.5), e(k, g, 0), e(m, g, 0)) : (N.subVectors(F, j).multiplyScalar(Y).add(j), k.subVectors(F, z).multiplyScalar(Y).add(z), e(j, g, 1), e(N, g, 1), e(V, g, 0.5), e(V, g, 0.5), e(N, g, 1), e(k, g, 1), e(V, g, 0.5), e(k, g, 1), e(z, g, 1));
2068
+ P(_, B), _ ? (X.subVectors(D, p).multiplyScalar(nt).add(p), w.subVectors(D, u).multiplyScalar(nt).add(u), n(p, l, 0), n(X, l, 0), n(Z, l, 0.5), n(Z, l, 0.5), n(X, l, 0), n(w, l, 0), n(Z, l, 0.5), n(w, l, 0), n(u, l, 0)) : (X.subVectors(D, I).multiplyScalar(nt).add(I), w.subVectors(D, N).multiplyScalar(nt).add(N), n(I, l, 1), n(X, l, 1), n(Z, l, 0.5), n(Z, l, 0.5), n(X, l, 1), n(w, l, 1), n(Z, l, 0.5), n(w, l, 1), n(N, l, 1));
1069
2069
  else
1070
- te ? (ee ? (e(P, U, 1), e(f, U, 0), e(F, g, 0), e(P, U, 1), e(F, g, 0), e(R, g, 1)) : (e(P, U, 1), e(f, U, 0), e(F, g, 1), e(f, U, 0), e(R, g, 0), e(F, g, 1)), ee ? m.copy(F) : z.copy(F)) : ee ? (e(S, g, 0), e(F, g, 0), e(V, g, 0.5), e(V, g, 0.5), e(F, g, 0), e(m, g, 0)) : (e(j, g, 1), e(F, g, 1), e(V, g, 0.5), e(V, g, 0.5), e(F, g, 1), e(z, g, 1)), se = !0;
2070
+ B ? (_ ? (n(M, K, 1), n(L, K, 0), n(D, l, 0), n(M, K, 1), n(D, l, 0), n(O, l, 1)) : (n(M, K, 1), n(L, K, 0), n(D, l, 1), n(L, K, 0), n(O, l, 0), n(D, l, 1)), _ ? u.copy(D) : N.copy(D)) : _ ? (n(p, l, 0), n(D, l, 0), n(Z, l, 0.5), n(Z, l, 0.5), n(D, l, 0), n(u, l, 0)) : (n(I, l, 1), n(D, l, 1), n(Z, l, 0.5), n(Z, l, 0.5), n(D, l, 1), n(N, l, 1)), et = !0;
1071
2071
  break;
1072
2072
  }
1073
2073
  } else
1074
- y();
2074
+ R();
1075
2075
  } else
1076
- y();
1077
- !Z && l === X - 1 && C(a[0], d, p, ee, !0, U), U = g, K = V, f.copy(m), P.copy(z);
2076
+ R();
2077
+ !tt && y === Y - 1 && F(e[0], U, c, _, !0, K), K = l, J = Z, L.copy(u), M.copy(N);
1078
2078
  }
1079
- if (!Z)
1080
- C(V, S, j, ee, !1, g);
1081
- else if (te && h) {
1082
- let l = F, b = R;
1083
- he !== ee && (l = R, b = F), ee ? (se || he) && (b.toArray(h, 0 * 3), b.toArray(h, 3 * 3), se && l.toArray(h, 1 * 3)) : (se || !he) && (b.toArray(h, 1 * 3), b.toArray(h, 3 * 3), se && l.toArray(h, 0 * 3));
2079
+ if (!tt)
2080
+ F(Z, p, I, _, !1, l);
2081
+ else if (B && m) {
2082
+ let y = D, v = O;
2083
+ st !== _ && (y = O, v = D), _ ? (et || st) && (v.toArray(m, 0 * 3), v.toArray(m, 3 * 3), et && y.toArray(m, 1 * 3)) : (et || !st) && (v.toArray(m, 1 * 3), v.toArray(m, 3 * 3), et && y.toArray(m, 0 * 3));
1084
2084
  }
1085
- return ce;
1086
- function t(l, b, L) {
1087
- return L.subVectors(b, l), L.set(-L.y, L.x).normalize();
2085
+ return ut;
2086
+ function r(y, v, S) {
2087
+ return S.subVectors(v, y), S.set(-S.y, S.x).normalize();
1088
2088
  }
1089
- function e(l, b, L) {
1090
- h && (h[r] = l.x, h[r + 1] = l.y, h[r + 2] = 0, v && (v[r] = 0, v[r + 1] = 0, v[r + 2] = 1), r += 3, x && (x[o] = b, x[o + 1] = L, o += 2)), ce += 3;
2089
+ function n(y, v, S) {
2090
+ m && (m[h] = y.x, m[h + 1] = y.y, m[h + 2] = 0, b && (b[h] = 0, b[h + 1] = 0, b[h + 2] = 1), h += 3, Q && (Q[i] = v, Q[i + 1] = S, i += 2)), ut += 3;
1091
2091
  }
1092
- function c(l, b, L, D, s) {
1093
- T.copy(b).sub(l).normalize(), H.copy(L).sub(l).normalize();
1094
- let n = Math.PI;
1095
- const B = T.dot(H);
1096
- Math.abs(B) < 1 && (n = Math.abs(Math.acos(B))), n /= M, G.copy(b);
1097
- for (let Y = 0, ae = M - 1; Y < ae; Y++)
1098
- E.copy(G).rotateAround(l, n), e(G, D, s), e(E, D, s), e(l, D, 0.5), G.copy(E);
1099
- e(E, D, s), e(L, D, s), e(l, D, 0.5);
2092
+ function C(y, v, S, V, f) {
2093
+ z.copy(v).sub(y).normalize(), W.copy(S).sub(y).normalize();
2094
+ let o = Math.PI;
2095
+ const j = z.dot(W);
2096
+ Math.abs(j) < 1 && (o = Math.abs(Math.acos(j))), o /= a, k.copy(v);
2097
+ for (let nt = 0, pt = a - 1; nt < pt; nt++)
2098
+ H.copy(k).rotateAround(y, o), n(k, V, f), n(H, V, f), n(y, V, 0.5), k.copy(H);
2099
+ n(H, V, f), n(S, V, f), n(y, V, 0.5);
1100
2100
  }
1101
- function y() {
1102
- e(P, U, 1), e(f, U, 0), e(S, g, 0), e(P, U, 1), e(S, g, 0), e(j, g, 1);
2101
+ function R() {
2102
+ n(M, K, 1), n(L, K, 0), n(p, l, 0), n(M, K, 1), n(p, l, 0), n(I, l, 1);
1103
2103
  }
1104
- function i(l, b, L) {
1105
- b ? l ? (e(P, U, 1), e(f, U, 0), e(S, g, 0), e(P, U, 1), e(S, g, 0), e(R, g, 1), e(S, L, 0), e(m, L, 0), e(R, L, 0.5)) : (e(P, U, 1), e(f, U, 0), e(j, g, 1), e(f, U, 0), e(R, g, 0), e(j, g, 1), e(j, L, 1), e(R, L, 0), e(z, L, 1)) : l ? (e(S, L, 0), e(m, L, 0), e(V, L, 0.5)) : (e(j, L, 1), e(z, L, 0), e(V, L, 0.5));
2104
+ function g(y, v, S) {
2105
+ v ? y ? (n(M, K, 1), n(L, K, 0), n(p, l, 0), n(M, K, 1), n(p, l, 0), n(O, l, 1), n(p, S, 0), n(u, S, 0), n(O, S, 0.5)) : (n(M, K, 1), n(L, K, 0), n(I, l, 1), n(L, K, 0), n(O, l, 0), n(I, l, 1), n(I, S, 1), n(O, S, 0), n(N, S, 1)) : y ? (n(p, S, 0), n(u, S, 0), n(Z, S, 0.5)) : (n(I, S, 1), n(N, S, 0), n(Z, S, 0.5));
1106
2106
  }
1107
- function w(l, b) {
1108
- b && (l ? (e(P, U, 1), e(f, U, 0), e(S, g, 0), e(P, U, 1), e(S, g, 0), e(R, g, 1), e(S, U, 0), e(V, g, 0.5), e(R, g, 1), e(V, g, 0.5), e(m, U, 0), e(R, g, 1)) : (e(P, U, 1), e(f, U, 0), e(j, g, 1), e(f, U, 0), e(R, g, 0), e(j, g, 1), e(j, U, 1), e(R, g, 0), e(V, g, 0.5), e(V, g, 0.5), e(R, g, 0), e(z, U, 1)));
2107
+ function P(y, v) {
2108
+ v && (y ? (n(M, K, 1), n(L, K, 0), n(p, l, 0), n(M, K, 1), n(p, l, 0), n(O, l, 1), n(p, K, 0), n(Z, l, 0.5), n(O, l, 1), n(Z, l, 0.5), n(u, K, 0), n(O, l, 1)) : (n(M, K, 1), n(L, K, 0), n(I, l, 1), n(L, K, 0), n(O, l, 0), n(I, l, 1), n(I, K, 1), n(O, l, 0), n(Z, l, 0.5), n(Z, l, 0.5), n(O, l, 0), n(N, K, 1)));
1109
2109
  }
1110
- function C(l, b, L, D, s, n) {
1111
- switch (A.strokeLineCap) {
2110
+ function F(y, v, S, V, f, o) {
2111
+ switch (s.strokeLineCap) {
1112
2112
  case "round":
1113
- s ? c(l, L, b, n, 0.5) : c(l, b, L, n, 0.5);
2113
+ f ? C(y, S, v, o, 0.5) : C(y, v, S, o, 0.5);
1114
2114
  break;
1115
2115
  case "square":
1116
- if (s)
1117
- T.subVectors(b, l), H.set(T.y, -T.x), G.addVectors(T, H).add(l), E.subVectors(H, T).add(l), D ? (G.toArray(h, 1 * 3), E.toArray(h, 0 * 3), E.toArray(h, 3 * 3)) : (G.toArray(h, 1 * 3), x[3 * 2 + 1] === 1 ? E.toArray(h, 3 * 3) : G.toArray(h, 3 * 3), E.toArray(h, 0 * 3));
2116
+ if (f)
2117
+ z.subVectors(v, y), W.set(z.y, -z.x), k.addVectors(z, W).add(y), H.subVectors(W, z).add(y), V ? (k.toArray(m, 1 * 3), H.toArray(m, 0 * 3), H.toArray(m, 3 * 3)) : (k.toArray(m, 1 * 3), Q[3 * 2 + 1] === 1 ? H.toArray(m, 3 * 3) : k.toArray(m, 3 * 3), H.toArray(m, 0 * 3));
1118
2118
  else {
1119
- T.subVectors(L, l), H.set(T.y, -T.x), G.addVectors(T, H).add(l), E.subVectors(H, T).add(l);
1120
- const B = h.length;
1121
- D ? (G.toArray(h, B - 1 * 3), E.toArray(h, B - 2 * 3), E.toArray(h, B - 4 * 3)) : (E.toArray(h, B - 2 * 3), G.toArray(h, B - 1 * 3), E.toArray(h, B - 4 * 3));
2119
+ z.subVectors(S, y), W.set(z.y, -z.x), k.addVectors(z, W).add(y), H.subVectors(W, z).add(y);
2120
+ const j = m.length;
2121
+ V ? (k.toArray(m, j - 1 * 3), H.toArray(m, j - 2 * 3), H.toArray(m, j - 4 * 3)) : (H.toArray(m, j - 2 * 3), k.toArray(m, j - 1 * 3), H.toArray(m, j - 4 * 3));
1122
2122
  }
1123
2123
  break;
1124
2124
  }
1125
2125
  }
1126
- function O(l) {
1127
- let b = !1;
1128
- for (let D = 1, s = l.length - 1; D < s; D++)
1129
- if (l[D].distanceTo(l[D + 1]) < I) {
1130
- b = !0;
2126
+ function A(y) {
2127
+ let v = !1;
2128
+ for (let V = 1, f = y.length - 1; V < f; V++)
2129
+ if (y[V].distanceTo(y[V + 1]) < d) {
2130
+ v = !0;
1131
2131
  break;
1132
2132
  }
1133
- if (!b) return l;
1134
- const L = [];
1135
- L.push(l[0]);
1136
- for (let D = 1, s = l.length - 1; D < s; D++)
1137
- l[D].distanceTo(l[D + 1]) >= I && L.push(l[D]);
1138
- return L.push(l[l.length - 1]), L;
2133
+ if (!v) return y;
2134
+ const S = [];
2135
+ S.push(y[0]);
2136
+ for (let V = 1, f = y.length - 1; V < f; V++)
2137
+ y[V].distanceTo(y[V + 1]) >= d && S.push(y[V]);
2138
+ return S.push(y[y.length - 1]), S;
1139
2139
  }
1140
2140
  }
1141
2141
  }
1142
- const kt = -2;
1143
- function At(u) {
1144
- if (!u || u.nodeType !== 1) return;
1145
- let a = u;
1146
- for (; a; ) {
1147
- const A = a.getAttribute("id");
1148
- if (A) return A;
1149
- a = a.parentElement;
2142
+ const mr = -2;
2143
+ function pr(t) {
2144
+ if (!t || t.nodeType !== 1) return;
2145
+ let e = t;
2146
+ for (; e; ) {
2147
+ const s = e.getAttribute("id");
2148
+ if (s) return s;
2149
+ e = e.parentElement;
1150
2150
  }
1151
2151
  }
1152
- function Ce(u) {
1153
- if (!u) return !1;
1154
- let a = u;
1155
- for (; a; ) {
1156
- const A = a.getAttribute("id") ?? "", M = a.getAttribute("data-name") ?? "";
1157
- if (Oe(A) || Oe(M) || ve(A) || ve(M)) return !0;
1158
- a = a.parentElement;
2152
+ function Bt(t) {
2153
+ if (!t) return !1;
2154
+ let e = t;
2155
+ for (; e; ) {
2156
+ const s = e.getAttribute("id") ?? "", a = e.getAttribute("data-name") ?? "";
2157
+ if (Zt(s) || Zt(a) || Ft(s) || Ft(a)) return !0;
2158
+ e = e.parentElement;
1159
2159
  }
1160
2160
  return !1;
1161
2161
  }
1162
- function It(u, a) {
1163
- return a ? a + encodeURIComponent(u) : u;
1164
- }
1165
- function wt({
1166
- url: u,
1167
- suppressIds: a,
1168
- imageProxyUrl: A,
1169
- is3d: M = !1
2162
+ function yr({
2163
+ url: t,
2164
+ suppressIds: e,
2165
+ imageProxyUrl: s,
2166
+ is3d: a = !1,
2167
+ theme: d
1170
2168
  }) {
1171
- const [I, h] = ue(null);
1172
- me(() => {
2169
+ const [m, b] = dt(null);
2170
+ lt(() => {
1173
2171
  let x = !1;
1174
- const q = It(u, A);
1175
- return fetch(q).then((T) => {
1176
- if (!T.ok) throw new Error(`SVG fetch ${T.status}`);
1177
- return T.text();
1178
- }).then((T) => {
2172
+ const z = new AbortController(), W = be(t, s);
2173
+ return fetch(W, { signal: z.signal }).then((k) => {
2174
+ if (!k.ok) throw new Error(`SVG fetch ${k.status}`);
2175
+ return k.text();
2176
+ }).then((k) => {
1179
2177
  if (x) return;
1180
- const H = $e(T), G = new Ie();
1181
- h(G.parse(H));
1182
- }).catch((T) => {
1183
- x || (h(null), console.warn(
1184
- `[eyeon-map] Outdoor SVG failed to load from ${q}. If this is a cross-origin error, pass \`imageProxyUrl\` to MapViewer.`,
1185
- T
2178
+ const H = on(k), G = new kt();
2179
+ b(G.parse(H));
2180
+ }).catch((k) => {
2181
+ x || k instanceof DOMException && k.name === "AbortError" || (b(null), console.warn(
2182
+ `[eyeon-map] Outdoor SVG failed to load from ${W}. If this is a cross-origin error, pass \`imageProxyUrl\` to MapViewer.`,
2183
+ k
1186
2184
  ));
1187
2185
  }), () => {
1188
- x = !0;
2186
+ x = !0, z.abort();
1189
2187
  };
1190
- }, [u, A]);
1191
- const v = ie(() => {
1192
- var T, H, G;
1193
- if (!I) return [];
2188
+ }, [t, s]);
2189
+ const Q = ot(() => {
2190
+ var W, k, H;
2191
+ if (!m) return [];
1194
2192
  const x = [];
1195
- let q = 0;
1196
- for (const E of I.paths) {
1197
- const W = (T = E.userData) == null ? void 0 : T.node, N = At(W);
1198
- if (N != null && N.toLowerCase().startsWith("route-path") || N && (a != null && a.has(N)) || Ce(W) && !N || N && (Oe(N) || ve(N)) || W && Ce(W) && N && (a != null && a.has(N)) || W && Ce(W)) continue;
1199
- const k = Ie.createShapes(E);
1200
- if (k.length === 0) continue;
1201
- const f = Ze(N), P = new fe.Color();
1202
- f != null && f.fill ? P.set(f.fill) : E.color ? P.copy(E.color) : P.set("#cccccc"), f != null && f.stroke && !f.fill && P.set(f.stroke);
1203
- const d = typeof ((G = (H = E.userData) == null ? void 0 : H.style) == null ? void 0 : G.opacity) == "number" ? E.userData.style.opacity : 1, p = M && (f == null ? void 0 : f.extrudeHeight) != null ? f.extrudeHeight : 0;
2193
+ let z = 0;
2194
+ for (const G of m.paths) {
2195
+ const X = (W = G.userData) == null ? void 0 : W.node, w = pr(X);
2196
+ if (w != null && w.toLowerCase().startsWith("route-path") || w && (cn(w) || sn(w)) || w && (e != null && e.has(w)) || Bt(X) && !w || w && (Zt(w) || Ft(w)) || X && Bt(X) && w && (e != null && e.has(w)) || X && Bt(X)) continue;
2197
+ const L = kt.createShapes(G);
2198
+ if (L.length === 0) continue;
2199
+ const M = Me(w, d), U = Mt(M == null ? void 0 : M.fill), c = Mt(M == null ? void 0 : M.stroke), p = new rt.Color();
2200
+ M != null && M.fill && !U ? p.set(M.fill) : G.color && !U ? p.copy(G.color) : p.set("#cccccc"), M != null && M.stroke && !M.fill && !c && p.set(M.stroke);
2201
+ const I = U || c && !(M != null && M.fill) ? 0 : typeof ((H = (k = G.userData) == null ? void 0 : k.style) == null ? void 0 : H.opacity) == "number" ? G.userData.style.opacity : 1, u = a && (M == null ? void 0 : M.extrudeHeight) != null ? M.extrudeHeight : 0;
1204
2202
  x.push({
1205
- key: `${N ?? "path"}-${q++}`,
1206
- shapes: k,
1207
- color: P,
1208
- opacity: d,
1209
- extrude: p,
1210
- renderOrder: (f == null ? void 0 : f.renderOrder) ?? 2
2203
+ key: `${w ?? "path"}-${z++}`,
2204
+ shapes: L,
2205
+ color: p,
2206
+ opacity: I,
2207
+ extrude: u,
2208
+ renderOrder: (M == null ? void 0 : M.renderOrder) ?? 2
1211
2209
  });
1212
2210
  }
1213
2211
  return x;
1214
- }, [I, a, M]);
1215
- return !I || v.length === 0 ? null : /* @__PURE__ */ _("group", { position: [0, 0, kt], renderOrder: -20, children: v.map(
1216
- (x) => x.shapes.map((q, T) => /* @__PURE__ */ ne("mesh", { renderOrder: x.renderOrder, children: [
1217
- x.extrude > 0 ? /* @__PURE__ */ _(
1218
- "extrudeGeometry",
1219
- {
1220
- args: [q, { depth: x.extrude, bevelEnabled: !1 }]
1221
- }
1222
- ) : /* @__PURE__ */ _("shapeGeometry", { args: [q] }),
1223
- /* @__PURE__ */ _(
1224
- "meshBasicMaterial",
1225
- {
1226
- color: x.color,
1227
- transparent: x.opacity < 1,
1228
- opacity: x.opacity,
1229
- depthWrite: !1,
1230
- toneMapped: !1,
1231
- side: fe.DoubleSide
1232
- }
1233
- )
1234
- ] }, `${x.key}-${T}`))
2212
+ }, [m, e, a, d]);
2213
+ return !m || Q.length === 0 ? null : /* @__PURE__ */ T("group", { position: [0, 0, mr], renderOrder: -20, children: Q.map(
2214
+ (x) => x.shapes.map((z, W) => /* @__PURE__ */ ct(
2215
+ "mesh",
2216
+ {
2217
+ renderOrder: x.renderOrder,
2218
+ raycast: () => {
2219
+ },
2220
+ children: [
2221
+ x.extrude > 0 ? /* @__PURE__ */ T(
2222
+ "extrudeGeometry",
2223
+ {
2224
+ args: [z, { depth: x.extrude, bevelEnabled: !1 }]
2225
+ }
2226
+ ) : /* @__PURE__ */ T("shapeGeometry", { args: [z] }),
2227
+ /* @__PURE__ */ T(
2228
+ "meshBasicMaterial",
2229
+ {
2230
+ color: x.color,
2231
+ transparent: x.opacity < 1,
2232
+ opacity: x.opacity,
2233
+ depthWrite: !1,
2234
+ toneMapped: !1,
2235
+ side: rt.DoubleSide
2236
+ }
2237
+ )
2238
+ ]
2239
+ },
2240
+ `${x.key}-${W}`
2241
+ ))
1235
2242
  ) });
1236
2243
  }
1237
- const Mt = [1, -1, 1];
1238
- function Tt(u) {
2244
+ const gr = [1, -1, 1];
2245
+ function Ne(t) {
2246
+ return {
2247
+ ...t,
2248
+ minY: -t.maxY,
2249
+ maxY: -t.minY,
2250
+ cy: -t.cy
2251
+ };
2252
+ }
2253
+ function Nt(t, e, s, a) {
2254
+ const d = Math.max(t, 1) / Math.max(s, 1), m = Math.max(e, 1) / Math.max(a, 1);
2255
+ return Math.min(d, m);
2256
+ }
2257
+ function Et(t) {
1239
2258
  return {
1240
- ...u,
1241
- minY: -u.maxY,
1242
- maxY: -u.minY,
1243
- cy: -u.cy
2259
+ width: Math.max(t.maxX - t.minX, 1),
2260
+ height: Math.max(t.maxY - t.minY, 1)
1244
2261
  };
1245
2262
  }
1246
- function Be(u, a, A, M) {
1247
- const I = Math.max(u, 1) / Math.max(A, 1), h = Math.max(a, 1) / Math.max(M, 1);
1248
- return Math.min(I, h);
2263
+ const he = 240, Ar = 400, Tt = 1, xr = 2, vr = 400, Ee = 80, ke = 52, Te = 8, Mr = 14, br = 16;
2264
+ function Cr(t, e, s = Tt, a = Ee, d = xr, m = vr) {
2265
+ const b = Math.max(t, e);
2266
+ if (b <= a) return s;
2267
+ const Q = Math.max(m - a, 1), x = Math.min(1, (b - a) / Q);
2268
+ return s + (d - s) * x;
1249
2269
  }
1250
- function Ve(u) {
2270
+ function wr(t, e = Tt, s = ke) {
2271
+ const a = t.maxX - t.minX, d = t.maxY - t.minY, m = Math.max(a, s), b = Math.max(d, s), Q = Cr(a, d, e), x = (m + m * Q) / 2, z = (b + b * Q) / 2;
1251
2272
  return {
1252
- width: Math.max(u.maxX - u.minX, 1),
1253
- height: Math.max(u.maxY - u.minY, 1)
2273
+ minX: t.cx - x,
2274
+ minY: t.cy - z,
2275
+ maxX: t.cx + x,
2276
+ maxY: t.cy + z,
2277
+ cx: t.cx,
2278
+ cy: t.cy,
2279
+ size: Math.max(x, z) * 2
1254
2280
  };
1255
2281
  }
1256
- function Nt(u, a, A, M, I) {
1257
- const h = 1 + Math.min(Math.max(A, 0.15), 1) * 0.5, v = a > 0 ? u * h : u / h;
1258
- return Math.min(I, Math.max(M, v));
2282
+ function Or(t, e, s = Te, a = Mr) {
2283
+ const d = Math.max(t, e), m = Ee * (1 + Tt);
2284
+ if (d >= m) return s;
2285
+ const b = ke * (1 + Tt);
2286
+ if (d <= b) return a;
2287
+ const Q = Math.max(m - b, 1), x = (d - b) / Q;
2288
+ return a + (s - a) * x;
2289
+ }
2290
+ function Ir(t, e, s = Te) {
2291
+ const a = Math.max(e, 1e-3) * s;
2292
+ return Math.min(t, a);
2293
+ }
2294
+ function Lr(t) {
2295
+ const e = [...new Set(t.filter((s) => Number.isFinite(s)))].sort(
2296
+ (s, a) => s - a
2297
+ );
2298
+ return e.length > 0 ? e.join(",") : null;
2299
+ }
2300
+ function Ut(t, e) {
2301
+ const s = new Set(e);
2302
+ if (s.size === 0) return null;
2303
+ let a = null;
2304
+ for (const d of t)
2305
+ for (const m of d.shapes) {
2306
+ if (!s.has(m.id)) continue;
2307
+ const b = an(m.bbox, d.transform);
2308
+ a = a ? ln(a, b) : b;
2309
+ }
2310
+ return a ? Ne(wr(a)) : null;
2311
+ }
2312
+ function Nr(t, e) {
2313
+ return Ut(t, [e]);
1259
2314
  }
1260
- const Et = 0, je = 1, Se = 2, Ct = 0, St = 1, ze = 2;
1261
- function Ot(u) {
1262
- return u ? { LEFT: Et, MIDDLE: je, RIGHT: Se } : { LEFT: Se, MIDDLE: je, RIGHT: Se };
2315
+ function qt(t) {
2316
+ return 1 - (1 - Math.min(1, Math.max(0, t))) ** 3;
1263
2317
  }
1264
- function vt(u) {
1265
- return u ? { ONE: Ct, TWO: ze } : { ONE: St, TWO: ze };
2318
+ function At(t, e, s) {
2319
+ return t + (e - t) * s;
1266
2320
  }
1267
- function Pt({
1268
- bounds: u,
1269
- theme: a,
1270
- is3d: A,
1271
- controlsRef: M,
1272
- cameraRef: I
2321
+ function me(t, e, s, a = qt) {
2322
+ const d = a(s);
2323
+ return {
2324
+ zoom: At(t.zoom, e.zoom, d),
2325
+ position: [
2326
+ At(t.position[0], e.position[0], d),
2327
+ At(t.position[1], e.position[1], d),
2328
+ At(t.position[2], e.position[2], d)
2329
+ ],
2330
+ target: [
2331
+ At(t.target[0], e.target[0], d),
2332
+ At(t.target[1], e.target[1], d),
2333
+ At(t.target[2], e.target[2], d)
2334
+ ]
2335
+ };
2336
+ }
2337
+ function pe(t, e, s = 1e-3) {
2338
+ return Math.abs(t.zoom - e.zoom) < s && Math.abs(t.position[0] - e.position[0]) < s && Math.abs(t.position[1] - e.position[1]) < s && Math.abs(t.position[2] - e.position[2]) < s && Math.abs(t.target[0] - e.target[0]) < s && Math.abs(t.target[1] - e.target[1]) < s && Math.abs(t.target[2] - e.target[2]) < s;
2339
+ }
2340
+ function Er(t, e, s, a, d) {
2341
+ const m = 1 + Math.min(Math.max(s, 0.15), 1) * 0.5, b = e > 0 ? t * m : t / m;
2342
+ return Math.min(d, Math.max(a, b));
2343
+ }
2344
+ const kr = 0, ye = 1, Ht = 2, Tr = 0, Sr = 1, ge = 2, zr = !0;
2345
+ function Pr(t) {
2346
+ return t ? { LEFT: kr, MIDDLE: ye, RIGHT: Ht } : { LEFT: Ht, MIDDLE: ye, RIGHT: Ht };
2347
+ }
2348
+ function Rr(t) {
2349
+ return t ? { ONE: Tr, TWO: ge } : { ONE: Sr, TWO: ge };
2350
+ }
2351
+ function Gr(t, e) {
2352
+ return [
2353
+ t.cx,
2354
+ t.cy,
2355
+ t.minX,
2356
+ t.minY,
2357
+ t.maxX,
2358
+ t.maxY,
2359
+ t.size,
2360
+ e ? "3d" : "2d"
2361
+ ].join("|");
2362
+ }
2363
+ function Vr({
2364
+ bounds: t,
2365
+ theme: e,
2366
+ is3d: s,
2367
+ controlsRef: a,
2368
+ cameraRef: d,
2369
+ persistedViewRef: m,
2370
+ focusKey: b = null,
2371
+ focusViewBounds: Q = null
1273
2372
  }) {
1274
- const { camera: h, size: v, invalidate: x } = rt(), q = Ae(!1), T = _e(() => {
1275
- const G = M.current, { width: E, height: W } = Ve(u);
1276
- if (h.up.set(0, 1, 0), h instanceof fe.OrthographicCamera && !A) {
1277
- const N = Be(v.width, v.height, E, W);
1278
- h.position.set(u.cx, u.cy, 500), h.zoom = N, h.updateProjectionMatrix();
1279
- } else
1280
- h.position.set(u.cx, u.cy - u.size * 0.35, u.size * 0.85), h.lookAt(u.cx, u.cy, 0);
1281
- G && (G.target.set(u.cx, u.cy, 0), G.update()), x();
2373
+ const { camera: x, size: z, invalidate: W } = gn(), k = at(!1), H = at(!1), G = at(null), X = at(null), w = at(b);
2374
+ w.current = b;
2375
+ const L = at(Q);
2376
+ L.current = Q;
2377
+ const M = at(null), U = Gr(t, s), c = mt(() => {
2378
+ G.current != null && (cancelAnimationFrame(G.current), G.current = null);
2379
+ }, []), p = mt(
2380
+ (l = k.current) => {
2381
+ const B = a.current;
2382
+ return {
2383
+ is3d: s,
2384
+ boundsKey: U,
2385
+ zoom: x instanceof rt.OrthographicCamera ? x.zoom : 1,
2386
+ position: [x.position.x, x.position.y, x.position.z],
2387
+ target: B ? [B.target.x, B.target.y, B.target.z] : [t.cx, t.cy, 0],
2388
+ userAdjusted: l,
2389
+ focusKey: w.current
2390
+ };
2391
+ },
2392
+ [t.cx, t.cy, U, x, a, s]
2393
+ ), I = mt(
2394
+ (l) => {
2395
+ H.current = !0, c(), x.up.set(0, 1, 0), x.position.set(l.position[0], l.position[1], l.position[2]), x instanceof rt.OrthographicCamera ? (x.zoom = l.zoom, x.updateProjectionMatrix()) : x.lookAt(l.target[0], l.target[1], l.target[2]);
2396
+ const B = a.current;
2397
+ B && (B.target.set(l.target[0], l.target[1], l.target[2]), B.update()), m.current = { ...l, boundsKey: U, is3d: s }, k.current = l.userAdjusted, W(), H.current = !1;
2398
+ },
2399
+ [U, x, c, a, W, s, m]
2400
+ ), u = mt(
2401
+ (l) => {
2402
+ if (!(x instanceof rt.OrthographicCamera)) return;
2403
+ c();
2404
+ const B = x.zoom;
2405
+ if (B === l) return;
2406
+ const _ = performance.now(), et = (st) => {
2407
+ if (!(x instanceof rt.OrthographicCamera)) return;
2408
+ const ut = Math.min(1, (st - _) / he);
2409
+ if (x.zoom = At(B, l, qt(ut)), x.updateProjectionMatrix(), m.current = p(), W(), ut < 1) {
2410
+ G.current = requestAnimationFrame(et);
2411
+ return;
2412
+ }
2413
+ G.current = null;
2414
+ };
2415
+ G.current = requestAnimationFrame(et);
2416
+ },
2417
+ [x, c, p, W, m]
2418
+ ), N = mt(() => {
2419
+ const l = a.current;
2420
+ return {
2421
+ zoom: x instanceof rt.OrthographicCamera ? x.zoom : 1,
2422
+ position: [x.position.x, x.position.y, x.position.z],
2423
+ target: l ? [l.target.x, l.target.y, l.target.z] : [t.cx, t.cy, 0]
2424
+ };
2425
+ }, [t.cx, t.cy, x, a]), O = mt(() => {
2426
+ const { width: l, height: B } = Et(t);
2427
+ return x instanceof rt.OrthographicCamera && !s ? {
2428
+ zoom: Nt(z.width, z.height, l, B),
2429
+ position: [t.cx, t.cy, 500],
2430
+ target: [t.cx, t.cy, 0]
2431
+ } : {
2432
+ zoom: x instanceof rt.OrthographicCamera ? x.zoom : 1,
2433
+ position: [t.cx, t.cy - t.size * 0.35, t.size * 0.85],
2434
+ target: [t.cx, t.cy, 0]
2435
+ };
2436
+ }, [t, x, s, z.height, z.width]), D = mt(
2437
+ (l, B) => {
2438
+ H.current = !0, x.up.set(0, 1, 0), x.position.set(l.position[0], l.position[1], l.position[2]), x instanceof rt.OrthographicCamera && (x.zoom = l.zoom, x.updateProjectionMatrix()), B && x.lookAt(l.target[0], l.target[1], l.target[2]);
2439
+ const _ = a.current;
2440
+ _ && (_.target.set(l.target[0], l.target[1], l.target[2]), _.update()), W(), H.current = !1;
2441
+ },
2442
+ [x, a, W]
2443
+ ), Y = mt(
2444
+ (l) => {
2445
+ const { width: B, height: _ } = Et(l);
2446
+ if (x instanceof rt.OrthographicCamera && !s) {
2447
+ const st = Et(t), ut = Nt(
2448
+ z.width,
2449
+ z.height,
2450
+ st.width,
2451
+ st.height
2452
+ );
2453
+ return {
2454
+ zoom: Ir(
2455
+ Nt(z.width, z.height, B, _),
2456
+ ut,
2457
+ Or(B, _)
2458
+ ),
2459
+ position: [l.cx, l.cy, 500],
2460
+ target: [l.cx, l.cy, 0]
2461
+ };
2462
+ }
2463
+ const et = Math.max(l.size, 1);
2464
+ return {
2465
+ zoom: x instanceof rt.OrthographicCamera ? x.zoom : 1,
2466
+ position: [l.cx, l.cy - et * 0.35, et * 0.85],
2467
+ target: [l.cx, l.cy, 0]
2468
+ };
2469
+ },
2470
+ [t, x, s, z.height, z.width]
2471
+ ), tt = mt(() => {
2472
+ c(), M.current = null, D(O(), s), m.current = p(!1);
2473
+ }, [D, c, p, O, s, m]), Z = mt(
2474
+ (l) => {
2475
+ const B = Y(l), _ = N();
2476
+ if (k.current = !0, X.current = w.current, c(), pe(_, B)) {
2477
+ M.current = null, m.current = p(!0);
2478
+ return;
2479
+ }
2480
+ M.current = {
2481
+ from: _,
2482
+ dest: B,
2483
+ started: performance.now(),
2484
+ lookAt: s
2485
+ }, H.current = !0, W();
2486
+ },
2487
+ [
2488
+ c,
2489
+ p,
2490
+ N,
2491
+ W,
2492
+ s,
2493
+ m,
2494
+ Y
2495
+ ]
2496
+ ), J = mt(() => {
2497
+ const l = O(), B = N();
2498
+ if (M.current = null, pe(B, l)) {
2499
+ k.current = !1, m.current = p(!1);
2500
+ return;
2501
+ }
2502
+ c();
2503
+ const _ = performance.now(), et = s, st = (ut) => {
2504
+ const h = Math.min(1, (ut - _) / he);
2505
+ if (D(me(B, l, h), et), m.current = p(!1), h < 1) {
2506
+ H.current = !0, G.current = requestAnimationFrame(st);
2507
+ return;
2508
+ }
2509
+ G.current = null, k.current = !1, H.current = !1;
2510
+ };
2511
+ H.current = !0, G.current = requestAnimationFrame(st);
1282
2512
  }, [
1283
- u,
1284
- h,
1285
- M,
1286
- x,
1287
- A,
1288
- v.height,
1289
- v.width
1290
- ]), H = _e(
1291
- (G) => {
1292
- q.current = !0;
1293
- const E = M.current;
1294
- if (h instanceof fe.OrthographicCamera && !A) {
1295
- const { width: W, height: N } = Ve(u), k = Be(v.width, v.height, W, N);
1296
- h.zoom = Nt(
1297
- h.zoom,
1298
- G,
1299
- a.ZOOM_STEP,
1300
- k * 0.2,
1301
- k * 10
1302
- ), h.updateProjectionMatrix();
1303
- } else if (E) {
1304
- const W = h.position.clone().sub(E.target), N = 1 + Math.min(Math.max(a.ZOOM_STEP, 0.15), 1) * 0.5, k = G > 0 ? W.length() / N : W.length() * N;
1305
- W.setLength(
1306
- Math.min(a.CAMERA_MAX_DISTANCE, Math.max(a.CAMERA_MIN_DISTANCE, k))
1307
- ), h.position.copy(E.target).add(W);
2513
+ D,
2514
+ c,
2515
+ p,
2516
+ N,
2517
+ O,
2518
+ s,
2519
+ m
2520
+ ]), E = at(tt);
2521
+ E.current = tt;
2522
+ const q = at(I);
2523
+ q.current = I;
2524
+ const $ = at(Z);
2525
+ $.current = Z;
2526
+ const K = mt(
2527
+ (l) => {
2528
+ k.current = !0, M.current = null;
2529
+ const B = a.current;
2530
+ if (x instanceof rt.OrthographicCamera && !s) {
2531
+ const { width: _, height: et } = Et(t), st = Nt(z.width, z.height, _, et);
2532
+ u(
2533
+ Er(
2534
+ x.zoom,
2535
+ l,
2536
+ e.ZOOM_STEP,
2537
+ st * 0.2,
2538
+ st * br
2539
+ )
2540
+ );
2541
+ } else if (B) {
2542
+ const _ = x.position.clone().sub(B.target), et = 1 + Math.min(Math.max(e.ZOOM_STEP, 0.15), 1) * 0.5, st = l > 0 ? _.length() / et : _.length() * et;
2543
+ _.setLength(
2544
+ Math.min(e.CAMERA_MAX_DISTANCE, Math.max(e.CAMERA_MIN_DISTANCE, st))
2545
+ ), x.position.copy(B.target).add(_), m.current = p();
1308
2546
  }
1309
- E == null || E.update(), x();
2547
+ B == null || B.update(), W();
1310
2548
  },
1311
- [u, h, M, x, A, v.height, v.width, a]
2549
+ [
2550
+ u,
2551
+ t,
2552
+ x,
2553
+ p,
2554
+ a,
2555
+ W,
2556
+ s,
2557
+ m,
2558
+ z.height,
2559
+ z.width,
2560
+ e
2561
+ ]
1312
2562
  );
1313
- return qe(
1314
- I,
2563
+ return lt(() => () => c(), [c]), lt(() => {
2564
+ const l = a.current;
2565
+ if (!l) return;
2566
+ const B = () => {
2567
+ H.current || (k.current = !0, m.current = p(!0));
2568
+ }, _ = () => {
2569
+ H.current || (k.current = !0, M.current = null, m.current = p(!0));
2570
+ };
2571
+ return l.addEventListener("change", B), l.addEventListener("start", _), () => {
2572
+ l.removeEventListener("change", B), l.removeEventListener("start", _);
2573
+ };
2574
+ }, [x, p, a, m]), Ge(
2575
+ d,
1315
2576
  () => ({
1316
- zoomIn: () => H(1),
1317
- zoomOut: () => H(-1),
2577
+ zoomIn: () => {
2578
+ K(1);
2579
+ },
2580
+ zoomOut: () => {
2581
+ K(-1);
2582
+ },
1318
2583
  reset: () => {
1319
- q.current = !1, T();
2584
+ k.current = !1, M.current = null, X.current = null, w.current = null, J();
2585
+ },
2586
+ focusBounds: (l) => {
2587
+ Z(l);
1320
2588
  }
1321
2589
  }),
1322
- [T, H]
1323
- ), me(() => {
1324
- v.width < 2 || v.height < 2 || (q.current = !1, T());
1325
- }, [T, u.cx, u.cy, u.maxX, u.maxY, u.minX, u.minY]), me(() => {
1326
- v.width < 2 || v.height < 2 || q.current || T();
1327
- }, [T, v.height, v.width]), null;
1328
- }
1329
- const Rt = -1;
1330
- function Lt({
1331
- doc: u,
1332
- theme: a,
1333
- activeLevelId: A,
1334
- route: M,
1335
- selectedRetailerId: I,
1336
- cameraRef: h,
1337
- onSelectShape: v,
1338
- imageProxyUrl: x,
1339
- eventSource: q
2590
+ [Z, J, K]
2591
+ ), Ve(() => {
2592
+ if (z.width < 2 || z.height < 2) return;
2593
+ b == null && (X.current = null, M.current = null);
2594
+ const l = m.current, B = L.current, _ = b != null && B != null && X.current !== b, et = l != null && l.is3d === s && l.boundsKey === U && l.focusKey === b;
2595
+ if (b != null && B != null) {
2596
+ if (et) {
2597
+ X.current = b, M.current == null && q.current(l);
2598
+ return;
2599
+ }
2600
+ if (_) {
2601
+ if (m.current == null) {
2602
+ X.current = b, k.current = !0, c(), D(Y(B), s), m.current = p(!0);
2603
+ return;
2604
+ }
2605
+ l && !et && q.current(l), $.current(B);
2606
+ return;
2607
+ }
2608
+ return;
2609
+ }
2610
+ if (l && l.is3d === s && l.boundsKey === U) {
2611
+ q.current(l);
2612
+ return;
2613
+ }
2614
+ k.current = !1, E.current();
2615
+ }, [
2616
+ D,
2617
+ U,
2618
+ x,
2619
+ c,
2620
+ p,
2621
+ b,
2622
+ s,
2623
+ m,
2624
+ Y
2625
+ ]), lt(() => {
2626
+ z.width < 2 || z.height < 2 || k.current || E.current();
2627
+ }, [z.height, z.width]), An(() => {
2628
+ const l = M.current;
2629
+ if (!l) return;
2630
+ const B = Math.min(1, (performance.now() - l.started) / Ar);
2631
+ if (D(
2632
+ me(l.from, l.dest, B, qt),
2633
+ l.lookAt
2634
+ ), m.current = p(!0), B < 1) {
2635
+ W();
2636
+ return;
2637
+ }
2638
+ M.current = null;
2639
+ }), null;
2640
+ }
2641
+ const Wr = -1, Ae = [0, 1, 0], Dr = [1, 2], Br = { antialias: !0 };
2642
+ function Hr({
2643
+ doc: t,
2644
+ theme: e,
2645
+ activeLevelId: s,
2646
+ route: a,
2647
+ selectedShapeId: d,
2648
+ selectedShapeIds: m,
2649
+ hoveredShapeId: b = null,
2650
+ focusKey: Q,
2651
+ focusViewBounds: x,
2652
+ cameraRef: z,
2653
+ onSelectShape: W,
2654
+ imageProxyUrl: k,
2655
+ eventSource: H
1340
2656
  }) {
1341
- const T = a.MAP_STYLE === "3D", H = Ae(null), G = ie(
1342
- () => Qe(u.levels, A),
1343
- [u.levels, A]
1344
- ), E = ie(
1345
- () => Ke(u.levels, A, u.baseViewbox),
1346
- [u.levels, u.baseViewbox, A]
1347
- ), W = ie(() => Tt(E), [E]), N = ie(
1348
- () => u.levels.find((d) => Me(d)) ?? null,
1349
- [u.levels]
1350
- ), k = (N == null ? void 0 : N.sourceSvgUrl) ?? u.baseSvgUrl ?? null, f = ie(() => {
1351
- const d = /* @__PURE__ */ new Set();
1352
- if (!N) return d;
1353
- for (const p of N.shapes)
1354
- p.sourceSvgId && d.add(p.sourceSvgId);
1355
- return d;
1356
- }, [N]), P = G.some((d) => Me(d));
1357
- return /* @__PURE__ */ ne(
1358
- st,
2657
+ const G = e.MAP_STYLE === "3D", X = at(null), w = at(null), L = at(null), M = ot(
2658
+ () => un(t.levels, s),
2659
+ [t.levels, s]
2660
+ ), U = ot(
2661
+ () => fn(t.levels, s, t.baseViewbox),
2662
+ [t.levels, t.baseViewbox, s]
2663
+ ), c = ot(
2664
+ () => Ne(U),
2665
+ [
2666
+ U.cx,
2667
+ U.cy,
2668
+ U.maxX,
2669
+ U.maxY,
2670
+ U.minX,
2671
+ U.minY,
2672
+ U.size
2673
+ ]
2674
+ ), p = ot(
2675
+ () => [c.cx, c.cy, 500],
2676
+ [c.cx, c.cy]
2677
+ ), I = ot(
2678
+ () => [c.cx, c.cy - c.size * 0.35, c.size * 0.85],
2679
+ [c.cx, c.cy, c.size]
2680
+ ), u = ot(() => Pr(G), [G]), N = ot(() => Rr(G), [G]), O = ot(
2681
+ () => t.levels.find((J) => Pt(J)) ?? null,
2682
+ [t.levels]
2683
+ ), D = (O == null ? void 0 : O.sourceSvgUrl) ?? t.baseSvgUrl ?? null, Y = ot(
2684
+ () => dn(t.levels),
2685
+ [t.levels]
2686
+ ), tt = M.some((J) => Pt(J)), Z = ot(
2687
+ () => ({
2688
+ GREEN_AREA_COLOR: e.GREEN_AREA_COLOR,
2689
+ WATER_COLOR: e.WATER_COLOR,
2690
+ PARKING_LANE_COLOR: e.PARKING_LANE_COLOR,
2691
+ PARKING_ICON_COLOR: e.PARKING_ICON_COLOR,
2692
+ WALKABLE_COLOR: e.WALKABLE_COLOR
2693
+ }),
2694
+ [
2695
+ e.GREEN_AREA_COLOR,
2696
+ e.PARKING_ICON_COLOR,
2697
+ e.PARKING_LANE_COLOR,
2698
+ e.WALKABLE_COLOR,
2699
+ e.WATER_COLOR
2700
+ ]
2701
+ );
2702
+ return /* @__PURE__ */ ct(
2703
+ xn,
1359
2704
  {
1360
- style: { width: "100%", height: "100%", background: a.MAP_BACKGROUND_COLOR },
1361
- eventSource: q ?? void 0,
2705
+ style: {
2706
+ width: "100%",
2707
+ height: "100%",
2708
+ background: Mt(e.MAP_BACKGROUND_COLOR) ? "transparent" : e.MAP_BACKGROUND_COLOR
2709
+ },
2710
+ eventSource: H ?? void 0,
1362
2711
  eventPrefix: "offset",
1363
- orthographic: !T,
1364
- dpr: [1, 2],
2712
+ orthographic: !G,
2713
+ frameloop: "demand",
2714
+ dpr: Dr,
1365
2715
  flat: !0,
1366
- gl: { antialias: !0 },
1367
- camera: T ? {
1368
- position: [W.cx, W.cy - W.size * 0.35, W.size * 0.85],
2716
+ gl: Br,
2717
+ onPointerDown: (J) => {
2718
+ L.current = { x: J.clientX, y: J.clientY };
2719
+ },
2720
+ onPointerMissed: (J) => {
2721
+ sr(L.current, {
2722
+ x: J.clientX,
2723
+ y: J.clientY,
2724
+ button: J.button
2725
+ }) && (W == null || W(null, s ?? 0));
2726
+ },
2727
+ camera: G ? {
2728
+ position: I,
1369
2729
  fov: 50,
1370
2730
  near: 1,
1371
2731
  far: 1e4,
1372
- up: [0, 1, 0]
2732
+ up: Ae
1373
2733
  } : void 0,
1374
2734
  children: [
1375
- !T && /* @__PURE__ */ _(
1376
- it,
2735
+ !G && /* @__PURE__ */ T(
2736
+ vn,
1377
2737
  {
1378
2738
  makeDefault: !0,
1379
- position: [W.cx, W.cy, 500],
1380
- up: [0, 1, 0],
2739
+ position: p,
2740
+ up: Ae,
1381
2741
  near: 0.1,
1382
2742
  far: 5e3
1383
2743
  }
1384
2744
  ),
1385
- /* @__PURE__ */ _("color", { attach: "background", args: [a.MAP_BACKGROUND_COLOR] }),
1386
- /* @__PURE__ */ _("ambientLight", { intensity: 4, color: "#c4c4c4" }),
1387
- /* @__PURE__ */ _("directionalLight", { position: [0, 400, 0], color: "#ffffff", intensity: 0.3 }),
1388
- /* @__PURE__ */ _("directionalLight", { position: [0, 0, 400], color: "#c4c4c4", intensity: 0.2 }),
1389
- /* @__PURE__ */ _("directionalLight", { position: [0, 0, -400], color: "#c4c4c4", intensity: 0.2 }),
1390
- /* @__PURE__ */ ne("group", { scale: Mt, children: [
1391
- P && k ? /* @__PURE__ */ _(
1392
- wt,
2745
+ Mt(e.MAP_BACKGROUND_COLOR) ? null : /* @__PURE__ */ T("color", { attach: "background", args: [e.MAP_BACKGROUND_COLOR] }),
2746
+ /* @__PURE__ */ T("ambientLight", { intensity: 4, color: "#c4c4c4" }),
2747
+ /* @__PURE__ */ T("directionalLight", { position: [0, 400, 0], color: "#ffffff", intensity: 0.3 }),
2748
+ /* @__PURE__ */ T("directionalLight", { position: [0, 0, 400], color: "#c4c4c4", intensity: 0.2 }),
2749
+ /* @__PURE__ */ T("directionalLight", { position: [0, 0, -400], color: "#c4c4c4", intensity: 0.2 }),
2750
+ /* @__PURE__ */ ct("group", { scale: gr, children: [
2751
+ tt && D ? /* @__PURE__ */ T(
2752
+ yr,
1393
2753
  {
1394
- url: k,
1395
- suppressIds: f,
1396
- imageProxyUrl: x,
1397
- is3d: T
2754
+ url: D,
2755
+ suppressIds: Y,
2756
+ imageProxyUrl: k,
2757
+ is3d: G,
2758
+ theme: Z
1398
2759
  }
1399
2760
  ) : null,
1400
- G.map((d) => {
1401
- const p = Me(d), S = d.transform;
1402
- return /* @__PURE__ */ _(
2761
+ M.map((J) => {
2762
+ const E = Pt(J), q = J.transform;
2763
+ return /* @__PURE__ */ T(
1403
2764
  "group",
1404
2765
  {
1405
2766
  position: [
1406
- S.translateX,
1407
- S.translateY,
1408
- p ? Rt : 0
2767
+ q.translateX,
2768
+ q.translateY,
2769
+ E ? Wr : 0
1409
2770
  ],
1410
- rotation: [0, 0, S.rotate * Math.PI / 180],
1411
- scale: S.scale || 1,
1412
- children: /* @__PURE__ */ _(
1413
- gt,
2771
+ rotation: [0, 0, q.rotate * Math.PI / 180],
2772
+ scale: q.scale || 1,
2773
+ children: /* @__PURE__ */ T(
2774
+ ur,
1414
2775
  {
1415
- level: d,
1416
- theme: a,
1417
- is3d: T,
1418
- selectedRetailerId: I,
1419
- interactiveOnly: p && !!k,
1420
- onSelectShape: (j) => v == null ? void 0 : v(j, d.id)
2776
+ level: J,
2777
+ theme: e,
2778
+ is3d: G,
2779
+ eventSource: H,
2780
+ selectedShapeIds: m,
2781
+ hoveredShapeId: b,
2782
+ interactiveOnly: E && !!D,
2783
+ imageProxyUrl: k,
2784
+ amenities: t.amenities,
2785
+ onSelectShape: ($, K) => W == null ? void 0 : W($, J.id, K)
1421
2786
  }
1422
2787
  )
1423
2788
  },
1424
- d.id
2789
+ J.id
1425
2790
  );
1426
2791
  }),
1427
- M && /* @__PURE__ */ _(
1428
- bt,
2792
+ a && /* @__PURE__ */ T(
2793
+ dr,
1429
2794
  {
1430
- route: M,
1431
- activeLevelId: A,
1432
- color: a.ACCENT_COLOR
2795
+ route: a,
2796
+ activeLevelId: s,
2797
+ color: e.ACCENT_COLOR
1433
2798
  }
1434
2799
  )
1435
2800
  ] }),
1436
- /* @__PURE__ */ _(
1437
- at,
2801
+ /* @__PURE__ */ T(
2802
+ Mn,
1438
2803
  {
1439
- ref: H,
2804
+ ref: X,
1440
2805
  makeDefault: !0,
1441
2806
  enableDamping: !1,
1442
- enableRotate: T,
2807
+ enableRotate: G,
1443
2808
  enablePan: !0,
2809
+ enableZoom: !0,
1444
2810
  screenSpacePanning: !0,
1445
- mouseButtons: Ot(T),
1446
- touches: vt(T),
1447
- target: [W.cx, W.cy, 0],
1448
- maxDistance: a.CAMERA_MAX_DISTANCE,
1449
- minDistance: a.CAMERA_MIN_DISTANCE
2811
+ zoomSpeed: 1,
2812
+ zoomToCursor: zr,
2813
+ mouseButtons: u,
2814
+ touches: N,
2815
+ maxDistance: e.CAMERA_MAX_DISTANCE,
2816
+ minDistance: e.CAMERA_MIN_DISTANCE
1450
2817
  }
1451
2818
  ),
1452
- /* @__PURE__ */ _(
1453
- Pt,
2819
+ /* @__PURE__ */ T(
2820
+ Vr,
1454
2821
  {
1455
- bounds: W,
1456
- theme: a,
1457
- is3d: T,
1458
- controlsRef: H,
1459
- cameraRef: h
2822
+ bounds: c,
2823
+ theme: e,
2824
+ is3d: G,
2825
+ controlsRef: X,
2826
+ cameraRef: z,
2827
+ persistedViewRef: w,
2828
+ focusKey: Q ?? d ?? null,
2829
+ focusViewBounds: x ?? null
1460
2830
  }
1461
2831
  )
1462
2832
  ]
1463
2833
  }
1464
2834
  );
1465
2835
  }
1466
- function Fe(u, a) {
1467
- var A, M;
1468
- return ((A = u.assignment) == null ? void 0 : A.customLabel) || a || u.label.text || ((M = u.assignment) == null ? void 0 : M.unitNumber) || u.key;
1469
- }
1470
- function _t({
1471
- doc: u,
1472
- amenities: a,
1473
- onActiveLevelChange: A,
1474
- fromAnchorId: M,
1475
- toAnchorId: I,
1476
- onFromChange: h,
1477
- onToChange: v,
1478
- accessibleOnly: x,
1479
- onAccessibleOnlyChange: q,
1480
- route: T,
1481
- showSearch: H = !0,
1482
- showAmenities: G = !0
2836
+ function xe(t, e) {
2837
+ var s, a;
2838
+ return ((s = t.assignment) == null ? void 0 : s.customLabel) || e || t.label.text || ((a = t.assignment) == null ? void 0 : a.unitNumber) || t.key;
2839
+ }
2840
+ function Zr({
2841
+ doc: t,
2842
+ amenities: e,
2843
+ onActiveLevelChange: s,
2844
+ fromAnchorId: a,
2845
+ toAnchorId: d,
2846
+ onFromChange: m,
2847
+ onToChange: b,
2848
+ accessibleOnly: Q,
2849
+ onAccessibleOnlyChange: x,
2850
+ route: z,
2851
+ showSearch: W = !0,
2852
+ showAmenities: k = !0
1483
2853
  }) {
1484
- const [E, W] = ue(""), [N, k] = ue(null), f = ie(() => {
1485
- var z;
1486
- const m = [];
1487
- for (const R of u.levels)
1488
- for (const F of R.shapes) {
1489
- const X = R.anchors.find((Z) => Z.shapeId === F.id) ?? null;
1490
- if (F.kind === "unit" && m.push({
1491
- id: `store-${F.id}`,
1492
- label: Fe(F),
1493
- group: R.name,
1494
- anchorId: (X == null ? void 0 : X.id) ?? null,
1495
- levelId: R.id,
2854
+ const [H, G] = dt(""), [X, w] = dt(null), L = ot(() => {
2855
+ var N;
2856
+ const u = [];
2857
+ for (const O of t.levels)
2858
+ for (const D of O.shapes) {
2859
+ const Y = O.anchors.find((tt) => tt.shapeId === D.id) ?? null;
2860
+ if (D.kind === "unit" && u.push({
2861
+ id: `store-${D.id}`,
2862
+ label: xe(D),
2863
+ group: O.name,
2864
+ anchorId: (Y == null ? void 0 : Y.id) ?? null,
2865
+ levelId: O.id,
1496
2866
  kind: "store",
1497
2867
  amenityId: null
1498
- }), F.kind === "amenity" && ((z = F.assignment) != null && z.amenityId)) {
1499
- const Z = a.find((V) => V.id === F.assignment.amenityId);
1500
- m.push({
1501
- id: `amenity-${F.id}`,
1502
- label: Fe(F, Z == null ? void 0 : Z.name),
2868
+ }), D.kind === "amenity" && ((N = D.assignment) != null && N.amenityId)) {
2869
+ const tt = e.find((Z) => Z.id === D.assignment.amenityId);
2870
+ u.push({
2871
+ id: `amenity-${D.id}`,
2872
+ label: xe(D, tt == null ? void 0 : tt.name),
1503
2873
  group: "Amenities",
1504
- anchorId: (X == null ? void 0 : X.id) ?? null,
1505
- levelId: R.id,
2874
+ anchorId: (Y == null ? void 0 : Y.id) ?? null,
2875
+ levelId: O.id,
1506
2876
  kind: "amenity",
1507
- amenityId: (Z == null ? void 0 : Z.id) ?? F.assignment.amenityId
2877
+ amenityId: (tt == null ? void 0 : tt.id) ?? D.assignment.amenityId
1508
2878
  });
1509
2879
  }
1510
2880
  }
1511
- return m;
1512
- }, [u, a]), P = ie(() => {
1513
- const m = E.trim().toLowerCase();
1514
- return m ? f.filter((z) => z.label.toLowerCase().includes(m)) : f;
1515
- }, [f, E]), d = ie(() => {
1516
- const m = /* @__PURE__ */ new Map();
1517
- for (const z of P) {
1518
- const R = m.get(z.group) ?? [];
1519
- R.push(z), m.set(z.group, R);
2881
+ return u;
2882
+ }, [t, e]), M = ot(() => {
2883
+ const u = H.trim().toLowerCase();
2884
+ return u ? L.filter((N) => N.label.toLowerCase().includes(u)) : L;
2885
+ }, [L, H]), U = ot(() => {
2886
+ const u = /* @__PURE__ */ new Map();
2887
+ for (const N of M) {
2888
+ const O = u.get(N.group) ?? [];
2889
+ O.push(N), u.set(N.group, O);
1520
2890
  }
1521
- return Array.from(m.entries());
1522
- }, [P]), p = f.filter((m) => m.anchorId != null), S = E.trim().length > 0, j = (m) => {
1523
- k(m), m.anchorId != null && (v(m.anchorId), A(m.levelId));
2891
+ return Array.from(u.entries());
2892
+ }, [M]), c = L.filter((u) => u.anchorId != null), p = H.trim().length > 0, I = (u) => {
2893
+ w(u), u.anchorId != null && (b(u.anchorId), s(u.levelId));
1524
2894
  };
1525
- return !H && !(G && a.length > 0) ? null : /* @__PURE__ */ ne("div", { className: "eyeon-map-chrome", children: [
1526
- /* @__PURE__ */ ne("div", { className: "eyeon-map-chrome__top", children: [
1527
- H && /* @__PURE__ */ _(
2895
+ return !W && !(k && e.length > 0) ? null : /* @__PURE__ */ ct("div", { className: "eyeon-map-chrome", children: [
2896
+ /* @__PURE__ */ ct("div", { className: "eyeon-map-chrome__top", children: [
2897
+ W && /* @__PURE__ */ T(
1528
2898
  "input",
1529
2899
  {
1530
2900
  type: "search",
1531
2901
  className: "eyeon-map-chrome__search-input",
1532
2902
  placeholder: "Search...",
1533
2903
  "aria-label": "Search...",
1534
- value: E,
1535
- onChange: (m) => W(m.target.value)
2904
+ value: H,
2905
+ onChange: (u) => G(u.target.value)
1536
2906
  }
1537
2907
  ),
1538
- G && a.length > 0 && /* @__PURE__ */ _("div", { className: "eyeon-map-chrome__amenities", children: a.map((m) => /* @__PURE__ */ _(
2908
+ k && e.length > 0 && /* @__PURE__ */ T("div", { className: "eyeon-map-chrome__amenities", children: e.map((u) => /* @__PURE__ */ T(
1539
2909
  "button",
1540
2910
  {
1541
2911
  type: "button",
1542
2912
  className: "eyeon-map-chrome__amenity",
1543
- "aria-label": m.name,
2913
+ "aria-label": u.name,
1544
2914
  onClick: () => {
1545
- const z = f.find(
1546
- (R) => R.kind === "amenity" && R.amenityId === m.id && R.anchorId != null
2915
+ const N = L.find(
2916
+ (O) => O.kind === "amenity" && O.amenityId === u.id && O.anchorId != null
1547
2917
  );
1548
- z && j(z);
2918
+ N && I(N);
1549
2919
  },
1550
- children: m.builtinIcon ? /* @__PURE__ */ _("span", { className: "eyeon-map-chrome__amenity-icon", children: m.builtinIcon }) : /* @__PURE__ */ _("span", { className: "eyeon-map-chrome__amenity-label", children: m.name.slice(0, 2) })
2920
+ children: (() => {
2921
+ const N = we(u.code);
2922
+ return N ? /* @__PURE__ */ T(
2923
+ "span",
2924
+ {
2925
+ className: "eyeon-map-chrome__amenity-icon",
2926
+ dangerouslySetInnerHTML: {
2927
+ __html: Oe(N.svgCode, "#334155")
2928
+ }
2929
+ }
2930
+ ) : /* @__PURE__ */ T("span", { className: "eyeon-map-chrome__amenity-label", children: u.name.slice(0, 2) });
2931
+ })()
1551
2932
  },
1552
- m.id
2933
+ u.id
1553
2934
  )) })
1554
2935
  ] }),
1555
- H && S && /* @__PURE__ */ ne("div", { className: "eyeon-map-chrome__panel", children: [
1556
- /* @__PURE__ */ _("div", { className: "eyeon-map-chrome__groups", children: d.length === 0 ? /* @__PURE__ */ _("div", { className: "eyeon-map-chrome__empty", children: "No matching stores" }) : d.map(([m, z]) => /* @__PURE__ */ ne("div", { className: "eyeon-map-chrome__group", children: [
1557
- /* @__PURE__ */ _("div", { className: "eyeon-map-chrome__group-title", children: m }),
1558
- z.map((R) => /* @__PURE__ */ _(
2936
+ W && p && /* @__PURE__ */ ct("div", { className: "eyeon-map-chrome__panel", children: [
2937
+ /* @__PURE__ */ T("div", { className: "eyeon-map-chrome__groups", children: U.length === 0 ? /* @__PURE__ */ T("div", { className: "eyeon-map-chrome__empty", children: "No matching stores" }) : U.map(([u, N]) => /* @__PURE__ */ ct("div", { className: "eyeon-map-chrome__group", children: [
2938
+ /* @__PURE__ */ T("div", { className: "eyeon-map-chrome__group-title", children: u }),
2939
+ N.map((O) => /* @__PURE__ */ T(
1559
2940
  "button",
1560
2941
  {
1561
2942
  type: "button",
1562
- className: (N == null ? void 0 : N.id) === R.id ? "eyeon-map-chrome__item is-selected" : "eyeon-map-chrome__item",
1563
- onClick: () => j(R),
1564
- children: R.label
2943
+ className: (X == null ? void 0 : X.id) === O.id ? "eyeon-map-chrome__item is-selected" : "eyeon-map-chrome__item",
2944
+ onClick: () => I(O),
2945
+ children: O.label
1565
2946
  },
1566
- R.id
2947
+ O.id
1567
2948
  ))
1568
- ] }, m)) }),
1569
- N && /* @__PURE__ */ ne("div", { className: "eyeon-map-chrome__detail", children: [
1570
- /* @__PURE__ */ _("div", { className: "eyeon-map-chrome__detail-title", children: N.label }),
1571
- /* @__PURE__ */ _("div", { className: "eyeon-map-chrome__detail-meta", children: N.group })
2949
+ ] }, u)) }),
2950
+ X && /* @__PURE__ */ ct("div", { className: "eyeon-map-chrome__detail", children: [
2951
+ /* @__PURE__ */ T("div", { className: "eyeon-map-chrome__detail-title", children: X.label }),
2952
+ /* @__PURE__ */ T("div", { className: "eyeon-map-chrome__detail-meta", children: X.group })
1572
2953
  ] }),
1573
- /* @__PURE__ */ ne("div", { className: "eyeon-map-chrome__route", children: [
1574
- /* @__PURE__ */ ne("label", { children: [
2954
+ /* @__PURE__ */ ct("div", { className: "eyeon-map-chrome__route", children: [
2955
+ /* @__PURE__ */ ct("label", { children: [
1575
2956
  "From",
1576
- /* @__PURE__ */ ne(
1577
- "select",
2957
+ /* @__PURE__ */ T(
2958
+ le,
1578
2959
  {
1579
- value: M ?? "",
1580
- onChange: (m) => h(m.target.value ? Number(m.target.value) : null),
1581
- children: [
1582
- /* @__PURE__ */ _("option", { value: "", children: "Select start" }),
1583
- p.map((m) => /* @__PURE__ */ _("option", { value: m.anchorId, children: m.label }, m.id))
1584
- ]
2960
+ ariaLabel: "From",
2961
+ value: a != null ? String(a) : "",
2962
+ placeholder: "Select start",
2963
+ searchable: !0,
2964
+ options: c.map((u) => ({
2965
+ value: String(u.anchorId),
2966
+ label: `${u.label} · ${u.group}`
2967
+ })),
2968
+ onChange: (u) => m(u ? Number(u) : null)
1585
2969
  }
1586
2970
  )
1587
2971
  ] }),
1588
- /* @__PURE__ */ ne("label", { children: [
2972
+ /* @__PURE__ */ ct("label", { children: [
1589
2973
  "To",
1590
- /* @__PURE__ */ ne(
1591
- "select",
2974
+ /* @__PURE__ */ T(
2975
+ le,
1592
2976
  {
1593
- value: I ?? "",
1594
- onChange: (m) => v(m.target.value ? Number(m.target.value) : null),
1595
- children: [
1596
- /* @__PURE__ */ _("option", { value: "", children: "Select destination" }),
1597
- p.map((m) => /* @__PURE__ */ _("option", { value: m.anchorId, children: m.label }, m.id))
1598
- ]
2977
+ ariaLabel: "To",
2978
+ value: d != null ? String(d) : "",
2979
+ placeholder: "Select destination",
2980
+ searchable: !0,
2981
+ options: c.map((u) => ({
2982
+ value: String(u.anchorId),
2983
+ label: `${u.label} · ${u.group}`
2984
+ })),
2985
+ onChange: (u) => b(u ? Number(u) : null)
1599
2986
  }
1600
2987
  )
1601
2988
  ] }),
1602
- /* @__PURE__ */ ne("label", { className: "eyeon-map-chrome__accessible", children: [
1603
- /* @__PURE__ */ _(
2989
+ /* @__PURE__ */ ct("label", { className: "eyeon-map-chrome__accessible", children: [
2990
+ /* @__PURE__ */ T(
1604
2991
  "input",
1605
2992
  {
1606
2993
  type: "checkbox",
1607
- checked: x,
1608
- onChange: (m) => q(m.target.checked)
2994
+ checked: Q,
2995
+ onChange: (u) => x(u.target.checked)
1609
2996
  }
1610
2997
  ),
1611
2998
  "Accessible route"
1612
2999
  ] }),
1613
- T && /* @__PURE__ */ _("div", { className: "eyeon-map-chrome__route-meta", children: T.levelChanges.length > 0 ? `${T.levelChanges.length} level change(s)` : "Same level" })
3000
+ z && /* @__PURE__ */ T("div", { className: "eyeon-map-chrome__route-meta", children: z.levelChanges.length > 0 ? `${z.levelChanges.length} level change(s)` : "Same level" })
1614
3001
  ] })
1615
3002
  ] })
1616
3003
  ] });
1617
3004
  }
1618
- function Gt({
1619
- levels: u,
1620
- activeLevelId: a,
1621
- onActiveLevelChange: A,
1622
- onZoomIn: M,
1623
- onZoomOut: I,
1624
- onReset: h,
1625
- showFloors: v = !0,
1626
- showZoomReset: x = !0
1627
- }) {
1628
- const q = Je(u);
1629
- return !v && !x ? null : /* @__PURE__ */ _("div", { className: "eyeon-map-controls", children: /* @__PURE__ */ ne("div", { className: "eyeon-map-controls__stack", children: [
1630
- v && et(u) && /* @__PURE__ */ _("div", { className: "eyeon-map-controls__floors", role: "tablist", "aria-label": "Floors", children: q.map((T) => {
1631
- const H = T.id === a;
1632
- return /* @__PURE__ */ _(
1633
- "button",
1634
- {
1635
- type: "button",
1636
- role: "tab",
1637
- "aria-selected": H,
1638
- className: H ? "eyeon-map-controls__floor is-active" : "eyeon-map-controls__floor",
1639
- onClick: () => A(T.id),
1640
- children: T.name
1641
- },
1642
- T.id
1643
- );
1644
- }) }),
1645
- x && /* @__PURE__ */ ne(We, { children: [
1646
- /* @__PURE__ */ _(
1647
- "button",
1648
- {
1649
- type: "button",
1650
- className: "eyeon-map-controls__reset",
1651
- onClick: h,
1652
- "aria-label": "Reset map",
1653
- children: "Reset"
1654
- }
1655
- ),
1656
- /* @__PURE__ */ ne("div", { className: "eyeon-map-controls__zoom", children: [
1657
- /* @__PURE__ */ _(
1658
- "button",
1659
- {
1660
- type: "button",
1661
- className: "eyeon-map-controls__zoom-btn",
1662
- onClick: I,
1663
- "aria-label": "Zoom out",
1664
- children: "−"
1665
- }
1666
- ),
1667
- /* @__PURE__ */ _(
1668
- "button",
1669
- {
1670
- type: "button",
1671
- className: "eyeon-map-controls__zoom-btn",
1672
- onClick: M,
1673
- "aria-label": "Zoom in",
1674
- children: "+"
1675
- }
1676
- )
1677
- ] })
1678
- ] })
1679
- ] }) });
1680
- }
1681
- async function Dt(u, a, A) {
1682
- const M = u.replace(/\/$/, ""), I = new URLSearchParams();
1683
- a != null && a > 0 && I.set("center_id", String(a)), A && I.set("draft", "1");
1684
- const h = I.toString(), v = await fetch(`${M}/v1/map/document${h ? `?${h}` : ""}`, {
1685
- credentials: "include"
3005
+ async function Fr(t, e, s, a) {
3006
+ const d = t.replace(/\/$/, ""), m = new URLSearchParams();
3007
+ e != null && e > 0 && m.set("center_id", String(e)), s && m.set("draft", "1");
3008
+ const b = m.toString(), Q = await fetch(`${d}/v1/map/document${b ? `?${b}` : ""}`, {
3009
+ credentials: "include",
3010
+ signal: a
1686
3011
  });
1687
- if (!v.ok)
1688
- throw new Error(`Failed to load map document (${v.status})`);
1689
- return v.json();
3012
+ if (!Q.ok)
3013
+ throw new Error(`Failed to load map document (${Q.status})`);
3014
+ return Q.json();
1690
3015
  }
1691
- function Ut(u) {
3016
+ function eo(t) {
3017
+ Ie();
1692
3018
  const {
1693
- document: a,
1694
- webApiURI: A,
1695
- centerId: M,
1696
- host: I = "WEBSITE",
1697
- kioskId: h = null,
1698
- selectedRetailerId: v = null,
1699
- themeOverrides: x,
1700
- onExtractedAmenities: q,
1701
- createRouteRef: T,
1702
- className: H,
1703
- style: G,
1704
- activeLevelId: E,
1705
- onActiveLevelChange: W,
1706
- routeOnSelect: N = !0,
1707
- imageProxyUrl: k
1708
- } = u, [f, P] = ue(a ?? null), d = ie(
1709
- () => f ? Ge(f) : null,
1710
- [f]
1711
- ), [p, S] = ue(null), [j, m] = ue(null), [z, R] = ue(null), [F, X] = ue(null), [Z, V] = ue(!1), [K, $] = ue(() => a ? De(Ge(a).levels) : null), oe = Ae(null), J = Ae(null), U = E ?? K, g = (r) => {
1712
- $(r), r != null && (W == null || W(r));
3019
+ document: e,
3020
+ webApiURI: s,
3021
+ centerId: a,
3022
+ host: d = "WEBSITE",
3023
+ kioskId: m = null,
3024
+ selectedRetailerId: b = null,
3025
+ themeOverrides: Q,
3026
+ onExtractedAmenities: x,
3027
+ createRouteRef: z,
3028
+ className: W,
3029
+ style: k,
3030
+ activeLevelId: H,
3031
+ onActiveLevelChange: G,
3032
+ routeOnSelect: X = !0,
3033
+ imageProxyUrl: w,
3034
+ selectedShapeId: L = null,
3035
+ selectedShapeIds: M,
3036
+ hoveredShapeId: U = null,
3037
+ focusNonce: c
3038
+ } = t, [p, I] = dt(e ?? null), u = ot(
3039
+ () => p ? re(p) : null,
3040
+ [p]
3041
+ ), [N, O] = dt(null), [D, Y] = dt(null), [tt, Z] = dt(null), [J, E] = dt(null), [q, $] = dt(!1), [K, l] = dt(() => e ? oe(re(e).levels) : null), B = at(null), _ = at(null), et = H ?? K, st = (A) => {
3042
+ l(A), A != null && (G == null || G(A));
1713
3043
  };
1714
- me(() => {
1715
- if (a) {
1716
- P(a);
3044
+ lt(() => {
3045
+ if (e) {
3046
+ I(e);
1717
3047
  return;
1718
3048
  }
1719
- if (!A) return;
1720
- let r = !1;
1721
- const o = Te(I).fetchDraft;
1722
- return Dt(A, M, o).then((t) => {
1723
- r || P(t);
1724
- }).catch((t) => {
1725
- r || S(t instanceof Error ? t.message : String(t));
3049
+ if (!s) return;
3050
+ let A = !1;
3051
+ const y = new AbortController(), v = Rt(d).fetchDraft;
3052
+ return Fr(s, a, v, y.signal).then((S) => {
3053
+ A || I(S);
3054
+ }).catch((S) => {
3055
+ !A && !(S instanceof DOMException && S.name === "AbortError") && O(S instanceof Error ? S.message : String(S));
1726
3056
  }), () => {
1727
- r = !0;
3057
+ A = !0, y.abort();
1728
3058
  };
1729
- }, [a, A, M, I]), me(() => {
1730
- var t;
1731
- if (!d) return;
1732
- const r = new Set(d.levels.map((e) => e.id));
1733
- (U == null || !r.has(U)) && g(De(d.levels));
1734
- const o = /* @__PURE__ */ new Set();
1735
- for (const e of d.levels)
1736
- for (const c of e.shapes)
1737
- if (c.kind === "amenity" && ((t = c.assignment) == null ? void 0 : t.amenityId) != null) {
1738
- const y = d.amenities.find((i) => i.id === c.assignment.amenityId);
1739
- y && o.add(y.code);
3059
+ }, [e, s, a, d]), lt(() => {
3060
+ var v;
3061
+ if (!u) return;
3062
+ const A = new Set(u.levels.map((S) => S.id));
3063
+ (et == null || !A.has(et)) && st(oe(u.levels));
3064
+ const y = /* @__PURE__ */ new Set();
3065
+ for (const S of u.levels)
3066
+ for (const V of S.shapes)
3067
+ if (V.kind === "amenity" && ((v = V.assignment) == null ? void 0 : v.amenityId) != null) {
3068
+ const f = u.amenities.find((o) => o.id === V.assignment.amenityId);
3069
+ f && y.add(f.code);
1740
3070
  }
1741
- q == null || q(Array.from(o));
1742
- }, [d, U, q]), me(() => {
1743
- var r;
1744
- if (!(!d || v == null)) {
1745
- for (const o of d.levels)
1746
- for (const t of o.shapes)
1747
- if (((r = t.assignment) == null ? void 0 : r.retailerId) === v) {
1748
- g(o.id);
3071
+ x == null || x(Array.from(y));
3072
+ }, [u, et, x]), lt(() => {
3073
+ var A;
3074
+ if (!(!u || b == null)) {
3075
+ for (const y of u.levels)
3076
+ for (const v of y.shapes)
3077
+ if (((A = v.assignment) == null ? void 0 : A.retailerId) === b) {
3078
+ st(
3079
+ It(u.levels, et, y.id)
3080
+ );
1749
3081
  return;
1750
3082
  }
1751
3083
  }
1752
- }, [d, v]), me(() => {
1753
- var r;
1754
- if (!(!d || !Te(I).kioskOrigin || h == null)) {
1755
- for (const o of d.levels)
1756
- for (const t of o.shapes)
1757
- if (t.kind === "kiosk_screen" && ((r = t.assignment) == null ? void 0 : r.kioskId) === h) {
1758
- const e = o.anchors.find((c) => c.shapeId === t.id);
1759
- e && R(e.id);
3084
+ }, [u, b]);
3085
+ const ut = ot(() => M && M.length > 0 ? M : L != null ? [L] : [], [L, M]), h = Lr(ut), i = h == null ? null : c != null ? `${h}#${c}` : h, r = ot(() => !u || ut.length === 0 ? null : Ut(u.levels, ut), [u, ut]);
3086
+ lt(() => {
3087
+ var A;
3088
+ if (!(!u || !Rt(d).kioskOrigin || m == null)) {
3089
+ for (const y of u.levels)
3090
+ for (const v of y.shapes)
3091
+ if (v.kind === "kiosk_screen" && ((A = v.assignment) == null ? void 0 : A.kioskId) === m) {
3092
+ const S = y.anchors.find((V) => V.shapeId === v.id);
3093
+ S && Z(S.id);
1760
3094
  }
1761
3095
  }
1762
- }, [d, I, h]);
1763
- const te = ie(() => d ? tt(
1764
- d.graph.nodes.map((r) => ({
1765
- id: r.id,
1766
- levelId: r.levelId,
1767
- shapeId: r.shapeId,
1768
- kind: r.kind,
1769
- x: r.x,
1770
- y: r.y,
1771
- connectorId: r.connectorId
3096
+ }, [u, d, m]);
3097
+ const n = ot(() => u ? hn(
3098
+ u.graph.nodes.map((A) => ({
3099
+ id: A.id,
3100
+ levelId: A.levelId,
3101
+ shapeId: A.shapeId,
3102
+ kind: A.kind,
3103
+ x: A.x,
3104
+ y: A.y,
3105
+ connectorId: A.connectorId
1772
3106
  })),
1773
- d.graph.edges.map((r) => ({
1774
- id: r.id,
1775
- mapId: d.mapId,
1776
- fromAnchorId: r.from,
1777
- toAnchorId: r.to,
1778
- weight: r.weight,
1779
- directed: r.directed,
1780
- accessible: r.accessible,
1781
- kind: r.kind
3107
+ u.graph.edges.map((A) => ({
3108
+ id: A.id,
3109
+ mapId: u.mapId,
3110
+ fromAnchorId: A.from,
3111
+ toAnchorId: A.to,
3112
+ weight: A.weight,
3113
+ directed: A.directed,
3114
+ accessible: A.accessible,
3115
+ kind: A.kind
1782
3116
  })),
1783
- d.connectors
1784
- ) : null, [d]), ee = (r, o) => {
1785
- if (!te || r == null || o == null) {
1786
- m(null);
3117
+ u.connectors
3118
+ ) : null, [u]), C = (A, y) => {
3119
+ if (!n || A == null || y == null) {
3120
+ Y(null);
1787
3121
  return;
1788
3122
  }
1789
- const t = ot(te, r, o, { accessibleOnly: Z });
1790
- m(t);
3123
+ const v = yn(n, A, y, { accessibleOnly: q });
3124
+ Y(v);
1791
3125
  };
1792
- me(() => {
1793
- ee(z, F);
1794
- }, [z, F, Z, te]), me(() => {
1795
- !T || !d || (T.current = {
1796
- createRouteToStore(r) {
1797
- var o;
1798
- for (const t of d.levels)
1799
- for (const e of t.shapes)
1800
- if (((o = e.assignment) == null ? void 0 : o.retailerId) === r) {
1801
- const c = t.anchors.find((y) => y.shapeId === e.id);
1802
- c && (X(c.id), g(t.id));
3126
+ lt(() => {
3127
+ C(tt, J);
3128
+ }, [tt, J, q, n]), lt(() => {
3129
+ if (!z || !u) return;
3130
+ const A = {
3131
+ createRouteToStore(y) {
3132
+ var v;
3133
+ for (const S of u.levels)
3134
+ for (const V of S.shapes)
3135
+ if (((v = V.assignment) == null ? void 0 : v.retailerId) === y) {
3136
+ const f = S.anchors.find((o) => o.shapeId === V.id);
3137
+ f && (E(f.id), st(
3138
+ It(u.levels, et, S.id)
3139
+ ));
1803
3140
  }
1804
3141
  },
1805
- createRouteToAmenity(r) {
1806
- var t;
1807
- const o = d.amenities.find((e) => e.code === r);
1808
- if (o) {
1809
- for (const e of d.levels)
1810
- for (const c of e.shapes)
1811
- if (((t = c.assignment) == null ? void 0 : t.amenityId) === o.id) {
1812
- const y = e.anchors.find((i) => i.shapeId === c.id);
1813
- if (y) {
1814
- X(y.id), g(e.id);
3142
+ createRouteToAmenity(y) {
3143
+ var S;
3144
+ const v = u.amenities.find((V) => V.code === y);
3145
+ if (v) {
3146
+ for (const V of u.levels)
3147
+ for (const f of V.shapes)
3148
+ if (((S = f.assignment) == null ? void 0 : S.amenityId) === v.id) {
3149
+ const o = V.anchors.find((j) => j.shapeId === f.id);
3150
+ if (o) {
3151
+ E(o.id), st(
3152
+ It(u.levels, et, V.id)
3153
+ );
1815
3154
  return;
1816
3155
  }
1817
3156
  }
1818
3157
  }
1819
3158
  },
1820
3159
  clearRoute() {
1821
- X(null), m(null);
3160
+ E(null), Y(null);
1822
3161
  }
1823
- });
1824
- }, [T, d]);
1825
- const se = nt(d == null ? void 0 : d.theme, x);
1826
- if (p)
1827
- return /* @__PURE__ */ _("div", { className: `eyeon-map-viewer eyeon-map-viewer--error ${H ?? ""}`, style: G, children: /* @__PURE__ */ _("div", { className: "eyeon-map-viewer__error", children: p }) });
1828
- if (!d)
1829
- return /* @__PURE__ */ _("div", { className: `eyeon-map-viewer eyeon-map-viewer--loading ${H ?? ""}`, style: G, children: /* @__PURE__ */ _("div", { className: "eyeon-map-viewer__loading", children: "Loading map…" }) });
1830
- const he = d.amenities.filter(
1831
- (r) => d.levels.some(
1832
- (o) => o.shapes.some((t) => {
1833
- var e;
1834
- return ((e = t.assignment) == null ? void 0 : e.amenityId) === r.id;
3162
+ };
3163
+ return z.current = A, () => {
3164
+ z.current === A && (z.current = null);
3165
+ };
3166
+ }, [et, z, u]);
3167
+ const R = mn(u == null ? void 0 : u.theme, Q);
3168
+ if (N)
3169
+ return /* @__PURE__ */ T("div", { className: `eyeon-map-viewer eyeon-map-viewer--error ${W ?? ""}`, style: k, children: /* @__PURE__ */ T("div", { className: "eyeon-map-viewer__error", children: N }) });
3170
+ if (!u)
3171
+ return /* @__PURE__ */ T("div", { className: `eyeon-map-viewer eyeon-map-viewer--loading ${W ?? ""}`, style: k, children: /* @__PURE__ */ T("div", { className: "eyeon-map-viewer__loading", children: "Loading map…" }) });
3172
+ const g = u.amenities.filter(
3173
+ (A) => Pn(A.code) && u.levels.some(
3174
+ (y) => y.shapes.some((v) => {
3175
+ var S;
3176
+ return ((S = v.assignment) == null ? void 0 : S.amenityId) === A.id;
1835
3177
  })
1836
3178
  )
1837
- ), ce = Te(I);
1838
- return /* @__PURE__ */ ne(
3179
+ ), P = Rt(d), F = ve(u.levels);
3180
+ return /* @__PURE__ */ ct(
1839
3181
  "div",
1840
3182
  {
1841
- className: `eyeon-map-viewer eyeon-map-viewer--${I} ${H ?? ""}`,
3183
+ className: `eyeon-map-viewer eyeon-map-viewer--${d}${F ? "" : " eyeon-map-viewer--empty"} ${W ?? ""}`,
1842
3184
  style: {
1843
- ...G,
1844
- "--map-accent": se.ACCENT_COLOR,
1845
- "--map-bg": se.MAP_BACKGROUND_COLOR
3185
+ ...k,
3186
+ "--map-accent": R.ACCENT_COLOR,
3187
+ "--map-bg": R.MAP_BACKGROUND_COLOR
1846
3188
  },
1847
3189
  children: [
1848
- (ce.search || ce.amenities) && /* @__PURE__ */ _(
1849
- _t,
3190
+ F ? null : /* @__PURE__ */ T("div", { className: "eyeon-map-viewer__empty", children: pn }),
3191
+ F && (P.search || P.amenities) && /* @__PURE__ */ T(
3192
+ Zr,
1850
3193
  {
1851
- doc: d,
1852
- amenities: he,
1853
- activeLevelId: U,
1854
- onActiveLevelChange: g,
1855
- fromAnchorId: z,
1856
- toAnchorId: F,
1857
- onFromChange: R,
1858
- onToChange: X,
1859
- accessibleOnly: Z,
1860
- onAccessibleOnlyChange: V,
1861
- route: j,
1862
- showSearch: ce.search,
1863
- showAmenities: ce.amenities
3194
+ doc: u,
3195
+ amenities: g,
3196
+ activeLevelId: et,
3197
+ onActiveLevelChange: st,
3198
+ fromAnchorId: tt,
3199
+ toAnchorId: J,
3200
+ onFromChange: Z,
3201
+ onToChange: E,
3202
+ accessibleOnly: q,
3203
+ onAccessibleOnlyChange: $,
3204
+ route: D,
3205
+ showSearch: P.search,
3206
+ showAmenities: P.amenities
1864
3207
  }
1865
3208
  ),
1866
- /* @__PURE__ */ _(
1867
- Gt,
3209
+ F ? /* @__PURE__ */ T(
3210
+ kn,
1868
3211
  {
1869
- levels: d.levels,
1870
- activeLevelId: U,
1871
- onActiveLevelChange: g,
3212
+ levels: u.levels,
3213
+ activeLevelId: et,
3214
+ onActiveLevelChange: st,
1872
3215
  onZoomIn: () => {
1873
- var r;
1874
- return (r = oe.current) == null ? void 0 : r.zoomIn();
3216
+ var A;
3217
+ return (A = B.current) == null ? void 0 : A.zoomIn();
1875
3218
  },
1876
3219
  onZoomOut: () => {
1877
- var r;
1878
- return (r = oe.current) == null ? void 0 : r.zoomOut();
3220
+ var A;
3221
+ return (A = B.current) == null ? void 0 : A.zoomOut();
1879
3222
  },
1880
3223
  onReset: () => {
1881
- var r;
1882
- return (r = oe.current) == null ? void 0 : r.reset();
3224
+ var A;
3225
+ return (A = B.current) == null ? void 0 : A.reset();
1883
3226
  },
1884
- showFloors: ce.floors,
1885
- showZoomReset: ce.zoomReset
3227
+ showFloors: P.floors,
3228
+ showZoomReset: P.zoomReset
1886
3229
  }
1887
- ),
1888
- /* @__PURE__ */ _("div", { ref: J, className: "eyeon-map-viewer__canvas", children: /* @__PURE__ */ _(Xe, { fallback: null, children: /* @__PURE__ */ _(
1889
- Lt,
3230
+ ) : null,
3231
+ F ? /* @__PURE__ */ T("div", { ref: _, className: "eyeon-map-viewer__canvas", children: /* @__PURE__ */ T(We, { fallback: null, children: /* @__PURE__ */ T(
3232
+ Hr,
1890
3233
  {
1891
- doc: d,
1892
- theme: se,
1893
- activeLevelId: U,
1894
- route: j,
1895
- selectedRetailerId: v,
1896
- cameraRef: oe,
1897
- eventSource: J,
1898
- imageProxyUrl: k,
1899
- onSelectShape: (r, o) => {
1900
- var t;
1901
- if (g(o), N) {
1902
- const e = d.levels.find((y) => y.id === o), c = e == null ? void 0 : e.anchors.find((y) => y.shapeId === r);
1903
- c && X(c.id);
3234
+ doc: u,
3235
+ theme: R,
3236
+ activeLevelId: et,
3237
+ route: D,
3238
+ selectedShapeId: L,
3239
+ selectedShapeIds: ut,
3240
+ hoveredShapeId: U,
3241
+ focusKey: i,
3242
+ focusViewBounds: r,
3243
+ cameraRef: B,
3244
+ eventSource: _,
3245
+ imageProxyUrl: w,
3246
+ onSelectShape: (A, y, v) => {
3247
+ var S, V, f;
3248
+ if (A == null) {
3249
+ (S = t.onSelectShape) == null || S.call(t, null);
3250
+ return;
3251
+ }
3252
+ if (v != null && v.additive || st(
3253
+ It(u.levels, et, y)
3254
+ ), X) {
3255
+ const o = u.levels.find((nt) => nt.id === y), j = o == null ? void 0 : o.anchors.find((nt) => nt.shapeId === A);
3256
+ j && E(j.id);
3257
+ }
3258
+ if ((V = t.onSelectShape) == null || V.call(t, A, v), !(v != null && v.additive) && A === L) {
3259
+ const o = Ut(u.levels, ut) ?? Nr(u.levels, A);
3260
+ o && ((f = B.current) == null || f.focusBounds(o));
1904
3261
  }
1905
- (t = u.onSelectShape) == null || t.call(u, r);
1906
3262
  }
1907
3263
  }
1908
- ) }) })
3264
+ ) }) }) : null
1909
3265
  ]
1910
3266
  }
1911
3267
  );
1912
3268
  }
1913
3269
  export {
1914
- Gt as M,
1915
- _t as R,
1916
- Lt as a,
1917
- Ut as b
3270
+ kn as M,
3271
+ Zr as R,
3272
+ Hr as a,
3273
+ eo as b,
3274
+ Jr as c,
3275
+ se as d,
3276
+ Ie as e,
3277
+ Rn as f,
3278
+ le as g,
3279
+ Bn as h,
3280
+ we as i,
3281
+ _r as j,
3282
+ $r as k,
3283
+ to as l
1918
3284
  };
1919
3285
  //# sourceMappingURL=MapViewer.js.map