@expofp/floorplan 3.7.2 → 3.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/browser/Button-aO_HokSj.js +204 -0
  2. package/dist/browser/{CookieConsent-CkkD8OHp.js → CookieConsent-BU0G4gg0.js} +8 -8
  3. package/dist/browser/{Debug-BrHTtyi7.js → Debug-KQpdRJNF.js} +8 -7
  4. package/dist/browser/{Demo-CSTu7D1l.js → Demo-MgosITXW.js} +12 -11
  5. package/dist/browser/{Free-AIxncv0_.js → Free-Cjw8czsd.js} +12 -11
  6. package/dist/browser/{Gallery-DUrcB2Hy.js → Gallery-B44SQVmW.js} +10 -10
  7. package/dist/browser/{GpsLoader-pgJ3wuc6.js → GpsLoader-CsquDv0q.js} +30 -29
  8. package/dist/browser/KioskStore-CmfnbNW2.js +235 -0
  9. package/dist/browser/{MaplibreAdapter-D4hkJUuG.js → MaplibreAdapter-D1SHFdBf.js} +109 -108
  10. package/dist/browser/{Modal-BmKq1A8F.js → Modal-ByxKticO.js} +10 -10
  11. package/dist/browser/{PermissionNotice-DxFR3SY4.js → PermissionNotice-uV0eU__u.js} +7 -7
  12. package/dist/browser/{SetKioskMode-C2BbFaaM.js → SetKioskMode-Bo-NIDqb.js} +19 -18
  13. package/dist/browser/ShowKiosk-YEhx2mBF.js +27 -0
  14. package/dist/browser/{TouchHand-B7Gid0ls.js → TouchHand-DP0lpX80.js} +4 -4
  15. package/dist/browser/{ViewerMenuPanel-CdYO6Ot1.js → ViewerMenuPanel-D7jBA4RW.js} +19 -18
  16. package/dist/browser/{add-debug-secret-listener-Bc2yTTBY.js → add-debug-secret-listener-BEnYBbzM.js} +1 -1
  17. package/dist/browser/{boolean-editor-aHLubje4.js → boolean-editor-DQhkQ0fL.js} +9 -9
  18. package/dist/browser/{bootIntercom-CqV4IGcS.js → bootIntercom-CJo2kE-M.js} +3 -3
  19. package/dist/browser/{browser-BDLTg20Y.js → browser-DYIvO46m.js} +2 -2
  20. package/dist/browser/bundle.json +61 -58
  21. package/dist/browser/{classnames-ngmqxqQM.js → classnames-C5yzF4HX.js} +2 -2
  22. package/dist/browser/{client-sAA6D0bl.js → client-DfLygbSM.js} +4 -4
  23. package/dist/browser/{components-DxUnx2fx.js → components-BIXJFvok.js} +1666 -1665
  24. package/dist/browser/{createWayfinding-BeI3-x8g.js → createWayfinding-C_0oMFs1.js} +348 -348
  25. package/dist/browser/{debug-overlay-hLm6UgxA.js → debug-overlay-46IP0vsS.js} +10 -10
  26. package/dist/browser/{debug-ui-DZ3tn3fo.js → debug-ui-feLw_onf.js} +6 -6
  27. package/dist/browser/{dist-RBsN5IVo.js → dist-BHUDHZP4.js} +3 -3
  28. package/dist/browser/{dist-B09t6czH.js → dist-ExsqDvEL.js} +5 -5
  29. package/dist/browser/{dist-CRcolEwF.js → dist-im0AIvbY.js} +6 -6
  30. package/dist/browser/{efp-debug-init-B5ItQkLj.js → efp-debug-init-DGPhG_bU.js} +2 -2
  31. package/dist/browser/{enum-editor-CUh-_kSv.js → enum-editor-C4ySP3nc.js} +11 -11
  32. package/dist/browser/{event-not-found-DFg5mwbq.js → event-not-found-DG6AnCnV.js} +1 -1
  33. package/dist/browser/{exports-DbA4--a7.js → exports-DmpoD0fr.js} +1 -1
  34. package/dist/browser/{favicon-ruW3WAVt.js → favicon-Br5ml5iu.js} +1 -1
  35. package/dist/browser/{fetch-retry.umd-CGE75NS5.js → fetch-retry.umd-bkAOBUt_.js} +2 -2
  36. package/dist/browser/{flex-Ompowu3M.js → flex-Dwpw7MGM.js} +5 -5
  37. package/dist/browser/{floorplan.loader-l2aNftbI.js → floorplan.loader-CPmefcXe.js} +661 -698
  38. package/dist/browser/{floorplan.ready-CI29paDM.js → floorplan.ready-oUOSRm6R.js} +344 -305
  39. package/dist/browser/{fuse-BEjRK6fK.js → fuse-DP7UCs2S.js} +2 -2
  40. package/dist/browser/{i18n-Cv7u46Kc.js → i18n-Cj30oNjj.js} +3 -3
  41. package/dist/browser/index.js +11 -11
  42. package/dist/browser/{storage-CveWsSQC.js → is-debug-B8x-fro_.js} +7 -24
  43. package/dist/browser/{jsx-runtime-Cd-5cs8d.js → jsx-runtime-D7QyoJp1.js} +2 -2
  44. package/dist/browser/{lib-CVT3RpU0.js → lib-B8nz5HHo.js} +4 -4
  45. package/dist/browser/{main-B7rO04Ru.js → main-BwVw9SUe.js} +1 -1
  46. package/dist/browser/{mobx-CmXg9qBa.js → mobx-D8yc9fAI.js} +4 -4
  47. package/dist/browser/{particles.min-5m7QV5vA.js → particles.min-CUAgfec9.js} +2 -2
  48. package/dist/browser/{prop-types-fzqk8XTC.js → prop-types-CvfWKQCy.js} +2 -2
  49. package/dist/browser/{react-68YGwxL1.js → react-C2tVGrqu.js} +2 -2
  50. package/dist/browser/{react-dom-CpUFygXt.js → react-dom-B_sXID-1.js} +3 -3
  51. package/dist/browser/{reset-all-settings-6gkdxdE4.js → reset-all-settings-Be_n1oxb.js} +7 -7
  52. package/dist/browser/{rolldown-runtime-CBPdtkTI.js → rolldown-runtime-DVIs1q9q.js} +1 -1
  53. package/dist/browser/{settings-vKSgvNe6.js → settings-B8veQbld.js} +2 -2
  54. package/dist/browser/{settings-item-BkC5gNNZ.js → settings-item-CdMRi2N0.js} +6 -6
  55. package/dist/browser/{store-C9IczNWg.js → store-CtVf7eNc.js} +6451 -6598
  56. package/dist/browser/{string-editor-DxCmy8-a.js → string-editor-gjrsepUM.js} +7 -7
  57. package/dist/browser/{theme-CD1xwI4C.js → theme-B0UtMBz_.js} +8 -8
  58. package/dist/browser/{ui-CAdbLhWa.js → ui-BBu8YAw8.js} +8 -8
  59. package/dist/browser/{useRenderTarget-CHkfvzge.js → useRenderTarget-CiijuasV.js} +5 -5
  60. package/dist/esm/components/Kiosk/KioskStore.d.ts +8 -7
  61. package/dist/esm/components/Kiosk/KioskStore.js +1 -1
  62. package/dist/esm/components/Kiosk/SetKiosk/constants.d.ts +1 -0
  63. package/dist/esm/components/Kiosk/SetKiosk/constants.js +1 -1
  64. package/dist/esm/components/Kiosk/SetKiosk/types.d.ts +1 -1
  65. package/dist/esm/components/Kiosk/kioskApi.d.ts +4 -0
  66. package/dist/esm/components/Kiosk/kioskApi.js +1 -0
  67. package/dist/esm/floorplan.loader.js +1 -1
  68. package/dist/esm/floorplan.ready.js +1 -1
  69. package/dist/esm/store/index.js +1 -1
  70. package/dist/esm/tools/track-event.js +1 -1
  71. package/package.json +3 -3
  72. package/dist/browser/KioskStore-D5MdQYvR.js +0 -232
  73. package/dist/browser/ShowKiosk-9IO_9oCi.js +0 -26
  74. package/dist/esm/components/Kiosk/requestKioskKey.d.ts +0 -3
  75. package/dist/esm/components/Kiosk/requestKioskKey.js +0 -1
@@ -1,17 +1,17 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.7.2" };
4
+ e.SENTRY_RELEASE = { id: "3.7.4" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "c13b5d2b-c064-4095-8a35-7ce6c1158176", e._sentryDebugIdIdentifier = "sentry-dbid-c13b5d2b-c064-4095-8a35-7ce6c1158176");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-CBPdtkTI.js";
10
- import { t } from "./react-68YGwxL1.js";
11
- import { t as n } from "./jsx-runtime-Cd-5cs8d.js";
12
- import { D as r, i, l as a, n as o, s, u as c, y as l } from "./flex-Ompowu3M.js";
13
- import { t as u } from "./classnames-ngmqxqQM.js";
14
- import { t as d } from "./settings-item-BkC5gNNZ.js";
9
+ import { r as e } from "./rolldown-runtime-DVIs1q9q.js";
10
+ import { t } from "./react-C2tVGrqu.js";
11
+ import { t as n } from "./jsx-runtime-D7QyoJp1.js";
12
+ import { D as r, i, l as a, n as o, s, u as c, y as l } from "./flex-Dwpw7MGM.js";
13
+ import { t as u } from "./classnames-C5yzF4HX.js";
14
+ import { t as d } from "./settings-item-CdMRi2N0.js";
15
15
  //#region ../../node_modules/.pnpm/@radix-ui+themes@3.3.0_@types+react-dom@19.2.3_@types+react@19.2.17__@types+react@19.2._925f851475345a9e5e368d312bb98178/node_modules/@radix-ui/themes/dist/esm/components/text-field.props.js
