@expofp/floorplan 3.11.12 → 3.12.0

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 (195) hide show
  1. package/dist/browser/{Button-CdChKHNd.js → Button-C5CmZ0so.js} +6 -6
  2. package/dist/browser/CookieConsent-kl_B6sH5.js +38 -0
  3. package/dist/browser/{Debug-BQJRkSVw.js → Debug-DymHiO2Z.js} +14 -14
  4. package/dist/browser/{Demo-Dh5hQ00u.js → Demo-5tRIgVJF.js} +14 -14
  5. package/dist/browser/{Free-Be0wdt8h.js → Free-hYQaAEbK.js} +16 -16
  6. package/dist/browser/{Gallery-DsC-3InH.js → Gallery-D10tiZuW.js} +24 -24
  7. package/dist/browser/{GpsLoader-l-DhiN5_.js → GpsLoader-CNkUVJdS.js} +51 -50
  8. package/dist/browser/{KioskStore-hBGigttj.js → KioskStore-2WAOxGM0.js} +31 -31
  9. package/dist/browser/{MaplibreAdapter-B2PgQxAb.js → MaplibreAdapter-B_tNIXx4.js} +2360 -2331
  10. package/dist/browser/{ModalContainer-DngQzOVE.js → ModalContainer-CckyeoUG.js} +13 -13
  11. package/dist/browser/{PermissionNotice-Bstp1Ig2.js → PermissionNotice-qetBrmIY.js} +7 -7
  12. package/dist/browser/{SetKioskMode-BXTIENxU.js → SetKioskMode-BOjaqczc.js} +9 -9
  13. package/dist/browser/ShowKiosk-CcQHeM8K.js +33 -0
  14. package/dist/browser/{TouchHand-CZ4-CE4e.js → TouchHand-DKpxmOwz.js} +5 -5
  15. package/dist/browser/{ViewerMenuPanel-Dc7XYnXW.js → ViewerMenuPanel-HULfvF54.js} +25 -25
  16. package/dist/browser/{add-debug-secret-listener-DOVFjqJo.js → add-debug-secret-listener-BTGIVZFY.js} +1 -1
  17. package/dist/browser/{boolean-editor-B-S4WhPP.js → boolean-editor-oT7I3D0U.js} +10 -10
  18. package/dist/browser/{bootIntercom-D41iCVYM.js → bootIntercom-YnsJPGCs.js} +3 -3
  19. package/dist/browser/{booth-by-xy-S_lLb4ur.js → booth-by-xy-DTknn14w.js} +292 -295
  20. package/dist/browser/bundle.json +78 -63
  21. package/dist/browser/{classnames-BeH2kA4o.js → classnames-VfuHc9uB.js} +2 -2
  22. package/dist/browser/{client-Be_UxAZT.js → client-Bevofhdz.js} +5 -5
  23. package/dist/browser/{components-RZNETvKi.js → components-COUCtdev.js} +1369 -1316
  24. package/dist/browser/{debug-overlay-DjwfpG69.js → debug-overlay-BLN24Eyb.js} +415 -415
  25. package/dist/browser/{debug-ui-D_afzMrh.js → debug-ui-BT7Ddvoj.js} +7 -7
  26. package/dist/browser/{dist-CZz9piI4.js → dist-CWBtHMZR.js} +6 -6
  27. package/dist/browser/{dist-B-m8ZFBo.js → dist-CtKSG8GG.js} +4 -4
  28. package/dist/browser/{dist-DKu24Nie.js → dist-saTnlhyc.js} +7 -7
  29. package/dist/browser/{browser-pQxW93uF.js → efp-debug-init-CYoM0s-a.js} +61 -14
  30. package/dist/browser/enum-editor-vF4eKelT.js +34 -0
  31. package/dist/browser/{es5-DPnfG3EX.js → es5-COzmRHZr.js} +2 -2
  32. package/dist/browser/{event-not-found-CE2zhFPJ.js → event-not-found-BZkFh-P9.js} +1 -1
  33. package/dist/browser/{exports-BtXbxSeU.js → exports-BsqJX0o4.js} +1 -1
  34. package/dist/browser/{favicon-B7xwIKyS.js → favicon-BBgsGFil.js} +1 -1
  35. package/dist/browser/{fetch-retry.umd-BiAebF_i.js → fetch-retry.umd-BFTNSvNa.js} +2 -2
  36. package/dist/browser/{flex-DGirEfRz.js → flex-DnOM12q-.js} +6 -6
  37. package/dist/browser/{floorplan.loader-DSx2rwZS.js → floorplan.loader-DuVsbJsr.js} +890 -902
  38. package/dist/browser/floorplan.ready-B2SvQNh9.js +1326 -0
  39. package/dist/browser/{fuse-BuZwVNBr.js → fuse-Ddn6vCOL.js} +2 -2
  40. package/dist/browser/i18n-D9dsV3GV.js +8659 -0
  41. package/dist/browser/index.js +49 -117
  42. package/dist/browser/{index.module-BktNOlw2.js → index.module-CFTe1PiT.js} +23 -23
  43. package/dist/browser/integrateKiosk-vlZ9-8EP.js +28 -0
  44. package/dist/browser/{is-webview-DxtfBbGj.js → is-webview-SfodrdWn.js} +1 -1
  45. package/dist/browser/{jsx-runtime-DftMjMlZ.js → jsx-runtime-DEIf9CUU.js} +2 -2
  46. package/dist/browser/{lib-_QD5dt19.js → lib-CCkkeprZ.js} +5 -5
  47. package/dist/browser/loadImage-C356B0zk.js +58 -0
  48. package/dist/browser/{logDeviceInfo-CiCKGxKy.js → logDeviceInfo-UnfHYhqR.js} +9 -9
  49. package/dist/browser/{main-C6h73Uc5.js → main-JnTe8DvY.js} +1 -1
  50. package/dist/browser/mobx-DPek3UBx.js +24 -0
  51. package/dist/browser/optional-boolean-editor-HEZXOpAy.js +20 -0
  52. package/dist/browser/optional-enum-editor-DpN8qtqv.js +34 -0
  53. package/dist/browser/optional-string-editor-iR5VHFAR.js +30 -0
  54. package/dist/browser/{particles.min-CiLQfUCo.js → particles.min-BWlVGdrr.js} +2 -2
  55. package/dist/browser/{prop-types-8E5fCOgQ.js → prop-types-DA-Iew4C.js} +2 -2
  56. package/dist/browser/{react-B9lmaQYI.js → react-C02q0n7M.js} +2 -2
  57. package/dist/browser/{react-dom-CPWfZdj5.js → react-dom-BV1hX9nO.js} +4 -4
  58. package/dist/browser/reset-all-settings-BQgeIRam.js +190 -0
  59. package/dist/browser/{rolldown-runtime-CJax_ib9.js → rolldown-runtime-DYSU24gn.js} +1 -1
  60. package/dist/browser/{enum-editor-BtYkUhft.js → select-D0S5iMvJ.js} +261 -283
  61. package/dist/browser/{settings-BufKqYwI.js → settings-Dw78gtQ_.js} +3 -3
  62. package/dist/browser/{settings-item-D3AzjjoO.js → settings-item-BSR8Iz1R.js} +7 -7
  63. package/dist/browser/{store-DGdGzsa_.js → store-DxRBdgZM.js} +7325 -7643
  64. package/dist/browser/string-editor-BwtRnquZ.js +30 -0
  65. package/dist/browser/text-field-D5x33kIn.js +88 -0
  66. package/dist/browser/{theme-DvIMSzdB.js → theme-uaffdJE1.js} +9 -9
  67. package/dist/browser/ui-jO3fquPn.js +43 -0
  68. package/dist/browser/{useRenderTarget-hqd7cVeW.js → useRenderTarget-NdsPPF5u.js} +5 -5
  69. package/dist/esm/components/Booth/Booth.js +1 -1
  70. package/dist/esm/components/EntityListRow.js +1 -1
  71. package/dist/esm/components/Exhibitor.js +1 -1
  72. package/dist/esm/components/Kiosk/ShowKiosk.js +1 -1
  73. package/dist/esm/components/LanguageRowContainer.d.ts +1 -0
  74. package/dist/esm/components/Layout.d.ts +2 -1
  75. package/dist/esm/components/Layout.js +1 -1
  76. package/dist/esm/components/LogoOverlay.js +1 -1
  77. package/dist/esm/components/Map/Map.js +1 -1
  78. package/dist/esm/components/Map/drawing/config/config-bg.d.ts +1 -1
  79. package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -1
  80. package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +1 -1
  81. package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
  82. package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
  83. package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
  84. package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -1
  85. package/dist/esm/components/Maplibre/MaplibreWrapper.js +1 -1
  86. package/dist/esm/components/Maplibre/utils/resolve-map-style.d.ts +15 -0
  87. package/dist/esm/components/Maplibre/utils/resolve-map-style.js +1 -0
  88. package/dist/esm/components/Menu.d.ts +3 -2
  89. package/dist/esm/components/Menu.js +1 -1
  90. package/dist/esm/components/OverlayContainer.d.ts +2 -1
  91. package/dist/esm/components/OverlayContainer.js +1 -1
  92. package/dist/esm/components/Ws.js +1 -1
  93. package/dist/esm/constants.d.ts +7 -13
  94. package/dist/esm/constants.js +1 -1
  95. package/dist/esm/data/fp-payloads.d.ts +27 -0
  96. package/dist/esm/data/fp-payloads.js +1 -0
  97. package/dist/esm/data/fpGeo.js +1 -1
  98. package/dist/esm/data/index.d.ts +8 -2
  99. package/dist/esm/data/index.js +1 -1
  100. package/dist/esm/data/svg.d.ts +4 -1
  101. package/dist/esm/data/svg.js +1 -1
  102. package/dist/esm/floorplan.loader.d.ts +13 -4
  103. package/dist/esm/floorplan.loader.js +1 -1
  104. package/dist/esm/floorplan.ready.d.ts +8 -0
  105. package/dist/esm/floorplan.ready.js +1 -1
  106. package/dist/esm/index.d.ts +0 -1
  107. package/dist/esm/index.js +1 -1
  108. package/dist/esm/intercom/shouldLoad.d.ts +2 -2
  109. package/dist/esm/intercom/shouldLoad.js +1 -1
  110. package/dist/esm/load-dev.d.ts +44 -0
  111. package/dist/esm/load-dev.js +1 -0
  112. package/dist/esm/load.d.ts +3 -3
  113. package/dist/esm/load.js +3 -3
  114. package/dist/esm/renderer/engine-core/fonts.js +1 -1
  115. package/dist/esm/services/URLFilterManager.d.ts +15 -0
  116. package/dist/esm/services/URLFilterManager.js +1 -1
  117. package/dist/esm/services/multi-slug.d.ts +20 -0
  118. package/dist/esm/services/multi-slug.js +1 -0
  119. package/dist/esm/services/url-dispatch.d.ts +24 -0
  120. package/dist/esm/services/url-dispatch.js +1 -0
  121. package/dist/esm/services/url-sync.d.ts +36 -0
  122. package/dist/esm/services/url-sync.js +1 -0
  123. package/dist/esm/store/BoothStore.d.ts +2 -1
  124. package/dist/esm/store/ExhibitorStore.d.ts +3 -2
  125. package/dist/esm/store/ExhibitorStore.js +1 -1
  126. package/dist/esm/store/LayerStore.js +1 -1
  127. package/dist/esm/store/MaplibreStore.js +1 -1
  128. package/dist/esm/store/PoiTypeStore.d.ts +1 -1
  129. package/dist/esm/store/SearchStore.js +1 -1
  130. package/dist/esm/store/UIState.d.ts +1 -5
  131. package/dist/esm/store/UIState.js +1 -1
  132. package/dist/esm/store/init/init-bookmarks.d.ts +2 -0
  133. package/dist/esm/store/init/init-booths.js +1 -1
  134. package/dist/esm/store/init/init-categories.js +1 -1
  135. package/dist/esm/store/init/init-events.js +1 -1
  136. package/dist/esm/store/init/init-exhibitors.js +1 -1
  137. package/dist/esm/store/init/init-layers.js +1 -1
  138. package/dist/esm/store/types.d.ts +2 -1
  139. package/dist/esm/tools/event-not-found.d.ts +4 -3
  140. package/dist/esm/tools/gtag.d.ts +3 -2
  141. package/dist/esm/tools/gtag.js +1 -1
  142. package/dist/esm/tools/handleDebugMode.d.ts +17 -0
  143. package/dist/esm/tools/handleDebugMode.js +1 -1
  144. package/dist/esm/tools/loaders.d.ts +0 -2
  145. package/dist/esm/tools/loaders.js +1 -1
  146. package/dist/esm/tools/rebookingUrl.js +1 -1
  147. package/dist/esm/tools/reset.js +1 -1
  148. package/dist/esm/tools/settings.js +1 -1
  149. package/dist/esm/tools/track-event.js +1 -1
  150. package/dist/esm/types/drawing.types.d.ts +18 -0
  151. package/dist/esm/types.d.ts +52 -38
  152. package/dist/esm/utils/areLayersEnabled.js +1 -1
  153. package/dist/esm/utils/camera-map-settings.d.ts +20 -0
  154. package/dist/esm/utils/camera-map-settings.js +1 -0
  155. package/dist/esm/utils/customCommands.js +1 -1
  156. package/dist/esm/utils/getLogoUrl.d.ts +8 -1
  157. package/dist/esm/utils/getLogoUrl.js +1 -1
  158. package/dist/esm/utils/heatmap-enabled.d.ts +13 -0
  159. package/dist/esm/utils/heatmap-enabled.js +1 -0
  160. package/dist/esm/utils/i18n.js +1 -1
  161. package/dist/esm/utils/imageloader.js +1 -1
  162. package/dist/esm/utils/is-debug.d.ts +0 -8
  163. package/dist/esm/utils/is-debug.js +1 -1
  164. package/dist/esm/utils/legacy-storage-keys.d.ts +16 -0
  165. package/dist/esm/utils/legacy-storage-keys.js +1 -0
  166. package/dist/esm/utils/loadCustomCss.d.ts +2 -2
  167. package/dist/esm/utils/mapEntity.d.ts +1 -0
  168. package/dist/esm/utils/preview-exhibitor.d.ts +1 -1
  169. package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +1 -1
  170. package/dist/esm/wayfinding/adapters/graphDataSource.js +1 -1
  171. package/package.json +8 -5
  172. package/dist/browser/CookieConsent-DmWcbyRQ.js +0 -38
  173. package/dist/browser/ShowKiosk-CpIQKRDF.js +0 -28
  174. package/dist/browser/efp-debug-init-B-EZE_S2.js +0 -42
  175. package/dist/browser/floorplan.ready-CX4L0Qyc.js +0 -1406
  176. package/dist/browser/i18n-BqlnpLSm.js +0 -3942
  177. package/dist/browser/loadImage-CvnSDOL0.js +0 -121
  178. package/dist/browser/mobx-71cpvuRe.js +0 -24
  179. package/dist/browser/reset-all-settings-CAVnp-HU.js +0 -141
  180. package/dist/browser/string-editor-BEBEF1X7.js +0 -108
  181. package/dist/browser/ui-DIQ3vheI.js +0 -43
  182. package/dist/esm/_NEW_types.d.ts +0 -6
  183. package/dist/esm/_NEW_types.js +0 -1
  184. package/dist/esm/_misc_to_move/manifest.d.ts +0 -14
  185. package/dist/esm/_misc_to_move/ref.d.ts +0 -6
  186. package/dist/esm/_misc_to_move/ref.js +0 -1
  187. package/dist/esm/data/Flags.d.ts +0 -23
  188. package/dist/esm/data/Flags.js +0 -1
  189. package/dist/esm/data/validate-data.d.ts +0 -3
  190. package/dist/esm/data/validate-data.js +0 -1
  191. package/dist/esm/services/routing.d.ts +0 -7
  192. package/dist/esm/services/routing.js +0 -1
  193. package/dist/esm/utils/mergeExhibitors.d.ts +0 -3
  194. package/dist/esm/utils/mergeExhibitors.js +0 -1
  195. /package/dist/esm/{_misc_to_move/manifest.js → types/drawing.types.js} +0 -0
