@expofp/floorplan 3.0.0-alpha.14 → 3.0.0-alpha.15

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 (44) hide show
  1. package/dist/browser/Debug-Bn7mmuWl.js +40 -0
  2. package/dist/browser/Demo-pwpeopeB.js +47 -0
  3. package/dist/browser/{Free-Dm2FRajw.js → Free-CeZSHheC.js} +29 -20
  4. package/dist/browser/Gallery-BTasOfWx.js +288 -0
  5. package/dist/browser/GpsLoader-BS8b-Aif.js +140 -0
  6. package/dist/browser/{KioskStore-Bvvm0aNQ.js → KioskStore-_Zcv0Bc0.js} +57 -48
  7. package/dist/browser/Mapbox-Cl59-8BN.js +118 -0
  8. package/dist/browser/{SetKioskMode-BecTBVRp.js → SetKioskMode-CjjAW8SI.js} +66 -57
  9. package/dist/browser/{ShowKiosk-C-6DHz7T.js → ShowKiosk-DUcthTIK.js} +28 -19
  10. package/dist/browser/{ThreeComponent-Brnrh22I.js → ThreeComponent-CdelmApV.js} +181 -172
  11. package/dist/browser/boolean-editor-HetrPeeC.js +157 -0
  12. package/dist/browser/bundle.json +29 -29
  13. package/dist/browser/{client-D3Op9Jdd.js → client-BMgLu7eB.js} +590 -581
  14. package/dist/browser/{data-0pZ-ZMEi.js → data-eO9H1gMa.js} +276 -267
  15. package/dist/browser/{debug-overlay-6c_tWF4O.js → debug-overlay-DqIeCuHo.js} +98 -89
  16. package/dist/browser/debug-ui-6t_iunMd.js +67 -0
  17. package/dist/browser/{favicon-DalyEhbd.js → favicon-CoF9H4Pb.js} +11 -2
  18. package/dist/browser/fetch-retry.umd-GcX1W9qV.js +123 -0
  19. package/dist/browser/{flex-OW_m-DBA.js → flex-BC_JSvaB.js} +80 -71
  20. package/dist/browser/{floorplan.ready-D-VQ-QvS.js → floorplan.ready-CZn5dvsU.js} +1011 -987
  21. package/dist/browser/index-C1Rwmp91.js +54 -0
  22. package/dist/browser/{index-BuJlIIdP.js → index-CEVUHq8g.js} +96 -87
  23. package/dist/browser/{index-BUq8_R36.js → index-Dba8EyWF.js} +41 -32
  24. package/dist/browser/{index-Zz9lJz5_.js → index-DnV82MKb.js} +296 -287
  25. package/dist/browser/index-Dp-WygGH.js +57 -0
  26. package/dist/browser/index-sNwIhVDZ.js +92 -0
  27. package/dist/browser/{index-AJbTBu7z.js → index-uGr-_9rk.js} +258 -249
  28. package/dist/browser/index.js +11 -2
  29. package/dist/browser/jsx-runtime-BHfPvO9I.js +40 -0
  30. package/dist/browser/{main-CD9JioNt.js → main-DYasSc7U.js} +24 -15
  31. package/dist/browser/{particles.min-BZTb0pvb.js → particles.min-B6O6_M_h.js} +43 -34
  32. package/package.json +4 -3
  33. package/dist/browser/Debug-Pul6-ZdY.js +0 -31
  34. package/dist/browser/Demo-DN_Ej-P_.js +0 -38
  35. package/dist/browser/Gallery-TLr-wfCG.js +0 -279
  36. package/dist/browser/GpsLoader-CeS0cp98.js +0 -131
  37. package/dist/browser/Mapbox-DizBJSb0.js +0 -109
  38. package/dist/browser/boolean-editor-Duwgypgb.js +0 -148
  39. package/dist/browser/debug-ui-TGRI1j4k.js +0 -58
  40. package/dist/browser/fetch-retry.umd-BZ52tMyv.js +0 -114
  41. package/dist/browser/index-B2YV6GNs.js +0 -48
  42. package/dist/browser/index-D0SjrKD-.js +0 -45
  43. package/dist/browser/index-Vc2rrV4B.js +0 -83
  44. package/dist/browser/jsx-runtime-jIxVPx5o.js +0 -31
