@expofp/floorplan 3.11.0 → 3.11.2
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.
- package/dist/browser/{Button-DmPeJZCN.js → Button-OudL0iVD.js} +5 -5
- package/dist/browser/{CookieConsent-6-9q2wKV.js → CookieConsent-mfaE3KU4.js} +7 -7
- package/dist/browser/{Debug-3bI5vwTv.js → Debug-BphzM2m8.js} +7 -7
- package/dist/browser/{Demo-qTtvWifi.js → Demo-DhTNjE3p.js} +9 -9
- package/dist/browser/{Free-CD_OvzMT.js → Free-0bLFGmuA.js} +9 -9
- package/dist/browser/{Gallery-D16-00mk.js → Gallery-DSMIEhFW.js} +9 -9
- package/dist/browser/{GpsLoader-CMPI_EJr.js → GpsLoader-DM74H4uS.js} +9 -9
- package/dist/browser/{KioskStore-KhqffTn9.js → KioskStore-r9opJq2T.js} +3 -3
- package/dist/browser/{MaplibreAdapter-CxVjU49j.js → MaplibreAdapter-CZ3f7tKN.js} +12 -12
- package/dist/browser/{ModalContainer-RI1x2sgo.js → ModalContainer-eCPTipYp.js} +10 -10
- package/dist/browser/{PermissionNotice-D8kO5oWK.js → PermissionNotice-BUOjmJLL.js} +6 -6
- package/dist/browser/{SetKioskMode-CVACOg2n.js → SetKioskMode-Bp6x6w3W.js} +8 -8
- package/dist/browser/{ShowKiosk-9Cegzzmp.js → ShowKiosk-CBbiZ9Rv.js} +10 -10
- package/dist/browser/{TouchHand-Ep4vi1-O.js → TouchHand-Bhfv1efX.js} +4 -4
- package/dist/browser/{ViewerMenuPanel-DjMPzBGY.js → ViewerMenuPanel-BiABYxqI.js} +9 -9
- package/dist/browser/{add-debug-secret-listener-sVpxJOA4.js → add-debug-secret-listener-D2hFfoYG.js} +1 -1
- package/dist/browser/{boolean-editor-DbKheXB7.js → boolean-editor-rW6I_txW.js} +9 -9
- package/dist/browser/{bootIntercom-BwUrDpiz.js → bootIntercom-DDtIuNc4.js} +2 -2
- package/dist/browser/{booth-by-xy-DRUiuOmc.js → booth-by-xy-DUPLj673.js} +180 -182
- package/dist/browser/{browser-DfAAgCEL.js → browser-B5FVAIRt.js} +2 -2
- package/dist/browser/bundle.json +61 -61
- package/dist/browser/{classnames-DDqQQkCN.js → classnames-Bh9CFKhO.js} +2 -2
- package/dist/browser/{client-CZSclqZM.js → client-DZWJuxlH.js} +4 -4
- package/dist/browser/{components-Bjyqu35r.js → components-BONw3m2E.js} +864 -846
- package/dist/browser/{debug-overlay-CGt1pj-M.js → debug-overlay-C3mFAJnJ.js} +10 -10
- package/dist/browser/{debug-ui-D-D_vlp1.js → debug-ui-B3oRtzZW.js} +6 -6
- package/dist/browser/{dist-CL_uyaoa.js → dist-BZoVqNq9.js} +3 -3
- package/dist/browser/{dist-ONDtUhT2.js → dist-DrnaGWY-.js} +5 -5
- package/dist/browser/{dist-V33BDzLb.js → dist-tr1oeluS.js} +6 -6
- package/dist/browser/{efp-debug-init-DxEQuRHk.js → efp-debug-init-IXV8QEKv.js} +2 -2
- package/dist/browser/{enum-editor-DG92oZeF.js → enum-editor-GjmANwcI.js} +11 -11
- package/dist/browser/{es5-BSWs3YWr.js → es5-BIE6AAwW.js} +2 -2
- package/dist/browser/{event-not-found-Z4wb-LNc.js → event-not-found-C0Gdf4pD.js} +1 -1
- package/dist/browser/{exports-BLV4-zfL.js → exports-D9RgzhNR.js} +91 -91
- package/dist/browser/{favicon-BQW1E3bU.js → favicon-CmG6hKGq.js} +1 -1
- package/dist/browser/{fetch-retry.umd-DC6Ql4P0.js → fetch-retry.umd-H-y_Mk7m.js} +2 -2
- package/dist/browser/{flex-B_4SOC_u.js → flex-HfquWr7v.js} +5 -5
- package/dist/browser/{floorplan.loader-DoJ2VQu0.js → floorplan.loader-Xq1Vygzw.js} +77 -77
- package/dist/browser/{floorplan.ready-B_BwJrtz.js → floorplan.ready-CksOANto.js} +16 -16
- package/dist/browser/{fuse-z0Cnj-cM.js → fuse-LI19KLxe.js} +2 -2
- package/dist/browser/{i18n-xEZCBKNV.js → i18n-BNPfWTtS.js} +4 -4
- package/dist/browser/index.js +12 -12
- package/dist/browser/{index.module-DLdW0sj8.js → index.module-C9VcQ5Rm.js} +4 -4
- package/dist/browser/{is-webview-DyfiukCX.js → is-webview-B63y-prT.js} +1 -1
- package/dist/browser/{jsx-runtime-DAN07kgB.js → jsx-runtime-Do7GFE22.js} +2 -2
- package/dist/browser/{lib-BeWX12Ej.js → lib-BBtc7KTM.js} +4 -4
- package/dist/browser/{loadImage-CArumIxk.js → loadImage-zsqKXiME.js} +4 -4
- package/dist/browser/{logDeviceInfo-DWxMGiZR.js → logDeviceInfo-DreBMd6G.js} +9 -9
- package/dist/browser/{main-Bc1iznBR.js → main-9qDaoCuq.js} +1 -1
- package/dist/browser/{mobx-Dzavco9D.js → mobx-Dky0-B8t.js} +4 -4
- package/dist/browser/{particles.min-CHtISs00.js → particles.min-RcGEJpvI.js} +2 -2
- package/dist/browser/{prop-types-BQxsUoxX.js → prop-types-CZXeO-qE.js} +2 -2
- package/dist/browser/{react-dom-DT1n8Muz.js → react-dom-B5BA3-vt.js} +3 -3
- package/dist/browser/{react-Cu706Ph1.js → react-trXsCbyC.js} +2 -2
- package/dist/browser/{reset-all-settings-D2RthoP4.js → reset-all-settings-Cm2x1DTG.js} +7 -7
- package/dist/browser/{rolldown-runtime-DHef_8fH.js → rolldown-runtime-DI18N_8U.js} +1 -1
- package/dist/browser/{settings-item-Dv1G9gTh.js → settings-item-BhRw3JAL.js} +6 -6
- package/dist/browser/{settings--Y0n4PSR.js → settings-rsCcq9GR.js} +2 -2
- package/dist/browser/{store-C1iT-e-6.js → store-B2hmFnLQ.js} +1224 -1192
- package/dist/browser/{string-editor-BfNPvbRL.js → string-editor-BA6ywAXr.js} +7 -7
- package/dist/browser/{theme-byX3VrfS.js → theme-DNNJq32j.js} +8 -8
- package/dist/browser/{ui-DJZFvwjb.js → ui-6Uzhpt--.js} +8 -8
- package/dist/browser/{useRenderTarget-OQs5aKcF.js → useRenderTarget-2aH0rh9u.js} +4 -4
- package/dist/esm/components/Bookmarks.js +1 -1
- package/dist/esm/components/Booth/Booth.js +1 -1
- package/dist/esm/components/DownloadListContainer.d.ts +5 -0
- package/dist/esm/components/DownloadListContainer.js +1 -0
- package/dist/esm/components/EntityListRow.js +1 -1
- package/dist/esm/components/ErrorBoundary.d.ts +9 -9
- package/dist/esm/components/ErrorBoundary.js +1 -1
- package/dist/esm/components/Event.js +1 -1
- package/dist/esm/components/Exhibitor.js +1 -1
- package/dist/esm/components/Layout.js +1 -1
- package/dist/esm/components/LevelSelectorContainer.d.ts +3 -0
- package/dist/esm/components/LevelSelectorContainer.js +1 -0
- package/dist/esm/components/Map/booth-by-xy.d.ts +2 -2
- package/dist/esm/components/Map/booth-by-xy.js +1 -1
- package/dist/esm/components/MapControlsContainer.d.ts +3 -0
- package/dist/esm/components/MapControlsContainer.js +1 -0
- package/dist/esm/components/Maplibre/useRendererEvents.js +1 -1
- package/dist/esm/components/SidebarActionsContainer.d.ts +5 -0
- package/dist/esm/components/SidebarActionsContainer.js +1 -0
- package/dist/esm/components/SimpleRowContainer.d.ts +8 -0
- package/dist/esm/components/SimpleRowContainer.js +1 -0
- package/dist/esm/components/Speaker.js +1 -1
- package/dist/esm/components/YahRow.d.ts +2 -2
- package/dist/esm/components/YahRow.js +1 -1
- package/dist/esm/components/index.d.ts +10 -8
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/store/LayerStore.d.ts +2 -0
- package/dist/esm/store/LayerStore.js +1 -1
- package/dist/esm/store/RootStore.d.ts +1 -1
- package/dist/esm/ui/DownloadList/DownloadList.d.ts +15 -0
- package/dist/esm/ui/DownloadList/DownloadList.js +1 -0
- package/dist/esm/ui/DownloadList/index.d.ts +3 -0
- package/dist/esm/ui/DownloadList/index.js +1 -0
- package/dist/esm/ui/LevelSelector/LevelSelector.d.ts +19 -0
- package/dist/esm/ui/LevelSelector/LevelSelector.js +1 -0
- package/dist/esm/ui/LevelSelector/index.d.ts +3 -0
- package/dist/esm/ui/LevelSelector/index.js +1 -0
- package/dist/esm/ui/MapControls/MapControls.d.ts +33 -0
- package/dist/esm/ui/MapControls/MapControls.js +1 -0
- package/dist/esm/ui/MapControls/index.d.ts +3 -0
- package/dist/esm/ui/MapControls/index.js +1 -0
- package/dist/esm/ui/SidebarActions/SidebarActions.d.ts +26 -0
- package/dist/esm/ui/SidebarActions/SidebarActions.js +1 -0
- package/dist/esm/ui/SidebarActions/index.d.ts +3 -0
- package/dist/esm/ui/SidebarActions/index.js +1 -0
- package/dist/esm/ui/SimpleRow/SimpleRow.d.ts +15 -0
- package/dist/esm/ui/SimpleRow/SimpleRow.js +1 -0
- package/dist/esm/ui/SimpleRow/index.d.ts +3 -0
- package/dist/esm/ui/SimpleRow/index.js +1 -0
- package/dist/esm/ui/shared/hooks/useOnClickOutside.d.ts +11 -1
- package/dist/esm/ui/shared/hooks/useOnClickOutside.js +1 -1
- package/dist/esm/ui/shared/hooks/useOnEscape.d.ts +14 -0
- package/dist/esm/ui/shared/hooks/useOnEscape.js +1 -0
- package/package.json +6 -6
- package/dist/esm/components/Controls.d.ts +0 -3
- package/dist/esm/components/Controls.js +0 -1
- package/dist/esm/components/LevelSelector.d.ts +0 -4
- package/dist/esm/components/LevelSelector.js +0 -1
- package/dist/esm/components/MapControls.d.ts +0 -28
- package/dist/esm/components/MapControls.js +0 -1
- package/dist/esm/components/MarketMaterialList.d.ts +0 -9
- package/dist/esm/components/MarketMaterialList.js +0 -1
- package/dist/esm/components/SidebarActions.d.ts +0 -20
- package/dist/esm/components/SidebarActions.js +0 -1
- package/dist/esm/components/SimpleRow.d.ts +0 -17
- package/dist/esm/components/SimpleRow.js +0 -1
- package/dist/esm/utils/useOnClickOutside.d.ts +0 -3
- package/dist/esm/utils/useOnClickOutside.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__esDecorate as
|
|
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;
|
|
@@ -72,7 +72,7 @@ export default class RootStore {
|
|
|
72
72
|
clickSeminars(): void;
|
|
73
73
|
clickBoothInList(booth: Booth): void;
|
|
74
74
|
clickBoothInList2(booth: Booth): void;
|
|
75
|
-
clickBooth(booth: Booth): void;
|
|
75
|
+
clickBooth(booth: Booth | null): void;
|
|
76
76
|
clickExhibitor2(exhibitor: Exhibitor): void;
|
|
77
77
|
clickExhibitor(exhibitor: Exhibitor): void;
|
|
78
78
|
showMap(): void;
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
export{default}from"./SimpleRow";
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import { type RefObject } from 'react';
|
|
2
|
-
|
|
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
|
|
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.
|
|
3
|
+
"version": "3.11.2",
|
|
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.
|
|
40
|
-
"@sentry/react": "^10.
|
|
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/
|
|
76
|
-
"@expofp/
|
|
77
|
-
"@expofp/
|
|
75
|
+
"@expofp/geometry": "3.11.2",
|
|
76
|
+
"@expofp/resolve": "3.11.2",
|
|
77
|
+
"@expofp/debug": "3.11.2"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@babel/plugin-proposal-decorators": "^8.0.2",
|
|
@@ -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 +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 +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;
|