@expofp/floorplan 3.11.1 → 3.11.3

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 (128) hide show
  1. package/dist/browser/{Button-w3em_lzh.js → Button-CWw2sVgd.js} +5 -5
  2. package/dist/browser/{CookieConsent-DGuzCkb_.js → CookieConsent-FeVIJ_Yk.js} +7 -7
  3. package/dist/browser/{Debug-C0bAbDfy.js → Debug-CAteGKZH.js} +7 -7
  4. package/dist/browser/{Demo-Bjaxry3H.js → Demo-aIUISr3G.js} +9 -9
  5. package/dist/browser/{Free-DYRe3qzH.js → Free-C98X4LrP.js} +9 -9
  6. package/dist/browser/{Gallery-Mh_fak51.js → Gallery-CWjQm4hj.js} +9 -9
  7. package/dist/browser/{GpsLoader-BUFe8XAp.js → GpsLoader-BTo2dZds.js} +9 -9
  8. package/dist/browser/{KioskStore-CG4obHqM.js → KioskStore-CX5ThkIn.js} +3 -3
  9. package/dist/browser/{MaplibreAdapter-_7g233g0.js → MaplibreAdapter-CRcB_u5I.js} +9 -9
  10. package/dist/browser/{ModalContainer-q8ktZG4M.js → ModalContainer-VauFMnIc.js} +10 -10
  11. package/dist/browser/{PermissionNotice-CZPYZBEq.js → PermissionNotice-BSPFngCq.js} +6 -6
  12. package/dist/browser/{SetKioskMode-Bstomyjg.js → SetKioskMode-Dbd6T5-O.js} +8 -8
  13. package/dist/browser/{ShowKiosk-CSSaeauJ.js → ShowKiosk-OuxwmOwy.js} +10 -10
  14. package/dist/browser/{TouchHand-DKlAqQxo.js → TouchHand-Br-CwL-F.js} +4 -4
  15. package/dist/browser/{ViewerMenuPanel-CDZU9m-C.js → ViewerMenuPanel-DVByBv9z.js} +9 -9
  16. package/dist/browser/{add-debug-secret-listener-CpUZyE-i.js → add-debug-secret-listener-BR1iPsb9.js} +1 -1
  17. package/dist/browser/{boolean-editor-BXtJr0-a.js → boolean-editor-DSTgDbmc.js} +9 -9
  18. package/dist/browser/{bootIntercom-BdpTIgRq.js → bootIntercom-CUea_DL-.js} +2 -2
  19. package/dist/browser/{booth-by-xy-Cvr_M6ay.js → booth-by-xy-Bek_OU5N.js} +6 -6
  20. package/dist/browser/{browser-D0zb6N8t.js → browser-BZR5FRBQ.js} +2 -2
  21. package/dist/browser/bundle.json +61 -61
  22. package/dist/browser/{classnames-njarKVkv.js → classnames-KtBHe88l.js} +2 -2
  23. package/dist/browser/{client-DO32NX2U.js → client-DJnYedJs.js} +4 -4
  24. package/dist/browser/{components-Ag3tOxoq.js → components-CUaqFBY3.js} +864 -846
  25. package/dist/browser/{debug-overlay-BDntWcO3.js → debug-overlay-2tBkBbRy.js} +10 -10
  26. package/dist/browser/{debug-ui-eQiNXjgN.js → debug-ui-CP2nQv-1.js} +6 -6
  27. package/dist/browser/{dist-CICgVS_K.js → dist-CpM1INPI.js} +5 -5
  28. package/dist/browser/{dist-B-HOjLa3.js → dist-DP9l2rrk.js} +3 -3
  29. package/dist/browser/{dist-BPabiv1-.js → dist-DlM1oWid.js} +6 -6
  30. package/dist/browser/{efp-debug-init-DJV2mEAv.js → efp-debug-init-BH2nDNO5.js} +2 -2
  31. package/dist/browser/{enum-editor-CR96q1IA.js → enum-editor-B4p1ELb6.js} +11 -11
  32. package/dist/browser/{es5-DKJycZ_9.js → es5-DdpBCK3Q.js} +2 -2
  33. package/dist/browser/{event-not-found-qCBr__j7.js → event-not-found-CWE-0MrG.js} +1 -1
  34. package/dist/browser/{exports-DEfrHp-m.js → exports-B7NIvrUp.js} +91 -91
  35. package/dist/browser/{favicon-Ds8_0IKZ.js → favicon-BOK9avcY.js} +1 -1
  36. package/dist/browser/{fetch-retry.umd-DA_h-YbX.js → fetch-retry.umd-CipkNsrX.js} +2 -2
  37. package/dist/browser/{flex-De82Cl1E.js → flex-B2wy4xSD.js} +5 -5
  38. package/dist/browser/{floorplan.loader-B5OmVKte.js → floorplan.loader-D3kQCb99.js} +77 -77
  39. package/dist/browser/{floorplan.ready-DR3pBgxB.js → floorplan.ready-B4mDkXRm.js} +16 -16
  40. package/dist/browser/{fuse-dk3wBn-g.js → fuse-CqO1cqnn.js} +2 -2
  41. package/dist/browser/{i18n-CmTA9oOx.js → i18n-B_V1H0HQ.js} +4 -4
  42. package/dist/browser/index.js +12 -12
  43. package/dist/browser/{index.module-QD1fDWFR.js → index.module-D2erzLUJ.js} +4 -4
  44. package/dist/browser/{is-webview-CoF8JIKV.js → is-webview-DGL-PdzN.js} +1 -1
  45. package/dist/browser/{jsx-runtime-BerzwYzE.js → jsx-runtime-uuMRT9NQ.js} +2 -2
  46. package/dist/browser/{lib-Q551A5uv.js → lib-osu8gY8B.js} +4 -4
  47. package/dist/browser/{loadImage-DMj35sJO.js → loadImage-m-4ixNVH.js} +4 -4
  48. package/dist/browser/{logDeviceInfo-DRvCCtTx.js → logDeviceInfo-DRtA-dL6.js} +9 -9
  49. package/dist/browser/{main-BizUl9-0.js → main-Bjk86dRG.js} +1 -1
  50. package/dist/browser/{mobx-TeCP8VzM.js → mobx-CRjt7H7o.js} +4 -4
  51. package/dist/browser/{particles.min-DG9oSZrY.js → particles.min-CSGhGGgI.js} +2 -2
  52. package/dist/browser/{prop-types-vg_ebZbt.js → prop-types-C3o0VrkV.js} +2 -2
  53. package/dist/browser/{react-Du8DS_tM.js → react-B7FM7U0J.js} +2 -2
  54. package/dist/browser/{react-dom-B7g3b-V3.js → react-dom-CKp4cqT6.js} +3 -3
  55. package/dist/browser/{reset-all-settings-Cd_BUK-W.js → reset-all-settings-CE8btvu_.js} +7 -7
  56. package/dist/browser/{rolldown-runtime-DvCIlsWE.js → rolldown-runtime-CyrAgb5O.js} +1 -1
  57. package/dist/browser/{settings-DInlzLHA.js → settings-ZQMSNgyk.js} +2 -2
  58. package/dist/browser/{settings-item-Nqsx-eMu.js → settings-item-DYAlR7v3.js} +6 -6
  59. package/dist/browser/{store-Bp8hCuMJ.js → store-Cufsn9Pk.js} +1237 -1198
  60. package/dist/browser/{string-editor-BwD_WLY1.js → string-editor-NN8vdXTM.js} +7 -7
  61. package/dist/browser/{theme-D0j6GDvn.js → theme-7hRavfue.js} +8 -8
  62. package/dist/browser/{ui-Ci4hN3Oq.js → ui-F8v9_gqS.js} +8 -8
  63. package/dist/browser/{useRenderTarget-w66c2Pzm.js → useRenderTarget-CzK9YRAN.js} +4 -4
  64. package/dist/esm/components/Bookmarks.js +1 -1
  65. package/dist/esm/components/Booth/Booth.js +1 -1
  66. package/dist/esm/components/DownloadListContainer.d.ts +5 -0
  67. package/dist/esm/components/DownloadListContainer.js +1 -0
  68. package/dist/esm/components/EntityListRow.js +1 -1
  69. package/dist/esm/components/ErrorBoundary.d.ts +9 -9
  70. package/dist/esm/components/ErrorBoundary.js +1 -1
  71. package/dist/esm/components/Event.js +1 -1
  72. package/dist/esm/components/Exhibitor.js +1 -1
  73. package/dist/esm/components/Layout.js +1 -1
  74. package/dist/esm/components/LevelSelectorContainer.d.ts +3 -0
  75. package/dist/esm/components/LevelSelectorContainer.js +1 -0
  76. package/dist/esm/components/MapControlsContainer.d.ts +3 -0
  77. package/dist/esm/components/MapControlsContainer.js +1 -0
  78. package/dist/esm/components/SidebarActionsContainer.d.ts +5 -0
  79. package/dist/esm/components/SidebarActionsContainer.js +1 -0
  80. package/dist/esm/components/SimpleRowContainer.d.ts +8 -0
  81. package/dist/esm/components/SimpleRowContainer.js +1 -0
  82. package/dist/esm/components/Speaker.js +1 -1
  83. package/dist/esm/components/YahRow.d.ts +2 -2
  84. package/dist/esm/components/YahRow.js +1 -1
  85. package/dist/esm/components/index.d.ts +10 -8
  86. package/dist/esm/components/index.js +1 -1
  87. package/dist/esm/renderer/engine-core/animation.js +1 -1
  88. package/dist/esm/store/LayerStore.d.ts +2 -0
  89. package/dist/esm/store/LayerStore.js +1 -1
  90. package/dist/esm/ui/DownloadList/DownloadList.d.ts +15 -0
  91. package/dist/esm/ui/DownloadList/DownloadList.js +1 -0
  92. package/dist/esm/ui/DownloadList/index.d.ts +3 -0
  93. package/dist/esm/ui/DownloadList/index.js +1 -0
  94. package/dist/esm/ui/LevelSelector/LevelSelector.d.ts +19 -0
  95. package/dist/esm/ui/LevelSelector/LevelSelector.js +1 -0
  96. package/dist/esm/ui/LevelSelector/index.d.ts +3 -0
  97. package/dist/esm/ui/LevelSelector/index.js +1 -0
  98. package/dist/esm/ui/MapControls/MapControls.d.ts +33 -0
  99. package/dist/esm/ui/MapControls/MapControls.js +1 -0
  100. package/dist/esm/ui/MapControls/index.d.ts +3 -0
  101. package/dist/esm/ui/MapControls/index.js +1 -0
  102. package/dist/esm/ui/SidebarActions/SidebarActions.d.ts +26 -0
  103. package/dist/esm/ui/SidebarActions/SidebarActions.js +1 -0
  104. package/dist/esm/ui/SidebarActions/index.d.ts +3 -0
  105. package/dist/esm/ui/SidebarActions/index.js +1 -0
  106. package/dist/esm/ui/SimpleRow/SimpleRow.d.ts +15 -0
  107. package/dist/esm/ui/SimpleRow/SimpleRow.js +1 -0
  108. package/dist/esm/ui/SimpleRow/index.d.ts +3 -0
  109. package/dist/esm/ui/SimpleRow/index.js +1 -0
  110. package/dist/esm/ui/shared/hooks/useOnClickOutside.d.ts +11 -1
  111. package/dist/esm/ui/shared/hooks/useOnClickOutside.js +1 -1
  112. package/dist/esm/ui/shared/hooks/useOnEscape.d.ts +14 -0
  113. package/dist/esm/ui/shared/hooks/useOnEscape.js +1 -0
  114. package/package.json +6 -6
  115. package/dist/esm/components/Controls.d.ts +0 -3
  116. package/dist/esm/components/Controls.js +0 -1
  117. package/dist/esm/components/LevelSelector.d.ts +0 -4
  118. package/dist/esm/components/LevelSelector.js +0 -1
  119. package/dist/esm/components/MapControls.d.ts +0 -28
  120. package/dist/esm/components/MapControls.js +0 -1
  121. package/dist/esm/components/MarketMaterialList.d.ts +0 -9
  122. package/dist/esm/components/MarketMaterialList.js +0 -1
  123. package/dist/esm/components/SidebarActions.d.ts +0 -20
  124. package/dist/esm/components/SidebarActions.js +0 -1
  125. package/dist/esm/components/SimpleRow.d.ts +0 -17
  126. package/dist/esm/components/SimpleRow.js +0 -1
  127. package/dist/esm/utils/useOnClickOutside.d.ts +0 -3
  128. package/dist/esm/utils/useOnClickOutside.js +0 -1