@@ -1 +1 @@
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 a from"./logger";import{createTelemetry as g}from"./telemetry";let i;function S(){if(i)return i;const r=window.__efpEvent;let e;try{const t=new URL(l.trackerUrl).searchParams.get("expoId");e=t?Number(t):void 0}catch(t){a.error(t)}return i=g({url:"https://app.expofp.com/api/telemetry",expo:r,expoId:e}),i}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(a.log("trackEvent",r,e),!!v())try{const t=S(),n=u();if(n){const o=await I(n);if(o)t.setKioskId(o);else{t.enqueue(s(r,e));return}}else localStorage.removeItem(c),t.setKioskId("");y(t),await t.send(s(r,e))}catch(t){a.error("trackEvent",String(t))}}async function I(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 y(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),a.error("Failed to migrate old events.",String(t))}}
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/url-sync";import{uiState as d}from"../store";import a from"./logger";import{createTelemetry as g}from"./telemetry";let i;function S(){if(i)return i;const r=window.__efpEvent;let e;try{const t=new URL(l.trackerUrl).searchParams.get("expoId");e=t?Number(t):void 0}catch(t){a.error(t)}return i=g({url:"https://app.expofp.com/api/telemetry",expo:r,expoId:e}),i}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(a.log("trackEvent",r,e),!!v())try{const t=S(),n=u();if(n){const o=await I(n);if(o)t.setKioskId(o);else{t.enqueue(s(r,e));return}}else localStorage.removeItem(c),t.setKioskId("");y(t),await t.send(s(r,e))}catch(t){a.error("trackEvent",String(t))}}async function I(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 y(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),a.error("Failed to migrate old events.",String(t))}}
@@ -0,0 +1,18 @@
1
+ import { type ColorInput, type ShapeDef } from '@expofp/renderer';
2
+ /**
3
+ * Drawing-side shape types, formerly declared in the retired `data/Data.d.ts`
4
+ * (the event-data types now live on `@expofp/config`; these two are renderer
5
+ * concepts, not data-document fields).
6
+ */
7
+ /** A renderer shape with the floorplan painters' background extensions. */
8
+ export interface ShapeBgDef extends ShapeDef {
9
+ defaultColor?: ColorInput;
10
+ unblinking?: boolean;
11
+ }
12
+ /** One highlighted booth path (by SVG `data-index`), as the painters consume it. */
13
+ export interface PathInfo {
14
+ index: number;
15
+ color: string;
16
+ unblinking: boolean;
17
+ }
18
+ //# sourceMappingURL=drawing.types.d.ts.map
@@ -1,3 +1,5 @@
1
+ import { type Config } from '@expofp/config';
2
+ import { type Camera, type ListPanel, type PlannerOptions } from '@expofp/schema';
1
3
  /**
2
4
  * Represents a floor plan.
3
5
  */