@@ -1,9 +1,18 @@
1
- import { j as gt } from "./jsx-runtime-jIxVPx5o.js";
2
- import { y as bt } from "./index-D0SjrKD-.js";
3
- import { C as Qt, V as E, M as U, T as N, Q as yt, S as vt, g as x, h as Jt, P as _t, i as $t, L as Nt, j as te, F as Vt, k as ee, l as se, m as et, n as B, o as F, p as W, D as ie, q as Bt, G as Wt, B as wt, r as H, t as st, v as Pt, w as J, x as Tt, y as it, z as X, A as oe, E as ae, H as Et, N as Mt, I as ne, J as Ht, K as ct, O as Ft, U as re, W as K, X as he, Y as le, Z as ce, _ as Ae, $ as qt, a0 as ot, a1 as z, a2 as Kt, s as P, a3 as de, a4 as pe, a5 as ue, f as At, a as b, a6 as fe, a7 as St, u as me, e as Z, R as Lt, c as ge } from "./floorplan.ready-D-VQ-QvS.js";
4
- import { ah as dt, r as Rt } from "./index-Zz9lJz5_.js";
5
- import { j as be, m as q, s as ye, k as ve, h as xt, z as we, a as at, i as Pe } from "./data-0pZ-ZMEi.js";
6
- const Dt = { type: "change" }, pt = { type: "start" }, zt = { type: "end" }, _ = new Jt(), kt = new _t(), Te = Math.cos(70 * $t.DEG2RAD), S = new E(), R = 2 * Math.PI, w = {
1
+ import { j as gt } from "./jsx-runtime-BHfPvO9I.js";
2
+ import { y as bt } from "./index-C1Rwmp91.js";
3
+ import { C as Qt, V as E, M as U, T as N, Q as yt, S as vt, g as x, h as Jt, P as _t, i as $t, L as Nt, j as te, F as Vt, k as ee, l as se, m as et, n as B, o as F, p as W, D as ie, q as Bt, G as Wt, B as wt, r as H, t as st, v as Pt, w as J, x as Tt, y as it, z as X, A as oe, E as ae, H as Et, N as Mt, I as ne, J as Ht, K as ct, O as Ft, U as re, W as K, X as he, Y as le, Z as ce, _ as Ae, $ as qt, a0 as ot, a1 as z, a2 as Kt, s as P, a3 as de, a4 as pe, a5 as ue, f as At, a as b, a6 as fe, a7 as St, u as me, e as Z, R as Rt, c as ge } from "./floorplan.ready-CZn5dvsU.js";
4
+ import { ah as dt, r as Lt } from "./index-DnV82MKb.js";
5
+ import { j as be, m as q, s as ye, k as ve, h as xt, z as we, a as at, i as Pe } from "./data-eO9H1gMa.js";
6
+ (function() {
7
+ try {
8
+ var h = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
9
+ h.SENTRY_RELEASE = { id: "3.0.0-alpha.15" };
10
+ var t = new h.Error().stack;
11
+ t && (h._sentryDebugIds = h._sentryDebugIds || {}, h._sentryDebugIds[t] = "6420db16-9fec-47ac-b14c-5aad29b57848", h._sentryDebugIdIdentifier = "sentry-dbid-6420db16-9fec-47ac-b14c-5aad29b57848");
12
+ } catch {
13
+ }
14
+ })();
15
+ const Dt = { type: "change" }, pt = { type: "start" }, zt = { type: "end" }, _ = new Jt(), kt = new _t(), Te = Math.cos(70 * $t.DEG2RAD), S = new E(), L = 2 * Math.PI, w = {
7
16
  NONE: -1,
8
17
  ROTATE: 0,
9
18
  DOLLY: 1,
@@ -15,7 +24,7 @@ const Dt = { type: "change" }, pt = { type: "start" }, zt = { type: "end" }, _ =
15
24
  }, nt = 1e-6;
16
25
  class Ee extends Qt {
17
26
  constructor(t, e = null) {
18
- super(t, e), this.state = w.NONE, this.enabled = !0, this.target = new E(), this.cursor = new E(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.keyRotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: U.ROTATE, MIDDLE: U.DOLLY, RIGHT: U.PAN }, this.touches = { ONE: N.ROTATE, TWO: N.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new E(), this._lastQuaternion = new yt(), this._lastTargetPosition = new E(), this._quat = new yt().setFromUnitVectors(t.up, new E(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new vt(), this._sphericalDelta = new vt(), this._scale = 1, this._panOffset = new E(), this._rotateStart = new x(), this._rotateEnd = new x(), this._rotateDelta = new x(), this._panStart = new x(), this._panEnd = new x(), this._panDelta = new x(), this._dollyStart = new x(), this._dollyEnd = new x(), this._dollyDelta = new x(), this._dollyDirection = new E(), this._mouse = new x(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = Se.bind(this), this._onPointerDown = Me.bind(this), this._onPointerUp = Le.bind(this), this._onContextMenu = Ce.bind(this), this._onMouseWheel = De.bind(this), this._onKeyDown = ke.bind(this), this._onTouchStart = Oe.bind(this), this._onTouchMove = Ze.bind(this), this._onMouseDown = Re.bind(this), this._onMouseMove = xe.bind(this), this._interceptControlDown = Ie.bind(this), this._interceptControlUp = Ue.bind(this), this.domElement !== null && this.connect(), this.update();
27
+ super(t, e), this.state = w.NONE, this.enabled = !0, this.target = new E(), this.cursor = new E(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.keyRotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: U.ROTATE, MIDDLE: U.DOLLY, RIGHT: U.PAN }, this.touches = { ONE: N.ROTATE, TWO: N.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new E(), this._lastQuaternion = new yt(), this._lastTargetPosition = new E(), this._quat = new yt().setFromUnitVectors(t.up, new E(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new vt(), this._sphericalDelta = new vt(), this._scale = 1, this._panOffset = new E(), this._rotateStart = new x(), this._rotateEnd = new x(), this._rotateDelta = new x(), this._panStart = new x(), this._panEnd = new x(), this._panDelta = new x(), this._dollyStart = new x(), this._dollyEnd = new x(), this._dollyDelta = new x(), this._dollyDirection = new E(), this._mouse = new x(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = Se.bind(this), this._onPointerDown = Me.bind(this), this._onPointerUp = Re.bind(this), this._onContextMenu = Ce.bind(this), this._onMouseWheel = De.bind(this), this._onKeyDown = ke.bind(this), this._onTouchStart = Oe.bind(this), this._onTouchMove = Ze.bind(this), this._onMouseDown = Le.bind(this), this._onMouseMove = xe.bind(this), this._interceptControlDown = Ie.bind(this), this._interceptControlUp = Ue.bind(this), this.domElement !== null && this.connect(), this.update();
19
28
  }
20
29
  connect() {
21
30
  this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointercancel", this._onPointerUp), this.domElement.addEventListener("contextmenu", this._onContextMenu), this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: !1 }), this.domElement.getRootNode().addEventListener("keydown", this._interceptControlDown, { passive: !0, capture: !0 }), this.domElement.style.touchAction = "none";
@@ -51,7 +60,7 @@ class Ee extends Qt {
51
60
  const e = this.object.position;
52
61
  S.copy(e).sub(this.target), S.applyQuaternion(this._quat), this._spherical.setFromVector3(S), this.autoRotate && this.state === w.NONE && this._rotateLeft(this._getAutoRotationAngle(t)), this.enableDamping ? (this._spherical.theta += this._sphericalDelta.theta * this.dampingFactor, this._spherical.phi += this._sphericalDelta.phi * this.dampingFactor) : (this._spherical.theta += this._sphericalDelta.theta, this._spherical.phi += this._sphericalDelta.phi);
53
62
  let i = this.minAzimuthAngle, s = this.maxAzimuthAngle;
54
- isFinite(i) && isFinite(s) && (i < -Math.PI ? i += R : i > Math.PI && (i -= R), s < -Math.PI ? s += R : s > Math.PI && (s -= R), i <= s ? this._spherical.theta = Math.max(i, Math.min(s, this._spherical.theta)) : this._spherical.theta = this._spherical.theta > (i + s) / 2 ? Math.max(i, this._spherical.theta) : Math.min(s, this._spherical.theta)), this._spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this._spherical.phi)), this._spherical.makeSafe(), this.enableDamping === !0 ? this.target.addScaledVector(this._panOffset, this.dampingFactor) : this.target.add(this._panOffset), this.target.sub(this.cursor), this.target.clampLength(this.minTargetRadius, this.maxTargetRadius), this.target.add(this.cursor);
63
+ isFinite(i) && isFinite(s) && (i < -Math.PI ? i += L : i > Math.PI && (i -= L), s < -Math.PI ? s += L : s > Math.PI && (s -= L), i <= s ? this._spherical.theta = Math.max(i, Math.min(s, this._spherical.theta)) : this._spherical.theta = this._spherical.theta > (i + s) / 2 ? Math.max(i, this._spherical.theta) : Math.min(s, this._spherical.theta)), this._spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this._spherical.phi)), this._spherical.makeSafe(), this.enableDamping === !0 ? this.target.addScaledVector(this._panOffset, this.dampingFactor) : this.target.add(this._panOffset), this.target.sub(this.cursor), this.target.clampLength(this.minTargetRadius, this.maxTargetRadius), this.target.add(this.cursor);
55
64
  let o = !1;
56
65
  if (this.zoomToCursor && this._performCursorZoom || this.object.isOrthographicCamera)
57
66
  this._spherical.radius = this._clampDistance(this._spherical.radius);
@@ -71,8 +80,8 @@ class Ee extends Qt {
71
80
  n.unproject(this.object);
72
81
  const r = this.object.zoom;
73
82
  this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), this.object.updateProjectionMatrix(), o = r !== this.object.zoom;
74
- const h = new E(this._mouse.x, this._mouse.y, 0);
75
- h.unproject(this.object), this.object.position.sub(h).add(n), this.object.updateMatrixWorld(), a = S.length();
83
+ const l = new E(this._mouse.x, this._mouse.y, 0);
84
+ l.unproject(this.object), this.object.position.sub(l).add(n), this.object.updateMatrixWorld(), a = S.length();
76
85
  } else
77
86
  console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
78
87
  a !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(a).add(this.object.position) : (_.origin.copy(this.object.position), _.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(_.direction)) < Te ? this.object.lookAt(this.target) : (kt.setFromNormalAndCoplanarPoint(this.object.up, this.target), _.intersectPlane(kt, this.target))));
@@ -83,7 +92,7 @@ class Ee extends Qt {
83
92
  return this._scale = 1, this._performCursorZoom = !1, o || this._lastPosition.distanceToSquared(this.object.position) > nt || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > nt || this._lastTargetPosition.distanceToSquared(this.target) > nt ? (this.dispatchEvent(Dt), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), !0) : !1;
84
93
  }
85
94
  _getAutoRotationAngle(t) {
86
- return t !== null ? R / 60 * this.autoRotateSpeed * t : R / 60 / 60 * this.autoRotateSpeed;
95
+ return t !== null ? L / 60 * this.autoRotateSpeed * t : L / 60 / 60 * this.autoRotateSpeed;
87
96
  }
88
97
  _getZoomScale(t) {
89
98
  const e = Math.abs(t * 0.01);
@@ -142,7 +151,7 @@ class Ee extends Qt {
142
151
  _handleMouseMoveRotate(t) {
143
152
  this._rotateEnd.set(t.clientX, t.clientY), this._rotateDelta.subVectors(this._rotateEnd, this._rotateStart).multiplyScalar(this.rotateSpeed);
144
153
  const e = this.domElement;
145
- this._rotateLeft(R * this._rotateDelta.x / e.clientHeight), this._rotateUp(R * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd), this.update();
154
+ this._rotateLeft(L * this._rotateDelta.x / e.clientHeight), this._rotateUp(L * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd), this.update();
146
155
  }
147
156
  _handleMouseMoveDolly(t) {
148
157
  this._dollyEnd.set(t.clientX, t.clientY), this._dollyDelta.subVectors(this._dollyEnd, this._dollyStart), this._dollyDelta.y > 0 ? this._dollyOut(this._getZoomScale(this._dollyDelta.y)) : this._dollyDelta.y < 0 && this._dollyIn(this._getZoomScale(this._dollyDelta.y)), this._dollyStart.copy(this._dollyEnd), this.update();
@@ -157,16 +166,16 @@ class Ee extends Qt {
157
166
  let e = !1;
158
167
  switch (t.code) {
159
168
  case this.keys.UP:
160
- t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, this.keyPanSpeed), e = !0;
169
+ t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(L * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, this.keyPanSpeed), e = !0;
161
170
  break;
162
171
  case this.keys.BOTTOM:
163
- t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(-R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, -this.keyPanSpeed), e = !0;
172
+ t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(-L * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, -this.keyPanSpeed), e = !0;
164
173
  break;
165
174
  case this.keys.LEFT:
166
- t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(this.keyPanSpeed, 0), e = !0;
175
+ t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(L * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(this.keyPanSpeed, 0), e = !0;
167
176
  break;
168
177
  case this.keys.RIGHT:
169
- t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(-R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(-this.keyPanSpeed, 0), e = !0;
178
+ t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(-L * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(-this.keyPanSpeed, 0), e = !0;
170
179
  break;
171
180
  }
172
181
  e && (t.preventDefault(), this.update());
@@ -206,7 +215,7 @@ class Ee extends Qt {
206
215
  }
207
216
  this._rotateDelta.subVectors(this._rotateEnd, this._rotateStart).multiplyScalar(this.rotateSpeed);
208
217
  const e = this.domElement;
209
- this._rotateLeft(R * this._rotateDelta.x / e.clientHeight), this._rotateUp(R * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd);
218
+ this._rotateLeft(L * this._rotateDelta.x / e.clientHeight), this._rotateUp(L * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd);
210
219
  }
211
220
  _handleTouchMovePan(t) {
212
221
  if (this._pointers.length === 1)
@@ -272,16 +281,16 @@ class Ee extends Qt {
272
281
  return t.ctrlKey && !this._controlActive && (i.deltaY *= 10), i;
273
282
  }
274
283
  }
275
- function Me(l) {
276
- this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(l.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(l) && (this._addPointer(l), l.pointerType === "touch" ? this._onTouchStart(l) : this._onMouseDown(l)));
284
+ function Me(h) {
285
+ this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(h.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(h) && (this._addPointer(h), h.pointerType === "touch" ? this._onTouchStart(h) : this._onMouseDown(h)));
277
286
  }
278
- function Se(l) {
279
- this.enabled !== !1 && (l.pointerType === "touch" ? this._onTouchMove(l) : this._onMouseMove(l));
287
+ function Se(h) {
288
+ this.enabled !== !1 && (h.pointerType === "touch" ? this._onTouchMove(h) : this._onMouseMove(h));
280
289
  }
281
- function Le(l) {
282
- switch (this._removePointer(l), this._pointers.length) {
290
+ function Re(h) {
291
+ switch (this._removePointer(h), this._pointers.length) {
283
292
  case 0:
284
- this.domElement.releasePointerCapture(l.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(zt), this.state = w.NONE;
293
+ this.domElement.releasePointerCapture(h.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(zt), this.state = w.NONE;
285
294
  break;
286
295
  case 1:
287
296
  const t = this._pointers[0], e = this._pointerPositions[t];
@@ -289,9 +298,9 @@ function Le(l) {
289
298
  break;
290
299
  }
291
300
  }
292
- function Re(l) {
301
+ function Le(h) {
293
302
  let t;
294
- switch (l.button) {
303
+ switch (h.button) {
295
304
  case 0:
296
305
  t = this.mouseButtons.LEFT;
297
306
  break;
@@ -307,24 +316,24 @@ function Re(l) {
307
316
  switch (t) {
308
317
  case U.DOLLY:
309
318
  if (this.enableZoom === !1) return;
310
- this._handleMouseDownDolly(l), this.state = w.DOLLY;
319
+ this._handleMouseDownDolly(h), this.state = w.DOLLY;
311
320
  break;
312
321
  case U.ROTATE:
313
- if (l.ctrlKey || l.metaKey || l.shiftKey) {
322
+ if (h.ctrlKey || h.metaKey || h.shiftKey) {
314
323
  if (this.enablePan === !1) return;
315
- this._handleMouseDownPan(l), this.state = w.PAN;
324
+ this._handleMouseDownPan(h), this.state = w.PAN;
316
325
  } else {
317
326
  if (this.enableRotate === !1) return;
318
- this._handleMouseDownRotate(l), this.state = w.ROTATE;
327
+ this._handleMouseDownRotate(h), this.state = w.ROTATE;
319
328
  }
320
329
  break;
321
330
  case U.PAN:
322
- if (l.ctrlKey || l.metaKey || l.shiftKey) {
331
+ if (h.ctrlKey || h.metaKey || h.shiftKey) {
323
332
  if (this.enableRotate === !1) return;
324
- this._handleMouseDownRotate(l), this.state = w.ROTATE;
333
+ this._handleMouseDownRotate(h), this.state = w.ROTATE;
325
334
  } else {
326
335
  if (this.enablePan === !1) return;
327
- this._handleMouseDownPan(l), this.state = w.PAN;
336
+ this._handleMouseDownPan(h), this.state = w.PAN;
328
337
  }
329
338
  break;
330
339
  default:
@@ -332,39 +341,39 @@ function Re(l) {
332
341
  }
333
342
  this.state !== w.NONE && this.dispatchEvent(pt);
334
343
  }
335
- function xe(l) {
344
+ function xe(h) {
336
345
  switch (this.state) {
337
346
  case w.ROTATE:
338
347
  if (this.enableRotate === !1) return;
339
- this._handleMouseMoveRotate(l);
348
+ this._handleMouseMoveRotate(h);
340
349
  break;
341
350
  case w.DOLLY:
342
351
  if (this.enableZoom === !1) return;
343
- this._handleMouseMoveDolly(l);
352
+ this._handleMouseMoveDolly(h);
344
353
  break;
345
354
  case w.PAN:
346
355
  if (this.enablePan === !1) return;
347
- this._handleMouseMovePan(l);
356
+ this._handleMouseMovePan(h);
348
357
  break;
349
358
  }
350
359
  }
351
- function De(l) {
352
- this.enabled === !1 || this.enableZoom === !1 || this.state !== w.NONE || (l.preventDefault(), this.dispatchEvent(pt), this._handleMouseWheel(this._customWheelEvent(l)), this.dispatchEvent(zt));
360
+ function De(h) {
361
+ this.enabled === !1 || this.enableZoom === !1 || this.state !== w.NONE || (h.preventDefault(), this.dispatchEvent(pt), this._handleMouseWheel(this._customWheelEvent(h)), this.dispatchEvent(zt));
353
362
  }
354
- function ke(l) {
355
- this.enabled !== !1 && this._handleKeyDown(l);
363
+ function ke(h) {
364
+ this.enabled !== !1 && this._handleKeyDown(h);
356
365
  }
357
- function Oe(l) {
358
- switch (this._trackPointer(l), this._pointers.length) {
366
+ function Oe(h) {
367
+ switch (this._trackPointer(h), this._pointers.length) {
359
368
  case 1:
360
369
  switch (this.touches.ONE) {
361
370
  case N.ROTATE:
362
371
  if (this.enableRotate === !1) return;
363
- this._handleTouchStartRotate(l), this.state = w.TOUCH_ROTATE;
372
+ this._handleTouchStartRotate(h), this.state = w.TOUCH_ROTATE;
364
373
  break;
365
374
  case N.PAN:
366
375
  if (this.enablePan === !1) return;
367
- this._handleTouchStartPan(l), this.state = w.TOUCH_PAN;
376
+ this._handleTouchStartPan(h), this.state = w.TOUCH_PAN;
368
377
  break;
369
378
  default:
370
379
  this.state = w.NONE;
@@ -374,11 +383,11 @@ function Oe(l) {
374
383
  switch (this.touches.TWO) {
375
384
  case N.DOLLY_PAN:
376
385
  if (this.enableZoom === !1 && this.enablePan === !1) return;
377
- this._handleTouchStartDollyPan(l), this.state = w.TOUCH_DOLLY_PAN;
386
+ this._handleTouchStartDollyPan(h), this.state = w.TOUCH_DOLLY_PAN;
378
387
  break;
379
388
  case N.DOLLY_ROTATE:
380
389
  if (this.enableZoom === !1 && this.enableRotate === !1) return;
381
- this._handleTouchStartDollyRotate(l), this.state = w.TOUCH_DOLLY_ROTATE;
390
+ this._handleTouchStartDollyRotate(h), this.state = w.TOUCH_DOLLY_ROTATE;
382
391
  break;
383
392
  default:
384
393
  this.state = w.NONE;
@@ -389,36 +398,36 @@ function Oe(l) {
389
398
  }
390
399
  this.state !== w.NONE && this.dispatchEvent(pt);
391
400
  }
392
- function Ze(l) {
393
- switch (this._trackPointer(l), this.state) {
401
+ function Ze(h) {
402
+ switch (this._trackPointer(h), this.state) {
394
403
  case w.TOUCH_ROTATE:
395
404
  if (this.enableRotate === !1) return;
396
- this._handleTouchMoveRotate(l), this.update();
405
+ this._handleTouchMoveRotate(h), this.update();
397
406
  break;
398
407
  case w.TOUCH_PAN:
399
408
  if (this.enablePan === !1) return;
400
- this._handleTouchMovePan(l), this.update();
409
+ this._handleTouchMovePan(h), this.update();
401
410
  break;
402
411
  case w.TOUCH_DOLLY_PAN:
403
412
  if (this.enableZoom === !1 && this.enablePan === !1) return;
404
- this._handleTouchMoveDollyPan(l), this.update();
413
+ this._handleTouchMoveDollyPan(h), this.update();
405
414
  break;
406
415
  case w.TOUCH_DOLLY_ROTATE:
407
416
  if (this.enableZoom === !1 && this.enableRotate === !1) return;
408
- this._handleTouchMoveDollyRotate(l), this.update();
417
+ this._handleTouchMoveDollyRotate(h), this.update();
409
418
  break;
410
419
  default:
411
420
  this.state = w.NONE;
412
421
  }
413
422
  }
414
- function Ce(l) {
415
- this.enabled !== !1 && l.preventDefault();
423
+ function Ce(h) {
424
+ this.enabled !== !1 && h.preventDefault();
416
425
  }
417
- function Ie(l) {
418
- l.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
426
+ function Ie(h) {
427
+ h.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
419
428
  }
420
- function Ue(l) {
421
- l.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
429
+ function Ue(h) {
430
+ h.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
422
431
  }
423
432
  class je extends Nt {
424
433
  constructor(t) {
@@ -442,8 +451,8 @@ class je extends Nt {
442
451
  n.setPath(this.path), n.setRequestHeader(this.requestHeader), n.setWithCredentials(this.withCredentials), n.load(t, function(r) {
443
452
  try {
444
453
  e(o.parse(r, a));
445
- } catch (h) {
446
- s ? s(h) : console.error(h), o.manager.itemError(t);
454
+ } catch (l) {
455
+ s ? s(l) : console.error(l), o.manager.itemError(t);
447
456
  }
448
457
  }, i, s);
449
458
  }
@@ -468,13 +477,13 @@ class je extends Nt {
468
477
  let s = {};
469
478
  const o = /\s+/, a = {};
470
479
  for (let r = 0; r < i.length; r++) {
471
- let h = i[r];
472
- if (h = h.trim(), h.length === 0 || h.charAt(0) === "#")
480
+ let l = i[r];
481
+ if (l = l.trim(), l.length === 0 || l.charAt(0) === "#")
473
482
  continue;
474
- const c = h.indexOf(" ");
475
- let A = c >= 0 ? h.substring(0, c) : h;
483
+ const c = l.indexOf(" ");
484
+ let A = c >= 0 ? l.substring(0, c) : l;
476
485
  A = A.toLowerCase();
477
- let d = c >= 0 ? h.substring(c + 1) : "";
486
+ let d = c >= 0 ? l.substring(c + 1) : "";
478
487
  if (d = d.trim(), A === "newmtl")
479
488
  s = { name: d }, a[d] = s;
480
489
  else if (A === "ka" || A === "kd" || A === "ks" || A === "ke") {
@@ -508,15 +517,15 @@ class Ne {
508
517
  e[i] = o;
509
518
  for (const a in s) {
510
519
  let n = !0, r = s[a];
511
- const h = a.toLowerCase();
512
- switch (h) {
520
+ const l = a.toLowerCase();
521
+ switch (l) {
513
522
  case "kd":
514
523
  case "ka":
515
524
  case "ks":
516
525
  this.options && this.options.normalizeRGB && (r = [r[0] / 255, r[1] / 255, r[2] / 255]), this.options && this.options.ignoreZeroRGBs && r[0] === 0 && r[1] === 0 && r[2] === 0 && (n = !1);
517
526
  break;
518
527
  }
519
- n && (o[h] = r);
528
+ n && (o[l] = r);
520
529
  }
521
530
  }
522
531
  return e;
@@ -547,12 +556,12 @@ class Ne {
547
556
  }
548
557
  function a(n, r) {
549
558
  if (s[n]) return;
550
- const h = e.getTextureParams(r, s), c = e.loadTexture(o(e.baseUrl, h.url));
551
- c.repeat.copy(h.scale), c.offset.copy(h.offset), c.wrapS = e.wrap, c.wrapT = e.wrap, (n === "map" || n === "emissiveMap") && (c.colorSpace = F), s[n] = c;
559
+ const l = e.getTextureParams(r, s), c = e.loadTexture(o(e.baseUrl, l.url));
560
+ c.repeat.copy(l.scale), c.offset.copy(l.offset), c.wrapS = e.wrap, c.wrapT = e.wrap, (n === "map" || n === "emissiveMap") && (c.colorSpace = F), s[n] = c;
552
561
  }
553
562
  for (const n in i) {
554
563
  const r = i[n];
555
- let h;
564
+ let l;
556
565
  if (r !== "")
557
566
  switch (n.toLowerCase()) {
558
567
  // Ns is material specular exponent
@@ -591,10 +600,10 @@ class Ne {
591
600
  s.shininess = parseFloat(r);
592
601
  break;
593
602
  case "d":
594
- h = parseFloat(r), h < 1 && (s.opacity = h, s.transparent = !0);
603
+ l = parseFloat(r), l < 1 && (s.opacity = l, s.transparent = !0);
595
604
  break;
596
605
  case "tr":
597
- h = parseFloat(r), this.options && this.options.invertTrProperty && (h = 1 - h), h > 0 && (s.opacity = 1 - h, s.transparent = !0);
606
+ l = parseFloat(r), this.options && this.options.invertTrProperty && (l = 1 - l), l > 0 && (s.opacity = 1 - l, s.transparent = !0);
598
607
  break;
599
608
  }
600
609
  }
@@ -618,7 +627,7 @@ class Ne {
618
627
  }
619
628
  const Ve = /^[og]\s*(.+)?/, Be = /^mtllib /, We = /^usemtl /, He = /^usemap /, Ot = /\s+/, Zt = new E(), rt = new E(), Ct = new E(), It = new E(), O = new E(), $ = new B();
620
629
  function Fe() {
621
- const l = {
630
+ const h = {
622
631
  objects: [],
623
632
  object: {},
624
633
  vertices: [],
@@ -658,7 +667,7 @@ function Fe() {
658
667
  groupCount: -1,
659
668
  inherited: !1,
660
669
  clone: function(r) {
661
- const h = {
670
+ const l = {
662
671
  index: typeof r == "number" ? r : this.index,
663
672
  name: this.name,
664
673
  mtllib: this.mtllib,
@@ -668,7 +677,7 @@ function Fe() {
668
677
  groupCount: -1,
669
678
  inherited: !1
670
679
  };
671
- return h.clone = this.clone.bind(h), h;
680
+ return l.clone = this.clone.bind(l), l;
672
681
  }
673
682
  };
674
683
  return this.materials.push(n), n;
@@ -744,12 +753,12 @@ function Fe() {
744
753
  const e = this.uvs;
745
754
  this.object.geometry.uvs.push(e[t + 0], e[t + 1]);
746
755
  },
747
- addFace: function(t, e, i, s, o, a, n, r, h) {
756
+ addFace: function(t, e, i, s, o, a, n, r, l) {
748
757
  const c = this.vertices.length;
749
758
  let A = this.parseVertexIndex(t, c), d = this.parseVertexIndex(e, c), p = this.parseVertexIndex(i, c);
750
759
  if (this.addVertex(A, d, p), this.addColor(A, d, p), n !== void 0 && n !== "") {
751
760
  const f = this.normals.length;
752
- A = this.parseNormalIndex(n, f), d = this.parseNormalIndex(r, f), p = this.parseNormalIndex(h, f), this.addNormal(A, d, p);
761
+ A = this.parseNormalIndex(n, f), d = this.parseNormalIndex(r, f), p = this.parseNormalIndex(l, f), this.addNormal(A, d, p);
753
762
  } else
754
763
  this.addFaceNormal(A, d, p);
755
764
  if (s !== void 0 && s !== "") {
@@ -775,7 +784,7 @@ function Fe() {
775
784
  this.addUVLine(this.parseUVIndex(e[o], s));
776
785
  }
777
786
  };
778
- return l.startObject("", !1), l;
787
+ return h.startObject("", !1), h;
779
788
  }
780
789
  class qe extends Nt {
781
790
  constructor(t) {
@@ -804,12 +813,12 @@ class qe extends Nt {
804
813
  `);
805
814
  let s = [];
806
815
  for (let n = 0, r = i.length; n < r; n++) {
807
- const h = i[n].trimStart();
808
- if (h.length === 0) continue;
809
- const c = h.charAt(0);
816
+ const l = i[n].trimStart();
817
+ if (l.length === 0) continue;
818
+ const c = l.charAt(0);
810
819
  if (c !== "#")
811
820
  if (c === "v") {
812
- const A = h.split(Ot);
821
+ const A = l.split(Ot);
813
822
  switch (A[0]) {
814
823
  case "v":
815
824
  e.vertices.push(
@@ -838,7 +847,7 @@ class qe extends Nt {
838
847
  break;
839
848
  }
840
849
  } else if (c === "f") {
841
- const d = h.slice(1).trim().split(Ot), p = [];
850
+ const d = l.slice(1).trim().split(Ot), p = [];
842
851
  for (let u = 0, m = d.length; u < m; u++) {
843
852
  const g = d[u];
844
853
  if (g.length > 0) {
@@ -862,10 +871,10 @@ class qe extends Nt {
862
871
  );
863
872
  }
864
873
  } else if (c === "l") {
865
- const A = h.substring(1).trim().split(" ");
874
+ const A = l.substring(1).trim().split(" ");
866
875
  let d = [];
867
876
  const p = [];
868
- if (h.indexOf("/") === -1)
877
+ if (l.indexOf("/") === -1)
869
878
  d = A;
870
879
  else
871
880
  for (let f = 0, u = A.length; f < u; f++) {
@@ -874,19 +883,19 @@ class qe extends Nt {
874
883
  }
875
884
  e.addLineGeometry(d, p);
876
885
  } else if (c === "p") {
877
- const d = h.slice(1).trim().split(" ");
886
+ const d = l.slice(1).trim().split(" ");
878
887
  e.addPointGeometry(d);
879
- } else if ((s = Ve.exec(h)) !== null) {
888
+ } else if ((s = Ve.exec(l)) !== null) {
880
889
  const A = (" " + s[0].slice(1).trim()).slice(1);
881
890
  e.startObject(A);
882
- } else if (We.test(h))
883
- e.object.startMaterial(h.substring(7).trim(), e.materialLibraries);
884
- else if (Be.test(h))
885
- e.materialLibraries.push(h.substring(7).trim());
886
- else if (He.test(h))
891
+ } else if (We.test(l))
892
+ e.object.startMaterial(l.substring(7).trim(), e.materialLibraries);
893
+ else if (Be.test(l))
894
+ e.materialLibraries.push(l.substring(7).trim());
895
+ else if (He.test(l))
887
896
  console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');
888
897
  else if (c === "s") {
889
- if (s = h.split(" "), s.length > 1) {
898
+ if (s = l.split(" "), s.length > 1) {
890
899
  const d = s[1].trim().toLowerCase();
891
900
  e.object.smooth = d !== "0" && d !== "off";
892
901
  } else
@@ -894,15 +903,15 @@ class qe extends Nt {
894
903
  const A = e.object.currentMaterial();
895
904
  A && (A.smooth = e.object.smooth);
896
905
  } else {
897
- if (h === "\0") continue;
898
- console.warn('THREE.OBJLoader: Unexpected line: "' + h + '"');
906
+ if (l === "\0") continue;
907
+ console.warn('THREE.OBJLoader: Unexpected line: "' + l + '"');
899
908
  }
900
909
  }
901
910
  e.finalize();
902
911
  const o = new Wt();
903
912
  if (o.materialLibraries = [].concat(e.materialLibraries), !(e.objects.length === 1 && e.objects[0].geometry.vertices.length === 0) === !0)
904
913
  for (let n = 0, r = e.objects.length; n < r; n++) {
905
- const h = e.objects[n], c = h.geometry, A = h.materials, d = c.type === "Line", p = c.type === "Points";
914
+ const l = e.objects[n], c = l.geometry, A = l.materials, d = c.type === "Line", p = c.type === "Points";
906
915
  let f = !1;
907
916
  if (c.vertices.length === 0) continue;
908
917
  const u = new wt();
@@ -913,11 +922,11 @@ class qe extends Nt {
913
922
  let y = e.materials[M];
914
923
  if (this.materials !== null) {
915
924
  if (y = this.materials.create(T.name), d && y && !(y instanceof st)) {
916
- const L = new st();
917
- Pt.prototype.copy.call(L, y), L.color.copy(y.color), y = L;
925
+ const R = new st();
926
+ Pt.prototype.copy.call(R, y), R.color.copy(y.color), y = R;
918
927
  } else if (p && y && !(y instanceof J)) {
919
- const L = new J({ size: 10, sizeAttenuation: !1 });
920
- Pt.prototype.copy.call(L, y), L.color.copy(y.color), L.map = y.map, y = L;
928
+ const R = new J({ size: 10, sizeAttenuation: !1 });
929
+ Pt.prototype.copy.call(R, y), R.color.copy(y.color), R.map = y.map, y = R;
921
930
  }
922
931
  }
923
932
  y === void 0 && (d ? y = new st() : p ? y = new J({ size: 1, sizeAttenuation: !1 }) : y = new W(), y.name = T.name, y.flatShading = !T.smooth, y.vertexColors = f, e.materials[M] = y), m.push(y);
@@ -931,13 +940,13 @@ class qe extends Nt {
931
940
  d ? g = new Tt(u, m) : p ? g = new it(u, m) : g = new X(u, m);
932
941
  } else
933
942
  d ? g = new Tt(u, m[0]) : p ? g = new it(u, m[0]) : g = new X(u, m[0]);
934
- g.name = h.name, o.add(g);
943
+ g.name = l.name, o.add(g);
935
944
  }
936
945
  else if (e.vertices.length > 0) {
937
946
  const n = new J({ size: 1, sizeAttenuation: !1 }), r = new wt();
938
947
  r.setAttribute("position", new H(e.vertices, 3)), e.colors.length > 0 && e.colors[0] !== void 0 && (r.setAttribute("color", new H(e.colors, 3)), n.vertexColors = !0);
939
- const h = new it(r, n);
940
- o.add(h);
948
+ const l = new it(r, n);
949
+ o.add(l);
941
950
  }
942
951
  return o;
943
952
  }
@@ -998,11 +1007,11 @@ class ze {
998
1007
  var r = this.canvas.getContext("2d");
999
1008
  this.context = r;
1000
1009
  for (e of this.textureOffsets.keys()) {
1001
- for (var a = t.get(e), h = this.textureOffsets.get(e).x, c = this.textureOffsets.get(e).y, A = a.image.width, d = a.image.height, p = c; p < c + d; p += d)
1002
- for (var f = h; f < h + A; f += A)
1010
+ for (var a = t.get(e), l = this.textureOffsets.get(e).x, c = this.textureOffsets.get(e).y, A = a.image.width, d = a.image.height, p = c; p < c + d; p += d)
1011
+ for (var f = l; f < l + A; f += A)
1003
1012
  r.drawImage(a.image, f, p, A, d);
1004
1013
  var u = new Ke();
1005
- u.startU = h / n.width, u.endU = (h + A) / n.width, u.startV = 1 - c / n.height, u.endV = 1 - (c + d) / n.height, this.ranges.set(e, u);
1014
+ u.startU = l / n.width, u.endU = (l + A) / n.width, u.startV = 1 - c / n.height, u.endV = 1 - (c + d) / n.height, this.ranges.set(e, u);
1006
1015
  }
1007
1016
  this.makeCanvasPowerOfTwo(), this.mergedTexture = new ae(this.canvas), this.mergedTexture.wrapS = Et, this.mergedTexture.wrapT = Et, this.mergedTexture.minFilter = Mt, this.mergedTexture.magFilter = Mt, this.mergedTexture.needsUpdate = !0;
1008
1017
  }
@@ -1029,7 +1038,7 @@ class ze {
1029
1038
  }
1030
1039
  var n = s.image.width, r = s.image.height;
1031
1040
  if (t.upperNode) {
1032
- for (var h = this.maxWidth * this.textureCount + this.maxHeight * this.textureCount, c, A = !1, d = 0; d < this.allNodes.length; d++) {
1041
+ for (var l = this.maxWidth * this.textureCount + this.maxHeight * this.textureCount, c, A = !1, d = 0; d < this.allNodes.length; d++) {
1033
1042
  var p = this.allNodes[d];
1034
1043
  if (!p.textureName && p.rectangle.fits(s)) {
1035
1044
  this.textureOffsets.set(e, {
@@ -1037,17 +1046,17 @@ class ze {
1037
1046
  y: p.rectangle.y
1038
1047
  });
1039
1048
  var f = this.calculateImageSize(i), u = f.width + f.height;
1040
- if (u < h && f.width <= this.MAX_TEXTURE_SIZE && f.height <= this.MAX_TEXTURE_SIZE) {
1049
+ if (u < l && f.width <= this.MAX_TEXTURE_SIZE && f.height <= this.MAX_TEXTURE_SIZE) {
1041
1050
  var m = !1;
1042
1051
  for (var g of this.textureOffsets.keys())
1043
1052
  if (g != e) {
1044
1053
  var v = p.rectangle, {
1045
1054
  x: k,
1046
1055
  y: T
1047
- } = this.textureOffsets.get(g), M = i.get(g).image, y = new V(v.x, v.y, n, r), L = new V(k, T, M.width, M.height);
1048
- y.overlaps(L) && (m = !0);
1056
+ } = this.textureOffsets.get(g), M = i.get(g).image, y = new V(v.x, v.y, n, r), R = new V(k, T, M.width, M.height);
1057
+ y.overlaps(R) && (m = !0);
1049
1058
  }
1050
- m || (h = u, c = this.allNodes[d], A = !0);
1059
+ m || (l = u, c = this.allNodes[d], A = !0);
1051
1060
  }
1052
1061
  this.textureOffsets.delete(e);
1053
1062
  }
@@ -1091,9 +1100,9 @@ class ze {
1091
1100
  for (var s of this.textureOffsets.keys()) {
1092
1101
  var o = t.get(s), a = o.image.width, n = o.image.height, {
1093
1102
  x: r,
1094
- y: h
1103
+ y: l
1095
1104
  } = this.textureOffsets.get(s);
1096
- r + a > e && (e = r + a), h + n > i && (i = h + n);
1105
+ r + a > e && (e = r + a), l + n > i && (i = l + n);
1097
1106
  }
1098
1107
  return {
1099
1108
  width: e,
@@ -1115,11 +1124,11 @@ class ze {
1115
1124
  return s.drawImage(t, 0, 0, t.width, t.height, 0, 0, i.width, i.height), i;
1116
1125
  }
1117
1126
  }
1118
- function Ge(l, t) {
1119
- const e = l.geometry.attributes.uv.array;
1127
+ function Ge(h, t) {
1128
+ const e = h.geometry.attributes.uv.array;
1120
1129
  for (let i = 0; i < e.length; i += 2)
1121
1130
  e[i] = e[i] * (t.endU - t.startU) + t.startU, e[i + 1] = e[i + 1] * (t.startV - t.endV) + t.endV;
1122
- l.geometry.attributes.uv.needsUpdate = !0;
1131
+ h.geometry.attributes.uv.needsUpdate = !0;
1123
1132
  }
1124
1133
  new W({
1125
1134
  color: 16711680,
@@ -1151,7 +1160,7 @@ class Ye extends Wt {
1151
1160
  const t = new ne();
1152
1161
  if (t.text = be(this.efpBooth), !t.text) return;
1153
1162
  t.color = this.efpBooth.labelColor || Ht.boothLabelColor, t.anchorX = "center", t.anchorY = "middle", t.textAlign = "center";
1154
- const e = t.text.split(" "), i = Math.max(...e.map((h) => h.length)), {
1163
+ const e = t.text.split(" "), i = Math.max(...e.map((l) => l.length)), {
1155
1164
  rect: s
1156
1165
  } = this.threeBooth;
1157
1166
  let o = Math.max(s.width, s.height), a = Math.min(s.width, s.height);
@@ -1170,10 +1179,10 @@ class Ye extends Wt {
1170
1179
  n = A, a = d, r = -90;
1171
1180
  } else
1172
1181
  r = -this.efpBooth.rotate * 180 / Math.PI;
1173
- const h = t.ranges.get(this.efpBooth.slug + "_logo");
1174
- if (!h) return null;
1182
+ const l = t.ranges.get(this.efpBooth.slug + "_logo");
1183
+ if (!l) return null;
1175
1184
  var c = new X(new Ft(a, n), i);
1176
- return c.layers.set(this.threeLayer), Ge(c, h), c.rotateZ((r || 0) * Math.PI / 180), c.position.x = s.center.x, c.position.y = s.center.y, c.position.z = this.z + 0.01 * this.z, c.scale.y = -1, c.material.map = t.mergedTexture, c.name = this.efpBooth.name, c;
1185
+ return c.layers.set(this.threeLayer), Ge(c, l), c.rotateZ((r || 0) * Math.PI / 180), c.position.x = s.center.x, c.position.y = s.center.y, c.position.z = this.z + 0.01 * this.z, c.scale.y = -1, c.material.map = t.mergedTexture, c.name = this.efpBooth.name, c;
1177
1186
  }
1178
1187
  dimmed(t) {
1179
1188
  this.boothMesh.material = t ? Ut : this.material, this.boothMesh.userData.dimmed = t;
@@ -1186,33 +1195,33 @@ class Ye extends Wt {
1186
1195
  // this.boothMesh.userData.selected = value;
1187
1196
  // }
1188
1197
  }
1189
- async function Qe(l) {
1198
+ async function Qe(h) {
1190
1199
  return new Promise(async (t, e) => {
1191
- const i = `https://${l}.expofp.com/data/threejs`;
1200
+ const i = `https://${h}.expofp.com/data/threejs`;
1192
1201
  let o = await (await fetch(dt(`${i}/model.json`))).json();
1193
1202
  t(o);
1194
1203
  });
1195
1204
  }
1196
- async function Je(l, t) {
1205
+ async function Je(h, t) {
1197
1206
  return new Promise(async (e, i) => {
1198
1207
  var s = await _e(t);
1199
1208
  s.getAsArray().forEach((a) => {
1200
1209
  a.name.indexOf(".webp") > -1 && (a.alphaTest = 0.6, a.transparent = !0), a.name === "0xB1C6CE" && (a.alphaTest = 0.1, a.transparent = !0, a.opacity = 0.3, a.side = 2, a.depthWrite = !1, a.depthTest = !1);
1201
1210
  });
1202
1211
  const o = new qe();
1203
- o.setMaterials(s), o.load(l, async (a) => {
1212
+ o.setMaterials(s), o.load(h, async (a) => {
1204
1213
  a.children.forEach((n) => {
1205
1214
  n.name === "building" ? n.renderOrder = 0.1 : n.renderOrder = 1;
1206
1215
  }), e(a);
1207
1216
  }, void 0, (a) => i(a));
1208
1217
  });
1209
1218
  }
1210
- async function _e(l) {
1219
+ async function _e(h) {
1211
1220
  return new Promise((t, e) => {
1212
1221
  const i = new je();
1213
1222
  i.setMaterialOptions({
1214
1223
  side: 2
1215
- }), i.load(l, (s) => {
1224
+ }), i.load(h, (s) => {
1216
1225
  t(s);
1217
1226
  }, void 0, (s) => {
1218
1227
  e(s);
@@ -1230,23 +1239,23 @@ class $e extends he {
1230
1239
  return this.objLayers.get(t);
1231
1240
  }
1232
1241
  }
1233
- async function Gt(l, t, e, i, s, o) {
1242
+ async function Gt(h, t, e, i, s, o) {
1234
1243
  const a = new le(), n = new $e();
1235
1244
  n.raycaster = a, n.camera = i, i.near = 0.1, i.far = 1e4, i.aspect = e.clientWidth / e.clientHeight, i.updateProjectionMatrix();
1236
1245
  const r = new ce(16777215, 10, Math.PI);
1237
1246
  r.castShadow = !0, r.position.set(0, 0, 100), n.add(r);
1238
- const h = new Ae({
1239
- canvas: l || void 0,
1247
+ const l = new Ae({
1248
+ canvas: h || void 0,
1240
1249
  context: t || void 0,
1241
1250
  antialias: !0,
1242
1251
  precision: "highp",
1243
1252
  premultipliedAlpha: !0
1244
1253
  });
1245
- h.outputColorSpace = F, !l && !t && (h.setSize(e.clientWidth, e.clientHeight), e.appendChild(h.domElement)), h.autoClear = !1, e.addEventListener("resize", () => {
1246
- i.aspect = e.clientWidth / e.clientHeight, i.updateProjectionMatrix(), h.setSize(e.clientWidth, e.clientHeight), c();
1254
+ l.outputColorSpace = F, !h && !t && (l.setSize(e.clientWidth, e.clientHeight), e.appendChild(l.domElement)), l.autoClear = !1, e.addEventListener("resize", () => {
1255
+ i.aspect = e.clientWidth / e.clientHeight, i.updateProjectionMatrix(), l.setSize(e.clientWidth, e.clientHeight), c();
1247
1256
  }, !1);
1248
1257
  function c() {
1249
- h.resetState(), o(), !l && !t && h.render(n, i);
1258
+ l.resetState(), o(), !h && !t && l.render(n, i);
1250
1259
  }
1251
1260
  function A() {
1252
1261
  requestAnimationFrame(A), c();
@@ -1267,21 +1276,21 @@ async function Gt(l, t, e, i, s, o) {
1267
1276
  }
1268
1277
  return n.scale.x = -1, {
1269
1278
  scene: n,
1270
- renderer: h
1279
+ renderer: l
1271
1280
  };
1272
1281
  }
1273
- function ts(l, t) {
1282
+ function ts(h, t) {
1274
1283
  return new Promise(async (e, i) => {
1275
- const s = new qt(50, l.clientWidth / l.clientHeight, 0.1, 1e3);
1284
+ const s = new qt(50, h.clientWidth / h.clientHeight, 0.1, 1e3);
1276
1285
  var {
1277
1286
  x: o,
1278
1287
  y: a
1279
1288
  } = t.viewbox.center;
1280
1289
  s.position.x = o + t.area.width * 0.2, s.position.y = a + t.area.height, s.position.z = t.objLayers[t.objLayers.length - 1].z * Math.max(t.area.height, t.area.width) * 0.15 || Math.min(t.area.height, t.area.width), s.up.set(0, 0, 1);
1281
1290
  let n;
1282
- const r = await Gt(null, null, l, s, (h, c, A) => {
1291
+ const r = await Gt(null, null, h, s, (l, c, A) => {
1283
1292
  const d = new x();
1284
- d.x = h / l.clientWidth * 2 - 1, d.y = -(c / l.clientHeight) * 2 + 1, A.setFromCamera(d, s);
1293
+ d.x = l / h.clientWidth * 2 - 1, d.y = -(c / h.clientHeight) * 2 + 1, A.setFromCamera(d, s);
1285
1294
  }, () => {
1286
1295
  n == null || n.update();
1287
1296
  });
@@ -1294,20 +1303,20 @@ function ts(l, t) {
1294
1303
  }
1295
1304
  function es() {
1296
1305
  if (q.Map.prototype._setupPainter.toString().indexOf("webgl2") > -1) {
1297
- const l = q.Map.prototype._setupPainter;
1306
+ const h = q.Map.prototype._setupPainter;
1298
1307
  q.Map.prototype._setupPainter = function() {
1299
1308
  const t = this._canvas.getContext;
1300
1309
  this._canvas.getContext = function(e, i) {
1301
1310
  return t.apply(this, ["webgl2", i]) || t.apply(this, ["webgl", i]) || t.apply(this, ["experimental-webgl", i]);
1302
- }, l.apply(this), this._canvas.getContext = t;
1311
+ }, h.apply(this), this._canvas.getContext = t;
1303
1312
  };
1304
1313
  }
1305
1314
  }
1306
- function ss(l, t) {
1315
+ function ss(h, t) {
1307
1316
  return new Promise((e, i) => {
1308
1317
  es(), q.accessToken = "pk.eyJ1Ijoicm9kaW9ubmlrb2xhZXYiLCJhIjoiY2wwanE5aXB4MDM2NTNibGExd3k4bHhsaiJ9.wdpy8dJ1qktQXGtZYDNH3w";
1309
1318
  const s = new q.Map({
1310
- container: l,
1319
+ container: h,
1311
1320
  //style: `mapbox://styles/mapbox/${"light-v11"}`,
1312
1321
  style: "mapbox://styles/mapbox/" + t.replace("v10", "v11"),
1313
1322
  antialias: !0,
@@ -1318,14 +1327,14 @@ function ss(l, t) {
1318
1327
  s.on("load", () => e(s));
1319
1328
  });
1320
1329
  }
1321
- async function is(l, t) {
1330
+ async function is(h, t) {
1322
1331
  return new Promise(async (e, i) => {
1323
1332
  var {
1324
1333
  geoConfig: s
1325
1334
  } = t;
1326
- const o = await ss(l, s.style);
1335
+ const o = await ss(h, s.style);
1327
1336
  ye(o);
1328
- let a, n, r, h;
1337
+ let a, n, r, l;
1329
1338
  o.setBearing(s.bearing - 30), o.setCenter(s.center), o.setZoom(16);
1330
1339
  const c = 1, A = [0, 0, (180 - s.bearing) * Math.PI / 180], d = q.MercatorCoordinate.fromLngLat(s.center, c), p = {
1331
1340
  translateX: d.x,
@@ -1341,12 +1350,12 @@ async function is(l, t) {
1341
1350
  renderingMode: "3d",
1342
1351
  onAdd: async function(u, m) {
1343
1352
  a = new qt();
1344
- var g = await Gt(u.getCanvas(), m, l, a, (v, k, T) => {
1353
+ var g = await Gt(u.getCanvas(), m, h, a, (v, k, T) => {
1345
1354
  const M = u.getFreeCameraOptions();
1346
1355
  let y = new ot(M.position.x, M.position.y, M.position.z, 1);
1347
- const L = new ot(-1e3, -1e3, 1, 1);
1348
- L.x = v / l.clientWidth * 2 - 1, L.y = -(k / l.clientHeight) * 2 + 1, y.applyMatrix4(h.invert());
1349
- let D = L.clone().applyMatrix4(a.projectionMatrix.clone().invert());
1356
+ const R = new ot(-1e3, -1e3, 1, 1);
1357
+ R.x = v / h.clientWidth * 2 - 1, R.y = -(k / h.clientHeight) * 2 + 1, y.applyMatrix4(l.invert());
1358
+ let D = R.clone().applyMatrix4(a.projectionMatrix.clone().invert());
1350
1359
  return D.divideScalar(D.w), T.set(y, D.sub(y).normalize()), T;
1351
1360
  }, () => {
1352
1361
  });
@@ -1355,9 +1364,9 @@ async function is(l, t) {
1355
1364
  render: function(u, m) {
1356
1365
  if (!r) return;
1357
1366
  const g = new z().makeRotationAxis(new E(1, 0, 0), p.rotateX), v = new z().makeRotationAxis(new E(0, 1, 0), p.rotateY), k = new z().makeRotationAxis(new E(0, 0, 1), p.rotateZ), T = new z().fromArray(m);
1358
- h = new z().makeTranslation(p.translateX, p.translateY, p.translateZ).scale(new E(p.scale, -p.scale, p.scale)).multiply(g).multiply(v).multiply(k), a.projectionMatrix = T.multiply(h);
1367
+ l = new z().makeTranslation(p.translateX, p.translateY, p.translateZ).scale(new E(p.scale, -p.scale, p.scale)).multiply(g).multiply(v).multiply(k), a.projectionMatrix = T.multiply(l);
1359
1368
  const M = o.getFreeCameraOptions();
1360
- let y = new ot(M.position.x, M.position.y, M.position.z, 1).applyMatrix4(h.clone().invert());
1369
+ let y = new ot(M.position.x, M.position.y, M.position.z, 1).applyMatrix4(l.clone().invert());
1361
1370
  a.userData.position = y, r.render(n, a), o.triggerRepaint();
1362
1371
  }
1363
1372
  };
@@ -1378,7 +1387,7 @@ class tt extends X {
1378
1387
  s.map = a;
1379
1388
  var n = e / a.image.height;
1380
1389
  i.scale(a.image.width * n, a.image.height * n, 1), i.translate(0, a.image.height * n / 2, 0), i.rotateX(Math.PI / 2), s.needsUpdate = !0;
1381
- }), super(i, s), this.onBeforeRender = (a, n, r, h, c, A) => {
1390
+ }), super(i, s), this.onBeforeRender = (a, n, r, l, c, A) => {
1382
1391
  let d = r.position.x && r.position.y && r.position.z ? r.position : r.userData.position;
1383
1392
  const p = ct.round((ct.lineAngle({
1384
1393
  x: 0,
@@ -1388,9 +1397,9 @@ class tt extends X {
1388
1397
  };
1389
1398
  }
1390
1399
  }
1391
- function os(l) {
1400
+ function os(h) {
1392
1401
  const t = document.createElement("canvas"), e = t.getContext("2d");
1393
- return e.font = "30px Arial", e.fillText(l, 0, 0), t;
1402
+ return e.font = "30px Arial", e.fillText(h, 0, 0), t;
1394
1403
  }
1395
1404
  const as = "data:image/png;base64,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", ns = "data:image/png;base64,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", jt = "data:image/png;base64,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", I = [], ht = new W({
1396
1405
  color: 3190763
@@ -1398,7 +1407,7 @@ const as = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAHCCAMAAABi7QS1AA
1398
1407
  color: 16711680
1399
1408
  });
1400
1409
  let j = 0;
1401
- const lt = [], hs = (l) => Ht.EXPO == "glf24" ? 0.1 : 1 * (l.area.width + l.area.height) / 1200;
1410
+ const lt = [], hs = (h) => Ht.EXPO == "glf24" ? 0.1 : 1 * (h.area.width + h.area.height) / 1200;
1402
1411
  class ls {
1403
1412
  constructor(t, e, i) {
1404
1413
  this.expo = void 0, this.isMapbox = void 0, this.scene = void 0, this.data = void 0, this.container = void 0, this.isInit = !1, this.expo = t, this.isMapbox = e, this.container = i, setInterval(() => {
@@ -1429,9 +1438,9 @@ class ls {
1429
1438
  }
1430
1439
  setMarker(t, e, i, s, o = !1, a = 1) {
1431
1440
  const n = `{sprite_${t}}`;
1432
- let r = this.scene.children.find((h) => h.name === n);
1441
+ let r = this.scene.children.find((l) => l.name === n);
1433
1442
  if (e != null && i != null) {
1434
- const h = o ? {
1443
+ const l = o ? {
1435
1444
  x: e,
1436
1445
  y: i
1437
1446
  } : this.convertPoint(e, i, 0);
@@ -1439,7 +1448,7 @@ class ls {
1439
1448
  var d;
1440
1449
  return A.name === ((d = P.layerStore.findLayer(s)) == null ? void 0 : d.name);
1441
1450
  }) || this.data.objLayers[0];
1442
- r || (t === "from" ? r = new tt(as, c.height * a * 2) : t === "to" ? r = new tt(ns, c.height * a * 2) : t === "yah" ? r = new tt(jt, c.height * a * 2) : t === "cp" && (r = new tt(jt, c.height * a)), r.name = n, this.scene.add(r)), r.position.set(h.x, h.y, c.z + (t === "from" || t === "to" ? c.height : 0));
1451
+ r || (t === "from" ? r = new tt(as, c.height * a * 2) : t === "to" ? r = new tt(ns, c.height * a * 2) : t === "yah" ? r = new tt(jt, c.height * a * 2) : t === "cp" && (r = new tt(jt, c.height * a)), r.name = n, this.scene.add(r)), r.position.set(l.x, l.y, c.z + (t === "from" || t === "to" ? c.height : 0));
1443
1452
  } else r && this.scene.remove(r);
1444
1453
  }
1445
1454
  interpolateColors(t, e, i) {
@@ -1450,8 +1459,8 @@ class ls {
1450
1459
  updateRouteLines(t) {
1451
1460
  if (!this.isInit) return;
1452
1461
  var e = t.routeLines.filter((a) => {
1453
- var r, h;
1454
- let n = (h = (r = P.layerStore.layers.find((c) => c.name === a.p0.layer)) == null ? void 0 : r.visible) != null ? h : !0;
1462
+ var r, l;
1463
+ let n = (l = (r = P.layerStore.layers.find((c) => c.name === a.p0.layer)) == null ? void 0 : r.visible) != null ? l : !0;
1455
1464
  return !a.virtual && n;
1456
1465
  });
1457
1466
  if (I.forEach((a) => this.scene.remove(a)), I.splice(0, I.length), !e.length) {
@@ -1462,8 +1471,8 @@ class ls {
1462
1471
  z: s
1463
1472
  } = this.data.objLayers.find((a) => a.name === (de.mode === pe.Default ? "Default" : e[0].p0.layer)), o = hs(this.data);
1464
1473
  [].concat(i).reverse().forEach((a, n) => {
1465
- const r = new ue(o), h = new X(r, ht);
1466
- h.position.set(a.x, a.y, s + 0.02), I.push(h), this.scene.add(h);
1474
+ const r = new ue(o), l = new X(r, ht);
1475
+ l.position.set(a.x, a.y, s + 0.02), I.push(l), this.scene.add(l);
1467
1476
  }), this.setMarker("to", e[0].p0.x, e[0].p0.y, e[0].p0.layer), this.setMarker("from", e[e.length - 1].p1.x, e[e.length - 1].p1.y, e[e.length - 1].p1.layer);
1468
1477
  }
1469
1478
  onBeforeRender(t, e, i, s, o, a) {
@@ -1484,8 +1493,8 @@ class ls {
1484
1493
  var o = new ze(s), a = new Kt();
1485
1494
  a.side = K, a.transparent = !0, e.children.forEach((n, r) => {
1486
1495
  var f;
1487
- var [h, c] = n.name.split(/ (.*)/s);
1488
- const A = t.addLayer(h);
1496
+ var [l, c] = n.name.split(/ (.*)/s);
1497
+ const A = t.addLayer(l);
1489
1498
  n.layers.set(A), n.name = c;
1490
1499
  const d = P.boothStore.booths.find((u) => c && c[0] === "b" && u.name === (c == null ? void 0 : c.substring(1)));
1491
1500
  if (d) {
@@ -1520,20 +1529,20 @@ class ls {
1520
1529
  var s, o;
1521
1530
  let e = [], i = [];
1522
1531
  for (let a = 0; a < t.length; a++) {
1523
- let n = t[a], r = (o = (s = P.layerStore.layers.find((h) => h.name === n.p0.layer)) == null ? void 0 : s.visible) != null ? o : !0;
1532
+ let n = t[a], r = (o = (s = P.layerStore.layers.find((l) => l.name === n.p0.layer)) == null ? void 0 : s.visible) != null ? o : !0;
1524
1533
  !n.virtual && r && i.push(n), (n.virtual || !r || a === t.length - 1) && i.length && (i = []);
1525
1534
  }
1526
1535
  return e.map((a) => this.convertPoint(a.x, a.y, a.z));
1527
1536
  }
1528
1537
  }
1529
1538
  function fs({
1530
- isMapbox: l,
1539
+ isMapbox: h,
1531
1540
  expo: t
1532
1541
  }) {
1533
- const e = Rt.useRef(null);
1542
+ const e = Lt.useRef(null);
1534
1543
  let i = null;
1535
- Rt.useEffect(() => {
1536
- i = new ls(t, l, e.current), i.init().then(() => {
1544
+ Lt.useEffect(() => {
1545
+ i = new ls(t, h, e.current), i.init().then(() => {
1537
1546
  P.layerStore.layers.forEach((o) => i.changeLayerVisibility(o.name, o.visible)), i.selectBooths([...b.selectedBooths]), i.updateRouteLines(P.routeStore), xt(!0);
1538
1547
  });
1539
1548
  }, []);
@@ -1566,14 +1575,14 @@ function fs({
1566
1575
  xt(P.mapboxStore.showMapbox);
1567
1576
  }), Z(() => b.moveToBooths, () => {
1568
1577
  if (!b.moveToBooths || !P.mapboxStore.showMapbox) return;
1569
- const o = b.moveToBooths.filter((n) => n.rect).map((n) => n.rect), a = Lt.fromMultiple(o);
1578
+ const o = b.moveToBooths.filter((n) => n.rect).map((n) => n.rect), a = Rt.fromMultiple(o);
1570
1579
  o.length && at(a), b.moveToBooths = null;
1571
1580
  }), Z(() => b.moveToRect, () => {
1572
1581
  !b.moveToRect || !P.mapboxStore.showMapbox || (at(b.moveToRect, 15), b.moveToRect = null);
1573
1582
  }), Z(() => b.moveToLocation, () => {
1574
1583
  !b.moveToLocation || !P.mapboxStore.showMapbox || Pe();
1575
1584
  }), Z(() => b.centerMap, () => {
1576
- !b.centerMap || !P.mapboxStore.showMapbox || (at(Lt.fromMultiple(At.booths.map((o) => o.rect)), 15), b.centerMap = !1);
1585
+ !b.centerMap || !P.mapboxStore.showMapbox || (at(Rt.fromMultiple(At.booths.map((o) => o.rect)), 15), b.centerMap = !1);
1577
1586
  }), Z(() => P.routeStore.routeLines, () => i.updateRouteLines(P.routeStore)), Z(() => s.actualCurrentPosition, () => {
1578
1587
  var o, a, n;
1579
1588
  return i.setMarker("cp", (o = s.actualCurrentPosition) == null ? void 0 : o.x, (a = s.actualCurrentPosition) == null ? void 0 : a.y, (n = s.actualCurrentPosition) == null ? void 0 : n.z);