@@ -1 +1 @@
1
- import{__esDecorate as s,__runInitializers as o}from"tslib";import{Box as O}from"@expofp/geometry";import{action as w,computed as u,observable as h,runInAction as j}from"mobx";import C from"../components/Map/drawing/config/config-load-layer";import{areLayersEnabled as B}from"../utils/areLayersEnabled";import{shortenName as D}from"../utils/shortenName";import n from".";export var LayersMode;(function(i){i[i.Default=0]="Default",i[i.Separated=1]="Separated",i[i.Radio=2]="Radio",i[i.CheckBox=3]="CheckBox"})(LayersMode||(LayersMode={}));export var LayerMode;(function(i){i[i.Unset=0]="Unset",i[i.AlwaysVisible=1]="AlwaysVisible",i[i.AlwaysHidden=2]="AlwaysHidden",i[i.TurnedOn=3]="TurnedOn",i[i.TurnedOff=4]="TurnedOff"})(LayerMode||(LayerMode={}));let W=(()=>{let i,y=[],m=[],p,v=[],b=[];return class{static{const c=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;i=[h],p=[h],s(null,null,i,{kind:"field",name:"loaded",static:!1,private:!1,access:{has:l=>"loaded"in l,get:l=>l.loaded,set:(l,f)=>{l.loaded=f}},metadata:c},y,m),s(null,null,p,{kind:"field",name:"visible",static:!1,private:!1,access:{has:l=>"visible"in l,get:l=>l.visible,set:(l,f)=>{l.visible=f}},metadata:c},v,b),c&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:c})}basePriority;name;description;frozen;rect=null;viewbox=null;configured;childLayers=[];rootParent=null;mode;children=[];pathway;floorIndex;loaded=o(this,y,void 0);visible=(o(this,m),o(this,v,void 0));get shortName(){return D(this.description)}constructor(){o(this,b)}}})();export{W as Layer};let N=(()=>{let i=[],y,m=[],p=[],v,b=[],_=[],c,l=[],f=[],L,x=[],S=[],k,P,R,A,I,z,T,V,E;return class{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;y=[h],v=[h],c=[h],L=[h],k=[u({keepAlive:!0})],P=[u({keepAlive:!0})],R=[u({keepAlive:!0})],A=[u({keepAlive:!0})],I=[u],z=[u],T=[w],V=[w],E=[w],s(this,null,k,{kind:"getter",name:"visible",static:!1,private:!1,access:{has:e=>"visible"in e,get:e=>e.visible},metadata:t},null,i),s(this,null,P,{kind:"getter",name:"loaded",static:!1,private:!1,access:{has:e=>"loaded"in e,get:e=>e.loaded},metadata:t},null,i),s(this,null,R,{kind:"getter",name:"rectangle",static:!1,private:!1,access:{has:e=>"rectangle"in e,get:e=>e.rectangle},metadata:t},null,i),s(this,null,A,{kind:"getter",name:"viewboxRectangle",static:!1,private:!1,access:{has:e=>"viewboxRectangle"in e,get:e=>e.viewboxRectangle},metadata:t},null,i),s(this,null,I,{kind:"getter",name:"pathwayLayers",static:!1,private:!1,access:{has:e=>"pathwayLayers"in e,get:e=>e.pathwayLayers},metadata:t},null,i),s(this,null,z,{kind:"getter",name:"floors",static:!1,private:!1,access:{has:e=>"floors"in e,get:e=>e.floors},metadata:t},null,i),s(this,null,T,{kind:"method",name:"updateVisibility",static:!1,private:!1,access:{has:e=>"updateVisibility"in e,get:e=>e.updateVisibility},metadata:t},null,i),s(this,null,V,{kind:"method",name:"showPathWay",static:!1,private:!1,access:{has:e=>"showPathWay"in e,get:e=>e.showPathWay},metadata:t},null,i),s(this,null,E,{kind:"method",name:"hidePathways",static:!1,private:!1,access:{has:e=>"hidePathways"in e,get:e=>e.hidePathways},metadata:t},null,i),s(null,null,y,{kind:"field",name:"layers",static:!1,private:!1,access:{has:e=>"layers"in e,get:e=>e.layers,set:(e,a)=>{e.layers=a}},metadata:t},m,p),s(null,null,v,{kind:"field",name:"defaultLayer",static:!1,private:!1,access:{has:e=>"defaultLayer"in e,get:e=>e.defaultLayer,set:(e,a)=>{e.defaultLayer=a}},metadata:t},b,_),s(null,null,c,{kind:"field",name:"mode",static:!1,private:!1,access:{has:e=>"mode"in e,get:e=>e.mode,set:(e,a)=>{e.mode=a}},metadata:t},l,f),s(null,null,L,{kind:"field",name:"layersLoaded",static:!1,private:!1,access:{has:e=>"layersLoaded"in e,get:e=>e.layersLoaded,set:(e,a)=>{e.layersLoaded=a}},metadata:t},x,S),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}layers=(o(this,i),o(this,m,[]));defaultLayer=(o(this,p),o(this,b,void 0));mode=(o(this,_),o(this,l,void 0));layersLoaded=(o(this,f),o(this,x,!1));updateVisibilityTimeout=(o(this,S),0);get visible(){return this.layers.filter(t=>t.frozen||t.visible)}get loaded(){return this.layers.filter(t=>t.loaded)}get rectangle(){var t=this.visible.filter(e=>!e.frozen).map(e=>e.viewbox??e.rect);return this.mode!==LayersMode.Radio||!t.length?null:O.fromUnion(...t)||null}get viewboxRectangle(){var t=this.visible.filter(e=>!e.frozen&&e.viewbox).map(e=>e.viewbox);return t.length&&O.fromUnion(...t)||null}get pathwayLayers(){return this.layers.filter(t=>t.pathway)}get floors(){if(!B())return[];const t=new Set(this.layers.filter(a=>a&&!a.frozen&&!a.rootParent&&!a.pathway).concat(n.routeStore.layers.filter(a=>a&&a.mode!==LayerMode.AlwaysHidden&&a.mode!==LayerMode.AlwaysVisible))),e=Array.from(t).reverse();return e.map((a,r)=>{const d=n.routeStore.layers.length>0&&n.routeStore.layers.indexOf(a)===-1,g=n.toursStore.tourLayers.length>0&&n.toursStore.tourLayers.indexOf(a)===-1;return{layer:a,name:a.name,shortName:a.shortName,description:a.description,active:a.visible,disabled:!!(d||g),index:a.floorIndex??e.length-r-1}})}updateVisibility(t,e){if(this.mode===LayersMode.Radio&&!e)return;const a=t instanceof W?t:this.findLayer(t);if(!a||a.visible===e){a&&n.routeStore.currentRouteLayer!==a&&(n.routeStore.currentRouteLayer=a);return}C(a,n.rendererService).then(()=>{this.mode===LayersMode.Radio&&this.layers.filter(r=>!r.pathway).forEach(r=>{r.name!==a.name&&!r.frozen&&r.visible&&(r.visible=!1,r.childLayers.forEach(d=>{d.visible=!1}))}),a&&(a.visible=e,a.childLayers.forEach(r=>{r.visible=e}),e&&(n.routeStore.currentRouteLayer=a),typeof n.fp.onFloorActivated=="function"&&(clearTimeout(this.updateVisibilityTimeout),this.updateVisibilityTimeout=setTimeout(()=>{const r=n.fp.getFloors();n.fp.onFloorActivated(r.find(d=>d.name===a.name))})))})}findLayer(t){if(t==null)return null;const e=this.layers.filter(r=>!r.rootParent);if(typeof t=="number"&&(a=e.filter(r=>!r.frozen)[t],a))return a;t=t.toString().toLowerCase();var a=e.find(r=>{const d=(r.name.match(/(-?[0-9]+)/)||"")[0];return t===r?.name.toLowerCase()||t===r?.description.toLowerCase()||t===r?.shortName.toLowerCase()||t===d});return!a&&!/\D/.test(t)&&(a=e.filter(r=>!r.frozen)[parseInt(t)]),a}getPathwayList(){return this.layers.filter(t=>t.pathway)}async showPathWay(t){try{const e=this.findLayer(t);if(!e)throw new Error(`There is no pathway with this name. ${t}`);await C(e,n.rendererService);const a=this.getPathwayList();j(()=>{a.forEach(r=>{const d=r.name===t;r.visible=d,r.childLayers.forEach(g=>{g.visible=d})})})}catch(e){console.error("showPathWay",e)}}hidePathways(){this.getPathwayList().forEach(e=>{e.visible=!1,e.childLayers.forEach(a=>{a.visible=!1})})}}})();export default N;
1
+ import{__esDecorate as l,__runInitializers as d}from"tslib";import{Box as W}from"@expofp/geometry";import{action as g,computed as h,observable as m,runInAction as j}from"mobx";import B from"../components/Map/drawing/config/config-load-layer";import D from"../tools/settings";import{areLayersEnabled as N}from"../utils/areLayersEnabled";import{shortenName as U}from"../utils/shortenName";import s from".";const H=["money2020usa","rodion2","possible2025","2025virtuosotravelweek","zscalerskofy26","gamescom2025"];export var LayersMode;(function(i){i[i.Default=0]="Default",i[i.Separated=1]="Separated",i[i.Radio=2]="Radio",i[i.CheckBox=3]="CheckBox"})(LayersMode||(LayersMode={}));export var LayerMode;(function(i){i[i.Unset=0]="Unset",i[i.AlwaysVisible=1]="AlwaysVisible",i[i.AlwaysHidden=2]="AlwaysHidden",i[i.TurnedOn=3]="TurnedOn",i[i.TurnedOff=4]="TurnedOff"})(LayerMode||(LayerMode={}));let C=(()=>{let i,y=[],p=[],v,b=[],_=[];return class{static{const c=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;i=[m],v=[m],l(null,null,i,{kind:"field",name:"loaded",static:!1,private:!1,access:{has:n=>"loaded"in n,get:n=>n.loaded,set:(n,u)=>{n.loaded=u}},metadata:c},y,p),l(null,null,v,{kind:"field",name:"visible",static:!1,private:!1,access:{has:n=>"visible"in n,get:n=>n.visible,set:(n,u)=>{n.visible=u}},metadata:c},b,_),c&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:c})}basePriority;name;description;frozen;rect=null;viewbox=null;configured;childLayers=[];rootParent=null;mode;children=[];pathway;floorIndex;loaded=d(this,y,void 0);visible=(d(this,p),d(this,b,void 0));get shortName(){return U(this.description)}constructor(){d(this,_)}}})();export{C as Layer};let X=(()=>{let i=[],y,p=[],v=[],b,_=[],w=[],c,n=[],u=[],L,x=[],S=[],k,P,T,R,V,I,z,A,E,O;return class{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;y=[m],b=[m],c=[m],L=[m],k=[h({keepAlive:!0})],P=[h({keepAlive:!0})],T=[h({keepAlive:!0})],R=[h({keepAlive:!0})],V=[h],I=[h],z=[g],A=[g],E=[g],O=[g],l(this,null,k,{kind:"getter",name:"visible",static:!1,private:!1,access:{has:e=>"visible"in e,get:e=>e.visible},metadata:t},null,i),l(this,null,P,{kind:"getter",name:"loaded",static:!1,private:!1,access:{has:e=>"loaded"in e,get:e=>e.loaded},metadata:t},null,i),l(this,null,T,{kind:"getter",name:"rectangle",static:!1,private:!1,access:{has:e=>"rectangle"in e,get:e=>e.rectangle},metadata:t},null,i),l(this,null,R,{kind:"getter",name:"viewboxRectangle",static:!1,private:!1,access:{has:e=>"viewboxRectangle"in e,get:e=>e.viewboxRectangle},metadata:t},null,i),l(this,null,V,{kind:"getter",name:"pathwayLayers",static:!1,private:!1,access:{has:e=>"pathwayLayers"in e,get:e=>e.pathwayLayers},metadata:t},null,i),l(this,null,I,{kind:"getter",name:"floors",static:!1,private:!1,access:{has:e=>"floors"in e,get:e=>e.floors},metadata:t},null,i),l(this,null,z,{kind:"method",name:"selectFloor",static:!1,private:!1,access:{has:e=>"selectFloor"in e,get:e=>e.selectFloor},metadata:t},null,i),l(this,null,A,{kind:"method",name:"updateVisibility",static:!1,private:!1,access:{has:e=>"updateVisibility"in e,get:e=>e.updateVisibility},metadata:t},null,i),l(this,null,E,{kind:"method",name:"showPathWay",static:!1,private:!1,access:{has:e=>"showPathWay"in e,get:e=>e.showPathWay},metadata:t},null,i),l(this,null,O,{kind:"method",name:"hidePathways",static:!1,private:!1,access:{has:e=>"hidePathways"in e,get:e=>e.hidePathways},metadata:t},null,i),l(null,null,y,{kind:"field",name:"layers",static:!1,private:!1,access:{has:e=>"layers"in e,get:e=>e.layers,set:(e,a)=>{e.layers=a}},metadata:t},p,v),l(null,null,b,{kind:"field",name:"defaultLayer",static:!1,private:!1,access:{has:e=>"defaultLayer"in e,get:e=>e.defaultLayer,set:(e,a)=>{e.defaultLayer=a}},metadata:t},_,w),l(null,null,c,{kind:"field",name:"mode",static:!1,private:!1,access:{has:e=>"mode"in e,get:e=>e.mode,set:(e,a)=>{e.mode=a}},metadata:t},n,u),l(null,null,L,{kind:"field",name:"layersLoaded",static:!1,private:!1,access:{has:e=>"layersLoaded"in e,get:e=>e.layersLoaded,set:(e,a)=>{e.layersLoaded=a}},metadata:t},x,S),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}layers=(d(this,i),d(this,p,[]));defaultLayer=(d(this,v),d(this,_,void 0));mode=(d(this,w),d(this,n,void 0));layersLoaded=(d(this,u),d(this,x,!1));updateVisibilityTimeout=(d(this,S),0);selectFloorTimeout=0;get visible(){return this.layers.filter(t=>t.frozen||t.visible)}get loaded(){return this.layers.filter(t=>t.loaded)}get rectangle(){var t=this.visible.filter(e=>!e.frozen).map(e=>e.viewbox??e.rect);return this.mode!==LayersMode.Radio||!t.length?null:W.fromUnion(...t)||null}get viewboxRectangle(){var t=this.visible.filter(e=>!e.frozen&&e.viewbox).map(e=>e.viewbox);return t.length&&W.fromUnion(...t)||null}get pathwayLayers(){return this.layers.filter(t=>t.pathway)}get floors(){if(!N())return[];const t=new Set(this.layers.filter(a=>a&&!a.frozen&&!a.rootParent&&!a.pathway).concat(s.routeStore.layers.filter(a=>a&&a.mode!==LayerMode.AlwaysHidden&&a.mode!==LayerMode.AlwaysVisible))),e=Array.from(t).reverse();return e.map((a,r)=>{const o=s.routeStore.layers.length>0&&s.routeStore.layers.indexOf(a)===-1,f=s.toursStore.tourLayers.length>0&&s.toursStore.tourLayers.indexOf(a)===-1;return{layer:a,name:a.name,shortName:a.shortName,description:a.description,active:a.visible,disabled:!!(o||f),index:a.floorIndex??e.length-r-1}})}selectFloor(t){if(this.selectFloorTimeout)return;this.selectFloorTimeout=setTimeout(()=>this.selectFloorTimeout=0,500);const e=this.layers.find(r=>r.description===t.description);if(!e)return;if(this.mode===LayersMode.Radio){if(this.updateVisibility(e,!0),s.maplibreStore.showMaplibre)return;if(!!window.__fpSettings?.fpVer||H.includes(D.EXPO)){const o=e.viewbox??e.rect;s.uiState.moveToRect=o}else{const o=this.layers.indexOf(this.layers.filter(F=>!F.frozen&&F.visible)[0]),f=this.layers.indexOf(e);if(o===f)return;s.uiState.zoomBy=f<o?.95:1.05}}else this.updateVisibility(e,!e.visible);const a=s.toursStore.getTourLayerInfo(e.name)||s.toursStore.getTourLayerInfo(e.description);if(a){this.showPathWay(a.id);return}s.toursStore.stopTour()}updateVisibility(t,e){if(this.mode===LayersMode.Radio&&!e)return;const a=t instanceof C?t:this.findLayer(t);if(!a||a.visible===e){a&&s.routeStore.currentRouteLayer!==a&&(s.routeStore.currentRouteLayer=a);return}B(a,s.rendererService).then(()=>{this.mode===LayersMode.Radio&&this.layers.filter(r=>!r.pathway).forEach(r=>{r.name!==a.name&&!r.frozen&&r.visible&&(r.visible=!1,r.childLayers.forEach(o=>{o.visible=!1}))}),a&&(a.visible=e,a.childLayers.forEach(r=>{r.visible=e}),e&&(s.routeStore.currentRouteLayer=a),typeof s.fp.onFloorActivated=="function"&&(clearTimeout(this.updateVisibilityTimeout),this.updateVisibilityTimeout=setTimeout(()=>{const r=s.fp.getFloors();s.fp.onFloorActivated(r.find(o=>o.name===a.name))})))})}findLayer(t){if(t==null)return null;const e=this.layers.filter(r=>!r.rootParent);if(typeof t=="number"&&(a=e.filter(r=>!r.frozen)[t],a))return a;t=t.toString().toLowerCase();var a=e.find(r=>{const o=(r.name.match(/(-?[0-9]+)/)||"")[0];return t===r?.name.toLowerCase()||t===r?.description.toLowerCase()||t===r?.shortName.toLowerCase()||t===o});return!a&&!/\D/.test(t)&&(a=e.filter(r=>!r.frozen)[parseInt(t)]),a}getPathwayList(){return this.layers.filter(t=>t.pathway)}async showPathWay(t){try{const e=this.findLayer(t);if(!e)throw new Error(`There is no pathway with this name. ${t}`);await B(e,s.rendererService);const a=this.getPathwayList();j(()=>{a.forEach(r=>{const o=r.name===t;r.visible=o,r.childLayers.forEach(f=>{f.visible=o})})})}catch(e){console.error("showPathWay",e)}}hidePathways(){this.getPathwayList().forEach(e=>{e.visible=!1,e.childLayers.forEach(a=>{a.visible=!1})})}}})();export default X;
@@ -0,0 +1,15 @@
1
+ import './DownloadList.scss';
2
+ export interface DownloadItem {
3
+ fileName: string;
4
+ path: string;
5
+ }
6
+ export interface DownloadListProps {
7
+ list: DownloadItem[];
8
+ /** Section heading (e.g. a localized "Read More"). */
9
+ title: string;
10
+ /** Builds the per-item download link accessible name from its file name. */
11
+ downloadLabel: (fileName: string) => string;
12
+ }
13
+ declare function DownloadList({ list, title, downloadLabel }: DownloadListProps): import("react").JSX.Element;
14
+ export default DownloadList;
15
+ //# sourceMappingURL=DownloadList.d.ts.map
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as n}from"react/jsx-runtime";import"./DownloadList.scss";function o({fileName:a,path:l,downloadLabel:i}){return n("a",{className:"efp-download-list__item",href:l,download:!0,target:"_blank",rel:"noopener noreferrer","aria-label":i(a),children:[e("div",{className:"efp-download-list__item-icon",children:e("i",{className:"icon-file-solid","aria-hidden":"true"})}),e("div",{className:"efp-download-list__item-name",children:e("span",{children:a})}),e("div",{className:"efp-download-list__item-download",children:e("i",{className:"icon-download","aria-hidden":"true"})})]})}function s({list:a,title:l,downloadLabel:i}){return n("div",{className:"efp-download-list",children:[e("div",{className:"efp-download-list__title font-medium",children:l}),e("ul",{className:"efp-download-list__list",children:a.map(d=>e("li",{children:e(o,{fileName:d.fileName,path:d.path,downloadLabel:i})},d.path))})]})}export default s;
@@ -0,0 +1,3 @@
1
+ export { default } from './DownloadList';
2
+ export type { DownloadListProps, DownloadItem } from './DownloadList';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ export{default}from"./DownloadList";
@@ -0,0 +1,19 @@
1
+ import './LevelSelector.scss';
2
+ export interface LevelSelectorFloor {
3
+ /** Stable identifier for the floor (used as React key and passed to `onSelect`). */
4
+ id: string;
5
+ /** Display name shown to the user (already resolved to short/full by the caller). */
6
+ label: string;
7
+ active: boolean;
8
+ disabled: boolean;
9
+ }
10
+ export interface LevelSelectorProps {
11
+ floors: LevelSelectorFloor[];
12
+ layout: 'compact-list' | 'dropdown';
13
+ onSelect: (id: string) => void;
14
+ floorSelectionLabel: string;
15
+ currentFloorLabel: string;
16
+ floorLabel: string;
17
+ }
18
+ export default function LevelSelector({ floors, layout, onSelect, floorSelectionLabel, currentFloorLabel, floorLabel, }: LevelSelectorProps): import("react").JSX.Element | null;
19
+ //# sourceMappingURL=LevelSelector.d.ts.map
@@ -0,0 +1 @@
1
+ import{jsx as i,jsxs as m}from"react/jsx-runtime";import"./LevelSelector.scss";import s from"classnames";import{useCallback as v,useLayoutEffect as j,useRef as h,useState as y}from"react";import A from"../shared/hooks/useOnClickOutside";import O from"../shared/hooks/useOnEscape";export default function E({floors:n,layout:D,onSelect:f,floorSelectionLabel:g,currentFloorLabel:w,floorLabel:x}){const N=h(null),l=h(null),c=h(new Map),[a,o]=y(!1),[k,R]=y("down"),I=v(()=>{o(!1),l.current?.focus()},[]);A([N,l],()=>o(!1),a),O(I,a),j(()=>{if(a&&l.current){const e=l.current.getBoundingClientRect(),d=window.innerHeight-e.bottom;R(d<200?"up":"down")}},[a]);const u=v(e=>{e.disabled||(f(e.id),o(!1),l.current?.focus())},[f]),b=v((e,t)=>{if(e.key!=="ArrowDown"&&e.key!=="ArrowUp")return;e.preventDefault();const d=n.findIndex($=>$.id===t.id),_=e.key==="ArrowDown"?1:-1;let p=d+_;for(;p>=0&&p<n.length;){if(!n[p].disabled){c.current.get(n[p].id)?.focus();return}p+=_}},[n]),C=v((e,t)=>{if(e.key==="Enter"||e.key===" "){if(t.disabled)return;e.preventDefault(),u(t);return}b(e,t)},[b,u]);if(n.length===0)return null;const r=n.find(e=>e.active);if(D==="compact-list"){const e=r&&!r.disabled?r:n.find(t=>!t.disabled);return i("div",{className:s("efp-level-selector","efp-level-selector--compact-list"),role:"radiogroup","aria-label":g,children:n.map(t=>i("button",{ref:d=>{d?c.current.set(t.id,d):c.current.delete(t.id)},type:"button",className:s("efp-level-selector__item",{"efp-level-selector__item--active":t.active,"efp-level-selector__item--disabled":t.disabled}),role:"radio",title:`${t.active?w:x} ${t.label}`,"aria-label":`${t.active?w:x} ${t.label}`,"aria-checked":t.active,"aria-disabled":t.disabled,tabIndex:t.id===e?.id?0:-1,onClick:()=>u(t),onKeyDown:d=>b(d,t),children:i("span",{dir:"auto",children:t.label})},t.id))})}return m("div",{className:s("efp-level-selector","efp-level-selector--dropdown"),children:[m("button",{ref:l,type:"button",className:s("efp-level-selector__trigger",{"efp-level-selector__trigger--open":a}),onClick:()=>o(!a),"aria-haspopup":"listbox","aria-expanded":a,"aria-label":`${w}: ${r?.label??""}`,children:[m("div",{className:"efp-level-selector__trigger-text",children:[i("i",{className:"icon-layers","aria-hidden":"true"}),i("span",{dir:"auto",children:r?.label??""})]}),i("div",{className:"efp-level-selector__trigger-chevron",children:i("i",{className:"icon-chevron-down","aria-hidden":"true"})})]}),a&&i("div",{ref:N,className:s("efp-level-selector__dropdown","efp-level-selector__dropdown--full",{"efp-level-selector__dropdown--opens-up":k==="up","efp-level-selector__dropdown--opens-down":k==="down"}),role:"listbox","aria-label":g,children:n.map(e=>m("div",{ref:t=>{t?c.current.set(e.id,t):c.current.delete(e.id)},className:s("efp-level-selector__dropdown-item",{"efp-level-selector__dropdown-item--active":e.active,"efp-level-selector__dropdown-item--disabled":e.disabled}),role:"option","aria-selected":e.active,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,onClick:()=>u(e),onKeyDown:t=>C(t,e),children:[i("span",{className:"efp-level-selector__dropdown-item-icon",children:e.active&&i("i",{className:"icon-checkmark-solid","aria-hidden":"true"})}),i("span",{className:"efp-level-selector__dropdown-item-name",dir:"auto",children:e.label})]},e.id))})]})}
@@ -0,0 +1,3 @@
1
+ export { default } from './LevelSelector';
2
+ export type { LevelSelectorProps, LevelSelectorFloor } from './LevelSelector';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ export{default}from"./LevelSelector";
@@ -0,0 +1,33 @@
1
+ import './MapControls.scss';
2
+ import { type CSSProperties } from 'react';
3
+ export interface MapControlLayersItem {
4
+ id: string;
5
+ name: string;
6
+ }
7
+ export interface MapControlsProps {
8
+ className?: string;
9
+ style?: CSSProperties;
10
+ title: string;
11
+ findLocationLabel: string;
12
+ zoomInLabel: string;
13
+ zoomOutLabel: string;
14
+ viewModeLabel: string;
15
+ fitToScreenLabel: string;
16
+ layersLabel: string;
17
+ showModeSwitch: boolean;
18
+ showFindLocation: boolean;
19
+ isMap3d: boolean;
20
+ defaultLayersOpen?: boolean;
21
+ layersList?: MapControlLayersItem[];
22
+ layersActiveItems?: string[];
23
+ layersWidth?: number;
24
+ onViewModeSwitch: () => void;
25
+ onFindLocation: () => void;
26
+ onZoomIn: () => void;
27
+ onZoomOut: () => void;
28
+ onFitToScreen: () => void;
29
+ onChangeLayers: (value: string) => void;
30
+ }
31
+ declare const MapControls: ({ className, style, title, findLocationLabel, zoomInLabel, zoomOutLabel, viewModeLabel, fitToScreenLabel, layersLabel, isMap3d, showModeSwitch, showFindLocation, defaultLayersOpen, layersList, layersActiveItems, layersWidth, onViewModeSwitch, onFindLocation, onZoomIn, onZoomOut, onFitToScreen, onChangeLayers, }: MapControlsProps) => import("react").JSX.Element;
32
+ export default MapControls;
33
+ //# sourceMappingURL=MapControls.d.ts.map
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as i}from"react/jsx-runtime";import"./MapControls.scss";import c from"classnames";import{useId as S,useLayoutEffect as W,useRef as k,useState as y}from"react";import F from"../shared/hooks/useOnClickOutside";import M from"../shared/hooks/useOnEscape";const A=({className:w,style:C,title:x,findLocationLabel:s,zoomInLabel:o,zoomOutLabel:r,viewModeLabel:p,fitToScreenLabel:d,layersLabel:u,isMap3d:_,showModeSwitch:v,showFindLocation:g,defaultLayersOpen:R=!1,layersList:m,layersActiveItems:j=[],layersWidth:B,onViewModeSwitch:O,onFindLocation:$,onZoomIn:H,onZoomOut:P,onFitToScreen:q,onChangeLayers:E})=>{const t=k(null),h=k(null),f=S(),[n,l]=y(R),[N,b]=y("down");F(t,()=>l(!1),n),M(()=>{l(!1),h.current?.focus()},n),W(()=>{if(n&&t.current){const a=t.current.getBoundingClientRect();window.innerHeight-a.bottom<250?b("up"):b("down")}},[n]);const I=a=>E(a);return i("div",{className:c("efp-map-controls",w),style:C,role:"toolbar","aria-label":x,children:[g&&e("button",{type:"button",className:"efp-map-control","aria-label":s,title:s,onClick:$,children:e("i",{className:"icon-navigation","aria-hidden":"true"})}),m&&i("div",{className:"efp-layers-button",ref:t,children:[e("button",{ref:h,type:"button",className:c("efp-map-control",{"efp-map-control--active":n}),"aria-label":u,title:u,"aria-haspopup":"true","aria-expanded":n,onClick:()=>l(!n),children:e("i",{className:"icon-layers","aria-hidden":"true"})}),n&&e("div",{className:c("efp-checked-panel",{"efp-checked-panel--opens-up":N==="up","efp-checked-panel--opens-down":N==="down"}),style:{minWidth:B},children:e("ul",{className:"efp-checked-panel__list",children:m.map(a=>i("li",{children:[e("input",{type:"checkbox",className:"efp-checked-panel__checkbox",value:a.id,id:`${f}-${a.id}`,checked:j.includes(a.id),onChange:()=>I(a.id)}),e("label",{className:"efp-checked-panel__label",htmlFor:`${f}-${a.id}`,children:e("div",{className:"efp-checked-panel__item-name",children:a.name})})]},a.id))})})]}),v&&e("button",{type:"button",className:"efp-map-control","aria-label":p,title:p,onClick:O,children:e("i",{className:_?"icon-two-dim":"icon-three-dim","aria-hidden":"true"})}),i("div",{className:"efp-map-control-group",children:[e("button",{type:"button",className:"efp-map-control","aria-label":o,title:o,onClick:H,children:e("i",{className:"icon-plus","aria-hidden":"true"})}),e("div",{className:"efp-map-control-divider"}),e("button",{type:"button",className:"efp-map-control","aria-label":r,title:r,onClick:P,children:e("i",{className:"icon-minus","aria-hidden":"true"})})]}),e("button",{type:"button",className:"efp-map-control","aria-label":d,title:d,onClick:q,children:e("i",{className:"icon-maximize","aria-hidden":"true"})})]})};export default A;
@@ -0,0 +1,3 @@
1
+ export { default } from './MapControls';
2
+ export type { MapControlsProps, MapControlLayersItem } from './MapControls';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ export{default}from"./MapControls";
@@ -0,0 +1,26 @@
1
+ import './SidebarActions.scss';
2
+ export interface SidebarActionsProps {
3
+ className?: string;
4
+ inBookmark?: boolean;
5
+ visited?: boolean;
6
+ showVisited?: boolean;
7
+ showBookmark?: boolean;
8
+ showDirections?: boolean;
9
+ showRoutePlanner?: boolean;
10
+ showShare?: boolean;
11
+ directionsLabel: string;
12
+ visitedLabel: string;
13
+ notVisitedLabel: string;
14
+ saveBookmarkLabel: string;
15
+ removeBookmarkLabel: string;
16
+ routePlannerLabel: string;
17
+ shareLabel: string;
18
+ onClickBookmark?: () => void;
19
+ onClickVisited?: () => void;
20
+ onClickDirections?: () => void;
21
+ onClickRoutePlanner?: () => void;
22
+ onClickShare?: () => void;
23
+ }
24
+ declare const SidebarActions: ({ className, inBookmark, visited, showVisited, showBookmark, showDirections, showRoutePlanner, showShare, directionsLabel, visitedLabel, notVisitedLabel, saveBookmarkLabel, removeBookmarkLabel, routePlannerLabel, shareLabel, onClickBookmark, onClickVisited, onClickDirections, onClickRoutePlanner, onClickShare, }: SidebarActionsProps) => import("react").JSX.Element;
25
+ export default SidebarActions;
26
+ //# sourceMappingURL=SidebarActions.d.ts.map
@@ -0,0 +1 @@
1
+ import{jsx as t,jsxs as o}from"react/jsx-runtime";import"./SidebarActions.scss";import d from"classnames";import{useEffect as S,useRef as _,useState as E}from"react";import g from"../CheckboxButton";const q=({className:m,inBookmark:e=!1,visited:c=!1,showVisited:p=!1,showBookmark:b=!0,showDirections:h=!0,showRoutePlanner:N=!1,showShare:C=!0,directionsLabel:i,visitedLabel:s,notVisitedLabel:x,saveBookmarkLabel:r,removeBookmarkLabel:u,routePlannerLabel:n,shareLabel:l,onClickBookmark:j,onClickVisited:k,onClickDirections:y,onClickRoutePlanner:T,onClickShare:A})=>{const[I,f]=E(!1),a=_(void 0);S(()=>()=>{a.current!==void 0&&clearTimeout(a.current)},[]);const R=()=>{clearTimeout(a.current),f(!0),j?.(),a.current=setTimeout(()=>{f(!1)},320)};return o("div",{className:d("efp-sidebar-actions",m),children:[h&&o("button",{type:"button",className:"efp-action-button efp-action-button--directions",onClick:y,title:i,"aria-label":i,children:[t("i",{className:"icon-directions","aria-hidden":"true"}),i]}),p&&t(g,{className:"efp-visited-btn",ariaLabel:c?s:x,checked:c,label:s,onClick:k??(()=>{})}),b&&t("button",{type:"button",className:d("efp-action-button","efp-action-button--bookmark",{"efp-action-button--active":e,"efp-action-button--animate":I}),title:e?u:r,"aria-label":e?u:r,"aria-pressed":e,onClick:R,children:t("i",{className:e?"icon-bookmark-solid":"icon-bookmark","aria-hidden":"true"})}),N&&o("button",{type:"button",className:"efp-action-button efp-action-button--route-planner",title:n,"aria-label":n,onClick:T,children:[t("i",{className:"icon-route-solid","aria-hidden":"true"}),n]}),C&&t("button",{type:"button",className:"efp-action-button efp-action-button--share",title:l,"aria-label":l,onClick:A,children:t("i",{className:"icon-share","aria-hidden":"true"})})]})};export default q;
@@ -0,0 +1,3 @@
1
+ export { default } from './SidebarActions';
2
+ export type { SidebarActionsProps } from './SidebarActions';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ export{default}from"./SidebarActions";
@@ -0,0 +1,15 @@
1
+ import './SimpleRow.scss';
2
+ import type { CSSProperties, ReactNode } from 'react';
3
+ export interface SimpleRowProps {
4
+ title: ReactNode;
5
+ subtitle: string;
6
+ trailing?: string;
7
+ slug: string;
8
+ active?: boolean;
9
+ className?: string;
10
+ style?: CSSProperties;
11
+ onClick: () => void;
12
+ }
13
+ declare const SimpleRow: ({ title, subtitle, trailing, slug, style, className, active, onClick, }: SimpleRowProps) => import("react").JSX.Element;
14
+ export default SimpleRow;
15
+ //# sourceMappingURL=SimpleRow.d.ts.map
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as l}from"react/jsx-runtime";import"./SimpleRow.scss";import t from"classnames";const f=({title:i,subtitle:a,trailing:s,slug:o,style:r,className:m,active:p=!1,onClick:c})=>{const d=n=>{n.preventDefault(),c()};return l("a",{href:"?"+encodeURIComponent(o),onClick:d,className:t("efp-simple-row",{"efp-simple-row--active":p},m),style:r,children:[l("div",{className:"efp-simple-row__col",children:[e("div",{className:"efp-simple-row__main",dir:"auto",children:i}),e("div",{className:"efp-simple-row__sub",dir:"auto",children:a})]}),s&&e("div",{className:"efp-simple-row__end",children:s})]})};export default f;
@@ -0,0 +1,3 @@
1
+ export { default } from './SimpleRow';
2
+ export type { SimpleRowProps } from './SimpleRow';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ export{default}from"./SimpleRow";
@@ -1,4 +1,14 @@
1
1
  import { type RefObject } from 'react';
