@qispace/vue3-player 0.1.2 → 0.1.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.
@@ -1,13 +1,13 @@
1
- var Dt = Object.defineProperty;
2
- var Rt = (u, t, e) => t in u ? Dt(u, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : u[t] = e;
3
- var J = (u, t, e) => (Rt(u, typeof t != "symbol" ? t + "" : t, e), e);
4
- import { defineComponent as Q, ref as r, computed as V, openBlock as h, createElementBlock as F, watch as Z, onMounted as ce, onBeforeUnmount as Oe, withDirectives as de, createElementVNode as o, normalizeStyle as re, vShow as me, createVNode as y, Fragment as Ce, renderList as _e, createCommentVNode as H, inject as pe, resolveComponent as T, withCtx as M, toDisplayString as z, unref as oe, createTextVNode as se, normalizeClass as ye, createBlock as N, renderSlot as ie, provide as De, watchEffect as qe, resolveDynamicComponent as mt, normalizeProps as pt, guardReactiveProps as ht, mergeProps as be, nextTick as Tt, createSlots as Ot, Transition as ze, pushScopeId as ot, popScopeId as nt, vModelText as $t, createStaticVNode as ft, onBeforeUpdate as Ht } from "vue";
5
- import gt from "axios";
6
- import * as jt from "@qispace/player-core";
1
+ var St = Object.defineProperty;
2
+ var Et = (u, t, e) => t in u ? St(u, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : u[t] = e;
3
+ var ee = (u, t, e) => (Et(u, typeof t != "symbol" ? t + "" : t, e), e);
4
+ import { defineComponent as Q, ref as r, computed as V, openBlock as h, createElementBlock as F, watch as Z, onMounted as ce, onBeforeUnmount as Oe, withDirectives as de, createElementVNode as o, normalizeStyle as re, vShow as me, createVNode as y, Fragment as Ce, renderList as _e, createCommentVNode as H, inject as pe, resolveComponent as T, withCtx as M, toDisplayString as z, unref as oe, createTextVNode as se, normalizeClass as ye, createBlock as N, renderSlot as ie, provide as De, watchEffect as qe, resolveDynamicComponent as dt, normalizeProps as vt, guardReactiveProps as mt, mergeProps as be, nextTick as Ft, createSlots as xt, Transition as ze, pushScopeId as Je, popScopeId as et, vModelText as Bt, createStaticVNode as pt, onBeforeUpdate as Vt } from "vue";
5
+ import ht from "axios";
6
+ import * as Ut from "@qispace/player-core";
7
7
  import * as xe from "three";
8
8
  class $e {
9
9
  async loadJson(t) {
10
- return (await gt.get(t)).data;
10
+ return (await ht.get(t)).data;
11
11
  }
12
12
  async loadImage(t) {
13
13
  return new Promise((e, l) => {
@@ -27,7 +27,7 @@ class $e {
27
27
  }
28
28
  }
29
29
  }
30
- const Pt = /* @__PURE__ */ Q({
30
+ const Dt = /* @__PURE__ */ Q({
31
31
  __name: "VHoverProbe",
32
32
  setup(u, { expose: t }) {
33
33
  const e = r(), l = V(() => window.getComputedStyle(e.value).display === "none");
@@ -44,7 +44,7 @@ const Pt = /* @__PURE__ */ Q({
44
44
  for (const [l, a] of t)
45
45
  e[l] = a;
46
46
  return e;
47
- }, He = /* @__PURE__ */ te(Pt, [["__scopeId", "data-v-eb9b348d"]]), Nt = /* @__PURE__ */ Q({
47
+ }, We = /* @__PURE__ */ te(Dt, [["__scopeId", "data-v-eb9b348d"]]), Rt = /* @__PURE__ */ Q({
48
48
  __name: "VApartmentChooserRaster",
49
49
  props: {
50
50
  cdnFileResolver: {},
@@ -58,7 +58,7 @@ const Pt = /* @__PURE__ */ Q({
58
58
  },
59
59
  emits: ["selectUnit", "goToUnit", "hoverOver", "hoverOut", "pos"],
60
60
  setup(u, { emit: t }) {
61
- const e = u, l = t, a = r({ x: 0, y: 0, width: 0, height: 0 }), n = r(null), s = r(0), i = r(0), k = r(null), p = r(null), v = r(null), m = r(null), I = r(-1), _ = r(!1), L = r(null), C = r(null), E = r({}), D = r("auto"), g = r(null), A = r(void 0), R = r(new $e()), c = r({}), f = r(), b = r(), B = r(), U = V(() => f.value.isHoverEnabled), $ = V(() => e.cdnFileResolver(`/scenedata${e.viewModel.currentScene}.png`)), q = V(() => $.value in E.value ? E.value[$.value] : null), ee = V(() => {
61
+ const e = u, l = t, a = r({ x: 0, y: 0, width: 0, height: 0 }), n = r(null), s = r(0), i = r(0), k = r(null), p = r(null), v = r(null), m = r(null), I = r(-1), _ = r(!1), L = r(null), C = r(null), E = r({}), D = r("auto"), g = r(null), A = r(void 0), R = r(new $e()), c = r({}), f = r(), b = r(), B = r(), U = V(() => f.value.isHoverEnabled), $ = V(() => e.cdnFileResolver(`/scenedata${e.viewModel.currentScene}.png`)), q = V(() => $.value in E.value ? E.value[$.value] : null), J = V(() => {
62
62
  if (I.value < 0)
63
63
  return !1;
64
64
  const j = e.sceneData.find(
@@ -69,7 +69,7 @@ const Pt = /* @__PURE__ */ Q({
69
69
  width: s.value + "px",
70
70
  height: i.value + "px",
71
71
  cursor: D.value
72
- })), x = V(() => `hover-${_.value ? "over" : "out"}-${ee.value ? typeof ee.value == "object" && "unitId" in ee.value ? ee.value.unitId : ee.value : ""}`);
72
+ })), x = V(() => `hover-${_.value ? "over" : "out"}-${J.value ? typeof J.value == "object" && "unitId" in J.value ? J.value.unitId : J.value : ""}`);
73
73
  Z(
74
74
  $,
75
75
  () => {
@@ -98,14 +98,14 @@ const Pt = /* @__PURE__ */ Q({
98
98
  () => {
99
99
  Ve();
100
100
  }
101
- ), Z(ee, () => {
102
- Ve(), ee.value ? D.value = "pointer" : D.value = "auto";
101
+ ), Z(J, () => {
102
+ Ve(), J.value ? D.value = "pointer" : D.value = "auto";
103
103
  }), Z(x, () => {
104
104
  _.value ? l("hoverOver", {
105
- hoverApartment: ee.value,
105
+ hoverApartment: J.value,
106
106
  closeHandler: () => Ge()
107
107
  }) : l("hoverOut", {
108
- hoverApartment: ee.value,
108
+ hoverApartment: J.value,
109
109
  closeHandler: () => Ge()
110
110
  });
111
111
  }), Z(a, () => {
@@ -123,7 +123,7 @@ const Pt = /* @__PURE__ */ Q({
123
123
  });
124
124
  function W() {
125
125
  n.value = b, k.value = n.value.getContext("2d", { willReadFrequently: !0 }), p.value = new Image(), p.value.onload = () => {
126
- Pe(), n.value.addEventListener("mousemove", Ne(S, 50));
126
+ je(), n.value.addEventListener("mousemove", Pe(S, 50));
127
127
  }, p.value.src = q.value;
128
128
  }
129
129
  function S(j) {
@@ -176,7 +176,7 @@ const Pt = /* @__PURE__ */ Q({
176
176
  if (P.index >= 0) {
177
177
  const le = ue(P.index), Se = ve(P.index);
178
178
  let Ee = "idle";
179
- !ee.value && e.selectedUnitId && Se === e.selectedUnitId ? Ee = "selected" : ee.value && I.value === P.index && (Ee = "hover");
179
+ !J.value && e.selectedUnitId && Se === e.selectedUnitId ? Ee = "selected" : J.value && I.value === P.index && (Ee = "hover");
180
180
  const Fe = e.unitCallback ? e.unitCallback(Se) : Se;
181
181
  if (Fe) {
182
182
  const we = e.colorCallback(Fe, Ee);
@@ -225,7 +225,7 @@ const Pt = /* @__PURE__ */ Q({
225
225
  return !1;
226
226
  s.value = B.value.offsetWidth, i.value = B.value.offsetHeight;
227
227
  }
228
- function Pe() {
228
+ function je() {
229
229
  X(), Ve();
230
230
  }
231
231
  function Ve() {
@@ -235,7 +235,7 @@ const Pt = /* @__PURE__ */ Q({
235
235
  _.value = !1;
236
236
  }
237
237
  const Ae = r(!1);
238
- function Ne(j, P) {
238
+ function Pe(j, P) {
239
239
  return Ae.value = !0, function(...le) {
240
240
  Ae.value && (Ae.value = !1, j.apply(this, le), setTimeout(() => Ae.value = !0, P));
241
241
  };
@@ -254,13 +254,13 @@ const Pt = /* @__PURE__ */ Q({
254
254
  }, null, 4), [
255
255
  [me, !j.viewModel.isRotating]
256
256
  ]),
257
- y(He, {
257
+ y(We, {
258
258
  ref_key: "hoverProbe",
259
259
  ref: f
260
260
  }, null, 512)
261
261
  ], 512));
262
262
  }
263
- }), wt = /* @__PURE__ */ te(Nt, [["__scopeId", "data-v-dbb7046f"]]), Yt = ["viewBox"], Wt = ["innerHTML", "onMouseenter", "onMouseleave", "onClick"], Gt = /* @__PURE__ */ Q({
263
+ }), Tt = /* @__PURE__ */ te(Rt, [["__scopeId", "data-v-dbb7046f"]]), Ot = ["viewBox"], $t = ["innerHTML", "onMouseenter", "onMouseleave", "onClick"], Ht = /* @__PURE__ */ Q({
264
264
  __name: "VApartmentChooserSvg",
265
265
  props: {
266
266
  cdnFileResolver: {},
@@ -355,12 +355,12 @@ const Pt = /* @__PURE__ */ Q({
355
355
  n.value < 0 && e.selectedUnitId && f === e.selectedUnitId ? B = "selected" : n.value >= 0 && n.value === c && (B = "hover");
356
356
  const U = e.colorCallback(b, B);
357
357
  if (U) {
358
- const { r: $, g: q, b: ee, a: w, s: x } = U;
358
+ const { r: $, g: q, b: J, a: w, s: x } = U;
359
359
  return {
360
360
  strokeWidth: x !== void 0 ? x : 2,
361
- stroke: `rgb(${$}, ${q}, ${ee})`,
361
+ stroke: `rgb(${$}, ${q}, ${J})`,
362
362
  strokeOpacity: 1,
363
- fill: `rgb(${$}, ${q}, ${ee})`,
363
+ fill: `rgb(${$}, ${q}, ${J})`,
364
364
  fillOpacity: w / 255,
365
365
  cursor: `${e.canGoToUnitCallback(b) ? "cursor" : "default"} !important`
366
366
  };
@@ -402,21 +402,21 @@ const Pt = /* @__PURE__ */ Q({
402
402
  onMouseenter: (U) => C(b),
403
403
  onMouseleave: (U) => E(),
404
404
  onClick: (U) => D(b)
405
- }, null, 44, Wt))), 128))
406
- ], 8, Yt)) : H("", !0)
405
+ }, null, 44, $t))), 128))
406
+ ], 8, Ot)) : H("", !0)
407
407
  ], 4), [
408
408
  [me, !c.viewModel.isRotating]
409
409
  ]),
410
- y(He, {
410
+ y(We, {
411
411
  ref_key: "hoverProbe",
412
412
  ref: v
413
413
  }, null, 512)
414
414
  ], 512));
415
415
  }
416
- }), kt = /* @__PURE__ */ te(Gt, [["__scopeId", "data-v-3e771deb"]]), Qt = {
416
+ }), jt = /* @__PURE__ */ te(Ht, [["__scopeId", "data-v-3e771deb"]]), Pt = {
417
417
  key: 0,
418
418
  class: "d-none d-md-flex"
419
- }, zt = /* @__PURE__ */ Q({
419
+ }, Nt = /* @__PURE__ */ Q({
420
420
  __name: "VApartmentChooserNavigation",
421
421
  props: {
422
422
  canGoToUnitCallback: { type: Function, default: () => !0 },
@@ -462,7 +462,7 @@ const Pt = /* @__PURE__ */ Q({
462
462
  onClick: i[2] || (i[2] = (p) => l("goToUnit", s.selectedUnit))
463
463
  }, {
464
464
  default: M(() => [
465
- s.selectedUnit && s.canGoToUnitCallback(s.selectedUnit) ? (h(), F("span", Qt, z(oe(a).getLabel("see-apartment")) + "  ", 1)) : H("", !0),
465
+ s.selectedUnit && s.canGoToUnitCallback(s.selectedUnit) ? (h(), F("span", Pt, z(oe(a).getLabel("see-apartment")) + "  ", 1)) : H("", !0),
466
466
  o("span", null, z(s.selectedUnit && "title" in s.selectedUnit ? s.selectedUnit.title : "-"), 1)
467
467
  ]),
468
468
  _: 1
@@ -485,15 +485,15 @@ const Pt = /* @__PURE__ */ Q({
485
485
  ]);
486
486
  };
487
487
  }
488
- }), bt = /* @__PURE__ */ te(zt, [["__scopeId", "data-v-02d5a12e"]]);
489
- class tt {
488
+ }), Yt = /* @__PURE__ */ te(Nt, [["__scopeId", "data-v-02d5a12e"]]);
489
+ class Ke {
490
490
  constructor(t) {
491
- J(this, "_numParts");
492
- J(this, "_loadedCount");
493
- J(this, "_isError");
494
- J(this, "_finishedAction");
495
- J(this, "_errorAction");
496
- J(this, "_loadProgressAction");
491
+ ee(this, "_numParts");
492
+ ee(this, "_loadedCount");
493
+ ee(this, "_isError");
494
+ ee(this, "_finishedAction");
495
+ ee(this, "_errorAction");
496
+ ee(this, "_loadProgressAction");
497
497
  this._numParts = t, this._loadedCount = 0, this._isError = !1, this._finishedAction = () => {
498
498
  }, this._errorAction = () => {
499
499
  }, this._loadProgressAction = () => {
@@ -524,12 +524,12 @@ class tt {
524
524
  return Math.round(this._loadedCount * 100 / this._numParts);
525
525
  }
526
526
  }
527
- class at {
527
+ class tt {
528
528
  constructor(t, e, l, a) {
529
- J(this, "_rotator");
530
- J(this, "_direction");
531
- J(this, "_frameIndex");
532
- J(this, "_sceneCount");
529
+ ee(this, "_rotator");
530
+ ee(this, "_direction");
531
+ ee(this, "_frameIndex");
532
+ ee(this, "_sceneCount");
533
533
  this._rotator = t, this._direction = e, this._frameIndex = l, this._sceneCount = a;
534
534
  }
535
535
  get atEnd() {
@@ -542,7 +542,7 @@ class at {
542
542
  const t = this._rotator.clampFrameIndex(
543
543
  this._frameIndex + this._direction
544
544
  ), e = this._rotator.isCardinalFrame(t) ? this._sceneCount - 1 : this._sceneCount;
545
- return new at(
545
+ return new tt(
546
546
  this._rotator,
547
547
  this._direction,
548
548
  t,
@@ -550,15 +550,15 @@ class at {
550
550
  );
551
551
  }
552
552
  }
553
- class qt {
553
+ class Wt {
554
554
  constructor(t, e) {
555
- J(this, "_cardinalFrames");
556
- J(this, "_totalFrameCount");
555
+ ee(this, "_cardinalFrames");
556
+ ee(this, "_totalFrameCount");
557
557
  this._cardinalFrames = t, this._totalFrameCount = e;
558
558
  }
559
559
  start(t, e, l) {
560
560
  const a = this.startFrameIndexForScene(e);
561
- return new at(this, t, a, l);
561
+ return new tt(this, t, a, l);
562
562
  }
563
563
  isCardinalFrame(t) {
564
564
  return this._cardinalFrames.includes(t);
@@ -570,20 +570,20 @@ class qt {
570
570
  return this._cardinalFrames[t];
571
571
  }
572
572
  }
573
- const Zt = {
573
+ const Gt = {
574
574
  key: 0,
575
575
  class: "fill-parent d-flex justify-center align-center blue-grey lighten-5"
576
- }, Xt = {
576
+ }, Qt = {
577
577
  key: 1,
578
578
  class: "frame-container"
579
- }, Kt = {
579
+ }, zt = {
580
580
  key: 0,
581
581
  class: "frame-image"
582
- }, Jt = ["srcset", "type"], eo = ["src"], to = {
582
+ }, qt = ["srcset", "type"], Zt = ["src"], Xt = {
583
583
  key: 2,
584
584
  id: "image-stack",
585
585
  class: "frame-container"
586
- }, oo = ["alt"], no = ["srcset"], ao = ["src"], ct = 64, Ye = 4, lo = 120, io = /* @__PURE__ */ Q({
586
+ }, Kt = ["alt"], Jt = ["srcset"], eo = ["src"], rt = 64, Ne = 4, to = 120, oo = /* @__PURE__ */ Q({
587
587
  __name: "VApartmentChooserRotator",
588
588
  props: {
589
589
  viewModel: {},
@@ -594,9 +594,9 @@ const Zt = {
594
594
  emits: ["loaded", "error", "progress"],
595
595
  setup(u, { emit: t }) {
596
596
  const e = u, l = t, a = _(), n = r(
597
- new tt(a.length).onLoadFinished(() => l("loaded")).onLoadProgress((D) => l("progress", D)).onLoadError(() => l("error"))
597
+ new Ke(a.length).onLoadFinished(() => l("loaded")).onLoadProgress((D) => l("progress", D)).onLoadError(() => l("error"))
598
598
  ), s = r(
599
- new qt(e.cardinalFrames, ct)
599
+ new Wt(e.cardinalFrames, rt)
600
600
  ), i = r(a), k = r(!1), p = V(() => i.value.find((D) => D.show));
601
601
  Z(
602
602
  () => e.viewModel.currentScene,
@@ -611,7 +611,7 @@ const Zt = {
611
611
  e.viewModel.isRotating || (e.viewModel.isRotating = !0, m(
612
612
  s.value.start(
613
613
  g,
614
- D % Ye,
614
+ D % Ne,
615
615
  A
616
616
  )
617
617
  ));
@@ -621,17 +621,17 @@ const Zt = {
621
621
  i.value[D.frameIndex].show = !1;
622
622
  const g = D.nextFrame();
623
623
  i.value[g.frameIndex].show = !0, g.atEnd ? I() : window.requestAnimationFrame(() => m(g));
624
- }, 1e3 / lo);
624
+ }, 1e3 / to);
625
625
  }
626
626
  function I() {
627
627
  const D = s.value.startFrameIndexForScene(
628
- e.viewModel.currentScene % Ye
628
+ e.viewModel.currentScene % Ne
629
629
  );
630
630
  D in i.value && (i.value[D].show = !0), e.viewModel.isRotating = !1;
631
631
  }
632
632
  function _() {
633
633
  const D = [];
634
- for (let g = 0; g < ct; g++) {
634
+ for (let g = 0; g < rt; g++) {
635
635
  const { sourceSet: A, defaultPath: R } = L(g);
636
636
  D.push({
637
637
  index: g,
@@ -653,26 +653,26 @@ const Zt = {
653
653
  return { sourceSet: R, defaultPath: c };
654
654
  }
655
655
  function C(D, g) {
656
- const A = Ye / 2, R = Math.abs(D - g);
657
- return R > A ? Ye - R : R;
656
+ const A = Ne / 2, R = Math.abs(D - g);
657
+ return R > A ? Ne - R : R;
658
658
  }
659
659
  function E(D, g) {
660
660
  if (D === g)
661
661
  return 0;
662
- const R = Math.abs(D - g) < Ye / 2;
662
+ const R = Math.abs(D - g) < Ne / 2;
663
663
  return R && D < g || !R && D > g ? 1 : -1;
664
664
  }
665
665
  return (D, g) => {
666
666
  const A = T("v-icon");
667
667
  return h(), F("div", null, [
668
- n.value.isError ? (h(), F("div", Zt, [
668
+ n.value.isError ? (h(), F("div", Gt, [
669
669
  y(A, { "x-large": "" }, {
670
670
  default: M(() => [
671
671
  se("mdi-alert-circle-outline")
672
672
  ]),
673
673
  _: 1
674
674
  })
675
- ])) : k.value ? (h(), F("div", to, [
675
+ ])) : k.value ? (h(), F("div", Xt, [
676
676
  (h(!0), F(Ce, null, _e(i.value, (R) => (h(), F("picture", {
677
677
  key: R.index,
678
678
  alt: R.index,
@@ -681,31 +681,31 @@ const Zt = {
681
681
  o("source", {
682
682
  srcset: R.sourceSet,
683
683
  type: "image/jpeg"
684
- }, null, 8, no),
684
+ }, null, 8, Jt),
685
685
  o("img", {
686
686
  src: R.defaultPath,
687
687
  alt: "Building image",
688
688
  onLoad: g[2] || (g[2] = (c) => n.value.partLoaded()),
689
689
  onError: g[3] || (g[3] = (c) => n.value.errorDetected())
690
- }, null, 40, ao)
691
- ], 10, oo))), 128))
692
- ])) : (h(), F("div", Xt, [
693
- p.value ? (h(), F("picture", Kt, [
690
+ }, null, 40, eo)
691
+ ], 10, Kt))), 128))
692
+ ])) : (h(), F("div", Qt, [
693
+ p.value ? (h(), F("picture", zt, [
694
694
  o("source", {
695
695
  srcset: p.value.sourceSet,
696
696
  type: p.value.type
697
- }, null, 8, Jt),
697
+ }, null, 8, qt),
698
698
  o("img", {
699
699
  src: p.value.defaultPath,
700
700
  onLoad: g[0] || (g[0] = (R) => k.value = !0),
701
701
  onError: g[1] || (g[1] = (R) => n.value.errorDetected())
702
- }, null, 40, eo)
702
+ }, null, 40, Zt)
703
703
  ])) : H("", !0)
704
704
  ]))
705
705
  ]);
706
706
  };
707
707
  }
708
- }), yt = /* @__PURE__ */ te(io, [["__scopeId", "data-v-8e71d825"]]), so = /* @__PURE__ */ Q({
708
+ }), no = /* @__PURE__ */ te(oo, [["__scopeId", "data-v-8e71d825"]]), ao = /* @__PURE__ */ Q({
709
709
  __name: "VFloatingCard",
710
710
  props: {
711
711
  pos: {},
@@ -745,7 +745,7 @@ const Zt = {
745
745
  }, 8, ["origin"]);
746
746
  };
747
747
  }
748
- }), Ze = /* @__PURE__ */ te(so, [["__scopeId", "data-v-0695e74f"]]), ro = /* @__PURE__ */ Q({
748
+ }), ot = /* @__PURE__ */ te(ao, [["__scopeId", "data-v-0695e74f"]]), lo = /* @__PURE__ */ Q({
749
749
  __name: "VZoomBox",
750
750
  props: {
751
751
  desktop: { type: Boolean, default: !0 },
@@ -835,7 +835,7 @@ const Zt = {
835
835
  x: Y - K,
836
836
  y: X - ne
837
837
  };
838
- ee(ue.x), w(ue.y), v.value = !0, p.value = S;
838
+ J(ue.x), w(ue.y), v.value = !0, p.value = S;
839
839
  }
840
840
  }
841
841
  function f(S) {
@@ -853,10 +853,10 @@ const Zt = {
853
853
  x: Y - K,
854
854
  y: X - ne
855
855
  };
856
- ee(ue.x), w(ue.y);
856
+ J(ue.x), w(ue.y);
857
857
  } else if (k.value && S.touches.length === 2) {
858
- const { x: Y, y: X } = q(S.touches[0]), { x: K, y: ne } = q(p.value.touches[0]), { x: ue, y: ve } = q(S.touches[1]), { x: he, y: fe } = q(p.value.touches[1]), ge = Math.hypot(K - he, ne - fe), Ie = Math.hypot(Y - ue, X - ve), Me = (ue + Y) / 2, Pe = (ve + X) / 2;
859
- x(Ie - ge, Me, Pe);
858
+ const { x: Y, y: X } = q(S.touches[0]), { x: K, y: ne } = q(p.value.touches[0]), { x: ue, y: ve } = q(S.touches[1]), { x: he, y: fe } = q(p.value.touches[1]), ge = Math.hypot(K - he, ne - fe), Ie = Math.hypot(Y - ue, X - ve), Me = (ue + Y) / 2, je = (ve + X) / 2;
859
+ x(Ie - ge, Me, je);
860
860
  }
861
861
  p.value = S;
862
862
  }
@@ -870,7 +870,7 @@ const Zt = {
870
870
  y: S.clientY - X
871
871
  };
872
872
  }
873
- function ee(S) {
873
+ function J(S) {
874
874
  const Y = m.value.clientWidth, X = Y * _.value;
875
875
  n.value = Math.max(
876
876
  Math.min(0, n.value + S),
@@ -888,7 +888,7 @@ const Zt = {
888
888
  const K = m.value.clientWidth, ne = m.value.clientHeight, ue = K * _.value, ve = ne * _.value;
889
889
  a.value = Math.min(Math.max(100, a.value + S), L.value);
890
890
  const he = K * _.value, fe = ne * _.value, ge = he - ue, Ie = fe - ve;
891
- n.value -= Y / K * ge, s.value -= X / ne * Ie, ee(0), w(0);
891
+ n.value -= Y / K * ge, s.value -= X / ne * Ie, J(0), w(0);
892
892
  }
893
893
  function W() {
894
894
  l("update", {
@@ -914,18 +914,18 @@ const Zt = {
914
914
  ], 4)
915
915
  ], 512));
916
916
  }
917
- }), Xe = /* @__PURE__ */ te(ro, [["__scopeId", "data-v-52f62ef2"]]), lt = 4;
918
- function _t(u) {
919
- return u < lt ? u + 1 : 1;
917
+ }), nt = /* @__PURE__ */ te(lo, [["__scopeId", "data-v-52f62ef2"]]), at = 4;
918
+ function ft(u) {
919
+ return u < at ? u + 1 : 1;
920
920
  }
921
- function uo(u) {
922
- return u > 1 ? u - 1 : lt;
921
+ function io(u) {
922
+ return u > 1 ? u - 1 : at;
923
923
  }
924
- class co {
924
+ class so {
925
925
  constructor(t) {
926
- J(this, "_state");
927
- J(this, "_navigator");
928
- J(this, "_sceneModel");
926
+ ee(this, "_state");
927
+ ee(this, "_navigator");
928
+ ee(this, "_sceneModel");
929
929
  this._state = {
930
930
  isRotating: !1,
931
931
  currentScene: t
@@ -954,16 +954,16 @@ class co {
954
954
  }
955
955
  rotateCounterClockwise() {
956
956
  this.unlessRotatingDo(() => {
957
- this.currentScene = _t(this.currentScene);
957
+ this.currentScene = ft(this.currentScene);
958
958
  });
959
959
  }
960
960
  rotateClockwise() {
961
961
  this.unlessRotatingDo(() => {
962
- this.currentScene = uo(this.currentScene);
962
+ this.currentScene = io(this.currentScene);
963
963
  });
964
964
  }
965
965
  }
966
- const vo = {
966
+ const ro = {
967
967
  // virtual tour default labels
968
968
  interior: "Interiør",
969
969
  "see-a-selection-of-the-options-in-the-project": "Se et utvalg av tilvalgsmulighetene i prosjektet.",
@@ -1020,9 +1020,9 @@ const vo = {
1020
1020
  };
1021
1021
  class Le {
1022
1022
  constructor(t = null, e = null) {
1023
- J(this, "_labels");
1024
- J(this, "_language");
1025
- this._labels = { ...vo, ...t || {} }, this._language = e || "en";
1023
+ ee(this, "_labels");
1024
+ ee(this, "_language");
1025
+ this._labels = { ...ro, ...t || {} }, this._language = e || "en";
1026
1026
  }
1027
1027
  getLabel(t) {
1028
1028
  return t in this._labels ? this.get(this._labels[t]) : t;
@@ -1038,10 +1038,10 @@ class Le {
1038
1038
  return "";
1039
1039
  }
1040
1040
  }
1041
- const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill-parent" }, fo = { key: 0 }, go = {
1041
+ const uo = { key: 0 }, co = { class: "interactive-viewer" }, vo = { class: "fill-parent" }, mo = { key: 0 }, po = {
1042
1042
  key: 1,
1043
1043
  class: "navigation"
1044
- }, wo = { key: 2 }, ko = 4, bo = /* @__PURE__ */ Q({
1044
+ }, ho = { key: 2 }, fo = 4, go = /* @__PURE__ */ Q({
1045
1045
  __name: "VApartmentChooser",
1046
1046
  props: {
1047
1047
  i18n: {},
@@ -1068,7 +1068,7 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1068
1068
  "i18n",
1069
1069
  l.i18n ? new Le(l.i18n.labels, l.i18n.language) : new Le()
1070
1070
  );
1071
- const n = r({ isReady: !1, isError: !1, progress: void 0 }), s = r(null), i = r(null), k = r(null), p = r(void 0), v = r(new $e()), m = r({ x: 0, y: 0, width: 0, height: 0 }), I = r(void 0), _ = r(void 0), L = r(null), C = V(() => L.value.isHoverEnabled), E = V(() => l.unitCallback ? l.unitCallback(l.selectedUnitId) : l.selectedUnitId), D = V(() => l.useSvg ? kt : wt);
1071
+ const n = r({ isReady: !1, isError: !1, progress: void 0 }), s = r(null), i = r(null), k = r(null), p = r(void 0), v = r(new $e()), m = r({ x: 0, y: 0, width: 0, height: 0 }), I = r(void 0), _ = r(void 0), L = r(null), C = V(() => L.value.isHoverEnabled), E = V(() => l.unitCallback ? l.unitCallback(l.selectedUnitId) : l.selectedUnitId), D = V(() => l.useSvg ? jt : Tt);
1072
1072
  qe(() => {
1073
1073
  if (l.selectedUnitId && p.value) {
1074
1074
  const c = s.value[l.selectedUnitId];
@@ -1083,7 +1083,7 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1083
1083
  } catch {
1084
1084
  console.info("apartmentChooser.json not found");
1085
1085
  }
1086
- const f = c && c.startScene !== void 0 ? c.startScene : ko;
1086
+ const f = c && c.startScene !== void 0 ? c.startScene : fo;
1087
1087
  k.value = c && c.scenes !== void 0 ? c.scenes : e, i.value = c && c.sceneData !== void 0 ? c.sceneData.map((U) => ({
1088
1088
  apartmentId: U.apartmentID,
1089
1089
  index: U.index
@@ -1092,19 +1092,19 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1092
1092
  return { unitId: U.apartmentID, scene: $ };
1093
1093
  }).reduce((U, $) => ({ ...U, [$.unitId]: $.scene }), {}) : l.buildingScenesByApartmentResolver ? await l.buildingScenesByApartmentResolver() : [];
1094
1094
  const b = (U, $ = "unitId") => {
1095
- let q = f, ee = [];
1096
- for (let w = 0; w < lt; w++)
1097
- ee.push(q), q = _t(q);
1095
+ let q = f, J = [];
1096
+ for (let w = 0; w < at; w++)
1097
+ J.push(q), q = ft(q);
1098
1098
  return U.sort((w, x) => {
1099
- const W = ee.findIndex(
1099
+ const W = J.findIndex(
1100
1100
  (Y) => Y === s.value[w[$]]
1101
- ), S = ee.findIndex(
1101
+ ), S = J.findIndex(
1102
1102
  (Y) => Y === s.value[x[$]]
1103
1103
  );
1104
1104
  return W < S ? -1 : W > S ? 1 : 0;
1105
1105
  }), U;
1106
1106
  }, B = (U) => {
1107
- p.value = new co(U);
1107
+ p.value = new so(U);
1108
1108
  };
1109
1109
  a("initialized", {
1110
1110
  scene: f,
@@ -1126,15 +1126,15 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1126
1126
  }
1127
1127
  return (c, f) => {
1128
1128
  const b = T("v-progress-linear");
1129
- return p.value ? (h(), F("div", mo, [
1130
- o("div", po, [
1131
- o("div", ho, [
1132
- y(Xe, {
1129
+ return p.value ? (h(), F("div", uo, [
1130
+ o("div", co, [
1131
+ o("div", vo, [
1132
+ y(nt, {
1133
1133
  desktop: n.value.isReady && c.interactiveDesktop,
1134
1134
  mobile: n.value.isReady && c.interactiveMobile
1135
1135
  }, {
1136
1136
  default: M(() => [
1137
- y(yt, {
1137
+ y(no, {
1138
1138
  "cdn-file-resolver": c.cdnFileResolver,
1139
1139
  "view-model": p.value,
1140
1140
  "cardinal-frames": k.value,
@@ -1143,8 +1143,8 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1143
1143
  onLoaded: f[1] || (f[1] = (B) => n.value.isReady = !0),
1144
1144
  onError: f[2] || (f[2] = (B) => n.value.isError = !0)
1145
1145
  }, null, 8, ["cdn-file-resolver", "view-model", "cardinal-frames", "build"]),
1146
- n.value.isReady ? (h(), F("div", fo, [
1147
- (h(), N(mt(D.value), {
1146
+ n.value.isReady ? (h(), F("div", mo, [
1147
+ (h(), N(dt(D.value), {
1148
1148
  "cdn-file-resolver": c.cdnFileResolver,
1149
1149
  "view-model": p.value,
1150
1150
  "selected-unit-id": c.selectedUnitId,
@@ -1160,7 +1160,7 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1160
1160
  onPos: g
1161
1161
  }, {
1162
1162
  default: M((B) => [
1163
- ie(c.$slots, "default", pt(ht(B)), void 0, !0)
1163
+ ie(c.$slots, "default", vt(mt(B)), void 0, !0)
1164
1164
  ]),
1165
1165
  _: 3
1166
1166
  }, 40, ["cdn-file-resolver", "view-model", "selected-unit-id", "scene-data", "color-callback", "unit-callback", "can-go-to-unit-callback", "draw-observer"]))
@@ -1168,7 +1168,7 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1168
1168
  ]),
1169
1169
  _: 3
1170
1170
  }, 8, ["desktop", "mobile"]),
1171
- _.value && c.showCards ? (h(), N(Ze, {
1171
+ _.value && c.showCards ? (h(), N(ot, {
1172
1172
  key: 0,
1173
1173
  "is-hoverable": C.value,
1174
1174
  pos: m.value,
@@ -1186,8 +1186,8 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1186
1186
  ]),
1187
1187
  _: 3
1188
1188
  }, 8, ["is-hoverable", "pos", "onOutside"])) : H("", !0),
1189
- n.value.isReady ? (h(), F("div", go, [
1190
- y(bt, {
1189
+ n.value.isReady ? (h(), F("div", po, [
1190
+ y(Yt, {
1191
1191
  "can-go-to-unit-callback": c.canGoToUnitCallback,
1192
1192
  "selected-unit": E.value,
1193
1193
  "prev-unit": c.prevUnit,
@@ -1197,7 +1197,7 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1197
1197
  onPrevUnit: f[6] || (f[6] = (B) => a("navUnit", c.prevUnit)),
1198
1198
  onNextUnit: f[7] || (f[7] = (B) => a("navUnit", c.nextUnit))
1199
1199
  }, null, 8, ["can-go-to-unit-callback", "selected-unit", "prev-unit", "next-unit", "view-model"])
1200
- ])) : n.value.isError ? H("", !0) : (h(), F("div", wo, [
1200
+ ])) : n.value.isError ? H("", !0) : (h(), F("div", ho, [
1201
1201
  y(b, {
1202
1202
  indeterminate: !n.value.progress,
1203
1203
  value: n.value.progress
@@ -1205,14 +1205,14 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1205
1205
  ]))
1206
1206
  ])
1207
1207
  ]),
1208
- y(He, {
1208
+ y(We, {
1209
1209
  ref_key: "hoverProbe",
1210
1210
  ref: L
1211
1211
  }, null, 512)
1212
1212
  ])) : H("", !0);
1213
1213
  };
1214
1214
  }
1215
- }), yo = /* @__PURE__ */ te(bo, [["__scopeId", "data-v-52c91082"]]), _o = "data:image/png;base64,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", Ke = /* @__PURE__ */ Q({
1215
+ }), wo = /* @__PURE__ */ te(go, [["__scopeId", "data-v-52c91082"]]), ko = "data:image/png;base64,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", lt = /* @__PURE__ */ Q({
1216
1216
  __name: "VNorthDirection",
1217
1217
  props: {
1218
1218
  longitude: {}
@@ -1225,15 +1225,15 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1225
1225
  return (l, a) => {
1226
1226
  const n = T("v-img");
1227
1227
  return h(), N(n, {
1228
- src: oe(_o),
1228
+ src: oe(ko),
1229
1229
  style: re(e.value)
1230
1230
  }, null, 8, ["src", "style"]);
1231
1231
  };
1232
1232
  }
1233
- }), Co = { class: "sunsim-bar-wrapper" }, Ao = { class: "sunsim-date d-flex align-center pl-5 pr-5" }, Lo = {
1233
+ }), bo = { class: "sunsim-bar-wrapper" }, yo = { class: "sunsim-date d-flex align-center pl-5 pr-5" }, _o = {
1234
1234
  key: 1,
1235
1235
  class: "text-center text-body-1"
1236
- }, Io = { class: "sunsim-wrapper d-flex align-center px-3" }, Mo = { class: "sunsim-time-label text-body-1 font-weight-normal ml-2" }, So = /* @__PURE__ */ Q({
1236
+ }, Co = { class: "sunsim-wrapper d-flex align-center px-3" }, Ao = { class: "sunsim-time-label text-body-1 font-weight-normal ml-2" }, Lo = /* @__PURE__ */ Q({
1237
1237
  __name: "VBuildingChooserSunSimControl",
1238
1238
  props: {
1239
1239
  modelValue: {},
@@ -1273,8 +1273,8 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1273
1273
  n.value = s(e.dateSelector.selectedDate);
1274
1274
  }), (v, m) => {
1275
1275
  const I = T("v-icon"), _ = T("v-select"), L = T("v-progress-linear"), C = T("v-slider");
1276
- return h(), F("div", Co, [
1277
- o("div", Ao, [
1276
+ return h(), F("div", bo, [
1277
+ o("div", yo, [
1278
1278
  y(I, {
1279
1279
  color: "black",
1280
1280
  class: "mr-2",
@@ -1289,10 +1289,10 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1289
1289
  variant: "underlined",
1290
1290
  "hide-details": "",
1291
1291
  class: "day-selector"
1292
- }, null, 8, ["modelValue", "items"])) : (h(), F("span", Lo, z(p.value), 1))
1292
+ }, null, 8, ["modelValue", "items"])) : (h(), F("span", _o, z(p.value), 1))
1293
1293
  ]),
1294
- o("div", Io, [
1295
- o("span", Mo, z(i.value), 1),
1294
+ o("div", Co, [
1295
+ o("span", Ao, z(i.value), 1),
1296
1296
  y(I, {
1297
1297
  medium: "",
1298
1298
  class: "ml-2 mr-2 icon"
@@ -1328,7 +1328,7 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1328
1328
  ]);
1329
1329
  };
1330
1330
  }
1331
- }), it = /* @__PURE__ */ te(So, [["__scopeId", "data-v-0d8001a3"]]), Eo = { key: 0 }, Fo = ["src"], xo = /* @__PURE__ */ Q({
1331
+ }), gt = /* @__PURE__ */ te(Lo, [["__scopeId", "data-v-0d8001a3"]]), Io = { key: 0 }, Mo = ["src"], So = /* @__PURE__ */ Q({
1332
1332
  __name: "VBuildingChooserSceneImageStack",
1333
1333
  props: {
1334
1334
  imageUrls: {},
@@ -1336,7 +1336,7 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1336
1336
  },
1337
1337
  emits: ["resize", "ready", "preloaded", "reset"],
1338
1338
  setup(u, { emit: t }) {
1339
- const e = u, l = t, a = r("init"), n = r(new tt(0)), s = r();
1339
+ const e = u, l = t, a = r("init"), n = r(new Ke(0)), s = r();
1340
1340
  Z(
1341
1341
  () => e.imageUrls,
1342
1342
  (p) => {
@@ -1354,7 +1354,7 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1354
1354
  a.value = "preloaded", l("preloaded");
1355
1355
  }
1356
1356
  function k(p) {
1357
- a.value = "init", s.value.src = p[0], n.value = new tt(p.length).onLoadFinished(
1357
+ a.value = "init", s.value.src = p[0], n.value = new Ke(p.length).onLoadFinished(
1358
1358
  () => {
1359
1359
  a.value = "loaded", l("ready");
1360
1360
  }
@@ -1368,31 +1368,31 @@ const mo = { key: 0 }, po = { class: "interactive-viewer" }, ho = { class: "fill
1368
1368
  style: { opacity: 1, borderRadius: 50 },
1369
1369
  onLoad: i
1370
1370
  }, null, 544),
1371
- a.value === "preloaded" || a.value === "loaded" ? de((h(), F("div", Eo, [
1371
+ a.value === "preloaded" || a.value === "loaded" ? de((h(), F("div", Io, [
1372
1372
  (h(!0), F(Ce, null, _e(p.imageUrls, (m, I) => (h(), F("img", {
1373
1373
  key: I,
1374
1374
  class: ye({ "image-instance": !0, active: I === p.activeIndex }),
1375
1375
  src: m,
1376
1376
  onLoad: v[0] || (v[0] = (_) => n.value.partLoaded())
1377
- }, null, 42, Fo))), 128)),
1377
+ }, null, 42, Mo))), 128)),
1378
1378
  se(" Here ")
1379
1379
  ], 512)), [
1380
1380
  [me, a.value === "loaded"]
1381
1381
  ]) : H("", !0)
1382
1382
  ]));
1383
1383
  }
1384
- }), st = /* @__PURE__ */ te(xo, [["__scopeId", "data-v-1dc6128e"]]), Bo = "buildingChooser.json", Vo = 180;
1385
- class Ct {
1384
+ }), wt = /* @__PURE__ */ te(So, [["__scopeId", "data-v-1dc6128e"]]), Eo = "buildingChooser.json", Fo = 180;
1385
+ class kt {
1386
1386
  constructor(t) {
1387
- J(this, "_cdnFileResolver");
1388
- J(this, "_resourceLoader");
1387
+ ee(this, "_cdnFileResolver");
1388
+ ee(this, "_resourceLoader");
1389
1389
  this._cdnFileResolver = t, this._resourceLoader = new $e();
1390
1390
  }
1391
1391
  constructFileUrl(t) {
1392
1392
  return this._cdnFileResolver ? this._cdnFileResolver(`/${t}`) : null;
1393
1393
  }
1394
1394
  loadConfigFile() {
1395
- const t = this.constructFileUrl(Bo);
1395
+ const t = this.constructFileUrl(Eo);
1396
1396
  return t ? this._resourceLoader.loadJson(t) : null;
1397
1397
  }
1398
1398
  loadBuildingMapImage(t) {
@@ -1411,7 +1411,7 @@ class Ct {
1411
1411
  }
1412
1412
  getBackgroundImageData(t) {
1413
1413
  return "days" in t ? this.processMultipleDays(t.days) : [this.processTimeSamples(
1414
- Vo,
1414
+ Fo,
1415
1415
  t.timeSamples
1416
1416
  )];
1417
1417
  }
@@ -1456,7 +1456,7 @@ class Ct {
1456
1456
  }
1457
1457
  class Re {
1458
1458
  constructor(t) {
1459
- J(this, "_buildingIds");
1459
+ ee(this, "_buildingIds");
1460
1460
  this._buildingIds = t;
1461
1461
  }
1462
1462
  static empty() {
@@ -1475,8 +1475,8 @@ class Re {
1475
1475
  }
1476
1476
  class Te {
1477
1477
  constructor(t) {
1478
- J(this, "_mapImage");
1479
- J(this, "_context");
1478
+ ee(this, "_mapImage");
1479
+ ee(this, "_context");
1480
1480
  this._mapImage = t, this._context = null;
1481
1481
  }
1482
1482
  static empty() {
@@ -1493,15 +1493,15 @@ class Te {
1493
1493
  }
1494
1494
  }
1495
1495
  }
1496
- const Uo = /* @__PURE__ */ new Date(0);
1497
- class Je {
1496
+ const xo = /* @__PURE__ */ new Date(0);
1497
+ class Ze {
1498
1498
  constructor(t) {
1499
- J(this, "_imagesByDay");
1500
- J(this, "_state");
1499
+ ee(this, "_imagesByDay");
1500
+ ee(this, "_state");
1501
1501
  this._imagesByDay = t, this._state = { selectedIndex: 0 };
1502
1502
  }
1503
1503
  static empty() {
1504
- return new Je([{ referenceDate: Uo, urls: [] }]);
1504
+ return new Ze([{ referenceDate: xo, urls: [] }]);
1505
1505
  }
1506
1506
  selectIndex(t) {
1507
1507
  t < this._imagesByDay.length && (this._state.selectedIndex = t);
@@ -1522,11 +1522,11 @@ class Je {
1522
1522
  return this._imagesByDay[this.selectedIndex].urls;
1523
1523
  }
1524
1524
  }
1525
- const Do = {
1525
+ const Bo = {
1526
1526
  key: 0,
1527
1527
  style: { height: "50vh" },
1528
1528
  class: "d-flex justify-center align-center blue-grey lighten-5"
1529
- }, Ro = { class: "image-instances" }, To = { key: 0 }, Oo = { class: "svg-container" }, $o = ["viewBox"], Ho = ["innerHTML", "data-building-id", "onMouseover", "onMouseout", "onMousemove", "onClick"], jo = ["innerHTML"], Po = /* @__PURE__ */ Q({
1529
+ }, Vo = { class: "image-instances" }, Uo = { key: 0 }, Do = { class: "svg-container" }, Ro = ["viewBox"], To = ["innerHTML", "data-building-id", "onMouseover", "onMouseout", "onMousemove", "onClick"], Oo = ["innerHTML"], $o = /* @__PURE__ */ Q({
1530
1530
  __name: "VBuildingChooserSvg",
1531
1531
  props: {
1532
1532
  showCards: { type: Boolean, default: !0 },
@@ -1563,11 +1563,11 @@ const Do = {
1563
1563
  k.value = parseInt(x) * 2 + (S < 15 ? 0 : S > 45 ? 2 : 1);
1564
1564
  }
1565
1565
  }), ce(async () => {
1566
- const x = await new Ct(
1566
+ const x = await new kt(
1567
1567
  e.cdnFileResolver
1568
1568
  ).loadBuildingChooser();
1569
1569
  if (x) {
1570
- E.value = new Te(x.mapImage), C.value = new Re(x.buildingIds), _.value = new Je(x.backgrounds), L.value = {
1570
+ E.value = new Te(x.mapImage), C.value = new Re(x.buildingIds), _.value = new Ze(x.backgrounds), L.value = {
1571
1571
  buildingOverlays: x.buildingOverlays,
1572
1572
  sceneLongitude: x.viewLongitude
1573
1573
  };
@@ -1649,12 +1649,12 @@ const Do = {
1649
1649
  height: n.value.height
1650
1650
  });
1651
1651
  }
1652
- function ee(w) {
1652
+ function J(w) {
1653
1653
  i.value = w, g.value && A.value && e.canGoToBuildingCallback(A.value) && l("goToBuilding", A.value);
1654
1654
  }
1655
1655
  return (w, x) => {
1656
1656
  const W = T("v-icon");
1657
- return p.value ? (h(), F("div", Do, [
1657
+ return p.value ? (h(), F("div", Bo, [
1658
1658
  y(W, { "x-large": "" }, {
1659
1659
  default: M(() => [
1660
1660
  se("mdi-alert-circle-outline")
@@ -1666,13 +1666,13 @@ const Do = {
1666
1666
  style: re(`height: ${n.value.height}px; position: relative`),
1667
1667
  class: "image-container"
1668
1668
  }, [
1669
- y(Xe, {
1669
+ y(nt, {
1670
1670
  desktop: w.interactiveDesktop,
1671
1671
  mobile: w.interactiveMobile
1672
1672
  }, {
1673
1673
  default: M(() => [
1674
- o("div", Ro, [
1675
- y(st, {
1674
+ o("div", Vo, [
1675
+ y(wt, {
1676
1676
  "image-urls": _.value.imageUrls,
1677
1677
  "active-index": k.value,
1678
1678
  onResize: R,
@@ -1680,8 +1680,8 @@ const Do = {
1680
1680
  onReady: x[1] || (x[1] = (S) => a.value.ready = !0),
1681
1681
  onReset: c
1682
1682
  }, null, 8, ["image-urls", "active-index"]),
1683
- m.value ? de((h(), F("div", To, [
1684
- o("div", Oo, [
1683
+ m.value ? de((h(), F("div", Uo, [
1684
+ o("div", Do, [
1685
1685
  (h(), F("svg", { viewBox: I.value }, [
1686
1686
  (h(!0), F(Ce, null, _e(m.value, ({ id: S, svg: Y }, X) => (h(), F("g", {
1687
1687
  key: X,
@@ -1692,9 +1692,9 @@ const Do = {
1692
1692
  onMouseover: (K) => U(K, S),
1693
1693
  onMouseout: (K) => $(K, S),
1694
1694
  onMousemove: (K) => q(K),
1695
- onClick: (K) => ee(S)
1696
- }, null, 46, Ho))), 128))
1697
- ], 8, $o))
1695
+ onClick: (K) => J(S)
1696
+ }, null, 46, To))), 128))
1697
+ ], 8, Ro))
1698
1698
  ])
1699
1699
  ], 512)), [
1700
1700
  [me, a.value.preloaded]
@@ -1702,7 +1702,7 @@ const Do = {
1702
1702
  de(o("div", {
1703
1703
  class: "custom-overlay-layer",
1704
1704
  innerHTML: w.customOverlayContent
1705
- }, null, 8, jo), [
1705
+ }, null, 8, Oo), [
1706
1706
  [me, a.value.preloaded]
1707
1707
  ])
1708
1708
  ])
@@ -1710,12 +1710,12 @@ const Do = {
1710
1710
  _: 1
1711
1711
  }, 8, ["desktop", "mobile"]),
1712
1712
  de(o("div", null, [
1713
- L.value.sceneLongitude ? (h(), N(Ke, {
1713
+ L.value.sceneLongitude ? (h(), N(lt, {
1714
1714
  key: 0,
1715
1715
  class: "north-indicator",
1716
1716
  longitude: L.value.sceneLongitude
1717
1717
  }, null, 8, ["longitude"])) : H("", !0),
1718
- y(it, {
1718
+ y(gt, {
1719
1719
  modelValue: k.value,
1720
1720
  "onUpdate:modelValue": x[2] || (x[2] = (S) => k.value = S),
1721
1721
  "date-selector": _.value,
@@ -1724,7 +1724,7 @@ const Do = {
1724
1724
  ], 512), [
1725
1725
  [me, a.value.preloaded]
1726
1726
  ]),
1727
- w.showCards && A.value ? (h(), N(Ze, {
1727
+ w.showCards && A.value ? (h(), N(ot, {
1728
1728
  key: 0,
1729
1729
  "is-hoverable": g.value,
1730
1730
  pos: s.value,
@@ -1742,14 +1742,14 @@ const Do = {
1742
1742
  ]),
1743
1743
  _: 3
1744
1744
  }, 8, ["is-hoverable", "pos"])) : H("", !0),
1745
- y(He, {
1745
+ y(We, {
1746
1746
  ref_key: "hoverProbe",
1747
1747
  ref: D
1748
1748
  }, null, 512)
1749
1749
  ], 4)) : H("", !0);
1750
1750
  };
1751
1751
  }
1752
- }), At = /* @__PURE__ */ te(Po, [["__scopeId", "data-v-6103fad2"]]), No = /* @__PURE__ */ Q({
1752
+ }), Ho = /* @__PURE__ */ te($o, [["__scopeId", "data-v-6103fad2"]]), jo = /* @__PURE__ */ Q({
1753
1753
  __name: "VBuildingChooserRasterOverlay",
1754
1754
  props: {
1755
1755
  imageUrl: {},
@@ -1793,11 +1793,11 @@ const Do = {
1793
1793
  class: "overlay"
1794
1794
  }, I.dimensions), null, 16));
1795
1795
  }
1796
- }), Lt = /* @__PURE__ */ te(No, [["__scopeId", "data-v-b6fc0f96"]]), Yo = {
1796
+ }), Po = /* @__PURE__ */ te(jo, [["__scopeId", "data-v-b6fc0f96"]]), No = {
1797
1797
  key: 0,
1798
1798
  style: { height: "50vh" },
1799
1799
  class: "d-flex justify-center align-center blue-grey lighten-5"
1800
- }, Wo = { class: "image-instances" }, Go = ["innerHTML"], Qo = /* @__PURE__ */ Q({
1800
+ }, Yo = { class: "image-instances" }, Wo = ["innerHTML"], Go = /* @__PURE__ */ Q({
1801
1801
  __name: "VBuildingChooserRaster",
1802
1802
  props: {
1803
1803
  showCards: { type: Boolean, default: !0 },
@@ -1836,16 +1836,16 @@ const Do = {
1836
1836
  }), Z(m, (w, x) => {
1837
1837
  w ? l("hoverOverBuilding", f(w)) : l("hoverOutBuilding", f(x));
1838
1838
  }), ce(async () => {
1839
- const x = await new Ct(
1839
+ const x = await new kt(
1840
1840
  e.cdnFileResolver
1841
1841
  ).loadBuildingChooser();
1842
- x ? (v.value = new Te(x.mapImage), p.value = new Re(x.buildingIds), a.value = new Je(x.backgrounds), k.value = {
1842
+ x ? (v.value = new Te(x.mapImage), p.value = new Re(x.buildingIds), a.value = new Ze(x.backgrounds), k.value = {
1843
1843
  buildingOverlays: x.buildingOverlays,
1844
1844
  sceneLongitude: x.viewLongitude
1845
1845
  }, B()) : L.value = !0;
1846
1846
  });
1847
1847
  function R({ width: w, height: x }) {
1848
- s.value.width = w, s.value.height = x, Tt(B);
1848
+ s.value.width = w, s.value.height = x, Ft(B);
1849
1849
  }
1850
1850
  function c() {
1851
1851
  n.value = { preloaded: !1, ready: !1 };
@@ -1879,12 +1879,12 @@ const Do = {
1879
1879
  w === m.value ? "hover" : "idle"
1880
1880
  );
1881
1881
  }
1882
- function ee({ resolve: w }) {
1882
+ function J({ resolve: w }) {
1883
1883
  _.value = w;
1884
1884
  }
1885
1885
  return (w, x) => {
1886
1886
  const W = T("v-icon");
1887
- return L.value ? (h(), F("div", Yo, [
1887
+ return L.value ? (h(), F("div", No, [
1888
1888
  y(W, { "x-large": "" }, {
1889
1889
  default: M(() => [
1890
1890
  se("mdi-alert-circle-outline")
@@ -1896,14 +1896,14 @@ const Do = {
1896
1896
  style: re(`cursor: ${m.value ? "pointer" : "auto"};height: ${s.value.height}px; position: relative`),
1897
1897
  class: "image-container"
1898
1898
  }, [
1899
- y(Xe, {
1899
+ y(nt, {
1900
1900
  desktop: w.interactiveDesktop,
1901
1901
  mobile: w.interactiveMobile,
1902
- onUpdate: ee
1902
+ onUpdate: J
1903
1903
  }, {
1904
1904
  default: M(() => [
1905
- o("div", Wo, [
1906
- y(st, {
1905
+ o("div", Yo, [
1906
+ y(wt, {
1907
1907
  "image-urls": a.value.imageUrls,
1908
1908
  "active-index": I.value,
1909
1909
  onResize: R,
@@ -1912,7 +1912,7 @@ const Do = {
1912
1912
  onReset: c
1913
1913
  }, null, 8, ["image-urls", "active-index"]),
1914
1914
  de(o("div", null, [
1915
- (h(!0), F(Ce, null, _e(k.value.buildingOverlays, (S) => (h(), N(Lt, {
1915
+ (h(!0), F(Ce, null, _e(k.value.buildingOverlays, (S) => (h(), N(Po, {
1916
1916
  ref_for: !0,
1917
1917
  ref_key: "overlays",
1918
1918
  ref: D,
@@ -1935,19 +1935,19 @@ const Do = {
1935
1935
  de(o("div", {
1936
1936
  class: "custom-overlay-layer",
1937
1937
  innerHTML: w.customOverlayContent
1938
- }, null, 8, Go), [
1938
+ }, null, 8, Wo), [
1939
1939
  [me, n.value.preloaded]
1940
1940
  ])
1941
1941
  ]),
1942
1942
  _: 1
1943
1943
  }, 8, ["desktop", "mobile"]),
1944
1944
  de(o("div", null, [
1945
- k.value.sceneLongitude ? (h(), N(Ke, {
1945
+ k.value.sceneLongitude ? (h(), N(lt, {
1946
1946
  key: 0,
1947
1947
  class: "north-indicator",
1948
1948
  longitude: k.value.sceneLongitude
1949
1949
  }, null, 8, ["longitude"])) : H("", !0),
1950
- y(it, {
1950
+ y(gt, {
1951
1951
  modelValue: I.value,
1952
1952
  "onUpdate:modelValue": x[2] || (x[2] = (S) => I.value = S),
1953
1953
  "date-selector": a.value,
@@ -1956,7 +1956,7 @@ const Do = {
1956
1956
  ], 512), [
1957
1957
  [me, n.value.preloaded]
1958
1958
  ]),
1959
- w.showCards && A.value ? (h(), N(Ze, {
1959
+ w.showCards && A.value ? (h(), N(ot, {
1960
1960
  key: 0,
1961
1961
  "is-hoverable": g.value,
1962
1962
  pos: i.value,
@@ -1974,14 +1974,14 @@ const Do = {
1974
1974
  ]),
1975
1975
  _: 3
1976
1976
  }, 8, ["is-hoverable", "pos"])) : H("", !0),
1977
- y(He, {
1977
+ y(We, {
1978
1978
  ref_key: "hoverProbe",
1979
1979
  ref: C
1980
1980
  }, null, 512)
1981
1981
  ], 4)) : H("", !0);
1982
1982
  };
1983
1983
  }
1984
- }), It = /* @__PURE__ */ te(Qo, [["__scopeId", "data-v-96bbdc16"]]), zo = /* @__PURE__ */ Q({
1984
+ }), Qo = /* @__PURE__ */ te(Go, [["__scopeId", "data-v-96bbdc16"]]), zo = /* @__PURE__ */ Q({
1985
1985
  __name: "VBuildingChooser",
1986
1986
  props: {
1987
1987
  showCards: { type: Boolean, default: !0 },
@@ -1999,9 +1999,9 @@ const Do = {
1999
1999
  emits: ["goToBuilding", "hoverOverBuilding", "hoverOutBuilding"],
2000
2000
  setup(u, { emit: t }) {
2001
2001
  const e = u, l = t, a = V(
2002
- () => e.useSvg ? At : It
2002
+ () => e.useSvg ? Ho : Qo
2003
2003
  );
2004
- return (n, s) => (h(), N(mt(a.value), {
2004
+ return (n, s) => (h(), N(dt(a.value), {
2005
2005
  "show-cards": n.showCards,
2006
2006
  "color-callback": n.colorCallback,
2007
2007
  "building-callback": n.buildingCallback,
@@ -2015,29 +2015,29 @@ const Do = {
2015
2015
  onGoToBuilding: s[0] || (s[0] = (i) => l("goToBuilding", i)),
2016
2016
  onHoverOverBuilding: s[1] || (s[1] = (i) => l("hoverOverBuilding", i)),
2017
2017
  onHoverOutBuilding: s[2] || (s[2] = (i) => l("hoverOutBuilding", i))
2018
- }, Ot({ _: 2 }, [
2018
+ }, xt({ _: 2 }, [
2019
2019
  _e(Object.keys(n.$slots), (i) => ({
2020
2020
  name: i,
2021
2021
  fn: M((k) => [
2022
- ie(n.$slots, i, pt(ht(k)))
2022
+ ie(n.$slots, i, vt(mt(k)))
2023
2023
  ])
2024
2024
  }))
2025
2025
  ]), 1064, ["show-cards", "color-callback", "building-callback", "cdn-file-resolver", "i18n", "interactive-desktop", "interactive-mobile", "building-chooser-time-of-day", "can-go-to-building-callback", "custom-overlay-content"]));
2026
2026
  }
2027
2027
  });
2028
- var je = {};
2029
- Object.defineProperty(je, "__esModule", {
2028
+ var He = {};
2029
+ Object.defineProperty(He, "__esModule", {
2030
2030
  value: !0
2031
2031
  });
2032
2032
  var qo = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(u) {
2033
2033
  return typeof u;
2034
2034
  } : function(u) {
2035
2035
  return u && typeof Symbol == "function" && u.constructor === Symbol && u !== Symbol.prototype ? "symbol" : typeof u;
2036
- }, Zo = typeof window < "u" && typeof window.document < "u", Xo = typeof process < "u" && process.versions != null && process.versions.node != null, Ko = (typeof self > "u" ? "undefined" : qo(self)) === "object" && self.constructor && self.constructor.name === "DedicatedWorkerGlobalScope", Jo = typeof window < "u" && window.name === "nodejs" || typeof navigator < "u" && (navigator.userAgent.includes("Node.js") || navigator.userAgent.includes("jsdom")), en = typeof Deno < "u" && typeof Deno.version < "u" && typeof Deno.version.deno < "u", tn = je.isBrowser = Zo;
2037
- je.isWebWorker = Ko;
2038
- je.isNode = Xo;
2039
- je.isJsDom = Jo;
2040
- je.isDeno = en;
2036
+ }, Zo = typeof window < "u" && typeof window.document < "u", Xo = typeof process < "u" && process.versions != null && process.versions.node != null, Ko = (typeof self > "u" ? "undefined" : qo(self)) === "object" && self.constructor && self.constructor.name === "DedicatedWorkerGlobalScope", Jo = typeof window < "u" && window.name === "nodejs" || typeof navigator < "u" && (navigator.userAgent.includes("Node.js") || navigator.userAgent.includes("jsdom")), en = typeof Deno < "u" && typeof Deno.version < "u" && typeof Deno.version.deno < "u", tn = He.isBrowser = Zo;
2037
+ He.isWebWorker = Ko;
2038
+ He.isNode = Xo;
2039
+ He.isJsDom = Jo;
2040
+ He.isDeno = en;
2041
2041
  const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
2042
2042
  class: "player-control",
2043
2043
  id: "controls-top-left"
@@ -2078,7 +2078,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
2078
2078
  },
2079
2079
  emits: ["newCameraCallback", "newRotationCallback", "newFloorCallback", "newFovCallback", "playerApiCallback", "newSizeCallback"],
2080
2080
  setup(u, { emit: t }) {
2081
- const e = jt.PlayerV2, l = u, a = t, n = r(void 0), s = r(void 0), i = r(0), k = r(0);
2081
+ const e = Ut.PlayerV2, l = u, a = t, n = r(void 0), s = r(void 0), i = r(0), k = r(0);
2082
2082
  Z(
2083
2083
  () => l.rootUrl,
2084
2084
  async (v) => {
@@ -2314,7 +2314,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
2314
2314
  ]);
2315
2315
  };
2316
2316
  }
2317
- }), dt = /* @__PURE__ */ te(bn, [["__scopeId", "data-v-f8f5088a"]]), yn = {
2317
+ }), ut = /* @__PURE__ */ te(bn, [["__scopeId", "data-v-f8f5088a"]]), yn = {
2318
2318
  style: { width: "24px", height: "24px" },
2319
2319
  viewBox: "0 0 18 16",
2320
2320
  xmlns: "http://www.w3.org/2000/svg"
@@ -2747,7 +2747,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
2747
2747
  _: 1
2748
2748
  }));
2749
2749
  }
2750
- }), qn = /* @__PURE__ */ te(zn, [["__scopeId", "data-v-28008b18"]]), Be = (u) => (ot("data-v-53c0bb27"), u = u(), nt(), u), Zn = {
2750
+ }), qn = /* @__PURE__ */ te(zn, [["__scopeId", "data-v-28008b18"]]), Be = (u) => (Je("data-v-53c0bb27"), u = u(), et(), u), Zn = {
2751
2751
  key: 0,
2752
2752
  class: "tutorial"
2753
2753
  }, Xn = {
@@ -3366,7 +3366,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
3366
3366
  });
3367
3367
  };
3368
3368
  }
3369
- }), Aa = /* @__PURE__ */ te(Ca, [["__scopeId", "data-v-53c0bb27"]]), La = (u) => (ot("data-v-a28b3f8d"), u = u(), nt(), u), Ia = { class: "player-settings-ui" }, Ma = { id: "settings-ui-form" }, Sa = { class: "form-inputs" }, Ea = { class: "setting-label" }, Fa = { class: "setting-label" }, xa = ["max", "min", "step"], Ba = { class: "setting-label" }, Va = { class: "flex-grow-1 flex-shrink-0" }, Ua = ["onUpdate:modelValue"], Da = {
3369
+ }), Aa = /* @__PURE__ */ te(Ca, [["__scopeId", "data-v-53c0bb27"]]), La = (u) => (Je("data-v-a28b3f8d"), u = u(), et(), u), Ia = { class: "player-settings-ui" }, Ma = { id: "settings-ui-form" }, Sa = { class: "form-inputs" }, Ea = { class: "setting-label" }, Fa = { class: "setting-label" }, xa = ["max", "min", "step"], Ba = { class: "setting-label" }, Va = { class: "flex-grow-1 flex-shrink-0" }, Ua = ["onUpdate:modelValue"], Da = {
3370
3370
  key: 3,
3371
3371
  "d-block": "",
3372
3372
  class: "mt-3"
@@ -3593,7 +3593,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
3593
3593
  type: "color",
3594
3594
  onChange: s
3595
3595
  }, null, 40, Ua), [
3596
- [$t, a.value[b].value]
3596
+ [Bt, a.value[b].value]
3597
3597
  ])
3598
3598
  ]),
3599
3599
  o("div", null, [
@@ -3708,7 +3708,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
3708
3708
  class: "rotation-marker-svg",
3709
3709
  viewBox: "0 0 40 40",
3710
3710
  xmlns: "http://www.w3.org/2000/svg"
3711
- }, Wa = /* @__PURE__ */ ft('<defs><radialGradient id="Gradient" cx="0" cy="0" r="0.9" fx="0" fy="0"><stop offset="0%" class="stop1"></stop><stop offset="60%" class="stop2"></stop><stop offset="90%" class="stop3"></stop></radialGradient><linearGradient id="LineGradient" gradientTransform="rotate(90)"><stop offset="0%" class="stop1"></stop><stop offset="75%" class="stop2"></stop><stop offset="100%" class="stop3"></stop></linearGradient></defs>', 1), Ga = ["transform"], Qa = /* @__PURE__ */ ft('<rect id="field-of-view-gradient" x="20" y="20" width="38" height="38" transform="rotate(0)" transform-origin="20 20" fill="url(#Gradient)"></rect><rect class="field-of-view-border" x="20" y="20" width="1" height="25" fill="url(#LineGradient)" transform="rotate(0)" transform-origin="20 20"></rect><rect class="field-of-view-border" x="19" y="19" width="1" height="25" fill="url(#LineGradient)" transform="rotate(-90)" transform-origin="20 20"></rect><circle cx="20" cy="20" r="5" fill="white"></circle><circle cx="20" cy="20" r="3" fill="red"></circle>', 5), za = [
3711
+ }, Wa = /* @__PURE__ */ pt('<defs><radialGradient id="Gradient" cx="0" cy="0" r="0.9" fx="0" fy="0"><stop offset="0%" class="stop1"></stop><stop offset="60%" class="stop2"></stop><stop offset="90%" class="stop3"></stop></radialGradient><linearGradient id="LineGradient" gradientTransform="rotate(90)"><stop offset="0%" class="stop1"></stop><stop offset="75%" class="stop2"></stop><stop offset="100%" class="stop3"></stop></linearGradient></defs>', 1), Ga = ["transform"], Qa = /* @__PURE__ */ pt('<rect id="field-of-view-gradient" x="20" y="20" width="38" height="38" transform="rotate(0)" transform-origin="20 20" fill="url(#Gradient)"></rect><rect class="field-of-view-border" x="20" y="20" width="1" height="25" fill="url(#LineGradient)" transform="rotate(0)" transform-origin="20 20"></rect><rect class="field-of-view-border" x="19" y="19" width="1" height="25" fill="url(#LineGradient)" transform="rotate(-90)" transform-origin="20 20"></rect><circle cx="20" cy="20" r="5" fill="white"></circle><circle cx="20" cy="20" r="3" fill="red"></circle>', 5), za = [
3712
3712
  Qa
3713
3713
  ], qa = /* @__PURE__ */ Q({
3714
3714
  __name: "VRotationMarker",
@@ -3757,7 +3757,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
3757
3757
  c(), g(), f();
3758
3758
  const b = document.getElementById("moveableDiv");
3759
3759
  b && (k.value = new ResizeObserver(f).observe(b));
3760
- }), Ht(() => {
3760
+ }), Vt(() => {
3761
3761
  c(), g();
3762
3762
  }), Oe(() => {
3763
3763
  k.value && k.value.unobserve(document.getElementById("moveableDiv"));
@@ -3832,7 +3832,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
3832
3832
  ])
3833
3833
  ]));
3834
3834
  }
3835
- }), Ja = /* @__PURE__ */ te(Ka, [["__scopeId", "data-v-503cace2"]]), el = (u) => (ot("data-v-06db6e63"), u = u(), nt(), u), tl = /* @__PURE__ */ el(() => /* @__PURE__ */ o("div", { id: "filler-div" }, null, -1)), ol = {
3835
+ }), Ja = /* @__PURE__ */ te(Ka, [["__scopeId", "data-v-503cace2"]]), el = (u) => (Je("data-v-06db6e63"), u = u(), et(), u), tl = /* @__PURE__ */ el(() => /* @__PURE__ */ o("div", { id: "filler-div" }, null, -1)), ol = {
3836
3836
  class: "moveable-body",
3837
3837
  id: "moveableDivHeader"
3838
3838
  }, nl = { class: "moveable-footer" }, al = /* @__PURE__ */ Q({
@@ -3915,7 +3915,7 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
3915
3915
  class: "minimap-compass",
3916
3916
  style: re({ scale: l.scale })
3917
3917
  }, [
3918
- y(Ke, {
3918
+ y(lt, {
3919
3919
  class: "north-indicator",
3920
3920
  longitude: e.value
3921
3921
  }, null, 8, ["longitude"])
@@ -4089,12 +4089,12 @@ const on = { id: "player-wrapper" }, nn = { id: "player-sizer" }, an = {
4089
4089
  _: 1
4090
4090
  }));
4091
4091
  }
4092
- }), vt = /* @__PURE__ */ te(pl, [["__scopeId", "data-v-b903220b"]]);
4092
+ }), ct = /* @__PURE__ */ te(pl, [["__scopeId", "data-v-b903220b"]]);
4093
4093
  class hl {
4094
4094
  constructor(t, e) {
4095
- J(this, "_doc");
4096
- J(this, "_elemId");
4097
- J(this, "_state");
4095
+ ee(this, "_doc");
4096
+ ee(this, "_elemId");
4097
+ ee(this, "_state");
4098
4098
  this._doc = t, this._elemId = e, this._state = { isActive: !1 };
4099
4099
  }
4100
4100
  get isActive() {
@@ -4130,19 +4130,19 @@ class hl {
4130
4130
  this._state.isActive = t;
4131
4131
  }
4132
4132
  }
4133
- function We(u) {
4133
+ function Ye(u) {
4134
4134
  return ("0" + u).slice(-2);
4135
4135
  }
4136
4136
  function fl() {
4137
4137
  const u = /* @__PURE__ */ new Date();
4138
4138
  return [
4139
4139
  u.getFullYear().toString(),
4140
- We(u.getMonth() + 1),
4141
- We(u.getDate()),
4140
+ Ye(u.getMonth() + 1),
4141
+ Ye(u.getDate()),
4142
4142
  " ",
4143
- We(u.getHours()),
4144
- We(u.getMinutes()),
4145
- We(u.getSeconds())
4143
+ Ye(u.getHours()),
4144
+ Ye(u.getMinutes()),
4145
+ Ye(u.getSeconds())
4146
4146
  ].join("");
4147
4147
  }
4148
4148
  function gl() {
@@ -4151,7 +4151,7 @@ function gl() {
4151
4151
  class wl {
4152
4152
  // private cameraParams: any
4153
4153
  constructor(t, e) {
4154
- J(this, "data");
4154
+ ee(this, "data");
4155
4155
  this.data = t;
4156
4156
  }
4157
4157
  download(t = null) {
@@ -4217,8 +4217,8 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4217
4217
  setup(u, { emit: t }) {
4218
4218
  const e = u, l = t, a = r(!1), n = r(!1), s = r(), i = r(), k = r(), p = r(), v = r(), m = r(0), I = r(), _ = r(), L = r(), C = r(0), E = r(0), D = r(0), g = r(!1), A = r(!1), R = r(), c = r(!1), f = r(new hl(document, "player-wrapper")), b = V(() => !!e.fileLoader), B = V(() => {
4219
4219
  let d = `${e.cdnRoot}/${e.projectSlug}`;
4220
- return e.fileLoader && (d = ""), Vt(d);
4221
- }), U = V(() => `${B.value}/${$.value}/${e.apartmentId}`), $ = V(() => I.value), q = V(() => i.value ? i.value.cameras : []), ee = V(() => {
4220
+ return e.fileLoader && (d = ""), It(d);
4221
+ }), U = V(() => `${B.value}/${$.value}/${e.apartmentId}`), $ = V(() => I.value), q = V(() => i.value ? i.value.cameras : []), J = V(() => {
4222
4222
  if (i.value) {
4223
4223
  const d = i.value.cameras.map(
4224
4224
  (G) => G.floorLevel
@@ -4245,10 +4245,10 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4245
4245
  (d) => d.archetypeID === I.value
4246
4246
  )), W = V(() => k.value ? k.value.cameras.map((d) => ({
4247
4247
  ...d,
4248
- thumbnailUrl: et(
4248
+ thumbnailUrl: Xe(
4249
4249
  `${B.value}/${$.value}/${e.apartmentId}/thumbs/200/${d.id}.jpg`
4250
4250
  ),
4251
- imageUrl: et(
4251
+ imageUrl: Xe(
4252
4252
  `${B.value}/${$.value}/${e.apartmentId}/images/1600/${d.id}.jpg`
4253
4253
  )
4254
4254
  })) : []), S = V(() => !W.value || !W.value[m.value] ? "" : W.value[m.value].imageUrl), Y = V(() => {
@@ -4264,7 +4264,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4264
4264
  return p.value.storeys[w.value];
4265
4265
  }), ne = V(() => i.value && i.value.timeInHours), ue = V(() => {
4266
4266
  if (i.value && i.value.timeInHours && e.showTimeOfDay)
4267
- return Bt(i.value.timeInHours);
4267
+ return Lt(i.value.timeInHours);
4268
4268
  }), ve = V(() => R.value ? R.value : `${B.value}/${$.value}/${e.apartmentId}/minimap/sunsim0_13.jpg`);
4269
4269
  De(
4270
4270
  "i18n",
@@ -4293,7 +4293,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4293
4293
  s.value = await Me(B.value);
4294
4294
  }
4295
4295
  async function fe() {
4296
- if (i.value = await Pe(
4296
+ if (i.value = await je(
4297
4297
  B.value,
4298
4298
  $.value,
4299
4299
  e.apartmentId
@@ -4352,7 +4352,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4352
4352
  return;
4353
4353
  }
4354
4354
  }
4355
- async function Pe(d, O, G) {
4355
+ async function je(d, O, G) {
4356
4356
  try {
4357
4357
  return await Qe(
4358
4358
  `${d}/${O}/${G}/apartment.json`
@@ -4396,7 +4396,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4396
4396
  let d = m.value + 1;
4397
4397
  d >= W.value.length && (d = 0), m.value = d, P(W.value[m.value].id);
4398
4398
  }
4399
- function Ne() {
4399
+ function Pe() {
4400
4400
  let d = m.value - 1;
4401
4401
  d < 0 && (d = W.value.length - 1), m.value = d, P(W.value[m.value].id);
4402
4402
  }
@@ -4424,51 +4424,51 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4424
4424
  }
4425
4425
  function ke(d, O) {
4426
4426
  }
4427
- function rt(d) {
4427
+ function it(d) {
4428
4428
  v.value = d, e.playerSettings && v.value.updateSettings(e.playerSettings);
4429
4429
  }
4430
- function Mt() {
4430
+ function bt() {
4431
4431
  f.value.toggle(), window.scrollTo({ top: 150, behavior: "smooth" });
4432
4432
  }
4433
- function St() {
4433
+ function yt() {
4434
4434
  g.value = !g.value;
4435
4435
  }
4436
- function ut(d) {
4436
+ function st(d) {
4437
4437
  R.value = d;
4438
4438
  }
4439
- async function Et() {
4440
- const d = 180 / Math.PI, O = await v.value.takePhoto(), G = v.value.getRotationEuler(), ae = v.value.getCurrentCamera(), Ue = new wl(O, ae), Ut = [
4439
+ async function _t() {
4440
+ const d = 180 / Math.PI, O = await v.value.takePhoto(), G = v.value.getRotationEuler(), ae = v.value.getCurrentCamera(), Ue = new wl(O, ae), Mt = [
4441
4441
  G.x * d,
4442
4442
  G.y * d,
4443
4443
  G.z * d
4444
4444
  ];
4445
- return l("onSnapshot", Ue, Ut), Ue;
4445
+ return l("onSnapshot", Ue, Mt), Ue;
4446
4446
  }
4447
- function et(d) {
4447
+ function Xe(d) {
4448
4448
  let O = d;
4449
4449
  return b.value ? O = `${e.fileLoader.getURL(d)}` : e.adminMode && (O = O + `?v=${Date.now()}`), O;
4450
4450
  }
4451
4451
  async function Qe(d) {
4452
- const O = et(d);
4452
+ const O = Xe(d);
4453
4453
  try {
4454
- return (await gt.get(O)).data;
4454
+ return (await ht.get(O)).data;
4455
4455
  } catch (G) {
4456
4456
  throw new Error(G);
4457
4457
  }
4458
4458
  }
4459
- function Ft(d) {
4459
+ function Ct(d) {
4460
4460
  v.value.updateSettings(d);
4461
4461
  }
4462
- function xt(d) {
4462
+ function At(d) {
4463
4463
  l("saveSettings", d);
4464
4464
  }
4465
- function Bt(d) {
4465
+ function Lt(d) {
4466
4466
  if (d === void 0)
4467
4467
  return null;
4468
4468
  const O = Math.floor(d), G = Math.floor((O - d) * 60);
4469
4469
  return { hours: O, minutes: G };
4470
4470
  }
4471
- function Vt(d) {
4471
+ function It(d) {
4472
4472
  return d.replace(/\/$/, "");
4473
4473
  }
4474
4474
  return (d, O) => {
@@ -4476,7 +4476,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4476
4476
  return h(), F("div", kl, [
4477
4477
  n.value ? (h(), F("div", bl, "Error loading the player!!")) : H("", !0),
4478
4478
  o("div", yl, [
4479
- !f.value.isActive && p.value && L.value && K.value && A.value ? (h(), N(vt, {
4479
+ !f.value.isActive && p.value && L.value && K.value && A.value ? (h(), N(ct, {
4480
4480
  key: 0,
4481
4481
  allCameras: q.value,
4482
4482
  rootUrl: U.value,
@@ -4487,7 +4487,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4487
4487
  currentCamera: L.value,
4488
4488
  minimapCamera: K.value,
4489
4489
  onClose: O[0] || (O[0] = (ae) => A.value = !1),
4490
- onSetBackgroundImage: ut
4490
+ onSetBackgroundImage: st
4491
4491
  }, null, 8, ["allCameras", "rootUrl", "level", "backgroundImage", "minimapJSON", "rotation", "currentCamera", "minimapCamera"])) : H("", !0),
4492
4492
  $.value && _.value ? (h(), F("div", _l, [
4493
4493
  y(fn, {
@@ -4505,7 +4505,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4505
4505
  onNewFloorCallback: Fe,
4506
4506
  onNewFovCallback: we,
4507
4507
  onNewSizeCallback: ke,
4508
- onPlayerApiCallback: rt
4508
+ onPlayerApiCallback: it
4509
4509
  }, {
4510
4510
  "slideshow-image": M(() => [
4511
4511
  g.value ? (h(), N(Tn, {
@@ -4534,18 +4534,18 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4534
4534
  }, null, 512)), [
4535
4535
  [me, c.value]
4536
4536
  ]) : H("", !0),
4537
- c.value && d.showFloorLevel && ee.value.length > 1 ? (h(), N(In, {
4537
+ c.value && d.showFloorLevel && J.value.length > 1 ? (h(), N(In, {
4538
4538
  key: 2,
4539
4539
  level: E.value,
4540
- "floor-levels": ee.value,
4540
+ "floor-levels": J.value,
4541
4541
  onLevel: Fe
4542
4542
  }, null, 8, ["level", "floor-levels"])) : H("", !0),
4543
4543
  c.value && d.adminMode && a.value ? (h(), F("div", Cl, [
4544
4544
  y(Na, {
4545
4545
  "project-slug": d.projectSlug,
4546
4546
  initialSettings: d.playerSettings,
4547
- onUpdateSettings: Ft,
4548
- onSaveSettings: xt
4547
+ onUpdateSettings: Ct,
4548
+ onSaveSettings: At
4549
4549
  }, null, 8, ["project-slug", "initialSettings"])
4550
4550
  ])) : H("", !0)
4551
4551
  ]),
@@ -4575,7 +4575,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4575
4575
  density: "comfortable",
4576
4576
  elevation: "3",
4577
4577
  icon: "mdi-chevron-left",
4578
- onClick: Ne
4578
+ onClick: Pe
4579
4579
  })) : H("", !0)
4580
4580
  ]),
4581
4581
  _: 1
@@ -4586,7 +4586,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4586
4586
  project: B.value,
4587
4587
  onCloseTutorial: O[3] || (O[3] = (ae) => c.value = !0)
4588
4588
  }, null, 8, ["project"]),
4589
- f.value.isActive && p.value && L.value && K.value && A.value ? (h(), N(vt, {
4589
+ f.value.isActive && p.value && L.value && K.value && A.value ? (h(), N(ct, {
4590
4590
  key: 0,
4591
4591
  allCameras: q.value,
4592
4592
  rootUrl: U.value,
@@ -4597,7 +4597,7 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4597
4597
  minimapCamera: K.value,
4598
4598
  level: w.value,
4599
4599
  onClose: O[4] || (O[4] = (ae) => A.value = !1),
4600
- onSetBackgroundImage: ut
4600
+ onSetBackgroundImage: st
4601
4601
  }, null, 8, ["allCameras", "rootUrl", "minimapJSON", "backgroundImage", "rotation", "currentCamera", "minimapCamera", "level"])) : H("", !0)
4602
4602
  ]),
4603
4603
  "center-right": M(() => [
@@ -4619,14 +4619,14 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4619
4619
  key: 0,
4620
4620
  isFullScreen: f.value.isActive,
4621
4621
  class: "btn-fullscreen",
4622
- onToggleFullscreen: Mt
4622
+ onToggleFullscreen: bt
4623
4623
  }, null, 8, ["isFullScreen"])) : H("", !0),
4624
4624
  c.value && d.showSnapshot ? (h(), F("div", Ll, [
4625
4625
  y(G, {
4626
4626
  density: "comfortable",
4627
4627
  elevation: "3",
4628
4628
  icon: "mdi-camera",
4629
- onClick: Et
4629
+ onClick: _t
4630
4630
  })
4631
4631
  ])) : H("", !0),
4632
4632
  c.value && d.showShare && !f.value.isActive ? (h(), F("div", Il, [
@@ -4638,15 +4638,15 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4638
4638
  d.displayViewModeSwitch ? (h(), N(Gn, {
4639
4639
  key: 0,
4640
4640
  "show-static-image": g.value,
4641
- onToggle: St
4641
+ onToggle: yt
4642
4642
  }, null, 8, ["show-static-image"])) : H("", !0),
4643
- c.value && f.value.isActive ? (h(), N(dt, {
4643
+ c.value && f.value.isActive ? (h(), N(ut, {
4644
4644
  key: 1,
4645
4645
  class: ye([f.value.isActive ? "full-screen" : ""]),
4646
4646
  thumbnails: W.value,
4647
4647
  active: m.value,
4648
4648
  onNext: Ae,
4649
- onPrevious: Ne,
4649
+ onPrevious: Pe,
4650
4650
  onGoto: j
4651
4651
  }, null, 8, ["class", "thumbnails", "active"])) : H("", !0)
4652
4652
  ])) : H("", !0)
@@ -4661,12 +4661,12 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4661
4661
  ]),
4662
4662
  _: 1
4663
4663
  }, 8, ["file-loader", "style", "showStaticImage", "isFullScreen", "rootUrl", "currentCameraId", "mouse-sensitivity", "is-in-iframe"]),
4664
- d.showCarousel && k.value ? (h(), N(dt, {
4664
+ d.showCarousel && k.value ? (h(), N(ut, {
4665
4665
  key: 0,
4666
4666
  thumbnails: W.value,
4667
4667
  active: m.value,
4668
4668
  onNext: Ae,
4669
- onPrevious: Ne,
4669
+ onPrevious: Pe,
4670
4670
  onGoto: j
4671
4671
  }, null, 8, ["thumbnails", "active"])) : H("", !0)
4672
4672
  ])) : H("", !0)
@@ -4674,71 +4674,14 @@ const kl = { class: "virtual-tour-wrapper" }, bl = {
4674
4674
  ]);
4675
4675
  };
4676
4676
  }
4677
- }), El = /* @__PURE__ */ te(Sl, [["__scopeId", "data-v-8e6a405e"]]), Fl = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4678
- __proto__: null,
4679
- VApartmentChooser: yo,
4680
- VApartmentChooserNavigation: bt,
4681
- VApartmentChooserRaster: wt,
4682
- VApartmentChooserRotator: yt,
4683
- VApartmentChooserSvg: kt,
4684
- VBuildingChooser: zo,
4685
- VBuildingChooserRaster: It,
4686
- VBuildingChooserRasterOverlay: Lt,
4687
- VBuildingChooserSceneImageStack: st,
4688
- VBuildingChooserSunSimControl: it,
4689
- VBuildingChooserSvg: At,
4690
- VFloatingCard: Ze,
4691
- VHoverProbe: He,
4692
- VNorthDirection: Ke,
4693
- VVirtualTour: El,
4694
- VZoomBox: Xe
4695
- }, Symbol.toStringTag, { value: "Module" }));
4696
- class Ul {
4697
- constructor(t) {
4698
- J(this, "_data");
4699
- this._data = t;
4700
- }
4701
- getPixel(t, e) {
4702
- const l = this._data[t][e];
4703
- if (l !== " ") {
4704
- const a = Number.parseInt(l);
4705
- return [a, a, a, 255];
4706
- } else
4707
- return [0, 0, 0, 0];
4677
+ }), El = /* @__PURE__ */ te(Sl, [["__scopeId", "data-v-8e6a405e"]]), Vl = {
4678
+ install: function(t) {
4679
+ t.component("VApartmentChooser", wo), t.component("VBuildingChooser", zo), t.component("VVirtualTour", El);
4708
4680
  }
4709
- }
4710
- const Dl = function(t) {
4711
- Object.entries(Fl).forEach(([e, l]) => {
4712
- t.component(e, l);
4713
- });
4714
4681
  };
4715
4682
  export {
4716
- tt as BatchLoadTracker,
4717
- Re as BuildingMap,
4718
- Ct as BuildingPickerResourceProvider,
4719
- co as BuildingViewerModel,
4720
- Te as CanvasRaster,
4721
- Je as DayOfYearSelector,
4722
- Le as I18N,
4723
- $e as ResourceLoader,
4724
- at as RotationStep,
4725
- Ul as SampleRaster,
4726
- qt as SceneRotator,
4727
- yo as VApartmentChooser,
4728
- bt as VApartmentChooserNavigation,
4729
- wt as VApartmentChooserRaster,
4730
- yt as VApartmentChooserRotator,
4731
- kt as VApartmentChooserSvg,
4683
+ wo as VApartmentChooser,
4732
4684
  zo as VBuildingChooser,
4733
- It as VBuildingChooserRaster,
4734
- Lt as VBuildingChooserRasterOverlay,
4735
- st as VBuildingChooserSceneImageStack,
4736
- it as VBuildingChooserSunSimControl,
4737
- At as VBuildingChooserSvg,
4738
- Ze as VFloatingCard,
4739
- He as VHoverProbe,
4740
- Ke as VNorthDirection,
4741
4685
  El as VVirtualTour,
4742
- Xe as VZoomBox,
4743
- Dl as default
4686
+ Vl as default
4744
4687
  };