16
16
  var f = {
17
17
  size: {
@@ -1,18 +1,18 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.7.2" };
4
+ e.SENTRY_RELEASE = { id: "3.7.4" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "14cfe74b-e711-4201-812b-ad94b4330a84", e._sentryDebugIdIdentifier = "sentry-dbid-14cfe74b-e711-4201-812b-ad94b4330a84");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-CBPdtkTI.js";
10
- import { t } from "./react-68YGwxL1.js";
11
- import { t as n } from "./jsx-runtime-Cd-5cs8d.js";
12
- import { t as r } from "./react-dom-CpUFygXt.js";
13
- import { C as i, E as a, O as o, T as s, _ as c, o as l, v as u, w as d } from "./flex-Ompowu3M.js";
14
- import { c as f, i as p, n as m, o as h, r as g, s as _, t as v } from "./dist-CRcolEwF.js";
15
- import { t as y } from "./classnames-ngmqxqQM.js";
9
+ import { r as e } from "./rolldown-runtime-DVIs1q9q.js";
10
+ import { t } from "./react-C2tVGrqu.js";
11
+ import { t as n } from "./jsx-runtime-D7QyoJp1.js";
12
+ import { t as r } from "./react-dom-B_sXID-1.js";
13
+ import { C as i, E as a, O as o, T as s, _ as c, o as l, v as u, w as d } from "./flex-Dwpw7MGM.js";
14
+ import { c as f, i as p, n as m, o as h, r as g, s as _, t as v } from "./dist-im0AIvbY.js";
15
+ import { t as y } from "./classnames-C5yzF4HX.js";
16
16
  //#region ../../node_modules/.pnpm/@radix-ui+react-visually-hidden@1.2.3_@types+react-dom@19.2.3_@types+react@19.2.17__@ty_070bcfa32421a5876e7dcb93369fcbee/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
17
17
  var b = /* @__PURE__ */ e(r(), 1), x = /* @__PURE__ */ e(t(), 1), S = n(), C = Object.freeze({
18
18
  position: "absolute",
@@ -1,17 +1,17 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.7.2" };
4
+ e.SENTRY_RELEASE = { id: "3.7.4" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "5091f250-052d-4365-8535-fbf8bf11a38b", e._sentryDebugIdIdentifier = "sentry-dbid-5091f250-052d-4365-8535-fbf8bf11a38b");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-CBPdtkTI.js";
10
- import { a as t, r as n } from "./reset-all-settings-6gkdxdE4.js";
11
- import { t as r } from "./jsx-runtime-Cd-5cs8d.js";
12
- import "./settings-vKSgvNe6.js";
13
- import { t as i } from "./browser-BDLTg20Y.js";
14
- import { t as a } from "./add-debug-secret-listener-Bc2yTTBY.js";
9
+ import { r as e } from "./rolldown-runtime-DVIs1q9q.js";
10
+ import { a as t, r as n } from "./reset-all-settings-Be_n1oxb.js";
11
+ import { t as r } from "./jsx-runtime-D7QyoJp1.js";
12
+ import "./settings-B8veQbld.js";
13
+ import { t as i } from "./browser-DYIvO46m.js";
14
+ import { t as a } from "./add-debug-secret-listener-BEnYBbzM.js";
15
15
  //#region ../debug/src/lib/ui/render-debug-ui.tsx
16
16
  var o = /* @__PURE__ */ e(i(), 1), s = r(), c = !1;
17
17
  function l() {
@@ -26,7 +26,7 @@ function l() {
26
26
  }
27
27
  });
28
28
  let i = async (t) => {
29
- let { DebugUi: n } = await import("./debug-ui-DZ3tn3fo.js"), { createRoot: i } = await import("./client-sAA6D0bl.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
29
+ let { DebugUi: n } = await import("./debug-ui-feLw_onf.js"), { createRoot: i } = await import("./client-DfLygbSM.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
30
30
  document.body.appendChild(a), i(a).render(/* @__PURE__ */ (0, s.jsx)(n, {
31
31
  useDebugButtonState: r.useState,
32
32
  open: t
@@ -1,14 +1,14 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.7.2" };
4
+ e.SENTRY_RELEASE = { id: "3.7.4" };
5
5
  var t = new e.Error().stack;
6
- t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "984e0491-e905-4403-8383-c156857f4f3c", e._sentryDebugIdIdentifier = "sentry-dbid-984e0491-e905-4403-8383-c156857f4f3c");
6
+ t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "6b81f440-81dc-47f4-a309-d96d34e3099c", e._sentryDebugIdIdentifier = "sentry-dbid-6b81f440-81dc-47f4-a309-d96d34e3099c");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-CBPdtkTI.js";
10
- import { t } from "./react-68YGwxL1.js";
11
- import { s as n } from "./store-C9IczNWg.js";
9
+ import { r as e } from "./rolldown-runtime-DVIs1q9q.js";
10
+ import { t } from "./react-C2tVGrqu.js";
11
+ import { s as n } from "./store-CtVf7eNc.js";
12
12
  //#region src/utils/getRenderTargetFromRoot.ts
13
13
  var r = /* @__PURE__ */ e(t(), 1);
14
14
  function i(e) {
@@ -1,11 +1,12 @@
1
- import { Kiosk, StatusMessage } from "./SetKiosk";
2
- import { AlertProps } from "../../ui/Alert";
1
+ import type { AlertProps } from "../../ui/Alert";
2
+ import type { Kiosk, StatusMessage } from "./SetKiosk";
3
+ import type { SetKioskChangeEvent } from "./SetKiosk/types";
3
4
  declare class KioskStore {
4
5
  get kiosk(): Kiosk;
5
- setKiosk(kiosk: Kiosk): void;
6
+ setKiosk(kiosk: Kiosk | null): void;
6
7
  get renderer(): import("@expofp/renderer").Renderer | null;
7
8
  private getCameraState;
8
- savedKiosk: Kiosk;
9
+ savedKiosk: Kiosk | null;
9
10
  get hasUnsavedChanges(): boolean;
10
11
  statusMessages: StatusMessage[];
11
12
  addStatusMessage(message: Omit<AlertProps, "closeLabel">): void;
@@ -13,14 +14,14 @@ declare class KioskStore {
13
14
  statusMessageTimer: number;
14
15
  startCleanupMessages(): void;
15
16
  resetCamera(): Promise<void>;
16
- restoreData(): Kiosk;
17
+ restoreData(): Kiosk | undefined;
17
18
  handleSetupReady(): void;
18
19
  handleClose(): void;
19
20
  handleDelete(): void;
20
21
  handleSave(): void;
21
22
  delayChange(cb: () => void): void;
22
- handleChange(event: any): void;
23
- initialPtScale: any;
23
+ handleChange(event: SetKioskChangeEvent): void;
24
+ initialPtScale?: number;
24
25
  setInitialPtScale(ptscale: number): void;
25
26
  handleClick(point: {
26
27
  x: number;
@@ -1 +1 @@
1
- import{__esDecorate as s,__runInitializers as d}from"tslib";import{action as r,computed as u,observable as O,runInAction as j,toJS as c}from"mobx";import{removeKiosk as A,getSavedKiosk as E,saveKiosk as X}from"./SetKiosk";import a from"../../store";import{isPointVisible as Y}from"../Map/visibleArea";import{areLayersEnabled as q}from"../../utils/areLayersEnabled";import{t as m}from"../../utils/i18n";let B=(()=>{let i=[],k,g,S,f,p=[],v=[],_,C,K=[],M=[],b,y,D,P,I,F,z,N,x,T,U,w,R;return class{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;k=[u],g=[r],S=[u],f=[O],_=[u],C=[O],b=[r],y=[r],D=[r],P=[r],I=[r],F=[r],z=[r],N=[r],x=[r],T=[r],U=[r],w=[r],R=[r],s(this,null,k,{kind:"getter",name:"kiosk",static:!1,private:!1,access:{has:e=>"kiosk"in e,get:e=>e.kiosk},metadata:t},null,i),s(this,null,g,{kind:"method",name:"setKiosk",static:!1,private:!1,access:{has:e=>"setKiosk"in e,get:e=>e.setKiosk},metadata:t},null,i),s(this,null,S,{kind:"getter",name:"renderer",static:!1,private:!1,access:{has:e=>"renderer"in e,get:e=>e.renderer},metadata:t},null,i),s(this,null,_,{kind:"getter",name:"hasUnsavedChanges",static:!1,private:!1,access:{has:e=>"hasUnsavedChanges"in e,get:e=>e.hasUnsavedChanges},metadata:t},null,i),s(this,null,b,{kind:"method",name:"addStatusMessage",static:!1,private:!1,access:{has:e=>"addStatusMessage"in e,get:e=>e.addStatusMessage},metadata:t},null,i),s(this,null,y,{kind:"method",name:"clearStatusMessages",static:!1,private:!1,access:{has:e=>"clearStatusMessages"in e,get:e=>e.clearStatusMessages},metadata:t},null,i),s(this,null,D,{kind:"method",name:"startCleanupMessages",static:!1,private:!1,access:{has:e=>"startCleanupMessages"in e,get:e=>e.startCleanupMessages},metadata:t},null,i),s(this,null,P,{kind:"method",name:"resetCamera",static:!1,private:!1,access:{has:e=>"resetCamera"in e,get:e=>e.resetCamera},metadata:t},null,i),s(this,null,I,{kind:"method",name:"restoreData",static:!1,private:!1,access:{has:e=>"restoreData"in e,get:e=>e.restoreData},metadata:t},null,i),s(this,null,F,{kind:"method",name:"handleSetupReady",static:!1,private:!1,access:{has:e=>"handleSetupReady"in e,get:e=>e.handleSetupReady},metadata:t},null,i),s(this,null,z,{kind:"method",name:"handleClose",static:!1,private:!1,access:{has:e=>"handleClose"in e,get:e=>e.handleClose},metadata:t},null,i),s(this,null,N,{kind:"method",name:"handleDelete",static:!1,private:!1,access:{has:e=>"handleDelete"in e,get:e=>e.handleDelete},metadata:t},null,i),s(this,null,x,{kind:"method",name:"handleSave",static:!1,private:!1,access:{has:e=>"handleSave"in e,get:e=>e.handleSave},metadata:t},null,i),s(this,null,T,{kind:"method",name:"handleChange",static:!1,private:!1,access:{has:e=>"handleChange"in e,get:e=>e.handleChange},metadata:t},null,i),s(this,null,U,{kind:"method",name:"setInitialPtScale",static:!1,private:!1,access:{has:e=>"setInitialPtScale"in e,get:e=>e.setInitialPtScale},metadata:t},null,i),s(this,null,w,{kind:"method",name:"handleClick",static:!1,private:!1,access:{has:e=>"handleClick"in e,get:e=>e.handleClick},metadata:t},null,i),s(this,null,R,{kind:"method",name:"handleNavigationChange",static:!1,private:!1,access:{has:e=>"handleNavigationChange"in e,get:e=>e.handleNavigationChange},metadata:t},null,i),s(null,null,f,{kind:"field",name:"savedKiosk",static:!1,private:!1,access:{has:e=>"savedKiosk"in e,get:e=>e.savedKiosk,set:(e,l)=>{e.savedKiosk=l}},metadata:t},p,v),s(null,null,C,{kind:"field",name:"statusMessages",static:!1,private:!1,access:{has:e=>"statusMessages"in e,get:e=>e.statusMessages,set:(e,l)=>{e.statusMessages=l}},metadata:t},K,M),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}get kiosk(){return a.uiState.kioskData}setKiosk(t){a.uiState.setKioskData(t)}get renderer(){return a.rendererService.renderer}getCameraState(){const t=a.rendererService.getCameraState();return t?{mapInitialPtScale:this.initialPtScale,mapPtScale:t.ptScale,mapCenterX:t.center.x,mapCenterY:t.center.y,mapRollDegrees:t.roll,mapPitch:t.pitch}:{}}savedKiosk=(d(this,i),d(this,p,void 0));get hasUnsavedChanges(){const t=this.savedKiosk,e=c(this.kiosk);if(!e||!t)return!!e!=!!t;const l=Object.keys(t),o=Object.keys(e);if(l.length!==o.length)return!0;for(const n of l)if(!(n in e)||t[n]!==e[n])return!0;return!1}statusMessages=(d(this,v),d(this,K,[]));addStatusMessage(t){this.statusMessages=[{...t,id:Date.now()}],this.startCleanupMessages()}clearStatusMessages(){this.statusMessages=[]}statusMessageTimer=(d(this,M),0);startCleanupMessages(){clearTimeout(this.statusMessageTimer),this.statusMessageTimer=window.setTimeout(()=>this.clearStatusMessages(),1e3)}async resetCamera(){const{z:t,mapRollDegrees:e,mapInitialPtScale:l,mapPtScale:o,mapCenterX:n,mapCenterY:h}=this.kiosk||{};await this.renderer.controls.resetCamera({pan:!0,zoom:!0,roll:!0,pitch:!0},!0),j(()=>{Number.isFinite(l)&&Number.isFinite(o)&&o>0&&this.renderer.controls.zoomBy(l/o,!0),Number.isFinite(n)&&Number.isFinite(h)&&this.renderer.controls.panTo(n,h,!0),Number.isFinite(e)&&this.renderer.controls.rollTo(e,!0),t&&a.fp.activateFloor({name:t})})}restoreData(){const t=E();return t&&(this.setKiosk(t),this.savedKiosk=t,a.uiState.kiosk=!0,this.resetCamera()),t}handleSetupReady(){this.restoreData(),a.uiState.kiosk=!0,a.uiState.hideFreeOrDemo=!0,a.uiState.setForceDimm(!0),a.searchStore.setSearchText(""),a.searchStore.setFocused(!1)}handleClose(){this.setKiosk(null),a.uiState.setForceDimm(!1),a.uiState.enableSetKioskMode(!1),a.searchStore.closeSearch(),this.resetCamera()}handleDelete(){A(),this.setKiosk(null),a.uiState.resetMapSettings(),a.uiState.resetUIScale(),this.resetCamera(),this.addStatusMessage({variant:"success",title:m("Deleted")})}handleSave(){const t=c(this.kiosk),e=this.getCameraState(),l={...t,...e};if(!Y(this.renderer,l)){this.addStatusMessage({variant:"error",title:m("Kiosk not visible")});return}this.setKiosk(l),X(l),a.uiState.setUIScale(l.uiScale,!0),this.addStatusMessage({variant:"success",title:m("Saved")}),this.savedKiosk=l}delayChange(t){requestAnimationFrame(()=>t?.())}handleChange(t){const e=c(this.kiosk);e&&(Number.isFinite(t.angle)&&this.setKiosk({...e,heading:t.angle}),Number.isFinite(t.scale)&&(this.setKiosk({...e,uiScale:t.scale}),this.delayChange(()=>a.uiState.setUIScale(t.scale,!1))),Number.isFinite(t.percent)&&this.setKiosk({...e,iconSizePercent:t.percent}))}initialPtScale;setInitialPtScale(t){if(this.initialPtScale)return;this.initialPtScale=t;const e=c(this.kiosk);e&&this.setKiosk({...e,mapInitialPtScale:t})}handleClick(t){const e=c(this.kiosk),l=a.fp.getFloors(),o=q()?l.find(h=>h.active)?.name:null,n=a.uiState.uiScale;this.setKiosk({...e,x:t.x,y:t.y,z:o,uiScale:e?.uiScale||n,heading:e?.heading||0,iconSizePercent:e?.iconSizePercent||100,...this.getCameraState()})}handleNavigationChange(){const t=c(this.kiosk);t&&this.setKiosk({...t,...this.getCameraState()})}}})();export default new B;
1
+ import{__esDecorate as s,__runInitializers as h}from"tslib";import{action as r,computed as m,observable as O,runInAction as j,toJS as c}from"mobx";import a from"../../store";import{areLayersEnabled as E}from"../../utils/areLayersEnabled";import{t as k}from"../../utils/i18n";import{isPointVisible as X}from"../Map/visibleArea";import{updateKiosk as Y}from"./kioskApi";import{getSavedKiosk as q,removeKiosk as B,saveKiosk as J}from"./SetKiosk";let L=(()=>{let i=[],g,S,f,p,v=[],_=[],C,K,M=[],b=[],y,D,P,I,F,z,N,x,T,U,w,R,A;return class{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;g=[m({keepAlive:!0})],S=[r],f=[m({keepAlive:!0})],p=[O],C=[m({keepAlive:!0})],K=[O],y=[r],D=[r],P=[r],I=[r],F=[r],z=[r],N=[r],x=[r],T=[r],U=[r],w=[r],R=[r],A=[r],s(this,null,g,{kind:"getter",name:"kiosk",static:!1,private:!1,access:{has:e=>"kiosk"in e,get:e=>e.kiosk},metadata:t},null,i),s(this,null,S,{kind:"method",name:"setKiosk",static:!1,private:!1,access:{has:e=>"setKiosk"in e,get:e=>e.setKiosk},metadata:t},null,i),s(this,null,f,{kind:"getter",name:"renderer",static:!1,private:!1,access:{has:e=>"renderer"in e,get:e=>e.renderer},metadata:t},null,i),s(this,null,C,{kind:"getter",name:"hasUnsavedChanges",static:!1,private:!1,access:{has:e=>"hasUnsavedChanges"in e,get:e=>e.hasUnsavedChanges},metadata:t},null,i),s(this,null,y,{kind:"method",name:"addStatusMessage",static:!1,private:!1,access:{has:e=>"addStatusMessage"in e,get:e=>e.addStatusMessage},metadata:t},null,i),s(this,null,D,{kind:"method",name:"clearStatusMessages",static:!1,private:!1,access:{has:e=>"clearStatusMessages"in e,get:e=>e.clearStatusMessages},metadata:t},null,i),s(this,null,P,{kind:"method",name:"startCleanupMessages",static:!1,private:!1,access:{has:e=>"startCleanupMessages"in e,get:e=>e.startCleanupMessages},metadata:t},null,i),s(this,null,I,{kind:"method",name:"resetCamera",static:!1,private:!1,access:{has:e=>"resetCamera"in e,get:e=>e.resetCamera},metadata:t},null,i),s(this,null,F,{kind:"method",name:"restoreData",static:!1,private:!1,access:{has:e=>"restoreData"in e,get:e=>e.restoreData},metadata:t},null,i),s(this,null,z,{kind:"method",name:"handleSetupReady",static:!1,private:!1,access:{has:e=>"handleSetupReady"in e,get:e=>e.handleSetupReady},metadata:t},null,i),s(this,null,N,{kind:"method",name:"handleClose",static:!1,private:!1,access:{has:e=>"handleClose"in e,get:e=>e.handleClose},metadata:t},null,i),s(this,null,x,{kind:"method",name:"handleDelete",static:!1,private:!1,access:{has:e=>"handleDelete"in e,get:e=>e.handleDelete},metadata:t},null,i),s(this,null,T,{kind:"method",name:"handleSave",static:!1,private:!1,access:{has:e=>"handleSave"in e,get:e=>e.handleSave},metadata:t},null,i),s(this,null,U,{kind:"method",name:"handleChange",static:!1,private:!1,access:{has:e=>"handleChange"in e,get:e=>e.handleChange},metadata:t},null,i),s(this,null,w,{kind:"method",name:"setInitialPtScale",static:!1,private:!1,access:{has:e=>"setInitialPtScale"in e,get:e=>e.setInitialPtScale},metadata:t},null,i),s(this,null,R,{kind:"method",name:"handleClick",static:!1,private:!1,access:{has:e=>"handleClick"in e,get:e=>e.handleClick},metadata:t},null,i),s(this,null,A,{kind:"method",name:"handleNavigationChange",static:!1,private:!1,access:{has:e=>"handleNavigationChange"in e,get:e=>e.handleNavigationChange},metadata:t},null,i),s(null,null,p,{kind:"field",name:"savedKiosk",static:!1,private:!1,access:{has:e=>"savedKiosk"in e,get:e=>e.savedKiosk,set:(e,n)=>{e.savedKiosk=n}},metadata:t},v,_),s(null,null,K,{kind:"field",name:"statusMessages",static:!1,private:!1,access:{has:e=>"statusMessages"in e,get:e=>e.statusMessages,set:(e,n)=>{e.statusMessages=n}},metadata:t},M,b),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}get kiosk(){return a.uiState.kioskData}setKiosk(t){a.uiState.setKioskData(t)}get renderer(){return a.rendererService.renderer}getCameraState(){const t=a.rendererService.getCameraState();return t?{mapInitialPtScale:this.initialPtScale,mapPtScale:t.ptScale,mapCenterX:t.center.x,mapCenterY:t.center.y,mapRollDegrees:t.roll,mapPitch:t.pitch}:{}}savedKiosk=(h(this,i),h(this,v,null));get hasUnsavedChanges(){const t=this.savedKiosk,e=c(this.kiosk);if(!e||!t)return!!e!=!!t;const n=Object.keys(t),l=Object.keys(e);if(n.length!==l.length)return!0;for(const o of n)if(!(o in e)||t[o]!==e[o])return!0;return!1}statusMessages=(h(this,_),h(this,M,[]));addStatusMessage(t){this.statusMessages=[{...t,id:Date.now()}],this.startCleanupMessages()}clearStatusMessages(){this.statusMessages=[]}statusMessageTimer=(h(this,b),0);startCleanupMessages(){clearTimeout(this.statusMessageTimer),this.statusMessageTimer=window.setTimeout(()=>this.clearStatusMessages(),1e3)}async resetCamera(){const{z:t,mapRollDegrees:e,mapInitialPtScale:n,mapPtScale:l,mapCenterX:o,mapCenterY:u}=this.kiosk||{},d=this.renderer;d&&(await d.controls.resetCamera({pan:!0,zoom:!0,roll:!0,pitch:!0},!0),j(()=>{Number.isFinite(n)&&Number.isFinite(l)&&l>0&&d.controls.zoomBy(n/l,!0),Number.isFinite(o)&&Number.isFinite(u)&&d.controls.panTo(o,u,!0),Number.isFinite(e)&&d.controls.rollTo(e,!0),t&&a.fp.activateFloor({name:t})}))}restoreData(){const t=q();return t&&(this.setKiosk(t),this.savedKiosk=t,a.uiState.kiosk=!0,this.resetCamera()),t}handleSetupReady(){this.restoreData(),a.uiState.kiosk=!0,a.uiState.hideFreeOrDemo=!0,a.uiState.setForceDimm(!0),a.searchStore.setSearchText(""),a.searchStore.setFocused(!1)}handleClose(){this.setKiosk(null),a.uiState.setForceDimm(!1),a.uiState.enableSetKioskMode(!1),a.searchStore.closeSearch(),this.resetCamera()}handleDelete(){B(),this.setKiosk(null),a.uiState.resetMapSettings(),a.uiState.resetUIScale(),this.resetCamera(),this.addStatusMessage({variant:"success",title:k("Deleted")})}handleSave(){const t=this.renderer;if(!t)return;const e=c(this.kiosk),n=this.getCameraState(),l={...e,...n};if(!X(t,l)){this.addStatusMessage({variant:"error",title:k("Kiosk not visible")});return}this.setKiosk(l),J(l),Y(l,"https://app.expofp.com/"),a.uiState.setUIScale(l.uiScale,!0),this.addStatusMessage({variant:"success",title:k("Saved")}),this.savedKiosk=l}delayChange(t){requestAnimationFrame(()=>t?.())}handleChange(t){const e=c(this.kiosk);e&&(Number.isFinite(t.angle)&&this.setKiosk({...e,heading:t.angle}),Number.isFinite(t.scale)&&(this.setKiosk({...e,uiScale:t.scale}),this.delayChange(()=>a.uiState.setUIScale(t.scale,!1))),Number.isFinite(t.percent)&&this.setKiosk({...e,iconSizePercent:t.percent}))}initialPtScale;setInitialPtScale(t){if(this.initialPtScale)return;this.initialPtScale=t;const e=c(this.kiosk);e&&this.setKiosk({...e,mapInitialPtScale:t})}handleClick(t){const e=c(this.kiosk),n=a.fp.getFloors(),l=E()?n.find(u=>u.active)?.name??null:null,o=a.uiState.uiScale;this.setKiosk({...e,x:t.x,y:t.y,z:l,uiScale:e?.uiScale||o,heading:e?.heading||0,iconSizePercent:e?.iconSizePercent||100,...this.getCameraState()})}handleNavigationChange(){const t=c(this.kiosk);t&&this.setKiosk({...t,...this.getCameraState()})}}})();export default new L;
@@ -1,4 +1,5 @@
1
1
  export declare const KIOSK_STORAGE_KEY = "expofp-kiosk";
2
+ export declare const KIOSK_STATS_ID_STORAGE_KEY = "expofp-kiosk-stats-id";
2
3
  export declare const KIOSK_SLUG = "interactive-kiosk";
3
4
  export declare const KIOSK_NAME = "Your Location";
4
5
  export declare const KIOSK_URL_PARAM_PREFIX = "kiosk_";
@@ -1 +1 @@
1
- export const KIOSK_STORAGE_KEY="expofp-kiosk",KIOSK_SLUG="interactive-kiosk",KIOSK_NAME="Your Location",KIOSK_URL_PARAM_PREFIX="kiosk_";
1
+ export const KIOSK_STORAGE_KEY="expofp-kiosk",KIOSK_STATS_ID_STORAGE_KEY="expofp-kiosk-stats-id",KIOSK_SLUG="interactive-kiosk",KIOSK_NAME="Your Location",KIOSK_URL_PARAM_PREFIX="kiosk_";
@@ -12,7 +12,7 @@ export interface KioskMapState {
12
12
  export interface Kiosk extends KioskMapState {
13
13
  x: number;
14
14
  y: number;
15
- z: string;
15
+ z: string | null;
16
16
  heading: number;
17
17
  lat?: number;
18
18
  lng?: number;
@@ -0,0 +1,4 @@
1
+ import type { Kiosk } from "./SetKiosk";
2
+ export declare function createKiosk(kiosk: Kiosk, originUrlString: string): Promise<string | null>;
3
+ export declare function updateKiosk(kiosk: Kiosk, originUrlString: string): Promise<void>;
4
+ //# sourceMappingURL=kioskApi.d.ts.map
@@ -0,0 +1 @@
1
+ import{KIOSK_STATS_ID_STORAGE_KEY as a}from"./SetKiosk/constants";const r={"Content-Type":"application/json"};function n(o,s){const e=new URL(o,s);return e.searchParams.set("expoKey",window.__efpEvent),e.toString()}export async function createKiosk(o,s){try{const e=await fetch(n("/api/kiosks",s),{method:"POST",headers:r,body:JSON.stringify(o)});return e.ok?(await e.json()).key??null:(console.error("createKiosk",e.status,e.statusText),null)}catch(e){return console.error("createKiosk",e),null}}export async function updateKiosk(o,s){const e=localStorage.getItem(a);if(e)try{const t=await fetch(n("/api/kiosks",s),{method:"POST",headers:r,body:JSON.stringify({...o,key:e})});t.ok||console.error("updateKiosk",t.status,t.statusText)}catch(t){console.error("updateKiosk",t)}}
@@ -1 +1 @@
1
- import{PREVIEW_MODE_ATTRIBUTE as T}from"./constants";import c from"./tools/base-runtime-url";import{buildRebookingUrl as F,getRebookingToken as A,retainRebookingToken as V}from"./tools/rebookingUrl";import{loadCss as I,loadFont as g,loadJs as k}from"./tools/loaders";import U from"./tools/logger";import{sleep as H}from"./utils";import{initI18n as z}from"./utils/i18n";import S from"./utils/is-webview";import{loadCustomCss as G}from"./utils/loadCustomCss";import{loadIcons as N}from"./utils/loadIcons";import Q from"./utils/mergeExhibitors";import E from"./utils/use-shadow";import q from"./utils/is-debug";import W from"./utils/is-localhost";import{initSentry as $}from"./tools/sentry";import{shouldLoadIntercom as J}from"./intercom";function t(){throw new Error("FloorPlan not ready")}export default class K{options;renderTarget;_ready;element;eventId;dataUrl;noOverlay;offHistory;ignoreQuery;allowConsent;onInit;disableRuntimeAlerts;viewerMode;maplibre;efpStyleLoadHandler;resolveReady;icons=new Map;enableRotation=!0;alwaysShowSidebar=!1;get ready(){return this._ready}get previewMode(){return this.options.previewMode||this.element.hasAttribute(T)}onBoothClick;onBookmarkClick;onVisitedClick;onCategoryClick;onFpConfigured;onDirection;onDetails;onExhibitorCustomButtonClick;onGetCoordsClick;onMarkerClick;onLeaveEvent;selectBooth(e){t()}selectExhibitor(e){t()}selectRoute(e,r){t()}getOptimizedRoutes(e){t()}selectCurrentPosition(e,r,h){t()}setBookmarks(e){t()}setEntitiesBookmarks(e){t()}setEntitiesVisited(e){t()}setMarkers(e){t()}updateLayerVisibility(e,r){t()}getCenterCoordinates(){t()}applyParameters(e){t()}exhibitorsList(){t()}boothsList(){t()}categoriesList(){t()}selectCategory(e){t()}getVisibility(){t()}setVisibility(e){t()}findLocation(){t()}zoomIn(){t()}zoomOut(){t()}zoomTo(e,r){t()}switchView(){t()}fitBounds(){t()}getBounds(e){t()}getBoothRect(e){t()}convertToGeo(e,r){t()}getGeoConfig(){t()}unstable_destroy(){t()}highlightExhibitors(e){t()}highlightBooths(e){t()}onCurrentPositionChanged(e){t()}search(e){t()}getFloors(){t()}onFloorActivated(e){t()}activateFloor(e){t()}showPathway(e,r){t()}showPathwayOnly(e,r){t()}hidePathways(){t()}showSearch(){t()}changeLanguage(e){t()}isGpsTrackingEnabled(){t()}setGpsTrackingEnabled(e){t()}deselectCurrentPosition(){t()}deselectRoute(){t()}reset(){t()}selectAccessibleRoute(e){t()}constructor(e){this.options=e,this.noOverlay=!!e.noOverlay,this.offHistory=!!e.offHistory,this.ignoreQuery=e.ignoreQuery,this.allowConsent=W&&!q?!1:e.allowConsent,this.onBoothClick=e.onBoothClick,this.onBookmarkClick=e.onBookmarkClick,this.onVisitedClick=e.onVisitedClick,this.onCategoryClick=e.onCategoryClick,this.onDetails=e.onDetails,this.onExhibitorCustomButtonClick=e.onExhibitorCustomButtonClick,this.onGetCoordsClick=e.onGetCoordsClick,this.onMarkerClick=e.onMarkerClick,this.onFpConfigured=e.onFpConfigured,this.onDirection=e.onDirection,this.onInit=e.onInit,this.onCurrentPositionChanged=e.onCurrentPositionChanged,this.onFloorActivated=e.onFloorActivated,this.onLeaveEvent=e.onLeaveEvent,this.viewerMode=!!e.viewerMode,this.disableRuntimeAlerts=e.disableRuntimeAlerts??!0,this.maplibre=e.maplibre,window.__efpMaplibre=e.maplibre,this._ready=new Promise((l,a)=>{this.resolveReady=l});const r=e.element;if(this.element=r,r.__expofp)throw new Error("Element already in use");if(r.__expofp=this,r.getAttribute("data-event-id")||r.getAttribute("data-event"))throw new Error("data-xxx attributes are removed, use options instead");const h=e.expo||e.event;if(!h)throw new Error("`expo` option is required");$({eventId:h||"",isWebview:S}),this.eventId=h,window.__efpEvent=h,window.__efpElement=r;const m=document.createElement("div");m.style.height="100%",m.style.width="100%",r.appendChild(m);let n;if(S&&(this.allowConsent=!0),e.allowConsent===void 0){const a=new URL(window.location.href).searchParams.get("allowConsent");a&&(this.allowConsent=a==="true")}if(E){n=m.attachShadow({mode:"open"});const l=n,a=document;l.createElement=(...i)=>a.createElement(...i),l.createElementNS=(...i)=>a.createElementNS(...i),l.createTextNode=(...i)=>a.createTextNode(...i)}else n=m;const y=document.createElement("div");if(y.style.height="100%",y.style.width="100%",n.appendChild(y),E&&Object.defineProperty(y,"ownerDocument",{value:n}),window.__efpShadowDOMStyleParent=E?n:void 0,this.renderTarget=y,r.getAttribute("data-data-url"))throw new Error("data-xxx attributes are removed, use options instead");const u=e.legacyDataUrlBase;window.__dataUrlBase=u,this.dataUrl=u,U.log("Instantiating ExpoFP floorplan",e.element,h);const L=u+"data.js",O=u+"wf.data.js",x=u+"fp.svg.js",B=[k(O),k(L),k(x)];let v=0;this.efpStyleLoadHandler=function(l){const a=window.__efpStyleElements;for(;v<a.length;){const i=a[v];n.appendChild(i),v++}},window.addEventListener("__efpStyleLoad",this.efpStyleLoadHandler);const b=this;(async function(){await Promise.all(B);let a=0;for(;window.__fpPending&&!window.__fp;)await H(2e3),await k(x+`?v=${++a}`);const i=window.__data;if(!i){const{showEventNotFound:o}=await import("./tools/event-not-found");o(r);return}const P=J(i);P&&import("./intercom/bootIntercom").then(({bootIntercom:o})=>o(P)).catch(()=>{}),await z();const w=new URLSearchParams(window.location.search);let f,C;if(i?.trackerUrl)try{f=new URL(i.trackerUrl),C=f.searchParams.get("expoId")}catch(o){console.error(o)}const R=async o=>{if(!f||!C)return Promise.reject(new Error("trackerUrl or expoId is missing"));const s=new URL(o.dataUrl,f.origin),d=await fetch(s.toString(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({expoId:C,token:decodeURIComponent(w.get("t"))})});let p=[];d.ok&&(p=(await d.json()).map(o.dataMapper)),window.__heatmapDataYah={yah:p}};if(w.get("heatmap")==="true")try{if(w.get("type")==="yah")w.get("subtype")==="kiosk"?await R({dataUrl:"/api/kiosks/list/viewer",dataMapper:o=>({...o,id:o.key,name:`Kiosk ${o.key}`})}):await R({dataUrl:"/api/v1/you-are-here/qr-code/list/viewer",dataMapper:(o,s)=>({...o,name:`QR Code #${s+1}`})});else{const o=new URL("/api/fp-stats/get",f.origin);o.searchParams.set("expoId",C),o.searchParams.set("type","booview"),o.searchParams.set("t",decodeURIComponent(w.get("t")));const s=new URL("api/fp-stats/get",f.origin);s.searchParams.set("expoId",C),s.searchParams.set("type","exview"),s.searchParams.set("t",decodeURIComponent(w.get("t")));const[d,p]=await Promise.all([fetch(o.toString()),fetch(s.toString())]),[_,M]=await Promise.all([d.json(),p.json()]);window.__heatmapData={booths:_,exhibitors:M}}}catch(o){console.error("Heatmap: Initialization error",o)}try{const o=A();if(o){V(o);const s=F("api/rebooking-data",{rt:o,expoKey:h}),d=await fetch(s);if(d.ok){const p=await d.json();Q(i,p)}i.isRebooking=d.ok}else i.isRebooking=!1}catch(o){console.error(o)}const D=[I(c+"vendor/sanitize-css/sanitize.css",n),I(c+"vendor/perfect-scrollbar/css/perfect-scrollbar.css",n),g("Oswald",c+"fonts/oswald-v17-cyrillic_latin-300.woff",{weight:300}),g("Oswald",c+"fonts/oswald-v17-cyrillic_latin-500.woff",{weight:500}),g("Inter",c+"fonts/inter-400.woff2",{weight:400}),g("Inter",c+"fonts/inter-500.woff2",{weight:500}),g("Inter",c+"fonts/inter-600.woff2",{weight:600}),g("efp-symbols",c+"fonts/efp-symbols.woff",{weight:400}),G(i,n),N(b.icons)];await Promise.all(D),b.enableRotation=i?.enableRotation??!1,b.alwaysShowSidebar=i?.alwaysShowSidebar??!1,U.log("Data loaded");const{default:j}=await import("./floorplan.ready");for(document.querySelectorAll(".expofp-floorplan-loader").forEach(o=>o.remove());r.firstChild&&r.firstChild!==m;)r.removeChild(r.firstChild);Object.setPrototypeOf(b,j.prototype).init()})()}}
1
+ import{PREVIEW_MODE_ATTRIBUTE as M}from"./constants";import c from"./tools/base-runtime-url";import{buildRebookingUrl as T,getRebookingToken as A,retainRebookingToken as F}from"./tools/rebookingUrl";import{loadCss as R,loadFont as g,loadJs as k}from"./tools/loaders";import I from"./tools/logger";import{sleep as V}from"./utils";import{initI18n as H}from"./utils/i18n";import U from"./utils/is-webview";import{loadCustomCss as z}from"./utils/loadCustomCss";import{loadIcons as G}from"./utils/loadIcons";import N from"./utils/mergeExhibitors";import E from"./utils/use-shadow";import Q from"./utils/is-debug";import q from"./utils/is-localhost";import{initSentry as W}from"./tools/sentry";function t(){throw new Error("FloorPlan not ready")}export default class ${options;renderTarget;_ready;element;eventId;dataUrl;noOverlay;offHistory;ignoreQuery;allowConsent;onInit;disableRuntimeAlerts;viewerMode;maplibre;efpStyleLoadHandler;resolveReady;icons=new Map;enableRotation=!0;alwaysShowSidebar=!1;get ready(){return this._ready}get previewMode(){return this.options.previewMode||this.element.hasAttribute(M)}onBoothClick;onBookmarkClick;onVisitedClick;onCategoryClick;onFpConfigured;onDirection;onDetails;onExhibitorCustomButtonClick;onGetCoordsClick;onMarkerClick;onLeaveEvent;selectBooth(e){t()}selectExhibitor(e){t()}selectRoute(e,r){t()}getOptimizedRoutes(e){t()}selectCurrentPosition(e,r,h){t()}setBookmarks(e){t()}setEntitiesBookmarks(e){t()}setEntitiesVisited(e){t()}setMarkers(e){t()}updateLayerVisibility(e,r){t()}getCenterCoordinates(){t()}applyParameters(e){t()}exhibitorsList(){t()}boothsList(){t()}categoriesList(){t()}selectCategory(e){t()}getVisibility(){t()}setVisibility(e){t()}findLocation(){t()}zoomIn(){t()}zoomOut(){t()}zoomTo(e,r){t()}switchView(){t()}fitBounds(){t()}getBounds(e){t()}getBoothRect(e){t()}convertToGeo(e,r){t()}getGeoConfig(){t()}unstable_destroy(){t()}highlightExhibitors(e){t()}highlightBooths(e){t()}onCurrentPositionChanged(e){t()}search(e){t()}getFloors(){t()}onFloorActivated(e){t()}activateFloor(e){t()}showPathway(e,r){t()}showPathwayOnly(e,r){t()}hidePathways(){t()}showSearch(){t()}changeLanguage(e){t()}isGpsTrackingEnabled(){t()}setGpsTrackingEnabled(e){t()}deselectCurrentPosition(){t()}deselectRoute(){t()}reset(){t()}selectAccessibleRoute(e){t()}constructor(e){this.options=e,this.noOverlay=!!e.noOverlay,this.offHistory=!!e.offHistory,this.ignoreQuery=e.ignoreQuery,this.allowConsent=q&&!Q?!1:e.allowConsent,this.onBoothClick=e.onBoothClick,this.onBookmarkClick=e.onBookmarkClick,this.onVisitedClick=e.onVisitedClick,this.onCategoryClick=e.onCategoryClick,this.onDetails=e.onDetails,this.onExhibitorCustomButtonClick=e.onExhibitorCustomButtonClick,this.onGetCoordsClick=e.onGetCoordsClick,this.onMarkerClick=e.onMarkerClick,this.onFpConfigured=e.onFpConfigured,this.onDirection=e.onDirection,this.onInit=e.onInit,this.onCurrentPositionChanged=e.onCurrentPositionChanged,this.onFloorActivated=e.onFloorActivated,this.onLeaveEvent=e.onLeaveEvent,this.viewerMode=!!e.viewerMode,this.disableRuntimeAlerts=e.disableRuntimeAlerts??!0,this.maplibre=e.maplibre,window.__efpMaplibre=e.maplibre,this._ready=new Promise((l,a)=>{this.resolveReady=l});const r=e.element;if(this.element=r,r.__expofp)throw new Error("Element already in use");if(r.__expofp=this,r.getAttribute("data-event-id")||r.getAttribute("data-event"))throw new Error("data-xxx attributes are removed, use options instead");const h=e.expo||e.event;if(!h)throw new Error("`expo` option is required");W({eventId:h||"",isWebview:U}),this.eventId=h,window.__efpEvent=h,window.__efpElement=r;const w=document.createElement("div");w.style.height="100%",w.style.width="100%",r.appendChild(w);let n;if(U&&(this.allowConsent=!0),e.allowConsent===void 0){const a=new URL(window.location.href).searchParams.get("allowConsent");a&&(this.allowConsent=a==="true")}if(E){n=w.attachShadow({mode:"open"});const l=n,a=document;l.createElement=(...i)=>a.createElement(...i),l.createElementNS=(...i)=>a.createElementNS(...i),l.createTextNode=(...i)=>a.createTextNode(...i)}else n=w;const y=document.createElement("div");if(y.style.height="100%",y.style.width="100%",n.appendChild(y),E&&Object.defineProperty(y,"ownerDocument",{value:n}),window.__efpShadowDOMStyleParent=E?n:void 0,this.renderTarget=y,r.getAttribute("data-data-url"))throw new Error("data-xxx attributes are removed, use options instead");const u=e.legacyDataUrlBase;window.__dataUrlBase=u,this.dataUrl=u,I.log("Instantiating ExpoFP floorplan",e.element,h);const S=u+"data.js",L=u+"wf.data.js",x=u+"fp.svg.js",O=[k(L),k(S),k(x)];let v=0;this.efpStyleLoadHandler=function(l){const a=window.__efpStyleElements;for(;v<a.length;){const i=a[v];n.appendChild(i),v++}},window.addEventListener("__efpStyleLoad",this.efpStyleLoadHandler);const b=this;(async function(){await Promise.all(O);let a=0;for(;window.__fpPending&&!window.__fp;)await V(2e3),await k(x+`?v=${++a}`);const i=window.__data;if(!i){const{showEventNotFound:o}=await import("./tools/event-not-found");o(r);return}await H();const m=new URLSearchParams(window.location.search);let f,C;if(i?.trackerUrl)try{f=new URL(i.trackerUrl),C=f.searchParams.get("expoId")}catch(o){console.error(o)}const _=async o=>{if(!f||!C)return Promise.reject(new Error("trackerUrl or expoId is missing"));const s=new URL(o.dataUrl,f.origin),d=await fetch(s.toString(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({expoId:C,token:decodeURIComponent(m.get("t"))})});let p=[];d.ok&&(p=(await d.json()).map(o.dataMapper)),window.__heatmapDataYah={yah:p}};if(m.get("heatmap")==="true")try{if(m.get("type")==="yah")m.get("subtype")==="kiosk"?await _({dataUrl:"/api/kiosks/list/viewer",dataMapper:o=>({...o,id:o.key,name:`Kiosk ${o.key}`})}):await _({dataUrl:"/api/v1/you-are-here/qr-code/list/viewer",dataMapper:(o,s)=>({...o,name:`QR Code #${s+1}`})});else{const o=new URL("/api/fp-stats/get",f.origin);o.searchParams.set("expoId",C),o.searchParams.set("type","booview"),o.searchParams.set("t",decodeURIComponent(m.get("t")));const s=new URL("api/fp-stats/get",f.origin);s.searchParams.set("expoId",C),s.searchParams.set("type","exview"),s.searchParams.set("t",decodeURIComponent(m.get("t")));const[d,p]=await Promise.all([fetch(o.toString()),fetch(s.toString())]),[P,j]=await Promise.all([d.json(),p.json()]);window.__heatmapData={booths:P,exhibitors:j}}}catch(o){console.error("Heatmap: Initialization error",o)}try{const o=A();if(o){F(o);const s=T("api/rebooking-data",{rt:o,expoKey:h}),d=await fetch(s);if(d.ok){const p=await d.json();N(i,p)}i.isRebooking=d.ok}else i.isRebooking=!1}catch(o){console.error(o)}const B=[R(c+"vendor/sanitize-css/sanitize.css",n),R(c+"vendor/perfect-scrollbar/css/perfect-scrollbar.css",n),g("Oswald",c+"fonts/oswald-v17-cyrillic_latin-300.woff",{weight:300}),g("Oswald",c+"fonts/oswald-v17-cyrillic_latin-500.woff",{weight:500}),g("Inter",c+"fonts/inter-400.woff2",{weight:400}),g("Inter",c+"fonts/inter-500.woff2",{weight:500}),g("Inter",c+"fonts/inter-600.woff2",{weight:600}),g("efp-symbols",c+"fonts/efp-symbols.woff",{weight:400}),z(i,n),G(b.icons)];await Promise.all(B),b.enableRotation=i?.enableRotation??!1,b.alwaysShowSidebar=i?.alwaysShowSidebar??!1,I.log("Data loaded"),window.__storeInitAllowed=!0;const{default:D}=await import("./floorplan.ready");for(document.querySelectorAll(".expofp-floorplan-loader").forEach(o=>o.remove());r.firstChild&&r.firstChild!==w;)r.removeChild(r.firstChild);Object.setPrototypeOf(b,D.prototype).init()})()}}
@@ -1 +1 @@
1
- import{jsx as g,Fragment as L,jsxs as C}from"react/jsx-runtime";import{reaction as T}from"mobx";import{createRoot as R}from"react-dom/client";import{install as I}from"resize-observer";import V from"./components/Layout";import $ from"./floorplan.loader";import{applyParameters as M,destroyHistory as j,initRouting as z}from"./services/routing";import t from"./store";import{Route as x,findBooth as E,separateExternalIds as P}from"./store/RouteStore";import{destroyUiHandlers as G}from"./store/init/init-ui";import{GaEventActions as w,destroyGtag as _,sendEventToGa as B,setConsentSettings as q}from"./tools/gtag";import N from"./tools/report-error";import{resetGlobalVariables as Y}from"./tools/reset";import H from"./tools/track-event";import{fpGeo as b}from"./data/fpGeo";import{convertLocalToGps as O,isValidPointCoords as d}from"./utils/gps";import m from"./core/Rect";import{mapEntity as y}from"./utils/mapEntity";import{LANG_KEY as X,MAX_ROUTE_WAYPOINTS as p,PATHWAY_KEY as U}from"./constants";import{getStorage as v}from"./utils/entity-storage";import{ErrorBoundary as D}from"@sentry/react";import{POISelectorsSchema as F,BoundsSchema as K,ZoomToOptionsSchema as A}from"./schemas/sdk.schemas";import W from"debug";import{optimizeWaypointOrder as Q}from"./wayfinding/core/routing/optimizeWaypointOrder";import{hasLocale as Z,getLocales as J}from"./utils/i18n";const S=W("efp:api");I();export default class ee extends ${root;init(){this.ignoreQuery||z(this.offHistory),H("load"),t.fp=this,q(this.allowConsent),B(w.Load,""),this.root=R(this.renderTarget),this.root.render(g(D,{children:g(V,{offHistory:this.offHistory,allowConsent:this.allowConsent})})),B(w.Rendered,""),T(()=>t.layerStore.layersLoaded,()=>{this.resolveReady(),t.initialized||this.onInit?.(this),t.initialized=!0})}selectBooth(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectBooth","Parameter must be a string or an array of strings.","EFP000000");return}const i=t.boothStore.booths.filter(o=>typeof e=="string"?o.name===e||o.externalId===e:e.includes(o.name)||e.includes(o.externalId));t.selectBooth(i)}selectExhibitor(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectExhibitor","Parameter must be a string or an array of strings.","EFP000100");return}if(!e?.length){t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null;return}const i=t.exhibitorStore.exhibitors.filter(s=>typeof e=="string"?s.name===e||s.externalId===e:e.includes(s.name)||e.includes(s.externalId));if(!i?.length)return;if(typeof e=="string"){t.selectExhibitor(i[0]),t.moveToList([i[0]]);return}const o=i.flatMap(s=>s.booths.map(r=>r.layer)),{description:n}=o.reduce((s,r)=>(s.freq[r.description]=(s.freq[r.description]||0)+1,s.freq[r.description]>s.maxCount&&(s.maxCount=s.freq[r.description],s.mostFrequent=r),s),{freq:{},mostFrequent:o[0],maxCount:0}).mostFrequent;t.layerStore.updateVisibility(n,!0),t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null,t.uiState.list={type:"filter",items:i,query:{key:"exhibitors",value:i.map(s=>s.externalId).join(",")}},t.moveToList()}highlightExhibitors(e){Array.isArray(e)||a("highlightExhibitors","Parameter must be an array of strings.","EFP000200"),t.boothStore.highlightedByExternalIds=[],t.exhibitorStore.highlightedByExternalIds=[...e]}highlightBooths(e){Array.isArray(e)||a("highlightBooths","Parameter must be an array of strings.","EFP000300"),t.exhibitorStore.highlightedByExternalIds=[],t.boothStore.highlightedByExternalIds=[...e]}highlightEntities(e){Array.isArray(e)||a("highlightEntities","Parameter must be an array of strings.","EFP000400");const{boothExternalIds:i,exhibitorExternalIds:o}=P(e);t.boothStore.highlightedByExternalIds=[...i],t.exhibitorStore.highlightedByExternalIds=[...o]}selectRoute(e,i){if(Array.isArray(e)){let o=[...e];const n=o.shift(),s=o.pop();if(o.length>p)throw new Error(`The maximum number of waypoints is ${p}.`);if(!n||!s){a("selectRoute","Invalid route format: When providing an array, it must include at least two points: a start and a destination.","EFP000401");return}t.routeStore.selectRoute(new x(f(n),f(s),o.map(f)));return}e||a("selectRoute","At a minimum, the starting point must be passed.","EFP000402"),t.routeStore.selectRoute(new x(f(e),f(i)))}getOptimizedRoutes(e){if(!Array.isArray(e))return a("getOptimizedRoutes","Parameter must be an array.","EFP000500"),[];if(e.length>p)throw new Error(`The maximum number of waypoints is ${p}.`);const i=e.map(f).filter(n=>!!n);if(!i.length)throw new Error("No booths found for the provided waypoints.");const o=new Map;for(const n of i){const s=n.layer?.name??"",r=o.get(s);r?r.push(n):o.set(s,[n])}return Array.from(o.values()).map(n=>({waypoints:Q(n.map(s=>[s.name,{cx:s.rect.cx,cy:s.rect.cy}]))}))}selectCurrentPosition(e,i,o){const n=d(e.x)&&d(e.y),s=d(e.lng)&&d(e.lat);!n&&!s&&a("selectCurrentPosition","A point must be passed. Either (x,y) or (lat,lng) are required.","EFP000600"),t.routeStore.selectCurrentPosition(e,i,o),this.onCurrentPositionChanged?.(e)}setBookmarks(e){(!Array.isArray(e)||!e.length)&&a("setBookmarks","Parameter must be an array.","EFP000700"),e.forEach(i=>{const o=t.exhibitorStore.exhibitors.find(n=>n.name===i.name||n.externalId===i.externalId);o&&(o.bookmarked=i.bookmarked)})}setEntitiesBookmarks(e){if(!Array.isArray(e)||!e.length){a("setEntitiesBookmarks","Parameter must be an array.","EFP000701");return}const i=["exhibitor","event","speaker","booth"],o=e.find(r=>!r.type||!i.includes(r.type));if(o){a("setEntitiesBookmarks",`Invalid entity type: ${o.type}. Must be one of: ${i.join(", ")}.`,"EFP000702");return}const n=v("bookmarked"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceBookmarked(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceBookmarked(r)},speaker:{existingIds:new Set(n.speakers||[]),finder:r=>t.speakerStore.speakers.find(l=>l.name===r||l.externalId===r||l.slug===r),replacer:r=>t.speakerStore.replaceBookmarked(r)},booth:{existingIds:new Set(n.booths||[]),finder:r=>{const l=t.boothStore.findBooth(r);return l?.exhibitors.length===0?l:void 0},replacer:r=>t.boothStore.replaceBookmarked(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.bookmarked?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setEntitiesVisited(e){if(!Array.isArray(e)||!e.length){a("setEntitiesVisited","Parameter must be an array.","EFP000703");return}const i=["exhibitor","event"],o=e.find(r=>!r.type||!i.includes(r.type));if(o){a("setEntitiesVisited",`Invalid entity type: ${o.type}. Must be one of: ${i.join(", ")}.`,"EFP000704");return}const n=v("visited"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceVisited(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceVisited(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.visited?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setMarkers(e){if(!e||!Array.isArray(e.icons)||!Array.isArray(e.markers)){a("setMarkers","Invalid input.","EFP000800");return}t.routeStore.setMarkers(e)}selectMarker(e,i=!0){return typeof e!="string"&&a("selectMarker","The identifier must be passed.","EFP000900"),t.routeStore.selectMarker(e,i)}drawCircles(e){Array.isArray(e)||a("drawCircles","Invalid input.","EFP000A00"),t.uiState.debugCircles=e}checkRoutes(){t.routeStore.checkRoutes()}updateLayerVisibility(e,i){typeof e!="string"&&a("updateLayerVisibility","The layer name (string) must be passed.","EFP000B00"),i||a("updateLayerVisibility","Passing a false value to visible will have no effect.","EFP000B01"),t.layerStore.updateVisibility(e,i)}getCenterCoordinates(){return t.fp.getCenterCoordinates()}exhibitorsList(){return t.exhibitorStore.exhibitors.map(e=>y(e))}boothsList(){return t.boothStore.booths.map(e=>y(e))}categoriesList(){return t.categoryStore.categories.map(e=>y(e))}selectCategory(e){if(e==null||typeof e!="string"){t.searchStore.selectSearch();return}const i=e?.toLowerCase(),o=t.categoryStore.categories.find(({name:n,slug:s})=>n?.toLowerCase()===i||s?.toLowerCase()===i);if(!o){a("selectCategory",`Category ${e} not found.`,"EFP000C01");return}t.selectCategory(o)}applyParameters(e){typeof e!="string"&&a("applyParameters","A query string must be passed.","EFP000D00"),M(e)}getVisibility(){return t.uiState.visibility}setVisibility(e){(typeof e!="object"||!Object.keys(e).length)&&a("setVisibility","The parameter must be passed.","EFP000E00"),t.uiState.setVisibility(e)}findLocation(){t.routeStore.findLocation()}zoomIn(){t.uiState.zoomIn()}zoomOut(){t.uiState.zoomOut()}switchView(){t.maplibreStore.activateMaplibre()}zoomTo(e,i){S("zoomTo called with selectors=%O options=%O",e,i);const o=F.safeParse(e);if(!o.success){a("zoomTo",o.error.message,"EFP001600");return}const n=A.safeParse(i);if(!n.success){a("zoomTo",n.error.message,"EFP001601");return}const s=this.getBounds(e);s&&this.fitBounds(s,i)}getBounds(e){S("getBounds called with selectors=%O",e);const i=F.safeParse(e);if(!i.success){a("getBounds",i.error.message,"EFP001400");return}const o=[];if(e.booths?.forEach(s=>{let r;s.externalId?r=t.boothStore.boothByExternalId.get(s.externalId):s.name&&(r=t.boothStore.boothByName.get(s.name.toLowerCase())),r?.rect&&o.push(r.rect)}),e.exhibitors?.forEach(s=>{let r;s.externalId?r=t.exhibitorStore.exhibitorByExternalId.get(s.externalId):s.name&&(r=t.exhibitorStore.exhibitorByName.get(s.name.toLowerCase())),r?.booths?.forEach(l=>{l.rect&&o.push(l.rect)})}),o.length===0)return;const n=m.fromMultiple(o);return{leftTop:{x:n.x1,y:n.y1},rightBottom:{x:n.x2,y:n.y2}}}fitBounds(e,i){if(S("fitBounds called with bounds=%O options=%O",e,i),!e){t.uiState.fitBounds();return}const o=K.safeParse(e);if(!o.success){a("fitBounds",o.error.message,"EFP001500");return}const n=A.safeParse(i);if(!n.success){a("fitBounds",n.error.message,"EFP001501");return}let s;if(i?.padding){const r=i.padding;s=m.fromX1y1x2y2(e.leftTop.x-r,e.leftTop.y-r,e.rightBottom.x+r,e.rightBottom.y+r)}else s=m.fromX1y1x2y2(e.leftTop.x,e.leftTop.y,e.rightBottom.x,e.rightBottom.y);t.uiState.moveToRect=s}getBoothRect(e){return typeof e!="string"&&a("getBoothRect","A booth name must be passed.","EFP000F00"),E(e)?.rect}convertToGeo(e,i){if(!b?.properties?.config){a("convertToGeo","The coordinates cannot be converted because the GPS configuration is not defined.","EFP001000");return}if(!e||!i){a("convertToGeo","Both coordinates must be passed.","EFP001001");return}return O(e,i,b.properties.config)}getGeoConfig(){const e=b?.properties?.config;return e?{bearing:e.bearing??0,p0:e.p0,p1:e.p1,p2:e.p2}:null}unstable_destroy(){let e=window.__efpElement.firstChild;Y(),window.removeEventListener("__efpStyleLoad",this.efpStyleLoadHandler),window.removeEventListener("error",N),t.maplibreStore.dispose(),j(),G(),_(),[...document.getElementsByTagName("script")].filter(o=>o.src.indexOf("/fp.svg")>-1||o.src.indexOf("/wf.data.js")>-1||o.src.indexOf("/data.js")>-1).forEach(o=>o.remove()),this.root.unmount(),e.remove()}search(e){return typeof e!="string"&&a("search","A search string must be passed.","EFP001100"),t.fuzzySearchEngineStore.loadEngine().then(()=>(t.searchStore.selectSearch(e),t.uiState.fuzzySearchItems.map(i=>({item:y(i.item),score:i.score}))))}getFloors(){return t.layerStore.floors.map(e=>({name:e.name,shortName:e.shortName,description:e.description,active:e.active,disabled:e.disabled,index:e.index}))}activateFloor(e){if(!e?.name&&e?.index==null){a("activateFloor","Invalid floorId. It must contain either a name or an index.","EFP001200");return}const i=this.getFloors();if(e.name){const o=i.find(n=>n.name===e.name||n.shortName===e.name);if(!o){a("activateFloor",`Floor with name "${e.name}" not found.`,"EFP001201");return}if(o.active)return;this.updateLayerVisibility(o.name,!0);return}if(e.index!==null){const o=i.find(s=>s.index===e.index),n=o?.name;if(!n){a("activateFloor",`Floor at index ${e.index} does not exist.`,"EFP001203");return}if(o.active)return;this.updateLayerVisibility(n,!0);return}}showPathway(e,i){const o=new URLSearchParams;if(o.set(U,e),i?.length){const{boothExternalIds:n,exhibitorExternalIds:s}=P(i);n.length>0&&o.set("booths",n.join(",")),s.length>0&&o.set("exhibitors",s.join(","))}this.applyParameters(o.toString())}showPathwayOnly(e,i){this.activateFloor({name:i}),t.layerStore.showPathWay(e),t.uiState.setPathwayOnlyMode(!0);const o=t.layerStore.findLayer(e),n=t.layerStore.findLayer(i),s=o?.rect||o?.viewbox?o:n;if(s?.rect||s?.viewbox){const r=s.viewbox??s.rect;t.uiState.moveToRect=m.fromX1y1x2y2(r.x1,r.y1,r.x2,r.y2)}}hidePathways(){this.highlightBooths([]),t.layerStore.hidePathways(),t.uiState.setPathwayOnlyMode(!1)}showSearch(){t.selectSearch("")}changeLanguage(e){const i=e?.toLowerCase?.();if(!Z(i)){a("changeLanguage",`Language "${e}" was not found. Available languages: ${J().map(n=>n.id).join(",")}`,"EFP001300");return}const o=new URLSearchParams;o.set(X,i),this.applyParameters(o.toString())}isGpsTrackingEnabled(){return t.routeStore.gpsEnabled}setGpsTrackingEnabled(e){t.routeStore.setGpsTrackingEnabled(e)}deselectCurrentPosition(){t.routeStore.selectCurrentPosition(null,!1)}deselectRoute(){t.routeStore.selectRoute(null),t.routeStore.setOnlyAccessible(!1)}reset(){this.selectBooth(""),this.selectExhibitor(""),this.selectCategory(),this.deselectCurrentPosition(),this.deselectRoute(),this.highlightEntities([]),t.uiState.kioskData&&t.resetCameraFn?t.resetCameraFn?.():this.fitBounds()}selectAccessibleRoute(e){t.routeStore.setOnlyAccessible(!0),this.selectRoute(e)}}function f(u){return typeof u=="string"?E(u):t.routeStore.getNearestBooth(u)}let k=0;function a(u,e,i){const o=`Error calling "${u}" SDK method.`,n=`${e.endsWith(".")?e:e+"."} More information at`;let s="https://js-sdk.expofp.com/api/packages";if(i&&(s+=`#error-${i}`),console.error(`${o} ${n} ${s}`),t.fp.disableRuntimeAlerts)return;t.uiState.setGlobalErrorMessage({title:o,body:C(L,{children:[n," ",g("a",{href:s,target:"_blank",rel:"noreferrer",children:s})]})}),clearTimeout(k);const r=8e3;k=window.setTimeout(()=>{const l=async()=>{t.uiState.globalErrorMessages.length>0&&(t.uiState.popGlobalErrorMessage(),await new Promise(h=>setTimeout(h,r/2)),l())};l()},r)}
1
+ import{jsx as g,Fragment as L,jsxs as C}from"react/jsx-runtime";import{reaction as T}from"mobx";import{createRoot as R}from"react-dom/client";import{install as I}from"resize-observer";import V from"./components/Layout";import $ from"./floorplan.loader";import{applyParameters as M,destroyHistory as _,initRouting as j}from"./services/routing";import t from"./store";import{Route as x,findBooth as E,separateExternalIds as P}from"./store/RouteStore";import{destroyUiHandlers as z}from"./store/init/init-ui";import{GaEventActions as w,destroyGtag as G,sendEventToGa as B,setConsentSettings as q}from"./tools/gtag";import N from"./tools/report-error";import{resetGlobalVariables as Y}from"./tools/reset";import H from"./tools/track-event";import{fpGeo as b}from"./data/fpGeo";import{convertLocalToGps as O,isValidPointCoords as d}from"./utils/gps";import m from"./core/Rect";import{mapEntity as y}from"./utils/mapEntity";import{LANG_KEY as X,MAX_ROUTE_WAYPOINTS as p,PATHWAY_KEY as U}from"./constants";import{getStorage as v}from"./utils/entity-storage";import{ErrorBoundary as D}from"@sentry/react";import{POISelectorsSchema as F,BoundsSchema as K,ZoomToOptionsSchema as A}from"./schemas/sdk.schemas";import W from"debug";import{optimizeWaypointOrder as Q}from"./wayfinding/core/routing/optimizeWaypointOrder";import{hasLocale as Z,getLocales as J}from"./utils/i18n";import{shouldLoadIntercom as ee}from"./intercom";const S=W("efp:api");I();export default class te extends ${root;init(){this.ignoreQuery||j(this.offHistory),H("load"),t.fp=this,q(this.allowConsent),B(w.Load,""),this.root=R(this.renderTarget),this.root.render(g(D,{children:g(V,{offHistory:this.offHistory,allowConsent:this.allowConsent})})),B(w.Rendered,""),T(()=>t.layerStore.layersLoaded,()=>{this.resolveReady(),t.initialized||this.onInit?.(this),t.initialized=!0});const e=ee(window.__data);e&&import("./intercom/bootIntercom").then(({bootIntercom:o})=>o(e)).catch(()=>{})}selectBooth(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectBooth","Parameter must be a string or an array of strings.","EFP000000");return}const o=t.boothStore.booths.filter(i=>typeof e=="string"?i.name===e||i.externalId===e:e.includes(i.name)||e.includes(i.externalId));t.selectBooth(o)}selectExhibitor(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectExhibitor","Parameter must be a string or an array of strings.","EFP000100");return}if(!e?.length){t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null;return}const o=t.exhibitorStore.exhibitors.filter(s=>typeof e=="string"?s.name===e||s.externalId===e:e.includes(s.name)||e.includes(s.externalId));if(!o?.length)return;if(typeof e=="string"){t.selectExhibitor(o[0]),t.moveToList([o[0]]);return}const i=o.flatMap(s=>s.booths.map(r=>r.layer)),{description:n}=i.reduce((s,r)=>(s.freq[r.description]=(s.freq[r.description]||0)+1,s.freq[r.description]>s.maxCount&&(s.maxCount=s.freq[r.description],s.mostFrequent=r),s),{freq:{},mostFrequent:i[0],maxCount:0}).mostFrequent;t.layerStore.updateVisibility(n,!0),t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null,t.uiState.list={type:"filter",items:o,query:{key:"exhibitors",value:o.map(s=>s.externalId).join(",")}},t.moveToList()}highlightExhibitors(e){Array.isArray(e)||a("highlightExhibitors","Parameter must be an array of strings.","EFP000200"),t.boothStore.highlightedByExternalIds=[],t.exhibitorStore.highlightedByExternalIds=[...e]}highlightBooths(e){Array.isArray(e)||a("highlightBooths","Parameter must be an array of strings.","EFP000300"),t.exhibitorStore.highlightedByExternalIds=[],t.boothStore.highlightedByExternalIds=[...e]}highlightEntities(e){Array.isArray(e)||a("highlightEntities","Parameter must be an array of strings.","EFP000400");const{boothExternalIds:o,exhibitorExternalIds:i}=P(e);t.boothStore.highlightedByExternalIds=[...o],t.exhibitorStore.highlightedByExternalIds=[...i]}selectRoute(e,o){if(Array.isArray(e)){let i=[...e];const n=i.shift(),s=i.pop();if(i.length>p)throw new Error(`The maximum number of waypoints is ${p}.`);if(!n||!s){a("selectRoute","Invalid route format: When providing an array, it must include at least two points: a start and a destination.","EFP000401");return}t.routeStore.selectRoute(new x(f(n),f(s),i.map(f)));return}e||a("selectRoute","At a minimum, the starting point must be passed.","EFP000402"),t.routeStore.selectRoute(new x(f(e),f(o)))}getOptimizedRoutes(e){if(!Array.isArray(e))return a("getOptimizedRoutes","Parameter must be an array.","EFP000500"),[];if(e.length>p)throw new Error(`The maximum number of waypoints is ${p}.`);const o=e.map(f).filter(n=>!!n);if(!o.length)throw new Error("No booths found for the provided waypoints.");const i=new Map;for(const n of o){const s=n.layer?.name??"",r=i.get(s);r?r.push(n):i.set(s,[n])}return Array.from(i.values()).map(n=>({waypoints:Q(n.map(s=>[s.name,{cx:s.rect.cx,cy:s.rect.cy}]))}))}selectCurrentPosition(e,o,i){const n=d(e.x)&&d(e.y),s=d(e.lng)&&d(e.lat);!n&&!s&&a("selectCurrentPosition","A point must be passed. Either (x,y) or (lat,lng) are required.","EFP000600"),t.routeStore.selectCurrentPosition(e,o,i),this.onCurrentPositionChanged?.(e)}setBookmarks(e){(!Array.isArray(e)||!e.length)&&a("setBookmarks","Parameter must be an array.","EFP000700"),e.forEach(o=>{const i=t.exhibitorStore.exhibitors.find(n=>n.name===o.name||n.externalId===o.externalId);i&&(i.bookmarked=o.bookmarked)})}setEntitiesBookmarks(e){if(!Array.isArray(e)||!e.length){a("setEntitiesBookmarks","Parameter must be an array.","EFP000701");return}const o=["exhibitor","event","speaker","booth"],i=e.find(r=>!r.type||!o.includes(r.type));if(i){a("setEntitiesBookmarks",`Invalid entity type: ${i.type}. Must be one of: ${o.join(", ")}.`,"EFP000702");return}const n=v("bookmarked"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceBookmarked(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceBookmarked(r)},speaker:{existingIds:new Set(n.speakers||[]),finder:r=>t.speakerStore.speakers.find(l=>l.name===r||l.externalId===r||l.slug===r),replacer:r=>t.speakerStore.replaceBookmarked(r)},booth:{existingIds:new Set(n.booths||[]),finder:r=>{const l=t.boothStore.findBooth(r);return l?.exhibitors.length===0?l:void 0},replacer:r=>t.boothStore.replaceBookmarked(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.bookmarked?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setEntitiesVisited(e){if(!Array.isArray(e)||!e.length){a("setEntitiesVisited","Parameter must be an array.","EFP000703");return}const o=["exhibitor","event"],i=e.find(r=>!r.type||!o.includes(r.type));if(i){a("setEntitiesVisited",`Invalid entity type: ${i.type}. Must be one of: ${o.join(", ")}.`,"EFP000704");return}const n=v("visited"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceVisited(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceVisited(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.visited?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setMarkers(e){if(!e||!Array.isArray(e.icons)||!Array.isArray(e.markers)){a("setMarkers","Invalid input.","EFP000800");return}t.routeStore.setMarkers(e)}selectMarker(e,o=!0){return typeof e!="string"&&a("selectMarker","The identifier must be passed.","EFP000900"),t.routeStore.selectMarker(e,o)}drawCircles(e){Array.isArray(e)||a("drawCircles","Invalid input.","EFP000A00"),t.uiState.debugCircles=e}checkRoutes(){t.routeStore.checkRoutes()}updateLayerVisibility(e,o){typeof e!="string"&&a("updateLayerVisibility","The layer name (string) must be passed.","EFP000B00"),o||a("updateLayerVisibility","Passing a false value to visible will have no effect.","EFP000B01"),t.layerStore.updateVisibility(e,o)}getCenterCoordinates(){return t.fp.getCenterCoordinates()}exhibitorsList(){return t.exhibitorStore.exhibitors.map(e=>y(e))}boothsList(){return t.boothStore.booths.map(e=>y(e))}categoriesList(){return t.categoryStore.categories.map(e=>y(e))}selectCategory(e){if(e==null||typeof e!="string"){t.searchStore.selectSearch();return}const o=e?.toLowerCase(),i=t.categoryStore.categories.find(({name:n,slug:s})=>n?.toLowerCase()===o||s?.toLowerCase()===o);if(!i){a("selectCategory",`Category ${e} not found.`,"EFP000C01");return}t.selectCategory(i)}applyParameters(e){typeof e!="string"&&a("applyParameters","A query string must be passed.","EFP000D00"),M(e)}getVisibility(){return t.uiState.visibility}setVisibility(e){(typeof e!="object"||!Object.keys(e).length)&&a("setVisibility","The parameter must be passed.","EFP000E00"),t.uiState.setVisibility(e)}findLocation(){t.routeStore.findLocation()}zoomIn(){t.uiState.zoomIn()}zoomOut(){t.uiState.zoomOut()}switchView(){t.maplibreStore.activateMaplibre()}zoomTo(e,o){S("zoomTo called with selectors=%O options=%O",e,o);const i=F.safeParse(e);if(!i.success){a("zoomTo",i.error.message,"EFP001600");return}const n=A.safeParse(o);if(!n.success){a("zoomTo",n.error.message,"EFP001601");return}const s=this.getBounds(e);s&&this.fitBounds(s,o)}getBounds(e){S("getBounds called with selectors=%O",e);const o=F.safeParse(e);if(!o.success){a("getBounds",o.error.message,"EFP001400");return}const i=[];if(e.booths?.forEach(s=>{let r;s.externalId?r=t.boothStore.boothByExternalId.get(s.externalId):s.name&&(r=t.boothStore.boothByName.get(s.name.toLowerCase())),r?.rect&&i.push(r.rect)}),e.exhibitors?.forEach(s=>{let r;s.externalId?r=t.exhibitorStore.exhibitorByExternalId.get(s.externalId):s.name&&(r=t.exhibitorStore.exhibitorByName.get(s.name.toLowerCase())),r?.booths?.forEach(l=>{l.rect&&i.push(l.rect)})}),i.length===0)return;const n=m.fromMultiple(i);return{leftTop:{x:n.x1,y:n.y1},rightBottom:{x:n.x2,y:n.y2}}}fitBounds(e,o){if(S("fitBounds called with bounds=%O options=%O",e,o),!e){t.uiState.fitBounds();return}const i=K.safeParse(e);if(!i.success){a("fitBounds",i.error.message,"EFP001500");return}const n=A.safeParse(o);if(!n.success){a("fitBounds",n.error.message,"EFP001501");return}let s;if(o?.padding){const r=o.padding;s=m.fromX1y1x2y2(e.leftTop.x-r,e.leftTop.y-r,e.rightBottom.x+r,e.rightBottom.y+r)}else s=m.fromX1y1x2y2(e.leftTop.x,e.leftTop.y,e.rightBottom.x,e.rightBottom.y);t.uiState.moveToRect=s}getBoothRect(e){return typeof e!="string"&&a("getBoothRect","A booth name must be passed.","EFP000F00"),E(e)?.rect}convertToGeo(e,o){if(!b?.properties?.config){a("convertToGeo","The coordinates cannot be converted because the GPS configuration is not defined.","EFP001000");return}if(!e||!o){a("convertToGeo","Both coordinates must be passed.","EFP001001");return}return O(e,o,b.properties.config)}getGeoConfig(){const e=b?.properties?.config;return e?{bearing:e.bearing??0,p0:e.p0,p1:e.p1,p2:e.p2}:null}unstable_destroy(){let e=window.__efpElement.firstChild;Y(),window.removeEventListener("__efpStyleLoad",this.efpStyleLoadHandler),window.removeEventListener("error",N),t.maplibreStore.dispose(),_(),z(),G(),[...document.getElementsByTagName("script")].filter(i=>i.src.indexOf("/fp.svg")>-1||i.src.indexOf("/wf.data.js")>-1||i.src.indexOf("/data.js")>-1).forEach(i=>i.remove()),this.root.unmount(),e.remove()}search(e){return typeof e!="string"&&a("search","A search string must be passed.","EFP001100"),t.fuzzySearchEngineStore.loadEngine().then(()=>(t.searchStore.selectSearch(e),t.uiState.fuzzySearchItems.map(o=>({item:y(o.item),score:o.score}))))}getFloors(){return t.layerStore.floors.map(e=>({name:e.name,shortName:e.shortName,description:e.description,active:e.active,disabled:e.disabled,index:e.index}))}activateFloor(e){if(!e?.name&&e?.index==null){a("activateFloor","Invalid floorId. It must contain either a name or an index.","EFP001200");return}const o=this.getFloors();if(e.name){const i=o.find(n=>n.name===e.name||n.shortName===e.name);if(!i){a("activateFloor",`Floor with name "${e.name}" not found.`,"EFP001201");return}if(i.active)return;this.updateLayerVisibility(i.name,!0);return}if(e.index!==null){const i=o.find(s=>s.index===e.index),n=i?.name;if(!n){a("activateFloor",`Floor at index ${e.index} does not exist.`,"EFP001203");return}if(i.active)return;this.updateLayerVisibility(n,!0);return}}showPathway(e,o){const i=new URLSearchParams;if(i.set(U,e),o?.length){const{boothExternalIds:n,exhibitorExternalIds:s}=P(o);n.length>0&&i.set("booths",n.join(",")),s.length>0&&i.set("exhibitors",s.join(","))}this.applyParameters(i.toString())}showPathwayOnly(e,o){this.activateFloor({name:o}),t.layerStore.showPathWay(e),t.uiState.setPathwayOnlyMode(!0);const i=t.layerStore.findLayer(e),n=t.layerStore.findLayer(o),s=i?.rect||i?.viewbox?i:n;if(s?.rect||s?.viewbox){const r=s.viewbox??s.rect;t.uiState.moveToRect=m.fromX1y1x2y2(r.x1,r.y1,r.x2,r.y2)}}hidePathways(){this.highlightBooths([]),t.layerStore.hidePathways(),t.uiState.setPathwayOnlyMode(!1)}showSearch(){t.selectSearch("")}changeLanguage(e){const o=e?.toLowerCase?.();if(!Z(o)){a("changeLanguage",`Language "${e}" was not found. Available languages: ${J().map(n=>n.id).join(",")}`,"EFP001300");return}const i=new URLSearchParams;i.set(X,o),this.applyParameters(i.toString())}isGpsTrackingEnabled(){return t.routeStore.gpsEnabled}setGpsTrackingEnabled(e){t.routeStore.setGpsTrackingEnabled(e)}deselectCurrentPosition(){t.routeStore.selectCurrentPosition(null,!1)}deselectRoute(){t.routeStore.selectRoute(null),t.routeStore.setOnlyAccessible(!1)}reset(){this.selectBooth(""),this.selectExhibitor(""),this.selectCategory(),this.deselectCurrentPosition(),this.deselectRoute(),this.highlightEntities([]),t.uiState.kioskData&&t.resetCameraFn?t.resetCameraFn?.():this.fitBounds()}selectAccessibleRoute(e){t.routeStore.setOnlyAccessible(!0),this.selectRoute(e)}}function f(u){return typeof u=="string"?E(u):t.routeStore.getNearestBooth(u)}let k=0;function a(u,e,o){const i=`Error calling "${u}" SDK method.`,n=`${e.endsWith(".")?e:e+"."} More information at`;let s="https://js-sdk.expofp.com/api/packages";if(o&&(s+=`#error-${o}`),console.error(`${i} ${n} ${s}`),t.fp.disableRuntimeAlerts)return;t.uiState.setGlobalErrorMessage({title:i,body:C(L,{children:[n," ",g("a",{href:s,target:"_blank",rel:"noreferrer",children:s})]})}),clearTimeout(k);const r=8e3;k=window.setTimeout(()=>{const l=async()=>{t.uiState.globalErrorMessages.length>0&&(t.uiState.popGlobalErrorMessage(),await new Promise(h=>setTimeout(h,r/2)),l())};l()},r)}
@@ -1 +1 @@
1
- import{configure as o}from"mobx";import e from"./init";import r from"./RootStore";o({computedRequiresReaction:!0});const t=new r;e(t);export default t;export const uiState=t.uiState,exhibitorStore=t.exhibitorStore,boothStore=t.boothStore,categoryStore=t.categoryStore,layersStore=t.layerStore,heatmapStore=t.heatmapStore,searchStore=t.searchStore,toursStore=t.toursStore,intercomStore=t.intercomStore;window.__store=t;
1
+ import{configure as t}from"mobx";import e from"./init";import r from"./RootStore";if(!window.__storeInitAllowed)throw new Error("Store initialization is not allowed before data is loaded");t({computedRequiresReaction:!0});const o=new r;e(o);export default o;export const uiState=o.uiState,exhibitorStore=o.exhibitorStore,boothStore=o.boothStore,categoryStore=o.categoryStore,layersStore=o.layerStore,heatmapStore=o.heatmapStore,searchStore=o.searchStore,toursStore=o.toursStore,intercomStore=o.intercomStore;window.__store=o;
@@ -1 +1 @@
1
- import c from"../data";import i from"./logger";import{getLocationHistory as f}from"../services/routing";import{uiState as m}from"../store";import{getSavedKiosk as u}from"../components/Kiosk/SetKiosk";import{requestKioskKey as p}from"../components/Kiosk/requestKioskKey";import{createTelemetry as d}from"./telemetry";let a;function g(){if(a)return a;const r=window.__efpEvent;let t;try{const e=new URL(c.trackerUrl).searchParams.get("expoId");t=e?Number(e):void 0}catch(e){i.error(e)}return a=d({url:"https://app.expofp.com/api/telemetry",expo:r,expoId:t}),a}function s(r,t){const e=f(),n=e[e.length-2];return{type:r,value:t!==void 0?String(t):"",timestamp:new Date().toISOString(),url:window.location.href,referrer:n?window.location.origin+n:""}}function S(){return!!c?.trackerUrl&&process.env.NODE_ENV==="production"&&!m.heatmap}export default async function v(r,t){if(i.log("trackEvent",r,t),!!S())try{const e=g(),n=u();if(n){const o=await k(n);if(o)e.setKioskId(o);else{e.enqueue(s(r,t));return}}y(e),await e.send(s(r,t))}catch(e){i.error("trackEvent",String(e))}}async function k(r){if(!r)return null;const t="expofp-kiosk-stats-id";let e=localStorage.getItem(t);return e||(e=await p(r,"https://app.expofp.com/"),e?(localStorage.setItem(t,e),e):null)}let l=!1;function y(r){if(l)return;l=!0;const t="efp-track-events";try{const e=localStorage.getItem(t);if(!e)return;const n=JSON.parse(e);if(!Array.isArray(n)){localStorage.removeItem(t);return}for(const o of n)!o||typeof o!="object"||!o.headers||r.enqueue({type:o.type,value:o.value!==void 0?String(o.value):"",timestamp:o.timeStamp,url:o.headers["X-href"],referrer:o.headers["X-ref"]??""});localStorage.removeItem(t)}catch(e){localStorage.removeItem(t),i.error("Failed to migrate old events.",String(e))}}
1
+ import{createKiosk as f}from"../components/Kiosk/kioskApi";import{getSavedKiosk as u}from"../components/Kiosk/SetKiosk";import{KIOSK_STATS_ID_STORAGE_KEY as c}from"../components/Kiosk/SetKiosk/constants";import l from"../data";import{getLocationHistory as p}from"../services/routing";import{uiState as d}from"../store";import i from"./logger";import{createTelemetry as g}from"./telemetry";let a;function S(){if(a)return a;const r=window.__efpEvent;let e;try{const t=new URL(l.trackerUrl).searchParams.get("expoId");e=t?Number(t):void 0}catch(t){i.error(t)}return a=g({url:"https://app.expofp.com/api/telemetry",expo:r,expoId:e}),a}function s(r,e){const t=p(),n=t[t.length-2];return{type:r,value:e!==void 0?String(e):"",timestamp:new Date().toISOString(),url:window.location.href,referrer:n?window.location.origin+n:""}}function v(){return!!l?.trackerUrl&&process.env.NODE_ENV==="production"&&!d.heatmap}export default async function k(r,e){if(i.log("trackEvent",r,e),!!v())try{const t=S(),n=u();if(n){const o=await y(n);if(o)t.setKioskId(o);else{t.enqueue(s(r,e));return}}h(t),await t.send(s(r,e))}catch(t){i.error("trackEvent",String(t))}}async function y(r){if(!r)return null;let e=localStorage.getItem(c);return e||(e=await f(r,"https://app.expofp.com/"),e?(localStorage.setItem(c,e),e):null)}let m=!1;function h(r){if(m)return;m=!0;const e="efp-track-events";try{const t=localStorage.getItem(e);if(!t)return;const n=JSON.parse(t);if(!Array.isArray(n)){localStorage.removeItem(e);return}for(const o of n)!o||typeof o!="object"||!o.headers||r.enqueue({type:o.type,value:o.value!==void 0?String(o.value):"",timestamp:o.timeStamp,url:o.headers["X-href"],referrer:o.headers["X-ref"]??""});localStorage.removeItem(e)}catch(t){localStorage.removeItem(e),i.error("Failed to migrate old events.",String(t))}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expofp/floorplan",
3
- "version": "3.7.2",
3
+ "version": "3.7.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/expofp/efp-app.git",
@@ -73,8 +73,8 @@
73
73
  "tslib": "^2.3.0",
74
74
  "uuid": "^9.0.1",
75
75
  "zod": "4.3.5",
76
- "@expofp/resolve": "3.7.2",
77
- "@expofp/debug": "3.7.2"
76
+ "@expofp/resolve": "3.7.4",
77
+ "@expofp/debug": "3.7.4"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@babel/plugin-proposal-decorators": "^7.29.7",
@@ -1,232 +0,0 @@
1
- (function() {
2
- try {
3
- var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.7.2" };
5
- var t = new e.Error().stack;
6
- t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "ccf808b6-ff9f-4734-92d3-9480d3cb638c", e._sentryDebugIdIdentifier = "sentry-dbid-ccf808b6-ff9f-4734-92d3-9480d3cb638c");
7
- } catch {}
8
- })();
9
- import { n as e, r as t, t as n } from "./storage-CveWsSQC.js";
10
- import { b as r, g as i, p as a, s as o, u as s, v as c } from "./i18n-Cv7u46Kc.js";
11
- import { Rt as l, o as u, yt as d } from "./store-C9IczNWg.js";
12
- //#region src/components/Map/pointInConvexQuad.ts
13
- function f(e, t) {
14
- let n = 0;
15
- for (let r = 0; r < 4; r++) {
16
- let i = t[r], a = t[(r + 1) % 4], o = (a.x - i.x) * (e.y - i.y) - (a.y - i.y) * (e.x - i.x);
17
- if (!Number.isFinite(o)) return !1;
18
- if (o === 0) continue;
19
- let s = o > 0 ? 1 : -1;
20
- if (n === 0) n = s;
21
- else if (n !== s) return !1;
22
- }
23
- return n !== 0;
24
- }
25
- //#endregion
26
- //#region src/components/Map/visibleArea.ts
27
- function p(e) {
28
- let t = l(e.viewport.canvasToSvg({
29
- x: 0,
30
- y: 0
31
- })), n = l(e.viewport.canvasToSvg({
32
- x: e.canvas.clientWidth,
33
- y: 0
34
- })), r = l(e.viewport.canvasToSvg({
35
- x: 0,
36
- y: e.canvas.clientHeight
37
- })), i = l(e.viewport.canvasToSvg({
38
- x: e.canvas.clientWidth,
39
- y: e.canvas.clientHeight
40
- })), a = Math.min(t.x, n.x, r.x, i.x), o = Math.max(t.x, n.x, r.x, i.x), s = Math.min(t.y, n.y, r.y, i.y), c = Math.max(t.y, n.y, r.y, i.y);
41
- return {
42
- x: a,
43
- y: s,
44
- width: o - a,
45
- height: c - s,
46
- left: a,
47
- right: o,
48
- top: c,
49
- bottom: s,
50
- center: {
51
- x: (a + o) / 2,
52
- y: (s + c) / 2
53
- },
54
- corners: [
55
- t,
56
- n,
57
- i,
58
- r
59
- ]
60
- };
61
- }
62
- function m(e, t) {
63
- return f(t, p(e).corners);
64
- }
65
- //#endregion
66
- //#region src/components/Kiosk/KioskStore.ts
67
- var h, g, _;
68
- function v(e, t, n, r) {
69
- n && Object.defineProperty(e, t, {
70
- enumerable: n.enumerable,
71
- configurable: n.configurable,
72
- writable: n.writable,
73
- value: n.initializer ? n.initializer.call(r) : void 0
74
- });
75
- }
76
- function y(e, t, n, r, i) {
77
- var a = {};
78
- return Object.keys(r).forEach(function(e) {
79
- a[e] = r[e];
80
- }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
81
- return r(e, t, n) || n;
82
- }, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
83
- }
84
- var b = new (h = class {
85
- constructor() {
86
- v(this, "savedKiosk", g, this), v(this, "statusMessages", _, this), this.statusMessageTimer = 0, this.initialPtScale = void 0;
87
- }
88
- get kiosk() {
89
- return u.uiState.kioskData;
90
- }
91
- setKiosk(e) {
92
- u.uiState.setKioskData(e);
93
- }
94
- get renderer() {
95
- return u.rendererService.renderer;
96
- }
97
- getCameraState() {
98
- let e = u.rendererService.getCameraState();
99
- return e ? {
100
- mapInitialPtScale: this.initialPtScale,
101
- mapPtScale: e.ptScale,
102
- mapCenterX: e.center.x,
103
- mapCenterY: e.center.y,
104
- mapRollDegrees: e.roll,
105
- mapPitch: e.pitch
106
- } : {};
107
- }
108
- get hasUnsavedChanges() {
109
- let e = this.savedKiosk, t = r(this.kiosk);
110
- if (!t || !e) return !!t != !!e;
111
- let n = Object.keys(e), i = Object.keys(t);
112
- if (n.length !== i.length) return !0;
113
- for (let r of n) if (!(r in t) || e[r] !== t[r]) return !0;
114
- return !1;
115
- }
116
- addStatusMessage(e) {
117
- this.statusMessages = [{
118
- ...e,
119
- id: Date.now()
120
- }], this.startCleanupMessages();
121
- }
122
- clearStatusMessages() {
123
- this.statusMessages = [];
124
- }
125
- startCleanupMessages() {
126
- clearTimeout(this.statusMessageTimer), this.statusMessageTimer = window.setTimeout(() => this.clearStatusMessages(), 1e3);
127
- }
128
- async resetCamera() {
129
- let { z: e, mapRollDegrees: t, mapInitialPtScale: n, mapPtScale: r, mapCenterX: i, mapCenterY: a } = this.kiosk || {};
130
- await this.renderer.controls.resetCamera({
131
- pan: !0,
132
- zoom: !0,
133
- roll: !0,
134
- pitch: !0
135
- }, !0), c(() => {
136
- Number.isFinite(n) && Number.isFinite(r) && r > 0 && this.renderer.controls.zoomBy(n / r, !0), Number.isFinite(i) && Number.isFinite(a) && this.renderer.controls.panTo(i, a, !0), Number.isFinite(t) && this.renderer.controls.rollTo(t, !0), e && u.fp.activateFloor({ name: e });
137
- });
138
- }
139
- restoreData() {
140
- let e = n();
141
- return e && (this.setKiosk(e), this.savedKiosk = e, u.uiState.kiosk = !0, this.resetCamera()), e;
142
- }
143
- handleSetupReady() {
144
- this.restoreData(), u.uiState.kiosk = !0, u.uiState.hideFreeOrDemo = !0, u.uiState.setForceDimm(!0), u.searchStore.setSearchText(""), u.searchStore.setFocused(!1);
145
- }
146
- handleClose() {
147
- this.setKiosk(null), u.uiState.setForceDimm(!1), u.uiState.enableSetKioskMode(!1), u.searchStore.closeSearch(), this.resetCamera();
148
- }
149
- handleDelete() {
150
- e(), this.setKiosk(null), u.uiState.resetMapSettings(), u.uiState.resetUIScale(), this.resetCamera(), this.addStatusMessage({
151
- variant: "success",
152
- title: o("Deleted")
153
- });
154
- }
155
- handleSave() {
156
- let e = r(this.kiosk), n = this.getCameraState(), i = {
157
- ...e,
158
- ...n
159
- };
160
- if (!m(this.renderer, i)) {
161
- this.addStatusMessage({
162
- variant: "error",
163
- title: o("Kiosk not visible")
164
- });
165
- return;
166
- }
167
- this.setKiosk(i), t(i), u.uiState.setUIScale(i.uiScale, !0), this.addStatusMessage({
168
- variant: "success",
169
- title: o("Saved")
170
- }), this.savedKiosk = i;
171
- }
172
- delayChange(e) {
173
- requestAnimationFrame(() => e == null ? void 0 : e());
174
- }
175
- handleChange(e) {
176
- let t = r(this.kiosk);
177
- t && (Number.isFinite(e.angle) && this.setKiosk({
178
- ...t,
179
- heading: e.angle
180
- }), Number.isFinite(e.scale) && (this.setKiosk({
181
- ...t,
182
- uiScale: e.scale
183
- }), this.delayChange(() => u.uiState.setUIScale(e.scale, !1))), Number.isFinite(e.percent) && this.setKiosk({
184
- ...t,
185
- iconSizePercent: e.percent
186
- }));
187
- }
188
- setInitialPtScale(e) {
189
- if (this.initialPtScale) return;
190
- this.initialPtScale = e;
191
- let t = r(this.kiosk);
192
- t && this.setKiosk({
193
- ...t,
194
- mapInitialPtScale: e
195
- });
196
- }
197
- handleClick(e) {
198
- var t;
199
- let n = r(this.kiosk), i = u.fp.getFloors(), a = d() ? (t = i.find((e) => e.active)) == null ? void 0 : t.name : null, o = u.uiState.uiScale;
200
- this.setKiosk({
201
- ...n,
202
- x: e.x,
203
- y: e.y,
204
- z: a,
205
- uiScale: (n == null ? void 0 : n.uiScale) || o,
206
- heading: (n == null ? void 0 : n.heading) || 0,
207
- iconSizePercent: (n == null ? void 0 : n.iconSizePercent) || 100,
208
- ...this.getCameraState()
209
- });
210
- }
211
- handleNavigationChange() {
212
- let e = r(this.kiosk);
213
- e && this.setKiosk({
214
- ...e,
215
- ...this.getCameraState()
216
- });
217
- }
218
- }, y(h.prototype, "kiosk", [a], Object.getOwnPropertyDescriptor(h.prototype, "kiosk"), h.prototype), y(h.prototype, "setKiosk", [s], Object.getOwnPropertyDescriptor(h.prototype, "setKiosk"), h.prototype), y(h.prototype, "renderer", [a], Object.getOwnPropertyDescriptor(h.prototype, "renderer"), h.prototype), g = y(h.prototype, "savedKiosk", [i], {
219
- configurable: !0,
220
- enumerable: !0,
221
- writable: !0,
222
- initializer: null
223
- }), y(h.prototype, "hasUnsavedChanges", [a], Object.getOwnPropertyDescriptor(h.prototype, "hasUnsavedChanges"), h.prototype), _ = y(h.prototype, "statusMessages", [i], {
224
- configurable: !0,
225
- enumerable: !0,
226
- writable: !0,
227
- initializer: function() {
228
- return [];
229
- }
230
- }), y(h.prototype, "addStatusMessage", [s], Object.getOwnPropertyDescriptor(h.prototype, "addStatusMessage"), h.prototype), y(h.prototype, "clearStatusMessages", [s], Object.getOwnPropertyDescriptor(h.prototype, "clearStatusMessages"), h.prototype), y(h.prototype, "startCleanupMessages", [s], Object.getOwnPropertyDescriptor(h.prototype, "startCleanupMessages"), h.prototype), y(h.prototype, "resetCamera", [s], Object.getOwnPropertyDescriptor(h.prototype, "resetCamera"), h.prototype), y(h.prototype, "restoreData", [s], Object.getOwnPropertyDescriptor(h.prototype, "restoreData"), h.prototype), y(h.prototype, "handleSetupReady", [s], Object.getOwnPropertyDescriptor(h.prototype, "handleSetupReady"), h.prototype), y(h.prototype, "handleClose", [s], Object.getOwnPropertyDescriptor(h.prototype, "handleClose"), h.prototype), y(h.prototype, "handleDelete", [s], Object.getOwnPropertyDescriptor(h.prototype, "handleDelete"), h.prototype), y(h.prototype, "handleSave", [s], Object.getOwnPropertyDescriptor(h.prototype, "handleSave"), h.prototype), y(h.prototype, "handleChange", [s], Object.getOwnPropertyDescriptor(h.prototype, "handleChange"), h.prototype), y(h.prototype, "setInitialPtScale", [s], Object.getOwnPropertyDescriptor(h.prototype, "setInitialPtScale"), h.prototype), y(h.prototype, "handleClick", [s], Object.getOwnPropertyDescriptor(h.prototype, "handleClick"), h.prototype), y(h.prototype, "handleNavigationChange", [s], Object.getOwnPropertyDescriptor(h.prototype, "handleNavigationChange"), h.prototype), h)();
231
- //#endregion
232
- export { b as t };