@expofp/floorplan 3.3.8 → 3.4.1

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 (200) hide show
  1. package/dist/browser/{CookieConsent-DhAS93Nm.js → CookieConsent-DfcrHJE4.js} +8 -8
  2. package/dist/browser/{Debug-DciNEVl6.js → Debug-CmqdoArn.js} +7 -7
  3. package/dist/browser/{Demo-Dh3K6IRU.js → Demo-Hoy_N0Z_.js} +11 -11
  4. package/dist/browser/{Free-BHUzZwj9.js → Free-CT6O_Rnj.js} +11 -11
  5. package/dist/browser/{Gallery-C0nPxxJB.js → Gallery-BljmDte7.js} +10 -10
  6. package/dist/browser/{GpsLoader-De8VPIEW.js → GpsLoader-gAQ2jImu.js} +49 -49
  7. package/dist/browser/{KioskStore-D1jnGTbv.js → KioskStore-pVMWw1SV.js} +31 -31
  8. package/dist/browser/MaplibreAdapter-BSNFyqqO.js +35131 -0
  9. package/dist/browser/{Modal-D8kuOldj.js → Modal-vx2GyFQU.js} +10 -10
  10. package/dist/browser/{PermissionNotice-v9vhrWnr.js → PermissionNotice-dzFosoL5.js} +7 -7
  11. package/dist/browser/{SetKioskMode-D2cDGv9V.js → SetKioskMode-DpKxhNjj.js} +21 -21
  12. package/dist/browser/ShowKiosk-DK4cf8sZ.js +26 -0
  13. package/dist/browser/{TouchHand-hrkQyTE4.js → TouchHand-DJqTFALN.js} +4 -4
  14. package/dist/browser/{ViewerMenuPanel-BVfEToAO.js → ViewerMenuPanel-BLMOVmrA.js} +13 -13
  15. package/dist/browser/{add-debug-secret-listener-CdWQ5IqR.js → add-debug-secret-listener-lzYkiNT3.js} +1 -1
  16. package/dist/browser/{boolean-editor-D24_ATfB.js → boolean-editor-BIo7t1o3.js} +10 -10
  17. package/dist/browser/{bootIntercom-DSRi4yws.js → bootIntercom-_8PT4FQ5.js} +2 -2
  18. package/dist/browser/{box-BXDPYk7M.js → box-ClFQfPBk.js} +5 -5
  19. package/dist/browser/{browser-Dk-lVBqy.js → browser-CNl61l-H.js} +2 -2
  20. package/dist/browser/bundle.json +61 -64
  21. package/dist/browser/{classnames-DNY5NR54.js → classnames-CzOdLC35.js} +2 -2
  22. package/dist/browser/{client-CWN096Nx.js → client-uxC45MrM.js} +4 -4
  23. package/dist/browser/components-rG8z7y3m.js +6300 -0
  24. package/dist/browser/createWayfinding-BnWXhjaY.js +1889 -0
  25. package/dist/browser/{debug-overlay-DQG-UfZv.js → debug-overlay-hexy4zxM.js} +15 -16
  26. package/dist/browser/{debug-ui-yYN-_8G_.js → debug-ui-DTEjq_eB.js} +18 -14
  27. package/dist/browser/{dist-uPMox8hh.js → dist-Cv_TFco-.js} +6 -6
  28. package/dist/browser/{dist-7_sOACbd.js → dist-DZk5xw-4.js} +5 -5
  29. package/dist/browser/{dist-CAs4SFEJ.js → dist-EPpxz8po.js} +3 -3
  30. package/dist/browser/{efp-debug-init-Dwp-psKk.js → efp-debug-init-Bs3FZwZP.js} +5 -4
  31. package/dist/browser/{enum-editor-PV_iv0tr.js → enum-editor-C-CMuvRj.js} +11 -11
  32. package/dist/browser/{event-not-found-BjBg31r7.js → event-not-found-BoO2R7hM.js} +1 -1
  33. package/dist/browser/{exports-lMrT2XbM.js → exports-CaawsP5N.js} +1 -1
  34. package/dist/browser/{favicon-qwrv2N2K.js → favicon-Cfw5edT7.js} +1 -1
  35. package/dist/browser/{fetch-retry.umd-D_06P7tx.js → fetch-retry.umd-BNuFWdhd.js} +2 -2
  36. package/dist/browser/{flex-DMyWG2k5.js → flex-C_CBGYoG.js} +6 -6
  37. package/dist/browser/{flex.props-DJYmgUbO.js → flex.props-BrTX-e6I.js} +2 -2
  38. package/dist/browser/{floorplan.loader-CkEu28br.js → floorplan.loader-BC6HaV0P.js} +298 -299
  39. package/dist/browser/{floorplan.ready-CL42thhp.js → floorplan.ready-DyEjsSpU.js} +256 -256
  40. package/dist/browser/{fuse-BrJpK9Lv.js → fuse-5Y1S2aYX.js} +2 -2
  41. package/dist/browser/{i18n-ST-5I_Xd.js → i18n-CDf6bxFZ.js} +5 -5
  42. package/dist/browser/index.js +12 -13
  43. package/dist/browser/{jsx-runtime-z-VgZsNI.js → jsx-runtime-CQQX82Qz.js} +2 -2
  44. package/dist/browser/{lib-resthkmx.js → lib-D8YEKiMm.js} +4 -4
  45. package/dist/browser/locales/ar.json +0 -1
  46. package/dist/browser/locales/de.json +0 -1
  47. package/dist/browser/locales/es.json +0 -1
  48. package/dist/browser/locales/fr.json +0 -1
  49. package/dist/browser/locales/he.json +0 -1
  50. package/dist/browser/locales/it.json +0 -1
  51. package/dist/browser/locales/kk.json +0 -1
  52. package/dist/browser/locales/ko.json +0 -1
  53. package/dist/browser/locales/mn.json +0 -1
  54. package/dist/browser/locales/nl.json +0 -1
  55. package/dist/browser/locales/pl.json +0 -1
  56. package/dist/browser/locales/pt.json +0 -1
  57. package/dist/browser/locales/ru.json +0 -1
  58. package/dist/browser/locales/sv.json +0 -1
  59. package/dist/browser/locales/th.json +0 -1
  60. package/dist/browser/locales/tr.json +0 -1
  61. package/dist/browser/locales/uk.json +0 -1
  62. package/dist/browser/locales/vi.json +0 -1
  63. package/dist/browser/locales/zh.json +0 -1
  64. package/dist/browser/{main-BOaUt8eX.js → main-DLV6-NmW.js} +1 -1
  65. package/dist/browser/{mobx-BGVJo_6r.js → mobx-BJrcB0Vj.js} +5 -5
  66. package/dist/browser/{particles.min-D3-LD_RC.js → particles.min-MhzX8Iok.js} +2 -2
  67. package/dist/browser/{prop-types-xS5Y65WT.js → prop-types-BQqJiJ_U.js} +2 -2
  68. package/dist/browser/{react-CDDaD-I1.js → react-CsfnOko-.js} +2 -2
  69. package/dist/browser/{react-dom-B1aPQ40g.js → react-dom-l6xfbLNt.js} +3 -3
  70. package/dist/browser/{reset-all-settings-DHgz1Ud7.js → reset-all-settings-Dmpe88yX.js} +13 -10
  71. package/dist/browser/{rolldown-runtime-Bb8iYlSJ.js → rolldown-runtime-BrK3KJzc.js} +1 -1
  72. package/dist/browser/{settings-BD9hHBVE.js → settings-BDwO4gl1.js} +2 -2
  73. package/dist/browser/{settings-item-BMJ0aBEh.js → settings-item-CbJ6ldaB.js} +6 -6
  74. package/dist/browser/{storage-B0mOBJql.js → storage-c5Z4yjiL.js} +5 -3
  75. package/dist/browser/{store-Dyrv6nnP.js → store-D_Y9lFsn.js} +5190 -5623
  76. package/dist/browser/{string-editor-DoAiUhFX.js → string-editor-BOID14bU.js} +8 -8
  77. package/dist/browser/{theme-7rduvM4D.js → theme-Ca3r5e2H.js} +8 -8
  78. package/dist/browser/{ui-CgRQk7e0.js → ui-BTe-W0zP.js} +9 -9
  79. package/dist/browser/{useRenderTarget-rq9Hu7Z3.js → useRenderTarget-CbXuqspA.js} +4 -4
  80. package/dist/esm/_misc_to_move/manifest.d.ts +1 -0
  81. package/dist/esm/components/AlertContainer.d.ts +3 -1
  82. package/dist/esm/components/AlertContainer.js +1 -1
  83. package/dist/esm/components/Booth/Booth.js +1 -1
  84. package/dist/esm/components/Controls.js +1 -1
  85. package/dist/esm/components/EntityItemContainer.d.ts +25 -2
  86. package/dist/esm/components/EntityItemContainer.js +1 -1
  87. package/dist/esm/components/EntityList.js +1 -1
  88. package/dist/esm/components/EntityListRow.d.ts +3 -2
  89. package/dist/esm/components/EntityListRow.js +1 -1
  90. package/dist/esm/components/Exhibitor.js +1 -1
  91. package/dist/esm/components/Kiosk/KioskStore.d.ts +1 -1
  92. package/dist/esm/components/Kiosk/SetKiosk/types.d.ts +1 -1
  93. package/dist/esm/components/Layout.js +1 -1
  94. package/dist/esm/components/LevelSelector.js +1 -1
  95. package/dist/esm/components/LogoOverlay.js +1 -1
  96. package/dist/esm/components/Map/Map.js +1 -1
  97. package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
  98. package/dist/esm/components/Map/drawing/config/config-booth-border.js +1 -1
  99. package/dist/esm/components/Map/drawing/config/config-booths.js +1 -1
  100. package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
  101. package/dist/esm/components/Map/traffic/useManageTraffic.js +1 -1
  102. package/dist/esm/components/Maplibre/MaplibreAdapter.d.ts +14 -0
  103. package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -0
  104. package/dist/esm/components/Maplibre/MaplibreWrapper.d.ts +69 -0
  105. package/dist/esm/components/Maplibre/MaplibreWrapper.js +1 -0
  106. package/dist/esm/components/Maplibre/useCameraReactions.d.ts +10 -0
  107. package/dist/esm/components/Maplibre/useCameraReactions.js +1 -0
  108. package/dist/esm/components/Maplibre/useDimming.d.ts +16 -0
  109. package/dist/esm/components/Maplibre/useDimming.js +1 -0
  110. package/dist/esm/components/Maplibre/useLayerVisibilitySync.d.ts +11 -0
  111. package/dist/esm/components/Maplibre/useLayerVisibilitySync.js +1 -0
  112. package/dist/esm/components/Maplibre/useRendererEvents.d.ts +9 -0
  113. package/dist/esm/components/Maplibre/useRendererEvents.js +1 -0
  114. package/dist/esm/components/Maplibre/useWayfindingAndMarkers.d.ts +8 -0
  115. package/dist/esm/components/Maplibre/useWayfindingAndMarkers.js +1 -0
  116. package/dist/esm/components/Maplibre/utils/geo-config.d.ts +30 -0
  117. package/dist/esm/components/Maplibre/utils/geo-config.js +1 -0
  118. package/dist/esm/components/Maplibre/utils/layer-defs.d.ts +4 -0
  119. package/dist/esm/components/Maplibre/utils/layer-defs.js +1 -0
  120. package/dist/esm/components/Maplibre/utils/map-helpers.d.ts +9 -0
  121. package/dist/esm/components/Maplibre/utils/map-helpers.js +1 -0
  122. package/dist/esm/components/Maplibre/utils/solver.d.ts +24 -0
  123. package/dist/esm/components/Maplibre/utils/solver.js +1 -0
  124. package/dist/esm/components/Speakers.js +1 -1
  125. package/dist/esm/components/index.d.ts +2 -1
  126. package/dist/esm/data/Flags.d.ts +1 -0
  127. package/dist/esm/data/fpGeo.d.ts +20 -1
  128. package/dist/esm/floorplan.loader.d.ts +1 -0
  129. package/dist/esm/floorplan.loader.js +1 -1
  130. package/dist/esm/floorplan.ready.js +1 -1
  131. package/dist/esm/renderer/RendererService.d.ts +5 -0
  132. package/dist/esm/renderer/RendererService.js +1 -1
  133. package/dist/esm/services/routing.js +1 -1
  134. package/dist/esm/store/MaplibreStore.d.ts +22 -0
  135. package/dist/esm/store/MaplibreStore.js +1 -0
  136. package/dist/esm/store/RootStore.d.ts +2 -2
  137. package/dist/esm/store/RootStore.js +1 -1
  138. package/dist/esm/store/RouteStore.js +1 -1
  139. package/dist/esm/store/init/init-booths.js +1 -1
  140. package/dist/esm/types.d.ts +9 -0
  141. package/dist/esm/ui/Alert/Alert.d.ts +1 -1
  142. package/dist/esm/ui/Alert/Alert.js +1 -1
  143. package/dist/esm/ui/EntityItem/EntityItem.d.ts +46 -0
  144. package/dist/esm/ui/EntityItem/EntityItem.js +1 -0
  145. package/dist/esm/ui/EntityItem/index.d.ts +3 -0
  146. package/dist/esm/ui/EntityItem/index.js +1 -0
  147. package/dist/esm/utils/dimming.d.ts +16 -0
  148. package/dist/esm/utils/dimming.js +1 -0
  149. package/dist/esm/utils/isNumericLevel.d.ts +2 -0
  150. package/dist/esm/utils/isNumericLevel.js +1 -0
  151. package/dist/esm/wayfinding/core/position/gpsThreshold.d.ts +1 -1
  152. package/package.json +5 -9
  153. package/dist/browser/Mapbox-CzVyYzjj.js +0 -120
  154. package/dist/browser/ShowKiosk-DjrDUQUM.js +0 -26
  155. package/dist/browser/ThreeComponent-CUKVDY94.js +0 -1494
  156. package/dist/browser/components-D9o158HA.js +0 -8128
  157. package/dist/browser/data-ZH4_sxkL.js +0 -27967
  158. package/dist/browser/vendor/mapbox/mapbox-gl.css +0 -1
  159. package/dist/esm/components/EntityItem.d.ts +0 -44
  160. package/dist/esm/components/EntityItem.js +0 -1
  161. package/dist/esm/components/Mapbox/Button.d.ts +0 -10
  162. package/dist/esm/components/Mapbox/Button.js +0 -1
  163. package/dist/esm/components/Mapbox/Dot.d.ts +0 -10
  164. package/dist/esm/components/Mapbox/Dot.js +0 -1
  165. package/dist/esm/components/Mapbox/MapLoader.d.ts +0 -4
  166. package/dist/esm/components/Mapbox/MapLoader.js +0 -1
  167. package/dist/esm/components/Mapbox/Mapbox.d.ts +0 -4
  168. package/dist/esm/components/Mapbox/Mapbox.js +0 -1
  169. package/dist/esm/components/Mapbox/utils/data.d.ts +0 -38
  170. package/dist/esm/components/Mapbox/utils/data.js +0 -1
  171. package/dist/esm/components/Threejs/ThreeComponent.d.ts +0 -7
  172. package/dist/esm/components/Threejs/ThreeComponent.js +0 -1
  173. package/dist/esm/components/Threejs/UIManager.d.ts +0 -28
  174. package/dist/esm/components/Threejs/UIManager.js +0 -1
  175. package/dist/esm/components/Threejs/common/BoothMesh.d.ts +0 -20
  176. package/dist/esm/components/Threejs/common/BoothMesh.js +0 -1
  177. package/dist/esm/components/Threejs/common/Scene.d.ts +0 -13
  178. package/dist/esm/components/Threejs/common/Scene.js +0 -1
  179. package/dist/esm/components/Threejs/common/SpriteMesh.d.ts +0 -5
  180. package/dist/esm/components/Threejs/common/SpriteMesh.js +0 -1
  181. package/dist/esm/components/Threejs/common/dataLoader.d.ts +0 -31
  182. package/dist/esm/components/Threejs/common/dataLoader.js +0 -1
  183. package/dist/esm/components/Threejs/common/modelLoader.d.ts +0 -3
  184. package/dist/esm/components/Threejs/common/modelLoader.js +0 -1
  185. package/dist/esm/components/Threejs/common/sceneLoader.d.ts +0 -7
  186. package/dist/esm/components/Threejs/common/sceneLoader.js +0 -1
  187. package/dist/esm/components/Threejs/index.d.ts +0 -4
  188. package/dist/esm/components/Threejs/index.js +0 -1
  189. package/dist/esm/components/Threejs/mapbox/configureWebGLForMapbox.d.ts +0 -2
  190. package/dist/esm/components/Threejs/mapbox/configureWebGLForMapbox.js +0 -1
  191. package/dist/esm/components/Threejs/mapbox/index_mapbox.d.ts +0 -4
  192. package/dist/esm/components/Threejs/mapbox/index_mapbox.js +0 -1
  193. package/dist/esm/components/Threejs/mapbox/init-mapbox.d.ts +0 -3
  194. package/dist/esm/components/Threejs/mapbox/init-mapbox.js +0 -1
  195. package/dist/esm/components/Threejs/utils/canvasFromText.d.ts +0 -2
  196. package/dist/esm/components/Threejs/utils/canvasFromText.js +0 -1
  197. package/dist/esm/components/Threejs/utils/textureMerger.d.ts +0 -60
  198. package/dist/esm/components/Threejs/utils/textureMerger.js +0 -1
  199. package/dist/esm/store/MapboxStore.d.ts +0 -13
  200. package/dist/esm/store/MapboxStore.js +0 -1
