@macrostrat/map-interface 1.3.2 → 1.4.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 +11 -0
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/{map-interface.3934d6d6.js → map-interface.10d442f4.js} +2 -2
- package/dist/cjs/{map-interface.3934d6d6.js.map → map-interface.10d442f4.js.map} +1 -1
- package/dist/cjs/{map-interface.f1eec151.js → map-interface.28d1a6b7.js} +7 -6
- package/dist/cjs/map-interface.28d1a6b7.js.map +1 -0
- package/dist/cjs/{map-interface.853e0edd.js → map-interface.3bc4f731.js} +2 -2
- package/dist/cjs/{map-interface.853e0edd.js.map → map-interface.3bc4f731.js.map} +1 -1
- package/dist/cjs/{map-interface.e7194f92.js → map-interface.7bdbe4b6.js} +59 -47
- package/dist/cjs/map-interface.7bdbe4b6.js.map +1 -0
- package/dist/cjs/{map-interface.5813e876.js → map-interface.cf6c9a68.js} +5 -5
- package/dist/cjs/{map-interface.5813e876.js.map → map-interface.cf6c9a68.js.map} +1 -1
- package/dist/cjs/{map-interface.1d19056e.js → map-interface.dcbd3874.js} +4 -2
- package/dist/cjs/map-interface.dcbd3874.js.map +1 -0
- package/dist/esm/index.d.ts +18 -29
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/{map-interface.e5349e97.js → map-interface.54ccd41f.js} +2 -2
- package/dist/esm/{map-interface.e5349e97.js.map → map-interface.54ccd41f.js.map} +1 -1
- package/dist/esm/{map-interface.25a708b1.js → map-interface.90d9023c.js} +2 -2
- package/dist/esm/{map-interface.25a708b1.js.map → map-interface.90d9023c.js.map} +1 -1
- package/dist/esm/{map-interface.9ce3d553.js → map-interface.ca1ee406.js} +61 -49
- package/dist/esm/map-interface.ca1ee406.js.map +1 -0
- package/dist/esm/{map-interface.e1493866.js → map-interface.e20a9bac.js} +4 -2
- package/dist/esm/map-interface.e20a9bac.js.map +1 -0
- package/dist/esm/{map-interface.f4e2f84e.js → map-interface.ec2278ab.js} +7 -6
- package/dist/esm/map-interface.ec2278ab.js.map +1 -0
- package/dist/esm/{map-interface.45814073.js → map-interface.f7b8bdb7.js} +5 -5
- package/dist/esm/{map-interface.45814073.js.map → map-interface.f7b8bdb7.js.map} +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/map-interface.0dc4417b.js +2 -0
- package/dist/node/map-interface.0dc4417b.js.map +1 -0
- package/dist/node/{map-interface.eb663cae.js → map-interface.33b7734a.js} +2 -2
- package/dist/node/map-interface.33b7734a.js.map +1 -0
- package/dist/node/map-interface.56b5b2ee.js +2 -0
- package/dist/node/map-interface.56b5b2ee.js.map +1 -0
- package/dist/node/{map-interface.cf540298.js → map-interface.6184dc0f.js} +2 -2
- package/dist/node/{map-interface.cf540298.js.map → map-interface.6184dc0f.js.map} +1 -1
- package/dist/node/map-interface.7295b0a2.js +2 -0
- package/dist/node/map-interface.7295b0a2.js.map +1 -0
- package/dist/node/{map-interface.55fa679c.js → map-interface.f3e12e03.js} +2 -2
- package/dist/node/{map-interface.55fa679c.js.map → map-interface.f3e12e03.js.map} +1 -1
- package/package.json +3 -3
- package/src/dev/map-page.ts +25 -19
- package/src/helpers.ts +4 -4
- package/src/location-panel/header.ts +2 -5
- package/src/map-view.ts +77 -52
- package/dist/cjs/map-interface.1d19056e.js.map +0 -1
- package/dist/cjs/map-interface.e7194f92.js.map +0 -1
- package/dist/cjs/map-interface.f1eec151.js.map +0 -1
- package/dist/esm/map-interface.9ce3d553.js.map +0 -1
- package/dist/esm/map-interface.e1493866.js.map +0 -1
- package/dist/esm/map-interface.f4e2f84e.js.map +0 -1
- package/dist/node/map-interface.20c346ba.js +0 -2
- package/dist/node/map-interface.20c346ba.js.map +0 -1
- package/dist/node/map-interface.bc0fb98b.js +0 -2
- package/dist/node/map-interface.bc0fb98b.js.map +0 -1
- package/dist/node/map-interface.d9814996.js +0 -2
- package/dist/node/map-interface.d9814996.js.map +0 -1
- package/dist/node/map-interface.eb663cae.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,Q,gD,I,6B,Q,4B,a,Q,S,kB,Q,c,yB,Q,uB,6B,Q,4B,8B,Q,6B,S,uB,C,E,O,G,E,U,C,E,O,C,C,C,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,I,e,W,gB,C,E,c,C,E,c,e,iB,A,O,gB,A,C,c,S,C,E,G,K,gB,O,e,C,E,C,O,C,G,K,c,C,I,E,a,C,E,A,Q,a,C,E,C,I,E,C,G,E,Q,C,C,E,O,e,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,a,C,E,C,C,E,e,iB,C,e,I,e,c,Q,C,e,O,O,C,mB,I,2C,e,O,O,C,oB,I,2C,e,O,O,C,mB,I,2C,e,O,O,C,qB,I,2C,e,O,O,C,Y,I,2C,e,O,O,C,mB,I,2C,e,O,O,C,mB,I,2C,e,O,O,C,oB,I,2C,I,O,c,SCiBO,SAAS,0CAAiB,CAAA,aAAE,CAAY,CAAE,EAC/C,IAAM,EAAS,AAAA,CAAA,EAAA,6BAAA,SAAQ,AAAR,IAET,EAAkB,AAAA,CAAA,EAAA,aAAA,MAAK,AAAL,EACtB,AAAA,CAAA,EAAA,kBAAA,QAAO,AAAP,EAAS,KACP,EAAO,OAAO,EAAE,QAClB,EAAG,MAQL,OALA,AAAA,uBAAA,0BAAkB,CAChB,IAAK,EACL,SAAU,EAAgB,OAAO,AACnC,GAEO,IACT,CASO,SAAS,0CAAkB,CAAA,aAChC,CAAY,CAAA,UACZ,CAAS,CAAA,mBACT,CAAkB,CAAA,aAClB,EAAe,GAAA,CACQ,EACvB,IAAM,EAAS,AAAA,CAAA,EAAA,6BAAA,SAAQ,AAAR,IAET,CAAC,EAAS,EAAW,CAAG,AAAA,CAAA,EAAA,aAAA,QAAO,AAAP,EAC5B,AAAA,CAAA,EAAA,OAAA,aAAY,AAAZ,EAAc,EAAc,IAGxB,EAAoB,AAAA,CAAA,EAAA,aAAA,WAAU,AAAV,EAAY,KAEpC,EADmB,AAAA,CAAA,EAAA,OAAA,aAAY,AAAZ,EAAc,EAAc,GAEjD,EAAG,CAAC,EAAa,OAAO,CAAE,EAAU,OAAO,CAAC,EAEtC,EAAmB,AAAA,CAAA,EAAA,aAAA,OAAM,A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","sources":["<anon>","packages/map-interface/src/helpers.ts"],"sourcesContent":["require(\"./map-interface.713361a4.js\");\nvar $2crMj$macrostratmapboxreact = require(\"@macrostrat/mapbox-react\");\nvar $2crMj$react = require(\"react\");\nvar $2crMj$underscore = require(\"underscore\");\nvar $2crMj$useresizeobserver = require(\"use-resize-observer\");\nvar $2crMj$macrostratmapboxutils = require(\"@macrostrat/mapbox-utils\");\nvar $2crMj$macrostratuicomponents = require(\"@macrostrat/ui-components\");\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\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[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n$parcel$export(module.exports, \"MapResizeManager\", () => $f6c715b8ad8cb91a$export$31b2e088aff2dc5d);\n$parcel$export(module.exports, \"MapPaddingManager\", () => $f6c715b8ad8cb91a$export$2ab96428dea558d6);\n$parcel$export(module.exports, \"MapMovedReporter\", () => $f6c715b8ad8cb91a$export$f6eeee399afc4e9a);\n$parcel$export(module.exports, \"MapLoadingReporter\", () => $f6c715b8ad8cb91a$export$e57f9eaa51773f82);\n$parcel$export(module.exports, \"MapMarker\", () => $f6c715b8ad8cb91a$export$5c90a91c7455938c);\n$parcel$export(module.exports, \"useBasicMapStyle\", () => $f6c715b8ad8cb91a$export$6daf1520df36ae21);\n$parcel$export(module.exports, \"getBasicMapStyle\", () => $f6c715b8ad8cb91a$export$3503bf0b3851527b);\n$parcel$export(module.exports, \"useBasicStylePair\", () => $f6c715b8ad8cb91a$export$566518253d2584f8);\n\n\n\n\n\n\nvar $R3my3 = parcelRequire(\"R3my3\");\n\nfunction $f6c715b8ad8cb91a$export$31b2e088aff2dc5d({ containerRef: containerRef }) {\n const mapRef = (0, $2crMj$macrostratmapboxreact.useMapRef)();\n const debouncedResize = (0, $2crMj$react.useRef)((0, $2crMj$underscore.debounce)(()=>{\n mapRef.current?.resize();\n }, 100));\n (0, ($parcel$interopDefault($2crMj$useresizeobserver)))({\n ref: containerRef,\n onResize: debouncedResize.current\n });\n return null;\n}\nfunction $f6c715b8ad8cb91a$export$2ab96428dea558d6({ containerRef: containerRef, parentRef: parentRef, infoMarkerPosition: infoMarkerPosition, debounceTime: debounceTime = 200 }) {\n const mapRef = (0, $2crMj$macrostratmapboxreact.useMapRef)();\n const [padding, setPadding] = (0, $2crMj$react.useState)((0, $R3my3.getMapPadding)(containerRef, parentRef));\n const _updateMapPadding = (0, $2crMj$react.useCallback)(()=>{\n const newPadding = (0, $R3my3.getMapPadding)(containerRef, parentRef);\n setPadding(newPadding);\n }, [\n containerRef.current,\n parentRef.current\n ]);\n const updateMapPadding = (0, $2crMj$react.useMemo)(()=>(0, $2crMj$underscore.debounce)(_updateMapPadding, debounceTime), [\n _updateMapPadding,\n debounceTime\n ]);\n (0, $2crMj$react.useEffect)(()=>{\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [\n mapRef.current\n ]);\n (0, ($parcel$interopDefault($2crMj$useresizeobserver)))({\n ref: parentRef,\n onResize (sz) {\n updateMapPadding();\n },\n round (n) {\n return Math.round(n);\n }\n });\n // Ideally, we would not have to do this when we know the infobox is loaded\n (0, $2crMj$macrostratmapboxreact.useMapEaseTo)({\n center: infoMarkerPosition,\n padding: padding\n });\n return null;\n}\nfunction $f6c715b8ad8cb91a$export$f6eeee399afc4e9a({ onMapMoved: onMapMoved = null }) {\n const mapRef = (0, $2crMj$macrostratmapboxreact.useMapRef)();\n const dispatch = (0, $2crMj$macrostratmapboxreact.useMapDispatch)();\n const isInitialized = (0, $2crMj$macrostratmapboxreact.useMapInitialized)();\n const mapMovedCallback = (0, $2crMj$react.useCallback)(()=>{\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = (0, $2crMj$macrostratmapboxutils.getMapPosition)(map);\n dispatch({\n type: \"map-moved\",\n payload: mapPosition\n });\n onMapMoved?.(mapPosition, map);\n }, [\n onMapMoved,\n dispatch,\n isInitialized\n ]);\n (0, $2crMj$react.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 = (0, $2crMj$underscore.debounce)(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return ()=>{\n map?.off(\"moveend\", cb);\n };\n }, [\n mapMovedCallback\n ]);\n return null;\n}\nfunction $f6c715b8ad8cb91a$export$e57f9eaa51773f82({ ignoredSources: ignoredSources, onMapLoading: onMapLoading = null, onMapIdle: onMapIdle = null, mapIsLoading: mapIsLoading }) {\n const mapRef = (0, $2crMj$macrostratmapboxreact.useMapRef)();\n const loadingRef = (0, $2crMj$react.useRef)(false);\n const dispatch = (0, $2crMj$macrostratmapboxreact.useMapDispatch)();\n const isInitialized = (0, $2crMj$macrostratmapboxreact.useMapInitialized)();\n (0, $2crMj$react.useEffect)(()=>{\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n let didSendLoading = false;\n const loadingCallback = (evt)=>{\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({\n type: \"set-loading\",\n payload: true\n });\n loadingRef.current = true;\n didSendLoading = true;\n };\n const idleCallback = (evt)=>{\n if (!mapIsLoading) return;\n dispatch({\n type: \"set-loading\",\n payload: false\n });\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 }, [\n ignoredSources,\n mapIsLoading,\n isInitialized\n ]);\n return null;\n}\nfunction $f6c715b8ad8cb91a$export$5c90a91c7455938c({ position: position, setPosition: setPosition, centerMarker: centerMarker = true }) {\n const mapRef = (0, $2crMj$macrostratmapboxreact.useMapRef)();\n const markerRef = (0, $2crMj$react.useRef)(null);\n const isInitialized = (0, $2crMj$macrostratmapboxreact.useMapInitialized)();\n (0, $R3my3.useMapMarker)(mapRef, markerRef, position);\n (0, $2crMj$react.useEffect)(()=>{\n const map = mapRef.current;\n if (map == null || setPosition == null) return;\n const handleMapClick = (event)=>{\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) mapRef.current?.flyTo({\n center: event.lngLat,\n duration: 800\n });\n };\n map.on(\"click\", handleMapClick);\n return ()=>{\n map?.off(\"click\", handleMapClick);\n };\n }, [\n setPosition,\n isInitialized\n ]);\n return null;\n}\nfunction $f6c715b8ad8cb91a$export$6daf1520df36ae21(opts = {}) {\n const { styleType: styleType } = opts;\n const inDarkMode = (0, $2crMj$macrostratuicomponents.useInDarkMode)();\n const props = (0, $2crMj$react.useMemo)(()=>{\n return {\n styleType: styleType,\n inDarkMode: inDarkMode\n };\n }, [\n styleType,\n inDarkMode\n ]);\n return $f6c715b8ad8cb91a$export$3503bf0b3851527b(props);\n}\nfunction $f6c715b8ad8cb91a$export$3503bf0b3851527b(opts) {\n const { styleType: styleType = \"macrostrat\", inDarkMode: inDarkMode = false } = opts ?? {};\n if (styleType == \"macrostrat\") return inDarkMode ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\" : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\";\n else return inDarkMode ? \"mapbox://styles/mapbox/dark-v10\" : \"mapbox://styles/mapbox/light-v10\";\n}\nconst $f6c715b8ad8cb91a$export$566518253d2584f8 = $f6c715b8ad8cb91a$export$6daf1520df36ae21;\n\n\n//# sourceMappingURL=map-interface.eb663cae.js.map\n","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\ninterface MapLoadingReporterProps {\n ignoredSources?: string[];\n onMapLoading?: (evt: mapboxgl.MapEvent) => void;\n onMapIdle?: (evt: mapboxgl.MapEvent) => void;\n mapIsLoading?: boolean;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}: MapLoadingReporterProps) {\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 useBasicMapStyle(\n opts: {\n styleType?: \"macrostrat\" | \"standard\";\n } = {},\n) {\n const { styleType } = opts;\n const inDarkMode = useInDarkMode();\n\n const props = useMemo(() => {\n return { styleType, inDarkMode };\n }, [styleType, inDarkMode]);\n\n return getBasicMapStyle(props);\n}\n\nexport function getBasicMapStyle(opts: {\n styleType?: \"macrostrat\" | \"standard\";\n inDarkMode?: boolean;\n}) {\n const { styleType = \"macrostrat\", inDarkMode = false } = opts ?? {};\n\n if (styleType == \"macrostrat\") {\n return inDarkMode\n ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\"\n : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\";\n } else {\n return inDarkMode\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n }\n}\n\nexport const useBasicStylePair = useBasicMapStyle;\n"],"names":["require","$2crMj$macrostratmapboxreact","$2crMj$react","$2crMj$underscore","$2crMj$useresizeobserver","$2crMj$macrostratmapboxutils","$2crMj$macrostratuicomponents","$parcel$interopDefault","a","__esModule","default","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","parcelRegister","$f6c715b8ad8cb91a$export$31b2e088aff2dc5d","$f6c715b8ad8cb91a$export$2ab96428dea558d6","$f6c715b8ad8cb91a$export$f6eeee399afc4e9a","$f6c715b8ad8cb91a$export$e57f9eaa51773f82","$f6c715b8ad8cb91a$export$5c90a91c7455938c","$f6c715b8ad8cb91a$export$6daf1520df36ae21","$f6c715b8ad8cb91a$export$3503bf0b3851527b","$f6c715b8ad8cb91a$export$566518253d2584f8","$R3my3","containerRef","mapRef","useMapRef","debouncedResize","useRef","debounce","current","resize","ref","onResize","parentRef","infoMarkerPosition","debounceTime","padding","setPadding","useState","getMapPadding","_updateMapPadding","useCallback","updateMapPadding","useMemo","useEffect","sz","round","Math","useMapEaseTo","center","onMapMoved","dispatch","useMapDispatch","isInitialized","useMapInitialized","mapMovedCallback","map","mapPosition","getMapPosition","type","payload","cb","on","off","ignoredSources","onMapLoading","onMapIdle","mapIsLoading","loadingRef","didSendLoading","loadingCallback","evt","includes","sourceId","idleCallback","position","setPosition","centerMarker","markerRef","useMapMarker","handleMapClick","event","lngLat","flyTo","duration","opts","styleType","inDarkMode","useInDarkMode"],"version":3,"file":"map-interface.eb663cae.js.map","sourceRoot":"../../../../"}
|