2
- declare function useOnClickOutside(refs: RefObject<HTMLElement | null> | RefObject<HTMLElement | null>[], handler: (event: MouseEvent | TouchEvent) => void): void;
2
+ type Ref = RefObject<HTMLElement | null>;
3
+ /**
4
+ * Calls `handler` when a click or touch lands outside every ref in `refs`,
5
+ * while `enabled` is true.
6
+ *
7
+ * The listeners are attached to `document`. Both `refs` and `handler` are held
8
+ * in refs, so passing an inline array/arrow does not re-subscribe on every
9
+ * render — the listeners are only (re)attached when `enabled` flips. Pass the
10
+ * open state as `enabled` so the listeners exist only while the popup is open.
11
+ */
12
+ declare function useOnClickOutside(refs: Ref | Ref[], handler: (event: Event) => void, enabled?: boolean): void;
3
13
  export default useOnClickOutside;
4
14
  //# sourceMappingURL=useOnClickOutside.d.ts.map
@@ -1 +1 @@
1
- import{useEffect as o,useRef as u}from"react";function a(r,n){const s=u(n);o(()=>{s.current=n},[n]),o(()=>{const t=e=>{(Array.isArray(r)?r:[r]).some(c=>{if(!c.current)return!1;const i=e.target;return c.current.contains(i)||e.composed&&c.current.contains(e.composedPath()[0])})||s.current(e)};return document.addEventListener("click",t),document.addEventListener("touchstart",t),()=>{document.removeEventListener("click",t),document.removeEventListener("touchstart",t)}},[])}export default a;
1
+ import{useEffect as i,useRef as a}from"react";function f(c,s,u=!0){const t=a(c),o=a(s);i(()=>{t.current=c,o.current=s}),i(()=>{if(!u)return;const r=e=>{(Array.isArray(t.current)?t.current:[t.current]).some(n=>{if(!n||!n.current)return!1;const d=e.target;return n.current.contains(d)||e.composed&&n.current.contains(e.composedPath()[0])})||o.current(e)};return document.addEventListener("click",r),document.addEventListener("touchstart",r),()=>{document.removeEventListener("click",r),document.removeEventListener("touchstart",r)}},[u])}export default f;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Calls `handler` when the Escape key is pressed while `enabled` is true.
3
+ *
4
+ * The listener is attached to `document`, so Escape is caught regardless of
5
+ * where focus currently sits. The handler is held in a ref, so passing an
6
+ * inline arrow does not re-subscribe the listener on every render — it only
7
+ * re-subscribes when `enabled` flips.
8
+ *
9
+ * Focus management (e.g. returning focus to a trigger) is left to the caller's
10
+ * handler, since which element to focus is component-specific.
11
+ */
12
+ declare function useOnEscape(handler: () => void, enabled?: boolean): void;
13
+ export default useOnEscape;
14
+ //# sourceMappingURL=useOnEscape.d.ts.map
@@ -0,0 +1 @@
1
+ import{useEffect as o,useRef as c}from"react";function f(e,n=!0){const t=c(e);o(()=>{t.current=e}),o(()=>{if(!n)return;const r=u=>{u.key==="Escape"&&t.current()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[n])}export default f;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expofp/floorplan",
3
- "version": "3.11.1",
3
+ "version": "3.11.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/expofp/efp-app.git",
@@ -36,8 +36,8 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@expofp/renderer": "3.2.4",
39
- "@sentry/core": "^10.60.0",
40
- "@sentry/react": "^10.60.0",
39
+ "@sentry/core": "^10.62.0",
40
+ "@sentry/react": "^10.62.0",
41
41
  "bowser": "^2.14.1",
42
42
  "classnames": "^2.2.6",
43
43
  "color": "^3.1.2",
@@ -72,9 +72,9 @@
72
72
  "tslib": "^2.3.0",
73
73
  "uuid": "^9.0.1",
74
74
  "zod": "4.3.5",
75
- "@expofp/debug": "3.11.1",
76
- "@expofp/geometry": "3.11.1",
77
- "@expofp/resolve": "3.11.1"
75
+ "@expofp/debug": "3.11.3",
76
+ "@expofp/geometry": "3.11.3",
77
+ "@expofp/resolve": "3.11.3"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@babel/plugin-proposal-decorators": "^8.0.2",
@@ -1,3 +0,0 @@
1
- import * as React from 'react';
2
- export default function Controls(): React.JSX.Element;
3
- //# sourceMappingURL=Controls.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as m}from"react/jsx-runtime";import c from"classnames";import{useLocalStore as d,useObserver as p}from"mobx-react-lite";import i,{layersStore as r,uiState as o}from"../store";import{LayerMode as l,LayersMode as u}from"../store/LayerStore";import{remsToPixels as a}from"../utils";import{t}from"../utils/i18n";import y from"./MapControls";export default function b(){const s=d(()=>({get className(){return c({controls:!0,container:!0,"-ready":!0,[o.responsiveClass]:!0})},get style(){return{[o.rtl?"left":"right"]:o.overlayPosition==="left"?o.overlayCollapsed?a(.9):(o.kiosk?10:0)+a(.7)+"px":"10px",bottom:o.kiosk?a(4):a(9.6)}},get layers(){return r.layers.filter(e=>e.mode!==l.AlwaysHidden&&e.mode!==l.AlwaysVisible).map(e=>({id:e.name,name:e.description,visible:e.visible})).concat([]).reverse()},get visible(){return r.layers.filter(e=>e.visible).map(e=>e.name)}}));return p(()=>m(y,{className:s.className,style:s.style,title:t("Map controls"),titles:[t("Find your location"),t("Zoom In"),t("Zoom Out"),t("View switch"),t("Fit to screen"),t("Layers")],onClickFindLocation:()=>i.routeStore.findLocation(),onClickZoomIn:()=>o.zoomIn(),onClickZoomOut:()=>o.zoomOut(),onClickByWidth:()=>o.fitBounds(),onViewModeSwitch:()=>i.maplibreStore.activateMaplibre(),viewModeSwitch:i.maplibreStore.maplibreEnabled&&!i.maplibreStore.hideModeSwitchButton,viewMode:i.maplibreStore.isMap3d,findLocation:i.routeStore.canFindLocation&&!o.setKioskModeEnabled,layersActiveItems:s.visible,layersList:r.mode===u.CheckBox?s.layers:null,onChangeLayers:e=>{r.updateVisibility(e,!r.layers.find(n=>n.name===e).visible)}}))}
@@ -1,4 +0,0 @@
1
- import './LevelSelector.scss';
2
- import React from 'react';
3
- export default function LevelSelector(): React.JSX.Element | null;
4
- //# sourceMappingURL=LevelSelector.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as s,jsxs as v}from"react/jsx-runtime";import"./LevelSelector.scss";import m from"classnames";import{useObserver as I}from"mobx-react-lite";import{useCallback as b,useEffect as E,useLayoutEffect as R,useRef as h,useState as O}from"react";import D from"../data";import i,{uiState as g}from"../store";import{LayersMode as S}from"../store/LayerStore";import C from"../tools/settings";import{t as p}from"../utils/i18n";import L from"../utils/useOnClickOutside";const T=["money2020usa","rodion2","possible2025","2025virtuosotravelweek","zscalerskofy26","gamescom2025"],V=["ice-gaming2026"];function P(l){return V.includes(C.EXPO)?{layout:"compact-list",useShortNames:l}:{layout:l?"compact-list":"dropdown",useShortNames:l}}export default function B(){const l=h(null),_=h(null),d=h(null),[c,f]=O(!1),[k,F]=O("down");L([_,d],()=>f(!1)),E(()=>()=>{l.current&&clearTimeout(l.current)},[]),E(()=>{if(!c)return;const t=r=>{r.key==="Escape"&&(f(!1),d.current?.focus())};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[c]),R(()=>{if(c&&d.current){const t=d.current.getBoundingClientRect(),n=window.innerHeight-t.bottom;F(n<200?"up":"down")}},[c]);const x=b(t=>{if(l.current)return;l.current=setTimeout(()=>l.current=null,500);const r=i.layerStore.layers.find(u=>u.description===t.description);if(i.layerStore.mode===S.Radio){if(i.layerStore.updateVisibility(r,!0),i.maplibreStore.showMaplibre)return;if(!!window.__fpSettings?.fpVer||T.includes(C.EXPO)){const o=r.viewbox??r.rect;g.moveToRect=o}else{const o=i.layerStore.layers.indexOf(i.layerStore.layers.filter(e=>!e.frozen&&e.visible)[0]),a=i.layerStore.layers.indexOf(r);if(o===a)return;a<o?g.zoomBy=.95:g.zoomBy=1.05}}else i.layerStore.updateVisibility(r,!r.visible);const n=i.toursStore.getTourLayerInfo(r.name)||i.toursStore.getTourLayerInfo(r.description);if(n){i.layerStore.showPathWay(n.id);return}i.toursStore.stopTour()},[]),y=b(t=>{t.disabled||(x(t.layer),f(!1),d.current?.focus())},[x]),N=b((t,r,n)=>{if(t.key==="Enter"||t.key===" "){if(r.disabled)return;t.preventDefault(),y(r);return}if(t.key==="ArrowDown"||t.key==="ArrowUp"){t.preventDefault();const u=n.findIndex(e=>e.layer.description===r.layer.description),o=t.key==="ArrowDown"?1:-1;let a=u+o;for(;a>=0&&a<n.length;){if(!n[a].disabled){t.currentTarget.parentElement?.children?.[a]?.focus();return}a+=o}}t.key==="Escape"&&(f(!1),d.current?.focus())},[y]);return I(()=>{const t=i.layerStore.floors;if(!(i.layerStore.mode===S.Radio||i.layerStore.mode===S.CheckBox)||t.length===0)return null;const{layout:n,useShortNames:u}=P(D.shortLevelName),o=t.find(e=>e.active),a=e=>u?e.shortName:e.description;return n==="compact-list"?s("div",{className:m("efp-level-selector","efp-level-selector--compact-list",{"is-ready":t.length}),role:"radiogroup","aria-label":p("Floor selection"),children:t.map(e=>s("div",{className:m("efp-level-selector__item",{"is-active":e.active,"is-disabled":e.disabled}),role:"radio",title:`${e.active?p("Current Floor"):p("Floor")} ${e.layer.description}`,"aria-label":`${e.active?p("Current Floor"):p("Floor")} ${e.layer.description}`,"aria-checked":e.active,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,onClick:()=>!e.disabled&&y(e),onKeyDown:w=>N(w,e,t),dir:"auto",children:s("span",{children:a(e)})},e.layer.description))}):v("div",{className:m("efp-level-selector","efp-level-selector--dropdown",{"is-ready":t.length}),children:[v("button",{ref:d,type:"button",className:m("efp-level-selector__trigger",{"is-open":c}),onClick:()=>f(!c),"aria-haspopup":"listbox","aria-expanded":c,"aria-label":`${p("Current Floor")}: ${o?.description??""}`,children:[v("div",{className:"efp-level-selector__trigger-text",children:[s("i",{className:"icon-layers","aria-hidden":"true"}),s("span",{children:o?.description??""})]}),s("div",{className:"efp-level-selector__trigger-chevron",children:s("i",{className:"icon-chevron-down","aria-hidden":"true"})})]}),c&&s("div",{ref:_,className:m("efp-level-selector__dropdown","efp-level-selector__dropdown--full",{"is-opens-up":k==="up","is-opens-down":k==="down"}),role:"listbox","aria-label":p("Floor selection"),children:t.map(e=>v("div",{className:m("efp-level-selector__dropdown-item",{"is-active":e.active,"is-disabled":e.disabled}),role:"option","aria-selected":e.active,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,onClick:()=>y(e),onKeyDown:w=>N(w,e,t),children:[s("span",{className:"efp-level-selector__dropdown-item-icon",children:e.active&&s("i",{className:"icon-checkmark-solid","aria-hidden":"true"})}),s("span",{className:"efp-level-selector__dropdown-item-name",children:e.description})]},e.layer.description))})]})})}
@@ -1,28 +0,0 @@
1
- import './MapControls.scss';
2
- import React from 'react';
3
- export interface MapControlLayersItem {
4
- id: string;
5
- name: string;
6
- }
7
- export interface MapControlsProps {
8
- className?: string;
9
- style?: React.CSSProperties;
10
- title: string;
11
- titles: string[];
12
- viewModeSwitch: boolean;
13
- findLocation: boolean;
14
- viewMode: boolean;
15
- layersOpen?: boolean;
16
- layersList?: MapControlLayersItem[];
17
- layersActiveItems?: string[];
18
- layersWidth?: number;
19
- onViewModeSwitch: () => void;
20
- onClickFindLocation: () => void;
21
- onClickZoomIn: () => void;
22
- onClickZoomOut: () => void;
23
- onClickByWidth: () => void;
24
- onChangeLayers: (value: string) => void;
25
- }
26
- declare const MapControls: React.FC<MapControlsProps>;
27
- export default MapControls;
28
- //# sourceMappingURL=MapControls.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as e,jsxs as c}from"react/jsx-runtime";import"./MapControls.scss";import l from"classnames";import{useEffect as _,useLayoutEffect as H,useMemo as I,useRef as r,useState as f}from"react";import{uiState as L}from"../store";import P from"../utils/useOnClickOutside";const q=({className:h,style:b,title:y,titles:o,viewMode:N,viewModeSwitch:w,findLocation:C,layersOpen:k=!1,layersList:d,layersActiveItems:g=[],layersWidth:v,onViewModeSwitch:x,onClickFindLocation:R,onClickZoomIn:O,onClickZoomOut:z,onClickByWidth:j,onChangeLayers:B})=>{const a=r(null),M=r(null),s=r(null),[t,p]=f(k),[u,m]=f("down");P(a,()=>p(!1));const i=I(()=>({find:o[0],zoomIn:o[1],zoomOut:o[2],mode:o[3],width:o[4],layers:o[5]}),[o]);_(()=>{s.current&&(L.mapControlsDOMRect=s.current.getBoundingClientRect())}),H(()=>{if(t&&a.current){const n=a.current.getBoundingClientRect();window.innerHeight-n.bottom<250?m("up"):m("down")}},[t]);const S=n=>B(n);return c("div",{ref:s,className:l("efp-map-controls",h),style:b,role:"toolbar","aria-label":y,children:[C&&e("button",{type:"button",className:"efp-map-control",title:i.find,onClick:R,children:e("i",{className:"icon-navigation","aria-hidden":"true"})}),d&&c("div",{className:"efp-layers-button",ref:a,children:[e("button",{type:"button",className:l("efp-map-control",{isActive:t}),title:i.layers,"aria-haspopup":"true","aria-expanded":t,onClick:()=>p(!t),children:e("i",{className:"icon-layers","aria-hidden":"true"})}),t&&e("div",{ref:M,className:l("efp-checked-panel",{"is-opens-up":u==="up","is-opens-down":u==="down"}),style:{minWidth:v},children:e("ul",{children:d.map(n=>c("li",{children:[e("input",{type:"checkbox",value:n.id,id:`layer-${n.id}`,checked:g.includes(n.id),onChange:()=>S(n.id)}),e("label",{htmlFor:`layer-${n.id}`,children:e("div",{className:"efp-checked-panel__item-name",children:n.name})})]},n.id))})})]}),w&&e("button",{type:"button",className:"efp-map-control",title:i.mode,onClick:x,children:e("i",{className:N?"icon-two-dim":"icon-three-dim","aria-hidden":"true"})}),c("div",{className:"efp-map-control-group",children:[e("button",{type:"button",className:"efp-map-control",title:i.zoomIn,onClick:O,children:e("i",{className:"icon-plus","aria-hidden":"true"})}),e("div",{className:"efp-map-control-divider"}),e("button",{type:"button",className:"efp-map-control",title:i.zoomOut,onClick:z,children:e("i",{className:"icon-minus","aria-hidden":"true"})})]}),e("button",{type:"button",className:"efp-map-control",title:i.width,onClick:j,children:e("i",{className:"icon-maximize","aria-hidden":"true"})})]})};export default q;
@@ -1,9 +0,0 @@
1
- import './MarketMaterialList.scss';
2
- import React from 'react';
3
- import { MarketMaterial } from '../data/Data';
4
- export type MarketMaterialListProps = {
5
- list: MarketMaterial[];
6
- };
7
- declare const _default: React.FunctionComponent<MarketMaterialListProps>;
8
- export default _default;
9
- //# sourceMappingURL=MarketMaterialList.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as a,jsxs as i}from"react/jsx-runtime";import"./MarketMaterialList.scss";import{observer as s}from"mobx-react-lite";import{t}from"../utils/i18n";const l=({fileName:e,path:r})=>i("a",{className:"market-materials__item",href:r,download:!0,target:"_blank",rel:"noopener noreferrer","aria-label":t("Download {{fileName}}",{fileName:e}),children:[a("div",{className:"market-materials__item-icon",children:a("i",{className:"icon-file-solid"})}),a("div",{className:"market-materials__item-name",children:a("span",{children:e})}),a("div",{className:"market-materials__item-download",children:a("i",{className:"icon-download"})})]}),m=({list:e})=>i("div",{className:"market-materials",children:[a("div",{className:"market-materials__title font-medium",children:t("Read More")}),a("div",{className:"market-materials__list",role:"list",children:e.map(r=>a(l,{...r},r.path))})]});export default s(m);
@@ -1,20 +0,0 @@
1
- import './SidebarActions.scss';
2
- import React from 'react';
3
- export interface SidebarActionsProps {
4
- className?: string;
5
- inBookmark?: boolean;
6
- visited?: boolean;
7
- showVisited?: boolean;
8
- showBookmark?: boolean;
9
- showDirections?: boolean;
10
- showRoutePlanner?: boolean;
11
- showShare?: boolean;
12
- onClickBookmark?: () => void;
13
- onClickVisited?: () => void;
14
- onClickDirections?: () => void;
15
- onClickRoutePlanner?: () => void;
16
- onClickShare?: () => void;
17
- }
18
- declare const SidebarActions: React.FC<SidebarActionsProps>;
19
- export default SidebarActions;
20
- //# sourceMappingURL=SidebarActions.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as t,jsxs as i}from"react/jsx-runtime";import"./SidebarActions.scss";import s from"classnames";import{observer as v}from"mobx-react-lite";import{useState as C}from"react";import S from"../ui/CheckboxButton";import{t as e}from"../utils/i18n";const x=v(({className:n,inBookmark:a=!1,visited:o=!1,showVisited:l=!1,showBookmark:c=!0,showDirections:m=!0,showRoutePlanner:u=!1,showShare:d=!0,onClickBookmark:p,onClickVisited:b,onClickDirections:f,onClickRoutePlanner:h,onClickShare:k})=>{const[N,r]=C(!1),B=()=>{r(!0),p(),setTimeout(()=>{r(!1)},320)};return i("div",{className:s("efp-sidebarActions",n),role:"toolbar","aria-label":e("Sidebar Actions"),children:[m&&i("button",{type:"button",className:"efp-actionButton efp-actionButton--directions",onClick:f,title:e("Directions"),"aria-label":e("Directions"),children:[t("i",{className:"icon-directions","aria-hidden":"true"}),e("Directions")]}),l&&t(S,{className:"efp-visited-btn","aria-label":o?e("Visited"):e("Not visited"),"aria-pressed":o,checked:o,label:e("Visited"),onClick:b??(()=>{})}),c&&t("button",{type:"button",className:s("efp-actionButton","efp-actionButton--bookmark",{isActive:a,animate:N}),title:a?e("Remove from Bookmarks"):e("Save to Bookmarks"),"aria-label":a?e("Remove from Bookmarks"):e("Save to Bookmarks"),"aria-pressed":a,onClick:B,children:t("i",{className:a?"icon-bookmark-solid":"icon-bookmark","aria-hidden":"true"})}),u&&i("button",{type:"button",className:"efp-actionButton efp-actionButton--route-planner",title:e("Route planner"),"aria-label":e("Route planner"),onClick:h,children:[t("i",{className:"icon-route-solid","aria-hidden":"true"}),e("Route planner")]}),d&&t("button",{type:"button",className:"efp-actionButton efp-actionButton--share",title:e("Share"),"aria-label":e("Share"),onClick:k,children:t("i",{className:"icon-share","aria-hidden":"true"})})]})});export default x;
@@ -1,17 +0,0 @@
1
- import './SimpleRow.scss';
2
- import React from 'react';
3
- declare const SimpleRow: React.FC<{
4
- line1: string;
5
- line2: string;
6
- lineEnd?: string;
7
- slug: string;
8
- active?: boolean;
9
- className: string;
10
- style?: React.CSSProperties;
11
- onClick: () => void;
12
- onMouseOver?: () => void;
13
- onMouseOut?: () => void;
14
- highlight?: boolean;
15
- }>;
16
- export default SimpleRow;
17
- //# sourceMappingURL=SimpleRow.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as e,jsxs as a}from"react/jsx-runtime";import"./SimpleRow.scss";import x from"../data";import v from"./HighlightTextContainer";const w=({line1:i,line2:l,lineEnd:o,slug:t,style:n,className:m,active:c=!1,onClick:p,onMouseOver:s,onMouseOut:r,highlight:d=!0})=>{return a("a",{href:"?"+encodeURIComponent(t),onClick:f,className:"efp-simple-row"+(c?" active":"")+" "+m,onMouseOver:u,onMouseOut:h,style:{marginLeft:x.isRebooking?"5px":null,...n},children:[a("div",{className:"efp-simple-row__col",children:[e("div",{className:"efp-simple-row__main",dir:"auto",children:d?e(v,{text:i}):i}),e("div",{className:"efp-simple-row__sub",dir:"auto",children:l})]}),o&&e("div",{className:"efp-simple-row__end",children:o})]});function f(_){_.preventDefault(),p()}function u(){s&&s()}function h(){r&&r()}};export default w;
@@ -1,3 +0,0 @@
1
- declare function useOnClickOutside(refs: any, handler: any): void;
2
- export default useOnClickOutside;
3
- //# sourceMappingURL=useOnClickOutside.d.ts.map
@@ -1 +0,0 @@
1
- import{useEffect as i}from"react";function o(t,c){i(()=>{const e=r=>{(Array.isArray(t)?t:[t]).some(n=>!n||!n.current?!1:n.current.contains(r.target)||r.composed&&n.current.contains(r.composedPath()[0]))||c(r)};return document.addEventListener("click",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("click",e),document.removeEventListener("touchstart",e)}},[t,c])}export default o;