@@ -1 +0,0 @@
1
- .mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mapboxgl-canvas{position:absolute;left:0;top:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{right:0;bottom:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:10px 0 0 10px;float:left}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:10px 10px 0 0;float:right}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{margin:0 0 10px 10px;float:left}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0 10px 10px 0;float:right}.mapboxgl-ctrl-group{border-radius:4px;background:#fff}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer;overflow:hidden}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:focus:only-child{border-radius:inherit}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{width:88px;height:23px;margin:0 0 -4px -4px;display:block;background-repeat:no-repeat;cursor:pointer;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='0.9' fill='%23fff'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='1' fill='%23fff'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='1' fill='%23000'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{padding:0 5px;background-color:hsla(0,0%,100%,.5);margin:0}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{min-height:20px;padding:2px 24px 2px 0;margin:10px;position:relative;background-color:#fff;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 8px 2px 28px;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{display:none;cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E");background-color:hsla(0,0%,100%,.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px;outline:none;top:0;right:0;border:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner,.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);font-size:10px;border:2px solid #333;border-top:#333;padding:0 5px;color:#333;box-sizing:border-box}.mapboxgl-popup{position:absolute;top:0;left:0;display:flex;will-change:transform;pointer-events:none}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-top:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-right:none;border-left-color:#fff}.mapboxgl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{position:absolute;top:0;left:0;will-change:transform;opacity:1;transition:opacity .2s}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.mapboxgl-user-location-dot:before{content:"";position:absolute;animation:mapboxgl-user-location-dot-pulse 2s infinite}.mapboxgl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box;box-shadow:0 0 3px rgba(0,0,0,.35)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{width:0;height:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{content:"";border-bottom:7.5px solid #4aa1eb;position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{transform:scale(1);opacity:1}70%{transform:scale(3);opacity:0}to{transform:scale(1);opacity:0}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);width:1px;height:1px;border-radius:100%}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:.5}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;justify-content:center;text-align:center;position:absolute;display:flex;align-items:center;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);opacity:0;pointer-events:none;transition:opacity .75s ease-in-out;transition-delay:1s}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}
@@ -1,44 +0,0 @@
1
- import React from "react";
2
- import "./EntityItem.scss";
3
- export type EntityItemAdditionalInfo = {
4
- type: "location";
5
- locationName: string;
6
- hall?: string;
7
- level?: string;
8
- } | {
9
- type: "event";
10
- text: string;
11
- } | {
12
- type: "speaker";
13
- text: string;
14
- };
15
- export type EntityItemType = "booth" | "exhibitor" | "event" | "speaker" | "category" | "cafe" | "restaurant" | "lounge" | "stage" | "other";
16
- export interface EntityItemProps {
17
- id: string;
18
- type: EntityItemType;
19
- url: string;
20
- icon?: string;
21
- title: string;
22
- subtitle?: string;
23
- date?: string;
24
- time?: string;
25
- itemsCount?: number;
26
- image?: string;
27
- additionalInfo?: EntityItemAdditionalInfo[];
28
- bookmarked?: boolean;
29
- featured?: boolean;
30
- locationTerm?: string;
31
- visited?: boolean;
32
- onClick?: (type: EntityItemType, id: string) => void;
33
- highlighted?: boolean;
34
- heatmapColor?: string;
35
- heatmapClicks?: number;
36
- rebookingColor?: string;
37
- kioskMode?: boolean;
38
- compactDetails?: boolean;
39
- foundInDescription?: string;
40
- highlight?: string;
41
- }
42
- declare const EntityItem: React.FC<EntityItemProps>;
43
- export default EntityItem;
44
- //# sourceMappingURL=EntityItem.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as e,Fragment as T,jsxs as a}from"react/jsx-runtime";import r from"classnames";import v from"../ui/HighlightText";import"./EntityItem.scss";import{t as c}from"../utils/i18n";const H=["booth","exhibitor","event","speaker","category"],L=l=>/^\d+$/.test(l),S=({id:l,type:i,url:A,title:s,icon:f,subtitle:n,date:d,time:m,itemsCount:y,image:h,additionalInfo:N=[],bookmarked:j=!1,featured:g=!1,locationTerm:I="Booth",visited:x,onClick:o,highlighted:u=!1,heatmapColor:_,heatmapClicks:O,rebookingColor:k,kioskMode:E=!1,compactDetails:$,foundInDescription:b,highlight:p})=>{const w=H.includes(i)?i:"other";return e("div",{role:"button",className:r("efp-entity-item",{"is-featured":g,"is-visited":x,"is-highlighted":u,"has-heatmap":!!_,"is-speaker":i==="speaker"}),"aria-label":s,tabIndex:0,"aria-pressed":u||void 0,onClick:()=>o&&o(i,l),onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),o?.(i,l))},style:{"--item-type-color":`var(--color-${w})`,..._&&{"--heatmap-color":_},...k?{borderLeft:`5px solid ${k}`}:{}},children:a("div",{className:"efp-entity-item__body",children:[a("div",{className:"efp-entity-item__left",children:[e("div",{className:"efp-entity-item__icon",children:f?e("img",{src:f,alt:s}):e("i",{className:`icon-${i}-solid`,"aria-hidden":"true"})}),!E&&a(T,{children:[x&&e("div",{className:"efp-entity-item__visited",children:e("i",{className:"icon-checkmark"})}),j&&e("i",{className:r("efp-entity-item__bookmarked","icon-bookmark-solid")})]})]}),a("div",{className:"efp-entity-item__right",children:[a("div",{className:r("efp-entity-item__content",{"with-image":h}),children:[a("div",{className:"efp-entity-item__header",children:[a("div",{className:"efp-entity-item__title",children:[e(v,{text:s,highlight:p}),b&&e("div",{className:"efp-entity-item__description",children:e(v,{text:b,highlight:p})}),i==="category"&&e("span",{children:y!==void 0&&y})]}),g&&e("div",{className:"efp-entity-item__featured",children:c("Featured")})]}),(i==="event"||i==="category"||n)&&a("div",{className:"efp-entity-item__subtitle",children:[i==="event"&&(d||m)&&a("div",{className:"efp-entity-item__datetime",children:[d&&e("strong",{children:d}),m&&e("span",{children:m})]}),i==="category"&&e("span",{children:c("Category")}),n&&e("div",{children:n})]}),!!N.length&&i!=="booth"&&e("ul",{className:r("efp-entity-item__details",{"compact-details":$}),children:N.map((t,F)=>a("li",{className:"efp-entity-item__details-item",children:[t.type==="location"&&a(T,{children:[i!=="category"&&i!=="booth"&&e("div",{className:"efp-entity-item__details-item-booth",children:e(v,{text:t.locationName,highlight:p})}),t.hall&&a("div",{children:[c("Hall"),"\xA0",e("span",{children:t.hall})]}),t.level&&a("div",{children:[L(t.level)&&a("span",{children:[c("Level"),"\xA0"]}),e("span",{children:t.level})]})]}),(t.type==="event"||t.type==="speaker")&&e("span",{children:t.text})]},F))})]}),h&&e("div",{className:"efp-entity-item__image",children:e("img",{src:h,alt:s})})]})]})})};export default S;
@@ -1,10 +0,0 @@
1
- export default class MapboxGLButtonControl {
2
- _click: () => void;
3
- _map: any;
4
- _container: any;
5
- _className: string;
6
- constructor(onClick: () => void, className: string);
7
- onAdd(map: any): any;
8
- onRemove(): void;
9
- }
10
- //# sourceMappingURL=Button.d.ts.map
@@ -1 +0,0 @@
1
- export default class n{_click;_map;_container;_className;constructor(e,t){this._click=e,this._className=t}onAdd(e){this._map=e;var t=document.createElement("div"),a=document.createElement("button");return t.appendChild(a),t.className="mapboxgl-ctrl controls -ready",a.className=this._className,t.onclick=this._click,this._container=t,this._container}onRemove(){this._container.parentNode.removeChild(this._container),this._map=void 0}}
@@ -1,10 +0,0 @@
1
- import type { Map } from "mapbox-gl";
2
- export declare function pulsingDot(size: number, map: Map): {
3
- context: null;
4
- width: number;
5
- height: number;
6
- data: Uint8Array<ArrayBuffer>;
7
- onAdd: () => void;
8
- render: () => boolean;
9
- };
10
- //# sourceMappingURL=Dot.d.ts.map
@@ -1 +0,0 @@
1
- export function pulsingDot(z,u){let o=1,T=o*200,v=o*290,i=0;var b={context:null,width:T,height:v,data:new Uint8Array(T*v*4),onAdd:function(){const e=document.createElement("canvas");e.width=this.width,e.height=this.height,this.context=e.getContext("2d")},render:function(){const e=this.context;let l=i>60?0:1;i++,i>90&&(i=0);let r=`rgba(255, 255, 255, ${l})`;return e.clearRect(0,0,this.width,this.height),e.fillStyle="#FFFFFF",e.beginPath(),e.moveTo(176.41,285.052),e.bezierCurveTo(176.708,275.288,180.719,264.084,185.384,251.123),e.bezierCurveTo(190.685,236.267,196.684,219.455,198.438,200.587),e.bezierCurveTo(199.744,186.269,200.441,172.858,194.193,165.561),e.bezierCurveTo(191.678,162.58,188.182,160.876,184.046,160.626),e.bezierCurveTo(180.827,160.421,177.255,160.992,174.01,163.291),e.bezierCurveTo(173.262,160.923,172.156,158.689,170.604,156.761),e.bezierCurveTo(167.753,153.243,163.636,151.23,158.687,150.926),e.bezierCurveTo(153.875,150.6,149.796,151.48,146.46,153.477),e.bezierCurveTo(145.697,151.38,144.643,149.399,143.182,147.648),e.bezierCurveTo(140.143,144.003,135.954,142.001,130.646,141.694),e.bezierCurveTo(126.107,141.402,122.143,142.418,118.885,144.677),e.bezierCurveTo(118.832,128.941,119.044,110.089,119.574,102.412),e.bezierCurveTo(120.566,88.58,110.534,80.412,100.598,79.828),e.bezierCurveTo(90.805,79.229,80.394,85.746,79.403,99.427),e.bezierCurveTo(78.449,112.552,79.01,127.804,79.532,142.565),e.bezierCurveTo(80.121,159.604,80.79,178.449,78.52,188.452),e.bezierCurveTo(77.588,185.199,76.447,180.173,75.109,172.443),e.bezierCurveTo(72.96,159.981,63.096,154.173,54.88,155.071),e.bezierCurveTo(47.626,155.884,39.269,162.24,39.621,177.546),e.bezierCurveTo(40.058,196.299,61.294,246.8,68.235,256.876),e.bezierCurveTo(73.247,264.187,77.881,278.114,77.447,284.534),e.bezierCurveTo(77.326,285.934,77.835,287.338,78.783,288.371),e.bezierCurveTo(79.108,288.77,79.532,289.066,79.975,289.325),e.bezierCurveTo(80.748,289.773,81.582,289.99,82.495,289.975),e.lineTo(171.221,290.101),e.bezierCurveTo(174.04,290.096,176.338,287.833,176.41,285.052),e.lineTo(176.41,285.052),e.closePath(),e.moveTo(87.476,279.691),e.bezierCurveTo(86.322,270.274,81.422,257.873,76.706,250.949),e.bezierCurveTo(70.525,241.994,50.279,193.64,49.892,177.199),e.bezierCurveTo(49.714,170.292,51.998,165.744,55.888,165.314),e.bezierCurveTo(57.225,165.177,58.635,165.489,59.964,166.267),e.bezierCurveTo(62.329,167.628,64.366,170.365,65.047,174.29),e.bezierCurveTo(69.002,197.194,72.186,202.206,76.599,203.479),e.bezierCurveTo(79.098,204.163,81.695,203.312,83.596,201.203),e.bezierCurveTo(91.167,192.733,90.83,173.177,89.772,142.038),e.bezierCurveTo(89.249,127.534,88.731,112.549,89.607,99.992),e.bezierCurveTo(90.174,92.22,95.475,89.779,99.844,90.057),e.bezierCurveTo(104.964,90.378,109.883,94.097,109.326,101.748),e.bezierCurveTo(108.666,111.184,108.618,134.384,108.618,141.248),e.bezierCurveTo(108.606,171.546,108.815,171.847,110.379,173.547),e.bezierCurveTo(111.254,174.593,112.495,175.204,113.839,175.304),e.bezierCurveTo(115.226,175.361,116.613,174.886,117.659,173.941),e.bezierCurveTo(119.354,172.393,119.442,170.602,119.555,168.506),e.bezierCurveTo(119.665,165.367,120.062,157.08,123.903,153.589),e.bezierCurveTo(125.321,152.28,127.288,151.736,129.879,151.858),e.bezierCurveTo(133.103,152.07,134.524,153.318,135.293,154.246),e.bezierCurveTo(137.878,157.33,138.114,163.073,137.874,167.848),e.bezierCurveTo(137.658,169.382,137.582,170.819,137.531,172.125),e.bezierCurveTo(137.483,172.541,137.476,172.897,137.415,173.251),e.bezierCurveTo(137.041,176.753,136.854,178.648,138.426,180.565),e.bezierCurveTo(139.338,181.609,140.678,182.281,142.061,182.394),e.bezierCurveTo(143.471,182.478,144.94,181.928,145.984,180.93),e.bezierCurveTo(147.776,179.196,147.748,177.203,147.748,174.918),e.bezierCurveTo(147.741,174.283,147.727,173.499,147.755,172.64),e.bezierCurveTo(147.874,171.494,147.989,170.207,148.064,168.825),e.bezierCurveTo(148.439,166.594,149.165,164.383,150.602,162.982),e.bezierCurveTo(152.127,161.557,154.563,160.907,157.911,161.13),e.bezierCurveTo(160.715,161.309,161.93,162.407,162.632,163.254),e.bezierCurveTo(166.491,167.987,164.904,179.564,164.295,183.915),e.bezierCurveTo(163.868,186.952,163.618,188.781,165.162,190.691),e.bezierCurveTo(166.02,191.788,167.384,192.471,168.799,192.56),e.bezierCurveTo(171.067,192.681,173.932,191.727,174.522,186.326),e.bezierCurveTo(176.023,172.052,180.258,170.686,183.289,170.852),e.bezierCurveTo(185.041,170.96,185.81,171.605,186.343,172.254),e.bezierCurveTo(190.287,176.87,188.938,191.715,188.191,199.68),e.bezierCurveTo(186.56,217.25,180.783,233.4,175.674,247.657),e.bezierCurveTo(171.638,258.973,167.773,269.717,166.55,279.732),e.lineTo(87.476,279.691),e.closePath(),e.fill(),e.fillStyle=r,e.beginPath(),e.moveTo(138.555,119.274),e.bezierCurveTo(140.212,116.526,143.777,115.631,146.537,117.295),e.lineTo(182.179,138.717),e.bezierCurveTo(184.923,140.386,185.811,143.942,184.165,146.708),e.lineTo(184.165,146.708),e.bezierCurveTo(182.496,149.475,178.907,150.347,176.171,148.706),e.lineTo(140.544,127.256),e.bezierCurveTo(137.783,125.608,136.896,122.034,138.555,119.274),e.lineTo(138.555,119.274),e.closePath(),e.fill(),e.fillStyle=r,e.beginPath(),e.moveTo(146.132,90.192),e.bezierCurveTo(145.555,87.022,147.649,84.016,150.818,83.406),e.lineTo(191.717,75.911),e.bezierCurveTo(194.866,75.338,197.907,77.437,198.483,80.589),e.lineTo(198.483,80.589),e.bezierCurveTo(199.073,83.758,196.957,86.799,193.824,87.368),e.lineTo(152.908,94.856),e.bezierCurveTo(149.747,95.447,146.725,93.344,146.132,90.192),e.lineTo(146.132,90.192),e.closePath(),e.fill(),e.fillStyle=r,e.beginPath(),e.moveTo(127.251,64.756),e.bezierCurveTo(124.775,62.733,124.38,59.068,126.416,56.546),e.lineTo(152.558,24.232),e.bezierCurveTo(154.577,21.725,158.254,21.34,160.733,23.355),e.lineTo(160.733,23.355),e.bezierCurveTo(163.252,25.378,163.622,29.054,161.61,31.562),e.lineTo(135.456,63.867),e.bezierCurveTo(133.43,66.386,129.769,66.75,127.251,64.756),e.lineTo(127.251,64.756),e.closePath(),e.fill(),e.fillStyle=r,e.beginPath(),e.moveTo(99.838,53.288),e.bezierCurveTo(96.627,53.202,94.078,50.534,94.166,47.337),e.lineTo(95.172,5.75),e.bezierCurveTo(95.267,2.544,97.905,0,101.126,.08),e.lineTo(101.126,.08),e.bezierCurveTo(104.351,.165,106.895,2.814,106.819,6.057),e.lineTo(105.807,47.616),e.bezierCurveTo(105.721,50.833,103.057,53.388,99.838,53.288),e.lineTo(99.838,53.288),e.closePath(),e.fill(),e.fillStyle=r,e.beginPath(),e.moveTo(69.061,64.024),e.bezierCurveTo(66.594,66.087,62.923,65.735,60.843,63.28),e.lineTo(34.188,31.382),e.bezierCurveTo(32.12,28.915,32.446,25.255,34.921,23.202),e.lineTo(34.921,23.202),e.bezierCurveTo(37.398,21.128,41.049,21.457,43.11,23.925),e.lineTo(69.786,55.817),e.bezierCurveTo(71.855,58.292,71.522,61.966,69.061,64.024),e.lineTo(69.061,64.024),e.closePath(),e.fill(),e.fillStyle=r,e.beginPath(),e.moveTo(52.979,91.866),e.bezierCurveTo(52.434,95.023,49.404,97.142,46.259,96.584),e.lineTo(5.289,89.461),e.bezierCurveTo(2.116,88.901,0,85.89,.541,82.715),e.lineTo(.541,82.715),e.bezierCurveTo(1.091,79.553,4.104,77.437,7.287,77.98),e.lineTo(48.249,85.135),e.bezierCurveTo(51.417,85.691,53.532,88.693,52.979,91.866),e.lineTo(52.979,91.866),e.closePath(),e.fill(),e.fillStyle=r,e.beginPath(),e.moveTo(58.77,123.962),e.bezierCurveTo(60.207,126.846,59.017,130.327,56.158,131.766),e.lineTo(18.932,150.314),e.bezierCurveTo(16.057,151.759,12.561,150.584,11.138,147.715),e.lineTo(11.138,147.715),e.bezierCurveTo(9.694,144.83,10.873,141.338,13.736,139.9),e.lineTo(50.952,121.351),e.bezierCurveTo(53.829,119.911,57.334,121.1,58.77,123.962),e.lineTo(58.77,123.962),e.closePath(),e.fill(),this.data=e.getImageData(0,0,this.width,this.height).data,u.triggerRepaint(),!0}};return b}
@@ -1,4 +0,0 @@
1
- import React from "react";
2
- import "./MapLoader.scss";
3
- export declare function MapLoader(): React.JSX.Element;
4
- //# sourceMappingURL=MapLoader.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as s,jsxs as d}from"react/jsx-runtime";import{useLocalStore as e}from"mobx-react-lite";import"./MapLoader.scss";export function MapLoader(){const i=e(()=>({get style(){return{left:0}}}));return s("div",{className:"map-loader",style:i.style,children:d("div",{className:"lds-grid",children:[s("div",{}),s("div",{}),s("div",{}),s("div",{}),s("div",{}),s("div",{}),s("div",{}),s("div",{}),s("div",{})]})})}
@@ -1,4 +0,0 @@
1
- import "./Mapbox.scss";
2
- import * as React from "react";
3
- export default function Mapbox(): React.JSX.Element;
4
- //# sourceMappingURL=Mapbox.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as d}from"react/jsx-runtime";import v from"classnames";import L from"mapbox-gl";import{useLocalStore as z,useObserver as R}from"mobx-react-lite";import{useEffect as P,useRef as S}from"react";import{svgArea as F}from"../../data/svg";import e,{boothStore as C,uiState as o}from"../../store";import{useReaction as s}from"../../utils/mobx";import"./Mapbox.scss";import y from"../../core/Rect";import{loadLogos as k,moveToRect as b,props as u,setBuildingsLayer as N,setDataSource as D,setLayers as O,setMap as j,setMarker as m,switchViewbox as E,updateHoverDataSource as q,updateRouteLines as x,updateSelectionDataSource as B,moveToLocation as A}from"./utils/data";export default function H(){const f=S(null),r=S(null);let l=null,p=[];const n=z(()=>({get initselected(){return![...o.selectedBooths].filter(t=>t.rect)},get actualCurrentPosition(){const t=e.routeStore.currentPosition;return!t?.z||e.layerStore.visible.indexOf(e.layerStore.findLayer(t.z))>-1?t:null},get style(){return{left:0}}}));return P(()=>{if(!r.current){var{cx:t,cy:c}=u.viewbox;r.current=new L.Map({container:f.current,style:`mapbox://styles/mapbox/${u.style}`,center:[t,c],zoom:15.5,bearing:u.initBearing-30,pitch:u.initPitch+30,maxPitch:70,bearingSnap:0,accessToken:u.token}),j(r.current),r.current.on("load",async()=>{setTimeout(()=>b(n.initselected?y.fromMultiple([...o.selectedBooths].filter(a=>a.rect).map(a=>a.rect)):F,15,4e3),1500),r.current.setLight({anchor:"viewport",color:"white",intensity:0});const i=await k(e.boothStore.booths);D(e.boothStore.booths,i),m("yah",e.routeStore.defaultFrom?.rect?{x:e.routeStore.defaultFrom.rect.cx,y:e.routeStore.defaultFrom.rect.cy}:null),m("cp",n.actualCurrentPosition),p=O(e.layerStore.layers);const h=p.filter(a=>a.indexOf("--")===-1);x(e.routeStore),N(),r.current.on("mouseenter",h,()=>r.current.getCanvas().style.cursor="pointer"),r.current.on("mouseleave",h,()=>r.current.getCanvas().style.cursor=""),r.current.on("click",a=>{const g=[[a.point.x-5,a.point.y-5],[a.point.x+5,a.point.y+5]],M=r.current.queryRenderedFeatures(g,{layers:p})[0],T=e.boothStore.booths.find(w=>w.name===M?.properties?.id);e.clickBooth(T)})})}}),s(()=>o.zoomBy,()=>{if(!o.zoomBy||!e.mapboxStore.showMapbox)return;const t=o.zoomBy;o.zoomBy=null,r.current.flyTo({zoom:r.current.getZoom()+(t>1?.5:-.5),animate:!0,duration:500,essential:!0})}),s(()=>[e.layerStore.loaded,e.layerStore.visible,o.selectedRoute],()=>{p.forEach(t=>{const c=t.split("--")[0],i=e.layerStore.layers.find(h=>h.name===c);(i.visible||r.current.getLayoutProperty(t,"visibility")!=="none")&&r.current.setLayoutProperty(t,"visibility",i.visible?"visible":"none")}),B([...o.selectedBooths],e.boothStore.booths),m("yah",e.routeStore.defaultFrom?.rect&&e.routeStore.defaultFrom?.layer?.visible?{x:e.routeStore.defaultFrom.rect.cx,y:e.routeStore.defaultFrom.rect.cy}:null),m("cp",n.actualCurrentPosition)}),s(()=>o.hoveredBooths,()=>{l&&(clearTimeout(l),l=null),l=setTimeout(()=>{l=null,q([...o.hoveredBooths].filter(t=>t.layer?.visible??!0),e.boothStore.booths)},50)}),s(()=>[o.selectedBooths,o.listBooths],()=>{var t=[];o.selectedBooths.size?t=[...o.selectedBooths]:o.listBooths.size&&(o.activeListIndex===0||o.list.type==="bookmarks"||o.list.type==="category")&&(t=[...o.listBooths]),B(t,e.boothStore.booths)}),s(()=>e.mapboxStore.showMapbox,()=>{E(e.mapboxStore.showMapbox)}),s(()=>o.moveToBooths,()=>{if(!o.moveToBooths||!e.mapboxStore.showMapbox)return;const t=o.moveToBooths.filter(i=>i.rect).map(i=>i.rect),c=y.fromMultiple(t);t.length&&b(c),o.moveToBooths=null}),s(()=>o.moveToRect,()=>{!o.moveToRect||!e.mapboxStore.showMapbox||(b(o.moveToRect,15),o.moveToRect=null)}),s(()=>o.moveToLocation,()=>{!o.moveToLocation||!e.mapboxStore.showMapbox||A()}),s(()=>o.centerMap,()=>{!o.centerMap||!e.mapboxStore.showMapbox||(b(y.fromMultiple(C.booths.map(t=>t.rect)),15),o.centerMap=!1)}),s(()=>e.routeStore.routeLines,()=>x(e.routeStore)),s(()=>n.actualCurrentPosition,()=>m("cp",n.actualCurrentPosition)),R(()=>d("div",{style:n.style,className:v("map-container",{hidden:!e.mapboxStore.showMapbox}),children:d("div",{ref:f,className:v("map-wrapper","mapboxgl-map")})}))}
@@ -1,38 +0,0 @@
1
- import mapboxgl, { Map } from "mapbox-gl";
2
- import Rect from "../../../core/Rect";
3
- import { Booth, RegularBooth } from "../../../store/BoothStore";
4
- import { Layer } from "../../../store/LayerStore";
5
- import RouteStore, { CurrentPosition } from "../../../store/RouteStore";
6
- import { Img } from "./../../../utils/imageloader";
7
- export declare function actualBoothColor(b: Booth): string;
8
- export declare function getBoothlabel(booth: Booth): string | null;
9
- export declare const props: {
10
- token: string;
11
- initBearing: any;
12
- initPitch: number;
13
- bearing: any;
14
- viewbox: Rect;
15
- style: string;
16
- edgeZoom: number;
17
- extrusion: {
18
- building: number;
19
- booths: number;
20
- other: number;
21
- };
22
- };
23
- export declare function loadLogos(booths: RegularBooth[]): Promise<Img[]>;
24
- export declare function setMap(m: Map): void;
25
- export declare function convertSvgPoint(x: number, y: number): [number, number];
26
- export declare function moveToRect(svgRect: Rect, paddingPercent?: number, duration?: number, pitch?: number, bearing?: number): void;
27
- export declare function moveToLocation(duration?: number, pitch?: number, bearing?: number): void;
28
- export declare function zoomMap(zoomIn: boolean): void;
29
- export declare function switchViewbox(showMapbox: boolean): void;
30
- export declare function setDataSource(booths: Booth[], logos: Img[]): mapboxgl.Map;
31
- export declare function updateHoverDataSource(hoveredBooths: Booth[], allBooths: Booth[]): void;
32
- export declare function updateSelectionDataSource(selectedBooths: Booth[], allBooths: Booth[]): void;
33
- export declare function setLayers(layers: Layer[]): string[];
34
- export declare function setBuildingsLayer(): void;
35
- export declare function setMarker(type: "from" | "to" | "yah" | "cp", point: CurrentPosition): void;
36
- export declare function setWayfindingLayer(): void;
37
- export declare function updateRouteLines(routeStore: RouteStore): void;
38
- //# sourceMappingURL=data.d.ts.map
@@ -1 +0,0 @@
1
- import x from"color";import z from"mapbox-gl";import y from"../../../core/Rect";import k from"../../../data";import{svgArea as w}from"../../../data/svg";import h,{uiState as m}from"../../../store";import{RegularBooth as T,SpecialBooth as E}from"../../../store/BoothStore";import L from"../../../tools/settings";import{bearing as I,convertLocalToGps as g}from"../../../utils/gps";import P from"../../../utils/imageloader";import{fpGeo as s}from"../../../data/fpGeo";var c;(function(t){t.booth="booth",t.building="building",t.other="other"})(c||(c={}));function C(){if(!s)return 0;var t=s?.properties?.mpViewbox;if(!t||t.length<4)return 0;var o=s?.properties?.bearing;let e=o??-1*I(t[1],t[0],t[3],t[2])-90;return Math.abs(e)>=360&&(e=180),e}function j(){var t=1e3,o=1e3,e=-1e3,l=-1e3,r=s;if(!s||!r.features)return y.fromXywh(0,0,100,100);var n=r.features.filter(d=>d.properties.type===c.booth);if((Array.isArray(n)?n:[n]).forEach(d=>{var D=d.geometry.coordinates[0]||[];for(let v=1;v<D.length;v++){const f=D[v];f[0]<t&&(t=f[0]),f[1]<o&&(o=f[1]),f[0]>e&&(e=f[0]),f[1]>l&&(l=f[1])}}),t===1e3){var i=s?.properties?.mpViewbox,p=[i[0],i[2],i[4]],u=[i[1],i[3],i[5]];return y.fromX1y1x2y2(Math.min(...p),Math.min(...u),Math.max(...p),Math.max(...u))}return y.fromX1y1x2y2(t,o,e,l)}function X(){return s?.properties?.style||"light-v10"}export function actualBoothColor(t){let o;if(t instanceof E)o=t.color||L.colors.booths.empty;else if(t instanceof T){const e=L.colors.booths;t.onHold?o=t.holdColor||t.soldColor||e.default:t.exhibitors.length||t.reserved?o=t.soldColor||e.default:o=t.availColor||e.empty}return(o==="#666"||o==="#666666")&&(o="rgba(0,0,0,0.172)"),o}export function getBoothlabel(t){return t.noLabels?null:t instanceof E?t.title||t.name:((k.hideExhibitors?[]:k.onlyFeaturedExhibitors?t.exhibitors.filter(e=>e.featured):t.exhibitors)||[])[0]?.name||t.title||t.name}function S(t){var o=parseInt(t).toString(16);return o.length===1?"0"+o:o}export const props={token:"pk.eyJ1Ijoicm9kaW9ubmlrb2xhZXYiLCJhIjoiY2wwanE5aXB4MDM2NTNibGExd3k4bHhsaiJ9.wdpy8dJ1qktQXGtZYDNH3w",initBearing:C()+30,initPitch:30,bearing:C(),viewbox:j(),style:X(),edgeZoom:19,extrusion:{building:5,booths:.5,other:.5}};const G=props.style.indexOf("dark")>-1,H=G?["interpolate",["linear"],["line-progress"],0,"#ff9e2c",.5,"lime",1,"#30afeb"]:["interpolate",["linear"],["line-progress"],0,x("#ff9e2c").darken(.3).hex(),.5,x("lime").darken(.3).hex(),1,x("#30afeb").darken(.3).hex()];let M={},a;const B=document.createElement("canvas");var b=B.getContext("2d");function N(t){const{width:o,height:e}=t;return B.width=o,B.height=e,b.fillStyle="white",b.fillRect(0,0,o,e),b.drawImage(t,0,0),b.getImageData(0,0,o,e)}export async function loadLogos(t){const o=(await P(t)).filter(e=>!!e);return o.forEach(e=>a.addImage(e.name,N(e.htmlImage))),o}export function setMap(t){a=t}export function convertSvgPoint(t,o){return g(t,o,s.properties.config)}export function moveToRect(t,o=200,e=1e3,l=props.initPitch,r=props.initBearing){if(!a)return;const n=o/100*Math.max(Math.abs(t.x2-t.x1),Math.abs(t.y2-t.y1))||0;var i=convertSvgPoint(t.x1-n,t.y1-n),p=convertSvgPoint(t.x2+n,t.y2+n);a.fitBounds([i,p],{essential:!0,duration:e,pitch:l,bearing:r}),m.moveToRect=null}export function moveToLocation(t=1e3,o=props.initPitch,e=props.initBearing){const l=h.routeStore.currentPosition,{lng:r,lat:n,x:i,y:p}=l;if(!(r&&n)&&!s.properties.config)return;const[u,d]=r&&n?[r,n]:g(i,p,s.properties.config);a.flyTo({center:[u,d],essential:!0,duration:t,pitch:o,bearing:e}),a.once("moveend",()=>{m.moveToLocation=!1})}export function zoomMap(t){a.flyTo({zoom:a.getZoom()+(t?.5:-.5),animate:!0,duration:500,essential:!0})}export function switchViewbox(t){let o=1200;t?m.selectedBooths.size?moveToRect(y.fromMultiple([...m.selectedBooths].map(e=>e.rect))):m.moveToRect=h.layerStore.rectangle||w:(m.moveToRect=h.layerStore.rectangle||w,moveToRect(w,0,o,0,props.bearing)),h.mapboxStore.mapBoxSelected=t}export function setDataSource(t,o){return s.features.forEach(e=>{if(e.properties.id=e.properties.id?.substring(1),e.properties.height=props.extrusion[e.properties.type]||props.extrusion.booths,e.properties.type===c.booth){let i=t.filter(p=>p.name===e.properties.id)[0];if(i){e.properties.color=actualBoothColor(i),e.properties.description=getBoothlabel(i);const p=o.find(u=>u?.name===i.slug);if(p){var l=Math.max(i.rect.w,i.rect.h),r=l/p.htmlImage.width;e.properties.scale=Math.max(.08,r/5),e.properties.scale1=5*e.properties.scale;var n=i?.exhibitors?.find(u=>!!u.logo&&u.logoInBooth);n&&(e.properties.logo=i.slug)}}}else{let i=e.properties.color;e.properties.color=`#${S(i.R||i.r||0)}${S(i.G||i.g||0)}${S(i.B||i.b||0)}`}}),updateSelectionDataSource([...m.selectedBooths],h.boothStore.booths),a.addSource("data",{type:"geojson",data:s})}export function updateHoverDataSource(t,o){s.features.forEach(e=>{if(e.properties.type===c.booth){var l=o.find(r=>r.name===e.properties.id);t.indexOf(l)>-1?e.properties.height=4*props.extrusion.booths:e.properties.height=props.extrusion.booths}}),a.getSource("data")?.setData(s)}export function updateSelectionDataSource(t,o){s.features.forEach(e=>{if(e.properties.type===c.booth){const l=o.find(n=>n.name===e.properties.id),r=actualBoothColor(l);t.length?e.properties.color=t.indexOf(l)===-1?x(r).darken(.7).hex():"#f03b55":e.properties.color=r}}),a.getSource("data")?.setData(s)}export function setLayers(t){const o=[];return t.forEach(e=>{(s.images?.filter(r=>r.layer===e.name)??[]).forEach((r,n)=>{const i=e.name+"--bg_"+n;o.push(i),a.addSource(i,{type:"image",url:r.data,coordinates:r.points}),a.addLayer({id:i,source:i,type:"raster",layout:{visibility:e.visible?"visible":"none"}})}),o.push(e.name+"--other"),a.addLayer({id:e.name+"--other",type:"fill",source:"data",filter:["all",["in","type",c.other],["in","layer",e.name],["!in","value","3D"]],layout:{visibility:e.visible?"visible":"none"},paint:{"fill-color":["get","color"]}}),o.push(e.name+"--other-3D"),a.addLayer({id:e.name+"--other-3D",type:"fill-extrusion",source:"data",filter:["all",["in","type",c.other],["in","layer",e.name],["in","value","3D"]],layout:{visibility:e.visible?"visible":"none"},paint:{"fill-extrusion-color":["get","color"],"fill-extrusion-height":["get","height"]}})}),t.forEach(e=>{var l=s.features.filter(r=>r.properties.type===c.booth&&r.properties.layer===e.name);l.length&&(o.push(e.name),o.push(e.name+"--labels"),o.push(e.name+"--logos"),a.addLayer({id:e.name,type:"fill-extrusion",source:"data",filter:["all",["in","type",c.booth],["in","layer",e.name]],layout:{visibility:e.visible?"visible":"none"},paint:{"fill-extrusion-color":["get","color"],"fill-extrusion-height":["get","height"],"fill-extrusion-opacity":1}}),a.addLayer({id:e.name+"--labels",type:"symbol",source:"data",filter:["all",["in","type",c.booth],["in","layer",e.name],["!has","logo"]],minzoom:18,layout:{"text-field":["get","description"],"text-size":["interpolate",["linear"],["zoom"],18,8,19.5,10,20,11,20.5,11,21,16,22,20],"text-allow-overlap":!1,"text-ignore-placement":!1,visibility:e.visible?"visible":"none"},paint:{"text-color":L.boothLabelColor}}),a.addLayer({id:e.name+"--logos",type:"symbol",source:"data",filter:["all",["in","type",c.booth],["in","layer",e.name],["has","logo"]],minzoom:18,layout:{"icon-size":["interpolate",["exponential",2],["zoom"],18,["get","scale"],22,["get","scale1"]],"icon-image":["get","logo"],"icon-anchor":"bottom","icon-allow-overlap":!0,"icon-ignore-placement":!0,"icon-rotation-alignment":"viewport","icon-pitch-alignment":"viewport",visibility:e.visible?"visible":"none"}}))}),o}export function setBuildingsLayer(){a.addLayer({id:"buildings",type:"fill-extrusion",source:"data",filter:["in","type",c.building],paint:{"fill-extrusion-vertical-gradient":!0,"fill-extrusion-color":["get","color"],"fill-extrusion-height":["get","height"],"fill-extrusion-opacity":["interpolate",["linear",.5],["zoom"],16,.9,19,.1]}})}export function setMarker(t,o){var e=M[t];if(!o){e?.remove(),M[t]=null;return}const{x:l,y:r}=o,n=o.lat&&o.lng?[o.lng,o.lat]:g(l,r,s.properties.config);if(!e){var i=document.createElement("div");i.className=`marker ${t}`,e=new z.Marker(i,{rotationAlignment:t!=="to"&&t!=="yah"?"map":"auto"}).setLngLat(n),e.addTo(a),M[t]=e}e.setLngLat(n)}export function setWayfindingLayer(){a.addSource("wfData",{type:"geojson",lineMetrics:!0,data:null}),a.addLayer({id:"wf",type:"line",source:"wfData",minzoom:2,paint:{"line-color":"#30afeb","line-width":3,"line-gradient":H,"line-gap-width":2},layout:{"line-cap":"round","line-join":"round"}})}export function updateRouteLines(t){var o=a.getSource("wfData");o||(setWayfindingLayer(),o=a.getSource("wfData"));var e=t.routeLines.filter(p=>{let u=h.layerStore.layers.find(d=>d.name===p.p0.layer)?.visible??!0;return!p.virtual&&u}),l=e[0]?.p0,r=e[e.length-1]?.p1,n=[];r&&(n=e.map(p=>g(p.p0.x,p.p0.y,s.properties.config)),n.push(g(r.x,r.y,s.properties.config)));var i={type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:{type:"LineString",coordinates:n}}]};o.setData(i),setMarker("from",r),setMarker("to",l)}
@@ -1,7 +0,0 @@
1
- import React from "react";
2
- import "../Mapbox/Mapbox.scss";
3
- export default function ThreeComponent({ isMapbox, expo }: {
4
- isMapbox: boolean;
5
- expo: string;
6
- }): React.JSX.Element;
7
- //# sourceMappingURL=ThreeComponent.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as m}from"react/jsx-runtime";import c from"classnames";import{useLocalStore as y,useObserver as d}from"mobx-react-lite";import{useEffect as v,useRef as x}from"react";import u from"../../core/Rect";import t,{boothStore as S,uiState as e}from"../../store";import{useReaction as r}from"../../utils/mobx";import"../Mapbox/Mapbox.scss";import{moveToLocation as B,moveToRect as l,switchViewbox as p,zoomMap as M}from"../Mapbox/utils/data";import T from"./UIManager";export default function g({isMapbox:h,expo:f}){const n=x(null);let s=null;v(()=>{s=new T(f,h,n.current),s.init().then(()=>{t.layerStore.layers.forEach(o=>s.changeLayerVisibility(o.name,o.visible)),s.selectBooths([...e.selectedBooths]),s.updateRouteLines(t.routeStore),p(!0)})},[]);const a=y(()=>({get initselected(){return![...e.selectedBooths].filter(o=>o.rect)},get actualCurrentPosition(){const o=t.routeStore.currentPosition;return!o?.z||t.layerStore.visible.indexOf(t.layerStore.findLayer(o.z))>-1?o:null},get style(){return{left:0}}}));return r(()=>e.zoomBy,()=>{if(!e.zoomBy||!t.mapboxStore.showMapbox)return;const o=e.zoomBy;e.zoomBy=null,M(o>1)}),r(()=>[t.layerStore.loaded,t.layerStore.visible,e.selectedRoute],()=>{t.layerStore.layers.length===t.layerStore.layers.filter(o=>o.loaded).length&&t.layerStore.layers.forEach(o=>s.changeLayerVisibility(o.name,o.visible))}),r(()=>e.hoveredBooths,()=>{s.hoverBooths([...e.hoveredBooths])}),r(()=>[e.selectedBooths,e.listBooths],()=>{var o=[];e.selectedBooths.size?o=[...e.selectedBooths]:e.listBooths.size&&(e.activeListIndex===0||e.list.type==="bookmarks"||e.list.type==="category")&&(o=[...e.listBooths]),s.selectBooths(o)}),r(()=>t.mapboxStore.showMapbox,()=>{p(t.mapboxStore.showMapbox)}),r(()=>e.moveToBooths,()=>{if(!e.moveToBooths||!t.mapboxStore.showMapbox)return;const o=e.moveToBooths.filter(i=>i.rect).map(i=>i.rect),b=u.fromMultiple(o);o.length&&l(b),e.moveToBooths=null}),r(()=>e.moveToRect,()=>{!e.moveToRect||!t.mapboxStore.showMapbox||(l(e.moveToRect,15),e.moveToRect=null)}),r(()=>e.moveToLocation,()=>{!e.moveToLocation||!t.mapboxStore.showMapbox||B()}),r(()=>e.centerMap,()=>{!e.centerMap||!t.mapboxStore.showMapbox||(l(u.fromMultiple(S.booths.map(o=>o.rect)),15),e.centerMap=!1)}),r(()=>t.routeStore.routeLines,()=>s.updateRouteLines(t.routeStore)),r(()=>a.actualCurrentPosition,()=>s.setMarker("cp",a.actualCurrentPosition?.x,a.actualCurrentPosition?.y,a.actualCurrentPosition?.z)),d(()=>m("div",{style:a.style,className:c("map-container",{hidden:!t.mapboxStore.showMapbox}),children:m("div",{ref:n,className:c("map-wrapper","mapboxgl-map")})}))}
@@ -1,28 +0,0 @@
1
- import * as THREE from "three";
2
- import { Group, WebGLRenderer } from "three";
3
- import { Booth } from "../../store/BoothStore";
4
- import RouteStore from "../../store/RouteStore";
5
- import { ICommonData } from "./common/dataLoader";
6
- import Scene from "./common/Scene";
7
- export default class UIManager {
8
- expo: string;
9
- isMapbox: boolean;
10
- scene: Scene;
11
- data: ICommonData;
12
- container: HTMLElement;
13
- isInit: boolean;
14
- constructor(expo: string, isMapbox: boolean, container: HTMLElement);
15
- init(): Promise<void>;
16
- changeLayerVisibility(layer: string, isVisible: boolean): void;
17
- hoverBooths(hoveredBooths: Booth[]): void;
18
- selectBooths(selectedBooths: Booth[]): void;
19
- setMarker(type: "from" | "to" | "yah" | "cp", x: number, y: number, layer: string | number, inLocal?: boolean, scale?: number): void;
20
- interpolateColors(color1: string, color2: string, steps: number): string[];
21
- updateRouteLines(routeStore: RouteStore): void;
22
- onBeforeRender(renderer: WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera, geometry: THREE.BufferGeometry, material: THREE.Material, group: Group): void;
23
- private onClickCallback;
24
- private initBooths;
25
- private convertPoint;
26
- private linesToPoints;
27
- }
28
- //# sourceMappingURL=UIManager.d.ts.map
@@ -1 +0,0 @@
1
- import*as h from"three";import{BoothMesh as I}from"./common/BoothMesh";import E from"./common/dataLoader";import T from"./common/modelLoader";import D from"./index";import{init as R}from"./mapbox/index_mapbox";import g,{boothStore as k,layersStore as $,uiState as F}from"../../store";import{LayersMode as U}from"../../store/LayerStore";import V from"../../utils/imageloader";import{SpriteMesh as v}from"./common/SpriteMesh";import H from"./utils/canvasFromText";import O from"./utils/textureMerger";import{actualBoothColor as _}from"../Mapbox/utils/data";import{addVersionToUrl as B}from"../../tools/loaders";import A from"../../tools/settings";import G from"./assets/from.png";import X from"./assets/to.png";import{default as q,default as J}from"./assets/yah.png";const f=[],x=new h.MeshPhongMaterial({color:3190763}),K=new h.MeshPhongMaterial({color:16711680});let d=0;const S=[],N=w=>A.EXPO=="glf24"?.1:1*(w.area.width+w.area.height)/1200;export default class Q{expo;isMapbox;scene;data;container;isInit=!1;constructor(t,e,o){this.expo=t,this.isMapbox=e,this.container=o,setInterval(()=>{if(!f.length){d=0;return}f[d].material=K,d>0&&(f[d-1].material=x),d<f.length-1?d++:(f[d-1].material=x,d=0)},50)}async init(){return new Promise(async(t,e)=>{this.data=await E(this.expo);const o=`https://${this.expo}.expofp.com/data/threejs`,r=await(this.isMapbox?R(this.container,this.data):D(this.container,this.data)),n=await T(B(`${o}/model.obj`),B(`${o}/model.mtl`));this.isInit=!0,this.scene=r,r.onClickCallbacks.push(this.onClickCallback.bind(this)),r.onBeforeRender=this.onBeforeRender.bind(this),await this.initBooths(r,n),t()})}changeLayerVisibility(t,e){if(!this.isInit)return;const o=this.scene.getlayer(t);o!=null&&(e?(this.scene.camera.layers.enable(o),this.scene.raycaster.layers.enable(o)):(this.scene.camera.layers.disable(o),this.scene.raycaster.layers.disable(o)))}hoverBooths(t){S.forEach(e=>e.hovered(t.length&&!!t.find(o=>o.name===e.name)))}selectBooths(t){S.forEach(e=>e.dimmed(t.length&&!t.find(o=>o.name===e.name)))}setMarker(t,e,o,r,n=!1,a=1){const i=`{sprite_${t}}`;let s=this.scene.children.find(c=>c.name===i);if(e!=null&&o!=null){const c=n?{x:e,y:o}:this.convertPoint(e,o,0);let l=this.data.objLayers.find(y=>y.name===g.layerStore.findLayer(r)?.name)||this.data.objLayers[0];s||(t==="from"?s=new v(G,l.height*a*2):t==="to"?s=new v(X,l.height*a*2):t==="yah"?s=new v(J,l.height*a*2):t==="cp"&&(s=new v(q,l.height*a)),s.name=i,this.scene.add(s)),s.position.set(c.x,c.y,l.z+(t==="from"||t==="to"?l.height:0))}else s&&this.scene.remove(s)}interpolateColors(t,e,o){for(var r=1/(o-1),n=[],a=new h.Color(t),i=new h.Color(e),s=0;s<o;s++)n.push(a.clone().lerp(i,r*s).getHex());return n}updateRouteLines(t){if(!this.isInit)return;var e=t.routeLines.filter(a=>{let i=g.layerStore.layers.find(s=>s.name===a.p0.layer)?.visible??!0;return!a.virtual&&i});if(f.forEach(a=>this.scene.remove(a)),f.splice(0,f.length),!e.length){this.setMarker("from",null,null,null),this.setMarker("to",null,null,null);return}const o=this.linesToPoints(e),{z:r}=this.data.objLayers.find(a=>a.name===($.mode===U.Default?"Default":e[0].p0.layer)),n=N(this.data);[].concat(o).reverse().forEach((a,i)=>{const s=new h.SphereGeometry(n),c=new h.Mesh(s,x);c.position.set(a.x,a.y,r+.02),f.push(c),this.scene.add(c)}),this.setMarker("to",e[0].p0.x,e[0].p0.y,e[0].p0.layer),this.setMarker("from",e[e.length-1].p1.x,e[e.length-1].p1.y,e[e.length-1].p1.layer)}onBeforeRender(t,e,o,r,n,a){let i=o.userData.position||o.position}onClickCallback(t){let o=t.filter(n=>n.object.name!=="building")[0]?.object?.name,r=k.booths.find(n=>n.name===o);r?g.clickBooth(r):F.details=null}async initBooths(t,e){const o=(await V(k.booths)).filter(i=>!!i);var r=new Map;o.forEach(i=>r.set(i.name+"_logo",new h.Texture(i.htmlImage))),g.boothStore.booths.forEach(i=>{r.set(i.slug,new h.Texture(H(i.name)))});var n=new O(r),a=new h.MeshBasicMaterial;a.side=h.DoubleSide,a.transparent=!0,e.children.forEach((i,s)=>{var[c,l]=i.name.split(/ (.*)/s);const y=t.addLayer(c);i.layers.set(y),i.name=l;const u=g.boothStore.booths.find(p=>l&&l[0]==="b"&&p.name===l?.substring(1));if(u){i.material=new h.MeshPhongMaterial({color:_(u),side:h.DoubleSide,name:i.name});let p=this.data.objLayers.find(m=>m.name===(u.layer?.name||"Default")),b=this.data.booths.find(m=>m.name===u.name);b.zScale=b.zScale||1;let z=p.z+b.zScale*p.height+(p.z+b.zScale*p.height)*.001;const M=new I(u,b,i,l.substring(1),y,z);let L=M.setText();L&&t.add(L);var P=u?.exhibitors?.find(m=>!!m.logo&&m.logoInBooth);if(P){const m=o.find(C=>C.booth.name===l.substring(1)),j=M.setLogo(n,m.htmlImage.width/m.htmlImage.height,a);j&&t.add(j)}e.children[s]=M,S.push(M)}}),t.add(e)}convertPoint(t,e,o){var r=this.data.matrix;return t+=r[0],e+=r[1],t*=r[2],e*=r[3],t+=r[4],e+=r[5],new h.Vector3(t,e,o)}linesToPoints(t){let e=[],o=[];for(let r=0;r<t.length;r++){let n=t[r],a=g.layerStore.layers.find(i=>i.name===n.p0.layer)?.visible??!0;!n.virtual&&a&&o.push(n),(n.virtual||!a||r===t.length-1)&&o.length&&(o=[])}return e.map(r=>this.convertPoint(r.x,r.y,r.z))}}
@@ -1,20 +0,0 @@
1
- import * as THREE from "three";
2
- import type { Mesh } from "three";
3
- import type { Booth } from "../../../store/BoothStore";
4
- import type { IBooth as ThreeBooth } from "../common/dataLoader";
5
- import type TextureMerger from "../utils/textureMerger";
6
- export declare class BoothMesh extends THREE.Group {
7
- efpBooth: Booth;
8
- threeBooth: ThreeBooth;
9
- boothMesh: THREE.Mesh;
10
- name: string;
11
- threeLayer: number;
12
- z: number;
13
- private material;
14
- constructor(efpBooth: Booth, threeBooth: ThreeBooth, boothMesh: THREE.Mesh, name: string, threeLayer: number, z: number);
15
- setText(): Mesh;
16
- setLogo(textureMerger: TextureMerger, ratio: number, material: THREE.MeshBasicMaterial): Mesh;
17
- dimmed(value: boolean): void;
18
- hovered(value: boolean): void;
19
- }
20
- //# sourceMappingURL=BoothMesh.d.ts.map
@@ -1 +0,0 @@
1
- import{lineAngle as p}from"simple-geometry";import*as n from"three";import g from"../../../tools/settings";import{getBoothlabel as M}from"../../Mapbox/utils/data";import{modifySphereUV as x}from"../utils/textureMerger";import{Text as u}from"troika-three-text";const P=new n.MeshPhongMaterial({color:16711680,side:n.DoubleSide,name:"selected"}),d=new n.MeshPhysicalMaterial({metalness:0,roughness:1,clearcoat:.5,transparent:!0,opacity:.5,side:n.DoubleSide,depthWrite:!0,depthTest:!0}),z=new n.MeshPhongMaterial({color:16734003,side:n.DoubleSide,name:"hovered"});export class BoothMesh extends n.Group{efpBooth;threeBooth;boothMesh;name;threeLayer;z;material;constructor(e,h,r,t,a,o){super(),this.efpBooth=e,this.threeBooth=h,this.boothMesh=r,this.name=t,this.threeLayer=a,this.z=o,this.name=t,r.name=t,this.material=r.material,this.children.push(r),this.layers.set(a)}setText(){const e=new u;if(e.text=M(this.efpBooth),!e.text)return;e.color=this.efpBooth.labelColor||g.boothLabelColor,e.anchorX="center",e.anchorY="middle",e.textAlign="center";const h=e.text.split(" "),r=Math.max(...h.map(m=>m.length)),{rect:t}=this.threeBooth;let a=Math.max(t.width,t.height),o=Math.min(t.width,t.height);e.fontSize=o,e.fontSize*e.text.length>a&&(e.fontSize*=1.1*a/(e.fontSize*e.text.length)),e.fontSize/o<.15&&(e.maxWidth=.1,e.fontSize*=h.length,e.fontSize*h.length>o&&(e.fontSize*=.9*o/(e.fontSize*h.length)),e.fontSize*r>a&&(e.fontSize*=a/(e.fontSize*r)));let i=e;var l=p(this.threeBooth.rect.p0,this.threeBooth.rect.p1)||0;return 1.5*t.width<t.height&&(l+=90),i.rotateZ(l*Math.PI/180),i.position.x=t.center.x,i.position.y=t.center.y,i.position.z=this.z+.01,i.scale.y=-1,i.name=this.name,i.layers.set(this.threeLayer),e}setLogo(e,h,r){const t=this.threeBooth.rect,a=t.width/t.height;let o=0,i=0,l=0;if(a>h?(i=t.height*.9,o=i*h):(o=t.width*.9,i=o/h),h>=2&&!this.efpBooth.rotate&&t.height>=t.width*2){let f=t.width*.9,c=f*h;for(;c>t.height-.02;)f-=.01,c=f*h;i=f,o=c,l=-90}else l=-this.efpBooth.rotate*180/Math.PI;const m=e.ranges.get(this.efpBooth.slug+"_logo");if(!m)return null;var s=new n.Mesh(new n.PlaneGeometry(o,i),r);return s.layers.set(this.threeLayer),x(s,m),s.rotateZ((l||0)*Math.PI/180),s.position.x=t.center.x,s.position.y=t.center.y,s.position.z=this.z+.01*this.z,s.scale.y=-1,s.material.map=e.mergedTexture,s.name=this.efpBooth.name,s}dimmed(e){this.boothMesh.material=e?d:this.material,this.boothMesh.userData.dimmed=e}hovered(e){e?this.boothMesh.material=z:this.boothMesh.userData.dimmed?this.boothMesh.material=d:this.boothMesh.userData.selected?this.boothMesh.material=this.material:this.boothMesh.material=this.material}}
@@ -1,13 +0,0 @@
1
- import * as THREE from "three";
2
- import type { Intersection, Object3D } from "three";
3
- export default class Scene extends THREE.Scene {
4
- camera: THREE.PerspectiveCamera;
5
- raycaster: THREE.Raycaster;
6
- private objLayers;
7
- private layerCounter;
8
- onClickCallbacks: ((intersections: Array<Intersection<Object3D>>) => void)[];
9
- constructor();
10
- addLayer(layerName: string): number;
11
- getlayer(layerName: string): number | undefined;
12
- }
13
- //# sourceMappingURL=Scene.d.ts.map
@@ -1 +0,0 @@
1
- import*as r from"three";export default class a extends r.Scene{camera;raycaster;objLayers=new Map;layerCounter=1;onClickCallbacks=[];constructor(){super()}addLayer(e){return this.objLayers.has(e)||(this.objLayers.set(e,this.layerCounter),this.camera.layers.enable(this.layerCounter),this.layerCounter++),this.layerCounter-1}getlayer(e){return this.objLayers.get(e)}}
@@ -1,5 +0,0 @@
1
- import * as THREE from "three";
2
- export declare class SpriteMesh extends THREE.Mesh {
3
- constructor(texture: string, height: number);
4
- }
5
- //# sourceMappingURL=SpriteMesh.d.ts.map
@@ -1 +0,0 @@
1
- import{lineAngle as g,round as d}from"simple-geometry";import*as o from"three";export class SpriteMesh extends o.Mesh{constructor(p,h){const i=new o.PlaneGeometry(1,1),s=new o.MeshBasicMaterial({transparent:!0,side:o.DoubleSide,alphaTest:.8,toneMapped:!0,precision:"highp"});var n=0;new o.TextureLoader().load(p,e=>{s.map=e;var r=h/e.image.height;i.scale(e.image.width*r,e.image.height*r,1),i.translate(0,e.image.height*r/2,0),i.rotateX(Math.PI/2),s.needsUpdate=!0}),super(i,s),this.onBeforeRender=(e,r,t,u,c,M)=>{let l=t.position.x&&t.position.y&&t.position.z?t.position:t.userData.position;const a=d((g({x:0,y:0},l)-90)*Math.PI/180,2);this.rotateZ(-1*(a-n)),n=a}}}
@@ -1,31 +0,0 @@
1
- import type { Point, Rect } from "simple-geometry";
2
- export interface IBooth {
3
- layer: string;
4
- rect: Rect;
5
- name: string;
6
- zScale: number;
7
- }
8
- export interface IObjLayer {
9
- name: string;
10
- z: number;
11
- height: number;
12
- }
13
- export interface ConfigPoint extends Point {
14
- lat: number;
15
- lng: number;
16
- }
17
- export interface GeoConfig {
18
- center: [number, number];
19
- bearing: number;
20
- style: string;
21
- }
22
- export interface ICommonData {
23
- viewbox: Rect;
24
- area: Rect;
25
- booths: IBooth[];
26
- geoConfig: GeoConfig;
27
- objLayers: IObjLayer[];
28
- matrix: number[];
29
- }
30
- export default function dataLoader(expo: string): Promise<ICommonData>;
31
- //# sourceMappingURL=dataLoader.d.ts.map
@@ -1 +0,0 @@
1
- import{addVersionToUrl as r}from"../../../tools/loaders";export default async function s(e){return new Promise(async(t,n)=>{const a=`https://${e}.expofp.com/data/threejs`;let o=await(await fetch(r(`${a}/model.json`))).json();t(o)})}
@@ -1,3 +0,0 @@
1
- import type { Group } from "three";
2
- export default function loadModel(objPath: string, mtlPath: string): Promise<Group>;
3
- //# sourceMappingURL=modelLoader.d.ts.map
@@ -1 +0,0 @@
1
- import{OBJLoader as f}from"three/examples/jsm/loaders/OBJLoader";import{MTLLoader as i}from"three/examples/jsm/loaders/MTLLoader";export default async function p(d,o){return new Promise(async(s,r)=>{var n=await c(o);n.getAsArray().forEach(e=>{e.name.indexOf(".webp")>-1&&(e.alphaTest=.6,e.transparent=!0),e.name==="0xB1C6CE"&&(e.alphaTest=.1,e.transparent=!0,e.opacity=.3,e.side=2,e.depthWrite=!1,e.depthTest=!1)});const a=new f;a.setMaterials(n),a.load(d,async e=>{e.children.forEach(t=>{t.name==="building"?t.renderOrder=.1:t.renderOrder=1}),s(e)},void 0,e=>r(e))})}async function c(d){return new Promise((o,s)=>{const r=new i;r.setMaterialOptions({side:2}),r.load(d,n=>{o(n)},void 0,n=>{s(n)})})}
@@ -1,7 +0,0 @@
1
- import * as THREE from "three";
2
- import Scene from "./Scene";
3
- export default function sceneLoader(canvas: HTMLCanvasElement, gl: WebGLRenderingContext, container: HTMLElement, camera: THREE.PerspectiveCamera, onclickCallback: (x: number, y: number, raycaster: THREE.Raycaster) => void, renderCallback: () => void): Promise<{
4
- scene: Scene;
5
- renderer: THREE.WebGLRenderer;
6
- }>;
7
- //# sourceMappingURL=sceneLoader.d.ts.map
@@ -1 +0,0 @@
1
- import*as c from"three";import{SRGBColorSpace as b}from"three";import w from"./Scene";export default async function x(o,f,e,t,h,m){const l=new c.Raycaster,i=new w;i.raycaster=l,i.camera=t,t.near=.1,t.far=1e4,t.aspect=e.clientWidth/e.clientHeight,t.updateProjectionMatrix();const a=new c.HemisphereLight(16777215,10,Math.PI);a.castShadow=!0,a.position.set(0,0,100),i.add(a);const s=new c.WebGLRenderer({canvas:o||void 0,context:f||void 0,antialias:!0,precision:"highp",premultipliedAlpha:!0});s.outputColorSpace=b,!o&&!f&&(s.setSize(e.clientWidth,e.clientHeight),e.appendChild(s.domElement)),s.autoClear=!1,e.addEventListener("resize",()=>{t.aspect=e.clientWidth/e.clientHeight,t.updateProjectionMatrix(),s.setSize(e.clientWidth,e.clientHeight),p()},!1);function p(){s.resetState(),m(),!o&&!f&&s.render(i,t)}function u(){requestAnimationFrame(u),p()}u(),l.layers.enableAll();let r=!1;e.addEventListener("mousedown",()=>{r=!0}),e.addEventListener("mousemove",()=>{r=!1}),e.addEventListener("mouseup",d=>{r&&E(d.clientX-e.parentElement.offsetLeft,d.clientY-e.parentElement.offsetTop),r=!1});function E(d,L){h(d,L,l);const S=l.intersectObjects(i.children).filter(n=>n.object.material.visible).sort((n,C)=>n.distance-C.distance);i.onClickCallbacks.forEach(n=>n(S))}return i.scale.x=-1,{scene:i,renderer:s}}
@@ -1,4 +0,0 @@
1
- import type Scene from "./common/Scene";
2
- import type { ICommonData } from "./common/dataLoader";
3
- export default function init(container: HTMLElement, data: ICommonData): Promise<Scene>;
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- import*as r from"three";import{OrbitControls as u}from"three/examples/jsm/controls/OrbitControls";import O from"./common/sceneLoader";export default function E(n,t){return new Promise(async(l,w)=>{const o=new r.PerspectiveCamera(50,n.clientWidth/n.clientHeight,.1,1e3);var{x:a,y:c}=t.viewbox.center;o.position.x=a+t.area.width*.2,o.position.y=c+t.area.height,o.position.z=t.objLayers[t.objLayers.length-1].z*Math.max(t.area.height,t.area.width)*.15||Math.min(t.area.height,t.area.width),o.up.set(0,0,1);let e;const i=await O(null,null,n,o,(m,h,p)=>{const s=new r.Vector2;s.x=m/n.clientWidth*2-1,s.y=-(h/n.clientHeight)*2+1,p.setFromCamera(s,o)},()=>{e?.update()});e=new u(o,i.renderer.domElement),e.enableRotate=!0,e.enablePan=!0,e.enableZoom=!0,e.enableDamping=!0,e.zoomSpeed=.7,e.rotateSpeed=1.5,e.panSpeed=.7,e.target.set(a,c,0),e.mouseButtons={LEFT:r.MOUSE.PAN,RIGHT:r.MOUSE.ROTATE,MIDDLE:r.MOUSE.DOLLY},e.touches.ONE=r.TOUCH.PAN,e.touches.TWO=r.TOUCH.DOLLY_ROTATE,i.scene.background=new r.Color(12895428),l(i.scene)})}
@@ -1,2 +0,0 @@
1
- export declare function configureWebGLForMapbox(): void;
2
- //# sourceMappingURL=configureWebGLForMapbox.d.ts.map
@@ -1 +0,0 @@
1
- import p from"mapbox-gl";export function configureWebGLForMapbox(){if(p.Map.prototype._setupPainter.toString().indexOf("webgl2")>-1){const n=p.Map.prototype._setupPainter;p.Map.prototype._setupPainter=function(){const t=this._canvas.getContext;this._canvas.getContext=function(o,e){return t.apply(this,["webgl2",e])||t.apply(this,["webgl",e])||t.apply(this,["experimental-webgl",e])},n.apply(this),this._canvas.getContext=t}}}
@@ -1,4 +0,0 @@
1
- import type { ICommonData } from "../common/dataLoader";
2
- import type Scene from "../common/Scene";
3
- export declare function init(container: HTMLElement, data: ICommonData): Promise<Scene>;
4
- //# sourceMappingURL=index_mapbox.d.ts.map
@@ -1 +0,0 @@
1
- import Z from"mapbox-gl";import*as e from"three";import{setMap as b}from"../../Mapbox/utils/data";import L from"../common/sceneLoader";import P from"./init-mapbox";export async function init(s,v){return new Promise(async(A,X)=>{var{geoConfig:n}=v;const r=await P(s,n.style);b(r);let a,d,x,c;r.setBearing(n.bearing-30),r.setCenter(n.center),r.setZoom(16);const V=1,y=[0,0,(180-n.bearing)*Math.PI/180],l=Z.MercatorCoordinate.fromLngLat(n.center,V),t={translateX:l.x,translateY:l.y,translateZ:l.z,rotateX:y[0],rotateY:y[1],rotateZ:y[2],scale:10*l.meterInMercatorCoordinateUnits()},R={id:"3d-expofp",type:"custom",renderingMode:"3d",onAdd:async function(w,M){a=new e.PerspectiveCamera;var m=await L(w.getCanvas(),M,s,a,(f,u,p)=>{const o=w.getFreeCameraOptions();let i=new e.Vector4(o.position.x,o.position.y,o.position.z,1);const g=new e.Vector4(-1e3,-1e3,1,1);g.x=f/s.clientWidth*2-1,g.y=-(u/s.clientHeight)*2+1,i.applyMatrix4(c.invert());let C=g.clone().applyMatrix4(a.projectionMatrix.clone().invert());return C.divideScalar(C.w),p.set(i,C.sub(i).normalize()),p},()=>{});d=m.scene,x=m.renderer,A(d)},render:function(w,M){if(!x)return;const m=new e.Matrix4().makeRotationAxis(new e.Vector3(1,0,0),t.rotateX),f=new e.Matrix4().makeRotationAxis(new e.Vector3(0,1,0),t.rotateY),u=new e.Matrix4().makeRotationAxis(new e.Vector3(0,0,1),t.rotateZ),p=new e.Matrix4().fromArray(M);c=new e.Matrix4().makeTranslation(t.translateX,t.translateY,t.translateZ).scale(new e.Vector3(t.scale,-t.scale,t.scale)).multiply(m).multiply(f).multiply(u),a.projectionMatrix=p.multiply(c);const o=r.getFreeCameraOptions();let i=new e.Vector4(o.position.x,o.position.y,o.position.z,1).applyMatrix4(c.clone().invert());a.userData.position=i,x.render(d,a),r.triggerRepaint()}};r.addLayer(R)})}
@@ -1,3 +0,0 @@
1
- import mapboxgl from "mapbox-gl";
2
- export default function initMapbox(container: HTMLElement, style: string): Promise<mapboxgl.Map>;
3
- //# sourceMappingURL=init-mapbox.d.ts.map
@@ -1 +0,0 @@
1
- import a from"mapbox-gl";import{configureWebGLForMapbox as n}from"./configureWebGLForMapbox";export default function r(e,i){return new Promise((t,m)=>{n(),a.accessToken="pk.eyJ1Ijoicm9kaW9ubmlrb2xhZXYiLCJhIjoiY2wwanE5aXB4MDM2NTNibGExd3k4bHhsaiJ9.wdpy8dJ1qktQXGtZYDNH3w";const o=new a.Map({container:e,style:"mapbox://styles/mapbox/"+i.replace("v10","v11"),antialias:!0,pitch:30,maxPitch:70,minZoom:14});o.on("load",()=>t(o))})}
@@ -1,2 +0,0 @@
1
- export default function canvasFromText(text: string): HTMLCanvasElement;
2
- //# sourceMappingURL=canvasFromText.d.ts.map
@@ -1 +0,0 @@
1
- export default function a(n){const t=document.createElement("canvas"),e=t.getContext("2d");return e.font="30px Arial",e.fillText(n,0,0),t}
@@ -1,60 +0,0 @@
1
- import * as THREE from "three";
2
- declare class TextureMergerRectangle {
3
- x: number;
4
- y: number;
5
- width: number;
6
- height: number;
7
- finalX: number;
8
- finalY: number;
9
- constructor(x: number, y: number, width: number, height: number);
10
- set(x: number, y: number, x2: number, y2: number, width: number, height: number): this;
11
- fits(texture: THREE.Texture): boolean;
12
- fitsPerfectly(texture: THREE.Texture): boolean;
13
- overlaps(rect: TextureMergerRectangle): boolean;
14
- }
15
- declare class Range {
16
- startU?: number | undefined;
17
- endU?: number | undefined;
18
- startV?: number | undefined;
19
- endV?: number | undefined;
20
- constructor(startU?: number | undefined, endU?: number | undefined, startV?: number | undefined, endV?: number | undefined);
21
- }
22
- declare class Node {
23
- children?: [Node, Node] | undefined;
24
- rectangle?: TextureMergerRectangle | undefined;
25
- textureName?: string | undefined;
26
- upperNode?: Node | undefined;
27
- constructor(children?: [Node, Node] | undefined, rectangle?: TextureMergerRectangle | undefined, textureName?: string | undefined, upperNode?: Node | undefined);
28
- }
29
- type TextureObject = Map<string, THREE.Texture>;
30
- export default class TextureMerger {
31
- MAX_TEXTURE_SIZE: number;
32
- dataURLs: Map<string, string>;
33
- textureCount: number;
34
- maxHeight: number;
35
- maxWidth: number;
36
- canvas: HTMLCanvasElement;
37
- textureCache: string[];
38
- node: Node;
39
- textureOffsets: Map<string, {
40
- x: number;
41
- y: number;
42
- }>;
43
- allNodes: Node[];
44
- context: CanvasRenderingContext2D;
45
- ranges: Map<string, Range>;
46
- mergedTexture: THREE.CanvasTexture;
47
- constructor(texturesObj: TextureObject);
48
- isTextureAlreadyInserted(textureName: string, texturesObj: TextureObject): {
49
- x: number;
50
- y: number;
51
- };
52
- private insert;
53
- private makeCanvasPowerOfTwo;
54
- private calculateImageSize;
55
- private findNextTexture;
56
- private rescale;
57
- }
58
- export declare function modifySphereUV(mesh: THREE.Mesh, range: Range): void;
59
- export {};
60
- //# sourceMappingURL=textureMerger.d.ts.map