@expofp/floorplan 3.10.1 → 3.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/browser/{Button-DdPvRBTh.js → Button-Bj5GinNb.js} +6 -6
  2. package/dist/browser/{CookieConsent-C39dYjaQ.js → CookieConsent-vekYv-WL.js} +7 -7
  3. package/dist/browser/{Debug-B5r6LCAX.js → Debug-B8Z6UAk7.js} +7 -7
  4. package/dist/browser/{Demo-Dbrjn3oi.js → Demo-DxKBQPXs.js} +10 -10
  5. package/dist/browser/{Free-DUcGDkLZ.js → Free-xJ581Tn5.js} +10 -10
  6. package/dist/browser/{Gallery-CvO5_8hs.js → Gallery-BCLvsYMq.js} +10 -10
  7. package/dist/browser/{GpsLoader-Cybs-6Z0.js → GpsLoader-D8b4YGWa.js} +19 -19
  8. package/dist/browser/{KioskStore-Df_lwtgJ.js → KioskStore-iac7BFkc.js} +30 -30
  9. package/dist/browser/{MaplibreAdapter-BgOzaHlx.js → MaplibreAdapter-hBzzKWxy.js} +749 -614
  10. package/dist/browser/{ModalContainer-DXVCm1fb.js → ModalContainer-CNFkEgVO.js} +11 -11
  11. package/dist/browser/{PermissionNotice-B0OJFFky.js → PermissionNotice-BjNUzq-I.js} +7 -7
  12. package/dist/browser/{SetKioskMode-BdOX40be.js → SetKioskMode-rZPgTzX2.js} +11 -11
  13. package/dist/browser/ShowKiosk-C0-HDdLS.js +28 -0
  14. package/dist/browser/{TouchHand-RDWCILm_.js → TouchHand-BpAIvJuD.js} +4 -4
  15. package/dist/browser/{ViewerMenuPanel-BlCzm_mm.js → ViewerMenuPanel-B8HWceZY.js} +10 -10
  16. package/dist/browser/{add-debug-secret-listener-lYBneebf.js → add-debug-secret-listener-DrG0zrQz.js} +1 -1
  17. package/dist/browser/{boolean-editor-C_bdHxC2.js → boolean-editor-CksHtQqy.js} +45 -45
  18. package/dist/browser/{bootIntercom-Bf4CaruD.js → bootIntercom-DIY2vGKD.js} +2 -2
  19. package/dist/browser/{booth-by-xy-WnHwiopn.js → booth-by-xy-CB4TcAKe.js} +276 -276
  20. package/dist/browser/{browser-BGtGwkTn.js → browser-BJI7T84p.js} +2 -2
  21. package/dist/browser/bundle.json +61 -61
  22. package/dist/browser/{classnames-DRy7JPyJ.js → classnames-DY5QZHM2.js} +2 -2
  23. package/dist/browser/{client-BE52OM0U.js → client-BKj8O-3N.js} +10 -10
  24. package/dist/browser/{components-BfKSs6sY.js → components-C9T4gWSC.js} +1675 -1675
  25. package/dist/browser/{debug-overlay-mKmIzOYk.js → debug-overlay-oxl07sGQ.js} +355 -355
  26. package/dist/browser/{debug-ui-DLxMK2XU.js → debug-ui-vcgITEra.js} +6 -6
  27. package/dist/browser/{dist-DSRSA5oz.js → dist-B6a_6LWa.js} +64 -63
  28. package/dist/browser/{dist-QsCYWHCu.js → dist-BD71uIJa.js} +5 -5
  29. package/dist/browser/{dist-eojWwYB5.js → dist-DQ-MzacE.js} +3 -3
  30. package/dist/browser/{efp-debug-init-C5HgsgC2.js → efp-debug-init-DeppnUIb.js} +2 -2
  31. package/dist/browser/{enum-editor-BqpFqXiM.js → enum-editor-CeBF-egH.js} +478 -478
  32. package/dist/browser/{es5-7bslpbjj.js → es5-DyEOE9h8.js} +2 -2
  33. package/dist/browser/{event-not-found-Bc1SpnKw.js → event-not-found--rNrnsfb.js} +1 -1
  34. package/dist/browser/{exports-CYJRF2aW.js → exports-CQRMT27z.js} +449 -443
  35. package/dist/browser/{favicon-CRiidRYo.js → favicon-Y_DfJIgc.js} +1 -1
  36. package/dist/browser/{fetch-retry.umd-Btwt1fg_.js → fetch-retry.umd-mDEk7YNi.js} +2 -2
  37. package/dist/browser/{flex-ITkzmA3C.js → flex-gMXInosq.js} +7 -7
  38. package/dist/browser/{floorplan.loader-DJVlfwah.js → floorplan.loader-CKHHfoqW.js} +1284 -1282
  39. package/dist/browser/{floorplan.ready-7KwBZy9I.js → floorplan.ready-Dk5rTB4-.js} +282 -282
  40. package/dist/browser/{fuse-CcYz7YAl.js → fuse-C0XgkQam.js} +4 -4
  41. package/dist/browser/{i18n-CeVxHTr1.js → i18n-DDp2WKLS.js} +19 -20
  42. package/dist/browser/index.js +12 -12
  43. package/dist/browser/{index.module-CV2WVv52.js → index.module-DJ1o-lSs.js} +4 -4
  44. package/dist/browser/{is-webview-BOqof5Uq.js → is-webview-DSeLj16c.js} +1 -1
  45. package/dist/browser/{jsx-runtime-BiSrB4Oo.js → jsx-runtime-4SB5tKoZ.js} +2 -2
  46. package/dist/browser/{lib-Dg9vXDVM.js → lib-CNsibyKE.js} +4 -4
  47. package/dist/browser/{loadImage-VYhbBgH6.js → loadImage-m5qxmKm8.js} +4 -4
  48. package/dist/browser/{logDeviceInfo-B8Mi-9H5.js → logDeviceInfo-DJbQFFfl.js} +9 -9
  49. package/dist/browser/{main-D6ItQIYj.js → main-Ci70zd7U.js} +1 -1
  50. package/dist/browser/{mobx-Deoo_wpx.js → mobx-85FEI3nE.js} +4 -4
  51. package/dist/browser/{particles.min-BNwqgit-.js → particles.min-Cjclve40.js} +2 -2
  52. package/dist/browser/{prop-types-CuEYshV7.js → prop-types-O5uO9swn.js} +2 -2
  53. package/dist/browser/{react-BMPhuMz9.js → react-938H1sny.js} +2 -2
  54. package/dist/browser/{react-dom-DSdkXj0b.js → react-dom-BB5-5CwA.js} +3 -3
  55. package/dist/browser/{reset-all-settings-C2yTiJ1V.js → reset-all-settings-C3UGYA7h.js} +7 -7
  56. package/dist/browser/{rolldown-runtime-I1EwXf_t.js → rolldown-runtime-D_bOcK0P.js} +1 -1
  57. package/dist/browser/{settings-Dr8bs0FB.js → settings-CuvIoKLw.js} +2 -2
  58. package/dist/browser/{settings-item-DjfyQTQB.js → settings-item-jhTAtSrk.js} +15 -15
  59. package/dist/browser/{store-CVdrQCza.js → store-g-LcmXc-.js} +5123 -5042
  60. package/dist/browser/{string-editor-3sN4j-ci.js → string-editor-CjVQpF6U.js} +22 -22
  61. package/dist/browser/{theme-BSTLt6eV.js → theme-DxKuEQUA.js} +927 -930
  62. package/dist/browser/{ui-CiFfwrN8.js → ui-BMAImlSF.js} +8 -8
  63. package/dist/browser/{useRenderTarget-DF7LdnYr.js → useRenderTarget-DL0u3FKy.js} +4 -4
  64. package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -1
  65. package/dist/esm/components/Maplibre/MaplibreWrapper.js +1 -1
  66. package/dist/esm/components/Maplibre/styles/mapbox-streets-bright.d.ts +3 -0
  67. package/dist/esm/components/Maplibre/styles/mapbox-streets-bright.js +16 -0
  68. package/dist/esm/components/Maplibre/styles/mapbox-streets.d.ts +3 -0
  69. package/dist/esm/components/Maplibre/styles/mapbox-streets.js +16 -0
  70. package/dist/esm/components/Maplibre/useCameraReactions.d.ts +4 -3
  71. package/dist/esm/components/Maplibre/useCameraReactions.js +1 -1
  72. package/dist/esm/components/Maplibre/utils/geo-config.d.ts +5 -8
  73. package/dist/esm/components/Maplibre/utils/geo-config.js +1 -1
  74. package/dist/esm/components/Maplibre/utils/map-helpers.js +1 -1
  75. package/dist/esm/components/Maplibre/utils/solver.d.ts +6 -7
  76. package/dist/esm/components/Maplibre/utils/solver.js +1 -1
  77. package/dist/esm/data/svg.d.ts +2 -1
  78. package/dist/esm/data/svg.js +1 -1
  79. package/dist/esm/renderer/RendererService.d.ts +2 -1
  80. package/dist/esm/renderer/RendererService.js +1 -1
  81. package/dist/esm/store/LayerStore.d.ts +1 -0
  82. package/dist/esm/store/LayerStore.js +1 -1
  83. package/dist/esm/store/UIState.js +1 -1
  84. package/dist/esm/utils/gps.js +1 -1
  85. package/dist/esm/utils/planBearing.d.ts +14 -0
  86. package/dist/esm/utils/planBearing.js +1 -0
  87. package/dist/esm/utils/scene-bounds.d.ts +57 -0
  88. package/dist/esm/utils/scene-bounds.js +1 -0
  89. package/package.json +8 -8
  90. package/dist/browser/ShowKiosk-cvnSTpd2.js +0 -28
@@ -1,17 +1,17 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.10.1" };
4
+ e.SENTRY_RELEASE = { id: "3.10.2" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "43912113-9328-4069-8890-5091c8745c34", e._sentryDebugIdIdentifier = "sentry-dbid-43912113-9328-4069-8890-5091c8745c34");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-I1EwXf_t.js";
10
- import { a as t, r as n } from "./reset-all-settings-C2yTiJ1V.js";
11
- import { t as r } from "./jsx-runtime-BiSrB4Oo.js";
12
- import "./settings-Dr8bs0FB.js";
13
- import { t as i } from "./browser-BGtGwkTn.js";
14
- import { t as a } from "./add-debug-secret-listener-lYBneebf.js";
9
+ import { r as e } from "./rolldown-runtime-D_bOcK0P.js";
10
+ import { a as t, r as n } from "./reset-all-settings-C3UGYA7h.js";
11
+ import { t as r } from "./jsx-runtime-4SB5tKoZ.js";
12
+ import "./settings-CuvIoKLw.js";
13
+ import { t as i } from "./browser-BJI7T84p.js";
14
+ import { t as a } from "./add-debug-secret-listener-DrG0zrQz.js";
15
15
  //#region ../debug/src/lib/ui/render-debug-ui.tsx
16
16
  var o = /* @__PURE__ */ e(i(), 1), s = r(), c = !1;
17
17
  function l() {
@@ -26,7 +26,7 @@ function l() {
26
26
  }
27
27
  });