@@ -5,10 +7,13 @@ export interface FloorPlan {
5
7
  readonly ready: Promise<void>;
6
8
  readonly element: HTMLDivElement;
7
9
  readonly eventId: string;
8
- readonly dataUrl: string;
9
10
  readonly noOverlay: boolean;
10
11
  readonly offHistory: boolean;
11
- readonly allowConsent: boolean;
12
+ /**
13
+ * @deprecated The consent decision lives on the config — set the `consent`
14
+ * option instead. `true` ⇄ `'granted'`, `false` ⇄ `'denied'`, `undefined` ⇄ `'ask'`.
15
+ */
16
+ readonly allowConsent: boolean | undefined;
12
17
  readonly onInit: (fp: FloorPlan) => void;
13
18
  onBoothClick(e: FloorPlanBoothClickEvent): void;
14
19
  onBookmarkClick(e: FloorPlanBookmarkClickEvent): void;
@@ -54,12 +59,45 @@ export interface FloorPlan {
54
59
  boothsList(): FloorPlanBooth[];
55
60
  categoriesList(): FloorPlanCategory[];
56
61
  selectCategory(nameOrSlug?: string): void;
62
+ /**
63
+ * Opens whatever the slug or external id names — a booth, a schedule
64
+ * session, an exhibitor, a category or a speaker (checked in that order);
65
+ * anything else opens the search list with the value as the search text.
66
+ * The programmatic twin of the `?<slug>` deep link.
67
+ */
68
+ select(slugOrExternalId: string): void;
69
+ /** Opens one of the named list panels (the `?bookmarks`, `?sessions`, … deep links). */
70
+ showList(list: ListPanel): void;
71
+ /** Launches the tour with the given id; unknown ids fall back to the tours list. */
72
+ selectTour(tourId: string): void;
73
+ /** Opens the route planner, optionally pre-filled with slugs or the visitor's bookmarks. */
74
+ openPlanner(options?: PlannerOptions): void;
75
+ /** Enters the interactive route-building mode. */
76
+ startBuildRoute(): void;
57
77
  getVisibility(): Visibility;
58
78
  setVisibility(visibility: Visibility): void;
59
79
  findLocation(): void;
60
80
  zoomIn(): void;
61
81
  zoomOut(): void;
62
82
  switchView(): void;
83
+ /**
84
+ * Moves the camera. Partial-merge semantics: only the fields present in
85
+ * `camera` change, omitted ones keep their current values — e.g.
86
+ * `setCamera({ bearing: 90 })` rotates the map without moving its center.
87
+ * The center is set either as floor-plan projected coordinates (`x`/`y`) or
88
+ * as GPS (`lat`/`lng`) — each is a pair, so both halves must be given.
89
+ * `floor` activates the named floor, `bearing` rotates the map (0–360°) and
90
+ * `zoomTime` sets the camera animation duration in milliseconds. Applied as
91
+ * soon as the renderer is ready. Also available as the `setCamera` intent
92
+ * (URL deep link).
93
+ */
94
+ setCamera(camera: Camera): void;
95
+ /**
96
+ * The camera state last requested via {@link setCamera} (or the equivalent
97
+ * URL parameters) — not a live gesture-tracking camera: panning or zooming
98
+ * by hand does not update it.
99
+ */
100
+ getCamera(): Camera;
63
101
  zoomTo(selectors: POISelectors, options?: {
64
102
  padding?: number;
65
103
  }): void;
@@ -106,25 +144,7 @@ export interface FloorPlan {
106
144
  * Options for configuring the FloorPlan instance.
107
145
  */
108
146
  export interface FloorPlanOptions {
109
- element?: HTMLDivElement;
110
- expo?: string;
111
- /**
112
- * @deprecated
113
- * Use 'expo' instead.
114
- */
115
- event?: string;
116
- /** @deprecated */
117
- legacyDataVersion?: {
118
- version: string;
119
- };
120
- /** @deprecated */
121
- legacyDataUrlBase?: string;
122
- previewMode?: boolean;
123
- dataUrl?: string;
124
- noOverlay?: boolean;
125
- offHistory?: boolean;
126
- ignoreQuery?: boolean;
127
- allowConsent?: boolean;
147
+ element?: HTMLDivElement | string;
128
148
  onBoothClick?: (e: FloorPlanBoothClickEvent) => void;
129
149
  onBookmarkClick?: (e: FloorPlanBookmarkClickEvent) => void;
130
150
  onVisitedClick?: (e: FloorPlanVisitedClickEvent) => void;
@@ -143,18 +163,9 @@ export interface FloorPlanOptions {
143
163
  onCurrentPositionChanged?: (point: CurrentPosition) => void;
144
164
  onFloorActivated?: (floor: Floor) => void;
145
165
  onLeaveEvent?: () => void;
146
- disableRuntimeAlerts?: boolean;
147
- viewerMode?: boolean;
148
- maplibre?: MaplibreOptions;
149
- }
150
- export interface MaplibreOptions {
151
- /** MapLibre style URL. Offline packages point this to a local style JSON file. */
152
- styleUrl?: string;
153
- /** Inline MapLibre style object. */
154
- style?: object;
155
- /** Allows MapLibre to run without navigator.onLine when local map assets are bundled. */
156
- offline?: boolean;
157
166
  }
167
+ /** MapLibre options — the config schema (`MapLibreConfigSchema`) is the single definition. */
168
+ export type MaplibreOptions = NonNullable<Config['maplibre']>;
158
169
  export interface Layer {
159
170
  name: string;
160
171
  description: string;
@@ -175,6 +186,7 @@ export interface FloorPlanBooth extends FloorPlanBoothBase {
175
186
  meta: Record<string, string>;
176
187
  description: string;
177
188
  entity: Entity;
189
+ title?: string;
178
190
  }
179
191
  export interface FloorPlanBoothClickEvent {
180
192
  target: FloorPlanBoothBase;
@@ -271,11 +283,13 @@ export interface FloorPlanSchedule {
271
283
  entity: Entity;
272
284
  isEnded: boolean;
273
285
  }
274
- export interface FloorPlanLanguage {
275
- id: number;
276
- name: string;
277
- entity: Entity;
278
- selected: boolean;
286
+ /** One selectable UI language (as `utils/i18n.ts` serves them). */
287
+ export interface Language {
288
+ readonly id: string;
289
+ readonly name: string;
290
+ readonly entity: {
291
+ readonly type: 'language';
292
+ };
279
293
  }
280
294
  export interface FloorPlanHeatmapYah {
281
295
  id: string;
@@ -286,7 +300,7 @@ export interface FloorPlanHeatmapYah {
286
300
  z: number | string;
287
301
  entity: Entity;
288
302
  }
289
- export type FloorPlanEntity = FloorPlanBooth | FloorPlanCategory | FloorPlanExhibitor | FloorPlanSchedule | FloorPlanLanguage | FloorPlanHeatmapYah;
303
+ export type FloorPlanEntity = FloorPlanBooth | FloorPlanCategory | FloorPlanExhibitor | FloorPlanSchedule | Language | FloorPlanHeatmapYah;
290
304
  export interface Floor {
291
305
  name: string;
292
306
  shortName: string;
@@ -1 +1 @@
1
- export function areLayersEnabled(){return!!window.__fpLayers}
1
+ import{getFpSvgJs as r}from"../data/fp-payloads";export function areLayersEnabled(){return!!r().__fpLayers}
@@ -0,0 +1,20 @@
1
+ import { type Camera } from '@expofp/schema';
2
+ import { type MapSettings } from '../store/types';
3
+ /**
4
+ * Translates the public {@link Camera} shape into the internal
5
+ * {@link MapSettings} one (the `uiState.mapSettings` observable that the map
6
+ * reaction applies once the renderer is ready). Only the fields present in
7
+ * `camera` appear in the result, so a partial camera stays a partial settings
8
+ * patch. `x`/`y` and `lat`/`lng` are pairs — a half-given pair is dropped, as
9
+ * the serialized center would be meaningless.
10
+ */
11
+ export declare function cameraToMapSettings(camera: Camera): MapSettings;
12
+ /**
13
+ * The reverse of {@link cameraToMapSettings}: reads the internal
14
+ * {@link MapSettings} back into the public {@link Camera} shape. A serialized
15
+ * center whose halves don't parse as finite numbers (legacy URLs and
16
+ * sessionStorage can carry arbitrary strings) is skipped rather than surfaced
17
+ * as `NaN`.
18
+ */
19
+ export declare function mapSettingsToCamera(settings: MapSettings): Camera;
20
+ //# sourceMappingURL=camera-map-settings.d.ts.map
@@ -0,0 +1 @@
1
+ export function cameraToMapSettings(n){const e={};return n.x!==void 0&&n.y!==void 0&&(e.centerxy=`${n.x},${n.y}`),n.lat!==void 0&&n.lng!==void 0&&(e.center=`${n.lat},${n.lng}`),n.floor!==void 0&&(e.z=n.floor),n.bearing!==void 0&&(e.bearing=n.bearing),n.zoomTime!==void 0&&(e.zoomtime=n.zoomTime),e}export function mapSettingsToCamera(n){const e={},i=o(n.centerxy);i&&([e.x,e.y]=i);const f=o(n.center);return f&&([e.lat,e.lng]=f),n.z!==void 0&&(e.floor=n.z),n.bearing!==void 0&&(e.bearing=n.bearing),n.zoomtime!==void 0&&(e.zoomTime=n.zoomtime),e}function o(n){if(!n)return;const e=n.split(",").map(Number);if(!(e.length!==2||!e.every(Number.isFinite)))return[e[0],e[1]]}
@@ -1 +1 @@
1
- import{DEBUG_KEY as i,SET_KIOSK_KEY as a}from"../constants";import n from"../data";import s,{uiState as l}from"../store";import{handleDebugMode as c}from"../tools/handleDebugMode";import{getRebookingTokenFromQuery as m}from"../tools/rebookingUrl";export function handleCustomCommand(o){if(o=o.trim(),o.toLowerCase()==="__addcache")navigator.serviceWorker.getRegistrations().then(r=>{if(!r.length)return alert("No registered service workers.");var t=[];s.exhibitorStore.exhibitors.forEach(e=>{t.push(e.logo),t.push(...e.gallery||[])}),Promise.all(t.map(e=>fetch(e))).then(e=>alert(`${e.length} images loaded.`)).catch(e=>alert(e))});else if(/^copy_exh=\d+/.test(o)){const r=o.match(/^copy_exh=(\d+)/);if(r&&!isNaN(parseInt(r[1]))){const e=`${window.location.origin+window.location.pathname}?${r[0]}`;window.location.replace(e)}}else{if(m())return!0;o.startsWith(i)?c():o===(n.flags?.customSetKiosk||a)&&l.enableSetKioskMode(!0)}return!1}
1
+ import{DEBUG_KEY as i,SET_KIOSK_KEY as a}from"../constants";import n from"../data";import s,{uiState as l}from"../store";import{handleDebugMode as c}from"../tools/handleDebugMode";import{getRebookingTokenFromQuery as m}from"../tools/rebookingUrl";export function handleCustomCommand(o){if(o=o.trim(),o.toLowerCase()==="__addcache")navigator.serviceWorker.getRegistrations().then(r=>{if(!r.length)return alert("No registered service workers.");var t=[];s.exhibitorStore.exhibitors.forEach(e=>{e.logo?.url&&t.push(e.logo.url),t.push(...e.gallery||[])}),Promise.all(t.map(e=>fetch(e))).then(e=>alert(`${e.length} images loaded.`)).catch(e=>alert(e))});else if(/^copy_exh=\d+/.test(o)){const r=o.match(/^copy_exh=(\d+)/);if(r&&!isNaN(parseInt(r[1]))){const e=`${window.location.origin+window.location.pathname}?${r[0]}`;window.location.replace(e)}}else{if(m())return!0;o.startsWith(i)?c():o===(n.customSetKiosk||a)&&l.enableSetKioskMode(!0)}return!1}
@@ -1,2 +1,9 @@
1
- export declare function getLogoUrl(url: any): string;
1
+ import { type Logo } from '@expofp/schema';
2
+ /**
3
+ * The logo URL to load for the current device: the pre-scaled `small`/`tiny`
4
+ * variant on optimized mobile/webview sessions, the full logo otherwise.
5
+ * Variant URLs are explicit fields on the logo (the config derives them when
6
+ * the platform serves the legacy string form) — nothing is re-derived here.
7
+ */
8
+ export declare function getLogoUrl(logo: Logo): string;
2
9
  //# sourceMappingURL=getLogoUrl.d.ts.map
@@ -1 +1 @@
1
- import e from"../data";import o from"./is-mobile";import r from"./is-webview";export function getLogoUrl(i){const t=n();return t?i.replace(/\/([^\/]+)\.([a-zA-Z0-9]+)(\?.*)?$/,`/$1__${t}.$2$3`):i}function n(){if(o||r)return e.viewOptimizationLevel?e.viewOptimizationLevel>=5?"tiny":"small":void 0}
1
+ import t from"../data";import e from"./is-mobile";import l from"./is-webview";export function getLogoUrl(r){const i=n();return i==="tiny"?r.tinyUrl??r.smallUrl??r.url:i==="small"?r.smallUrl??r.url:r.url}function n(){if(e||l)return t.viewOptimizationLevel?t.viewOptimizationLevel>=5?"tiny":"small":void 0}
@@ -0,0 +1,13 @@
1
+ import { type Heatmap } from '@expofp/schema';
2
+ /**
3
+ * Does a `config.heatmap` node engage heatmap mode? Presence implies intent:
4
+ * any non-empty node engages unless switched off with an explicit
5
+ * `enabled: false` — so `?heatmap[variant]=yah` alone is enough, and a URL's
6
+ * `?heatmap[enabled]=false` can veto a manifest-set node (config layers
7
+ * replace the node wholesale). One predicate for both consumers — the data
8
+ * loader's fetch decision and the dispatch's mode engagement — so the rule
9
+ * cannot drift. The legacy `?heatmap=true` params are NOT this node: they stay
10
+ * a legacy-URL one-shot and a raw read in the loader.
11
+ */
12
+ export declare function heatmapEnabled(heatmap: Heatmap): boolean;
13
+ //# sourceMappingURL=heatmap-enabled.d.ts.map
@@ -0,0 +1 @@
1
+ export function heatmapEnabled(e){return Object.keys(e).length>0&&e.enabled!==!1}
@@ -1 +1 @@
1
- import s from"i18next";import{observable as u}from"mobx";import{LANGUAGE_TYPE as y}from"../constants";import f from"../locales";import x from"../tools/base-runtime-url";import{loadJson as S}from"../tools/loaders";import{isLocalStorageAvailable as i}from"./localStorage";const n="en",c="efp-locale",g="language",l=u.box(n),m=u.array([],{deep:!1}),d=e=>S(`${x}locales/${e}.json`),w=()=>{if(!i)return null;const e=localStorage.getItem(c),o=localStorage.getItem(g);return o&&localStorage.removeItem(g),e||(o&&localStorage.setItem(c,o),o)},p=()=>{const e=window.__data,o=navigator.languages?.[0]||navigator.language,a=Object.keys(f).find(r=>o.startsWith(r));return(w()||e?.locale||a||n).toLowerCase()};export const getLocale=()=>l.get(),getLocales=()=>m,hasLocale=e=>m.some(o=>o.id===e),t=(e,o)=>(l.get(),s.t(e,o)),tIfExists=(e,o)=>(l.get(),s.exists(e,o)?s.t(e,o):e),initI18n=async()=>{m.replace(Object.entries(f).sort(([a],[r])=>a.localeCompare(r)).map(([a,r])=>({id:a,name:r,entity:{type:y}})));let e=p();const o={};if(e!==n)try{o[e]={translation:await d(e)}}catch(a){console.error(`Unable to load "${e}" localization, falling back to "${n}".`,a),e=n}return l.set(e),s.init({resources:o,lng:e,keySeparator:!1,saveMissing:e!==n,missingKeyHandler:(a,r,L,b)=>console.debug(`i18n missing key: '${a[0]}:${r}:${L}', fallback: '${b}'`)})},setLocale=async e=>{const o=e.toLowerCase();try{o!==n&&!s.hasResourceBundle(o,"translation")&&s.addResourceBundle(o,"translation",await d(o),!0,!0),await s.changeLanguage(o),l.set(o),i&&localStorage.setItem(c,o)}catch(a){console.error(`Failed to switch language to "${o}":`,a)}},resetLocale=async()=>(i&&(localStorage.removeItem(c),localStorage.removeItem(g)),setLocale(p()));
1
+ import{getConfig as y}from"@expofp/config";import r from"i18next";import{observable as f}from"mobx";import{LANGUAGE_TYPE as x}from"../constants";import u from"../locales";import S from"../tools/base-runtime-url";import{loadJson as E}from"../tools/loaders";import{isLocalStorageAvailable as i}from"./localStorage";const s="en",c="efp-locale",g="language",l=f.box(s),m=f.array([],{deep:!1}),p=e=>E(`${S}locales/${e}.json`),v=()=>{if(!i)return null;const e=localStorage.getItem(c),o=localStorage.getItem(g);return o&&localStorage.removeItem(g),e||(o&&localStorage.setItem(c,o),o)},L=()=>{const e=navigator.languages?.[0]||navigator.language,o=Object.keys(u).find(a=>e.startsWith(a));return(v()||y().locale||o||s).toLowerCase()};export const getLocale=()=>l.get(),getLocales=()=>m,hasLocale=e=>m.some(o=>o.id===e),t=(e,o)=>(l.get(),r.t(e,o)),tIfExists=(e,o)=>(l.get(),r.exists(e,o)?r.t(e,o):e),initI18n=async()=>{m.replace(Object.entries(u).sort(([a],[n])=>a.localeCompare(n)).map(([a,n])=>({id:a,name:n,entity:{type:x}})));let e=L();const o={};if(e!==s)try{o[e]={translation:await p(e)}}catch(a){console.error(`Unable to load "${e}" localization, falling back to "${s}".`,a),e=s}return l.set(e),r.init({resources:o,lng:e,keySeparator:!1,saveMissing:e!==s,missingKeyHandler:(a,n,d,b)=>console.debug(`i18n missing key: '${a[0]}:${n}:${d}', fallback: '${b}'`)})},setLocale=async e=>{const o=e.toLowerCase();try{o!==s&&!r.hasResourceBundle(o,"translation")&&r.addResourceBundle(o,"translation",await p(o),!0,!0),await r.changeLanguage(o),l.set(o),i&&localStorage.setItem(c,o)}catch(a){console.error(`Failed to switch language to "${o}":`,a)}},resetLocale=async()=>(i&&(localStorage.removeItem(c),localStorage.removeItem(g)),setLocale(L()));
@@ -1 +1 @@
1
- import{loadImage as e}from"./loadImage";export function loadIcons(t){return Promise.all(t.map(a=>new Promise(async l=>{var n=await e(i(a.getAttribute("xlink:href")||a.getAttribute("href")));l(n?{bounds:{x:a.x.animVal.value,y:a.y.animVal.value,width:a.width.animVal.value,height:a.height.animVal.value,angle:a.transform?.animVal[0]?.angle??0},htmlImage:n,booth:null}:null)})))}function i(t){return!t?.startsWith("data:")&&t?.indexOf("://")===-1?window.__dataUrlBase+t:t}
1
+ import{loadImage as e}from"./loadImage";export function loadIcons(t){return Promise.all(t.map(a=>new Promise(async n=>{var l=await e(a.getAttribute("xlink:href")||a.getAttribute("href"));n(l?{bounds:{x:a.x.animVal.value,y:a.y.animVal.value,width:a.width.animVal.value,height:a.height.animVal.value,angle:a.transform?.animVal[0]?.angle??0},htmlImage:l,booth:null}:null)})))}
@@ -1,11 +1,3 @@
1
- declare global {
2
- interface Window {
3
- efpDebugUi?: Record<string, {
4
- type: 'boolean';
5
- default?: boolean;
6
- }>;
7
- }
8
- }
9
1
  declare const isDebug: boolean;
10
2
  export default isDebug;
11
3
  //# sourceMappingURL=is-debug.d.ts.map
@@ -1 +1 @@
1
- import{DEBUG_STORAGE_KEY as e}from"../constants";import{isLocalStorageAvailable as o}from"./localStorage";typeof window<"u"&&((window.efpDebugUi??={})[e]={type:"boolean"});const t=o&&localStorage.getItem(e)==="true";export default t;
1
+ import{DEBUG_STORAGE_KEY as o}from"../constants";import{isLocalStorageAvailable as t}from"./localStorage";const e=t&&localStorage.getItem(o)==="true";export default e;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * One-shot boot migration of the pre-schema preference keys (`___viewer_mode`
3
+ * / `___preview_mode` / `___ui-scale`) to their schema-typed `efp-*`
4
+ * equivalents — the keys the debug panel edits and `UIState` prefers. Runs
5
+ * before anything reads the keys (`load()` calls it ahead of `loadConfig`).
6
+ *
7
+ * Copy, not move: the legacy keys stay in place for a release or two so a
8
+ * rollback to an older SDK still sees them (their readers keep a fallback);
9
+ * only an explicit disable/reset seed removes both generations. An existing
10
+ * `efp-*` value always wins — a stale legacy key must not clobber it.
11
+ *
12
+ * `storage` is injectable for tests; the default is the real `localStorage`
13
+ * when it is usable.
14
+ */
15
+ export declare function migrateLegacyStorageKeys(storage?: Pick<Storage, 'getItem' | 'setItem'> | undefined): void;
16
+ //# sourceMappingURL=legacy-storage-keys.d.ts.map
@@ -0,0 +1 @@
1
+ import{LEGACY_PREVIEW_MODE_STORAGE_KEY as I,LEGACY_UI_SCALE_STORAGE_KEY as m,LEGACY_VIEWER_MODE_STORAGE_KEY as A,PREVIEW_MODE_STORAGE_KEY as t,UI_SCALE_STORAGE_KEY as _,VIEWER_MODE_STORAGE_KEY as l}from"../constants";import{isLocalStorageAvailable as S}from"./localStorage";export function migrateLegacyStorageKeys(E=S?localStorage:void 0){if(!E)return;E.getItem(A)==="1"&&E.getItem(l)===null&&E.setItem(l,"true"),E.getItem(I)==="1"&&E.getItem(t)===null&&E.setItem(t,"true");const e=E.getItem(m);e!==null&&E.getItem(_)===null&&E.setItem(_,e)}
@@ -1,3 +1,3 @@
1
- import { type Data } from '../data/Data';
2
- export declare function loadCustomCss(data: Data, appendTo: Element | ShadowRoot): Promise<void>;
1
+ import { type Config } from '@expofp/config';
2
+ export declare function loadCustomCss(data: Config, appendTo: Element | ShadowRoot): Promise<void>;
3
3
  //# sourceMappingURL=loadCustomCss.d.ts.map
@@ -1,2 +1,3 @@
1
+ import { type FloorPlanEntity } from '../types';
1
2
  export declare function mapEntity<T extends Record<string, any>>(item: T): FloorPlanEntity | T;
2
3
  //# sourceMappingURL=mapEntity.d.ts.map
@@ -1,4 +1,4 @@
1
- import { type RawExhibitor } from '../data/Data';
1
+ import { type RawExhibitor } from '@expofp/schema';
2
2
  declare var exhibitor: RawExhibitor;
3
3
  export default exhibitor;
4
4
  //# sourceMappingURL=preview-exhibitor.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import type { GraphDataSource } from '@expofp/wayfinding';
2
- /** Reads the app's wayfinding graph data from `window.__wfData`. */
2
+ /** Reads the app's wayfinding graph off the resolver memo (`getWfData`). */
3
3
  export declare function createGraphDataSource(): GraphDataSource;
4
4
  //# sourceMappingURL=graphDataSource.d.ts.map
@@ -1 +1 @@
1
- function n(){return window.__wfData}export function createGraphDataSource(){return{getLines:()=>n()?.lines??[],getLineEnds:()=>n()?.lineEnds??[]}}
1
+ import{getWfData as e}from"../../data/fp-payloads";export function createGraphDataSource(){return{getLines:()=>e()?.lines??[],getLineEnds:()=>e()?.lineEnds??[]}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expofp/floorplan",
3
- "version": "3.11.12",
3
+ "version": "3.12.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/expofp/efp-app.git",
@@ -72,10 +72,13 @@
72
72
  "tslib": "^2.3.0",
73
73
  "uuid": "^9.0.1",
74
74
  "zod": "4.3.5",
75
- "@expofp/debug": "3.11.12",
76
- "@expofp/resolve": "3.11.12",
77
- "@expofp/wayfinding": "3.11.12",
78
- "@expofp/geometry": "3.11.12"
75
+ "@expofp/config": "3.12.0",
76
+ "@expofp/geometry": "3.12.0",
77
+ "@expofp/resolve": "3.12.0",
78
+ "@expofp/schema": "3.12.0",
79
+ "@expofp/debug": "3.12.0",
80
+ "@expofp/utils": "3.12.0",
81
+ "@expofp/wayfinding": "3.12.0"
79
82
  },
80
83
  "devDependencies": {
81
84
  "@babel/plugin-proposal-decorators": "^8.0.2",
@@ -1,38 +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.11.12" };
5
- var t = new e.Error().stack;
6
- t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "5ab16852-e7f7-438b-b972-2061f95b48f7", e._sentryDebugIdIdentifier = "sentry-dbid-5ab16852-e7f7-438b-b972-2061f95b48f7");
7
- } catch {}
8
- })();
9
- import { n as e } from "./rolldown-runtime-CJax_ib9.js";
10
- import { t } from "./react-B9lmaQYI.js";
11
- import { t as n } from "./jsx-runtime-DftMjMlZ.js";
12
- import { s as r } from "./i18n-BqlnpLSm.js";
13
- import { t as i } from "./index.module-BktNOlw2.js";
14
- import { t as a } from "./PermissionNotice-Bstp1Ig2.js";
15
- //#region src/components/CookieConsent.tsx
16
- var o = /* @__PURE__ */ e({ default: () => c });
17
- t();
18
- var s = n(), c = i(({ link: e, onAccept: t, onReject: n }) => /* @__PURE__ */ (0, s.jsxs)(a, {
19
- placement: "bottom-left",
20
- title: r("Cookie Consent"),
21
- acceptText: r("Accept cookies"),
22
- rejectText: r("Reject"),
23
- onAccept: t,
24
- onReject: n,
25
- children: [
26
- r("We use cookies for analytics only"),
27
- "\xA0",
28
- e && /* @__PURE__ */ (0, s.jsx)("a", {
29
- href: e,
30
- target: "_blank",
31
- rel: "noopener noreferrer",
32
- "aria-label": r("Read more about cookie usage in a new tab"),
33
- children: r("Read More")
34
- })
35
- ]
36
- }));
37
- //#endregion
38
- export { o as t };
@@ -1,28 +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.11.12" };
5
- var t = new e.Error().stack;
6
- t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "c54b980e-8a2e-41aa-97ce-792f8c4b4365", e._sentryDebugIdIdentifier = "sentry-dbid-c54b980e-8a2e-41aa-97ce-792f8c4b4365");
7
- } catch {}
8
- })();
9
- import "./rolldown-runtime-CJax_ib9.js";
10
- import { t as e } from "./react-B9lmaQYI.js";
11
- import { t } from "./jsx-runtime-DftMjMlZ.js";
12
- import "./i18n-BqlnpLSm.js";
13
- import { t as n } from "./index.module-BktNOlw2.js";
14
- import { $ as r, Q as i, s as a } from "./store-DGdGzsa_.js";
15
- import { n as o } from "./mobx-71cpvuRe.js";
16
- import { t as s } from "./KioskStore-hBGigttj.js";
17
- import { t as c } from "./TouchHand-CZ4-CE4e.js";
18
- e();
19
- var l = t(), u = n(() => (o(() => {
20
- if (localStorage.getItem("kiosk") === "0") return;
21
- s.restoreData();
22
- let e = s.kiosk;
23
- if (e) return i(e, !0), r(e), s.resetCamera(), a.setResetCameraFn(() => s.resetCamera()), () => {
24
- a.uiState.setKioskData(null), a.uiState.resetMapSettings();
25
- };
26
- }), a.uiState.kiosk && a.uiState.inIdle ? /* @__PURE__ */ (0, l.jsx)(c, {}) : null));
27
- //#endregion
28
- export { u as default };
@@ -1,42 +0,0 @@
1
- //#region ../debug/src/lib/log-store.ts
2
- (function() {
3
- try {
4
- var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
5
- e.SENTRY_RELEASE = { id: "3.11.12" };
6
- var t = new e.Error().stack;
7
- t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "59b441b1-5f9e-48f9-9a8c-c36a44b3b1b1", e._sentryDebugIdIdentifier = "sentry-dbid-59b441b1-5f9e-48f9-9a8c-c36a44b3b1b1");
8
- } catch {}
9
- })();
10
- var e = 5e3, t = [], n = /* @__PURE__ */ new Set();
11
- function r() {
12
- return t;
13
- }
14
- function i(e) {
15
- return n.add(e), () => {
16
- n.delete(e);
17
- };
18
- }
19
- function a(r) {
20
- t = t.length >= e ? [...t.slice(1), r] : [...t, r], n.forEach((e) => e());
21
- }
22
- function o() {
23
- t.length !== 0 && (t = [], n.forEach((e) => e()));
24
- }
25
- //#endregion
26
- //#region ../debug/src/lib/init-debug.tsx
27
- var s = typeof window < "u" && typeof document < "u";
28
- if (s && typeof console < "u") {
29
- let e = (e, t) => (...n) => {
30
- a({
31
- level: e,
32
- args: n,
33
- ts: Date.now()
34
- }), t(...n);
35
- }, t = console.log.bind(console), n = console.debug.bind(console), r = console.info.bind(console), i = console.warn.bind(console), o = console.error.bind(console);
36
- console.log = e("log", t), console.debug = e("debug", n), console.info = e("info", r), console.warn = e("warn", i), console.error = e("error", o);
37
- }
38
- s && import("./ui-DIQ3vheI.js").then(({ renderDebugUi: e }) => {
39
- e();
40
- }).catch(() => {});
41
- //#endregion
42
- export { r as n, i as r, o as t };