@macrostrat/map-interface 1.2.4 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/cjs/{container.d2e83c46.js → container.fc5b1a23.js} +4 -4
- package/dist/cjs/{container.d2e83c46.js.map → container.fc5b1a23.js.map} +1 -1
- package/dist/cjs/{controls.5fcf8a91.js → controls.9d7ddc44.js} +3 -3
- package/dist/cjs/{controls.5fcf8a91.js.map → controls.9d7ddc44.js.map} +1 -1
- package/dist/cjs/{dev.e6613cda.js → dev.079a11ee.js} +2 -2
- package/dist/cjs/{dev.e6613cda.js.map → dev.079a11ee.js.map} +1 -1
- package/dist/cjs/{header.af864bde.js → header.356d9f4c.js} +2 -2
- package/dist/cjs/header.356d9f4c.js.map +1 -0
- package/dist/cjs/{helpers.0f72ddaf.js → helpers.5a745a3a.js} +21 -3
- package/dist/cjs/helpers.5a745a3a.js.map +1 -0
- package/dist/cjs/index.js +7 -7
- package/dist/cjs/{location-info.92e70042.js → location-info.99003993.js} +13 -3
- package/dist/cjs/location-info.99003993.js.map +1 -0
- package/dist/cjs/{location-panel.e33becf0.js → location-panel.c5a55484.js} +3 -3
- package/dist/cjs/{location-panel.e33becf0.js.map → location-panel.c5a55484.js.map} +1 -1
- package/dist/cjs/main.module.0bbfa859.js.map +1 -1
- package/dist/cjs/{main.module.f57e27f2.css → main.module.16d04f5b.css} +16 -5
- package/dist/cjs/main.module.16d04f5b.css.map +1 -0
- package/dist/cjs/{main.module.62939ea7.js → main.module.e392b038.js} +4 -1
- package/dist/cjs/main.module.e392b038.js.map +1 -0
- package/dist/cjs/main.module.e958948e.js.map +1 -1
- package/dist/cjs/{map-page.1e1970d8.js → map-page.3c65558b.js} +8 -7
- package/dist/cjs/map-page.3c65558b.js.map +1 -0
- package/dist/cjs/{map-view.61e50e18.js → map-view.e031052e.js} +64 -36
- package/dist/cjs/map-view.e031052e.js.map +1 -0
- package/dist/esm/{container.bba0b16c.js → container.1c2aa81d.js} +5 -5
- package/dist/esm/{container.bba0b16c.js.map → container.1c2aa81d.js.map} +1 -1
- package/dist/esm/{controls.42c750c4.js → controls.8efb9074.js} +4 -4
- package/dist/esm/{controls.42c750c4.js.map → controls.8efb9074.js.map} +1 -1
- package/dist/esm/{dev.b2d9d35d.js → dev.3d88888b.js} +2 -2
- package/dist/esm/{dev.b2d9d35d.js.map → dev.3d88888b.js.map} +1 -1
- package/dist/esm/{header.a73b6e0a.js → header.a3da6906.js} +2 -2
- package/dist/esm/header.a3da6906.js.map +1 -0
- package/dist/esm/{helpers.fb1d7227.js → helpers.d32a342a.js} +20 -4
- package/dist/esm/helpers.d32a342a.js.map +1 -0
- package/dist/esm/index.d.ts +29 -14
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -8
- package/dist/esm/{location-info.5543bb05.js → location-info.4b39fdfc.js} +13 -3
- package/dist/esm/location-info.4b39fdfc.js.map +1 -0
- package/dist/esm/{location-panel.c620b13b.js → location-panel.c9942d88.js} +3 -3
- package/dist/esm/{location-panel.c620b13b.js.map → location-panel.c9942d88.js.map} +1 -1
- package/dist/esm/main.module.303f6d99.js.map +1 -1
- package/dist/esm/{main.module.f70e002b.js → main.module.504d756b.js} +4 -1
- package/dist/esm/main.module.504d756b.js.map +1 -0
- package/dist/esm/main.module.9c57cc95.js.map +1 -1
- package/dist/esm/{map-page.1da2d70c.js → map-page.660a1723.js} +8 -7
- package/dist/esm/map-page.660a1723.js.map +1 -0
- package/dist/esm/{map-view.1fc6297b.js → map-view.d1c5b113.js} +68 -40
- package/dist/esm/map-view.d1c5b113.js.map +1 -0
- package/dist/node/container.ab523076.js +2 -0
- package/dist/node/{container.053f798f.js.map → container.ab523076.js.map} +1 -1
- package/dist/node/{controls.6ec8e9ac.js → controls.511f309b.js} +2 -2
- package/dist/node/{controls.6ec8e9ac.js.map → controls.511f309b.js.map} +1 -1
- package/dist/node/{dev.4640438e.js → dev.709287ba.js} +2 -2
- package/dist/node/{dev.4640438e.js.map → dev.709287ba.js.map} +1 -1
- package/dist/node/{header.cf9ba12b.js → header.98a4cf12.js} +2 -2
- package/dist/node/{header.cf9ba12b.js.map → header.98a4cf12.js.map} +1 -1
- package/dist/node/helpers.6bda171f.js.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/location-info.db66c3fb.js +2 -0
- package/dist/node/location-info.db66c3fb.js.map +1 -0
- package/dist/node/{location-panel.2e422cc0.js → location-panel.dd1d2b37.js} +2 -2
- package/dist/node/{location-panel.2e422cc0.js.map → location-panel.dd1d2b37.js.map} +1 -1
- package/dist/node/main.module.7c928a6f.js +2 -0
- package/dist/node/main.module.7c928a6f.js.map +1 -0
- package/dist/node/main.module.91a06e96.css +2 -0
- package/dist/node/main.module.91a06e96.css.map +1 -0
- package/dist/node/{map-page.d0e099ab.js → map-page.a9602658.js} +2 -2
- package/dist/node/map-page.a9602658.js.map +1 -0
- package/dist/node/{map-view.9dc96288.js → map-view.663640da.js} +2 -2
- package/dist/node/map-view.663640da.js.map +1 -0
- package/package.json +5 -5
- package/src/dev/map-page.ts +2 -10
- package/src/helpers.ts +31 -4
- package/src/location-info/index.ts +15 -6
- package/src/location-panel/header.ts +5 -3
- package/src/main.module.sass +13 -6
- package/src/map-view.ts +92 -45
- package/dist/cjs/header.af864bde.js.map +0 -1
- package/dist/cjs/helpers.0f72ddaf.js.map +0 -1
- package/dist/cjs/location-info.92e70042.js.map +0 -1
- package/dist/cjs/main.module.62939ea7.js.map +0 -1
- package/dist/cjs/main.module.f57e27f2.css.map +0 -1
- package/dist/cjs/map-page.1e1970d8.js.map +0 -1
- package/dist/cjs/map-view.61e50e18.js.map +0 -1
- package/dist/esm/header.a73b6e0a.js.map +0 -1
- package/dist/esm/helpers.fb1d7227.js.map +0 -1
- package/dist/esm/location-info.5543bb05.js.map +0 -1
- package/dist/esm/main.module.f70e002b.js.map +0 -1
- package/dist/esm/map-page.1da2d70c.js.map +0 -1
- package/dist/esm/map-view.1fc6297b.js.map +0 -1
- package/dist/node/container.053f798f.js +0 -2
- package/dist/node/location-info.9f59aad3.js +0 -2
- package/dist/node/location-info.9f59aad3.js.map +0 -1
- package/dist/node/main.module.24615279.js +0 -2
- package/dist/node/main.module.24615279.js.map +0 -1
- package/dist/node/main.module.65e40c2e.css +0 -2
- package/dist/node/main.module.65e40c2e.css.map +0 -1
- package/dist/node/map-page.d0e099ab.js.map +0 -1
- package/dist/node/map-view.9dc96288.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAM,0BAAI,CAAA,GAAA,gDAAI,EAAE,MAAM,CAAC,CAAA,GAAA,mDAAK;AA2B5B,SAAS,2CAAqB,SAAS,EAAE,OAAyB,CAAC,CAAC;IAClE,MAAM,eAAE,WAAW,EAAE,GAAG,MAAM,GAAG;IACjC,QAAQ,GAAG,CAAC,8BAA8B;IAE1C,MAAM,MAAM,IAAI,CAAA,GAAA,yCAAO,EAAE,GAAG,CAAC;mBAC3B;QACA,SAAS;QACT,sBAAsB;QACtB,cAAc;QACd,aAAa;QACb,WAAW;QACX,oBAAoB;QACpB,GAAG,IAAI;IACT;IAEA,2BAA2B;IAC3B,IAAI,eAAe,MACjB,CAAA,GAAA,2CAAa,EAAE,KAAK;IAGtB,mCAAmC;IACnC,OAAO;AACT;AAEA,MAAM,2CAAkC;IACtC,QAAQ;QACN,KAAK;QACL,KAAK;QACL,UAAU;IACZ;AACF;AAEO,SAAS,0CAAQ,KAAmB;IACzC,IAAI,mBAAE,eAAe,EAAE,GAAG;IAC1B,MAAM,iBACJ,gBAAgB,aAChB,KAAK,eACL,cAAc,yDACd,gBAAgB,sDAChB,QAAQ,eACR,WAAW,eACX,aAAa;IACb,WAAW,sBACX,kBAAkB,oBAClB,gBAAgB,cAChB,UAAU,eACV,cAAc,qBACd,gBAAgB,kBAChB,aAAa,MACb,GAAG,MACJ,GAAG;IACJ,IAAI,eACF,oBAAoB;IAGtB,MAAM,eAAe,eAAe;IAEpC,IAAI,gBAAgB,MAClB,CAAA,GAAA,yCAAO,EAAE,WAAW,GAAG;IAGzB,MAAM,WAAW,CAAA,GAAA,2CAAa;IAC9B,IAAI,SAAS,CAAA,GAAA,sCAAQ;IACrB,MAAM,MAAM,CAAA,GAAA,mBAAK;IACjB,MAAM,YAAY,CAAA,GAAA,mBAAK;IAEvB,CAAA,GAAA,4CAAa,EAAE;QACb,gCAAgC,GAChC,IAAI,SAAS,MAAM;QACnB,IAAI,MAAM,OAAO,OAAO;QAExB;;;;;;KAMC,GACD,qEAAqE;QACrE,MAAM,iBACJ,OAAO,OAAO,cAAc,CAAA,GAAA,2CAAa,EAAE;QAC7C,IAAI,WAAW;QACf,MAAM,YAAE,QAAQ,EAAE,GAAG,CAAA,GAAA,wCAAU,EAAE;QAEjC;;KAEC,GACD,IAAI,OAAO,UAAU,UACnB,WAAW,MAAM,CAAA,GAAA,2CAAa,EAAE,OAAO;YACrC,cAAc,CAAA,GAAA,yCAAO,EAAE,WAAW;QACpC;QAGF,IAAI,UACF,0DAA0D;QAC1D,WAAW,CAAA,GAAA,8CAAgB,EAAE,UAA4B;QAG3D,IAAI,OAAO,MAAM;YACf,QAAQ,GAAG,CAAC,iBAAiB;YAC7B,IAAI,QAAQ,CAAC;QACf,OAAO;YACL,QAAQ,GAAG,CAAC,oBAAoB;YAChC,MAAM,MAAM,cAAc,IAAI,OAAO,EAAE;gBACrC,OAAO;4BACP;6BACA;kCACA;gBACA,GAAG,IAAI;YACT;YACA,SAAS;gBAAE,MAAM;gBAAW,SAAS;YAAI;YACzC,IAAI,UAAU,CAAC,CAAA,GAAA,uCAAY,EAAE,KAAK,YAAY;gBAAE,SAAS;YAAM;YAC/D,cAAc;QAChB;QAEA,MAAM,eAAe;YACnB,gBAAgB;YAChB,4BAA4B;YAC5B,SAAS;gBAAE,MAAM;gBAAoB,SAAS;YAAK;QACrD;QAEA,MAAM,OAAO,OAAO;QAEpB,IAAI,IAAI,KAAK,EAAE,SACb,8EAA8E;QAC9E;QAEF,IAAI,EAAE,CAAC,cAAc;QACrB,OAAO;YACL,IAAI,GAAG,CAAC,cAAc;QACxB;IACF,GAAG;QAAC;KAAM;IAEV,MAAM,uBAAuB,CAAA,GAAA,2CAAa;IAC1C,MAAM,YAAE,QAAQ,gBAAE,YAAY,EAAE,GAAG,CAAA,GAAA,wCAAU,EAAE;IAE/C,qBAAqB;IACrB,MAAM,cAAc,OAAO,OAAO,EAAE,iBAAiB,QAAQ;IAE7D,MAAM,YAAY,CAAA,GAAA,2CAAS,EACzB;QACE,cAAc,gBAAgB;QAC9B,mBAAmB,YAAY;IACjC,GACA,GAAG,YAAY,WAAW,CAAC;IAG7B,OAAO,wBAAE,oCAAoC;QAAE,KAAK;IAAU,GAAG;QAC/D,wBAAE,sBAAsB;iBAAE;uBAAK;QAAU;QACzC,wBAAE,CAAA,GAAA,4CAAiB,GAAG;YACpB,gBAAgB;gBAAC;gBAAmB;aAAwB;QAC9D;QACA,wBAAE,CAAA,GAAA,0CAAe,GAAG;wBAAE;QAAW;QACjC,wBAAE,CAAA,GAAA,0CAAe,GAAG;YAAE,cAAc;QAAI;QACxC,wBAAE,CAAA,GAAA,2CAAgB,GAAG;YAAE,cAAc;uBAAK;gCAAW;QAAmB;QACxE,wBAAE,2CAAmB;sBAAE;6BAAU;mBAAiB;QAAM;QACxD;KACD;AACH;AAEO,SAAS,0CAAkB,YAChC,QAAQ,mBACR,eAAe,SACf,KAAK,EAKN;IACC,CAAA,GAAA,yCAAW,EAAE,UAAU;IAEvB,OAAO;AACT","sources":["packages/map-interface/src/map-view.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n useMapPosition,\n setup3DTerrain,\n use3DTerrain,\n addTerrainToStyle,\n} from \"@macrostrat/mapbox-react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n getMapPosition,\n getMapboxStyle,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef } from \"react\";\nimport styles from \"./main.module.sass\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"./helpers\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { getMapPadding } from \"./utils\";\nimport { useAsyncEffect } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n mapboxToken?: string;\n // Deprecated\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n mapPosition?: MapPosition;\n initializeMap?: (\n container: HTMLElement,\n args: MapboxOptionsExt\n ) => mapboxgl.Map;\n onMapLoaded?: (map: mapboxgl.Map) => void;\n onStyleLoaded?: (map: mapboxgl.Map) => void;\n onMapMoved?: (mapPosition: MapPosition, map: mapboxgl.Map) => void;\n}\n\nexport interface MapboxOptionsExt extends MapboxCoreOptions {\n mapPosition?: MapPosition;\n}\n\nfunction defaultInitializeMap(container, args: MapboxOptionsExt = {}) {\n const { mapPosition, ...rest } = args;\n console.log(\"Initializing map (default)\", args);\n\n const map = new mapboxgl.Map({\n container,\n maxZoom: 18,\n //maxTileCacheSize: 0,\n logoPosition: \"bottom-left\",\n trackResize: true,\n antialias: true,\n optimizeForTerrain: true,\n ...rest,\n });\n\n // set initial map position\n if (mapPosition != null) {\n setMapPosition(map, mapPosition);\n }\n\n //setMapPosition(map, mapPosition);\n return map;\n}\n\nconst defaultMapPosition: MapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000,\n },\n};\n\nexport function MapView(props: MapViewProps) {\n let { terrainSourceID } = props;\n const {\n enableTerrain = true,\n style,\n mapPosition = defaultMapPosition,\n initializeMap = defaultInitializeMap,\n children,\n mapboxToken,\n // Deprecated\n accessToken,\n infoMarkerPosition,\n transformRequest,\n projection,\n onMapLoaded = null,\n onStyleLoaded = null,\n onMapMoved = null,\n ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n const _mapboxToken = mapboxToken ?? accessToken;\n\n if (_mapboxToken != null) {\n mapboxgl.accessToken = _mapboxToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n useAsyncEffect(async () => {\n /** Manager to update map style */\n if (style == null) return;\n let map = mapRef.current;\n\n /** If we can, we try to update the map style with terrain information\n * immediately, before the style is loaded. This allows us to avoid a\n * flash of the map without terrain.\n *\n * To do this, we need to estimate the map position before load, which\n * doesn't always work.\n */\n // We either get the map position directly from the map or from props\n const estMapPosition: MapPosition | null =\n map == null ? mapPosition : getMapPosition(map);\n let newStyle = style;\n const { mapUse3D } = mapViewInfo(estMapPosition);\n\n /** If style is a string, we can't update it with terrain layers immediately.\n * We need to wait for the style to load and then update it.\n */\n if (typeof style === \"string\") {\n newStyle = await getMapboxStyle(style, {\n access_token: mapboxgl.accessToken,\n });\n }\n\n if (mapUse3D) {\n // We can update the style with terrain layers immediately\n newStyle = addTerrainToStyle(newStyle as mapboxgl.Style, terrainSourceID);\n }\n\n if (map != null) {\n console.log(\"Setting style\", newStyle);\n map.setStyle(newStyle);\n } else {\n console.log(\"Initializing map\", newStyle);\n const map = initializeMap(ref.current, {\n style: newStyle,\n projection,\n mapPosition,\n transformRequest,\n ...rest,\n });\n dispatch({ type: \"set-map\", payload: map });\n map.setPadding(getMapPadding(ref, parentRef), { animate: false });\n onMapLoaded?.(map);\n }\n\n const loadCallback = () => {\n onStyleLoaded?.(map);\n // Set initial terrain state\n dispatch({ type: \"set-style-loaded\", payload: true });\n };\n\n map = mapRef.current;\n\n if (map.style?._loaded) {\n // Catch a race condition where the style is loaded before the callback is set\n loadCallback();\n }\n map.on(\"style.load\", loadCallback);\n return () => {\n map.off(\"style.load\", loadCallback);\n };\n }, [style]);\n\n const _computedMapPosition = useMapPosition();\n const { mapUse3D, mapIsRotated } = mapViewInfo(_computedMapPosition);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const className = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false,\n },\n `${_projection}-projection`\n );\n\n return h(\"div.map-view-container.main-view\", { ref: parentRef }, [\n h(\"div.mapbox-map#map\", { ref, className }),\n h(MapLoadingReporter, {\n ignoredSources: [\"elevationMarker\", \"crossSectionEndpoints\"],\n }),\n h(MapMovedReporter, { onMapMoved }),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, { containerRef: ref, parentRef, infoMarkerPosition }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID, style }),\n children,\n ]);\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n style,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n style?: mapboxgl.Style | string;\n}) {\n use3DTerrain(mapUse3D, terrainSourceID);\n\n return null;\n}\n"],"names":[],"version":3,"file":"map-view.61e50e18.js.map"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;;;AAYA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,sEAAK;AAE5B,SAAS,qCAAe,YAAE,QAAQ,UAAE,MAAM,gBAAE,eAAe,OAAO;IAChE,MAAM,aAAa,CAAA,GAAA,oBAAY,EAAE;IAEjC,MAAM,oBAAoB,CAAA,GAAA,iBAAS,EAAE,eAAe;IAEpD,OAAO,wBAAE,yBAAyB;QAChC,wBAAE,CAAA,GAAA,0BAAkB,GAAG;YAAE,UAAU;oBAAU;wBAAQ;QAAW,GAAG,EAAE;QACrE,wBAAE,EAAE,CAAC,qBAAqB,YAAY,MAAM,sCAAgB;YAC1D,UAAU;QACZ;KACD;AACH;AAEA,SAAS,qCAAe,YAAE,QAAQ,YAAE,QAAQ,WAAE,OAAO,EAAE,GAAG,MAAM;IAC9D,MAAM,UAAU,CAAA,GAAA,iBAAS;IAEzB,IAAI,UAAU,CAAC,WAAW,CAAC;IAC3B,IAAI,YAAY,MACd,WAAW,CAAC,IAAI,EAAE,UAAU;IAE9B,WAAW;IAEX,OAAO,wBACL,CAAA,GAAA,aAAK,GACL;QACE,WAAW;QACX,WAAW,wBAAE,CAAA,GAAA,WAAG,GAAG;YAAE,MAAM;YAAQ,MAAM;QAAG;QAC5C,SAAS;QACT,OAAO;QACP;YACE,UAAU,SAAS,CAAC,SAAS,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CACtD;gBACE,SAAS,KAAK;6BACZ;oBACA,QAAQ;oBACR,MAAM;oBACN,SAAS;gBACX;gBACA;YACF,GACA;gBACE,SAAS,KAAK;oBACZ,SAAS;oBACT,QAAQ;oBACR,MAAM;oBACN,SAAS;gBACX;YACF;QAEJ;QACA,GAAG,IAAI;IACT,GACA,YAAY;AAEhB;AAcO,SAAS,0CAAiB,KAA4B;IAC3D,MAAM,WACJ,OAAO,YACP,QAAQ,UACR,MAAM,QACN,OAAO,cACP,SAAS,0BACT,sBAAsB,eACtB,cAAc,iBACd,QAAQ,aACR,SAAS,EACV,GAAG;IAEJ,IAAI,aAAa;IACjB,IAAI,UAAU,QAAQ,YAAY,MAChC,aAAa,wBAAE,sCAAgB;kBAC7B;gBACA;QACA,cAAc;IAChB;IAGF,OAAO,wBACL,gCACA;QACE,WAAW,CAAA,GAAA,iBAAS,EAAE,WAAW;YAAE,gBAAgB;QAAY;IACjE,GACA;QACE;QACA;QACA,wBAAE;QACF,wBAAE,EAAE,CAAC,YAAY,MAAM,CAAA,GAAA,yCAAW,GAAG;sBACnC;kBACA;YACA,WAAW;QACb;QACA,wBAAE,EAAE,CAAC,aAAa,MAAM,CAAA,GAAA,yCAAQ,GAAG;uBACjC;YACA,WAAW;QACb;QACA,wBAAE,EAAE,CAAC,WAAW,MAAM,CAAA,GAAA,aAAK,GAAG;YAC5B,SAAS;YACT,MAAM;YACN,SAAS;QACX;KACD;AAEL","sources":["packages/map-interface/src/location-panel/header.ts"],"sourcesContent":["import { Icon, Button } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useToaster } from \"@macrostrat/ui-components\";\nimport { LngLatCoords, Elevation } from \"../location-info\";\nimport {\n LocationFocusButton,\n useFocusState,\n isCentered,\n} from \"@macrostrat/mapbox-react\";\nimport classNames from \"classnames\";\n\nconst h = hyper.styled(styles);\n\nfunction PositionButton({ position, bounds, showCopyLink = false }) {\n const focusState = useFocusState(position);\n\n const copyLinkIsVisible = isCentered(focusState) && showCopyLink;\n\n return h(\"div.position-controls\", [\n h(LocationFocusButton, { location: position, bounds, focusState }, []),\n h.if(copyLinkIsVisible && position != null)(CopyLinkButton, {\n itemName: \"position\",\n }),\n ]);\n}\n\nfunction CopyLinkButton({ itemName, children, onClick, ...rest }) {\n const toaster = useToaster();\n\n let message = `Copied link`;\n if (itemName != null) {\n message += ` to ${itemName}`;\n }\n message += \"!\";\n\n return h(\n Button,\n {\n className: \"copy-link-button\",\n rightIcon: h(Icon, { icon: \"link\", size: 12 }),\n minimal: true,\n small: true,\n onClick() {\n navigator.clipboard.writeText(window.location.href).then(\n () => {\n toaster?.show({\n message,\n intent: \"success\",\n icon: \"clipboard\",\n timeout: 1000,\n });\n onClick?.();\n },\n () => {\n toaster?.show({\n message: \"Failed to copy link\",\n intent: \"danger\",\n icon: \"error\",\n timeout: 1000,\n });\n }\n );\n },\n ...rest,\n },\n children ?? \"Copy link\"\n );\n}\n\nexport interface InfoDrawerHeaderProps {\n onClose?: () => void;\n position?: mapboxgl.LngLat;\n zoom?: number;\n elevation?: number;\n showCopyPositionButton?: boolean;\n bounds?: mapboxgl.LngLatBounds;\n fixedHeight?: boolean;\n children?: React.ReactNode;\n className?: string;\n}\n\nexport function InfoDrawerHeader(props: InfoDrawerHeaderProps) {\n const {\n onClose,\n position,\n bounds,\n zoom = 7,\n elevation,\n showCopyPositionButton,\n fixedHeight = false,\n children,\n className,\n } = props;\n\n let leftButton = null;\n if (bounds != null || position != null) {\n leftButton = h(PositionButton, {\n position,\n bounds,\n showCopyLink: showCopyPositionButton,\n });\n }\n\n return h(\n \"header.location-panel-header\",\n {\n className: classNames(className, { \"fixed-height\": fixedHeight }),\n },\n [\n leftButton,\n children,\n h(\"div.spacer\"),\n h.if(position != null)(LngLatCoords, {\n position,\n zoom,\n className: \"infodrawer-header-item\",\n }),\n h.if(elevation != null)(Elevation, {\n elevation,\n className: \"infodrawer-header-item\",\n }),\n h.if(onClose != null)(Button, {\n minimal: true,\n icon: \"cross\",\n onClick: onClose,\n }),\n ]\n );\n}\n"],"names":[],"version":3,"file":"header.a73b6e0a.js.map"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;AAiBO,SAAS,0CAAiB,gBAAE,YAAY,EAAE;IAC/C,MAAM,SAAS,CAAA,GAAA,gBAAQ;IAEvB,MAAM,kBAAkB,CAAA,GAAA,aAAK,EAC3B,CAAA,GAAA,eAAO,EAAE;QACP,OAAO,OAAO,EAAE;IAClB,GAAG;IAGL,CAAA,GAAA,wBAAgB,EAAE;QAChB,KAAK;QACL,UAAU,gBAAgB,OAAO;IACnC;IAEA,OAAO;AACT;AASO,SAAS,0CAAkB,gBAChC,YAAY,aACZ,SAAS,sBACT,kBAAkB,gBAClB,eAAe,KACQ;IACvB,MAAM,SAAS,CAAA,GAAA,gBAAQ;IAEvB,MAAM,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,eAAO,EACnC,CAAA,GAAA,yCAAY,EAAE,cAAc;IAG9B,MAAM,oBAAoB,CAAA,GAAA,kBAAU,EAAE;QACpC,MAAM,aAAa,CAAA,GAAA,yCAAY,EAAE,cAAc;QAC/C,WAAW;IACb,GAAG;QAAC,aAAa,OAAO;QAAE,UAAU,OAAO;KAAC;IAE5C,MAAM,mBAAmB,CAAA,GAAA,cAAM,EAC7B,IAAM,CAAA,GAAA,eAAO,EAAE,mBAAmB,eAClC;QAAC;QAAmB;KAAa;IAGnC,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,MAAM,OAAO,OAAO;QAC1B,IAAI,OAAO,MAAM;QACjB,6BAA6B;QAC7B;IACF,GAAG;QAAC,OAAO,OAAO;KAAC;IAEnB,CAAA,GAAA,wBAAgB,EAAE;QAChB,KAAK;QACL,UAAS,EAAE;YACT;QACF;QACA,OAAM,CAAC;YACL,OAAO,KAAK,KAAK,CAAC;QACpB;IACF;IAEA,2EAA2E;IAC3E,CAAA,GAAA,mBAAW,EAAE;QAAE,QAAQ;iBAAoB;IAAQ;IAEnD,OAAO;AACT;AAEO,SAAS,0CAAiB,cAAE,aAAa,MAAM;IACpD,MAAM,SAAS,CAAA,GAAA,gBAAQ;IACvB,MAAM,WAAW,CAAA,GAAA,qBAAa;IAC9B,MAAM,gBAAgB,CAAA,GAAA,wBAAgB;IAEtC,MAAM,mBAAmB,CAAA,GAAA,kBAAU,EAAE;QACnC,MAAM,MAAM,OAAO,OAAO;QAC1B,IAAI,OAAO,MAAM;QACjB,MAAM,cAAc,CAAA,GAAA,qBAAa,EAAE;QACnC,SAAS;YAAE,MAAM;YAAa,SAAS;QAAY;QACnD,aAAa,aAAa;IAC5B,GAAG;QAAC;QAAY;QAAU;KAAc;IAExC,CAAA,GAAA,gBAAQ,EAAE;QACR,qEAAqE;QACrE,uBAAuB;QACvB,MAAM,MAAM,OAAO,OAAO;QAC1B,IAAI,OAAO,MAAM;QACjB,oCAAoC;QACpC;QACA,MAAM,KAAK,CAAA,GAAA,eAAO,EAAE,kBAAkB;QACtC,IAAI,EAAE,CAAC,WAAW;QAClB,OAAO;YACL,KAAK,IAAI,WAAW;QACtB;IACF,GAAG;QAAC;KAAiB;IACrB,OAAO;AACT;AAEO,SAAS,0CAAmB,kBACjC,cAAc,gBACd,eAAe,iBACf,YAAY,oBACZ,YAAY,EACb;IACC,MAAM,SAAS,CAAA,GAAA,gBAAQ;IACvB,MAAM,aAAa,CAAA,GAAA,aAAK,EAAE;IAC1B,MAAM,WAAW,CAAA,GAAA,qBAAa;IAC9B,MAAM,gBAAgB,CAAA,GAAA,wBAAgB;IAEtC,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,MAAM,OAAO,OAAO;QAC1B,MAAM,eAAe,WAAW,OAAO;QACvC,IAAI,OAAO,MAAM;QAEjB,IAAI,iBAAiB;QAErB,MAAM,kBAAkB,CAAC;YACvB,IAAI,eAAe,QAAQ,CAAC,IAAI,QAAQ,KAAK,cAAc;YAC3D,IAAI,gBAAgB;YACpB,eAAe;YACf,SAAS;gBAAE,MAAM;gBAAe,SAAS;YAAK;YAC9C,WAAW,OAAO,GAAG;YACrB,iBAAiB;QACnB;QACA,MAAM,eAAe,CAAC;YACpB,IAAI,CAAC,cAAc;YACnB,SAAS;gBAAE,MAAM;gBAAe,SAAS;YAAM;YAC/C,WAAW,OAAO,GAAG;YACrB,YAAY;QACd;QACA,IAAI,EAAE,CAAC,qBAAqB;QAC5B,IAAI,EAAE,CAAC,QAAQ;QACf,OAAO;YACL,KAAK,IAAI,qBAAqB;YAC9B,KAAK,IAAI,QAAQ;QACnB;IACF,GAAG;QAAC;QAAgB;QAAc;KAAc;IAChD,OAAO;AACT;AAEO,SAAS,0CAAU,YAAE,QAAQ,eAAE,WAAW,gBAAE,eAAe,MAAM;IACtE,MAAM,SAAS,CAAA,GAAA,gBAAQ;IACvB,MAAM,YAAY,CAAA,GAAA,aAAK,EAAE;IACzB,MAAM,gBAAgB,CAAA,GAAA,wBAAgB;IAEtC,CAAA,GAAA,yCAAW,EAAE,QAAQ,WAAW;IAEhC,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,MAAM,OAAO,OAAO;QAC1B,IAAI,OAAO,QAAQ,eAAe,MAAM;QAExC,MAAM,iBAAiB,CAAC;YACtB,YAAY,MAAM,MAAM,EAAE,OAAO,OAAO,OAAO;YAC/C,wDAAwD;YACxD,IAAI,cACF,OAAO,OAAO,EAAE,MAAM;gBAAE,QAAQ,MAAM,MAAM;gBAAE,UAAU;YAAI;QAEhE;QAEA,IAAI,EAAE,CAAC,SAAS;QAEhB,OAAO;YACL,KAAK,IAAI,SAAS;QACpB;IACF,GAAG;QAAC;QAAa;KAAc;IAE/B,OAAO;AACT;AAEO,SAAS;IACd,MAAM,aAAa,CAAA,GAAA,oBAAY;IAC/B,OAAO,aACH,oCACA;AACN","sources":["packages/map-interface/src/helpers.ts"],"sourcesContent":["import {\n useMapRef,\n useMapEaseTo,\n useMapDispatch,\n useMapStatus,\n useMapInitialized,\n} from \"@macrostrat/mapbox-react\";\nimport { useMemo, useRef } from \"react\";\nimport { debounce } from \"underscore\";\nimport useResizeObserver from \"use-resize-observer\";\n\nimport { getMapPosition } from \"@macrostrat/mapbox-utils\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\n\nexport function MapResizeManager({ containerRef }) {\n const mapRef = useMapRef();\n\n const debouncedResize = useRef(\n debounce(() => {\n mapRef.current?.resize();\n }, 100)\n );\n\n useResizeObserver({\n ref: containerRef,\n onResize: debouncedResize.current,\n });\n\n return null;\n}\n\ninterface MapPaddingManagerProps {\n containerRef: React.RefObject<HTMLDivElement>;\n parentRef: React.RefObject<HTMLDivElement>;\n infoMarkerPosition: mapboxgl.LngLatLike;\n debounceTime?: number;\n}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\n debounceTime = 200,\n}: MapPaddingManagerProps) {\n const mapRef = useMapRef();\n\n const [padding, setPadding] = useState(\n getMapPadding(containerRef, parentRef)\n );\n\n const _updateMapPadding = useCallback(() => {\n const newPadding = getMapPadding(containerRef, parentRef);\n setPadding(newPadding);\n }, [containerRef.current, parentRef.current]);\n\n const updateMapPadding = useMemo(\n () => debounce(_updateMapPadding, debounceTime),\n [_updateMapPadding, debounceTime]\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [mapRef.current]);\n\n useResizeObserver({\n ref: parentRef,\n onResize(sz) {\n updateMapPadding();\n },\n round(n) {\n return Math.round(n);\n },\n });\n\n // Ideally, we would not have to do this when we know the infobox is loaded\n useMapEaseTo({ center: infoMarkerPosition, padding });\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n const mapMovedCallback = useCallback(() => {\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = getMapPosition(map);\n dispatch({ type: \"map-moved\", payload: mapPosition });\n onMapMoved?.(mapPosition, map);\n }, [onMapMoved, dispatch, isInitialized]);\n\n useEffect(() => {\n // Get the current value of the map. Useful for gradually moving away\n // from class component\n const map = mapRef.current;\n if (map == null) return;\n // Update the URI when the map moves\n mapMovedCallback();\n const cb = debounce(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return () => {\n map?.off(\"moveend\", cb);\n };\n }, [mapMovedCallback]);\n return null;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}) {\n const mapRef = useMapRef();\n const loadingRef = useRef(false);\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n useEffect(() => {\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n\n let didSendLoading = false;\n\n const loadingCallback = (evt) => {\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({ type: \"set-loading\", payload: true });\n loadingRef.current = true;\n didSendLoading = true;\n };\n const idleCallback = (evt) => {\n if (!mapIsLoading) return;\n dispatch({ type: \"set-loading\", payload: false });\n loadingRef.current = false;\n onMapIdle?.(evt);\n };\n map.on(\"sourcedataloading\", loadingCallback);\n map.on(\"idle\", idleCallback);\n return () => {\n map?.off(\"sourcedataloading\", loadingCallback);\n map?.off(\"idle\", idleCallback);\n };\n }, [ignoredSources, mapIsLoading, isInitialized]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n const isInitialized = useMapInitialized();\n\n useMapMarker(mapRef, markerRef, position);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null || setPosition == null) return;\n\n const handleMapClick = (event: mapboxgl.MapMouseEvent) => {\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) {\n mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });\n }\n };\n\n map.on(\"click\", handleMapClick);\n\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [setPosition, isInitialized]);\n\n return null;\n}\n\nexport function useBasicStylePair() {\n const inDarkMode = useInDarkMode();\n return inDarkMode\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n}\n"],"names":[],"version":3,"file":"helpers.fb1d7227.js.map"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;AAUO,SAAS,0CAAc,KAAK;IACjC,MAAM,SAAE,KAAK,QAAE,IAAI,EAAE,GAAG;IACxB,OAAO,CAAA,GAAA,sBAAA,EAAE,wBAAwB;QAC/B,CAAA,GAAA,sBAAA,EAAE,cAAc;YAAC;SAAM;QACvB,CAAA,GAAA,sBAAA,EAAE,eAAe;YAAC;SAAI;QACtB,CAAA,GAAA,sBAAA,EAAE,aAAa;YAAC;SAAK;KACtB;AACH;AAEO,SAAS,0CAAY,KAAK;IAC/B,MAAM,SAAE,KAAK,UAAE,MAAM,aAAE,YAAY,WAAG,SAAS,CAAA,GAAA,yCAAU,GAAG,GAAG;IAC/D,MAAM,YAAY,QAAQ,IAAI,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE;IAEnD,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAe;QACtB,OAAO,OAAO,KAAK,GAAG,CAAC,QAAQ,aAAa;QAC5C,MAAM;IACR;AACF;AAcO,SAAS,0CAAa,KAAkB;IAC7C,qCAAqC,GACrC,MAAM,YAAE,QAAQ,aAAE,SAAS,aAAE,SAAS,QAAE,IAAI,EAAE,GAAG;IACjD,IAAI,UAAE,MAAM,EAAE,GAAG;IACjB,IAAI,YAAY,MACd,OAAO;IAET,IAAI,KAAK;IACT,IAAI,MAAM,OAAO,CAAC,WAChB,CAAC,KAAK,IAAI,GAAG;SAEZ,CAAA,OAAE,GAAG,OAAE,GAAG,EAAE,GAAG,QAAO;IAGzB,IAAI,QAAQ,QAAQ,UAAU,QAAQ,aAAa,MACjD,SAAS,CAAC,KAAK,IAAM,CAAA,GAAA,8BAAsB,EAAE,KAAK;IAGpD,OAAO,CAAA,GAAA,sBAAA,EAAE,wBAAwB;mBAAE;IAAU,GAAG;QAC9C,CAAA,GAAA,sBAAA,EAAE,eAAe;YACf,CAAA,GAAA,sBAAA,EAAE,2CAAa;gBACb,OAAO;gBACP,QAAQ;oBAAC;oBAAK;iBAAI;2BAClB;wBACA;YACF;YACA;YACA,CAAA,GAAA,sBAAA,EAAE,2CAAa;gBACb,OAAO,CAAA,GAAA,mBAAW,EAAE;gBACpB,QAAQ;oBAAC;oBAAK;iBAAI;2BAClB;wBACA;YACF;SACD;KACF;AACH;AAEO,SAAS,0CAAU,KAAK;IAC7B,iFAAiF,GACjF,MAAM,aAAE,SAAS,aAAE,SAAS,eAAE,cAAc,MAAM,GAAG;IACrD,IAAI,aAAa,MAAM,OAAO;IAC9B,OAAO,CAAA,GAAA,sBAAA,EAAE,iBAAiB;mBAAE;IAAU,GAAG;QACvC,CAAA,GAAA,sBAAA,EAAE,2CAAe;YAAE,OAAO;YAAW,MAAM;QAAI;QAC/C,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,aAAa,kBAAkB;YAClC;YACA,CAAA,GAAA,sBAAA,EAAE,2CAAe;gBAAE,OAAO,CAAA,GAAA,mBAAW,EAAE;gBAAY,MAAM;YAAK;YAC9D;SACD;KACF;AACH","sources":["packages/map-interface/src/location-info/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n formatCoordForZoomLevel,\n metersToFeet,\n normalizeLng,\n} from \"@macrostrat/mapbox-utils\";\nimport { formatValue } from \"./utils\";\n\nexport * from \"./hash-string\";\n\nexport function ValueWithUnit(props) {\n const { value, unit } = props;\n return h(\"span.value-with-unit\", [\n h(\"span.value\", [value]),\n h(\"span.spacer\", [\" \"]),\n h(\"span.unit\", [unit]),\n ]);\n}\n\nexport function DegreeCoord(props) {\n const { value, labels, precision = 3, format = formatValue } = props;\n const direction = value < 0 ? labels[1] : labels[0];\n\n return h(ValueWithUnit, {\n value: format(Math.abs(value), precision) + \"°\",\n unit: direction,\n });\n}\n\nexport interface LngLatProps {\n /** Map position */\n position: [number, number] | { lat: number; lng: number };\n className?: string;\n /** Zoom level (used to infer coordinate rounding if provided) */\n zoom?: number | null;\n /** Number of decimal places to round coordinates to */\n precision: number | null;\n /** Function to format coordinates */\n format?: (val: number, precision: number) => string;\n}\n\nexport function LngLatCoords(props: LngLatProps) {\n /** Formatted geographic coordinates */\n const { position, className, precision, zoom } = props;\n let { format } = props;\n if (position == null) {\n return null;\n }\n let lat, lng;\n if (Array.isArray(position)) {\n [lng, lat] = position;\n } else {\n ({ lat, lng } = position);\n }\n\n if (zoom != null && format == null && precision == null) {\n format = (val, _) => formatCoordForZoomLevel(val, zoom);\n }\n\n return h(\"div.lnglat-container\", { className }, [\n h(\"span.lnglat\", [\n h(DegreeCoord, {\n value: lat,\n labels: [\"N\", \"S\"],\n precision,\n format,\n }),\n \", \",\n h(DegreeCoord, {\n value: normalizeLng(lng),\n labels: [\"E\", \"W\"],\n precision,\n format,\n }),\n ]),\n ]);\n}\n\nexport function Elevation(props) {\n /** Renders an elevation value in meters and a parenthetical conversion to feet. */\n const { elevation, className, includeFeet = true } = props;\n if (elevation == null) return null;\n return h(\"div.elevation\", { className }, [\n h(ValueWithUnit, { value: elevation, unit: \"m\" }),\n h.if(includeFeet)(\"span.secondary\", [\n \" (\",\n h(ValueWithUnit, { value: metersToFeet(elevation), unit: \"ft\" }),\n \")\",\n ]),\n ]);\n}\n"],"names":[],"version":3,"file":"location-info.5543bb05.js.map"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AApDA,4CAAkC;AAClC,2CAAwC;AACxC,4CAAuC;AACvC,4CAAiC;AACjC,4CAAoC;AACpC,4CAAmC;AACnC,4CAAmC;AACnC,4CAAqC;AACrC,4CAAkC;AAClC,4CAAkC;AAClC,4CAAsC;AACtC,4CAAiC;AACjC,4CAAuC;AACvC,4CAAwC;AACxC,4CAAsC;AACtC,4CAA6B;AAC7B,4CAA2B;AAC3B,4CAA+B;AAC/B,4CAAyC;AACzC,4CAA+B;AAC/B,4CAAkC;AAClC,4CAA8B;AAC9B,4CAAiC;AACjC,4CAAoC;AACpC,4CAAgC;AAChC,4CAA2B;AAC3B,4CAAqC;AACrC,2CAAgC;AAChC,4CAA4B;AAC5B,4CAA+B;AAC/B,2CAA8B;AAC9B,2CAAgC;AAChC,4CAAiC;AACjC,4CAA4B;AAC5B,4CAAwC;AACxC,4CAAiC;AACjC,4CAA+B;AAC/B,4CAAiC;AACjC,4CAAqC;AACrC,4CAA2C;AAC3C,4CAAuC;AACvC,4CAAiC;AACjC,4CAAsC;AACtC,4CAAuC;AACvC,4CAAqC;AACrC,4CAAiC;AACjC,4CAAmC;AACnC,4CAAuC;AACvC,4CAAwC;AACxC,4CAA0C;AAC1C,4CAAsC;AACtC,4CAAuC;AACvC,4CAAkC","sources":["packages/map-interface/src/main.module.sass"],"sourcesContent":[".map-container\n display: flex\n flex-direction: column\n position: relative\n width: 100%\n height: 100%\n overflow: hidden\n --map-panel-border-radius: 4px\n\n &.show-panel-outlines\n .map-view-container\n outline: 2px dotted dodgerblue\n\n &.fit-viewport\n height: 100vh\n width: 100vw\n /* mobile viewport bug fix */\n max-height: -webkit-fill-available\n\n // Compass display\n .compass-control\n display: none\n\n &.map-is-rotated\n .compass-control\n display: block\n\n .map-3d-control\n display: none\n\n &.map-3d-available .map-3d-control\n display: block\n\n &.map-is-rotated.map-3d-available .map-3d-control\n display: none\n\n .globe-control\n display: none\n\n svg\n color: var(--secondary-color)\n\n &.map-is-global .globe-control\n display: block\n\n &.detail-panel-open\n .zoom-control\n opacity: 0\n display: none\n\n &.detail-panel-fixed\n .detail-panel-holder\n & > *\n border-radius: unset\n\n.detail-panel-holder\n display: flex\n flex-direction: column\n min-height: 0\n\n & > *\n flex: 1\n\n.map-control-stack\n display: flex\n flex-direction: column\n width: 30em\n margin-left: -30em\n pointer-events: none\n\n.main-row\n flex: 1\n display: flex\n flex-direction: row\n position: relative\n max-height: 100%\n min-height: 0\n\n.map-ui\n flex: 1\n position: relative\n display: flex\n flex-direction: column\n max-height: 100%\n height: 100%\n box-shadow: 0 0 10px 4px var(--card-shadow-color)\n\n.map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n.mapbox-map\n position: absolute\n top: 0\n bottom: 0\n left: 0\n right: 0\n\n &:global(.mapboxgl-map)\n // override the default mapbox position: relative in all cases\n position: absolute\n\n\n.context-panel-holder > :global(.bp5-card)\n padding: 10px\n background-color: var(--panel-background-color)\n\n.panel-card\n padding: 10px\n background-color: var(--panel-background-color)\n overflow: hidden\n border-radius: var(--map-panel-border-radius)\n\n & > :last-child\n margin-bottom: 0\n\n:global(.bp5-dark) .panel-card\n background-color: var(--panel-background-color)\n\n.context-stack\n & > div\n flex-shrink: 1\n\n & > .searchbar\n flex: 0\n\n.context-stack,\n.detail-stack\n z-index: 10\n max-height: 100%\n\n.panel-container\n display: flex\n flex-direction: column\n\n & > div\n pointer-events: all\n\n.panel-title\n font-size: 16px\n\n.spacer\n flex-grow: 1\n pointer-events: none\n\n.map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n.searchbar-holder\n margin-bottom: 0.5em\n\n.right-panel\n width: 24em\n\n.buttons\n display: flex\n flex-direction: row\n flex: 1\n min-width: 0\n\n.tab-button\n flex-shrink: 1\n min-width: 40px\n overflow: hidden\n text-align: right\n\n & :global(.bp5-button-text)\n transition: all 0.2s\n transition-delay: 0.1s\n\n .menu-card.narrow-card .panel-header:not(.minimal) &:global(.bp5-active) ~ & :global(.bp5-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n .context-panel-leave .menu-card .panel-header & :global(.bp5-button-text)\n opacity: 0\n width: 0\n\n.narrow-card.narrow-enter .panel-header .buttons\n margin-right: -500px\n\n.panel-header.minimal .tab-button:not(:hover):not(:global(.bp5-active))\n padding-left: 0\n padding-right: 0\n min-width: 30px\n width: 30px\n\n.panel-header.minimal .tab-button:not(:hover) :global(.bp5-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n.menu-group\n margin-bottom: 0.5em\n margin-top: 0.2em\n\n.menu-card :global .bp5-text ul,\n.menu-card :global .text-panel ul\n padding-left: 1em\n\n.menu-content\n display: flex\n flex-direction: column\n margin-bottom: -8px\n\n & .bp5-button-group\n margin-bottom: 4px\n\n & hr\n width: 100%\n\n:global\n .mapbox-map\n .mapbox-compass, .mapbox-3d\n display: none\n\n .mapboxgl-ctrl.mapbox-3d.mapbox-control\n width: unset\n\n .mapboxgl-ctrl.mapbox-3d.mapbox-control button\n width: unset\n padding-inline: 4px\n\n .mapboxgl-canvas-container\n width: 100%\n height: 100%\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib\n background-color: var(--translucent-panel-background-color) !important\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib a\n color: var(--text-color)\n\n .mapboxgl-marker svg path\n fill: var(--panel-background-color) !important\n\n .mapboxgl-marker svg circle\n fill: var(--secondary-color) !important\n\n .mapbox-control.mapbox-zoom\n background: var(--translucent-panel-background-inner)\n\n .mapbox-control.mapbox-zoom svg\n fill: var(--text-color) !important\n\n .mapboxgl-ctrl-logo\n transform: scale(0.9) translate(-8px, 2px)\n\n .bp5-dark\n .mapboxgl-ctrl-group\n background-color: var(--panel-background-color)\n\n .mapboxgl-ctrl-logo\n filter: invert(100%)\n\n .mapboxgl-ctrl-group button + button\n border-top: 1px solid var(--panel-rule-color) !important\n\n .bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n .bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n.detail-stack\n position: relative\n\n.detail-panel-container, .map-right-controls\n flex: 1\n\n\n.zoom-control\n transition: opacity 1s ease-in-out\n width: 30px\n position: absolute\n top: 0\n right: 0\n\n.map-controls\n display: flex\n flex-direction: row\n justify-content: right\n margin-bottom: 0\n gap: 0.5em\n\n :global(.map-control)\n & > :global(.bp5-button)\n padding: 0\n transform: translate(-3.5px, -3.5px)\n width: 22px !important\n\n\n.map-controls :global(.mapbox-control),\n.map-controls :global(.map-control-wrapper),\n.map-controls :global(.map-control)\n max-height: 22px\n height: 22px\n border-radius: 4px\n background-color: var(--panel-background-color)\n box-shadow: 0 0 0 1px var(--card-shadow-color)\n\n.map-controls :global(.mapbox-control) button,\n.map-controls :global(.map-control-wrapper) button,\n.map-controls :global(.map-control) button\n max-height: 22px\n height: 22px\n width: 22px\n max-width: 22px\n background-position: center center\n padding: 0\n//background-color: var(--panel-background-color)\n//color: var(--text-color)\n\n//.map-controls :global(.mapbox-control) button:hover,\n//.map-controls :global(.map-control-wrapper) button:hover,\n//.map-controls .map-control button:hover\n// background-color: var(--panel-background-color) !important\n\n.map-controls .map-scale-control\n background: none\n box-shadow: none\n padding-top: 8px\n\n :global(.mapboxgl-ctrl-scale)\n background-color: var(--translucent-panel-background-color)\n border-color: var(--secondary-text-color)\n color: var(--secondary-text-color)\n\n// .map-container.detail-panel-fixed\n// right: 30em\n\n/* For mobile phones, we want to make the most of screen space,\n which in some cases means adding complications to the basic page. */\n@media only screen and (max-width: 768px)\n .map-container.detail-panel-enter .context-stack\n height: 0\n visibility: hidden\n transition: height 0.5s ease-in-out\n\n .detail-stack\n height: fit-content\n position: inherit\n max-height: 70%\n\n .infodrawer-stack\n max-height: 70%\n\n &:global(.exit-active)\n max-height: 0\n\n :global(.mapbox-control.mapbox-zoom)\n display: none\n\n .map-controls\n position: absolute\n top: -60px\n right: 10px\n\n .detail-panel\n border-radius: 0px\n\n\n/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n /* Make map fill page rather than containing div,\n by unsetting map position */\n // We should move this to another file.\n .map-view-container\n position: unset\n\n\n .map-ui\n flex-direction: row\n padding: 1em 1em 2em\n min-height: 80px\n gap: 0.5em\n\n .context-stack\n max-width: var(--map-context-stack-max-width, 34em)\n min-width: 14em\n transition: width 300ms ease\n padding-bottom: 0.5em\n width: var(--map-context-stack-width, 16em)\n margin-right: 0.5em\n display: flex\n flex-direction: column\n\n\n &.adaptive-width\n width: var(--map-context-stack-width, none)\n max-width: var(--map-context-stack-max-width, none)\n transition: width 300ms ease\n\n :global(.bp5-navbar)\n //height: unset\n //padding: 5px\n h1, h2, h3\n margin: 0\n\n & > .spacer\n flex-grow: 0\n\n .context-panel-holder\n min-height: 0\n position: relative\n\n & > div\n max-height: 100%\n\n .detail-stack\n width: var(--map-detail-stack-width, 30em)\n display: flex\n flex-direction: column\n\n .context-stack, .detail-stack\n pointer-events: none\n z-index: 10\n\n & > div\n pointer-events: all\n margin-bottom: 0.5em\n\n &:last-child\n margin-bottom: 0\n\n &.spacer\n pointer-events: none\n\n .context-stack .spacer\n min-height: 1em\n\n /* Make map fill page rather than containing div,\n by unsetting map position */\n .map-view-container\n position: unset\n\n/** CSS Transitions **/\n\n.map-container\n // Context panel\n .context-panel-holder\n pointer-events: none\n flex: 1\n\n & > div\n pointer-events: all\n transition: opacity 0.8s ease\n //, height 0.8s ease, max-height 0.8s ease, padding 0.8s ease\n\n &.context-panel-from .context-panel-holder > div\n opacity: 0\n\n &.context-panel-enter .context-panel-holder > div\n opacity: 1\n\n &.context-panel-leave .context-panel-holder > div\n opacity: 0\n\n // Detail panel (floating)\n &.detail-panel-floating\n // We assume that the relevant panel is the first child of the stack.\n &.detail-panel-from .detail-panel-holder\n opacity: 0\n\n &.detail-panel-enter .detail-panel-holder\n opacity: 1\n\n &.detail-panel-leave .detail-panel-holder\n opacity: 0\n\n .detail-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n // TODO: these styles have not been evaluated for mobile\n &.detail-panel-fixed\n .map-ui\n transition: margin-right 0.8s ease\n\n .detail-stack\n transition: margin-right 0.8s ease\n\n &.detail-panel-from .detail-panel-holder\n margin-right: calc(-1 * var(--map-detail-stack-width, 30em))\n\n &.detail-panel-enter .detail-panel-holder\n margin-right: 0\n\n &.detail-panel-leave .detail-panel-holder\n margin-right: calc(-1 * var(--map-detail-stack-width, 30em))\n\n\n// The max-height transition is a bit jerky because of panel padding.\n// We could probably fix this by pulling the panel container itself into\n// the class.\n//max-height: 0\n//padding: 0i\n\n@media only screen and (max-width: 768px)\n .map-container .detail-stack\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .map-container.detail-panel-from .detail-stack\n max-height: 0\n height: 0\n\n .map-container.detail-panel-leave .detail-stack\n max-height: 0\n\n .map-container.context-panel-from .context-panel\n max-height: 0\n height: 0\n\n .map-container.context-panel-leave\n .context-stack\n .context-panel-holder\n flex: 0\n\n .spacer\n flex: 1\n\n\n// Shift UI around to center elements if we're in the global view\n@media only screen and (min-width: 768px)\n .map-container.detail-panel-leave .map-view-container\n margin-right: -14em\n\n .map-container.map-is-global.detail-panel-leave .map-view-container\n margin-right: -30em\n\n .map-container.map-is-global.context-panel-leave .map-view-container\n margin-left: -16em\n"],"names":[],"version":3,"file":"main.module.f70e002b.js.map"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/map-interface/src/dev/map-page.ts"],"sourcesContent":["// Import other components\nimport { Switch } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport { Spacer, useDarkMode, useStoredState } from \"@macrostrat/ui-components\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { buildInspectorStyle } from \"./xray\";\nimport { MapAreaContainer, PanelCard } from \"../container\";\nimport { FloatingNavbar, MapLoadingButton } from \"../context-panel\";\nimport { MapMarker } from \"../helpers\";\nimport { LocationPanel } from \"../location-panel\";\nimport { MapView } from \"../map-view\";\nimport styles from \"./main.module.sass\";\nimport { TileExtentLayer } from \"./tile-extent\";\nimport {\n FeaturePanel,\n FeatureSelectionHandler,\n TileInfo,\n} from \"./vector-tile-features\";\nimport { MapPosition } from \"@macrostrat/mapbox-utils\";\n\nexport const h = hyper.styled(styles);\n\nexport function MapInspectorV2({\n title = \"Map inspector\",\n headerElement = null,\n transformRequest = null,\n mapPosition = null,\n mapboxToken = null,\n overlayStyle = null,\n controls = null,\n children = null,\n style,\n bounds = null,\n focusedSource = null,\n focusedSourceTitle = null,\n fitViewport = true,\n styleType = \"macrostrat\",\n}: {\n headerElement?: React.ReactNode;\n transformRequest?: mapboxgl.TransformRequestFunction;\n title?: string;\n style?: mapboxgl.Style | string;\n controls?: React.ReactNode;\n children?: React.ReactNode;\n mapboxToken?: string;\n overlayStyle?: mapboxgl.Style | string;\n focusedSource?: string;\n focusedSourceTitle?: string;\n projection?: string;\n mapPosition?: MapPosition;\n bounds?: [number, number, number, number];\n fitViewport?: boolean;\n styleType?: \"standard\" | \"macrostrat\";\n}) {\n /* We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n */\n\n const dark = useDarkMode();\n const isEnabled = dark?.isEnabled;\n\n if (mapboxToken != null) {\n mapboxgl.accessToken = mapboxToken;\n }\n\n if (styleType == \"macrostrat\") {\n style ??= isEnabled\n ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\"\n : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\";\n } else {\n style ??= isEnabled\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n }\n\n const [isOpen, setOpen] = useState(false);\n\n const [state, setState] = useStoredState(\"macrostrat:dev-map-page\", {\n showTileExtent: false,\n xRay: false,\n });\n const { showTileExtent, xRay } = state;\n\n const [actualStyle, setActualStyle] = useState(null);\n\n useEffect(() => {\n buildInspectorStyle(style, overlayStyle, {\n mapboxToken,\n inDarkMode: isEnabled,\n xRay,\n }).then(setActualStyle);\n }, [style, xRay, mapboxToken, isEnabled, overlayStyle]);\n\n const [inspectPosition, setInspectPosition] =\n useState<mapboxgl.LngLat | null>(null);\n\n const [data, setData] = useState(null);\n\n const onSelectPosition = useCallback((position: mapboxgl.LngLat) => {\n setInspectPosition(position);\n }, []);\n\n let detailElement = null;\n if (inspectPosition != null) {\n detailElement = h(\n LocationPanel,\n {\n onClose() {\n setInspectPosition(null);\n },\n position: inspectPosition,\n },\n [\n h(TileInfo, {\n feature: data?.[0] ?? null,\n showExtent: showTileExtent,\n setShowExtent() {\n setState({ ...state, showTileExtent: !showTileExtent });\n },\n }),\n h(FeaturePanel, { features: data, focusedSource, focusedSourceTitle }),\n ]\n );\n }\n\n let tile = null;\n if (showTileExtent && data?.[0] != null) {\n let f = data[0];\n tile = { x: f._x, y: f._y, z: f._z };\n }\n\n return h(\n MapAreaContainer,\n {\n navbar: h(FloatingNavbar, {\n rightElement: h(MapLoadingButton, {\n large: true,\n active: isOpen,\n onClick: () => setOpen(!isOpen),\n style: {\n marginRight: \"-5px\",\n },\n }),\n headerElement,\n title,\n }),\n contextPanel: h(PanelCard, [\n controls,\n h(Switch, {\n checked: xRay,\n label: \"X-ray mode\",\n onChange() {\n setState({ ...state, xRay: !xRay });\n },\n }),\n ]),\n detailPanel: detailElement,\n contextPanelOpen: isOpen,\n fitViewport,\n },\n h(\n MapView,\n {\n style: actualStyle,\n transformRequest,\n mapPosition,\n projection: { name: \"globe\" },\n mapboxToken,\n bounds,\n },\n [\n h(FeatureSelectionHandler, {\n selectedLocation: inspectPosition,\n setFeatures: setData,\n }),\n h(MapMarker, {\n position: inspectPosition,\n setPosition: onSelectPosition,\n }),\n h(TileExtentLayer, { tile, color: isEnabled ? \"white\" : \"black\" }),\n children,\n ]\n )\n );\n}\n\nfunction MapInspector(props) {\n const { children, controls, ...rest } = props;\n /** Compatibility wrapper for MapInspectorV2 */\n // React warning about this legacy usage\n console.warn(\"MapInspector is deprecated. Use MapInspectorV2 instead\");\n\n return h(MapInspectorV2, {\n ...rest,\n controls: [children, controls],\n });\n}\n\n// Legacy export\nexport const DevMapPage = MapInspector;\n"],"names":[],"version":3,"file":"map-page.1da2d70c.js.map"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/map-interface/src/map-view.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n useMapPosition,\n setup3DTerrain,\n use3DTerrain,\n addTerrainToStyle,\n} from \"@macrostrat/mapbox-react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n getMapPosition,\n getMapboxStyle,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef } from \"react\";\nimport styles from \"./main.module.sass\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"./helpers\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { getMapPadding } from \"./utils\";\nimport { useAsyncEffect } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n mapboxToken?: string;\n // Deprecated\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n mapPosition?: MapPosition;\n initializeMap?: (\n container: HTMLElement,\n args: MapboxOptionsExt\n ) => mapboxgl.Map;\n onMapLoaded?: (map: mapboxgl.Map) => void;\n onStyleLoaded?: (map: mapboxgl.Map) => void;\n onMapMoved?: (mapPosition: MapPosition, map: mapboxgl.Map) => void;\n}\n\nexport interface MapboxOptionsExt extends MapboxCoreOptions {\n mapPosition?: MapPosition;\n}\n\nfunction defaultInitializeMap(container, args: MapboxOptionsExt = {}) {\n const { mapPosition, ...rest } = args;\n console.log(\"Initializing map (default)\", args);\n\n const map = new mapboxgl.Map({\n container,\n maxZoom: 18,\n //maxTileCacheSize: 0,\n logoPosition: \"bottom-left\",\n trackResize: true,\n antialias: true,\n optimizeForTerrain: true,\n ...rest,\n });\n\n // set initial map position\n if (mapPosition != null) {\n setMapPosition(map, mapPosition);\n }\n\n //setMapPosition(map, mapPosition);\n return map;\n}\n\nconst defaultMapPosition: MapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000,\n },\n};\n\nexport function MapView(props: MapViewProps) {\n let { terrainSourceID } = props;\n const {\n enableTerrain = true,\n style,\n mapPosition = defaultMapPosition,\n initializeMap = defaultInitializeMap,\n children,\n mapboxToken,\n // Deprecated\n accessToken,\n infoMarkerPosition,\n transformRequest,\n projection,\n onMapLoaded = null,\n onStyleLoaded = null,\n onMapMoved = null,\n ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n const _mapboxToken = mapboxToken ?? accessToken;\n\n if (_mapboxToken != null) {\n mapboxgl.accessToken = _mapboxToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n useAsyncEffect(async () => {\n /** Manager to update map style */\n if (style == null) return;\n let map = mapRef.current;\n\n /** If we can, we try to update the map style with terrain information\n * immediately, before the style is loaded. This allows us to avoid a\n * flash of the map without terrain.\n *\n * To do this, we need to estimate the map position before load, which\n * doesn't always work.\n */\n // We either get the map position directly from the map or from props\n const estMapPosition: MapPosition | null =\n map == null ? mapPosition : getMapPosition(map);\n let newStyle = style;\n const { mapUse3D } = mapViewInfo(estMapPosition);\n\n /** If style is a string, we can't update it with terrain layers immediately.\n * We need to wait for the style to load and then update it.\n */\n if (typeof style === \"string\") {\n newStyle = await getMapboxStyle(style, {\n access_token: mapboxgl.accessToken,\n });\n }\n\n if (mapUse3D) {\n // We can update the style with terrain layers immediately\n newStyle = addTerrainToStyle(newStyle as mapboxgl.Style, terrainSourceID);\n }\n\n if (map != null) {\n console.log(\"Setting style\", newStyle);\n map.setStyle(newStyle);\n } else {\n console.log(\"Initializing map\", newStyle);\n const map = initializeMap(ref.current, {\n style: newStyle,\n projection,\n mapPosition,\n transformRequest,\n ...rest,\n });\n dispatch({ type: \"set-map\", payload: map });\n map.setPadding(getMapPadding(ref, parentRef), { animate: false });\n onMapLoaded?.(map);\n }\n\n const loadCallback = () => {\n onStyleLoaded?.(map);\n // Set initial terrain state\n dispatch({ type: \"set-style-loaded\", payload: true });\n };\n\n map = mapRef.current;\n\n if (map.style?._loaded) {\n // Catch a race condition where the style is loaded before the callback is set\n loadCallback();\n }\n map.on(\"style.load\", loadCallback);\n return () => {\n map.off(\"style.load\", loadCallback);\n };\n }, [style]);\n\n const _computedMapPosition = useMapPosition();\n const { mapUse3D, mapIsRotated } = mapViewInfo(_computedMapPosition);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const className = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false,\n },\n `${_projection}-projection`\n );\n\n return h(\"div.map-view-container.main-view\", { ref: parentRef }, [\n h(\"div.mapbox-map#map\", { ref, className }),\n h(MapLoadingReporter, {\n ignoredSources: [\"elevationMarker\", \"crossSectionEndpoints\"],\n }),\n h(MapMovedReporter, { onMapMoved }),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, { containerRef: ref, parentRef, infoMarkerPosition }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID, style }),\n children,\n ]);\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n style,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n style?: mapboxgl.Style | string;\n}) {\n use3DTerrain(mapUse3D, terrainSourceID);\n\n return null;\n}\n"],"names":[],"version":3,"file":"map-view.1fc6297b.js.map"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require("./main.module.24615279.js"),require("./main.module.65e40c2e.css"),require("./controls.6ec8e9ac.js");var e=require("@macrostrat/hyper");function r(e){return e&&e.__esModule?e.default:e}require("classnames"),require("transition-hook"),require("@macrostrat/mapbox-react"),require("@macrostrat/ui-components"),require("@macrostrat/mapbox-utils"),require("@blueprintjs/core");var i={};i=new URL("main.module.24615279.js","file:"+__filename).toString(),new URL("controls.6ec8e9ac.js","file:"+__filename).toString(),r(e).styled(r(i));
|
|
2
|
-
//# sourceMappingURL=container.053f798f.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
require("./utils.274d0452.js"),require("./hash-string.3fc8ceb0.js"),require("@macrostrat/hyper"),require("@macrostrat/mapbox-utils"),new URL("utils.274d0452.js","file:"+__filename).toString(),new URL("hash-string.3fc8ceb0.js","file:"+__filename).toString();
|
|
2
|
-
//# sourceMappingURL=location-info.9f59aad3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,Q,wC,Q,8C,Q,qB,Q,4BEAiB,IAAA,IAAoB,qCAAA,QAAA,YAAsC,QAAQ,GCAlE,IAAA,IAAoB,2CAAA,QAAA,YAA4C,QAAQ","sources":["<anon>","packages/map-interface/src/location-info/index.ts","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-f7ce3849bd4f1ea7.js","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-06e58204e8d93615.js"],"sourcesContent":["require(\"./utils.274d0452.js\");\nrequire(\"./hash-string.3fc8ceb0.js\");\nvar $eCMm3$macrostrathyper = require(\"@macrostrat/hyper\");\nvar $eCMm3$macrostratmapboxutils = require(\"@macrostrat/mapbox-utils\");\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n\nvar $fad104fcb02659ca$exports = {};\n$fad104fcb02659ca$exports = new URL(\"utils.274d0452.js\", \"file:\" + __filename).toString();\n\n\nvar $26ce4b364a39726a$exports = {};\n$26ce4b364a39726a$exports = new URL(\"hash-string.3fc8ceb0.js\", \"file:\" + __filename).toString();\n\n\nfunction $0b0abb433c4cd5a3$export$716098b85fd0efdf(props) {\n const { value: value, unit: unit } = props;\n return (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))(\"span.value-with-unit\", [\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))(\"span.value\", [\n value\n ]),\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))(\"span.spacer\", [\n \" \"\n ]),\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))(\"span.unit\", [\n unit\n ])\n ]);\n}\nfunction $0b0abb433c4cd5a3$export$af8082af0bea3eb1(props) {\n const { value: value, labels: labels, precision: precision = 3, format: format = (0, $fad104fcb02659ca$exports.formatValue) } = props;\n const direction = value < 0 ? labels[1] : labels[0];\n return (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))($0b0abb433c4cd5a3$export$716098b85fd0efdf, {\n value: format(Math.abs(value), precision) + \"\\xb0\",\n unit: direction\n });\n}\nfunction $0b0abb433c4cd5a3$export$f195b3550849e560(props) {\n /** Formatted geographic coordinates */ const { position: position, className: className, precision: precision, zoom: zoom } = props;\n let { format: format } = props;\n if (position == null) return null;\n let lat, lng;\n if (Array.isArray(position)) [lng, lat] = position;\n else ({ lat: lat, lng: lng } = position);\n if (zoom != null && format == null && precision == null) format = (val, _)=>(0, $eCMm3$macrostratmapboxutils.formatCoordForZoomLevel)(val, zoom);\n return (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))(\"div.lnglat-container\", {\n className: className\n }, [\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))(\"span.lnglat\", [\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))($0b0abb433c4cd5a3$export$af8082af0bea3eb1, {\n value: lat,\n labels: [\n \"N\",\n \"S\"\n ],\n precision: precision,\n format: format\n }),\n \", \",\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))($0b0abb433c4cd5a3$export$af8082af0bea3eb1, {\n value: (0, $eCMm3$macrostratmapboxutils.normalizeLng)(lng),\n labels: [\n \"E\",\n \"W\"\n ],\n precision: precision,\n format: format\n })\n ])\n ]);\n}\nfunction $0b0abb433c4cd5a3$export$58bfb4f6ec5aa58d(props) {\n /** Renders an elevation value in meters and a parenthetical conversion to feet. */ const { elevation: elevation, className: className, includeFeet: includeFeet = true } = props;\n if (elevation == null) return null;\n return (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))(\"div.elevation\", {\n className: className\n }, [\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))($0b0abb433c4cd5a3$export$716098b85fd0efdf, {\n value: elevation,\n unit: \"m\"\n }),\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper))).if(includeFeet)(\"span.secondary\", [\n \" (\",\n (0, ($parcel$interopDefault($eCMm3$macrostrathyper)))($0b0abb433c4cd5a3$export$716098b85fd0efdf, {\n value: (0, $eCMm3$macrostratmapboxutils.metersToFeet)(elevation),\n unit: \"ft\"\n }),\n \")\"\n ])\n ]);\n}\n\n\n//# sourceMappingURL=location-info.9f59aad3.js.map\n","import h from \"@macrostrat/hyper\";\nimport {\n formatCoordForZoomLevel,\n metersToFeet,\n normalizeLng,\n} from \"@macrostrat/mapbox-utils\";\nimport { formatValue } from \"./utils\";\n\nexport * from \"./hash-string\";\n\nexport function ValueWithUnit(props) {\n const { value, unit } = props;\n return h(\"span.value-with-unit\", [\n h(\"span.value\", [value]),\n h(\"span.spacer\", [\" \"]),\n h(\"span.unit\", [unit]),\n ]);\n}\n\nexport function DegreeCoord(props) {\n const { value, labels, precision = 3, format = formatValue } = props;\n const direction = value < 0 ? labels[1] : labels[0];\n\n return h(ValueWithUnit, {\n value: format(Math.abs(value), precision) + \"°\",\n unit: direction,\n });\n}\n\nexport interface LngLatProps {\n /** Map position */\n position: [number, number] | { lat: number; lng: number };\n className?: string;\n /** Zoom level (used to infer coordinate rounding if provided) */\n zoom?: number | null;\n /** Number of decimal places to round coordinates to */\n precision: number | null;\n /** Function to format coordinates */\n format?: (val: number, precision: number) => string;\n}\n\nexport function LngLatCoords(props: LngLatProps) {\n /** Formatted geographic coordinates */\n const { position, className, precision, zoom } = props;\n let { format } = props;\n if (position == null) {\n return null;\n }\n let lat, lng;\n if (Array.isArray(position)) {\n [lng, lat] = position;\n } else {\n ({ lat, lng } = position);\n }\n\n if (zoom != null && format == null && precision == null) {\n format = (val, _) => formatCoordForZoomLevel(val, zoom);\n }\n\n return h(\"div.lnglat-container\", { className }, [\n h(\"span.lnglat\", [\n h(DegreeCoord, {\n value: lat,\n labels: [\"N\", \"S\"],\n precision,\n format,\n }),\n \", \",\n h(DegreeCoord, {\n value: normalizeLng(lng),\n labels: [\"E\", \"W\"],\n precision,\n format,\n }),\n ]),\n ]);\n}\n\nexport function Elevation(props) {\n /** Renders an elevation value in meters and a parenthetical conversion to feet. */\n const { elevation, className, includeFeet = true } = props;\n if (elevation == null) return null;\n return h(\"div.elevation\", { className }, [\n h(ValueWithUnit, { value: elevation, unit: \"m\" }),\n h.if(includeFeet)(\"span.secondary\", [\n \" (\",\n h(ValueWithUnit, { value: metersToFeet(elevation), unit: \"ft\" }),\n \")\",\n ]),\n ]);\n}\n","module.exports = new __parcel__URL__(\"utils.274d0452.js\").toString();","module.exports = new __parcel__URL__(\"hash-string.3fc8ceb0.js\").toString();"],"names":["require","URL","__filename","toString"],"version":3,"file":"location-info.9f59aad3.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e,o,a,t,l,r,p,n,c,d,m,s,u,i,x,_,b,h,g,w,f,v,k,z,j,y,O,P,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,Q,R,S,T,U,V,W,X,Y,Z;function $(e,o,a,t){Object.defineProperty(e,o,{get:a,set:t,enumerable:!0,configurable:!0})}$(module.exports,"map-container",()=>e,o=>e=o),$(module.exports,"show-panel-outlines",()=>o,e=>o=e),$(module.exports,"map-view-container",()=>a,e=>a=e),$(module.exports,"fit-viewport",()=>t,e=>t=e),$(module.exports,"compass-control",()=>l,e=>l=e),$(module.exports,"map-is-rotated",()=>r,e=>r=e),$(module.exports,"map-3d-control",()=>p,e=>p=e),$(module.exports,"map-3d-available",()=>n,e=>n=e),$(module.exports,"globe-control",()=>c,e=>c=e),$(module.exports,"map-is-global",()=>d,e=>d=e),$(module.exports,"detail-panel-open",()=>m,e=>m=e),$(module.exports,"zoom-control",()=>s,e=>s=e),$(module.exports,"detail-panel-fixed",()=>u,e=>u=e),$(module.exports,"detail-panel-holder",()=>i,e=>i=e),$(module.exports,"map-control-stack",()=>x,e=>x=e),$(module.exports,"main-row",()=>_,e=>_=e),$(module.exports,"map-ui",()=>b,e=>b=e),$(module.exports,"mapbox-map",()=>h,e=>h=e),$(module.exports,"context-panel-holder",()=>g,e=>g=e),$(module.exports,"panel-card",()=>w,e=>w=e),$(module.exports,"context-stack",()=>f,e=>f=e),$(module.exports,"searchbar",()=>v,e=>v=e),$(module.exports,"detail-stack",()=>k,e=>k=e),$(module.exports,"panel-container",()=>z,e=>z=e),$(module.exports,"panel-title",()=>j,e=>j=e),$(module.exports,"spacer",()=>y,e=>y=e),$(module.exports,"searchbar-holder",()=>O,e=>O=e),$(module.exports,"right-panel",()=>P,e=>P=e),$(module.exports,"buttons",()=>q,e=>q=e),$(module.exports,"tab-button",()=>A,e=>A=e),$(module.exports,"menu-card",()=>B,e=>B=e),$(module.exports,"narrow-card",()=>C,e=>C=e),$(module.exports,"panel-header",()=>D,e=>D=e),$(module.exports,"minimal",()=>E,e=>E=e),$(module.exports,"context-panel-leave",()=>F,e=>F=e),$(module.exports,"narrow-enter",()=>G,e=>G=e),$(module.exports,"menu-group",()=>H,e=>H=e),$(module.exports,"menu-content",()=>I,e=>I=e),$(module.exports,"bp5-button-group",()=>J,e=>J=e),$(module.exports,"detail-panel-container",()=>K,e=>K=e),$(module.exports,"map-right-controls",()=>L,e=>L=e),$(module.exports,"map-controls",()=>M,e=>M=e),$(module.exports,"map-scale-control",()=>N,e=>N=e),$(module.exports,"detail-panel-enter",()=>Q,e=>Q=e),$(module.exports,"infodrawer-stack",()=>R,e=>R=e),$(module.exports,"detail-panel",()=>S,e=>S=e),$(module.exports,"adaptive-width",()=>T,e=>T=e),$(module.exports,"context-panel-from",()=>U,e=>U=e),$(module.exports,"context-panel-enter",()=>V,e=>V=e),$(module.exports,"detail-panel-floating",()=>W,e=>W=e),$(module.exports,"detail-panel-from",()=>X,e=>X=e),$(module.exports,"detail-panel-leave",()=>Y,e=>Y=e),$(module.exports,"context-panel",()=>Z,e=>Z=e),e="map-container_4c0a66",o="show-panel-outlines_4c0a66",a="map-view-container_4c0a66",t="fit-viewport_4c0a66",l="compass-control_4c0a66",r="map-is-rotated_4c0a66",p="map-3d-control_4c0a66",n="map-3d-available_4c0a66",c="globe-control_4c0a66",d="map-is-global_4c0a66",m="detail-panel-open_4c0a66",s="zoom-control_4c0a66",u="detail-panel-fixed_4c0a66",i="detail-panel-holder_4c0a66",x="map-control-stack_4c0a66",_="main-row_4c0a66",b="map-ui_4c0a66",h="mapbox-map_4c0a66",g="context-panel-holder_4c0a66",w="panel-card_4c0a66",f="context-stack_4c0a66",v="searchbar_4c0a66",k="detail-stack_4c0a66",z="panel-container_4c0a66",j="panel-title_4c0a66",y="spacer_4c0a66",O="searchbar-holder_4c0a66",P="right-panel_4c0a66",q="buttons_4c0a66",A="tab-button_4c0a66",B="menu-card_4c0a66",C="narrow-card_4c0a66",D="panel-header_4c0a66",E="minimal_4c0a66",F="context-panel-leave_4c0a66",G="narrow-enter_4c0a66",H="menu-group_4c0a66",I="menu-content_4c0a66",J="bp5-button-group_4c0a66",K="detail-panel-container_4c0a66",L="map-right-controls_4c0a66",M="map-controls_4c0a66",N="map-scale-control_4c0a66",Q="detail-panel-enter_4c0a66",R="infodrawer-stack_4c0a66",S="detail-panel_4c0a66",T="adaptive-width_4c0a66",U="context-panel-from_4c0a66",V="context-panel-enter_4c0a66",W="detail-panel-floating_4c0a66",X="detail-panel-from_4c0a66",Y="detail-panel-leave_4c0a66",Z="context-panel_4c0a66";
|
|
2
|
-
//# sourceMappingURL=main.module.24615279.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"ICAA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,E,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,E,O,O,C,gB,I,E,A,G,E,G,E,O,O,C,sB,I,E,A,G,E,G,E,O,O,C,qB,I,E,A,G,E,G,E,O,O,C,e,I,E,A,G,E,G,E,O,O,C,kB,I,E,A,G,E,G,E,O,O,C,iB,I,E,A,G,E,G,E,O,O,C,iB,I,E,A,G,E,G,E,O,O,C,mB,I,E,A,G,E,G,E,O,O,C,gB,I,E,A,G,E,G,E,O,O,C,gB,I,E,A,G,E,G,E,O,O,C,oB,I,E,A,G,E,G,E,O,O,C,e,I,E,A,G,E,G,E,O,O,C,qB,I,E,A,G,E,G,E,O,O,C,sB,I,E,A,G,E,G,E,O,O,C,oB,I,E,A,G,E,G,E,O,O,C,W,I,E,A,G,E,G,E,O,O,C,S,I,E,A,G,E,G,E,O,O,C,a,I,E,A,G,E,G,E,O,O,C,uB,I,E,A,G,E,G,E,O,O,C,a,I,E,A,G,E,G,E,O,O,C,gB,I,E,A,G,E,G,E,O,O,C,Y,I,E,A,G,E,G,E,O,O,C,e,I,E,A,G,E,G,E,O,O,C,kB,I,E,A,G,E,G,E,O,O,C,c,I,E,A,G,E,G,E,O,O,C,S,I,E,A,G,E,G,E,O,O,C,mB,I,E,A,G,E,G,E,O,O,C,c,I,E,A,G,E,G,E,O,O,C,U,I,E,A,G,E,G,E,O,O,C,a,I,E,A,G,E,G,E,O,O,C,Y,I,E,A,G,E,G,E,O,O,C,c,I,E,A,G,E,G,E,O,O,C,e,I,E,A,G,E,G,E,O,O,C,U,I,E,A,G,E,G,E,O,O,C,sB,I,E,A,G,E,G,E,O,O,C,e,I,E,A,G,E,G,E,O,O,C,a,I,E,A,G,E,G,E,O,O,C,e,I,E,A,G,E,G,E,O,O,C,mB,I,E,A,G,E,G,E,O,O,C,yB,I,E,A,G,E,G,E,O,O,C,qB,I,E,A,G,E,G,E,O,O,C,e,I,E,A,G,E,G,E,O,O,C,oB,I,E,A,G,E,G,E,O,O,C,qB,I,E,A,G,E,G,E,O,O,C,mB,I,E,A,G,E,G,E,O,O,C,e,I,E,A,G,E,G,E,O,O,C,iB,I,E,A,G,E,G,E,O,O,C,qB,I,E,A,G,E,G,E,O,O,C,sB,I,E,A,G,E,G,E,O,O,C,wB,I,E,A,G,E,G,E,O,O,C,oB,I,E,A,G,E,G,E,O,O,C,qB,I,E,A,G,E,G,E,O,O,C,gB,I,E,A,G,E,GApDA,EAAkC,uBAClC,EAAwC,6BACxC,EAAuC,4BACvC,EAAiC,sBACjC,EAAoC,yBACpC,EAAmC,wBACnC,EAAmC,wBACnC,EAAqC,0BACrC,EAAkC,uBAClC,EAAkC,uBAClC,EAAsC,2BACtC,EAAiC,sBACjC,EAAuC,4BACvC,EAAwC,6BACxC,EAAsC,2BACtC,EAA6B,kBAC7B,EAA2B,gBAC3B,EAA+B,oBAC/B,EAAyC,8BACzC,EAA+B,oBAC/B,EAAkC,uBAClC,EAA8B,mBAC9B,EAAiC,sBACjC,EAAoC,yBACpC,EAAgC,qBAChC,EAA2B,gBAC3B,EAAqC,0BACrC,EAAgC,qBAChC,EAA4B,iBAC5B,EAA+B,oBAC/B,EAA8B,mBAC9B,EAAgC,qBAChC,EAAiC,sBACjC,EAA4B,iBAC5B,EAAwC,6BACxC,EAAiC,sBACjC,EAA+B,oBAC/B,EAAiC,sBACjC,EAAqC,0BACrC,EAA2C,gCAC3C,EAAuC,4BACvC,EAAiC,sBACjC,EAAsC,2BACtC,EAAuC,4BACvC,EAAqC,0BACrC,EAAiC,sBACjC,EAAmC,wBACnC,EAAuC,4BACvC,EAAwC,6BACxC,EAA0C,+BAC1C,EAAsC,2BACtC,EAAuC,4BACvC,EAAkC","sources":["<anon>","packages/map-interface/src/main.module.sass"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n$parcel$export(module.exports, \"map-container\", () => $508cda6802bfa872$export$d7f2c44afcf5df56, (v) => $508cda6802bfa872$export$d7f2c44afcf5df56 = v);\n$parcel$export(module.exports, \"show-panel-outlines\", () => $508cda6802bfa872$export$e163bcc0a29d66c, (v) => $508cda6802bfa872$export$e163bcc0a29d66c = v);\n$parcel$export(module.exports, \"map-view-container\", () => $508cda6802bfa872$export$11aa7dc57218208d, (v) => $508cda6802bfa872$export$11aa7dc57218208d = v);\n$parcel$export(module.exports, \"fit-viewport\", () => $508cda6802bfa872$export$2a73fca7b70dce31, (v) => $508cda6802bfa872$export$2a73fca7b70dce31 = v);\n$parcel$export(module.exports, \"compass-control\", () => $508cda6802bfa872$export$cc73204c64cc0950, (v) => $508cda6802bfa872$export$cc73204c64cc0950 = v);\n$parcel$export(module.exports, \"map-is-rotated\", () => $508cda6802bfa872$export$d2972e7dfac51dc2, (v) => $508cda6802bfa872$export$d2972e7dfac51dc2 = v);\n$parcel$export(module.exports, \"map-3d-control\", () => $508cda6802bfa872$export$142b9410c523ef40, (v) => $508cda6802bfa872$export$142b9410c523ef40 = v);\n$parcel$export(module.exports, \"map-3d-available\", () => $508cda6802bfa872$export$6bc2d6545947abbc, (v) => $508cda6802bfa872$export$6bc2d6545947abbc = v);\n$parcel$export(module.exports, \"globe-control\", () => $508cda6802bfa872$export$b06313b17bd37b68, (v) => $508cda6802bfa872$export$b06313b17bd37b68 = v);\n$parcel$export(module.exports, \"map-is-global\", () => $508cda6802bfa872$export$ea9cfbb56edd0e47, (v) => $508cda6802bfa872$export$ea9cfbb56edd0e47 = v);\n$parcel$export(module.exports, \"detail-panel-open\", () => $508cda6802bfa872$export$62a60ea2feb29c53, (v) => $508cda6802bfa872$export$62a60ea2feb29c53 = v);\n$parcel$export(module.exports, \"zoom-control\", () => $508cda6802bfa872$export$61e54aa1efb913ad, (v) => $508cda6802bfa872$export$61e54aa1efb913ad = v);\n$parcel$export(module.exports, \"detail-panel-fixed\", () => $508cda6802bfa872$export$4a4f34b86d8e6504, (v) => $508cda6802bfa872$export$4a4f34b86d8e6504 = v);\n$parcel$export(module.exports, \"detail-panel-holder\", () => $508cda6802bfa872$export$f553ebb4e6df6c5f, (v) => $508cda6802bfa872$export$f553ebb4e6df6c5f = v);\n$parcel$export(module.exports, \"map-control-stack\", () => $508cda6802bfa872$export$c163dab1f00a51cb, (v) => $508cda6802bfa872$export$c163dab1f00a51cb = v);\n$parcel$export(module.exports, \"main-row\", () => $508cda6802bfa872$export$bc4885f800420ea3, (v) => $508cda6802bfa872$export$bc4885f800420ea3 = v);\n$parcel$export(module.exports, \"map-ui\", () => $508cda6802bfa872$export$7d4a718201bc0bd1, (v) => $508cda6802bfa872$export$7d4a718201bc0bd1 = v);\n$parcel$export(module.exports, \"mapbox-map\", () => $508cda6802bfa872$export$d0dcaf774d09fc4c, (v) => $508cda6802bfa872$export$d0dcaf774d09fc4c = v);\n$parcel$export(module.exports, \"context-panel-holder\", () => $508cda6802bfa872$export$1113ec858cdbc244, (v) => $508cda6802bfa872$export$1113ec858cdbc244 = v);\n$parcel$export(module.exports, \"panel-card\", () => $508cda6802bfa872$export$8eff531ff0f1cffe, (v) => $508cda6802bfa872$export$8eff531ff0f1cffe = v);\n$parcel$export(module.exports, \"context-stack\", () => $508cda6802bfa872$export$a15c1c170cdda69a, (v) => $508cda6802bfa872$export$a15c1c170cdda69a = v);\n$parcel$export(module.exports, \"searchbar\", () => $508cda6802bfa872$export$2ac23befe9d406ee, (v) => $508cda6802bfa872$export$2ac23befe9d406ee = v);\n$parcel$export(module.exports, \"detail-stack\", () => $508cda6802bfa872$export$bb1d4538b98f1621, (v) => $508cda6802bfa872$export$bb1d4538b98f1621 = v);\n$parcel$export(module.exports, \"panel-container\", () => $508cda6802bfa872$export$9dd9a0eceddf6af6, (v) => $508cda6802bfa872$export$9dd9a0eceddf6af6 = v);\n$parcel$export(module.exports, \"panel-title\", () => $508cda6802bfa872$export$9672a0c48c9048ad, (v) => $508cda6802bfa872$export$9672a0c48c9048ad = v);\n$parcel$export(module.exports, \"spacer\", () => $508cda6802bfa872$export$8cc075c801fd6817, (v) => $508cda6802bfa872$export$8cc075c801fd6817 = v);\n$parcel$export(module.exports, \"searchbar-holder\", () => $508cda6802bfa872$export$3a39e67bbbcbd4ae, (v) => $508cda6802bfa872$export$3a39e67bbbcbd4ae = v);\n$parcel$export(module.exports, \"right-panel\", () => $508cda6802bfa872$export$3332ecdf6c5467a, (v) => $508cda6802bfa872$export$3332ecdf6c5467a = v);\n$parcel$export(module.exports, \"buttons\", () => $508cda6802bfa872$export$bbea856fdb3e3c5f, (v) => $508cda6802bfa872$export$bbea856fdb3e3c5f = v);\n$parcel$export(module.exports, \"tab-button\", () => $508cda6802bfa872$export$76800529067ae833, (v) => $508cda6802bfa872$export$76800529067ae833 = v);\n$parcel$export(module.exports, \"menu-card\", () => $508cda6802bfa872$export$d94de0bab38fd59, (v) => $508cda6802bfa872$export$d94de0bab38fd59 = v);\n$parcel$export(module.exports, \"narrow-card\", () => $508cda6802bfa872$export$9769f988dc28baf, (v) => $508cda6802bfa872$export$9769f988dc28baf = v);\n$parcel$export(module.exports, \"panel-header\", () => $508cda6802bfa872$export$90b77e3be608e918, (v) => $508cda6802bfa872$export$90b77e3be608e918 = v);\n$parcel$export(module.exports, \"minimal\", () => $508cda6802bfa872$export$10c083462c34aef3, (v) => $508cda6802bfa872$export$10c083462c34aef3 = v);\n$parcel$export(module.exports, \"context-panel-leave\", () => $508cda6802bfa872$export$f3ad069e7751fe80, (v) => $508cda6802bfa872$export$f3ad069e7751fe80 = v);\n$parcel$export(module.exports, \"narrow-enter\", () => $508cda6802bfa872$export$c20b2d766062840f, (v) => $508cda6802bfa872$export$c20b2d766062840f = v);\n$parcel$export(module.exports, \"menu-group\", () => $508cda6802bfa872$export$3a4b737893473805, (v) => $508cda6802bfa872$export$3a4b737893473805 = v);\n$parcel$export(module.exports, \"menu-content\", () => $508cda6802bfa872$export$3eeb6f640f2fe17b, (v) => $508cda6802bfa872$export$3eeb6f640f2fe17b = v);\n$parcel$export(module.exports, \"bp5-button-group\", () => $508cda6802bfa872$export$6fe71a6d4f52db2a, (v) => $508cda6802bfa872$export$6fe71a6d4f52db2a = v);\n$parcel$export(module.exports, \"detail-panel-container\", () => $508cda6802bfa872$export$aa8359f513bf67ff, (v) => $508cda6802bfa872$export$aa8359f513bf67ff = v);\n$parcel$export(module.exports, \"map-right-controls\", () => $508cda6802bfa872$export$98a77ae0c82023e7, (v) => $508cda6802bfa872$export$98a77ae0c82023e7 = v);\n$parcel$export(module.exports, \"map-controls\", () => $508cda6802bfa872$export$802dc54769b48aa7, (v) => $508cda6802bfa872$export$802dc54769b48aa7 = v);\n$parcel$export(module.exports, \"map-scale-control\", () => $508cda6802bfa872$export$b56f659d649f0d92, (v) => $508cda6802bfa872$export$b56f659d649f0d92 = v);\n$parcel$export(module.exports, \"detail-panel-enter\", () => $508cda6802bfa872$export$e017ebf46ba443ed, (v) => $508cda6802bfa872$export$e017ebf46ba443ed = v);\n$parcel$export(module.exports, \"infodrawer-stack\", () => $508cda6802bfa872$export$69fa1b5d46c139b9, (v) => $508cda6802bfa872$export$69fa1b5d46c139b9 = v);\n$parcel$export(module.exports, \"detail-panel\", () => $508cda6802bfa872$export$c6930745f2610de0, (v) => $508cda6802bfa872$export$c6930745f2610de0 = v);\n$parcel$export(module.exports, \"adaptive-width\", () => $508cda6802bfa872$export$4db621d3143ef457, (v) => $508cda6802bfa872$export$4db621d3143ef457 = v);\n$parcel$export(module.exports, \"context-panel-from\", () => $508cda6802bfa872$export$90f42dafd5c24d2d, (v) => $508cda6802bfa872$export$90f42dafd5c24d2d = v);\n$parcel$export(module.exports, \"context-panel-enter\", () => $508cda6802bfa872$export$9ea3835d1b44cc08, (v) => $508cda6802bfa872$export$9ea3835d1b44cc08 = v);\n$parcel$export(module.exports, \"detail-panel-floating\", () => $508cda6802bfa872$export$50b37414f37debaa, (v) => $508cda6802bfa872$export$50b37414f37debaa = v);\n$parcel$export(module.exports, \"detail-panel-from\", () => $508cda6802bfa872$export$419647d5ce4279cb, (v) => $508cda6802bfa872$export$419647d5ce4279cb = v);\n$parcel$export(module.exports, \"detail-panel-leave\", () => $508cda6802bfa872$export$1d0f1d0b062c3bee, (v) => $508cda6802bfa872$export$1d0f1d0b062c3bee = v);\n$parcel$export(module.exports, \"context-panel\", () => $508cda6802bfa872$export$b4dbb67ffc3cc7a9, (v) => $508cda6802bfa872$export$b4dbb67ffc3cc7a9 = v);\nvar $508cda6802bfa872$export$d7f2c44afcf5df56;\nvar $508cda6802bfa872$export$e163bcc0a29d66c;\nvar $508cda6802bfa872$export$11aa7dc57218208d;\nvar $508cda6802bfa872$export$2a73fca7b70dce31;\nvar $508cda6802bfa872$export$cc73204c64cc0950;\nvar $508cda6802bfa872$export$d2972e7dfac51dc2;\nvar $508cda6802bfa872$export$142b9410c523ef40;\nvar $508cda6802bfa872$export$6bc2d6545947abbc;\nvar $508cda6802bfa872$export$b06313b17bd37b68;\nvar $508cda6802bfa872$export$ea9cfbb56edd0e47;\nvar $508cda6802bfa872$export$62a60ea2feb29c53;\nvar $508cda6802bfa872$export$61e54aa1efb913ad;\nvar $508cda6802bfa872$export$4a4f34b86d8e6504;\nvar $508cda6802bfa872$export$f553ebb4e6df6c5f;\nvar $508cda6802bfa872$export$c163dab1f00a51cb;\nvar $508cda6802bfa872$export$bc4885f800420ea3;\nvar $508cda6802bfa872$export$7d4a718201bc0bd1;\nvar $508cda6802bfa872$export$d0dcaf774d09fc4c;\nvar $508cda6802bfa872$export$1113ec858cdbc244;\nvar $508cda6802bfa872$export$8eff531ff0f1cffe;\nvar $508cda6802bfa872$export$a15c1c170cdda69a;\nvar $508cda6802bfa872$export$2ac23befe9d406ee;\nvar $508cda6802bfa872$export$bb1d4538b98f1621;\nvar $508cda6802bfa872$export$9dd9a0eceddf6af6;\nvar $508cda6802bfa872$export$9672a0c48c9048ad;\nvar $508cda6802bfa872$export$8cc075c801fd6817;\nvar $508cda6802bfa872$export$3a39e67bbbcbd4ae;\nvar $508cda6802bfa872$export$3332ecdf6c5467a;\nvar $508cda6802bfa872$export$bbea856fdb3e3c5f;\nvar $508cda6802bfa872$export$76800529067ae833;\nvar $508cda6802bfa872$export$d94de0bab38fd59;\nvar $508cda6802bfa872$export$9769f988dc28baf;\nvar $508cda6802bfa872$export$90b77e3be608e918;\nvar $508cda6802bfa872$export$10c083462c34aef3;\nvar $508cda6802bfa872$export$f3ad069e7751fe80;\nvar $508cda6802bfa872$export$c20b2d766062840f;\nvar $508cda6802bfa872$export$3a4b737893473805;\nvar $508cda6802bfa872$export$3eeb6f640f2fe17b;\nvar $508cda6802bfa872$export$6fe71a6d4f52db2a;\nvar $508cda6802bfa872$export$aa8359f513bf67ff;\nvar $508cda6802bfa872$export$98a77ae0c82023e7;\nvar $508cda6802bfa872$export$802dc54769b48aa7;\nvar $508cda6802bfa872$export$b56f659d649f0d92;\nvar $508cda6802bfa872$export$e017ebf46ba443ed;\nvar $508cda6802bfa872$export$69fa1b5d46c139b9;\nvar $508cda6802bfa872$export$c6930745f2610de0;\nvar $508cda6802bfa872$export$4db621d3143ef457;\nvar $508cda6802bfa872$export$90f42dafd5c24d2d;\nvar $508cda6802bfa872$export$9ea3835d1b44cc08;\nvar $508cda6802bfa872$export$50b37414f37debaa;\nvar $508cda6802bfa872$export$419647d5ce4279cb;\nvar $508cda6802bfa872$export$1d0f1d0b062c3bee;\nvar $508cda6802bfa872$export$b4dbb67ffc3cc7a9;\n$508cda6802bfa872$export$d7f2c44afcf5df56 = \"map-container_4c0a66\";\n$508cda6802bfa872$export$e163bcc0a29d66c = \"show-panel-outlines_4c0a66\";\n$508cda6802bfa872$export$11aa7dc57218208d = \"map-view-container_4c0a66\";\n$508cda6802bfa872$export$2a73fca7b70dce31 = \"fit-viewport_4c0a66\";\n$508cda6802bfa872$export$cc73204c64cc0950 = \"compass-control_4c0a66\";\n$508cda6802bfa872$export$d2972e7dfac51dc2 = \"map-is-rotated_4c0a66\";\n$508cda6802bfa872$export$142b9410c523ef40 = \"map-3d-control_4c0a66\";\n$508cda6802bfa872$export$6bc2d6545947abbc = \"map-3d-available_4c0a66\";\n$508cda6802bfa872$export$b06313b17bd37b68 = \"globe-control_4c0a66\";\n$508cda6802bfa872$export$ea9cfbb56edd0e47 = \"map-is-global_4c0a66\";\n$508cda6802bfa872$export$62a60ea2feb29c53 = \"detail-panel-open_4c0a66\";\n$508cda6802bfa872$export$61e54aa1efb913ad = \"zoom-control_4c0a66\";\n$508cda6802bfa872$export$4a4f34b86d8e6504 = \"detail-panel-fixed_4c0a66\";\n$508cda6802bfa872$export$f553ebb4e6df6c5f = \"detail-panel-holder_4c0a66\";\n$508cda6802bfa872$export$c163dab1f00a51cb = \"map-control-stack_4c0a66\";\n$508cda6802bfa872$export$bc4885f800420ea3 = \"main-row_4c0a66\";\n$508cda6802bfa872$export$7d4a718201bc0bd1 = \"map-ui_4c0a66\";\n$508cda6802bfa872$export$d0dcaf774d09fc4c = \"mapbox-map_4c0a66\";\n$508cda6802bfa872$export$1113ec858cdbc244 = \"context-panel-holder_4c0a66\";\n$508cda6802bfa872$export$8eff531ff0f1cffe = \"panel-card_4c0a66\";\n$508cda6802bfa872$export$a15c1c170cdda69a = \"context-stack_4c0a66\";\n$508cda6802bfa872$export$2ac23befe9d406ee = \"searchbar_4c0a66\";\n$508cda6802bfa872$export$bb1d4538b98f1621 = \"detail-stack_4c0a66\";\n$508cda6802bfa872$export$9dd9a0eceddf6af6 = \"panel-container_4c0a66\";\n$508cda6802bfa872$export$9672a0c48c9048ad = \"panel-title_4c0a66\";\n$508cda6802bfa872$export$8cc075c801fd6817 = \"spacer_4c0a66\";\n$508cda6802bfa872$export$3a39e67bbbcbd4ae = \"searchbar-holder_4c0a66\";\n$508cda6802bfa872$export$3332ecdf6c5467a = \"right-panel_4c0a66\";\n$508cda6802bfa872$export$bbea856fdb3e3c5f = \"buttons_4c0a66\";\n$508cda6802bfa872$export$76800529067ae833 = \"tab-button_4c0a66\";\n$508cda6802bfa872$export$d94de0bab38fd59 = \"menu-card_4c0a66\";\n$508cda6802bfa872$export$9769f988dc28baf = \"narrow-card_4c0a66\";\n$508cda6802bfa872$export$90b77e3be608e918 = \"panel-header_4c0a66\";\n$508cda6802bfa872$export$10c083462c34aef3 = \"minimal_4c0a66\";\n$508cda6802bfa872$export$f3ad069e7751fe80 = \"context-panel-leave_4c0a66\";\n$508cda6802bfa872$export$c20b2d766062840f = \"narrow-enter_4c0a66\";\n$508cda6802bfa872$export$3a4b737893473805 = \"menu-group_4c0a66\";\n$508cda6802bfa872$export$3eeb6f640f2fe17b = \"menu-content_4c0a66\";\n$508cda6802bfa872$export$6fe71a6d4f52db2a = \"bp5-button-group_4c0a66\";\n$508cda6802bfa872$export$aa8359f513bf67ff = \"detail-panel-container_4c0a66\";\n$508cda6802bfa872$export$98a77ae0c82023e7 = \"map-right-controls_4c0a66\";\n$508cda6802bfa872$export$802dc54769b48aa7 = \"map-controls_4c0a66\";\n$508cda6802bfa872$export$b56f659d649f0d92 = \"map-scale-control_4c0a66\";\n$508cda6802bfa872$export$e017ebf46ba443ed = \"detail-panel-enter_4c0a66\";\n$508cda6802bfa872$export$69fa1b5d46c139b9 = \"infodrawer-stack_4c0a66\";\n$508cda6802bfa872$export$c6930745f2610de0 = \"detail-panel_4c0a66\";\n$508cda6802bfa872$export$4db621d3143ef457 = \"adaptive-width_4c0a66\";\n$508cda6802bfa872$export$90f42dafd5c24d2d = \"context-panel-from_4c0a66\";\n$508cda6802bfa872$export$9ea3835d1b44cc08 = \"context-panel-enter_4c0a66\";\n$508cda6802bfa872$export$50b37414f37debaa = \"detail-panel-floating_4c0a66\";\n$508cda6802bfa872$export$419647d5ce4279cb = \"detail-panel-from_4c0a66\";\n$508cda6802bfa872$export$1d0f1d0b062c3bee = \"detail-panel-leave_4c0a66\";\n$508cda6802bfa872$export$b4dbb67ffc3cc7a9 = \"context-panel_4c0a66\";\n\n\n//# sourceMappingURL=main.module.24615279.js.map\n",null],"names":["$508cda6802bfa872$export$d7f2c44afcf5df56","$508cda6802bfa872$export$e163bcc0a29d66c","$508cda6802bfa872$export$11aa7dc57218208d","$508cda6802bfa872$export$2a73fca7b70dce31","$508cda6802bfa872$export$cc73204c64cc0950","$508cda6802bfa872$export$d2972e7dfac51dc2","$508cda6802bfa872$export$142b9410c523ef40","$508cda6802bfa872$export$6bc2d6545947abbc","$508cda6802bfa872$export$b06313b17bd37b68","$508cda6802bfa872$export$ea9cfbb56edd0e47","$508cda6802bfa872$export$62a60ea2feb29c53","$508cda6802bfa872$export$61e54aa1efb913ad","$508cda6802bfa872$export$4a4f34b86d8e6504","$508cda6802bfa872$export$f553ebb4e6df6c5f","$508cda6802bfa872$export$c163dab1f00a51cb","$508cda6802bfa872$export$bc4885f800420ea3","$508cda6802bfa872$export$7d4a718201bc0bd1","$508cda6802bfa872$export$d0dcaf774d09fc4c","$508cda6802bfa872$export$1113ec858cdbc244","$508cda6802bfa872$export$8eff531ff0f1cffe","$508cda6802bfa872$export$a15c1c170cdda69a","$508cda6802bfa872$export$2ac23befe9d406ee","$508cda6802bfa872$export$bb1d4538b98f1621","$508cda6802bfa872$export$9dd9a0eceddf6af6","$508cda6802bfa872$export$9672a0c48c9048ad","$508cda6802bfa872$export$8cc075c801fd6817","$508cda6802bfa872$export$3a39e67bbbcbd4ae","$508cda6802bfa872$export$3332ecdf6c5467a","$508cda6802bfa872$export$bbea856fdb3e3c5f","$508cda6802bfa872$export$76800529067ae833","$508cda6802bfa872$export$d94de0bab38fd59","$508cda6802bfa872$export$9769f988dc28baf","$508cda6802bfa872$export$90b77e3be608e918","$508cda6802bfa872$export$10c083462c34aef3","$508cda6802bfa872$export$f3ad069e7751fe80","$508cda6802bfa872$export$c20b2d766062840f","$508cda6802bfa872$export$3a4b737893473805","$508cda6802bfa872$export$3eeb6f640f2fe17b","$508cda6802bfa872$export$6fe71a6d4f52db2a","$508cda6802bfa872$export$aa8359f513bf67ff","$508cda6802bfa872$export$98a77ae0c82023e7","$508cda6802bfa872$export$802dc54769b48aa7","$508cda6802bfa872$export$b56f659d649f0d92","$508cda6802bfa872$export$e017ebf46ba443ed","$508cda6802bfa872$export$69fa1b5d46c139b9","$508cda6802bfa872$export$c6930745f2610de0","$508cda6802bfa872$export$4db621d3143ef457","$508cda6802bfa872$export$90f42dafd5c24d2d","$508cda6802bfa872$export$9ea3835d1b44cc08","$508cda6802bfa872$export$50b37414f37debaa","$508cda6802bfa872$export$419647d5ce4279cb","$508cda6802bfa872$export$1d0f1d0b062c3bee","$508cda6802bfa872$export$b4dbb67ffc3cc7a9","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","module","exports"],"version":3,"file":"main.module.24615279.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.map-container_4c0a66{--map-panel-border-radius:4px;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.map-container_4c0a66.show-panel-outlines_4c0a66 .map-view-container_4c0a66{outline:2px dotted #1e90ff}.map-container_4c0a66.fit-viewport_4c0a66{width:100vw;height:100vh;max-height:-webkit-fill-available}.map-container_4c0a66 .compass-control_4c0a66{display:none}.map-container_4c0a66.map-is-rotated_4c0a66 .compass-control_4c0a66{display:block}.map-container_4c0a66 .map-3d-control_4c0a66{display:none}.map-container_4c0a66.map-3d-available_4c0a66 .map-3d-control_4c0a66{display:block}.map-container_4c0a66.map-is-rotated_4c0a66.map-3d-available_4c0a66 .map-3d-control_4c0a66,.map-container_4c0a66 .globe-control_4c0a66{display:none}.map-container_4c0a66 .globe-control_4c0a66 svg{color:var(--secondary-color)}.map-container_4c0a66.map-is-global_4c0a66 .globe-control_4c0a66{display:block}.map-container_4c0a66.detail-panel-open_4c0a66 .zoom-control_4c0a66{opacity:0;display:none}.map-container_4c0a66.detail-panel-fixed_4c0a66 .detail-panel-holder_4c0a66>*{border-radius:unset}.detail-panel-holder_4c0a66{flex-direction:column;min-height:0;display:flex}.detail-panel-holder_4c0a66>*{flex:1}.map-control-stack_4c0a66{pointer-events:none;flex-direction:column;width:30em;margin-left:-30em;display:flex}.main-row_4c0a66{flex-direction:row;flex:1;min-height:0;max-height:100%;display:flex;position:relative}.map-ui_4c0a66{height:100%;max-height:100%;box-shadow:0 0 10px 4px var(--card-shadow-color);flex-direction:column;flex:1;display:flex;position:relative}.mapbox-map_4c0a66{position:absolute;inset:0}.mapbox-map_4c0a66.mapboxgl-map{position:absolute}.context-panel-holder_4c0a66>.bp5-card{background-color:var(--panel-background-color);padding:10px}.panel-card_4c0a66,.panel-card_4c0a66.bp5-card{padding:var(--panel-padding,10px);background-color:var(--panel-background-color);border-radius:var(--map-panel-border-radius);overflow:hidden}.panel-card_4c0a66>:last-child,.panel-card_4c0a66.bp5-card>:last-child{margin-bottom:0}.bp5-dark .panel-card_4c0a66{background-color:var(--panel-background-color)}.context-stack_4c0a66>div{flex-shrink:1}.context-stack_4c0a66>.searchbar_4c0a66{flex:0}.context-stack_4c0a66,.detail-stack_4c0a66{z-index:10;max-height:100%}.panel-container_4c0a66{flex-direction:column;display:flex}.panel-container_4c0a66>div{pointer-events:all}.panel-title_4c0a66{font-size:16px}.spacer_4c0a66{pointer-events:none;flex-grow:1}.map-view-container_4c0a66{flex-grow:1;position:relative;overflow:hidden}.searchbar-holder_4c0a66{margin-bottom:.5em}.right-panel_4c0a66{width:24em}.buttons_4c0a66{flex-direction:row;flex:1;min-width:0;display:flex}.tab-button_4c0a66{text-align:right;flex-shrink:1;min-width:40px;overflow:hidden}.tab-button_4c0a66 .bp5-button-text{transition:all .2s .1s}.menu-card_4c0a66.narrow-card_4c0a66 .panel-header_4c0a66:not(.minimal_4c0a66) .tab-button_4c0a66.bp5-active~.tab-button_4c0a66 .bp5-button-text{opacity:0;width:0;margin-left:-7px}.context-panel-leave_4c0a66 .menu-card_4c0a66 .panel-header_4c0a66 .tab-button_4c0a66 .bp5-button-text{opacity:0;width:0}.narrow-card_4c0a66.narrow-enter_4c0a66 .panel-header_4c0a66 .buttons_4c0a66{margin-right:-500px}.panel-header_4c0a66.minimal_4c0a66 .tab-button_4c0a66:not(:hover):not(.bp5-active){width:30px;min-width:30px;padding-left:0;padding-right:0}.panel-header_4c0a66.minimal_4c0a66 .tab-button_4c0a66:not(:hover) .bp5-button-text{opacity:0;width:0;margin-left:-7px}.menu-group_4c0a66{margin-top:.2em;margin-bottom:.5em}.menu-card_4c0a66 .bp5-text ul,.menu-card_4c0a66 .text-panel ul{padding-left:1em}.menu-content_4c0a66{flex-direction:column;margin-bottom:-8px;display:flex}.menu-content_4c0a66 .bp5-button-group_4c0a66{margin-bottom:4px}.menu-content_4c0a66 hr{width:100%}.mapbox-map .mapbox-compass,.mapbox-map .mapbox-3d{display:none}.mapboxgl-ctrl.mapbox-3d.mapbox-control{width:unset}.mapboxgl-ctrl.mapbox-3d.mapbox-control button{width:unset;padding-inline:4px}.mapboxgl-canvas-container{width:100%;height:100%}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:var(--translucent-panel-background-color)!important}.mapboxgl-ctrl.mapboxgl-ctrl-attrib a{color:var(--text-color)}.mapboxgl-marker svg path{fill:var(--panel-background-color)!important}.mapboxgl-marker svg circle{fill:var(--secondary-color)!important}.mapbox-control.mapbox-zoom{background:var(--translucent-panel-background-inner)}.mapbox-control.mapbox-zoom svg{fill:var(--text-color)!important}.mapboxgl-ctrl-logo{transform:scale(.9)translate(-8px,2px)}.bp5-dark .mapboxgl-ctrl-group{background-color:var(--panel-background-color)}.bp5-dark .mapboxgl-ctrl-logo{filter:invert()}.mapboxgl-ctrl-group button+button{border-top:1px solid var(--panel-rule-color)!important}.bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon{filter:invert(40%)}.bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon:hover{filter:invert(50%)}.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{filter:invert(40%)}.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon:hover{filter:invert(50%)}.detail-stack_4c0a66{position:relative}.detail-panel-container_4c0a66,.map-right-controls_4c0a66{flex:1}.zoom-control_4c0a66{width:30px;transition:opacity 1s ease-in-out;position:absolute;top:0;right:0}.map-controls_4c0a66{flex-direction:row;justify-content:right;gap:.5em;margin-bottom:0;display:flex}.map-controls_4c0a66 .map-control>.bp5-button{padding:0;transform:translate(-3.5px,-3.5px);width:22px!important}.map-controls_4c0a66 .mapbox-control,.map-controls_4c0a66 .map-control-wrapper,.map-controls_4c0a66 .map-control{background-color:var(--panel-background-color);height:22px;max-height:22px;box-shadow:0 0 0 1px var(--card-shadow-color);border-radius:4px}.map-controls_4c0a66 .mapbox-control button,.map-controls_4c0a66 .map-control-wrapper button,.map-controls_4c0a66 .map-control button{background-position:50%;width:22px;max-width:22px;height:22px;max-height:22px;padding:0}.map-controls_4c0a66 .map-scale-control_4c0a66{box-shadow:none;background:0 0;padding-top:8px}.map-controls_4c0a66 .map-scale-control_4c0a66 .mapboxgl-ctrl-scale{background-color:var(--translucent-panel-background-color);border-color:var(--secondary-text-color);color:var(--secondary-text-color)}@media only screen and (width<=768px){.map-container_4c0a66.detail-panel-enter_4c0a66 .context-stack_4c0a66{visibility:hidden;height:0;transition:height .5s ease-in-out}.detail-stack_4c0a66{height:fit-content;position:inherit;max-height:70%}.infodrawer-stack_4c0a66{max-height:70%}.infodrawer-stack_4c0a66.exit-active{max-height:0}.mapbox-control.mapbox-zoom{display:none}.map-controls_4c0a66{position:absolute;top:-60px;right:10px}.detail-panel_4c0a66{border-radius:0}}@media screen and (width>=768px){.map-ui_4c0a66{flex-direction:row;gap:.5em;min-height:80px;padding:1em 1em 2em}.context-stack_4c0a66{max-width:var(--map-context-stack-max-width,34em);min-width:14em;width:var(--map-context-stack-width,16em);flex-direction:column;margin-right:.5em;padding-bottom:.5em;transition:width .3s;display:flex}.context-stack_4c0a66.adaptive-width_4c0a66{width:var(--map-context-stack-width,none);max-width:var(--map-context-stack-max-width,none);transition:width .3s}.context-stack_4c0a66 .bp5-navbar h1,.context-stack_4c0a66 .bp5-navbar h2,.context-stack_4c0a66 .bp5-navbar h3{margin:0}.context-stack_4c0a66>.spacer_4c0a66{flex-grow:0}.context-panel-holder_4c0a66{min-height:0;position:relative}.context-panel-holder_4c0a66>div{max-height:100%}.detail-stack_4c0a66{width:var(--map-detail-stack-width,30em);flex-direction:column;display:flex}.context-stack_4c0a66,.detail-stack_4c0a66{pointer-events:none;z-index:10}.context-stack_4c0a66>div,.detail-stack_4c0a66>div{pointer-events:all;margin-bottom:.5em}.context-stack_4c0a66>div:last-child,.detail-stack_4c0a66>div:last-child{margin-bottom:0}.context-stack_4c0a66>div.spacer_4c0a66,.detail-stack_4c0a66>div.spacer_4c0a66{pointer-events:none}.context-stack_4c0a66 .context-stack_4c0a66 .spacer_4c0a66,.detail-stack_4c0a66 .context-stack_4c0a66 .spacer_4c0a66{min-height:1em}.map-view-container_4c0a66{position:unset}}.map-container_4c0a66 .context-panel-holder_4c0a66{pointer-events:none;flex:1}.map-container_4c0a66 .context-panel-holder_4c0a66>div{pointer-events:all;transition:opacity .8s}.map-container_4c0a66.context-panel-from_4c0a66 .context-panel-holder_4c0a66>div{opacity:0}.map-container_4c0a66.context-panel-enter_4c0a66 .context-panel-holder_4c0a66>div{opacity:1}.map-container_4c0a66.context-panel-leave_4c0a66 .context-panel-holder_4c0a66>div,.map-container_4c0a66.detail-panel-floating_4c0a66.detail-panel-from_4c0a66 .detail-panel-holder_4c0a66{opacity:0}.map-container_4c0a66.detail-panel-floating_4c0a66.detail-panel-enter_4c0a66 .detail-panel-holder_4c0a66{opacity:1}.map-container_4c0a66.detail-panel-floating_4c0a66.detail-panel-leave_4c0a66 .detail-panel-holder_4c0a66{opacity:0}.map-container_4c0a66.detail-panel-floating_4c0a66 .detail-panel_4c0a66{transition:opacity .8s,height .8s,max-height .8s}.map-container_4c0a66.detail-panel-fixed_4c0a66 .map-ui_4c0a66,.map-container_4c0a66.detail-panel-fixed_4c0a66 .detail-stack_4c0a66{transition:margin-right .8s}.map-container_4c0a66.detail-panel-fixed_4c0a66.detail-panel-from_4c0a66 .detail-panel-holder_4c0a66{margin-right:calc(-1*var(--map-detail-stack-width,30em))}.map-container_4c0a66.detail-panel-fixed_4c0a66.detail-panel-enter_4c0a66 .detail-panel-holder_4c0a66{margin-right:0}.map-container_4c0a66.detail-panel-fixed_4c0a66.detail-panel-leave_4c0a66 .detail-panel-holder_4c0a66{margin-right:calc(-1*var(--map-detail-stack-width,30em))}@media only screen and (width<=768px){.map-container_4c0a66 .detail-stack_4c0a66{transition:opacity .8s,height .8s,max-height .8s}.map-container_4c0a66.detail-panel-from_4c0a66 .detail-stack_4c0a66{height:0;max-height:0}.map-container_4c0a66.detail-panel-leave_4c0a66 .detail-stack_4c0a66{max-height:0}.map-container_4c0a66.context-panel-from_4c0a66 .context-panel_4c0a66{height:0;max-height:0}.map-container_4c0a66.context-panel-leave_4c0a66 .context-stack_4c0a66 .context-panel-holder_4c0a66{flex:0}.map-container_4c0a66.context-panel-leave_4c0a66 .context-stack_4c0a66 .spacer_4c0a66{flex:1}}@media only screen and (width>=768px){.map-container_4c0a66.detail-panel-leave_4c0a66 .map-view-container_4c0a66{margin-right:-14em}.map-container_4c0a66.map-is-global_4c0a66.detail-panel-leave_4c0a66 .map-view-container_4c0a66{margin-right:-30em}.map-container_4c0a66.map-is-global_4c0a66.context-panel-leave_4c0a66 .map-view-container_4c0a66{margin-left:-16em}}
|
|
2
|
-
/*# sourceMappingURL=main.module.65e40c2e.css.map */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"ACAA,gJAUI,uGAGF,qGAOA,2DAIE,kFAGF,0DAGA,mFAGA,oJAME,6EAGF,+EAIE,2FAME,kG,4E,qC,8GAgBJ,uGAOA,wJAYF,6CAME,kDAGA,mGAKE,6L,uFAQF,4EAGA,wCAGE,+CAEJ,sEAKI,2D,+CAKJ,mC,+CAOE,yE,4C,+BASA,mEAKA,iF,2D,oLAYA,yHAGF,iGAGE,6I,uH,sD,iF,2EAsBA,gE,mCAKA,gE,oDAKA,8EAEF,kDAIA,yGAGE,8DAGE,uEAGA,kEAIA,iFAGF,iEAGA,2D,8EAME,8CAGA,0FAGA,sEAGA,4EAGA,gEAGA,sEAGA,uCAGA,iEAIE,kG,oGAcJ,gH,4P,8NAqBA,8F,0MAaF,sCAAA,mIAME,wEAGF,wCAIE,kDAGA,yC,4D,sC,iCA4BE,+EAMA,+N,6J,wH,iDAoBJ,4DAME,iDAIA,iG,0EASE,yFAIA,yFAIA,mGAGE,oIAQF,2CAKA,8E,iGAQA,2FAGA,4FAGA,oM,mH,mH,yHAeF,gKAQE,8JAGA,qH,+J,sCAQF,4FAGA,0FAOI,kFAGA,4F,2G,8FAaF,sCACE,8FAGA,mHAGA","sources":["main.module.65e40c2e.css","packages/map-interface/src/main.module.sass"],"sourcesContent":[".map-container_4c0a66 {\n --map-panel-border-radius: 4px;\n flex-direction: column;\n width: 100%;\n height: 100%;\n display: flex;\n position: relative;\n overflow: hidden;\n}\n\n.map-container_4c0a66.show-panel-outlines_4c0a66 .map-view-container_4c0a66 {\n outline: 2px dotted #1e90ff;\n}\n\n.map-container_4c0a66.fit-viewport_4c0a66 {\n width: 100vw;\n height: 100vh;\n max-height: -webkit-fill-available;\n}\n\n.map-container_4c0a66 .compass-control_4c0a66 {\n display: none;\n}\n\n.map-container_4c0a66.map-is-rotated_4c0a66 .compass-control_4c0a66 {\n display: block;\n}\n\n.map-container_4c0a66 .map-3d-control_4c0a66 {\n display: none;\n}\n\n.map-container_4c0a66.map-3d-available_4c0a66 .map-3d-control_4c0a66 {\n display: block;\n}\n\n.map-container_4c0a66.map-is-rotated_4c0a66.map-3d-available_4c0a66 .map-3d-control_4c0a66, .map-container_4c0a66 .globe-control_4c0a66 {\n display: none;\n}\n\n.map-container_4c0a66 .globe-control_4c0a66 svg {\n color: var(--secondary-color);\n}\n\n.map-container_4c0a66.map-is-global_4c0a66 .globe-control_4c0a66 {\n display: block;\n}\n\n.map-container_4c0a66.detail-panel-open_4c0a66 .zoom-control_4c0a66 {\n opacity: 0;\n display: none;\n}\n\n.map-container_4c0a66.detail-panel-fixed_4c0a66 .detail-panel-holder_4c0a66 > * {\n border-radius: unset;\n}\n\n.detail-panel-holder_4c0a66 {\n flex-direction: column;\n min-height: 0;\n display: flex;\n}\n\n.detail-panel-holder_4c0a66 > * {\n flex: 1;\n}\n\n.map-control-stack_4c0a66 {\n pointer-events: none;\n flex-direction: column;\n width: 30em;\n margin-left: -30em;\n display: flex;\n}\n\n.main-row_4c0a66 {\n flex-direction: row;\n flex: 1;\n min-height: 0;\n max-height: 100%;\n display: flex;\n position: relative;\n}\n\n.map-ui_4c0a66 {\n height: 100%;\n max-height: 100%;\n box-shadow: 0 0 10px 4px var(--card-shadow-color);\n flex-direction: column;\n flex: 1;\n display: flex;\n position: relative;\n}\n\n.mapbox-map_4c0a66 {\n position: absolute;\n inset: 0;\n}\n\n.mapbox-map_4c0a66.mapboxgl-map {\n position: absolute;\n}\n\n.context-panel-holder_4c0a66 > .bp5-card {\n background-color: var(--panel-background-color);\n padding: 10px;\n}\n\n.panel-card_4c0a66, .panel-card_4c0a66.bp5-card {\n padding: var(--panel-padding, 10px);\n background-color: var(--panel-background-color);\n border-radius: var(--map-panel-border-radius);\n overflow: hidden;\n}\n\n.panel-card_4c0a66 > :last-child, .panel-card_4c0a66.bp5-card > :last-child {\n margin-bottom: 0;\n}\n\n.bp5-dark .panel-card_4c0a66 {\n background-color: var(--panel-background-color);\n}\n\n.context-stack_4c0a66 > div {\n flex-shrink: 1;\n}\n\n.context-stack_4c0a66 > .searchbar_4c0a66 {\n flex: 0;\n}\n\n.context-stack_4c0a66, .detail-stack_4c0a66 {\n z-index: 10;\n max-height: 100%;\n}\n\n.panel-container_4c0a66 {\n flex-direction: column;\n display: flex;\n}\n\n.panel-container_4c0a66 > div {\n pointer-events: all;\n}\n\n.panel-title_4c0a66 {\n font-size: 16px;\n}\n\n.spacer_4c0a66 {\n pointer-events: none;\n flex-grow: 1;\n}\n\n.map-view-container_4c0a66 {\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n}\n\n.searchbar-holder_4c0a66 {\n margin-bottom: .5em;\n}\n\n.right-panel_4c0a66 {\n width: 24em;\n}\n\n.buttons_4c0a66 {\n flex-direction: row;\n flex: 1;\n min-width: 0;\n display: flex;\n}\n\n.tab-button_4c0a66 {\n text-align: right;\n flex-shrink: 1;\n min-width: 40px;\n overflow: hidden;\n}\n\n.tab-button_4c0a66 .bp5-button-text {\n transition: all .2s .1s;\n}\n\n.menu-card_4c0a66.narrow-card_4c0a66 .panel-header_4c0a66:not(.minimal_4c0a66) .tab-button_4c0a66.bp5-active ~ .tab-button_4c0a66 .bp5-button-text {\n opacity: 0;\n width: 0;\n margin-left: -7px;\n}\n\n.context-panel-leave_4c0a66 .menu-card_4c0a66 .panel-header_4c0a66 .tab-button_4c0a66 .bp5-button-text {\n opacity: 0;\n width: 0;\n}\n\n.narrow-card_4c0a66.narrow-enter_4c0a66 .panel-header_4c0a66 .buttons_4c0a66 {\n margin-right: -500px;\n}\n\n.panel-header_4c0a66.minimal_4c0a66 .tab-button_4c0a66:not(:hover):not(.bp5-active) {\n width: 30px;\n min-width: 30px;\n padding-left: 0;\n padding-right: 0;\n}\n\n.panel-header_4c0a66.minimal_4c0a66 .tab-button_4c0a66:not(:hover) .bp5-button-text {\n opacity: 0;\n width: 0;\n margin-left: -7px;\n}\n\n.menu-group_4c0a66 {\n margin-top: .2em;\n margin-bottom: .5em;\n}\n\n.menu-card_4c0a66 .bp5-text ul, .menu-card_4c0a66 .text-panel ul {\n padding-left: 1em;\n}\n\n.menu-content_4c0a66 {\n flex-direction: column;\n margin-bottom: -8px;\n display: flex;\n}\n\n.menu-content_4c0a66 .bp5-button-group_4c0a66 {\n margin-bottom: 4px;\n}\n\n.menu-content_4c0a66 hr {\n width: 100%;\n}\n\n.mapbox-map .mapbox-compass, .mapbox-map .mapbox-3d {\n display: none;\n}\n\n.mapboxgl-ctrl.mapbox-3d.mapbox-control {\n width: unset;\n}\n\n.mapboxgl-ctrl.mapbox-3d.mapbox-control button {\n width: unset;\n padding-inline: 4px;\n}\n\n.mapboxgl-canvas-container {\n width: 100%;\n height: 100%;\n}\n\n.mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n background-color: var(--translucent-panel-background-color) !important;\n}\n\n.mapboxgl-ctrl.mapboxgl-ctrl-attrib a {\n color: var(--text-color);\n}\n\n.mapboxgl-marker svg path {\n fill: var(--panel-background-color) !important;\n}\n\n.mapboxgl-marker svg circle {\n fill: var(--secondary-color) !important;\n}\n\n.mapbox-control.mapbox-zoom {\n background: var(--translucent-panel-background-inner);\n}\n\n.mapbox-control.mapbox-zoom svg {\n fill: var(--text-color) !important;\n}\n\n.mapboxgl-ctrl-logo {\n transform: scale(.9)translate(-8px, 2px);\n}\n\n.bp5-dark .mapboxgl-ctrl-group {\n background-color: var(--panel-background-color);\n}\n\n.bp5-dark .mapboxgl-ctrl-logo {\n filter: invert();\n}\n\n.mapboxgl-ctrl-group button + button {\n border-top: 1px solid var(--panel-rule-color) !important;\n}\n\n.bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon {\n filter: invert(40%);\n}\n\n.bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon:hover {\n filter: invert(50%);\n}\n\n.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n filter: invert(40%);\n}\n\n.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon:hover {\n filter: invert(50%);\n}\n\n.detail-stack_4c0a66 {\n position: relative;\n}\n\n.detail-panel-container_4c0a66, .map-right-controls_4c0a66 {\n flex: 1;\n}\n\n.zoom-control_4c0a66 {\n width: 30px;\n transition: opacity 1s ease-in-out;\n position: absolute;\n top: 0;\n right: 0;\n}\n\n.map-controls_4c0a66 {\n flex-direction: row;\n justify-content: right;\n gap: .5em;\n margin-bottom: 0;\n display: flex;\n}\n\n.map-controls_4c0a66 .map-control > .bp5-button {\n padding: 0;\n transform: translate(-3.5px, -3.5px);\n width: 22px !important;\n}\n\n.map-controls_4c0a66 .mapbox-control, .map-controls_4c0a66 .map-control-wrapper, .map-controls_4c0a66 .map-control {\n background-color: var(--panel-background-color);\n height: 22px;\n max-height: 22px;\n box-shadow: 0 0 0 1px var(--card-shadow-color);\n border-radius: 4px;\n}\n\n.map-controls_4c0a66 .mapbox-control button, .map-controls_4c0a66 .map-control-wrapper button, .map-controls_4c0a66 .map-control button {\n background-position: center;\n width: 22px;\n max-width: 22px;\n height: 22px;\n max-height: 22px;\n padding: 0;\n}\n\n.map-controls_4c0a66 .map-scale-control_4c0a66 {\n box-shadow: none;\n background: none;\n padding-top: 8px;\n}\n\n.map-controls_4c0a66 .map-scale-control_4c0a66 .mapboxgl-ctrl-scale {\n background-color: var(--translucent-panel-background-color);\n border-color: var(--secondary-text-color);\n color: var(--secondary-text-color);\n}\n\n@media only screen and (width <= 768px) {\n .map-container_4c0a66.detail-panel-enter_4c0a66 .context-stack_4c0a66 {\n visibility: hidden;\n height: 0;\n transition: height .5s ease-in-out;\n }\n\n .detail-stack_4c0a66 {\n height: fit-content;\n position: inherit;\n max-height: 70%;\n }\n\n .infodrawer-stack_4c0a66 {\n max-height: 70%;\n }\n\n .infodrawer-stack_4c0a66.exit-active {\n max-height: 0;\n }\n\n .mapbox-control.mapbox-zoom {\n display: none;\n }\n\n .map-controls_4c0a66 {\n position: absolute;\n top: -60px;\n right: 10px;\n }\n\n .detail-panel_4c0a66 {\n border-radius: 0;\n }\n}\n\n@media screen and (width >= 768px) {\n .map-ui_4c0a66 {\n flex-direction: row;\n gap: .5em;\n min-height: 80px;\n padding: 1em 1em 2em;\n }\n\n .context-stack_4c0a66 {\n max-width: var(--map-context-stack-max-width, 34em);\n min-width: 14em;\n width: var(--map-context-stack-width, 16em);\n flex-direction: column;\n margin-right: .5em;\n padding-bottom: .5em;\n transition: width .3s;\n display: flex;\n }\n\n .context-stack_4c0a66.adaptive-width_4c0a66 {\n width: var(--map-context-stack-width, none);\n max-width: var(--map-context-stack-max-width, none);\n transition: width .3s;\n }\n\n .context-stack_4c0a66 .bp5-navbar h1, .context-stack_4c0a66 .bp5-navbar h2, .context-stack_4c0a66 .bp5-navbar h3 {\n margin: 0;\n }\n\n .context-stack_4c0a66 > .spacer_4c0a66 {\n flex-grow: 0;\n }\n\n .context-panel-holder_4c0a66 {\n min-height: 0;\n position: relative;\n }\n\n .context-panel-holder_4c0a66 > div {\n max-height: 100%;\n }\n\n .detail-stack_4c0a66 {\n width: var(--map-detail-stack-width, 30em);\n flex-direction: column;\n display: flex;\n }\n\n .context-stack_4c0a66, .detail-stack_4c0a66 {\n pointer-events: none;\n z-index: 10;\n }\n\n .context-stack_4c0a66 > div, .detail-stack_4c0a66 > div {\n pointer-events: all;\n margin-bottom: .5em;\n }\n\n .context-stack_4c0a66 > div:last-child, .detail-stack_4c0a66 > div:last-child {\n margin-bottom: 0;\n }\n\n .context-stack_4c0a66 > div.spacer_4c0a66, .detail-stack_4c0a66 > div.spacer_4c0a66 {\n pointer-events: none;\n }\n\n .context-stack_4c0a66 .context-stack_4c0a66 .spacer_4c0a66, .detail-stack_4c0a66 .context-stack_4c0a66 .spacer_4c0a66 {\n min-height: 1em;\n }\n\n .map-view-container_4c0a66 {\n position: unset;\n }\n}\n\n.map-container_4c0a66 .context-panel-holder_4c0a66 {\n pointer-events: none;\n flex: 1;\n}\n\n.map-container_4c0a66 .context-panel-holder_4c0a66 > div {\n pointer-events: all;\n transition: opacity .8s;\n}\n\n.map-container_4c0a66.context-panel-from_4c0a66 .context-panel-holder_4c0a66 > div {\n opacity: 0;\n}\n\n.map-container_4c0a66.context-panel-enter_4c0a66 .context-panel-holder_4c0a66 > div {\n opacity: 1;\n}\n\n.map-container_4c0a66.context-panel-leave_4c0a66 .context-panel-holder_4c0a66 > div, .map-container_4c0a66.detail-panel-floating_4c0a66.detail-panel-from_4c0a66 .detail-panel-holder_4c0a66 {\n opacity: 0;\n}\n\n.map-container_4c0a66.detail-panel-floating_4c0a66.detail-panel-enter_4c0a66 .detail-panel-holder_4c0a66 {\n opacity: 1;\n}\n\n.map-container_4c0a66.detail-panel-floating_4c0a66.detail-panel-leave_4c0a66 .detail-panel-holder_4c0a66 {\n opacity: 0;\n}\n\n.map-container_4c0a66.detail-panel-floating_4c0a66 .detail-panel_4c0a66 {\n transition: opacity .8s, height .8s, max-height .8s;\n}\n\n.map-container_4c0a66.detail-panel-fixed_4c0a66 .map-ui_4c0a66, .map-container_4c0a66.detail-panel-fixed_4c0a66 .detail-stack_4c0a66 {\n transition: margin-right .8s;\n}\n\n.map-container_4c0a66.detail-panel-fixed_4c0a66.detail-panel-from_4c0a66 .detail-panel-holder_4c0a66 {\n margin-right: calc(-1 * var(--map-detail-stack-width, 30em));\n}\n\n.map-container_4c0a66.detail-panel-fixed_4c0a66.detail-panel-enter_4c0a66 .detail-panel-holder_4c0a66 {\n margin-right: 0;\n}\n\n.map-container_4c0a66.detail-panel-fixed_4c0a66.detail-panel-leave_4c0a66 .detail-panel-holder_4c0a66 {\n margin-right: calc(-1 * var(--map-detail-stack-width, 30em));\n}\n\n@media only screen and (width <= 768px) {\n .map-container_4c0a66 .detail-stack_4c0a66 {\n transition: opacity .8s, height .8s, max-height .8s;\n }\n\n .map-container_4c0a66.detail-panel-from_4c0a66 .detail-stack_4c0a66 {\n height: 0;\n max-height: 0;\n }\n\n .map-container_4c0a66.detail-panel-leave_4c0a66 .detail-stack_4c0a66 {\n max-height: 0;\n }\n\n .map-container_4c0a66.context-panel-from_4c0a66 .context-panel_4c0a66 {\n height: 0;\n max-height: 0;\n }\n\n .map-container_4c0a66.context-panel-leave_4c0a66 .context-stack_4c0a66 .context-panel-holder_4c0a66 {\n flex: 0;\n }\n\n .map-container_4c0a66.context-panel-leave_4c0a66 .context-stack_4c0a66 .spacer_4c0a66 {\n flex: 1;\n }\n}\n\n@media only screen and (width >= 768px) {\n .map-container_4c0a66.detail-panel-leave_4c0a66 .map-view-container_4c0a66 {\n margin-right: -14em;\n }\n\n .map-container_4c0a66.map-is-global_4c0a66.detail-panel-leave_4c0a66 .map-view-container_4c0a66 {\n margin-right: -30em;\n }\n\n .map-container_4c0a66.map-is-global_4c0a66.context-panel-leave_4c0a66 .map-view-container_4c0a66 {\n margin-left: -16em;\n }\n}\n/*# sourceMappingURL=main.module.65e40c2e.css.map */\n",".map-container\n display: flex\n flex-direction: column\n position: relative\n width: 100%\n height: 100%\n overflow: hidden\n --map-panel-border-radius: 4px\n\n &.show-panel-outlines\n .map-view-container\n outline: 2px dotted dodgerblue\n\n &.fit-viewport\n height: 100vh\n width: 100vw\n /* mobile viewport bug fix */\n max-height: -webkit-fill-available\n\n // Compass display\n .compass-control\n display: none\n\n &.map-is-rotated\n .compass-control\n display: block\n\n .map-3d-control\n display: none\n\n &.map-3d-available .map-3d-control\n display: block\n\n &.map-is-rotated.map-3d-available .map-3d-control\n display: none\n\n .globe-control\n display: none\n\n svg\n color: var(--secondary-color)\n\n &.map-is-global .globe-control\n display: block\n\n &.detail-panel-open\n .zoom-control\n opacity: 0\n display: none\n\n &.detail-panel-fixed\n .detail-panel-holder\n & > *\n border-radius: unset\n\n.detail-panel-holder\n display: flex\n flex-direction: column\n min-height: 0\n\n & > *\n flex: 1\n\n.map-control-stack\n display: flex\n flex-direction: column\n width: 30em\n margin-left: -30em\n pointer-events: none\n\n.main-row\n flex: 1\n display: flex\n flex-direction: row\n position: relative\n max-height: 100%\n min-height: 0\n\n.map-ui\n flex: 1\n position: relative\n display: flex\n flex-direction: column\n max-height: 100%\n height: 100%\n box-shadow: 0 0 10px 4px var(--card-shadow-color)\n\n.map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n.mapbox-map\n position: absolute\n top: 0\n bottom: 0\n left: 0\n right: 0\n\n &:global(.mapboxgl-map)\n // override the default mapbox position: relative in all cases\n position: absolute\n\n\n.context-panel-holder > :global(.bp5-card)\n padding: 10px\n background-color: var(--panel-background-color)\n\n.panel-card, .panel-card:global(.bp5-card)\n padding: var(--panel-padding, 10px)\n background-color: var(--panel-background-color)\n overflow: hidden\n border-radius: var(--map-panel-border-radius)\n\n & > :last-child\n margin-bottom: 0\n\n:global(.bp5-dark) .panel-card\n background-color: var(--panel-background-color)\n\n.context-stack\n & > div\n flex-shrink: 1\n\n & > .searchbar\n flex: 0\n\n.context-stack,\n.detail-stack\n z-index: 10\n max-height: 100%\n\n.panel-container\n display: flex\n flex-direction: column\n\n & > div\n pointer-events: all\n\n.panel-title\n font-size: 16px\n\n.spacer\n flex-grow: 1\n pointer-events: none\n\n.map-view-container\n flex-grow: 1\n position: relative\n overflow: hidden\n\n.searchbar-holder\n margin-bottom: 0.5em\n\n.right-panel\n width: 24em\n\n.buttons\n display: flex\n flex-direction: row\n flex: 1\n min-width: 0\n\n.tab-button\n flex-shrink: 1\n min-width: 40px\n overflow: hidden\n text-align: right\n\n & :global(.bp5-button-text)\n transition: all 0.2s\n transition-delay: 0.1s\n\n .menu-card.narrow-card .panel-header:not(.minimal) &:global(.bp5-active) ~ & :global(.bp5-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n .context-panel-leave .menu-card .panel-header & :global(.bp5-button-text)\n opacity: 0\n width: 0\n\n.narrow-card.narrow-enter .panel-header .buttons\n margin-right: -500px\n\n.panel-header.minimal .tab-button:not(:hover):not(:global(.bp5-active))\n padding-left: 0\n padding-right: 0\n min-width: 30px\n width: 30px\n\n.panel-header.minimal .tab-button:not(:hover) :global(.bp5-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n.menu-group\n margin-bottom: 0.5em\n margin-top: 0.2em\n\n.menu-card :global .bp5-text ul,\n.menu-card :global .text-panel ul\n padding-left: 1em\n\n.menu-content\n display: flex\n flex-direction: column\n margin-bottom: -8px\n\n & .bp5-button-group\n margin-bottom: 4px\n\n & hr\n width: 100%\n\n:global\n .mapbox-map\n .mapbox-compass, .mapbox-3d\n display: none\n\n .mapboxgl-ctrl.mapbox-3d.mapbox-control\n width: unset\n\n .mapboxgl-ctrl.mapbox-3d.mapbox-control button\n width: unset\n padding-inline: 4px\n\n .mapboxgl-canvas-container\n width: 100%\n height: 100%\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib\n background-color: var(--translucent-panel-background-color) !important\n\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib a\n color: var(--text-color)\n\n .mapboxgl-marker svg path\n fill: var(--panel-background-color) !important\n\n .mapboxgl-marker svg circle\n fill: var(--secondary-color) !important\n\n .mapbox-control.mapbox-zoom\n background: var(--translucent-panel-background-inner)\n\n .mapbox-control.mapbox-zoom svg\n fill: var(--text-color) !important\n\n .mapboxgl-ctrl-logo\n transform: scale(0.9) translate(-8px, 2px)\n\n .bp5-dark\n .mapboxgl-ctrl-group\n background-color: var(--panel-background-color)\n\n .mapboxgl-ctrl-logo\n filter: invert(100%)\n\n .mapboxgl-ctrl-group button + button\n border-top: 1px solid var(--panel-rule-color) !important\n\n .bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n .bp5-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n .mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon:hover\n filter: invert(50%)\n\n.detail-stack\n position: relative\n\n.detail-panel-container, .map-right-controls\n flex: 1\n\n\n.zoom-control\n transition: opacity 1s ease-in-out\n width: 30px\n position: absolute\n top: 0\n right: 0\n\n.map-controls\n display: flex\n flex-direction: row\n justify-content: right\n margin-bottom: 0\n gap: 0.5em\n\n :global(.map-control)\n & > :global(.bp5-button)\n padding: 0\n transform: translate(-3.5px, -3.5px)\n width: 22px !important\n\n\n.map-controls :global(.mapbox-control),\n.map-controls :global(.map-control-wrapper),\n.map-controls :global(.map-control)\n max-height: 22px\n height: 22px\n border-radius: 4px\n background-color: var(--panel-background-color)\n box-shadow: 0 0 0 1px var(--card-shadow-color)\n\n.map-controls :global(.mapbox-control) button,\n.map-controls :global(.map-control-wrapper) button,\n.map-controls :global(.map-control) button\n max-height: 22px\n height: 22px\n width: 22px\n max-width: 22px\n background-position: center center\n padding: 0\n//background-color: var(--panel-background-color)\n//color: var(--text-color)\n\n//.map-controls :global(.mapbox-control) button:hover,\n//.map-controls :global(.map-control-wrapper) button:hover,\n//.map-controls .map-control button:hover\n// background-color: var(--panel-background-color) !important\n\n.map-controls .map-scale-control\n background: none\n box-shadow: none\n padding-top: 8px\n\n :global(.mapboxgl-ctrl-scale)\n background-color: var(--translucent-panel-background-color)\n border-color: var(--secondary-text-color)\n color: var(--secondary-text-color)\n\n// .map-container.detail-panel-fixed\n// right: 30em\n\n/* For mobile phones, we want to make the most of screen space,\n which in some cases means adding complications to the basic page. */\n@media only screen and (max-width: 768px)\n .map-container.detail-panel-enter .context-stack\n height: 0\n visibility: hidden\n transition: height 0.5s ease-in-out\n\n .detail-stack\n height: fit-content\n position: inherit\n max-height: 70%\n\n .infodrawer-stack\n max-height: 70%\n\n &:global(.exit-active)\n max-height: 0\n\n :global(.mapbox-control.mapbox-zoom)\n display: none\n\n .map-controls\n position: absolute\n top: -60px\n right: 10px\n\n .detail-panel\n border-radius: 0px\n\n\n/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n /* Make map fill page rather than containing div,\n by unsetting map position */\n // We should move this to another file.\n .map-view-container\n position: unset\n\n\n .map-ui\n flex-direction: row\n padding: 1em 1em 2em\n min-height: 80px\n gap: 0.5em\n\n .context-stack\n max-width: var(--map-context-stack-max-width, 34em)\n min-width: 14em\n transition: width 300ms ease\n padding-bottom: 0.5em\n width: var(--map-context-stack-width, 16em)\n margin-right: 0.5em\n display: flex\n flex-direction: column\n\n\n &.adaptive-width\n width: var(--map-context-stack-width, none)\n max-width: var(--map-context-stack-max-width, none)\n transition: width 300ms ease\n\n :global(.bp5-navbar)\n //height: unset\n //padding: 5px\n h1, h2, h3\n margin: 0\n\n & > .spacer\n flex-grow: 0\n\n .context-panel-holder\n min-height: 0\n position: relative\n\n & > div\n max-height: 100%\n\n .detail-stack\n width: var(--map-detail-stack-width, 30em)\n display: flex\n flex-direction: column\n\n .context-stack, .detail-stack\n pointer-events: none\n z-index: 10\n\n & > div\n pointer-events: all\n margin-bottom: 0.5em\n\n &:last-child\n margin-bottom: 0\n\n &.spacer\n pointer-events: none\n\n .context-stack .spacer\n min-height: 1em\n\n /* Make map fill page rather than containing div,\n by unsetting map position */\n .map-view-container\n position: unset\n\n/** CSS Transitions **/\n\n.map-container\n // Context panel\n .context-panel-holder\n pointer-events: none\n flex: 1\n\n & > div\n pointer-events: all\n transition: opacity 0.8s ease\n //, height 0.8s ease, max-height 0.8s ease, padding 0.8s ease\n\n &.context-panel-from .context-panel-holder > div\n opacity: 0\n\n &.context-panel-enter .context-panel-holder > div\n opacity: 1\n\n &.context-panel-leave .context-panel-holder > div\n opacity: 0\n\n // Detail panel (floating)\n &.detail-panel-floating\n // We assume that the relevant panel is the first child of the stack.\n &.detail-panel-from .detail-panel-holder\n opacity: 0\n\n &.detail-panel-enter .detail-panel-holder\n opacity: 1\n\n &.detail-panel-leave .detail-panel-holder\n opacity: 0\n\n .detail-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n // TODO: these styles have not been evaluated for mobile\n &.detail-panel-fixed\n .map-ui\n transition: margin-right 0.8s ease\n\n .detail-stack\n transition: margin-right 0.8s ease\n\n &.detail-panel-from .detail-panel-holder\n margin-right: calc(-1 * var(--map-detail-stack-width, 30em))\n\n &.detail-panel-enter .detail-panel-holder\n margin-right: 0\n\n &.detail-panel-leave .detail-panel-holder\n margin-right: calc(-1 * var(--map-detail-stack-width, 30em))\n\n\n// The max-height transition is a bit jerky because of panel padding.\n// We could probably fix this by pulling the panel container itself into\n// the class.\n//max-height: 0\n//padding: 0i\n\n@media only screen and (max-width: 768px)\n .map-container .detail-stack\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .map-container.detail-panel-from .detail-stack\n max-height: 0\n height: 0\n\n .map-container.detail-panel-leave .detail-stack\n max-height: 0\n\n .map-container.context-panel-from .context-panel\n max-height: 0\n height: 0\n\n .map-container.context-panel-leave\n .context-stack\n .context-panel-holder\n flex: 0\n\n .spacer\n flex: 1\n\n\n// Shift UI around to center elements if we're in the global view\n@media only screen and (min-width: 768px)\n .map-container.detail-panel-leave .map-view-container\n margin-right: -14em\n\n .map-container.map-is-global.detail-panel-leave .map-view-container\n margin-right: -30em\n\n .map-container.map-is-global.context-panel-leave .map-view-container\n margin-left: -16em\n"],"names":[],"version":3,"file":"main.module.65e40c2e.css.map","sourceRoot":"../../../../"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,Q,uC,Q,4C,Q,gD,Q,0C,Q,iD,Q,2C,Q,8C,Q,+C,Q,8C,Q,uD,Q,qB,I,E,Q,qB,S,E,C,E,O,G,E,U,C,E,O,C,C,C,Q,6B,Q,a,Q,S,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,CEAiB,IAAA,IAAoB,oCAAA,QAAA,YAAqC,QAAQ,G,E,S,E,SCAjE,IAAA,IAAoB,uCAAA,QAAA,YAAwC,QAAQ,G,E,SCApE,IAAA,IAAoB,wCAAA,QAAA,YAAyC,QAAQ,G,I,E,C,ECAtF,EAAiB,IAAA,IAAoB,2CAAA,QAAA,YAA4C,QAAQ,GCAxE,IAAA,IAAoB,2CAAA,QAAA,YAA4C,QAAQ,GCAxE,IAAA,IAAoB,oDAAA,QAAA,YAAqD,QAAQ,GNqBjF,AAAA,AAAA,EAAA,GAAM,MAAM,CAAC,EAAA","sources":["<anon>","packages/map-interface/src/dev/map-page.ts","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-a961be11262bcae8.js","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-41182315a502ff81.js","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-85b6c739a2ea044e.js","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-9c60d954890f9a97.js","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-335ad8f486a76563.js","../../../../.yarn/berry/cache/@parcel-runtime-js-npm-2.13.3-f44fec8492-10c0.zip/node_modules/@parcel/runtime-js/lib/runtime-06c74e0074b0dd5f.js"],"sourcesContent":["require(\"./xray.bce11e7b.js\");\nrequire(\"./container.053f798f.js\");\nrequire(\"./context-panel.0ae29ecf.js\");\nrequire(\"./helpers.6bda171f.js\");\nrequire(\"./location-panel.2e422cc0.js\");\nrequire(\"./map-view.9dc96288.js\");\nrequire(\"./main.module.434acaf9.js\");\nrequire(\"./main.module.29a15f3d.css\");\nrequire(\"./tile-extent.28db5d2c.js\");\nrequire(\"./vector-tile-features.b5a23b71.js\");\nvar $8RvAA$blueprintjscore = require(\"@blueprintjs/core\");\nvar $8RvAA$macrostrathyper = require(\"@macrostrat/hyper\");\nvar $8RvAA$macrostratuicomponents = require(\"@macrostrat/ui-components\");\nvar $8RvAA$mapboxgl = require(\"mapbox-gl\");\nvar $8RvAA$react = require(\"react\");\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire94c2\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire94c2\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n// Import other components\n\n\n\n\n\nvar $5d4b13314cc5f40a$exports = {};\n$5d4b13314cc5f40a$exports = new URL(\"xray.bce11e7b.js\", \"file:\" + __filename).toString();\n\n\n\nvar $lw3Ik = parcelRequire(\"lw3Ik\");\n\nvar $d7LVS = parcelRequire(\"d7LVS\");\nvar $bc8852ff0f65ac49$exports = {};\n$bc8852ff0f65ac49$exports = new URL(\"helpers.6bda171f.js\", \"file:\" + __filename).toString();\n\n\n\nvar $6t6Bb = parcelRequire(\"6t6Bb\");\nvar $8037001667fd73db$exports = {};\n$8037001667fd73db$exports = new URL(\"map-view.9dc96288.js\", \"file:\" + __filename).toString();\n\n\nvar $406e8a286e0e74e0$exports = {};\n$406e8a286e0e74e0$exports = new URL(\"main.module.434acaf9.js\", \"file:\" + __filename).toString();\n\n\nvar $245830e409df02af$exports = {};\n$245830e409df02af$exports = new URL(\"tile-extent.28db5d2c.js\", \"file:\" + __filename).toString();\n\n\nvar $7bbdc1ecf93d3670$exports = {};\n$7bbdc1ecf93d3670$exports = new URL(\"vector-tile-features.b5a23b71.js\", \"file:\" + __filename).toString();\n\n\nconst $0bad82db04876d25$export$dda1d9f60106f0e9 = (0, ($parcel$interopDefault($8RvAA$macrostrathyper))).styled((0, (/*@__PURE__*/$parcel$interopDefault($406e8a286e0e74e0$exports))));\nfunction $0bad82db04876d25$export$eab3034e57b46e26({ title: title = \"Map inspector\", headerElement: headerElement = null, transformRequest: transformRequest = null, mapPosition: mapPosition = null, mapboxToken: mapboxToken = null, overlayStyle: overlayStyle = null, controls: controls = null, children: children = null, style: style, bounds: bounds = null, focusedSource: focusedSource = null, focusedSourceTitle: focusedSourceTitle = null, fitViewport: fitViewport = true, styleType: styleType = \"macrostrat\" }) {\n /* We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n */ const dark = (0, $8RvAA$macrostratuicomponents.useDarkMode)();\n const isEnabled = dark?.isEnabled;\n if (mapboxToken != null) (0, ($parcel$interopDefault($8RvAA$mapboxgl))).accessToken = mapboxToken;\n if (styleType == \"macrostrat\") style ?? (style = isEnabled ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\" : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\");\n else style ?? (style = isEnabled ? \"mapbox://styles/mapbox/dark-v10\" : \"mapbox://styles/mapbox/light-v10\");\n const [isOpen, setOpen] = (0, $8RvAA$react.useState)(false);\n const [state, setState] = (0, $8RvAA$macrostratuicomponents.useStoredState)(\"macrostrat:dev-map-page\", {\n showTileExtent: false,\n xRay: false\n });\n const { showTileExtent: showTileExtent, xRay: xRay } = state;\n const [actualStyle, setActualStyle] = (0, $8RvAA$react.useState)(null);\n (0, $8RvAA$react.useEffect)(()=>{\n (0, $5d4b13314cc5f40a$exports.buildInspectorStyle)(style, overlayStyle, {\n mapboxToken: mapboxToken,\n inDarkMode: isEnabled,\n xRay: xRay\n }).then(setActualStyle);\n }, [\n style,\n xRay,\n mapboxToken,\n isEnabled,\n overlayStyle\n ]);\n const [inspectPosition, setInspectPosition] = (0, $8RvAA$react.useState)(null);\n const [data, setData] = (0, $8RvAA$react.useState)(null);\n const onSelectPosition = (0, $8RvAA$react.useCallback)((position)=>{\n setInspectPosition(position);\n }, []);\n let detailElement = null;\n if (inspectPosition != null) detailElement = $0bad82db04876d25$export$dda1d9f60106f0e9((0, $6t6Bb.LocationPanel), {\n onClose () {\n setInspectPosition(null);\n },\n position: inspectPosition\n }, [\n $0bad82db04876d25$export$dda1d9f60106f0e9((0, $7bbdc1ecf93d3670$exports.TileInfo), {\n feature: data?.[0] ?? null,\n showExtent: showTileExtent,\n setShowExtent () {\n setState({\n ...state,\n showTileExtent: !showTileExtent\n });\n }\n }),\n $0bad82db04876d25$export$dda1d9f60106f0e9((0, $7bbdc1ecf93d3670$exports.FeaturePanel), {\n features: data,\n focusedSource: focusedSource,\n focusedSourceTitle: focusedSourceTitle\n })\n ]);\n let tile = null;\n if (showTileExtent && data?.[0] != null) {\n let f = data[0];\n tile = {\n x: f._x,\n y: f._y,\n z: f._z\n };\n }\n return $0bad82db04876d25$export$dda1d9f60106f0e9((0, $lw3Ik.MapAreaContainer), {\n navbar: $0bad82db04876d25$export$dda1d9f60106f0e9((0, $d7LVS.FloatingNavbar), {\n rightElement: $0bad82db04876d25$export$dda1d9f60106f0e9((0, $d7LVS.MapLoadingButton), {\n large: true,\n active: isOpen,\n onClick: ()=>setOpen(!isOpen),\n style: {\n marginRight: \"-5px\"\n }\n }),\n headerElement: headerElement,\n title: title\n }),\n contextPanel: $0bad82db04876d25$export$dda1d9f60106f0e9((0, $lw3Ik.PanelCard), [\n controls,\n $0bad82db04876d25$export$dda1d9f60106f0e9((0, $8RvAA$blueprintjscore.Switch), {\n checked: xRay,\n label: \"X-ray mode\",\n onChange () {\n setState({\n ...state,\n xRay: !xRay\n });\n }\n })\n ]),\n detailPanel: detailElement,\n contextPanelOpen: isOpen,\n fitViewport: fitViewport\n }, $0bad82db04876d25$export$dda1d9f60106f0e9((0, $8037001667fd73db$exports.MapView), {\n style: actualStyle,\n transformRequest: transformRequest,\n mapPosition: mapPosition,\n projection: {\n name: \"globe\"\n },\n mapboxToken: mapboxToken,\n bounds: bounds\n }, [\n $0bad82db04876d25$export$dda1d9f60106f0e9((0, $7bbdc1ecf93d3670$exports.FeatureSelectionHandler), {\n selectedLocation: inspectPosition,\n setFeatures: setData\n }),\n $0bad82db04876d25$export$dda1d9f60106f0e9((0, $bc8852ff0f65ac49$exports.MapMarker), {\n position: inspectPosition,\n setPosition: onSelectPosition\n }),\n $0bad82db04876d25$export$dda1d9f60106f0e9((0, $245830e409df02af$exports.TileExtentLayer), {\n tile: tile,\n color: isEnabled ? \"white\" : \"black\"\n }),\n children\n ]));\n}\nfunction $0bad82db04876d25$var$MapInspector(props) {\n const { children: children, controls: controls, ...rest } = props;\n /** Compatibility wrapper for MapInspectorV2 */ // React warning about this legacy usage\n console.warn(\"MapInspector is deprecated. Use MapInspectorV2 instead\");\n return $0bad82db04876d25$export$dda1d9f60106f0e9($0bad82db04876d25$export$eab3034e57b46e26, {\n ...rest,\n controls: [\n children,\n controls\n ]\n });\n}\nconst $0bad82db04876d25$export$2391061fbdfb71ef = $0bad82db04876d25$var$MapInspector;\n\n\n//# sourceMappingURL=map-page.d0e099ab.js.map\n","// Import other components\nimport { Switch } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport { Spacer, useDarkMode, useStoredState } from \"@macrostrat/ui-components\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { buildInspectorStyle } from \"./xray\";\nimport { MapAreaContainer, PanelCard } from \"../container\";\nimport { FloatingNavbar, MapLoadingButton } from \"../context-panel\";\nimport { MapMarker } from \"../helpers\";\nimport { LocationPanel } from \"../location-panel\";\nimport { MapView } from \"../map-view\";\nimport styles from \"./main.module.sass\";\nimport { TileExtentLayer } from \"./tile-extent\";\nimport {\n FeaturePanel,\n FeatureSelectionHandler,\n TileInfo,\n} from \"./vector-tile-features\";\nimport { MapPosition } from \"@macrostrat/mapbox-utils\";\n\nexport const h = hyper.styled(styles);\n\nexport function MapInspectorV2({\n title = \"Map inspector\",\n headerElement = null,\n transformRequest = null,\n mapPosition = null,\n mapboxToken = null,\n overlayStyle = null,\n controls = null,\n children = null,\n style,\n bounds = null,\n focusedSource = null,\n focusedSourceTitle = null,\n fitViewport = true,\n styleType = \"macrostrat\",\n}: {\n headerElement?: React.ReactNode;\n transformRequest?: mapboxgl.TransformRequestFunction;\n title?: string;\n style?: mapboxgl.Style | string;\n controls?: React.ReactNode;\n children?: React.ReactNode;\n mapboxToken?: string;\n overlayStyle?: mapboxgl.Style | string;\n focusedSource?: string;\n focusedSourceTitle?: string;\n projection?: string;\n mapPosition?: MapPosition;\n bounds?: [number, number, number, number];\n fitViewport?: boolean;\n styleType?: \"standard\" | \"macrostrat\";\n}) {\n /* We apply a custom style to the panel container when we are interacting\n with the search bar, so that we can block map interactions until search\n bar focus is lost.\n We also apply a custom style when the infodrawer is open so we can hide\n the search bar on mobile platforms\n */\n\n const dark = useDarkMode();\n const isEnabled = dark?.isEnabled;\n\n if (mapboxToken != null) {\n mapboxgl.accessToken = mapboxToken;\n }\n\n if (styleType == \"macrostrat\") {\n style ??= isEnabled\n ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\"\n : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\";\n } else {\n style ??= isEnabled\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n }\n\n const [isOpen, setOpen] = useState(false);\n\n const [state, setState] = useStoredState(\"macrostrat:dev-map-page\", {\n showTileExtent: false,\n xRay: false,\n });\n const { showTileExtent, xRay } = state;\n\n const [actualStyle, setActualStyle] = useState(null);\n\n useEffect(() => {\n buildInspectorStyle(style, overlayStyle, {\n mapboxToken,\n inDarkMode: isEnabled,\n xRay,\n }).then(setActualStyle);\n }, [style, xRay, mapboxToken, isEnabled, overlayStyle]);\n\n const [inspectPosition, setInspectPosition] =\n useState<mapboxgl.LngLat | null>(null);\n\n const [data, setData] = useState(null);\n\n const onSelectPosition = useCallback((position: mapboxgl.LngLat) => {\n setInspectPosition(position);\n }, []);\n\n let detailElement = null;\n if (inspectPosition != null) {\n detailElement = h(\n LocationPanel,\n {\n onClose() {\n setInspectPosition(null);\n },\n position: inspectPosition,\n },\n [\n h(TileInfo, {\n feature: data?.[0] ?? null,\n showExtent: showTileExtent,\n setShowExtent() {\n setState({ ...state, showTileExtent: !showTileExtent });\n },\n }),\n h(FeaturePanel, { features: data, focusedSource, focusedSourceTitle }),\n ]\n );\n }\n\n let tile = null;\n if (showTileExtent && data?.[0] != null) {\n let f = data[0];\n tile = { x: f._x, y: f._y, z: f._z };\n }\n\n return h(\n MapAreaContainer,\n {\n navbar: h(FloatingNavbar, {\n rightElement: h(MapLoadingButton, {\n large: true,\n active: isOpen,\n onClick: () => setOpen(!isOpen),\n style: {\n marginRight: \"-5px\",\n },\n }),\n headerElement,\n title,\n }),\n contextPanel: h(PanelCard, [\n controls,\n h(Switch, {\n checked: xRay,\n label: \"X-ray mode\",\n onChange() {\n setState({ ...state, xRay: !xRay });\n },\n }),\n ]),\n detailPanel: detailElement,\n contextPanelOpen: isOpen,\n fitViewport,\n },\n h(\n MapView,\n {\n style: actualStyle,\n transformRequest,\n mapPosition,\n projection: { name: \"globe\" },\n mapboxToken,\n bounds,\n },\n [\n h(FeatureSelectionHandler, {\n selectedLocation: inspectPosition,\n setFeatures: setData,\n }),\n h(MapMarker, {\n position: inspectPosition,\n setPosition: onSelectPosition,\n }),\n h(TileExtentLayer, { tile, color: isEnabled ? \"white\" : \"black\" }),\n children,\n ]\n )\n );\n}\n\nfunction MapInspector(props) {\n const { children, controls, ...rest } = props;\n /** Compatibility wrapper for MapInspectorV2 */\n // React warning about this legacy usage\n console.warn(\"MapInspector is deprecated. Use MapInspectorV2 instead\");\n\n return h(MapInspectorV2, {\n ...rest,\n controls: [children, controls],\n });\n}\n\n// Legacy export\nexport const DevMapPage = MapInspector;\n","module.exports = new __parcel__URL__(\"xray.bce11e7b.js\").toString();","module.exports = new __parcel__URL__(\"helpers.6bda171f.js\").toString();","module.exports = new __parcel__URL__(\"map-view.9dc96288.js\").toString();","module.exports = new __parcel__URL__(\"main.module.434acaf9.js\").toString();","module.exports = new __parcel__URL__(\"tile-extent.28db5d2c.js\").toString();","module.exports = new __parcel__URL__(\"vector-tile-features.b5a23b71.js\").toString();"],"names":["require","$8RvAA$macrostrathyper","$parcel$interopDefault","a","__esModule","default","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","URL","__filename","toString","$406e8a286e0e74e0$exports","styled"],"version":3,"file":"map-page.d0e099ab.js.map","sourceRoot":"../../../../"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,Q,8C,Q,+C,Q,0C,Q,wC,I,E,Q,qB,S,E,C,E,O,G,E,U,C,E,O,C,C,C,Q,4B,Q,4B,Q,c,Q,a,Q,S,Q,gC,Q,6B,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,S,E,SC8BU,AAAA,AAAA,EAAA,GAAM,MAAM,CAAC,EAAA","sources":["<anon>","packages/map-interface/src/map-view.ts"],"sourcesContent":["require(\"./main.module.24615279.js\");\nrequire(\"./main.module.65e40c2e.css\");\nrequire(\"./helpers.6bda171f.js\");\nrequire(\"./utils.dd92f725.js\");\nvar $iE1eH$macrostrathyper = require(\"@macrostrat/hyper\");\nvar $iE1eH$macrostratmapboxreact = require(\"@macrostrat/mapbox-react\");\nvar $iE1eH$macrostratmapboxutils = require(\"@macrostrat/mapbox-utils\");\nvar $iE1eH$classnames = require(\"classnames\");\nvar $iE1eH$mapboxgl = require(\"mapbox-gl\");\nvar $iE1eH$react = require(\"react\");\nrequire(\"mapbox-gl/dist/mapbox-gl.css\");\nvar $iE1eH$macrostratuicomponents = require(\"@macrostrat/ui-components\");\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire94c2\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire94c2\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\n\n\n\nvar $6ULxP = parcelRequire(\"6ULxP\");\n\nvar $7CmOU = parcelRequire(\"7CmOU\");\n\n\nvar $R3my3 = parcelRequire(\"R3my3\");\n\nconst $8c5236898eee97dc$var$h = (0, ($parcel$interopDefault($iE1eH$macrostrathyper))).styled((0, (/*@__PURE__*/$parcel$interopDefault($6ULxP))));\nfunction $8c5236898eee97dc$var$defaultInitializeMap(container, args = {}) {\n const { mapPosition: mapPosition, ...rest } = args;\n console.log(\"Initializing map (default)\", args);\n const map = new (0, ($parcel$interopDefault($iE1eH$mapboxgl))).Map({\n container: container,\n maxZoom: 18,\n //maxTileCacheSize: 0,\n logoPosition: \"bottom-left\",\n trackResize: true,\n antialias: true,\n optimizeForTerrain: true,\n ...rest\n });\n // set initial map position\n if (mapPosition != null) (0, $iE1eH$macrostratmapboxutils.setMapPosition)(map, mapPosition);\n //setMapPosition(map, mapPosition);\n return map;\n}\nconst $8c5236898eee97dc$var$defaultMapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000\n }\n};\nfunction $8c5236898eee97dc$export$ab1e7a67d6ec5ad8(props) {\n let { terrainSourceID: terrainSourceID } = props;\n const { enableTerrain: enableTerrain = true, style: style, mapPosition: mapPosition = $8c5236898eee97dc$var$defaultMapPosition, initializeMap: initializeMap = $8c5236898eee97dc$var$defaultInitializeMap, children: children, mapboxToken: mapboxToken, accessToken: // Deprecated\n accessToken, infoMarkerPosition: infoMarkerPosition, transformRequest: transformRequest, projection: projection, onMapLoaded: onMapLoaded = null, onStyleLoaded: onStyleLoaded = null, onMapMoved: onMapMoved = null, ...rest } = props;\n if (enableTerrain) terrainSourceID ?? (terrainSourceID = \"mapbox-3d-dem\");\n const _mapboxToken = mapboxToken ?? accessToken;\n if (_mapboxToken != null) (0, ($parcel$interopDefault($iE1eH$mapboxgl))).accessToken = _mapboxToken;\n const dispatch = (0, $iE1eH$macrostratmapboxreact.useMapDispatch)();\n let mapRef = (0, $iE1eH$macrostratmapboxreact.useMapRef)();\n const ref = (0, $iE1eH$react.useRef)();\n const parentRef = (0, $iE1eH$react.useRef)();\n (0, $iE1eH$macrostratuicomponents.useAsyncEffect)(async ()=>{\n /** Manager to update map style */ if (style == null) return;\n let map = mapRef.current;\n /** If we can, we try to update the map style with terrain information\n * immediately, before the style is loaded. This allows us to avoid a\n * flash of the map without terrain.\n *\n * To do this, we need to estimate the map position before load, which\n * doesn't always work.\n */ // We either get the map position directly from the map or from props\n const estMapPosition = map == null ? mapPosition : (0, $iE1eH$macrostratmapboxutils.getMapPosition)(map);\n let newStyle = style;\n const { mapUse3D: mapUse3D } = (0, $iE1eH$macrostratmapboxutils.mapViewInfo)(estMapPosition);\n /** If style is a string, we can't update it with terrain layers immediately.\n * We need to wait for the style to load and then update it.\n */ if (typeof style === \"string\") newStyle = await (0, $iE1eH$macrostratmapboxutils.getMapboxStyle)(style, {\n access_token: (0, ($parcel$interopDefault($iE1eH$mapboxgl))).accessToken\n });\n if (mapUse3D) // We can update the style with terrain layers immediately\n newStyle = (0, $iE1eH$macrostratmapboxreact.addTerrainToStyle)(newStyle, terrainSourceID);\n if (map != null) {\n console.log(\"Setting style\", newStyle);\n map.setStyle(newStyle);\n } else {\n console.log(\"Initializing map\", newStyle);\n const map = initializeMap(ref.current, {\n style: newStyle,\n projection: projection,\n mapPosition: mapPosition,\n transformRequest: transformRequest,\n ...rest\n });\n dispatch({\n type: \"set-map\",\n payload: map\n });\n map.setPadding((0, $R3my3.getMapPadding)(ref, parentRef), {\n animate: false\n });\n onMapLoaded?.(map);\n }\n const loadCallback = ()=>{\n onStyleLoaded?.(map);\n // Set initial terrain state\n dispatch({\n type: \"set-style-loaded\",\n payload: true\n });\n };\n map = mapRef.current;\n if (map.style?._loaded) // Catch a race condition where the style is loaded before the callback is set\n loadCallback();\n map.on(\"style.load\", loadCallback);\n return ()=>{\n map.off(\"style.load\", loadCallback);\n };\n }, [\n style\n ]);\n const _computedMapPosition = (0, $iE1eH$macrostratmapboxreact.useMapPosition)();\n const { mapUse3D: mapUse3D, mapIsRotated: mapIsRotated } = (0, $iE1eH$macrostratmapboxutils.mapViewInfo)(_computedMapPosition);\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n const className = (0, ($parcel$interopDefault($iE1eH$classnames)))({\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false\n }, `${_projection}-projection`);\n return $8c5236898eee97dc$var$h(\"div.map-view-container.main-view\", {\n ref: parentRef\n }, [\n $8c5236898eee97dc$var$h(\"div.mapbox-map#map\", {\n ref: ref,\n className: className\n }),\n $8c5236898eee97dc$var$h((0, $7CmOU.MapLoadingReporter), {\n ignoredSources: [\n \"elevationMarker\",\n \"crossSectionEndpoints\"\n ]\n }),\n $8c5236898eee97dc$var$h((0, $7CmOU.MapMovedReporter), {\n onMapMoved: onMapMoved\n }),\n $8c5236898eee97dc$var$h((0, $7CmOU.MapResizeManager), {\n containerRef: ref\n }),\n $8c5236898eee97dc$var$h((0, $7CmOU.MapPaddingManager), {\n containerRef: ref,\n parentRef: parentRef,\n infoMarkerPosition: infoMarkerPosition\n }),\n $8c5236898eee97dc$var$h($8c5236898eee97dc$export$cee395a8a2a00b29, {\n mapUse3D: mapUse3D,\n terrainSourceID: terrainSourceID,\n style: style\n }),\n children\n ]);\n}\nfunction $8c5236898eee97dc$export$cee395a8a2a00b29({ mapUse3D: mapUse3D, terrainSourceID: terrainSourceID, style: style }) {\n (0, $iE1eH$macrostratmapboxreact.use3DTerrain)(mapUse3D, terrainSourceID);\n return null;\n}\n\n\n//# sourceMappingURL=map-view.9dc96288.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n useMapPosition,\n setup3DTerrain,\n use3DTerrain,\n addTerrainToStyle,\n} from \"@macrostrat/mapbox-react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n getMapPosition,\n getMapboxStyle,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef } from \"react\";\nimport styles from \"./main.module.sass\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"./helpers\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\nimport { getMapPadding } from \"./utils\";\nimport { useAsyncEffect } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n mapboxToken?: string;\n // Deprecated\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n mapPosition?: MapPosition;\n initializeMap?: (\n container: HTMLElement,\n args: MapboxOptionsExt\n ) => mapboxgl.Map;\n onMapLoaded?: (map: mapboxgl.Map) => void;\n onStyleLoaded?: (map: mapboxgl.Map) => void;\n onMapMoved?: (mapPosition: MapPosition, map: mapboxgl.Map) => void;\n}\n\nexport interface MapboxOptionsExt extends MapboxCoreOptions {\n mapPosition?: MapPosition;\n}\n\nfunction defaultInitializeMap(container, args: MapboxOptionsExt = {}) {\n const { mapPosition, ...rest } = args;\n console.log(\"Initializing map (default)\", args);\n\n const map = new mapboxgl.Map({\n container,\n maxZoom: 18,\n //maxTileCacheSize: 0,\n logoPosition: \"bottom-left\",\n trackResize: true,\n antialias: true,\n optimizeForTerrain: true,\n ...rest,\n });\n\n // set initial map position\n if (mapPosition != null) {\n setMapPosition(map, mapPosition);\n }\n\n //setMapPosition(map, mapPosition);\n return map;\n}\n\nconst defaultMapPosition: MapPosition = {\n camera: {\n lat: 34,\n lng: -120,\n altitude: 300000,\n },\n};\n\nexport function MapView(props: MapViewProps) {\n let { terrainSourceID } = props;\n const {\n enableTerrain = true,\n style,\n mapPosition = defaultMapPosition,\n initializeMap = defaultInitializeMap,\n children,\n mapboxToken,\n // Deprecated\n accessToken,\n infoMarkerPosition,\n transformRequest,\n projection,\n onMapLoaded = null,\n onStyleLoaded = null,\n onMapMoved = null,\n ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n const _mapboxToken = mapboxToken ?? accessToken;\n\n if (_mapboxToken != null) {\n mapboxgl.accessToken = _mapboxToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n useAsyncEffect(async () => {\n /** Manager to update map style */\n if (style == null) return;\n let map = mapRef.current;\n\n /** If we can, we try to update the map style with terrain information\n * immediately, before the style is loaded. This allows us to avoid a\n * flash of the map without terrain.\n *\n * To do this, we need to estimate the map position before load, which\n * doesn't always work.\n */\n // We either get the map position directly from the map or from props\n const estMapPosition: MapPosition | null =\n map == null ? mapPosition : getMapPosition(map);\n let newStyle = style;\n const { mapUse3D } = mapViewInfo(estMapPosition);\n\n /** If style is a string, we can't update it with terrain layers immediately.\n * We need to wait for the style to load and then update it.\n */\n if (typeof style === \"string\") {\n newStyle = await getMapboxStyle(style, {\n access_token: mapboxgl.accessToken,\n });\n }\n\n if (mapUse3D) {\n // We can update the style with terrain layers immediately\n newStyle = addTerrainToStyle(newStyle as mapboxgl.Style, terrainSourceID);\n }\n\n if (map != null) {\n console.log(\"Setting style\", newStyle);\n map.setStyle(newStyle);\n } else {\n console.log(\"Initializing map\", newStyle);\n const map = initializeMap(ref.current, {\n style: newStyle,\n projection,\n mapPosition,\n transformRequest,\n ...rest,\n });\n dispatch({ type: \"set-map\", payload: map });\n map.setPadding(getMapPadding(ref, parentRef), { animate: false });\n onMapLoaded?.(map);\n }\n\n const loadCallback = () => {\n onStyleLoaded?.(map);\n // Set initial terrain state\n dispatch({ type: \"set-style-loaded\", payload: true });\n };\n\n map = mapRef.current;\n\n if (map.style?._loaded) {\n // Catch a race condition where the style is loaded before the callback is set\n loadCallback();\n }\n map.on(\"style.load\", loadCallback);\n return () => {\n map.off(\"style.load\", loadCallback);\n };\n }, [style]);\n\n const _computedMapPosition = useMapPosition();\n const { mapUse3D, mapIsRotated } = mapViewInfo(_computedMapPosition);\n\n // Get map projection\n const _projection = mapRef.current?.getProjection()?.name ?? \"mercator\";\n\n const className = classNames(\n {\n \"is-rotated\": mapIsRotated ?? false,\n \"is-3d-available\": mapUse3D ?? false,\n },\n `${_projection}-projection`\n );\n\n return h(\"div.map-view-container.main-view\", { ref: parentRef }, [\n h(\"div.mapbox-map#map\", { ref, className }),\n h(MapLoadingReporter, {\n ignoredSources: [\"elevationMarker\", \"crossSectionEndpoints\"],\n }),\n h(MapMovedReporter, { onMapMoved }),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, { containerRef: ref, parentRef, infoMarkerPosition }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID, style }),\n children,\n ]);\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n style,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n style?: mapboxgl.Style | string;\n}) {\n use3DTerrain(mapUse3D, terrainSourceID);\n\n return null;\n}\n"],"names":["require","$iE1eH$macrostrathyper","$parcel$interopDefault","a","__esModule","default","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$6ULxP","styled"],"version":3,"file":"map-view.9dc96288.js.map","sourceRoot":"../../../../"}
|