28
28
  let i = async (t) => {
29
- let { DebugUi: n } = await import("./debug-ui-DLxMK2XU.js"), { createRoot: i } = await import("./client-BE52OM0U.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
29
+ let { DebugUi: n } = await import("./debug-ui-vcgITEra.js"), { createRoot: i } = await import("./client-BKj8O-3N.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
30
30
  document.body.appendChild(a), i(a).render(/* @__PURE__ */ (0, s.jsx)(n, {
31
31
  useDebugButtonState: r.useState,
32
32
  open: t
@@ -1,14 +1,14 @@
1
1
  (function() {
2
2
  try {
3
3
  var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.10.1" };
4
+ e.SENTRY_RELEASE = { id: "3.10.2" };
5
5
  var t = new e.Error().stack;
6
6
  t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "d4febe97-784c-4cf8-93f1-f2e3b29f8347", e._sentryDebugIdIdentifier = "sentry-dbid-d4febe97-784c-4cf8-93f1-f2e3b29f8347");
7
7
  } catch {}
8
8
  })();
9
- import { r as e } from "./rolldown-runtime-I1EwXf_t.js";
10
- import { t } from "./react-BMPhuMz9.js";
11
- import { s as n } from "./store-CVdrQCza.js";
9
+ import { r as e } from "./rolldown-runtime-D_bOcK0P.js";
10
+ import { t } from "./react-938H1sny.js";
11
+ import { s as n } from "./store-g-LcmXc-.js";
12
12
  //#region src/utils/getRenderTargetFromRoot.ts
13
13
  var r = /* @__PURE__ */ e(t(), 1);
14
14
  function i(e) {
@@ -1 +1 @@
1
- import{jsx as J}from"react/jsx-runtime";import{degToRad as E}from"@expofp/geometry";import W from"color";import{runInAction as X}from"mobx";import{observer as H}from"mobx-react-lite";import{useCallback as P,useEffect as _,useMemo as d,useRef as p,useState as k}from"react";import K from"../../data";import{getLayerSvg as Z,svgArea as x}from"../../data/svg";import{createSceneDef as Q}from"../../renderer";import a,{uiState as g}from"../../store";import M from"../../tools/settings";import Y from"../Map/drawing/config/config-all";import{loadLayersImages as q}from"../Map/drawing/config/loadBoothsImages";import{useBuildRoute as ee}from"../Map/traffic/useBuildRoute";import{useManageTraffic as re}from"../Map/traffic/useManageTraffic";import oe from"./MaplibreWrapper";import{useCameraReactions as te}from"./useCameraReactions";import{useDimming as ne}from"./useDimming";import{useLayerVisibilitySync as ae}from"./useLayerVisibilitySync";import{useRendererEvents as ie}from"./useRendererEvents";import{useWayfindingAndMarkers as se}from"./useWayfindingAndMarkers";import{deriveGeoConfig as le,deriveVenueMapBounds as ce,getLocalRectGeoBounds as ue,getVisibleRectFitPadding as fe,INITIAL_FIT_ZOOM_ADJUSTMENT as me}from"./utils/geo-config";import{applyMapOptions as I,DEFAULT_MAP_OPTIONS as de,getTileSource as pe,MAP_2D_OPTIONS as ge}from"./utils/map-helpers";import{calculateTransformMatrix as ye}from"./utils/solver";const $="routes-api.expofp.com";function B(){X(()=>{a.layerStore.layers.forEach(i=>{i.configured=!1,i.children=[],i.loaded=!1}),a.layerStore.layersLoaded=!1})}function F(i,y){const s=[];for(const c of i.rollRegistry.invoke(y))Array.isArray(c)?s.push(...c):s.push(c);s.length&&i.update(...s)}const Re=H(function({viewMode:y}){const[s,c]=k(null),[T,h]=k(null),e=a.rendererService,D=p(null),l=p(null),R=p(null),L=p(null),r=d(()=>le(),[]),u=d(()=>r?{center:r.center,bearing:r.bearing,zoom:r.zoom,bounds:ue(x,r.gpsConfig),fitPadding:fe(0),zoomAdjustment:me}:null,[r]),v=d(()=>r?ye(r.gpsConfig,Z()?.getAttribute("units")):null,[r]),f=d(()=>({...y==="map2d"?ge:de,maxBounds:r?ce(r.gpsConfig):void 0}),[r,y]),O=p(f),j=d(()=>pe(),[]),{mapDimAnimatorRef:b,venueDimAnimatorRef:S,handleMapDimLayerReady:z}=ne(l,e);_(()=>{if(!r)return;let n=!1;B();const o=Y(e).then(t=>{if(n)return;const A=W(M.backgroundColor==="none"?"#ebebeb":M.backgroundColor).string(),V=Q(t,x,A);c(V)}).catch(t=>{n||console.warn("Maplibre scene configuration failed.",t)}),C=b.current,m=S.current;return()=>{n=!0,B();const t=D.current;o.finally(()=>e.disposeIfCurrent(t)),R.current?.(),R.current=null,D.current=null,l.current=null,L.current=null,h(null),C?.stop(),m?.stop(),g.sceneDefReady=!1}},[r,b,e,S]);const N=P((n,o,C,m)=>{D.current=n,l.current=o,L.current=m,h(n),e.attach(n,C,m),I(o,O.current),b.current?.setTarget(g.dimmed,{immediate:!0}),S.current?.setTarget(g.dimmed,{immediate:!0}),R.current?.();const t=()=>F(e,E(o.getBearing()));o.on("rotate",t),o.on("rotateend",t),R.current=()=>{o.off("rotate",t),o.off("rotateend",t)},q(e);const A=e.ptScaleRegistry.invoke(e.scale||1);A.length&&e.update(...A),F(e,E(o.getBearing())),a.layerStore.layersLoaded=!0,a.fp.onFpConfigured&&a.fp.onFpConfigured(),g.sceneDefReady=!0,m()},[e,b,S]);_(()=>{O.current=f,I(l.current,f,!0)},[f]),ie(T,e),se(T,e),ae(e,l,r),te(l,r),ee({enabled:a.layerStore.layersLoaded&&g.buildRoute,rendererService:e});const U=K.flags?.busRoutes??!1;re({permission:a.layerStore.layersLoaded&&U,rendererService:e,dataJsonUrl:`https://${$}/v1/routes?expo=${M.EXPO}`,websocketUrl:`wss://${$}/locations?expo=${M.EXPO}`});const w=P(n=>{console.warn("Maplibre map failed to load; falling back to floorplan mode.",n),a.maplibreStore.deactivateMaplibre()},[]);if(!r||!u||!v||!s)return null;const G=`${u.center.join(",")}:${u.bearing}:${u.zoom}`;return J(oe,{sceneDef:s,geoConfig:u,staticTransform:v,tileSource:j,mapOptions:f,onRendererReady:N,onMapDimLayerReady:z,onMapLoadError:w},G)});export default Re;
1
+ import{jsx as J}from"react/jsx-runtime";import{degToRad as _}from"@expofp/geometry";import W from"color";import{runInAction as H}from"mobx";import{observer as K}from"mobx-react-lite";import{useCallback as k,useEffect as I,useMemo as u,useRef as y,useState as F}from"react";import Z from"../../data";import{getLayerSvg as Q,svgArea as L,svgAreaExplicit as Y}from"../../data/svg";import{createSceneDef as q}from"../../renderer";import a,{uiState as R}from"../../store";import D from"../../tools/settings";import{resolveVenueFitRect as ee}from"../../utils/scene-bounds";import re from"../Map/drawing/config/config-all";import{loadLayersImages as oe}from"../Map/drawing/config/loadBoothsImages";import{useBuildRoute as te}from"../Map/traffic/useBuildRoute";import{useManageTraffic as ne}from"../Map/traffic/useManageTraffic";import ae from"./MaplibreWrapper";import{useCameraReactions as ie}from"./useCameraReactions";import{useDimming as se}from"./useDimming";import{useLayerVisibilitySync as le}from"./useLayerVisibilitySync";import{useRendererEvents as ce}from"./useRendererEvents";import{useWayfindingAndMarkers as ue}from"./useWayfindingAndMarkers";import{deriveGeoConfig as fe,getLocalRectGeoBounds as me,getVisibleRectFitPadding as pe,INITIAL_FIT_ZOOM_ADJUSTMENT as de}from"./utils/geo-config";import{applyMapOptions as $,DEFAULT_MAP_OPTIONS as ge,getTileSource as ye,MAP_2D_OPTIONS as Re}from"./utils/map-helpers";import{calculateTransformMatrix as be}from"./utils/solver";const w="routes-api.expofp.com";function j(){H(()=>{a.layerStore.layers.forEach(t=>{t.configured=!1,t.children=[],t.loaded=!1}),a.layerStore.layersLoaded=!1})}function z(t,l){const o=[];for(const f of t.rollRegistry.invoke(l))Array.isArray(f)?o.push(...f):o.push(f);o.length&&t.update(...o)}function Se(t){const l=Math.abs(t[0]??0),o=Math.hypot(t[0]??0,t[1]??0);return l<=0||o<=0?1:l/o}const Ae=K(function({viewMode:l}){const[o,f]=F(null),[T,O]=F(null),e=a.rendererService,h=y(null),c=y(null),b=y(null),x=y(null),r=u(()=>fe(),[]),E=u(()=>{const{rect:n}=ee({layerViewbox:a.layerStore.viewboxRectangle,explicitArea:Y?L:null,layerRectangle:a.layerStore.rectangle,sceneDef:o,svgArea:L});return n},[o]),m=u(()=>r?{center:r.center,bearing:r.bearing,zoom:r.zoom,bounds:me(E,r.gpsConfig),fitPadding:pe(0),zoomAdjustment:de}:null,[r,E]),p=u(()=>r?be(r.gpsConfig,Q()?.getAttribute("units")):null,[r]),d=u(()=>({...l==="map2d"?Re:ge}),[l]),P=y(d),B=u(()=>ye(),[]),{mapDimAnimatorRef:S,venueDimAnimatorRef:A,handleMapDimLayerReady:N}=se(c,e);I(()=>{if(!r)return;let n=!1;j();const i=re(e).then(s=>{if(n)return;const M=W(D.backgroundColor==="none"?"#ebebeb":D.backgroundColor).string(),C=q(s,L,M);f(C)}).catch(s=>{n||console.warn("Maplibre scene configuration failed.",s)}),v=S.current,g=A.current;return()=>{n=!0,j();const s=h.current;i.finally(()=>e.disposeIfCurrent(s)),b.current?.(),b.current=null,h.current=null,c.current=null,x.current=null,O(null),v?.stop(),g?.stop(),R.sceneDefReady=!1}},[r,S,e,A]);const U=k((n,i,v,g)=>{h.current=n,c.current=i,x.current=g,O(n),e.attach(n,v,g,p?Se(p):1),$(i,P.current),S.current?.setTarget(R.dimmed,{immediate:!0}),A.current?.setTarget(R.dimmed,{immediate:!0}),b.current?.();const s=()=>{const C=i.getBearing()-(r?.bearing??0);z(e,_(C))};i.on("rotate",s),i.on("rotateend",s),b.current=()=>{i.off("rotate",s),i.off("rotateend",s)},oe(e);const M=e.ptScaleRegistry.invoke(e.scale||1);M.length&&e.update(...M),z(e,_(i.getBearing()-(r?.bearing??0))),a.layerStore.layersLoaded=!0,a.fp.onFpConfigured&&a.fp.onFpConfigured(),R.sceneDefReady=!0,g()},[e,S,p,A]);I(()=>{P.current=d,$(c.current,d,!0)},[d]),ce(T,e),ue(T,e),le(e,c,r),ie(c,r,o),te({enabled:a.layerStore.layersLoaded&&R.buildRoute,rendererService:e});const V=Z.flags?.busRoutes??!1;ne({permission:a.layerStore.layersLoaded&&V,rendererService:e,dataJsonUrl:`https://${w}/v1/routes?expo=${D.EXPO}`,websocketUrl:`wss://${w}/locations?expo=${D.EXPO}`});const G=k(n=>{console.warn("Maplibre map failed to load; falling back to floorplan mode.",n),a.maplibreStore.deactivateMaplibre()},[]);if(!r||!m||!p||!o)return null;const X=`${m.center.join(",")}:${m.bearing}:${m.zoom}`;return J(ae,{sceneDef:o,geoConfig:m,staticTransform:p,tileSource:B,mapOptions:d,onRendererReady:U,onMapDimLayerReady:N,onMapLoadError:G},X)});export default Ae;
@@ -1 +1 @@
1
- import{jsx as T}from"react/jsx-runtime";import"maplibre-gl/dist/maplibre-gl.css";import{Renderer as Z}from"@expofp/renderer";import{addProtocol as B,Map as N}from"maplibre-gl";import{Protocol as G}from"pmtiles";import{useEffect as R,useRef as s}from"react";export const MAP_DIM_LAYER_ID="expofp-map-dim";const y="expofp-map-dim-source",U="3d-expofp";let g=null;const Y=["coalesce",["get","name:en"],["get","name_en"],["get","name:latin"],["get","name"]],k={type:"Feature",geometry:{type:"Polygon",coordinates:[[[-180,-85],[180,-85],[180,85],[-180,85],[-180,-85]]]},properties:{}};function S(e){if(!e||typeof e!="object")return!1;const r=e.length;if(typeof r!="number"||r<16)return!1;const o=e[0];return typeof o=="number"&&Number.isFinite(o)}function H(e){if(S(e))return Array.from(e);const o=e?.defaultProjectionData?.mainMatrix;return S(o)?Array.from(o):(console.warn("Maplibre custom layer received an unsupported projection matrix payload.",e),null)}function b(e){return typeof e=="string"?e.includes("name"):Array.isArray(e)?e.some(r=>b(r)):!e||typeof e!="object"?!1:Object.values(e).some(r=>b(r))}function J(e){return e.type!=="symbol"||!e.id||!e.layout?!1:b(e.layout["text-field"])}function V(e){const r=e.getStyle();for(const o of r.layers??[])J(o)&&e.setLayoutProperty(o.id,"text-field",Y)}function W(){if(!g){g=new G;try{B("pmtiles",g.tile)}catch(e){console.warn("Maplibre PMTiles protocol registration failed.",e)}}}export default function X({sceneDef:e,geoConfig:r,staticTransform:o,tileSource:D,mapOptions:E,onRendererReady:x,onMapDimLayerReady:L,onMapLoadError:M}){const f=s(null),P=s(null),c=s(null),h=s(x),_=s(L),j=s(M),O=s({sceneDef:e,geoConfig:r,staticTransform:o,tileSource:D,mapOptions:E});return R(()=>{h.current=x,_.current=L,j.current=M}),R(()=>{if(!f.current)return;const{sceneDef:d,geoConfig:n,staticTransform:I,tileSource:w,mapOptions:u}=O.current;let p=!1;const l={...d};l.rootLayer={...d.rootLayer};const C=d.rootLayer.children;l.rootLayer.children=C.filter(i=>i?.name?.toString().toLowerCase()!=="areamap"),l.background=void 0,l.staticTransform=I,W();const F=n.bounds?{bounds:n.bounds,fitBoundsOptions:{padding:n.fitPadding,bearing:n.bearing}}:{center:n.center,zoom:n.zoom},t=new N({container:f.current,style:w.style,...F,bearing:n.bearing,pitch:u?.pitch??30,maxPitch:u?.maxPitch??70,minZoom:u?.minZoom,maxZoom:u?.maxZoom,maxBounds:u?.maxBounds,canvasContextAttributes:{antialias:!0}});n.zoomAdjustment&&t.jumpTo({zoom:t.getZoom()+n.zoomAdjustment}),P.current=t,t.once("error",i=>{t.isStyleLoaded()||j.current?.(i?.error??i)});const z={id:U,type:"custom",renderingMode:"3d",onAdd(i,m){if(p)return;const a=new Z({canvas:t.getCanvas(),gl:m});if(p){a.dispose();return}a.init(l),c.current=a,h.current?.(a,t,l,()=>t.triggerRepaint())},render(i,m){if(!c.current||c.current.isDisposed)return;const a=H(m??i);a&&c.current.render(a)}},A=()=>{V(t),t.getSource(y)||t.addSource(y,{type:"geojson",data:k}),t.getLayer(MAP_DIM_LAYER_ID)||t.addLayer({id:MAP_DIM_LAYER_ID,type:"fill",source:y,paint:{"fill-color":"#000000","fill-opacity":0,"fill-opacity-transition":{duration:0,delay:0}}}),_.current?.(t),t.addLayer(z)};return t.on("style.load",A),()=>{p=!0,t.off("style.load",A),c.current?.dispose(),c.current=null,t.remove(),P.current=null}},[]),T("div",{ref:f,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"}})}
1
+ import{jsx as Z}from"react/jsx-runtime";import"maplibre-gl/dist/maplibre-gl.css";import{Renderer as B}from"@expofp/renderer";import{addProtocol as N,Map as U}from"maplibre-gl";import{Protocol as G}from"pmtiles";import{useEffect as R,useRef as c}from"react";export const MAP_DIM_LAYER_ID="expofp-map-dim";const y="expofp-map-dim-source",Y="3d-expofp";let g=null;const k=["coalesce",["get","name:en"],["get","name_en"],["get","name:latin"],["get","name"]],H={type:"Feature",geometry:{type:"Polygon",coordinates:[[[-180,-85],[180,-85],[180,85],[-180,85],[-180,-85]]]},properties:{}};function D(e){if(!e||typeof e!="object")return!1;const r=e.length;if(typeof r!="number"||r<16)return!1;const o=e[0];return typeof o=="number"&&Number.isFinite(o)}function J(e){if(D(e))return Array.from(e);const o=e?.defaultProjectionData?.mainMatrix;return D(o)?Array.from(o):(console.warn("Maplibre custom layer received an unsupported projection matrix payload.",e),null)}function b(e){return typeof e=="string"?e.includes("name"):Array.isArray(e)?e.some(r=>b(r)):!e||typeof e!="object"?!1:Object.values(e).some(r=>b(r))}function V(e){return e.type!=="symbol"||!e.id||!e.layout?!1:b(e.layout["text-field"])}function W(e){const r=e.getStyle();for(const o of r.layers??[])V(o)&&e.setLayoutProperty(o.id,"text-field",k)}function X(){if(!g){g=new G;try{N("pmtiles",g.tile)}catch(e){console.warn("Maplibre PMTiles protocol registration failed.",e)}}}export default function q({sceneDef:e,geoConfig:r,staticTransform:o,tileSource:E,mapOptions:I,onRendererReady:h,onMapDimLayerReady:x,onMapLoadError:M}){const d=c(null),L=c(null),l=c(null),P=c(h),_=c(x),A=c(M),w=c({sceneDef:e,geoConfig:r,staticTransform:o,tileSource:E,mapOptions:I});return R(()=>{P.current=h,_.current=x,A.current=M}),R(()=>{if(!d.current)return;const{sceneDef:m,geoConfig:n,staticTransform:O,tileSource:C,mapOptions:f}=w.current;let p=!1;const u={...m};u.rootLayer={...m.rootLayer};const F=m.rootLayer.children;u.rootLayer.children=F.filter(i=>i?.name?.toString().toLowerCase()!=="areamap"),u.background=void 0,u.staticTransform=O,X();const z=n.bounds?{bounds:n.bounds,fitBoundsOptions:{padding:n.fitPadding,bearing:n.bearing}}:{center:n.center,zoom:n.zoom},t=new U({container:d.current,style:C.style,...z,bearing:n.bearing,pitch:f?.pitch??30,maxPitch:f?.maxPitch??70,minZoom:f?.minZoom,maxZoom:f?.maxZoom,maxBounds:f?.maxBounds,bearingSnap:0,canvasContextAttributes:{antialias:!0}});n.zoomAdjustment&&t.jumpTo({zoom:t.getZoom()+n.zoomAdjustment}),L.current=t,t.once("error",i=>{t.isStyleLoaded()||A.current?.(i?.error??i)});const j=i=>{const a=i?.id;!a||t.hasImage(a)||t.addImage(a,{width:1,height:1,data:new Uint8Array(4)})};t.on("styleimagemissing",j);const T={id:Y,type:"custom",renderingMode:"3d",onAdd(i,a){if(p)return;const s=new B({canvas:t.getCanvas(),gl:a});if(p){s.dispose();return}s.init(u),l.current=s,P.current?.(s,t,u,()=>t.triggerRepaint())},render(i,a){if(!l.current||l.current.isDisposed)return;const s=J(a??i);s&&l.current.render(s)}},S=()=>{W(t),t.getSource(y)||t.addSource(y,{type:"geojson",data:H}),t.getLayer(MAP_DIM_LAYER_ID)||t.addLayer({id:MAP_DIM_LAYER_ID,type:"fill",source:y,paint:{"fill-color":"#000000","fill-opacity":0,"fill-opacity-transition":{duration:0,delay:0}}}),_.current?.(t),t.addLayer(T)};return t.on("style.load",S),()=>{p=!0,t.off("style.load",S),t.off("styleimagemissing",j),l.current?.dispose(),l.current=null,t.remove(),L.current=null}},[]),Z("div",{ref:d,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"}})}
@@ -0,0 +1,3 @@
1
+ import type { StyleSpecification } from 'maplibre-gl';
2
+ export declare const mapboxStreetsBrightStyle: StyleSpecification;
3
+ //# sourceMappingURL=mapbox-streets-bright.d.ts.map
@@ -0,0 +1,16 @@
1
+ export const mapboxStreetsBrightStyle={version:8,sources:{ne2_shaded:{maxzoom:6,tileSize:256,tiles:["https://tiles.openfreemap.org/natural_earth/ne2sr/{z}/{x}/{y}.png"],type:"raster"},openmaptiles:{type:"vector",url:"https://tiles.openfreemap.org/planet"}},sprite:"https://tiles.openfreemap.org/sprites/ofm_f384/ofm",glyphs:"https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf",layers:[{id:"background",type:"background",paint:{"background-color":["interpolate",["linear"],["zoom"],9,"hsl(20, 20%, 95%)",11,"hsl(20, 18%, 91%)"]}},{id:"landcover-glacier",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","subclass"],"glacier"],paint:{"fill-color":"#fff","fill-opacity":["interpolate",["linear"],["zoom"],0,.9,10,.3]}},{id:"landuse-residential",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["match",["get","class"],["neighbourhood","residential"],!0,!1],paint:{"fill-color":["interpolate",["linear"],["zoom"],12,"hsla(30,19%,90%,0.4)",16,"hsla(30,19%,90%,0.2)"]}},{id:"landuse-suburb",type:"fill",source:"openmaptiles","source-layer":"landuse",maxzoom:10,filter:["==",["get","class"],"suburb"],paint:{"fill-color":["interpolate",["linear"],["zoom"],8,"hsla(30,19%,90%,0.4)",10,"hsla(30,19%,90%,0.0)"]}},{id:"landuse-commercial",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["all",["match",["geometry-type"],["MultiPolygon","Polygon"],!0,!1],["==",["get","class"],"commercial"]],paint:{"fill-color":"hsla(0,60%,87%,0.23)"}},{id:"landuse-industrial",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["all",["match",["geometry-type"],["MultiPolygon","Polygon"],!0,!1],["match",["get","class"],["dam","garages","industrial"],!0,!1]],paint:{"fill-color":"hsla(49,100%,88%,0.34)"}},{id:"landuse-cemetery",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"cemetery"],paint:{"fill-color":"#e0e4dd"}},{id:"landuse-hospital",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"hospital"],paint:{"fill-color":"#fde"}},{id:"landuse-school",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"school"],paint:{"fill-color":"#f0e8f8"}},{id:"landuse-railway",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"railway"],paint:{"fill-color":"hsla(30,19%,90%,0.4)"}},{id:"park",type:"fill",source:"openmaptiles","source-layer":"park",filter:["match",["geometry-type"],["MultiPolygon","Polygon"],!0,!1],paint:{"fill-color":"hsl(110, 52%, 84%)","fill-opacity":["interpolate",["exponential",1.8],["zoom"],9,.5,12,.2]}},{id:"landcover-wood",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","class"],"wood"],paint:{"fill-antialias":["step",["zoom"],!1,9,!0],"fill-color":"hsla(115, 55%, 74%, 0.7)","fill-opacity":.1,"fill-outline-color":"hsla(0,0%,0%,0.03)"}},{id:"landcover-grass",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","class"],"grass"],paint:{"fill-color":"hsl(110, 52%, 84%)","fill-opacity":1}},{id:"landcover-grass-park",type:"fill",source:"openmaptiles","source-layer":"park",filter:["==",["get","class"],"public_park"],paint:{"fill-color":"hsl(110, 52%, 84%)","fill-opacity":.8}},{id:"waterway_tunnel",type:"line",source:"openmaptiles","source-layer":"waterway",minzoom:14,filter:["all",["match",["get","class"],["canal","river","stream"],!0,!1],["==",["get","brunnel"],"tunnel"]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-dasharray":[2,4],"line-width":["interpolate",["exponential",1.3],["zoom"],13,.5,20,6]}},{id:"waterway-other",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["all",["match",["get","class"],["canal","river","stream"],!1,!0],["==",["get","intermittent"],0]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-width":["interpolate",["exponential",1.3],["zoom"],13,.5,20,2]}},{id:"waterway-other-intermittent",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["all",["match",["get","class"],["canal","river","stream"],!1,!0],["==",["get","intermittent"],1]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-dasharray":[4,3],"line-width":["interpolate",["exponential",1.3],["zoom"],13,.5,20,2]}},{id:"waterway-stream-canal",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["all",["match",["get","class"],["canal","stream"],!0,!1],["!=",["get","brunnel"],"tunnel"],["==",["get","intermittent"],0]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-width":["interpolate",["exponential",1.3],["zoom"],13,.5,20,6]}},{id:"waterway-stream-canal-intermittent",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["all",["match",["get","class"],["canal","stream"],!0,!1],["!=",["get","brunnel"],"tunnel"],["==",["get","intermittent"],1]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-dasharray":[4,3],"line-width":["interpolate",["exponential",1.3],["zoom"],13,.5,20,6]}},{id:"waterway-river",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["all",["==",["get","class"],"river"],["!=",["get","brunnel"],"tunnel"],["!=",["get","intermittent"],1]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-width":["interpolate",["exponential",1.2],["zoom"],10,.8,20,6]}},{id:"waterway-river-intermittent",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["all",["==",["get","class"],"river"],["!=",["get","brunnel"],"tunnel"],["==",["get","intermittent"],1]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-dasharray":[3,2.5],"line-width":["interpolate",["exponential",1.2],["zoom"],10,.8,20,6]}},{id:"water",type:"fill",source:"openmaptiles","source-layer":"water",filter:["all",["!=",["get","intermittent"],1],["!=",["get","brunnel"],"tunnel"]],paint:{"fill-color":"hsl(200, 100%, 80%)"}},{id:"water-intermittent",type:"fill",source:"openmaptiles","source-layer":"water",filter:["==",["get","intermittent"],1],paint:{"fill-color":"hsl(200, 80%, 88%)","fill-opacity":.7}},{id:"landcover-ice-shelf",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","subclass"],"ice_shelf"],paint:{"fill-color":"#fff","fill-opacity":["interpolate",["linear"],["zoom"],0,.9,10,.3]}},{id:"landcover-sand",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","class"],"sand"],paint:{"fill-color":"rgba(245, 238, 188, 1)","fill-opacity":1}},{id:"building",type:"fill",source:"openmaptiles","source-layer":"building",paint:{"fill-antialias":!0,"fill-color":"hsl(20, 15%, 85%)"}},{id:"building-top",type:"fill",source:"openmaptiles","source-layer":"building",paint:{"fill-color":"hsl(20, 15%, 85%)","fill-opacity":["interpolate",["linear"],["zoom"],13,0,16,1],"fill-outline-color":"#dfdbd7","fill-translate":["interpolate",["linear"],["zoom"],14,["literal",[0,0]],16,["literal",[-2,-2]]]}},{id:"tunnel-service-track-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["service","track"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-width":["interpolate",["exponential",1.2],["zoom"],15,1,16,4,20,11]}},{id:"tunnel-motorway-link-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"motorway"],["==",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"tunnel-minor-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"minor"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-opacity":["interpolate",["linear"],["zoom"],12,0,12.5,1],"line-width":["interpolate",["exponential",1.2],["zoom"],12,.5,13,1,14,4,20,15]}},{id:"tunnel-link-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["primary","secondary","tertiary","trunk"],!0,!1],["==",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"tunnel-secondary-tertiary-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["secondary","tertiary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],8,1.5,20,17]}},{id:"tunnel-trunk-primary-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["primary","trunk"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.6,7,1.5,20,22]}},{id:"tunnel-motorway-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"motorway"],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.6,7,1.5,20,22]}},{id:"tunnel-path",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","brunnel"],"tunnel"],["==",["get","class"],"path"]],paint:{"line-color":"#cba","line-dasharray":[1.5,.75],"line-width":["interpolate",["exponential",1.2],["zoom"],15,1.2,20,4]}},{id:"tunnel-motorway-link",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"motorway"],["==",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"rgba(244, 209, 158, 1)","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"tunnel-service-track",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["service","track"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#fff","line-width":["interpolate",["exponential",1.2],["zoom"],15.5,0,16,2,20,7.5]}},{id:"tunnel-link",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["primary","secondary","tertiary","trunk"],!0,!1],["==",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(45, 90%, 72%)","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"tunnel-minor",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"minor"]],layout:{"line-join":"round"},paint:{"line-color":"#fff","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],13.5,0,14,2.5,20,11.5]}},{id:"tunnel-secondary-tertiary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["secondary","tertiary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,10]}},{id:"tunnel-trunk-primary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["primary","trunk"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,18]}},{id:"tunnel-motorway",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"motorway"],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"#ffdaa6","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,18]}},{id:"tunnel-railway",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"rail"]],paint:{"line-color":"#bbb","line-dasharray":[2,2],"line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"ferry",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["match",["get","class"],["ferry"],!0,!1],layout:{"line-join":"round"},paint:{"line-color":"rgba(108, 159, 182, 1)","line-dasharray":[2,2],"line-width":1.1}},{id:"aeroway-taxiway-casing",type:"line",source:"openmaptiles","source-layer":"aeroway",minzoom:12,filter:["match",["get","class"],["taxiway"],!0,!1],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"rgba(153, 153, 153, 1)","line-opacity":1,"line-width":["interpolate",["exponential",1.5],["zoom"],11,2,17,12]}},{id:"aeroway-runway-casing",type:"line",source:"openmaptiles","source-layer":"aeroway",minzoom:12,filter:["match",["get","class"],["runway"],!0,!1],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"rgba(153, 153, 153, 1)","line-opacity":1,"line-width":["interpolate",["exponential",1.5],["zoom"],11,5,17,55]}},{id:"aeroway-area",type:"fill",source:"openmaptiles","source-layer":"aeroway",minzoom:4,filter:["all",["match",["geometry-type"],["MultiPolygon","Polygon"],!0,!1],["match",["get","class"],["runway","taxiway"],!0,!1]],paint:{"fill-color":"rgba(255, 255, 255, 1)","fill-opacity":["interpolate",["linear"],["zoom"],13,0,14,1]}},{id:"aeroway-taxiway",type:"line",source:"openmaptiles","source-layer":"aeroway",minzoom:4,filter:["all",["match",["get","class"],["taxiway"],!0,!1],["match",["geometry-type"],["LineString","MultiLineString"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"rgba(255, 255, 255, 1)","line-opacity":["interpolate",["linear"],["zoom"],11,0,12,1],"line-width":["interpolate",["exponential",1.5],["zoom"],11,1,17,10]}},{id:"aeroway-runway",type:"line",source:"openmaptiles","source-layer":"aeroway",minzoom:4,filter:["all",["match",["get","class"],["runway"],!0,!1],["match",["geometry-type"],["LineString","MultiLineString"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"rgba(255, 255, 255, 1)","line-opacity":["interpolate",["linear"],["zoom"],11,0,12,1],"line-width":["interpolate",["exponential",1.5],["zoom"],11,4,17,50]}},{id:"road_area_pier",type:"fill",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["MultiPolygon","Polygon"],!0,!1],["==",["get","class"],"pier"]],paint:{"fill-antialias":!0,"fill-color":"#f8f4f0"}},{id:"road_pier",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","class"],["pier"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#f8f4f0","line-width":["interpolate",["exponential",1.2],["zoom"],15,1,17,4]}},{id:"highway-area",type:"fill",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["MultiPolygon","Polygon"],!0,!1],["match",["get","class"],["pier"],!1,!0]],paint:{"fill-antialias":!1,"fill-color":"hsla(0,0%,89%,0.56)","fill-opacity":.9,"fill-outline-color":"#cfcdca"}},{id:"highway-motorway-link-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"motorway"],["==",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"highway-link-casing",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["primary","secondary","tertiary","trunk"],!0,!1],["==",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"highway-minor-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["!=",["get","brunnel"],"tunnel"],["match",["get","class"],["minor","service","track"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":["interpolate",["linear"],["zoom"],12,0,12.5,1],"line-width":["interpolate",["exponential",1.2],["zoom"],12,.5,13,1,14,4,20,15]}},{id:"highway-secondary-tertiary-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["secondary","tertiary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-cap":"butt","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],8,1.5,20,17]}},{id:"highway-primary-casing",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:5,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["primary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-cap":"butt","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":["interpolate",["linear"],["zoom"],7,0,8,1],"line-width":["interpolate",["exponential",1.2],["zoom"],7,0,8,.6,9,1.5,20,22]}},{id:"highway-trunk-casing",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:5,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["trunk"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-cap":"butt","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":["interpolate",["linear"],["zoom"],5,0,6,1],"line-width":["interpolate",["exponential",1.2],["zoom"],5,0,6,.6,7,1.5,20,22]}},{id:"highway-motorway-casing",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:4,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"motorway"],["!=",["get","ramp"],1]],layout:{"line-cap":"butt","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":["interpolate",["linear"],["zoom"],4,0,5,1],"line-width":["interpolate",["exponential",1.2],["zoom"],4,0,5,.4,6,.6,7,1.5,20,22]}},{id:"highway-path",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"path"]],paint:{"line-color":"#cba","line-dasharray":[1.5,.75],"line-width":["interpolate",["exponential",1.2],["zoom"],15,1.2,20,4]}},{id:"highway-motorway-link",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:12,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"motorway"],["==",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fc8","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"highway-link",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["primary","secondary","tertiary","trunk"],!0,!1],["==",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(45, 90%, 72%)","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"highway-minor",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["!=",["get","brunnel"],"tunnel"],["match",["get","class"],["minor","service","track"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fff","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],13.5,0,14,2.5,20,11.5]}},{id:"highway-secondary-tertiary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["secondary","tertiary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,8,.5,20,13]}},{id:"highway-primary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["primary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],8.5,0,9,.5,20,18]}},{id:"highway-trunk",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["trunk"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,18]}},{id:"highway-motorway",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:5,filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"motorway"],["!=",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fc8","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,18]}},{id:"railway-transit",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","class"],"transit"],["match",["get","brunnel"],["tunnel"],!1,!0]],paint:{"line-color":"hsla(0,0%,73%,0.77)","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,20,1]}},{id:"railway-transit-hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","class"],"transit"],["match",["get","brunnel"],["tunnel"],!1,!0]],paint:{"line-color":"hsla(0,0%,73%,0.68)","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,2,20,6]}},{id:"railway-service",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","class"],"rail"],["has","service"]],paint:{"line-color":"hsla(0,0%,73%,0.77)","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,20,1]}},{id:"railway-service-hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","class"],"rail"],["has","service"]],paint:{"line-color":"hsla(0,0%,73%,0.68)","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,2,20,6]}},{id:"railway",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["!",["has","service"]],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"rail"]],paint:{"line-color":"#bbb","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"railway-hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["!",["has","service"]],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"rail"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,3,20,8]}},{id:"bridge-motorway-link-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["==",["get","class"],"motorway"],["==",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,19]}},{id:"bridge-link-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["primary","secondary","tertiary","trunk"],!0,!1],["==",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,19]}},{id:"bridge-secondary-tertiary-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["secondary","tertiary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,7,.6,8,1.5,20,21]}},{id:"bridge-trunk-primary-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["primary","trunk"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.6,7,1.5,20,26]}},{id:"bridge-motorway-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["==",["get","class"],"motorway"],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.6,7,1.5,20,26]}},{id:"bridge-minor-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","brunnel"],"bridge"],["match",["get","class"],["minor","service","track"],!0,!1]],layout:{"line-cap":"butt","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":["interpolate",["linear"],["zoom"],12,0,12.5,1],"line-width":["interpolate",["exponential",1.2],["zoom"],12,.5,13,1,14,6,20,24]}},{id:"bridge-path-casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","brunnel"],"bridge"],["==",["get","class"],"path"]],paint:{"line-color":"#f8f4f0","line-width":["interpolate",["exponential",1.2],["zoom"],15,1.2,20,18]}},{id:"bridge-path",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","brunnel"],"bridge"],["==",["get","class"],"path"]],paint:{"line-color":"#cba","line-dasharray":[1.5,.75],"line-width":["interpolate",["exponential",1.2],["zoom"],15,1.2,20,4]}},{id:"bridge-motorway-link",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["==",["get","class"],"motorway"],["==",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"#fc8","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"bridge-link",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["primary","secondary","tertiary","trunk"],!0,!1],["==",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(45, 90%, 72%)","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"bridge-minor",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","brunnel"],"bridge"],["match",["get","class"],["minor","service","track"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fff","line-opacity":1,"line-width":["interpolate",["exponential",1.2],["zoom"],13.5,0,14,2.5,20,11.5]}},{id:"bridge-secondary-tertiary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["secondary","tertiary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,8,.5,20,13]}},{id:"bridge-trunk-primary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["primary","trunk"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,18]}},{id:"bridge-motorway",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["==",["get","class"],"motorway"],["!=",["get","ramp"],1]],layout:{"line-join":"round"},paint:{"line-color":"#fc8","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,18]}},{id:"bridge-railway",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["==",["get","class"],"rail"]],paint:{"line-color":"#bbb","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"bridge-railway-hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["==",["get","class"],"rail"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,3,20,8]}},{id:"cablecar",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["==",["get","subclass"],"cable_car"],layout:{"line-cap":"round"},paint:{"line-color":"hsl(0,0%,70%)","line-width":["interpolate",["linear"],["zoom"],11,1,19,2.5]}},{id:"cablecar-dash",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["==",["get","subclass"],"cable_car"],layout:{"line-cap":"round"},paint:{"line-color":"hsl(0,0%,70%)","line-dasharray":[2,3],"line-width":["interpolate",["linear"],["zoom"],11,3,19,5.5]}},{id:"boundary_3",type:"line",source:"openmaptiles","source-layer":"boundary",minzoom:5,filter:["all",["all",["has","admin_level"],[">=",["get","admin_level"],3]],["all",["has","admin_level"],["<=",["get","admin_level"],6]],["!=",["get","maritime"],1],["!=",["get","disputed"],1],["!",["has","claimed_by"]]],paint:{"line-color":"hsl(240, 40%, 72%)","line-dasharray":[1,1],"line-width":["interpolate",["linear",1],["zoom"],7,1,11,2]}},{id:"boundary_2",type:"line",source:"openmaptiles","source-layer":"boundary",filter:["all",["==",["get","admin_level"],2],["!=",["get","maritime"],1],["!=",["get","disputed"],1],["!",["has","claimed_by"]]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(240, 50%, 60%)","line-opacity":["interpolate",["linear"],["zoom"],0,.4,4,1],"line-width":["interpolate",["linear"],["zoom"],3,1,5,1.2,12,3]}},{id:"boundary_disputed",type:"line",source:"openmaptiles","source-layer":"boundary",filter:["all",["!=",["get","maritime"],1],["==",["get","disputed"],1]],paint:{"line-color":"hsl(240, 50%, 60%)","line-dasharray":[1,2],"line-width":["interpolate",["linear"],["zoom"],3,1,5,1.2,12,3]}},{id:"road_oneway",type:"symbol",source:"openmaptiles","source-layer":"transportation",minzoom:15,filter:["all",["==",["get","oneway"],1],["match",["get","class"],["minor","motorway","primary","secondary","service","tertiary","trunk"],!0,!1]],layout:{"icon-image":"oneway","icon-padding":2,"icon-rotate":90,"icon-rotation-alignment":"map","icon-size":["interpolate",["linear"],["zoom"],15,.5,19,1],"symbol-placement":"line","symbol-spacing":75},paint:{"icon-opacity":.5}},{id:"road_oneway_opposite",type:"symbol",source:"openmaptiles","source-layer":"transportation",minzoom:15,filter:["all",["==",["get","oneway"],-1],["match",["get","class"],["minor","motorway","primary","secondary","service","tertiary","trunk"],!0,!1]],layout:{"icon-image":"oneway","icon-padding":2,"icon-rotate":-90,"icon-rotation-alignment":"map","icon-size":["interpolate",["linear"],["zoom"],15,.5,19,1],"symbol-placement":"line","symbol-spacing":75},paint:{"icon-opacity":.5}},{id:"waterway_line_label",type:"symbol",source:"openmaptiles","source-layer":"waterway",minzoom:10,filter:["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],layout:{"symbol-placement":"line","symbol-spacing":350,"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.2,"text-max-width":5,"text-size":14},paint:{"text-color":"#74aee9","text-halo-color":"rgba(255,255,255,0.7)","text-halo-width":1.5}},{id:"water_name_point_label",type:"symbol",source:"openmaptiles","source-layer":"water_name",filter:["match",["geometry-type"],["MultiPoint","Point"],!0,!1],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
2
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.2,"text-max-width":5,"text-size":["interpolate",["linear"],["zoom"],0,10,8,14]},paint:{"text-color":"#495e91","text-halo-color":"rgba(255,255,255,0.7)","text-halo-width":1.5}},{id:"water_name_line_label",type:"symbol",source:"openmaptiles","source-layer":"water_name",filter:["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],layout:{"symbol-placement":"line","symbol-spacing":350,"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.2,"text-max-width":5,"text-size":14},paint:{"text-color":"#495e91","text-halo-color":"rgba(255,255,255,0.7)","text-halo-width":1.5}},{id:"poi_r20",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:17,filter:["all",["match",["geometry-type"],["MultiPoint","Point"],!0,!1],["all",["has","rank"],[">=",["get","rank"],20]]],layout:{"icon-image":["match",["get","subclass"],["florist","furniture"],["get","subclass"],["get","class"]],"text-anchor":"top","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
3
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-max-width":9,"text-offset":[0,.6],"text-size":12},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"poi_r7",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:16,filter:["all",["match",["geometry-type"],["MultiPoint","Point"],!0,!1],["all",["has","rank"],[">=",["get","rank"],7]],["all",["has","rank"],["<",["get","rank"],20]]],layout:{"icon-image":["match",["get","subclass"],["florist","furniture"],["get","subclass"],["get","class"]],"text-anchor":"top","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
4
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-max-width":9,"text-offset":[0,.6],"text-size":12},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"poi_r1",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:15,filter:["all",["match",["geometry-type"],["MultiPoint","Point"],!0,!1],["all",["has","rank"],[">=",["get","rank"],1]],["all",["has","rank"],["<",["get","rank"],7]]],layout:{"icon-image":["match",["get","subclass"],["florist","furniture"],["get","subclass"],["get","class"]],"text-anchor":"top","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
5
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-max-width":9,"text-offset":[0,.6],"text-size":12},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"poi_transit",type:"symbol",source:"openmaptiles","source-layer":"poi",filter:["match",["get","class"],["airport","bus","rail"],!0,!1],layout:{"icon-image":["to-string",["get","class"]],"icon-size":.7,"text-anchor":"left","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
6
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-max-width":9,"text-offset":[.9,0],"text-size":12},paint:{"text-color":"#2e5a80","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"highway-name-path",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:15.5,filter:["==",["get","class"],"path"],layout:{"symbol-placement":"line","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"map","text-size":["interpolate",["linear"],["zoom"],13,12,14,13]},paint:{"text-color":"hsl(30,23%,62%)","text-halo-color":"#f8f4f0","text-halo-width":.5}},{id:"highway-name-minor",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:15,filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","class"],["minor","service","track"],!0,!1]],layout:{"symbol-placement":"line","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"map","text-size":["interpolate",["linear"],["zoom"],13,12,14,13]},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-width":1}},{id:"highway-name-major",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:12.2,filter:["match",["get","class"],["primary","secondary","tertiary","trunk"],!0,!1],layout:{"symbol-placement":"line","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"map","text-size":["interpolate",["linear"],["zoom"],13,12,14,13]},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-width":1}},{id:"highway-shield-non-us",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:8,filter:["all",["all",["has","ref_length"],["<=",["get","ref_length"],6]],["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","network"],["us-highway","us-interstate","us-state"],!1,!0]],layout:{"icon-image":["concat","road_",["get","ref_length"]],"icon-rotation-alignment":"viewport","icon-size":1,"symbol-placement":["step",["zoom"],"point",11,"line"],"symbol-spacing":200,"text-field":["to-string",["get","ref"]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"viewport","text-size":10}},{id:"highway-shield-us-interstate",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:7,filter:["all",["all",["has","ref_length"],["<=",["get","ref_length"],6]],["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","network"],["us-interstate"],!0,!1]],layout:{"icon-image":["concat",["get","network"],"_",["get","ref_length"]],"icon-rotation-alignment":"viewport","icon-size":1,"symbol-placement":["step",["zoom"],"point",7,"line",8,"line"],"symbol-spacing":200,"text-field":["to-string",["get","ref"]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"viewport","text-size":10}},{id:"road_shield_us",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:9,filter:["all",["all",["has","ref_length"],["<=",["get","ref_length"],6]],["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","network"],["us-highway","us-state"],!0,!1]],layout:{"icon-image":["concat",["get","network"],"_",["get","ref_length"]],"icon-rotation-alignment":"viewport","icon-size":1,"symbol-placement":["step",["zoom"],"point",11,"line"],"symbol-spacing":200,"text-field":["to-string",["get","ref"]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"viewport","text-size":10}},{id:"airport",type:"symbol",source:"openmaptiles","source-layer":"aerodrome_label",minzoom:10,filter:["all",["has","iata"]],layout:{"icon-image":"airport_11","icon-size":1,"text-anchor":"top","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
7
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-max-width":9,"text-offset":[0,.6],"text-optional":!0,"text-padding":2,"text-size":12},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"label_other",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:8,filter:["match",["get","class"],["city","continent","country","state","town","village"],!1,!0],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
8
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.1,"text-max-width":9,"text-size":["interpolate",["linear"],["zoom"],8,9,12,10],"text-transform":"uppercase"},paint:{"text-color":"#333","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_village",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:9,filter:["==",["get","class"],"village"],layout:{"icon-allow-overlap":!0,"icon-image":["step",["zoom"],"circle_11_black",10,""],"icon-optional":!1,"icon-size":.2,"text-anchor":"bottom","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
9
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-max-width":8,"text-size":["interpolate",["exponential",1.2],["zoom"],7,10,11,12]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_town",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:6,filter:["==",["get","class"],"town"],layout:{"icon-allow-overlap":!0,"icon-image":["step",["zoom"],"circle_11_black",10,""],"icon-optional":!1,"icon-size":.2,"text-anchor":"bottom","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
10
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-max-width":8,"text-size":["interpolate",["exponential",1.2],["zoom"],7,12,11,14]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_state",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:5,maxzoom:8,filter:["==",["get","class"],"state"],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
11
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.2,"text-max-width":9,"text-size":["interpolate",["linear"],["zoom"],5,10,8,14],"text-transform":"uppercase"},paint:{"text-color":"#333","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_city",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:3,filter:["all",["==",["get","class"],"city"],["!=",["get","capital"],2]],layout:{"icon-allow-overlap":!0,"icon-image":["step",["zoom"],"circle_11_black",9,""],"icon-optional":!1,"icon-size":.4,"text-anchor":"bottom","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
12
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-max-width":8,"text-offset":[0,-.1],"text-size":["interpolate",["exponential",1.2],["zoom"],4,11,7,13,11,18]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_city_capital",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:3,filter:["all",["==",["get","class"],"city"],["==",["get","capital"],2]],layout:{"icon-allow-overlap":!0,"icon-image":["step",["zoom"],"circle_11_black",9,""],"icon-optional":!1,"icon-size":.5,"text-anchor":"bottom","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
13
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Bold"],"text-max-width":8,"text-offset":[0,-.2],"text-size":["interpolate",["exponential",1.2],["zoom"],4,12,7,14,11,20]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_country_3",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:2,maxzoom:9,filter:["all",["==",["get","class"],"country"],["all",["has","rank"],[">=",["get","rank"],3]]],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
14
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Bold"],"text-max-width":6.25,"text-size":["interpolate",["linear"],["zoom"],3,9,7,17]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_country_2",type:"symbol",source:"openmaptiles","source-layer":"place",maxzoom:9,filter:["all",["==",["get","class"],"country"],["==",["get","rank"],2]],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
15
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Bold"],"text-max-width":6.25,"text-size":["interpolate",["linear"],["zoom"],2,9,5,17]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_country_1",type:"symbol",source:"openmaptiles","source-layer":"place",maxzoom:9,filter:["all",["==",["get","class"],"country"],["==",["get","rank"],1]],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
16
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Bold"],"text-max-width":6.25,"text-size":["interpolate",["linear"],["zoom"],1,9,4,17]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}}],name:"ExpoFP Streets Bright (Mapbox-like)",metadata:{"expofp:base":"OpenFreeMap Bright (CC0)","expofp:tuned-to":"mapbox://styles/mapbox/streets-v12 palette"}};
@@ -0,0 +1,3 @@
1
+ import type { StyleSpecification } from 'maplibre-gl';
2
+ export declare const mapboxStreetsStyle: StyleSpecification;
3
+ //# sourceMappingURL=mapbox-streets.d.ts.map
@@ -0,0 +1,16 @@
1
+ export const mapboxStreetsStyle={version:8,sources:{ne2_shaded:{maxzoom:6,tileSize:256,tiles:["https://tiles.openfreemap.org/natural_earth/ne2sr/{z}/{x}/{y}.png"],type:"raster"},openmaptiles:{type:"vector",url:"https://tiles.openfreemap.org/planet"}},sprite:"https://tiles.openfreemap.org/sprites/ofm_f384/ofm",glyphs:"https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf",layers:[{id:"background",type:"background",paint:{"background-color":["interpolate",["linear"],["zoom"],9,"hsl(20, 20%, 95%)",11,"hsl(20, 18%, 91%)"]}},{id:"natural_earth",type:"raster",source:"ne2_shaded",maxzoom:7,paint:{"raster-opacity":["interpolate",["exponential",1.5],["zoom"],0,.6,6,.1]}},{id:"park",type:"fill",source:"openmaptiles","source-layer":"park",paint:{"fill-color":"hsl(110, 52%, 84%)","fill-opacity":.7,"fill-outline-color":"rgba(95, 208, 100, 1)"}},{id:"park_outline",type:"line",source:"openmaptiles","source-layer":"park",paint:{"line-color":"rgba(228, 241, 215, 1)","line-dasharray":[1,1.5]}},{id:"landuse_residential",type:"fill",source:"openmaptiles","source-layer":"landuse",maxzoom:12,filter:["==",["get","class"],"residential"],paint:{"fill-color":["interpolate",["linear"],["zoom"],9,"hsla(0,3%,85%,0.84)",12,"hsla(35,57%,88%,0.49)"]}},{id:"landcover_wood",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","class"],"wood"],paint:{"fill-antialias":!1,"fill-color":"hsla(115, 55%, 74%, 0.7)","fill-opacity":.4}},{id:"landcover_grass",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","class"],"grass"],paint:{"fill-antialias":!1,"fill-color":"hsl(110, 52%, 81%)","fill-opacity":.3}},{id:"landcover_ice",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","class"],"ice"],paint:{"fill-antialias":!1,"fill-color":"rgba(224, 236, 236, 1)","fill-opacity":.8}},{id:"landcover_wetland",type:"fill",source:"openmaptiles","source-layer":"landcover",minzoom:12,filter:["==",["get","class"],"wetland"],paint:{"fill-antialias":!0,"fill-opacity":.8,"fill-pattern":"wetland_bg_11","fill-translate-anchor":"map"}},{id:"landuse_pitch",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"pitch"],paint:{"fill-color":"#DEE3CD"}},{id:"landuse_track",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"track"],paint:{"fill-color":"#DEE3CD"}},{id:"landuse_cemetery",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"cemetery"],paint:{"fill-color":"hsl(75,37%,81%)"}},{id:"landuse_hospital",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"hospital"],paint:{"fill-color":"#fde"}},{id:"landuse_school",type:"fill",source:"openmaptiles","source-layer":"landuse",filter:["==",["get","class"],"school"],paint:{"fill-color":"rgb(236,238,204)"}},{id:"waterway_tunnel",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["==",["get","brunnel"],"tunnel"],paint:{"line-color":"hsl(200, 100%, 80%)","line-dasharray":[3,3],"line-gap-width":["interpolate",["linear"],["zoom"],12,0,20,6],"line-opacity":1,"line-width":["interpolate",["exponential",1.4],["zoom"],8,1,20,2]}},{id:"waterway_river",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["all",["==",["get","class"],"river"],["!=",["get","brunnel"],"tunnel"]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-width":["interpolate",["exponential",1.2],["zoom"],11,.5,20,6]}},{id:"waterway_other",type:"line",source:"openmaptiles","source-layer":"waterway",filter:["all",["!=",["get","class"],"river"],["!=",["get","brunnel"],"tunnel"]],layout:{"line-cap":"round"},paint:{"line-color":"hsl(200, 100%, 80%)","line-width":["interpolate",["exponential",1.3],["zoom"],13,.5,20,6]}},{id:"water",type:"fill",source:"openmaptiles","source-layer":"water",filter:["!=",["get","brunnel"],"tunnel"],paint:{"fill-color":"hsl(200, 100%, 80%)"}},{id:"landcover_sand",type:"fill",source:"openmaptiles","source-layer":"landcover",filter:["==",["get","class"],"sand"],paint:{"fill-color":"rgba(247, 239, 195, 1)"}},{id:"aeroway_fill",type:"fill",source:"openmaptiles","source-layer":"aeroway",minzoom:11,filter:["match",["geometry-type"],["MultiPolygon","Polygon"],!0,!1],paint:{"fill-color":"rgba(229, 228, 224, 1)","fill-opacity":.7}},{id:"aeroway_runway",type:"line",source:"openmaptiles","source-layer":"aeroway",minzoom:11,filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","class"],"runway"]],paint:{"line-color":"#f0ede9","line-width":["interpolate",["exponential",1.2],["zoom"],11,3,20,16]}},{id:"aeroway_taxiway",type:"line",source:"openmaptiles","source-layer":"aeroway",minzoom:11,filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","class"],"taxiway"]],paint:{"line-color":"#f0ede9","line-width":["interpolate",["exponential",1.2],["zoom"],11,.5,20,6]}},{id:"tunnel_motorway_link_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"motorway"],["==",["get","ramp"],1],["==",["get","brunnel"],"tunnel"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"tunnel_service_track_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["service","track"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-width":["interpolate",["exponential",1.2],["zoom"],15,1,16,4,20,11]}},{id:"tunnel_link_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","ramp"],1],["==",["get","brunnel"],"tunnel"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"tunnel_street_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["street","street_limited"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":["interpolate",["linear"],["zoom"],12,0,12.5,1],"line-width":["interpolate",["exponential",1.2],["zoom"],12,.5,13,1,14,4,20,15]}},{id:"tunnel_secondary_tertiary_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["secondary","tertiary"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],8,1.5,20,17]}},{id:"tunnel_trunk_primary_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["primary","trunk"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.7,7,1.75,20,22]}},{id:"tunnel_motorway_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"motorway"],["!=",["get","ramp"],1],["==",["get","brunnel"],"tunnel"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[.5,.25],"line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.7,7,1.75,20,22]}},{id:"tunnel_path_pedestrian",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","brunnel"],"tunnel"],["match",["get","class"],["path","pedestrian"],!0,!1]],paint:{"line-color":"hsl(0,0%,100%)","line-dasharray":[1,.75],"line-width":["interpolate",["exponential",1.2],["zoom"],14,.5,20,10]}},{id:"tunnel_motorway_link",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"motorway"],["==",["get","ramp"],1],["==",["get","brunnel"],"tunnel"]],layout:{"line-join":"round"},paint:{"line-color":"#fc8","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"tunnel_service_track",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["service","track"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#fff","line-width":["interpolate",["exponential",1.2],["zoom"],15.5,0,16,2,20,7.5]}},{id:"tunnel_link",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","ramp"],1],["==",["get","brunnel"],"tunnel"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(45, 90%, 72%)","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"tunnel_minor",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["minor"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#fff","line-width":["interpolate",["exponential",1.2],["zoom"],13.5,0,14,2.5,20,11.5]}},{id:"tunnel_secondary_tertiary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["secondary","tertiary"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,10]}},{id:"tunnel_trunk_primary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["primary","trunk"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],5,0,7,1,20,18]}},{id:"tunnel_motorway",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"motorway"],["!=",["get","ramp"],1],["==",["get","brunnel"],"tunnel"]],layout:{"line-join":"round"},paint:{"line-color":"#ffdaa6","line-width":["interpolate",["exponential",1.2],["zoom"],5,0,7,1,20,18]}},{id:"tunnel_major_rail",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["rail"],!0,!1]],paint:{"line-color":"#bbb","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"tunnel_major_rail_hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"rail"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,3,20,8]}},{id:"tunnel_transit_rail",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["match",["get","class"],["transit"],!0,!1]],paint:{"line-color":"#bbb","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"tunnel_transit_rail_hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"tunnel"],["==",["get","class"],"transit"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,3,20,8]}},{id:"road_area_pattern",type:"fill",source:"openmaptiles","source-layer":"transportation",filter:["match",["geometry-type"],["MultiPolygon","Polygon"],!0,!1],paint:{"fill-pattern":"pedestrian_polygon"}},{id:"road_motorway_link_casing",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:12,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"motorway"],["==",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"road_service_track_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["service","track"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],15,1,16,4,20,11]}},{id:"road_link_casing",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["motorway","path","pedestrian","service","track"],!1,!0],["==",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"road_minor_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["minor"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":["interpolate",["linear"],["zoom"],12,0,12.5,1],"line-width":["interpolate",["exponential",1.2],["zoom"],12,.5,13,1,14,4,20,20]}},{id:"road_secondary_tertiary_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["secondary","tertiary"],!0,!1],["!=",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],8,1.5,20,17]}},{id:"road_trunk_primary_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["primary","trunk"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.7,7,1.75,20,22]}},{id:"road_motorway_casing",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:5,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"motorway"],["!=",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.7,7,1.75,20,22]}},{id:"road_path_pedestrian",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:14,filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["path","pedestrian"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(0,0%,100%)","line-dasharray":[1,.7],"line-width":["interpolate",["exponential",1.2],["zoom"],14,1,20,10]}},{id:"road_motorway_link",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:12,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"motorway"],["==",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fc8","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"road_service_track",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["service","track"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fff","line-width":["interpolate",["exponential",1.2],["zoom"],15.5,0,16,2,20,7.5]}},{id:"road_link",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","ramp"],1],["match",["get","class"],["motorway","path","pedestrian","service","track"],!1,!0]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(45, 90%, 72%)","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"road_minor",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["minor"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fff","line-width":["interpolate",["exponential",1.2],["zoom"],13.5,0,14,2.5,20,18]}},{id:"road_secondary_tertiary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["secondary","tertiary"],!0,!1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,8,.5,20,13]}},{id:"road_trunk_primary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["match",["get","class"],["primary","trunk"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],5,0,7,1,20,18]}},{id:"road_motorway",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:5,filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"motorway"],["!=",["get","ramp"],1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":["interpolate",["linear"],["zoom"],5,"hsl(26,87%,62%)",6,"#fc8"],"line-width":["interpolate",["exponential",1.2],["zoom"],5,0,7,1,20,18]}},{id:"road_major_rail",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"rail"]],paint:{"line-color":"#bbb","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"road_major_rail_hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"rail"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,3,20,8]}},{id:"road_transit_rail",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"transit"]],paint:{"line-color":"#bbb","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"road_transit_rail_hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["get","brunnel"],["bridge","tunnel"],!1,!0],["==",["get","class"],"transit"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,3,20,8]}},{id:"road_one_way_arrow",type:"symbol",source:"openmaptiles","source-layer":"transportation",minzoom:16,filter:["==",["get","oneway"],1],layout:{"icon-image":"arrow","symbol-placement":"line"}},{id:"road_one_way_arrow_opposite",type:"symbol",source:"openmaptiles","source-layer":"transportation",minzoom:16,filter:["==",["get","oneway"],-1],layout:{"icon-image":"arrow","icon-rotate":180,"symbol-placement":"line"}},{id:"bridge_motorway_link_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"motorway"],["==",["get","ramp"],1],["==",["get","brunnel"],"bridge"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"bridge_service_track_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["service","track"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],15,1,16,4,20,11]}},{id:"bridge_link_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"link"],["==",["get","brunnel"],"bridge"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],12,1,13,3,14,4,20,15]}},{id:"bridge_street_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["street","street_limited"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-opacity":["interpolate",["linear"],["zoom"],12,0,12.5,1],"line-width":["interpolate",["exponential",1.2],["zoom"],12,.5,13,1,14,4,20,25]}},{id:"bridge_path_pedestrian_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","brunnel"],"bridge"],["match",["get","class"],["path","pedestrian"],!0,!1]],paint:{"line-color":"hsl(220, 20%, 85%)","line-dasharray":[1,0],"line-width":["interpolate",["exponential",1.2],["zoom"],14,1.5,20,18]}},{id:"bridge_secondary_tertiary_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["secondary","tertiary"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],8,1.5,20,17]}},{id:"bridge_trunk_primary_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["primary","trunk"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.7,7,1.75,20,22]}},{id:"bridge_motorway_casing",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"motorway"],["!=",["get","ramp"],1],["==",["get","brunnel"],"bridge"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(220, 20%, 85%)","line-width":["interpolate",["exponential",1.2],["zoom"],5,.4,6,.7,7,1.75,20,22]}},{id:"bridge_path_pedestrian",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["==",["get","brunnel"],"bridge"],["match",["get","class"],["path","pedestrian"],!0,!1]],paint:{"line-color":"hsl(0,0%,100%)","line-dasharray":[1,.3],"line-width":["interpolate",["exponential",1.2],["zoom"],14,.5,20,10]}},{id:"bridge_motorway_link",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"motorway"],["==",["get","ramp"],1],["==",["get","brunnel"],"bridge"]],layout:{"line-join":"round"},paint:{"line-color":"#fc8","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"bridge_service_track",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["service","track"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#fff","line-width":["interpolate",["exponential",1.2],["zoom"],15.5,0,16,2,20,7.5]}},{id:"bridge_link",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"link"],["==",["get","brunnel"],"bridge"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(45, 90%, 72%)","line-width":["interpolate",["exponential",1.2],["zoom"],12.5,0,13,1.5,14,2.5,20,11.5]}},{id:"bridge_street",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["minor"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#fff","line-width":["interpolate",["exponential",1.2],["zoom"],13.5,0,14,2.5,20,18]}},{id:"bridge_secondary_tertiary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["secondary","tertiary"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],6.5,0,7,.5,20,10]}},{id:"bridge_trunk_primary",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","brunnel"],"bridge"],["match",["get","class"],["primary","trunk"],!0,!1]],layout:{"line-join":"round"},paint:{"line-color":"#ffffff","line-width":["interpolate",["exponential",1.2],["zoom"],5,0,7,1,20,18]}},{id:"bridge_motorway",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"motorway"],["!=",["get","ramp"],1],["==",["get","brunnel"],"bridge"]],layout:{"line-join":"round"},paint:{"line-color":"#fc8","line-width":["interpolate",["exponential",1.2],["zoom"],5,0,7,1,20,18]}},{id:"bridge_major_rail",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"rail"],["==",["get","brunnel"],"bridge"]],paint:{"line-color":"#bbb","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"bridge_major_rail_hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"rail"],["==",["get","brunnel"],"bridge"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,3,20,8]}},{id:"bridge_transit_rail",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"transit"],["==",["get","brunnel"],"bridge"]],paint:{"line-color":"#bbb","line-width":["interpolate",["exponential",1.4],["zoom"],14,.4,15,.75,20,2]}},{id:"bridge_transit_rail_hatching",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["==",["get","class"],"transit"],["==",["get","brunnel"],"bridge"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":["interpolate",["exponential",1.4],["zoom"],14.5,0,15,3,20,8]}},{id:"building",type:"fill",source:"openmaptiles","source-layer":"building",minzoom:13,maxzoom:14,paint:{"fill-color":"hsl(20, 15%, 85%)","fill-outline-color":["interpolate",["linear"],["zoom"],13,"hsla(35,6%,79%,0.32)",14,"hsl(35,6%,79%)"]}},{id:"building-3d",type:"fill-extrusion",source:"openmaptiles","source-layer":"building",minzoom:14,paint:{"fill-extrusion-base":["get","render_min_height"],"fill-extrusion-color":"hsl(20, 15%, 85%)","fill-extrusion-height":["get","render_height"],"fill-extrusion-opacity":.8}},{id:"boundary_3",type:"line",source:"openmaptiles","source-layer":"boundary",minzoom:5,filter:["all",["all",["has","admin_level"],[">=",["get","admin_level"],3]],["all",["has","admin_level"],["<=",["get","admin_level"],6]],["!=",["get","maritime"],1],["!=",["get","disputed"],1],["!",["has","claimed_by"]]],paint:{"line-color":"hsl(240, 40%, 72%)","line-dasharray":[1,1],"line-width":["interpolate",["linear",1],["zoom"],7,1,11,2]}},{id:"boundary_2",type:"line",source:"openmaptiles","source-layer":"boundary",filter:["all",["==",["get","admin_level"],2],["!=",["get","maritime"],1],["!=",["get","disputed"],1],["!",["has","claimed_by"]]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(240, 50%, 60%)","line-opacity":["interpolate",["linear"],["zoom"],0,.4,4,1],"line-width":["interpolate",["linear"],["zoom"],3,1,5,1.2,12,3]}},{id:"boundary_disputed",type:"line",source:"openmaptiles","source-layer":"boundary",filter:["all",["!=",["get","maritime"],1],["==",["get","disputed"],1]],paint:{"line-color":"hsl(240, 50%, 60%)","line-dasharray":[1,2],"line-width":["interpolate",["linear"],["zoom"],3,1,5,1.2,12,3]}},{id:"waterway_line_label",type:"symbol",source:"openmaptiles","source-layer":"waterway",minzoom:10,filter:["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],layout:{"symbol-placement":"line","symbol-spacing":350,"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.2,"text-max-width":5,"text-size":14},paint:{"text-color":"#74aee9","text-halo-color":"rgba(255,255,255,0.7)","text-halo-width":1.5}},{id:"water_name_point_label",type:"symbol",source:"openmaptiles","source-layer":"water_name",filter:["match",["geometry-type"],["MultiPoint","Point"],!0,!1],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
2
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.2,"text-max-width":5,"text-size":["interpolate",["linear"],["zoom"],0,10,8,14]},paint:{"text-color":"#495e91","text-halo-color":"rgba(255,255,255,0.7)","text-halo-width":1.5}},{id:"water_name_line_label",type:"symbol",source:"openmaptiles","source-layer":"water_name",filter:["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],layout:{"symbol-placement":"line","symbol-spacing":350,"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.2,"text-max-width":5,"text-size":14},paint:{"text-color":"#495e91","text-halo-color":"rgba(255,255,255,0.7)","text-halo-width":1.5}},{id:"poi_r20",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:17,filter:["all",["match",["geometry-type"],["MultiPoint","Point"],!0,!1],["all",["has","rank"],[">=",["get","rank"],20]]],layout:{"icon-image":["match",["get","subclass"],["florist","furniture"],["get","subclass"],["get","class"]],"text-anchor":"top","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
3
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-max-width":9,"text-offset":[0,.6],"text-size":12},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"poi_r7",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:16,filter:["all",["match",["geometry-type"],["MultiPoint","Point"],!0,!1],["all",["has","rank"],[">=",["get","rank"],7]],["all",["has","rank"],["<",["get","rank"],20]]],layout:{"icon-image":["match",["get","subclass"],["florist","furniture"],["get","subclass"],["get","class"]],"text-anchor":"top","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
4
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-max-width":9,"text-offset":[0,.6],"text-size":12},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"poi_r1",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:15,filter:["all",["match",["geometry-type"],["MultiPoint","Point"],!0,!1],["all",["has","rank"],[">=",["get","rank"],1]],["all",["has","rank"],["<",["get","rank"],7]]],layout:{"icon-image":["match",["get","subclass"],["florist","furniture"],["get","subclass"],["get","class"]],"text-anchor":"top","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
5
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-max-width":9,"text-offset":[0,.6],"text-size":12},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"poi_transit",type:"symbol",source:"openmaptiles","source-layer":"poi",filter:["match",["get","class"],["airport","bus","rail"],!0,!1],layout:{"icon-image":["to-string",["get","class"]],"icon-size":.7,"text-anchor":"left","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
6
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-max-width":9,"text-offset":[.9,0],"text-size":12},paint:{"text-color":"#2e5a80","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"highway-name-path",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:15.5,filter:["==",["get","class"],"path"],layout:{"symbol-placement":"line","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"map","text-size":["interpolate",["linear"],["zoom"],13,12,14,13]},paint:{"text-color":"hsl(30,23%,62%)","text-halo-color":"#f8f4f0","text-halo-width":.5}},{id:"highway-name-minor",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:15,filter:["all",["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","class"],["minor","service","track"],!0,!1]],layout:{"symbol-placement":"line","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"map","text-size":["interpolate",["linear"],["zoom"],13,12,14,13]},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-width":1}},{id:"highway-name-major",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:12.2,filter:["match",["get","class"],["primary","secondary","tertiary","trunk"],!0,!1],layout:{"symbol-placement":"line","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"]," ",["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"map","text-size":["interpolate",["linear"],["zoom"],13,12,14,13]},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-width":1}},{id:"highway-shield-non-us",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:8,filter:["all",["all",["has","ref_length"],["<=",["get","ref_length"],6]],["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","network"],["us-highway","us-interstate","us-state"],!1,!0]],layout:{"icon-image":["concat","road_",["get","ref_length"]],"icon-rotation-alignment":"viewport","icon-size":1,"symbol-placement":["step",["zoom"],"point",11,"line"],"symbol-spacing":200,"text-field":["to-string",["get","ref"]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"viewport","text-size":10}},{id:"highway-shield-us-interstate",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:7,filter:["all",["all",["has","ref_length"],["<=",["get","ref_length"],6]],["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","network"],["us-interstate"],!0,!1]],layout:{"icon-image":["concat",["get","network"],"_",["get","ref_length"]],"icon-rotation-alignment":"viewport","icon-size":1,"symbol-placement":["step",["zoom"],"point",7,"line",8,"line"],"symbol-spacing":200,"text-field":["to-string",["get","ref"]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"viewport","text-size":10}},{id:"road_shield_us",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:9,filter:["all",["all",["has","ref_length"],["<=",["get","ref_length"],6]],["match",["geometry-type"],["LineString","MultiLineString"],!0,!1],["match",["get","network"],["us-highway","us-state"],!0,!1]],layout:{"icon-image":["concat",["get","network"],"_",["get","ref_length"]],"icon-rotation-alignment":"viewport","icon-size":1,"symbol-placement":["step",["zoom"],"point",11,"line"],"symbol-spacing":200,"text-field":["to-string",["get","ref"]],"text-font":["Noto Sans Regular"],"text-rotation-alignment":"viewport","text-size":10}},{id:"airport",type:"symbol",source:"openmaptiles","source-layer":"aerodrome_label",minzoom:10,filter:["all",["has","iata"]],layout:{"icon-image":"airport_11","icon-size":1,"text-anchor":"top","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
7
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-max-width":9,"text-offset":[0,.6],"text-optional":!0,"text-padding":2,"text-size":12},paint:{"text-color":"#666","text-halo-blur":.5,"text-halo-color":"#ffffff","text-halo-width":1}},{id:"label_other",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:8,filter:["match",["get","class"],["city","continent","country","state","town","village"],!1,!0],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
8
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.1,"text-max-width":9,"text-size":["interpolate",["linear"],["zoom"],8,9,12,10],"text-transform":"uppercase"},paint:{"text-color":"#333","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_village",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:9,filter:["==",["get","class"],"village"],layout:{"icon-allow-overlap":!0,"icon-image":["step",["zoom"],"circle_11_black",10,""],"icon-optional":!1,"icon-size":.2,"text-anchor":"bottom","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
9
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-max-width":8,"text-size":["interpolate",["exponential",1.2],["zoom"],7,10,11,12]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_town",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:6,filter:["==",["get","class"],"town"],layout:{"icon-allow-overlap":!0,"icon-image":["step",["zoom"],"circle_11_black",10,""],"icon-optional":!1,"icon-size":.2,"text-anchor":"bottom","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
10
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-max-width":8,"text-size":["interpolate",["exponential",1.2],["zoom"],7,12,11,14]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_state",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:5,maxzoom:8,filter:["==",["get","class"],"state"],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
11
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Italic"],"text-letter-spacing":.2,"text-max-width":9,"text-size":["interpolate",["linear"],["zoom"],5,10,8,14],"text-transform":"uppercase"},paint:{"text-color":"#333","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_city",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:3,filter:["all",["==",["get","class"],"city"],["!=",["get","capital"],2]],layout:{"icon-allow-overlap":!0,"icon-image":["step",["zoom"],"circle_11_black",9,""],"icon-optional":!1,"icon-size":.4,"text-anchor":"bottom","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
12
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Regular"],"text-max-width":8,"text-offset":[0,-.1],"text-size":["interpolate",["exponential",1.2],["zoom"],4,11,7,13,11,18]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_city_capital",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:3,filter:["all",["==",["get","class"],"city"],["==",["get","capital"],2]],layout:{"icon-allow-overlap":!0,"icon-image":["step",["zoom"],"circle_11_black",9,""],"icon-optional":!1,"icon-size":.5,"text-anchor":"bottom","text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
13
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Bold"],"text-max-width":8,"text-offset":[0,-.2],"text-size":["interpolate",["exponential",1.2],["zoom"],4,12,7,14,11,20]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_country_3",type:"symbol",source:"openmaptiles","source-layer":"place",minzoom:2,maxzoom:9,filter:["all",["==",["get","class"],"country"],["all",["has","rank"],[">=",["get","rank"],3]]],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
14
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Bold"],"text-max-width":6.25,"text-size":["interpolate",["linear"],["zoom"],3,9,7,17]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_country_2",type:"symbol",source:"openmaptiles","source-layer":"place",maxzoom:9,filter:["all",["==",["get","class"],"country"],["==",["get","rank"],2]],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
15
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Bold"],"text-max-width":6.25,"text-size":["interpolate",["linear"],["zoom"],2,9,5,17]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}},{id:"label_country_1",type:"symbol",source:"openmaptiles","source-layer":"place",maxzoom:9,filter:["all",["==",["get","class"],"country"],["==",["get","rank"],1]],layout:{"text-field":["case",["has","name:nonlatin"],["concat",["get","name:latin"],`
16
+ `,["get","name:nonlatin"]],["coalesce",["get","name_en"],["get","name"]]],"text-font":["Noto Sans Bold"],"text-max-width":6.25,"text-size":["interpolate",["linear"],["zoom"],1,9,4,17]},paint:{"text-color":"#000","text-halo-blur":1,"text-halo-color":"#fff","text-halo-width":1}}],name:"ExpoFP Streets (Mapbox-like)",metadata:{"expofp:base":"OpenFreeMap Liberty (CC0)","expofp:tuned-to":"mapbox://styles/mapbox/streets-v12 palette"}};
@@ -1,10 +1,11 @@
1
- import type { Map as MaplibreMap } from 'maplibre-gl';
2
- import type { RefObject } from 'react';
1
+ import type { SceneDef } from '@expofp/renderer';
2
+ import { type Map as MaplibreMap } from 'maplibre-gl';
3
+ import { type RefObject } from 'react';
3
4
  import { type GeoConfig } from './utils/geo-config';
4
5
  /**
5
6
  * Bundles all camera-related MobX reactions: moveToBooths, moveToRect,
6
7
  * zoomBy, moveToLocation, and centerMap. Each watches a uiState trigger,
7
8
  * moves the camera, and clears the trigger.
8
9
  */
9
- export declare function useCameraReactions(mapRef: RefObject<MaplibreMap | null>, geoConfig: GeoConfig | null): void;
10
+ export declare function useCameraReactions(mapRef: RefObject<MaplibreMap | null>, geoConfig: GeoConfig | null, sceneDef: SceneDef | null): void;
10
11
  //# sourceMappingURL=useCameraReactions.d.ts.map
@@ -1 +1 @@
1
- import{Box as y}from"@expofp/geometry";import{svgArea as T}from"../../data/svg";import p,{uiState as i}from"../../store";import{convertLocalToGps as b}from"../../utils/gps";import{useReaction as m}from"../../utils/mobx";import{fitMapToLocalRect as l}from"./utils/geo-config";const s=i;export function useCameraReactions(a,e){m(()=>s.moveToBooths,r=>{const t=a.current;if(!r||!t||!e)return;const o=r.filter(c=>c.rect);if(o.length===0)return;const n=y.fromUnion(...o.map(c=>c.rect));l(t,n,e),s.moveToBooths=null}),m(()=>s.moveToRect,r=>{const t=a.current;!r||!t||!e||(l(t,r,e),s.moveToRect=null)}),m(()=>s.zoomBy,r=>{const t=a.current;!r||!t||(t.flyTo({zoom:t.getZoom()+(r>1?.5:-.5),animate:!0,duration:500}),s.zoomBy=null)}),m(()=>i.moveToLocation,r=>{const t=a.current,o=p.routeStore.currentPosition;if(!r||!t||!o)return;const{lng:n,lat:c}=o,f=typeof n=="number"&&Number.isFinite(n)&&typeof c=="number"&&Number.isFinite(c);let u;if(f)u=[n,c];else{if(!e)return;u=b(o.x,o.y,e.gpsConfig)}t.flyTo({center:u,animate:!0,duration:1e3}),t.once("moveend",()=>{i.moveToLocation=!1})}),m(()=>i.centerMap,r=>{const t=a.current;if(!r||!t||!e)return;if(!(i.list.type==="search"&&!i.list.text)){const n=p.layerStore.rectangle||T;l(t,n,e,{padding:0})}i.centerMap=!1})}
1
+ import{Box as b}from"@expofp/geometry";import{svgArea as l,svgAreaExplicit as x}from"../../data/svg";import p,{uiState as a}from"../../store";import{convertLocalToGps as h}from"../../utils/gps";import{useReaction as m}from"../../utils/mobx";import{expandRectByPercent as T,getVenueFitMarginPercent as S,resolveVenueFitRect as L}from"../../utils/scene-bounds";import{fitMapToLocalRect as f}from"./utils/geo-config";const s=a;function d(r){return T(r,S(r,l))}export function useCameraReactions(r,o,y){m(()=>s.moveToBooths,e=>{const t=r.current;if(!e||!t||!o)return;const n=e.filter(c=>c.rect);if(n.length===0)return;const i=b.fromUnion(...n.map(c=>c.rect));f(t,d(i),o),s.moveToBooths=null}),m(()=>s.moveToRect,e=>{const t=r.current;!e||!t||!o||(f(t,e,o),s.moveToRect=null)}),m(()=>s.zoomBy,e=>{const t=r.current;!e||!t||(t.flyTo({zoom:t.getZoom()+(e>1?.5:-.5),animate:!0,duration:500}),s.zoomBy=null)}),m(()=>a.moveToLocation,e=>{const t=r.current,n=p.routeStore.currentPosition;if(!e||!t||!n)return;const{lng:i,lat:c}=n,v=typeof i=="number"&&Number.isFinite(i)&&typeof c=="number"&&Number.isFinite(c);let u;if(v)u=[i,c];else{if(!o)return;u=h(n.x,n.y,o.gpsConfig)}t.flyTo({center:u,animate:!0,duration:1e3}),t.once("moveend",()=>{a.moveToLocation=!1})}),m(()=>a.centerMap,e=>{const t=r.current;if(!e||!t||!o)return;if(!(a.list.type==="search"&&!a.list.text)){const{rect:i}=L({layerViewbox:p.layerStore.viewboxRectangle,explicitArea:x?l:null,layerRectangle:p.layerStore.rectangle,sceneDef:y,svgArea:l});f(t,i,o)}a.centerMap=!1})}
@@ -1,7 +1,7 @@
1
- import type { Box } from '@expofp/geometry';
2
- import type { LngLatBoundsLike, Map as MaplibreMap } from 'maplibre-gl';
3
- import type { GeoConfig as MaplibreGeoConfig } from '../MaplibreWrapper';
4
- import type { TransformGeoConfig } from './solver';
1
+ import { type Box } from '@expofp/geometry';
2
+ import { type LngLatBoundsLike, type Map as MaplibreMap } from 'maplibre-gl';
3
+ import { type GeoConfig as MaplibreGeoConfig } from '../MaplibreWrapper';
4
+ import { type TransformGeoConfig } from './solver';
5
5
  export interface GeoConfig extends MaplibreGeoConfig {
6
6
  gpsConfig: TransformGeoConfig;
7
7
  }
@@ -21,10 +21,7 @@ export declare const INITIAL_FIT_ZOOM_ADJUSTMENT = 0.15;
21
21
  export declare function deriveVenueMapBounds(config: TransformGeoConfig): LngLatBoundsLike | undefined;
22
22
  export declare function getLocalRectGeoBounds(rect: Box, config: TransformGeoConfig): LngLatBoundsLike;
23
23
  export declare function getVisibleRectFitPadding(extraPadding?: number): CameraPaddingOptions;
24
- /**
25
- * Derive the geographic configuration from the fpGeo data.
26
- * Returns null if geo data is not available.
27
- */
24
+ /** Geographic configuration from fpGeo data; null when unavailable. */
28
25
  export declare function deriveGeoConfig(): GeoConfig | null;
29
26
  export declare function fitMapToLocalRect(map: MaplibreMap | null, rect: Box | null, geoConfig: GeoConfig | null, options?: FitMapOptions): void;
30
27
  //# sourceMappingURL=geo-config.d.ts.map
@@ -1 +1 @@
1
- import{fpGeo as f}from"../../../data/fpGeo";import{svgArea as m}from"../../../data/svg";import{uiState as M}from"../../../store";import{convertLocalToGps as r}from"../../../utils/gps";export const MAP_BOUNDS_PADDING_FACTOR=3,MAP_BOUNDS_MIN_PADDING_DEGREES=.02,INITIAL_FIT_ZOOM_ADJUSTMENT=.15;export function deriveVenueMapBounds(n){const t=[[m.min.x,m.min.y],[m.max.x,m.min.y],[m.max.x,m.max.y],[m.min.x,m.max.y]].map(([s,x])=>r(s,x,n));if(!t.every(([s,x])=>Number.isFinite(s)&&Number.isFinite(x)))return;const i=t.map(([s])=>s),o=t.map(([,s])=>s),a=Math.min(...i),e=Math.max(...i),p=Math.min(...o),c=Math.max(...o),h=Math.max((e-a)*MAP_BOUNDS_PADDING_FACTOR,MAP_BOUNDS_MIN_PADDING_DEGREES),u=Math.max((c-p)*MAP_BOUNDS_PADDING_FACTOR,MAP_BOUNDS_MIN_PADDING_DEGREES);return[[a-h,p-u],[e+h,c+u]]}export function getLocalRectGeoBounds(n,t){const i=[r(n.min.x,n.min.y,t),r(n.max.x,n.min.y,t),r(n.max.x,n.max.y,t),r(n.min.x,n.max.y,t)],o=i.map(([e])=>e),a=i.map(([,e])=>e);return[[Math.min(...o),Math.min(...a)],[Math.max(...o),Math.max(...a)]]}export function getVisibleRectFitPadding(n=0){const t=M.canvasVisibleRectPx,i=M.screenSize;return!t||!i?{top:n,bottom:n,left:n,right:n}:{top:Math.max(0,t.min.y)+n,bottom:Math.max(0,i.height-t.max.y)+n,left:Math.max(0,t.min.x)+n,right:Math.max(0,i.width-t.max.x)+n}}export function deriveGeoConfig(){if(!f?.properties?.config)return null;const n=f.properties.config,t=(n.p0.lng+n.p2.lng)/2,i=(n.p0.lat+n.p2.lat)/2;return{center:[t,i],bearing:n.bearing??0,zoom:16,gpsConfig:n}}export function fitMapToLocalRect(n,t,i,o={}){if(!n||!t||!i||t.size.height===1/0||t.size.width===1/0||t.size.height<=0||t.size.width<=0)return;const a=getLocalRectGeoBounds(t,i.gpsConfig),e=getVisibleRectFitPadding(o.padding??50);n.fitBounds(a,{padding:e,duration:o.duration??1e3,bearing:i.bearing})}
1
+ import{LngLatBounds as R}from"maplibre-gl";import{fpGeo as y}from"../../../data/fpGeo";import{svgArea as c}from"../../../data/svg";import{uiState as b}from"../../../store";import{convertLocalToGps as f}from"../../../utils/gps";import{planBearing as z}from"../../../utils/planBearing";export const MAP_BOUNDS_PADDING_FACTOR=3,MAP_BOUNDS_MIN_PADDING_DEGREES=.02,INITIAL_FIT_ZOOM_ADJUSTMENT=.15;const p=1.42,M=.35,D=.9,E=.85,A=8,S=.05;export function deriveVenueMapBounds(t){const n=[[c.min.x,c.min.y],[c.max.x,c.min.y],[c.max.x,c.max.y],[c.min.x,c.max.y]].map(([a,m])=>f(a,m,t));if(!n.every(([a,m])=>Number.isFinite(a)&&Number.isFinite(m)))return;const e=n.map(([a])=>a),o=n.map(([,a])=>a),i=Math.min(...e),r=Math.max(...e),s=Math.min(...o),u=Math.max(...o),x=Math.max((r-i)*MAP_BOUNDS_PADDING_FACTOR,MAP_BOUNDS_MIN_PADDING_DEGREES),h=Math.max((u-s)*MAP_BOUNDS_PADDING_FACTOR,MAP_BOUNDS_MIN_PADDING_DEGREES);return[[i-x,s-h],[r+x,u+h]]}function d(t,n,e,o){const i=Math.min(t.getZoom(),n),r=(e-i)*Math.min(1,o/p);return i+r>=t.getMinZoom()-S}function v(t,n,e){if(d(t,n,e,p))return p;if(!d(t,n,e,M))return null;let o=M,i=p;for(let r=0;r<A;r++){const s=(o+i)/2;d(t,n,e,s)?o=s:i=s}return o}export function getLocalRectGeoBounds(t,n){const e=[f(t.min.x,t.min.y,n),f(t.max.x,t.min.y,n),f(t.max.x,t.max.y,n),f(t.min.x,t.max.y,n)],o=e.map(([r])=>r),i=e.map(([,r])=>r);return[[Math.min(...o),Math.min(...i)],[Math.max(...o),Math.max(...i)]]}export function getVisibleRectFitPadding(t=0){const n=b.canvasVisibleRectPx,e=b.screenSize;return!n||!e?{top:t,bottom:t,left:t,right:t}:{top:Math.max(0,n.min.y)+t,bottom:Math.max(0,e.height-n.max.y)+t,left:Math.max(0,n.min.x)+t,right:Math.max(0,e.width-n.max.x)+t}}export function deriveGeoConfig(){if(!y?.properties?.config)return null;const t=y.properties.config,n=(t.p0.lng+t.p2.lng)/2,e=(t.p0.lat+t.p2.lat)/2,o=z(t.p0,t.p2),i=Number.isFinite(o)?o:t.bearing??0;return{center:[n,e],bearing:i,zoom:16,gpsConfig:t}}export function fitMapToLocalRect(t,n,e,o={}){if(!t||!n||!e||n.size.height===1/0||n.size.width===1/0||n.size.height<=0||n.size.width<=0)return;const i=getLocalRectGeoBounds(n,e.gpsConfig),r=getVisibleRectFitPadding(o.padding??50),s=t.cameraForBounds(i,{padding:r,bearing:e.bearing});if(!s?.center||typeof s.zoom!="number"){t.fitBounds(i,{padding:r,bearing:e.bearing,essential:!0});return}const u=t.project(t.getCenter()),x=t.project(s.center),h=Math.max(t.getCanvas().clientWidth,t.getCanvas().clientHeight,1),a=Math.hypot(x.x-u.x,x.y-u.y)/h,m=Math.abs(t.getZoom()-s.zoom),_=o.duration??Math.min(2800,500+a*450+m*150),l={center:s.center,zoom:s.zoom,bearing:e.bearing,duration:_,essential:!0};if(a<=1.2&&m<=1.5){t.easeTo(l);return}const O=t.getBounds().extend(R.convert(i)),g=t.cameraForBounds(O,{padding:r,bearing:e.bearing});if(!g?.center||typeof g.zoom!="number"||g.zoom>=t.getZoom()-.2){t.easeTo(l);return}const T=v(t,s.zoom,g.zoom);if(T!==null){const F=Math.max(M,T*D),L=Math.round(_*E);t.flyTo({...l,curve:F,duration:L});return}t.easeTo(l)}
@@ -1 +1 @@
1
- import s from"../../../store";import{MAP_DIM_LAYER_ID as c}from"../MaplibreWrapper";export const DEFAULT_TILE_SOURCE={style:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json"},DEFAULT_MAP_OPTIONS={pitch:30,maxPitch:70,minZoom:14},MAP_2D_OPTIONS={pitch:0,maxPitch:0,minZoom:14};export function applyMapDimValue(t,e){t?.getLayer(c)&&(t.setPaintProperty(c,"fill-opacity",u(e)),t.triggerRepaint())}function u(t){return Math.min(Math.max(t,0),1)}export function applyMapOptions(t,e,i=!1){if(!t)return;t.setMinZoom(e.minZoom??null),t.setMaxZoom(e.maxZoom??null),t.setMaxBounds(e.maxBounds??null);const o=e.pitch,n=e.maxPitch,r=t.getPitch(),l=!!(i&&o!=null&&n!=null&&n<r);n!=null&&!l&&t.setMaxPitch(e.maxPitch),!(o==null||r===o)&&(i?(t.easeTo({pitch:o,duration:300}),l&&t.once("moveend",()=>t.setMaxPitch(n))):t.jumpTo({pitch:o}))}export function getTileSource(){const t=s.fp?.maplibre??window.__efpMaplibre;return t?.style?{style:t.style}:t?.styleUrl?{style:t.styleUrl}:DEFAULT_TILE_SOURCE}
1
+ import u from"../../../store";import{MAP_DIM_LAYER_ID as c}from"../MaplibreWrapper";export const DEFAULT_TILE_SOURCE={style:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json"};const s=12;export const DEFAULT_MAP_OPTIONS={pitch:30,maxPitch:70,minZoom:s},MAP_2D_OPTIONS={pitch:0,maxPitch:0,minZoom:s};export function applyMapDimValue(t,e){t?.getLayer(c)&&(t.setPaintProperty(c,"fill-opacity",f(e)),t.triggerRepaint())}function f(t){return Math.min(Math.max(t,0),1)}export function applyMapOptions(t,e,i=!1){if(!t)return;t.setMinZoom(e.minZoom??null),t.setMaxZoom(e.maxZoom??null),t.setMaxBounds(e.maxBounds??null);const o=e.pitch,n=e.maxPitch,r=t.getPitch(),l=!!(i&&o!=null&&n!=null&&n<r);n!=null&&!l&&t.setMaxPitch(e.maxPitch),!(o==null||r===o)&&(i?(t.easeTo({pitch:o,duration:300}),l&&t.once("moveend",()=>t.setMaxPitch(n))):t.jumpTo({pitch:o}))}export function getTileSource(){const t=u.fp?.maplibre??window.__efpMaplibre;return t?.style?{style:t.style}:t?.styleUrl?{style:t.styleUrl}:DEFAULT_TILE_SOURCE}