@macrostrat/map-interface 0.2.1 → 0.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/dist/index.cjs +28 -25
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +0 -4
- package/dist/index.css.map +1 -1
- package/dist/index.js +32 -29
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/container.ts +0 -4
- package/src/dev/main.module.sass +1 -5
- package/src/dev/map-page.ts +3 -4
- package/src/helpers.ts +1 -1
- package/src/map-view/index.ts +19 -5
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/map-interface/src/index.ts","packages/map-interface/src/context-panel/index.ts","packages/map-interface/src/context-panel/main.module.sass","packages/map-interface/src/location-panel/index.ts","packages/map-interface/src/location-panel/header.ts","packages/map-interface/src/location-panel/main.module.sass","packages/map-interface/src/location-info/index.ts","packages/map-interface/src/location-info/utils.ts","packages/map-interface/src/dev/index.ts","packages/map-interface/src/dev/map-page.ts","packages/map-interface/src/dev/xray.ts","packages/map-interface/src/container.ts","packages/map-interface/src/main.module.sass","packages/map-interface/src/controls.ts","packages/map-interface/src/helpers.ts","packages/map-interface/src/utils.ts","packages/map-interface/src/map-view/index.ts","packages/map-interface/src/map-view/main.module.sass","packages/map-interface/src/map-view/terrain.ts","packages/map-interface/src/dev/main.module.sass","packages/map-interface/src/dev/tile-extent.ts","packages/map-interface/src/dev/vector-tile-features.ts","packages/map-interface/src/expansion-panel/index.ts","packages/map-interface/src/expansion-panel/main.module.sass","packages/map-interface/src/expansion-panel/headers.ts"],"sourcesContent":["export * from \"./context-panel\";\nexport * from \"./location-panel\";\nexport * from \"./dev\";\nexport * from \"./container\";\nexport * from \"./map-view\";\nexport * from \"./controls\";\nexport * from \"./helpers\";\nexport * from \"./utils\";\nexport * from \"./location-info\";\nexport * from \"./expansion-panel\";\n","import { useMemo } from \"react\";\nimport { Navbar, Button, InputGroup, Spinner, Card } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMapStatus } from \"@macrostrat/mapbox-react\";\n\nconst h = hyper.styled(styles);\n\nconst spinnerElement = h(Spinner, { size: 16 });\n\nexport function LoadingButton({\n isLoading = false,\n onClick,\n active = false,\n icon = \"menu\",\n}) {\n return h(Button, {\n icon: isLoading ? spinnerElement : icon,\n large: true,\n minimal: true,\n onClick,\n active: active && !isLoading,\n });\n}\n\nexport function MapLoadingButton(props) {\n const { isLoading } = useMapStatus();\n const mapIsLoading = useMemo(() => isLoading, [isLoading]);\n return h(LoadingButton, { ...props, isLoading: mapIsLoading });\n}\n\ntype AnyChildren = React.ReactNode | React.ReactFragment;\n\nexport function FloatingNavbar({\n className,\n children,\n statusElement = null,\n}: {\n className?: string;\n children?: AnyChildren;\n statusElement?: AnyChildren;\n}) {\n return h(\"div.searchbar-holder\", { className }, [\n h(\"div.navbar-holder\", [\n h(Navbar, { className: \"searchbar panel\" }, children),\n ]),\n h.if(statusElement != null)(\n Card,\n { className: \"status-tongue\" },\n statusElement\n ),\n ]);\n}\n",".searchbar-holder\n transition: margin 300ms\n display: flex\n flex-direction: column\n margin: 0\n .navbar-holder\n display: flex\n flex-direction: row\n .searchbar\n width: 100%\n background-color: var(--panel-background-color)\n border-radius: 3px\n padding: 0 5px\n display: flex\n flex-direction: row\n align-items: center\n :global(.bp4-input-group)\n flex-grow: 1\n cursor: text\n &>*\n margin-right: 5px\n &:last-child\n margin-right: 0\n\n.status-tongue\n background-color: var(--panel-background-color)\n margin: 5px\n margin-top: -12px\n padding: 0\n padding-top: 12px\n\n@media screen and (max-width: 768px)\n .status-tongue\n max-width: 100vw\n margin: 0\n border-radius: 0\n margin-top: -3px\n","import { Card } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport { InfoDrawerHeader } from \"./header\";\nimport classNames from \"classnames\";\nimport styles from \"./main.module.sass\";\nimport { ErrorBoundary } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\nexport function InfoDrawerContainer(props) {\n const className = classNames(\"infodrawer\", props.className);\n return h(Card, { ...props, className });\n}\n\nexport function LocationPanel(props) {\n const { children, className, loading = false, ...rest } = props;\n const cls = classNames(\"location-panel\", className, { loading });\n return h(InfoDrawerContainer, { className: cls }, [\n h(InfoDrawerHeader, rest),\n h(\"div.infodrawer-body\", h(\"div.infodrawer-contents\", h(ErrorBoundary, null, children))),\n ]);\n}\n","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\";\n\nconst h = hyper.styled(styles);\n\nfunction PositionButton({ position }) {\n const focusState = useFocusState(position);\n\n return h(\"div.position-controls\", [\n h(LocationFocusButton, { location: position, focusState }, []),\n isCentered(focusState) ? h(CopyLinkButton, { itemName: \"position\" }) : null,\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\ninterface InfoDrawerHeaderProps {\n onClose: () => void;\n position: mapboxgl.LngLat;\n zoom?: number;\n elevation?: number;\n}\n\nexport function InfoDrawerHeader(props: InfoDrawerHeaderProps) {\n const { onClose, position, zoom = 7, elevation } = props;\n\n return h(\"header.location-panel-header\", [\n h(PositionButton, { position }),\n h(\"div.spacer\"),\n h(LngLatCoords, { position, zoom, className: \"infodrawer-header-item\" }),\n h.if(elevation != null)(Elevation, {\n elevation,\n className: \"infodrawer-header-item\",\n }),\n h(Button, { minimal: true, icon: \"cross\", onClick: onClose }),\n ]);\n}\n",".copy-link-button:global(.bp4-minimal.bp4-button)\n color: var(--text-subtle-color)\n svg\n fill: var(--text-subtle-color)\n\n.location-panel-header\n padding: 5px\n display: flex\n flex-direction: row\n align-items: center\n gap: 1em\n border-bottom: 1px solid var(--panel-rule-color)\n .spacer\n flex-grow: 1\n .left-icon\n padding: 7px\n\n .position-controls :global(.bp4-button)\n font-size: 12px !important\n\n.infodrawer-header-item\n font-size: 12px\n :global(.secondary)\n font-size: 0.9em\n color: var(--text-subtle-color)\n\n.infodrawer\n pointer-events: all\n max-height: 100%\n max-width: 100%\n height: fit-content\n display: flex\n flex-direction: column\n overflow: hidden\n &:global(.bp4-card)\n padding: 0\n\n &.loading\n .infodrawer-body\n overflow-y: hidden\n min-height: 70px\n\n.infodrawer-contents\n padding: 0 1em 1em\n\n.infodrawer-body\n flex-shrink: 1\n min-height: 0\n transition: min-height 0.5s ease\n overflow-y: scroll\n position: relative\n\n// TODO: remove this when we have a better way to handle card media queries\n@media screen and (max-width: 768px)\n .infodrawer\n border-radius: var(--panel-border-radius, 0px)\n","import h from \"@macrostrat/hyper\";\nimport {\n formatValue,\n normalizeLng,\n metersToFeet,\n formatCoordForZoomLevel,\n} from \"./utils\";\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","import { format } from \"d3-format\";\n\nexport function formatCoordForZoomLevel(val: number, zoom: number): string {\n if (zoom < 2) {\n return fmt1(val);\n } else if (zoom < 4) {\n return fmt2(val);\n } else if (zoom < 7) {\n return fmt3(val);\n }\n return fmt4(val);\n}\n\nexport function normalizeLng(lng) {\n // via https://github.com/Leaflet/Leaflet/blob/32c9156cb1d1c9bd53130639ec4d8575fbeef5a6/src/core/Util.js#L87\n return (((((lng - 180) % 360) + 360) % 360) - 180).toFixed(4);\n}\n\nexport const fmt4 = format(\".4~f\");\nexport const fmt3 = format(\".3~f\");\nexport const fmt2 = format(\".2~f\");\nexport const fmt1 = format(\".1~f\");\nexport const fmtInt = format(\".0f\");\n\nexport function formatValue(val: number, precision: number = 0): string {\n switch (precision) {\n case 4:\n return fmt4(val);\n case 3:\n return fmt3(val);\n case 2:\n return fmt2(val);\n case 1:\n return fmt1(val);\n case 0:\n return fmtInt(val);\n default:\n return fmt4(val);\n }\n}\n\nexport function metersToFeet(meters, precision = 0) {\n return (meters * 3.28084).toFixed(precision);\n}\n","export * from \"./map-page\";\nexport * from \"./tile-extent\";\nexport * from \"./vector-tile-features\";\nexport * from \"./xray\";\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, buildXRayStyle } 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 enum MacrostratVectorTileset {\n Carto = \"carto\",\n CartoSlim = \"carto-slim\",\n IGCPOrogens = \"igcp-orogens\",\n}\n\nexport enum MacrostratRasterTileset {\n Carto = \"carto\",\n Emphasized = \"emphasized\",\n}\n\nexport const h = hyper.styled(styles);\n\nexport function DevMapPage({\n title = \"Map inspector\",\n headerElement = null,\n transformRequest = null,\n mapPosition = null,\n mapboxToken = null,\n overlayStyle = null,\n children,\n style,\n focusedSource = null,\n focusedSourceTitle = null,\n projection = null,\n}: {\n headerElement?: React.ReactElement;\n transformRequest?: mapboxgl.TransformRequestFunction;\n title?: string;\n style: mapboxgl.Style | string;\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}) {\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 style ??= isEnabled\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\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(style);\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 console.log(\"Style\", actualStyle);\n\n return h(\n MapAreaContainer,\n {\n navbar: h(FloatingNavbar, [\n headerElement ?? h(\"h2\", title),\n h(Spacer),\n h(MapLoadingButton, {\n active: isOpen,\n onClick: () => setOpen(!isOpen),\n }),\n ]),\n contextPanel: h(PanelCard, [\n h(Switch, {\n checked: xRay,\n label: \"X-ray mode\",\n onChange() {\n setState({ ...state, xRay: !xRay });\n },\n }),\n children,\n ]),\n detailPanel: detailElement,\n contextPanelOpen: isOpen,\n },\n h(\n MapView,\n {\n style: actualStyle,\n transformRequest,\n mapPosition,\n projection: \"globe\",\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 ]\n )\n );\n}\n","import { getMapboxStyle, mergeStyles } from \"@macrostrat/mapbox-utils\";\nimport chroma from \"chroma-js\";\nimport mapboxgl from \"mapbox-gl\";\n\ninterface XRayOptions {\n color?: string;\n inDarkMode?: boolean;\n mapboxToken?: string;\n xRaySources?: string[];\n}\n\nexport async function buildXRayStyle(\n baseStyle: string | object,\n params: XRayOptions = null\n) {\n const {\n inDarkMode = false,\n color = \"rgb(74, 242, 161)\",\n mapboxToken,\n xRaySources\n } = params;\n const style = await getMapboxStyle(baseStyle, { access_token: mapboxToken });\n const sources = xRaySources ?? Object.keys(style.sources);\n\n let layers = [];\n for (let layer of style.layers) {\n if (!sources.includes(layer.source)) {\n layers.push(layer);\n continue;\n }\n let newLayer = transformMapboxLayer(layer, color, inDarkMode);\n if (newLayer != null) {\n layers.push(newLayer);\n }\n }\n\n return {\n ...style,\n layers,\n };\n}\n\nfunction transformMapboxLayer(layer, color, inDarkMode) {\n const c = chroma(color);\n const xRayColor = (opacity = 1, darken = 0) => {\n if (!inDarkMode) {\n return chroma(color)\n .darken(2 - darken)\n .alpha(opacity)\n .css();\n }\n return c.alpha(opacity).darken(darken).css();\n };\n\n if (layer.type == \"background\") {\n return null;\n }\n\n let newLayer = { ...layer };\n\n if (layer.type == \"fill\") {\n newLayer.paint = {\n \"fill-color\": xRayColor(0.1),\n \"fill-outline-color\": xRayColor(0.5),\n };\n } else if (layer.type == \"line\") {\n newLayer.paint = {\n \"line-color\": xRayColor(0.5, 0),\n \"line-width\": 1.5,\n };\n } else if (layer.type == \"symbol\") {\n newLayer.paint = {\n \"text-color\": xRayColor(1, -0.5),\n \"text-halo-color\": \"#000\",\n };\n } else if (layer.type == \"circle\") {\n newLayer.paint = {\n \"circle-color\": xRayColor(0.5, 0),\n \"circle-stroke-color\": xRayColor(0.5, 1),\n \"circle-radius\": 2,\n };\n }\n\n return newLayer;\n}\n\ntype InspectorStyleOptions = XRayOptions & {\n xRay?: boolean;\n};\n\nexport async function buildInspectorStyle(\n baseStyle: mapboxgl.Style | string,\n overlayStyle: mapboxgl.Style | string | null = null,\n params: InspectorStyleOptions = {}\n) {\n const { mapboxToken, xRay = false, xRaySources: _xRaySources, ...rest } = params;\n let xRaySources = _xRaySources;\n let style = await getMapboxStyle(baseStyle, {\n access_token: mapboxToken,\n });\n\n if (overlayStyle != null) {\n const overlay = await getMapboxStyle(overlayStyle, {\n access_token: mapboxToken,\n });\n style = mergeStyles(style, overlay);\n xRaySources ??= Object.keys(overlay.sources);\n }\n\n\n if (xRay) {\n // If we haven't specified sources, then we'll use all of them\n xRaySources ??= Object.keys(style.sources);\n\n style = await buildXRayStyle(style, { ...rest, mapboxToken, xRaySources });\n }\n return style;\n}\n","import hyper from \"@macrostrat/hyper\";\nimport { HTMLDivProps } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { useTransition } from \"transition-hook\";\nimport {\n MapboxMapProvider,\n ZoomControl,\n useMapPosition,\n} from \"@macrostrat/mapbox-react\";\nimport { ToasterContext } from \"@macrostrat/ui-components\";\nimport { MapBottomControls } from \"./controls\";\nimport { mapViewInfo, MapPosition } from \"@macrostrat/mapbox-utils\";\nimport { Card } from \"@blueprintjs/core\";\n\nimport { ReactNode } from \"react\";\n\nconst h = hyper.styled(styles);\n\ntype AnyElement = React.ReactNode | React.ReactElement | React.ReactFragment;\n\nexport const PanelCard = (props) =>\n h(Card, { ...props, className: classNames(\"panel-card\", props.className) });\n\nfunction _MapAreaContainer({\n children,\n className,\n navbar,\n contextPanel = null,\n detailPanel = null,\n detailPanelOpen,\n contextPanelOpen = true,\n bottomPanel = null,\n mainPanel,\n mapControls = h(MapBottomControls),\n contextStackProps = null,\n detailStackProps = null,\n mapPosition = null,\n fitViewport = true,\n ...rest\n}: {\n navbar: AnyElement;\n children?: AnyElement;\n mapControls?: AnyElement;\n contextPanel?: AnyElement;\n contextStack?: AnyElement;\n mainPanel?: AnyElement;\n detailPanel?: AnyElement;\n bottomPanel?: AnyElement;\n className?: string;\n detailPanelOpen?: boolean;\n contextPanelOpen?: boolean;\n contextStackProps?: HTMLDivProps;\n detailStackProps?: HTMLDivProps;\n mapPosition?: MapPosition;\n fitViewport?: boolean;\n}) {\n const _detailPanelOpen = detailPanelOpen ?? detailPanel != null;\n const contextPanelTrans = useTransition(contextPanelOpen, 800);\n const detailPanelTrans = useTransition(_detailPanelOpen, 800);\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 - These styles are doubly applied so we can have both namespaced and\n outside-accessible styles for each case.\n */\n const mainUIClassName = classNames(\n {\n \"detail-panel-open\": _detailPanelOpen,\n \"map-context-open\": contextPanelOpen,\n },\n `context-panel-${contextPanelTrans.stage}`,\n `map-context-${contextPanelTrans.stage}`,\n `detail-panel-${detailPanelTrans.stage}`,\n `map-detail-${detailPanelTrans.stage}`\n );\n\n return h(\n MapStyledContainer,\n {\n className: classNames(\"map-page\", className, {\n \"fit-viewport\": fitViewport,\n }),\n mapPosition,\n },\n [\n h(\"div.main-ui\", { className: mainUIClassName, ...rest }, [\n h(\"div.context-stack\", [\n navbar,\n h(\"div.context-panel-holder\", [\n h.if(contextPanelTrans.shouldMount)([contextPanel]),\n ]),\n h(\"div.spacer\"),\n ]),\n //h(MapView),\n children ?? mainPanel,\n h(\"div.detail-stack.infodrawer-container\", detailStackProps, [\n detailPanel,\n h(ZoomControl, { className: \"zoom-control\" }),\n h(\"div.spacer\"),\n mapControls,\n ]),\n ]),\n h(\"div.bottom\", null, bottomPanel),\n ]\n );\n}\n\nconst MapProviders = ({ children }) =>\n h(ToasterContext, h(MapboxMapProvider, children));\n\nexport const MapAreaContainer = (props) =>\n h(MapProviders, h(_MapAreaContainer, props));\n\ninterface MapContainerProps {\n className?: string;\n mapPosition?: MapPosition;\n children?: ReactNode;\n}\n\nexport function MapStyledContainer({ className, children }: MapContainerProps) {\n const mapPosition = useMapPosition();\n if (mapPosition != null) {\n const { mapIsRotated, mapUse3D, mapIsGlobal } = mapViewInfo(mapPosition);\n className = classNames(className, {\n \"map-is-rotated\": mapIsRotated,\n \"map-3d-available\": mapUse3D,\n \"map-is-global\": mapIsGlobal,\n });\n }\n\n return h(\"div\", { className }, children);\n}\n\n//const _MapPage = compose(HotkeysProvider, MapPage);\n",".map-page\n display: flex\n flex-direction: column\n position: relative\n width: 100%\n height: 100%\n overflow: hidden\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 &.map-is-rotated\n .compass-control\n display: block\n\n .map-3d-control\n display: none\n &.map-3d-available .map-3d-control\n display: block\n &.map-is-rotated.map-3d-available .map-3d-control\n display: none\n\n .globe-control\n display: none\n svg\n color: var(--secondary-color)\n &.map-is-global .globe-control\n display: block\n\n.main-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.panel-card\n padding: 10px\n background-color: var(--panel-background-color)\n overflow: hidden\n\n & >:last-child\n margin-bottom: 0\n\n:global(.bp4-dark) .panel-card\n background-color: var(--panel-background-color)\n\n.context-stack\n display: flex\n flex-direction: column\n max-height: 100%\n\n &>div\n flex-shrink: 1\n\n &>.searchbar\n flex: 0\n\n.context-stack,\n.detail-stack\n z-index: 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(.bp4-button-text)\n transition: all 0.2s\n transition-delay: 0.1s\n\n .menu-card.narrow-card .panel-header:not(.minimal) &:global(.bp4-active) ~ & :global(.bp4-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n .context-panel-leave .menu-card .panel-header & :global(.bp4-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(.bp4-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(.bp4-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 .bp4-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 & .bp4-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 .bp4-dark .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 .bp4-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n .bp4-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.main-ui.detail-panel-open .zoom-control\n opacity: 0\n display: none\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.main-ui.searching .map-view-container\n pointer-events: none\n\n.map-controls\n display: flex\n flex-direction: row\n justify-content: right\n margin-bottom: 0\n\n &>*\n margin-left: 0.5em\n\n.map-controls :global(.mapbox-control),\n.map-controls :global(.map-control-wrapper),\n.map-controls .map-control\n min-width: 22px\n min-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 .map-control button\n width: 22px\n height: 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/* 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 .main-ui.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 &: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/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n .main-ui\n flex-direction: row\n padding: 1em 1em 2em\n min-height: 80px\n &>*\n margin-right: 0.5em\n &>*:last-child\n margin-right: 0\n\n .context-stack\n 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 &>.spacer\n flex-grow: 0\n\n .context-panel-holder\n min-height: 0\n position: relative\n &>div\n max-height: 100%\n\n .main-ui.detail-panel-open .detail-stack\n width: var(--map-detail-stack-width, 30em)\n\n .detail-stack\n width: 30em\n pointer-events: none\n display: flex\n flex-direction: column\n\n .context-stack, .detail-stack\n pointer-events: none\n z-index: 100\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.main-ui .detail-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n.main-ui.detail-panel-from .detail-panel\n opacity: 0\n\n.main-ui.detail-panel-enter .detail-panel\n opacity: 1\n\n.main-ui.detail-panel-leave .detail-panel\n opacity: 0\n\n.main-ui .context-panel-holder\n pointer-events: none\n flex: 1\n &>div\n pointer-events: all\n transition: opacity 0.8s ease //, height 0.8s ease, max-height 0.8s ease, padding 0.8s ease\n\n.main-ui.context-panel-from .context-panel-holder>div\n opacity: 0\n\n.main-ui.context-panel-enter .context-panel-holder>div\n opacity: 1\n\n.main-ui.context-panel-leave .context-panel-holder>div\n opacity: 0\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: 0\n\n@media only screen and (max-width: 768px)\n .main-ui .detail-stack\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .main-ui.detail-panel-from .detail-stack\n max-height: 0\n height: 0\n\n .main-ui.detail-panel-leave .detail-stack\n max-height: 0\n max-height: 0\n\n .main-ui.context-panel-from .context-panel\n max-height: 0\n height: 0\n\n .main-ui.context-panel-leave\n .context-stack\n .context-panel-holder\n flex: 0\n .spacer\n flex: 1\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-page .main-ui.detail-panel-leave .map-view-container\n margin-right: -14em\n\n .map-page.map-is-global .main-ui.detail-panel-leave .map-view-container\n margin-right: -30em\n\n .map-page.map-is-global .main-ui.context-panel-leave .map-view-container\n margin-left: -16em\n","import { useRef } from \"react\";\nimport { GeolocateControl } from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport {\n CompassControl,\n GlobeControl,\n ThreeDControl,\n MapControlWrapper,\n} from \"@macrostrat/mapbox-react\";\nimport { ScaleControl as BaseScaleControl } from \"mapbox-gl\";\n\nconst h = hyper.styled(styles);\n\nfunction ScaleControl(props) {\n const optionsRef = useRef({\n maxWidth: 200,\n unit: \"metric\",\n });\n return h(MapControlWrapper, {\n className: \"map-scale-control\",\n control: BaseScaleControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nfunction GeolocationControl(props) {\n const optionsRef = useRef({\n showAccuracyCircle: true,\n showUserLocation: true,\n trackUserLocation: true,\n positionOptions: {\n enableHighAccuracy: true,\n },\n });\n return h(MapControlWrapper, {\n control: GeolocateControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nexport function MapBottomControls() {\n return h(\"div.map-controls\", [\n h(ScaleControl),\n h(ThreeDControl, { className: \"map-3d-control\" }),\n h(CompassControl, { className: \"compass-control\" }),\n h(GlobeControl, { className: \"globe-control\" }),\n h(GeolocationControl, { className: \"geolocation-control\" }),\n ]);\n}\n","import {\n useMapRef,\n useMapEaseToCenter,\n useMapDispatch,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { 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, useLayoutEffect } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\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}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\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 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 });\n\n // Ideally, we would not have to do this when we know the infobox is loaded\n useMapEaseToCenter(infoMarkerPosition, padding);\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\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 }, [mapRef.current, onMapMoved, dispatch]);\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\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, mapRef.current, mapIsLoading]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n\n useMapMarker(mapRef, markerRef, position);\n\n const handleMapClick = useCallback(\n (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 }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [mapRef.current, setPosition]\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map != null && setPosition != null) {\n map.on(\"click\", handleMapClick);\n }\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [mapRef.current, setPosition]);\n\n return null;\n}\n","import { useEffect } from \"react\";\nimport { Marker } from \"mapbox-gl\";\n\nfunction calcMapPadding(rect, childRect) {\n return {\n left: Math.max(rect.left - childRect.left, 0),\n top: Math.max(rect.top - childRect.top, 0),\n right: Math.max(childRect.right - rect.right, 0),\n bottom: Math.max(childRect.bottom - rect.bottom, 0),\n };\n}\n\nexport function getMapPadding(ref, parentRef) {\n const rect = parentRef.current?.getBoundingClientRect();\n const childRect = ref.current?.getBoundingClientRect();\n if (rect == null || childRect == null) return;\n return calcMapPadding(rect, childRect);\n}\n\nexport function useMapMarker(mapRef, markerRef, markerPosition) {\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (markerPosition == null) {\n markerRef.current?.remove();\n return;\n }\n const marker = markerRef.current ?? new Marker();\n marker.setLngLat(markerPosition).addTo(map);\n markerRef.current = marker;\n return () => marker.remove();\n }, [mapRef.current, markerPosition]);\n}\n","import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n useMapPosition,\n} from \"@macrostrat/mapbox-react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef, useCallback } from \"react\";\nimport styles from \"./main.module.sass\";\nimport rootStyles from \"../main.module.sass\";\nimport { enable3DTerrain } from \"./terrain\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"../helpers\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\n\nconst h = hyper.styled({ ...styles, ...rootStyles });\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n //style: mapboxgl.Style | string;\n //transformRequest?: mapboxgl.TransformRequestFunction;\n mapPosition?: MapPosition;\n onMapLoad?: (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\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 accessToken,\n infoMarkerPosition,\n transformRequest,\n projection,\n onMapLoaded = null,\n onStyleLoaded = null,\n ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n if (accessToken != null) {\n mapboxgl.accessToken = accessToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n // Keep track of map position for reloads\n\n useEffect(() => {\n if (style == null) return;\n if (mapRef.current != null) {\n console.log(\"Setting style\", style);\n mapRef.current.setStyle(style);\n return;\n }\n const map = initializeMap(ref.current, {\n style,\n projection,\n mapPosition,\n ...rest,\n });\n map.on(\"style.load\", () => {\n onStyleLoaded?.(map);\n dispatch({ type: \"set-style-loaded\", payload: true });\n });\n onMapLoaded?.(map);\n dispatch({ type: \"set-map\", payload: map });\n }, [style]);\n\n // Map style updating\n // useEffect(() => {\n // if (mapRef?.current == null || style == null) return;\n // mapRef?.current?.setStyle(style);\n // }, [mapRef.current, style]);\n\n // Set map position if it changes\n // useEffect(() => {\n // const map = mapRef.current;\n // if (map == null || mapPosition == null) return;\n // setMapPosition(map, mapPosition);\n // }, [mapPosition]);\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),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, { containerRef: ref, parentRef, infoMarkerPosition }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID }),\n children,\n ]);\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n}) {\n const mapRef = useMapRef();\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n enable3DTerrain(map, mapUse3D, terrainSourceID);\n }, [mapRef.current, mapUse3D]);\n return null;\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 &:global(.mapboxgl-map)\n // override the default mapbox position: relative in all cases\n position: absolute\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","// We should merge this with code in @macrostrat/mapbox-react/src/terrain.ts:\n\nexport function enable3DTerrain(\n map,\n shouldEnable: boolean,\n sourceID: string | null = null\n) {\n let demSourceID = sourceID ?? getTerrainSourceID(map) ?? \"mapbox-dem\";\n\n console.log(\"Enabling 3D terrain with source\", demSourceID);\n\n if (!map.style?._loaded) {\n map.once(\"style.load\", () => {\n enable3DTerrain(map, shouldEnable, demSourceID);\n });\n return;\n }\n\n // Enable or disable terrain depending on our current desires...\n const currentTerrain = map.getTerrain();\n if (!shouldEnable) {\n if (currentTerrain != null) map.setTerrain(null);\n return;\n }\n if (currentTerrain != null) return;\n\n // Add a DEM source if one is not found already.\n if (map.getSource(demSourceID) == null) {\n map.addSource(demSourceID, {\n type: \"raster-dem\",\n url: \"mapbox://mapbox.mapbox-terrain-dem-v1\",\n tileSize: 512,\n maxzoom: 14,\n });\n }\n\n // add a sky layer that will show when the map is highly pitched\n if (map.getLayer(\"sky\") == null) {\n map.addLayer({\n id: \"sky\",\n type: \"sky\",\n paint: {\n \"sky-type\": \"atmosphere\",\n \"sky-atmosphere-sun\": [0.0, 0.0],\n \"sky-atmosphere-sun-intensity\": 15,\n },\n });\n }\n\n map.setTerrain({ source: demSourceID, exaggeration: 1 });\n}\n\nfunction getTerrainSourceID(map) {\n for (const [key, source] of Object.entries(map.getStyle().sources)) {\n if (source.type == \"raster-dem\") {\n return key;\n }\n }\n return null;\n}\n",".feature-panel\n position: relative\n overflow-x: hidden\n\n.key-value\n display: inline-block\n margin-right: 1em\n .key\n font-weight: bold\n font-size: 0.9em\n &:after\n content: ': '\n .value\n font-size: 0.9em\n\n.feature-properties\n position: relative\n &:before\n content: \"–\"\n position: absolute\n top: 4px\n left: 0\n\n.feature-header h3\n margin-bottom: 0\n margin-top: 0.5em\n\n.feature-group\n border-bottom: 1px solid var(--panel-rule-inner)\n padding: 0 1em\n margin-left: -1em\n margin-right: -1em\n margin-bottom: 0.5em\n &:last-child\n border-bottom: none\n\n.tile-info\n display: flex\n flex-direction: row\n align-items: baseline\n padding: 0 1em\n h3\n margin-right: 0.5em\n\n.opacity-slider\n margin: 0 1em 0.5em\n :global\n .bp4-slider-handle .bp4-slider-label\n background-color: var(--secondary-color)\n color: var(--text-color)\n\n.unit-number\n .unit\n font-size: 0.9em\n margin-left: 0.2em\n font-weight: bold\n\n.page\n margin: 2em auto\n max-width: 50em\n\n.dev-index-page\n overflow-y: scroll\n","import { useMapConditionalStyle, useMapRef } from \"@macrostrat/mapbox-react\";\nimport { tileToGeoJSON } from \"@mapbox/tilebelt\";\nimport { useCallback } from \"react\";\n\ntype TileIndex = { x: number; y: number; z: number };\n\nexport function TileExtentLayer({\n tile,\n color = \"red\",\n}: {\n tile: TileIndex | null;\n color?: string;\n}) {\n const styleCallback = useCallback(\n (map, val: TileIndex) => {\n const style = map.getStyle();\n if (style.layers == null) return;\n style.layers = style.layers.filter((l) => l.id != \"tile-extent\");\n if (val == null) {\n return map.setStyle(style);\n }\n const { x, y, z } = val;\n const extent = tileToGeoJSON([x, y, z]);\n const source = {\n type: \"geojson\",\n data: extent,\n };\n const layer = {\n id: \"tile-extent\",\n type: \"line\",\n source: \"tile-extent\",\n paint: {\n \"line-color\": color,\n \"line-width\": 2,\n },\n };\n style.sources[\"tile-extent\"] = source;\n style.layers.push(layer);\n map.setStyle(style);\n },\n [color]\n );\n const map = useMapRef();\n useMapConditionalStyle(map, tile, styleCallback);\n return null;\n}\n","import { Spinner, Switch } from \"@blueprintjs/core\";\nimport { useMapRef, useMapStatus } from \"@macrostrat/mapbox-react\";\nimport mapboxgl from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useEffect, useState } from \"react\";\nimport { JSONView, usePrevious } from \"@macrostrat/ui-components\";\nimport { group } from \"d3-array\";\nimport { ExpansionPanel } from \"../expansion-panel\";\n\nconst h = hyper.styled(styles);\n\nexport function FeatureProperties({ data, ...rest }) {\n return h(\"div.feature-properties\", [\n h(JSONView, {\n data,\n hideRoot: true,\n ...rest,\n }),\n ]);\n}\n\nexport function FeatureRecord({ feature }) {\n const props = feature.properties;\n return h(\"div.feature-record\", [\n h.if(Object.keys(props).length > 0)(FeatureProperties, { data: props }),\n ]);\n}\n\nexport function FeatureSelectionHandler({\n selectedLocation,\n setFeatures,\n radius = 2,\n}: {\n selectedLocation: mapboxgl.LngLat;\n setFeatures: (features: mapboxgl.MapboxGeoJSONFeature[]) => void;\n radius?: number;\n}) {\n const mapRef = useMapRef();\n const { isLoading } = useMapStatus();\n const prevLocation = usePrevious(selectedLocation);\n\n useEffect(() => {\n const map = mapRef?.current;\n if (map == null) return;\n if (selectedLocation == null) {\n setFeatures(null);\n return;\n }\n\n // Don't update if the location hasn't changed\n if (selectedLocation == prevLocation) return;\n\n const r = radius;\n const pt = map.project(selectedLocation);\n\n const bbox: [mapboxgl.PointLike, mapboxgl.PointLike] = [\n [pt.x - r, pt.y - r],\n [pt.x + r, pt.y + r],\n ];\n const features = map.queryRenderedFeatures(bbox);\n setFeatures(features);\n }, [mapRef?.current, selectedLocation, isLoading]);\n\n return null;\n}\n\nfunction FeatureHeader({ feature }) {\n return h(\"div.feature-header\", [\n h(\"h3\", [\n h(KeyValue, { label: \"Source\", value: feature.source }),\n h(KeyValue, { label: \"Source layer\", value: feature.sourceLayer }),\n ]),\n ]);\n}\n\nfunction KeyValue({ label, value }) {\n return h(\"span.key-value\", [h(\"span.key\", label), h(\"code.value\", value)]);\n}\n\nfunction LoadingAwareFeatureSet({ features, sourceID }) {\n const map = useMapRef();\n if (map?.current == null) return null;\n const [isLoaded, setIsLoaded] = useState(false);\n\n const sourceFeatures = features.filter((d) => d.source == \"burwell\");\n\n useEffect(() => {\n if (sourceFeatures.length > 0) {\n setIsLoaded(true);\n return;\n }\n\n const isLoaded = map.current.isSourceLoaded(sourceID);\n setIsLoaded(isLoaded);\n if (!isLoaded) {\n map.current.once(\"sourcedata\", (e) => {\n if (e.sourceId == sourceID) {\n setIsLoaded(true);\n }\n });\n }\n }, [map.current, sourceID, sourceFeatures.length]);\n\n if (!isLoaded) return h(Spinner);\n return h(Features, { features: sourceFeatures });\n}\n\nexport function TileInfo({ feature, showExtent, setShowExtent }) {\n if (feature == null) return null;\n const size = feature._vectorTileFeature._pbf.length;\n return h(\"div.tile-info\", [\n h(\"h3\", \"Tile\"),\n h(\"div.tile-index\", [\n h(KeyValue, { label: \"x\", value: feature._x }),\n h(KeyValue, { label: \"y\", value: feature._y }),\n h(KeyValue, { label: \"z\", value: feature._z }),\n ]),\n h(\"div.spacer\"),\n h(KeyValue, { label: \"Size\", value: formatSize(size) }),\n h(Switch, {\n label: \"Show extent\",\n alignIndicator: \"right\",\n checked: showExtent,\n onChange() {\n setShowExtent(!showExtent);\n },\n }),\n ]);\n}\n\nfunction formatSize(size: number) {\n if (size > 1000000)\n return h(UnitNumber, { value: size / 1000000, unit: \"Mb\" });\n if (size > 1000) return h(UnitNumber, { value: size / 1000, unit: \"Kb\" });\n return `${size} bytes`;\n}\n\nfunction UnitNumber({ value, unit, precision = 1 }) {\n return h(\"span.unit-number\", [\n h(\"span.number\", value.toFixed(precision)),\n h(\"span.unit\", unit),\n ]);\n}\n\nexport function FeaturePanel({\n features,\n focusedSource = null,\n focusedSourceTitle = null,\n}) {\n if (features == null) return null;\n\n let focusedSourcePanel = null;\n let filteredFeatures = features;\n let title = \"Features\";\n\n if (focusedSource != null) {\n title = \"Basemap features\";\n focusedSourcePanel = h(\n ExpansionPanel,\n {\n title: \"Macrostrat features\",\n className: \"macrostrat-features\",\n expanded: true,\n },\n [\n h(LoadingAwareFeatureSet, {\n features,\n sourceID: focusedSource,\n }),\n ]\n );\n filteredFeatures = features.filter((d) => d.source != focusedSource);\n }\n\n return h(\"div.feature-panel\", [\n focusedSourcePanel,\n h(\n ExpansionPanel,\n { title, className: \"basemap-features\", expanded: focusedSource == null },\n [\n h(FeatureGroups, {\n features: filteredFeatures,\n }),\n ]\n ),\n ]);\n}\n\nfunction FeatureGroups({ features }) {\n /** Group features by source and sourceLayer */\n if (features == null) return null;\n\n const groups = group(features, (d) => `${d.source} - ${d.sourceLayer}`);\n\n return h(\n \"div.feature-groups\",\n Array.from(groups).map(([key, features]) => {\n return h(\"div.feature-group\", [\n h(FeatureHeader, { feature: features[0] }),\n h(Features, { features }),\n ]);\n })\n );\n}\n\nexport function Features({ features }) {\n return h(\n \"div.features\",\n features.map((feature, i) => h(FeatureRecord, { key: i, feature }))\n );\n}\n","import { useState } from \"react\";\nimport { Collapse, Icon } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { Button } from \"@blueprintjs/core\";\nimport { PanelSubhead } from \"./headers\";\n\nconst h = hyper.styled(styles);\n\nfunction ExpansionPanelSummary(props) {\n const { expanded, children, onChange, className, title, titleComponent } =\n props;\n const icon = expanded ? \"chevron-up\" : \"chevron-down\";\n return h(\n PanelSubhead,\n {\n className: classNames(\"expansion-panel-header\", className),\n onClick: onChange,\n title,\n component: titleComponent,\n },\n [children, h(Icon, { icon })]\n );\n}\n\nfunction ExpansionPanelBase(props) {\n let {\n title,\n titleComponent = \"h3\",\n children,\n expanded,\n helpText,\n onChange = () => {},\n sideComponent = null,\n className,\n } = props;\n const [isOpen, setOpen] = useState(expanded || false);\n\n const onChange_ = () => {\n onChange();\n setOpen(!isOpen);\n };\n\n return h(\n \"div.expansion-panel-base\",\n {\n className: classNames(className, {\n expanded: isOpen,\n collapsed: !isOpen,\n }),\n },\n [\n h(\n ExpansionPanelSummary,\n {\n onChange: onChange_,\n expanded: isOpen,\n title,\n titleComponent,\n },\n h(\"div.expansion-summary-title-help\", [\n h(\"span.expansion-panel-subtext\", helpText),\n \" \",\n sideComponent,\n ])\n ),\n h(Collapse, { isOpen }, h(\"div.expansion-children\", null, children)),\n ]\n );\n}\n\nexport function InfoPanelSection(props) {\n let { title, children, className, headerElement = null } = props;\n return h(\"div.info-panel-section\", { className }, [\n h(\"div.panel-subhead\", null, headerElement ?? h(\"h3\", title)),\n h(\"div.panel-content\", null, children),\n ]);\n}\n\nfunction ExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel\",\n });\n}\n\nfunction SubExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel sub-expansion-panel\",\n titleComponent: \"h4\",\n });\n}\n\nfunction ExpandableDetailsPanel(props) {\n let { title, children, value, headerElement, className } = props;\n const [isOpen, setIsOpen] = useState(false);\n headerElement ??= h([h(\"div.title\", title), value]);\n return h(\"div.expandable-details\", { className }, [\n h(\"div.expandable-details-main\", [\n h(\"div.expandable-details-header\", headerElement),\n h(\"div.expandable-details-toggle\", [\n h(Button, {\n small: true,\n minimal: true,\n active: isOpen,\n onClick: () => setIsOpen(!isOpen),\n icon: \"more\",\n }),\n ]),\n ]),\n h(\n Collapse,\n { isOpen },\n h(\"div.expandable-details-children\", null, children)\n ),\n ]);\n}\n\nfunction ExpansionBody({ title, className, children }) {\n return h(\"div.expansion-body\", { className }, [\n h(\"div.expansion-panel-detail-header\", title),\n h(\"div.expansion-panel-detail-body\", null, children),\n ]);\n}\n\nexport {\n ExpansionPanel,\n ExpansionPanelSummary,\n ExpandableDetailsPanel,\n SubExpansionPanel,\n ExpansionBody,\n PanelSubhead,\n};\n","\n.panel-subhead\n padding: 0.2em var(--box-horizontal-padding)\n border-top: 1px solid var(--panel-rule-color)\n border-bottom: 1px solid var(--panel-rule-color)\n background-color: var(--accent-color)\n display: flex\n flex-direction: row\n align-items: center\n z-index: 1\n gap: var(--box-horizontal-padding)\n top: -1px\n position: sticky\n h1, h2, h3, h4\n font-family: Montserrat,sans-serif\n font-weight: 700\n margin: 0.2em 0\n h4\n font-weight: 600\n .title\n flex-grow: 1\n\n// :global(.bp4-dark) .panel-subhead\n// margin 0 1px\n\n.expansion-panel\n padding: 0\n flex-wrap: wrap\n margin-top: -1px\n // &.collapsed\n // .expansion-panel-header\n // border-bottom-width: 0;\n\n.sub-expansion-panel\n margin: -1px calc(var(--panel-padding-h) * -0.5) 0\n overflow: hidden\n &:first-child\n .expansion-panel-header\n border-top-width: 0\n .panel-subhead\n border-top: none\n border-bottom: none\n\n .expansion-panel-header\n background-color: var(--accent-secondary-color)\n cursor: pointer\n &:hover\n background-color: var(--accent-secondary-hover-color)\n h2, h3, h4\n font-weight: 500\n border-bottom: 1px solid var(--tertiary-border-color)\n border-top: 1px solid var(--tertiary-border-color)\n margin-top: -1px\n padding: 5px 1em 5px\n align-items: center\n\n.expansion-summary-title-help\n margin-left: 5px\n :global(.bp4-icon)\n margin-left: 5px\n\n.expansion-panel-header\n cursor: pointer\n &:hover\n background-color: var(--accent-hover-color)\n :global(.bp4-icon)\n transform: translate(0,3px)\n\n.expansion-children\n padding: 5px 1em 10px\n .expansion-panel\n margin-left: -1em\n margin-right: -1em\n &:first-child\n margin-top: -5px\n\n.expansion-panel-subtext\n font-size: 85%\n font-weight: 400\n\n:global\n .expansion-panel-root\n padding-left: 15px !important\n\n .expansion-panel-detail\n display: block !important\n padding: 0 !important\n\n .expansion-panel-detail-sub\n display: block !important\n\n// New expandable panel for details\n.expandable-details-main\n display: flex\n flex-direction: row\n align-items: center\n justify-content: space-between\n margin: 3px 0\n\n.expandable-details-header\n display: inline-flex\n flex-direction: row\n align-items: baseline\n flex-grow: 1\n\n.expandable-details-children\n position: relative\n\n.expandable-details-toggle\n :global(.bp4-button)\n font-size: 10px\n\n.expandable-details\n &.macrostrat-unit\n .title:after\n content: none\n .title\n margin-right: 1em\n &:after\n content: \":\"\n\n.expansion-body\n display: inline-block\n //flex-direction row\n align-items: baseline\n background-color: var(--tertiary-background)\n padding: 2px 6px\n border-radius: 4px\n width: 100%\n box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.2)\n margin-bottom: 6px\n\n.expansion-panel-detail-header\n font-size: 90%\n font-style: italic\n margin-right: 1em\n display: inline\n color: var(--secondary-color)\n &:after\n content: \":\"\n\n.expansion-panel-detail-body\n display: inline\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\n\nconst h = hyper.styled(styles);\n\nexport function PanelSubhead(props) {\n const { title, component = \"h3\", children, ...rest } = props;\n return h(\"div.panel-subhead\", rest, [\n h(\n component,\n {\n className: \"title\",\n },\n title\n ),\n children,\n ]);\n}\n"],"names":[],"version":3,"file":"index.cjs.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/map-interface/src/index.ts","packages/map-interface/src/context-panel/index.ts","packages/map-interface/src/context-panel/main.module.sass","packages/map-interface/src/location-panel/index.ts","packages/map-interface/src/location-panel/header.ts","packages/map-interface/src/location-panel/main.module.sass","packages/map-interface/src/location-info/index.ts","packages/map-interface/src/location-info/utils.ts","packages/map-interface/src/dev/index.ts","packages/map-interface/src/dev/map-page.ts","packages/map-interface/src/dev/xray.ts","packages/map-interface/src/container.ts","packages/map-interface/src/main.module.sass","packages/map-interface/src/controls.ts","packages/map-interface/src/helpers.ts","packages/map-interface/src/utils.ts","packages/map-interface/src/map-view/index.ts","packages/map-interface/src/map-view/main.module.sass","packages/map-interface/src/map-view/terrain.ts","packages/map-interface/src/dev/main.module.sass","packages/map-interface/src/dev/tile-extent.ts","packages/map-interface/src/dev/vector-tile-features.ts","packages/map-interface/src/expansion-panel/index.ts","packages/map-interface/src/expansion-panel/main.module.sass","packages/map-interface/src/expansion-panel/headers.ts"],"sourcesContent":["export * from \"./context-panel\";\nexport * from \"./location-panel\";\nexport * from \"./dev\";\nexport * from \"./container\";\nexport * from \"./map-view\";\nexport * from \"./controls\";\nexport * from \"./helpers\";\nexport * from \"./utils\";\nexport * from \"./location-info\";\nexport * from \"./expansion-panel\";\n","import { useMemo } from \"react\";\nimport { Navbar, Button, InputGroup, Spinner, Card } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMapStatus } from \"@macrostrat/mapbox-react\";\n\nconst h = hyper.styled(styles);\n\nconst spinnerElement = h(Spinner, { size: 16 });\n\nexport function LoadingButton({\n isLoading = false,\n onClick,\n active = false,\n icon = \"menu\",\n}) {\n return h(Button, {\n icon: isLoading ? spinnerElement : icon,\n large: true,\n minimal: true,\n onClick,\n active: active && !isLoading,\n });\n}\n\nexport function MapLoadingButton(props) {\n const { isLoading } = useMapStatus();\n const mapIsLoading = useMemo(() => isLoading, [isLoading]);\n return h(LoadingButton, { ...props, isLoading: mapIsLoading });\n}\n\ntype AnyChildren = React.ReactNode | React.ReactFragment;\n\nexport function FloatingNavbar({\n className,\n children,\n statusElement = null,\n}: {\n className?: string;\n children?: AnyChildren;\n statusElement?: AnyChildren;\n}) {\n return h(\"div.searchbar-holder\", { className }, [\n h(\"div.navbar-holder\", [\n h(Navbar, { className: \"searchbar panel\" }, children),\n ]),\n h.if(statusElement != null)(\n Card,\n { className: \"status-tongue\" },\n statusElement\n ),\n ]);\n}\n",".searchbar-holder\n transition: margin 300ms\n display: flex\n flex-direction: column\n margin: 0\n .navbar-holder\n display: flex\n flex-direction: row\n .searchbar\n width: 100%\n background-color: var(--panel-background-color)\n border-radius: 3px\n padding: 0 5px\n display: flex\n flex-direction: row\n align-items: center\n :global(.bp4-input-group)\n flex-grow: 1\n cursor: text\n &>*\n margin-right: 5px\n &:last-child\n margin-right: 0\n\n.status-tongue\n background-color: var(--panel-background-color)\n margin: 5px\n margin-top: -12px\n padding: 0\n padding-top: 12px\n\n@media screen and (max-width: 768px)\n .status-tongue\n max-width: 100vw\n margin: 0\n border-radius: 0\n margin-top: -3px\n","import { Card } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport { InfoDrawerHeader } from \"./header\";\nimport classNames from \"classnames\";\nimport styles from \"./main.module.sass\";\nimport { ErrorBoundary } from \"@macrostrat/ui-components\";\n\nconst h = hyper.styled(styles);\n\nexport function InfoDrawerContainer(props) {\n const className = classNames(\"infodrawer\", props.className);\n return h(Card, { ...props, className });\n}\n\nexport function LocationPanel(props) {\n const { children, className, loading = false, ...rest } = props;\n const cls = classNames(\"location-panel\", className, { loading });\n return h(InfoDrawerContainer, { className: cls }, [\n h(InfoDrawerHeader, rest),\n h(\"div.infodrawer-body\", h(\"div.infodrawer-contents\", h(ErrorBoundary, null, children))),\n ]);\n}\n","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\";\n\nconst h = hyper.styled(styles);\n\nfunction PositionButton({ position }) {\n const focusState = useFocusState(position);\n\n return h(\"div.position-controls\", [\n h(LocationFocusButton, { location: position, focusState }, []),\n isCentered(focusState) ? h(CopyLinkButton, { itemName: \"position\" }) : null,\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\ninterface InfoDrawerHeaderProps {\n onClose: () => void;\n position: mapboxgl.LngLat;\n zoom?: number;\n elevation?: number;\n}\n\nexport function InfoDrawerHeader(props: InfoDrawerHeaderProps) {\n const { onClose, position, zoom = 7, elevation } = props;\n\n return h(\"header.location-panel-header\", [\n h(PositionButton, { position }),\n h(\"div.spacer\"),\n h(LngLatCoords, { position, zoom, className: \"infodrawer-header-item\" }),\n h.if(elevation != null)(Elevation, {\n elevation,\n className: \"infodrawer-header-item\",\n }),\n h(Button, { minimal: true, icon: \"cross\", onClick: onClose }),\n ]);\n}\n",".copy-link-button:global(.bp4-minimal.bp4-button)\n color: var(--text-subtle-color)\n svg\n fill: var(--text-subtle-color)\n\n.location-panel-header\n padding: 5px\n display: flex\n flex-direction: row\n align-items: center\n gap: 1em\n border-bottom: 1px solid var(--panel-rule-color)\n .spacer\n flex-grow: 1\n .left-icon\n padding: 7px\n\n .position-controls :global(.bp4-button)\n font-size: 12px !important\n\n.infodrawer-header-item\n font-size: 12px\n :global(.secondary)\n font-size: 0.9em\n color: var(--text-subtle-color)\n\n.infodrawer\n pointer-events: all\n max-height: 100%\n max-width: 100%\n height: fit-content\n display: flex\n flex-direction: column\n overflow: hidden\n &:global(.bp4-card)\n padding: 0\n\n &.loading\n .infodrawer-body\n overflow-y: hidden\n min-height: 70px\n\n.infodrawer-contents\n padding: 0 1em 1em\n\n.infodrawer-body\n flex-shrink: 1\n min-height: 0\n transition: min-height 0.5s ease\n overflow-y: scroll\n position: relative\n\n// TODO: remove this when we have a better way to handle card media queries\n@media screen and (max-width: 768px)\n .infodrawer\n border-radius: var(--panel-border-radius, 0px)\n","import h from \"@macrostrat/hyper\";\nimport {\n formatValue,\n normalizeLng,\n metersToFeet,\n formatCoordForZoomLevel,\n} from \"./utils\";\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","import { format } from \"d3-format\";\n\nexport function formatCoordForZoomLevel(val: number, zoom: number): string {\n if (zoom < 2) {\n return fmt1(val);\n } else if (zoom < 4) {\n return fmt2(val);\n } else if (zoom < 7) {\n return fmt3(val);\n }\n return fmt4(val);\n}\n\nexport function normalizeLng(lng) {\n // via https://github.com/Leaflet/Leaflet/blob/32c9156cb1d1c9bd53130639ec4d8575fbeef5a6/src/core/Util.js#L87\n return (((((lng - 180) % 360) + 360) % 360) - 180).toFixed(4);\n}\n\nexport const fmt4 = format(\".4~f\");\nexport const fmt3 = format(\".3~f\");\nexport const fmt2 = format(\".2~f\");\nexport const fmt1 = format(\".1~f\");\nexport const fmtInt = format(\".0f\");\n\nexport function formatValue(val: number, precision: number = 0): string {\n switch (precision) {\n case 4:\n return fmt4(val);\n case 3:\n return fmt3(val);\n case 2:\n return fmt2(val);\n case 1:\n return fmt1(val);\n case 0:\n return fmtInt(val);\n default:\n return fmt4(val);\n }\n}\n\nexport function metersToFeet(meters, precision = 0) {\n return (meters * 3.28084).toFixed(precision);\n}\n","export * from \"./map-page\";\nexport * from \"./tile-extent\";\nexport * from \"./vector-tile-features\";\nexport * from \"./xray\";\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, buildXRayStyle } 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 enum MacrostratVectorTileset {\n Carto = \"carto\",\n CartoSlim = \"carto-slim\",\n IGCPOrogens = \"igcp-orogens\",\n}\n\nexport enum MacrostratRasterTileset {\n Carto = \"carto\",\n Emphasized = \"emphasized\",\n}\n\nexport const h = hyper.styled(styles);\n\nexport function DevMapPage({\n title = \"Map inspector\",\n headerElement = null,\n transformRequest = null,\n mapPosition = null,\n mapboxToken = null,\n overlayStyle = null,\n children,\n style,\n focusedSource = null,\n focusedSourceTitle = null,\n projection = null,\n}: {\n headerElement?: React.ReactElement;\n transformRequest?: mapboxgl.TransformRequestFunction;\n title?: string;\n style: mapboxgl.Style | string;\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}) {\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 style ??= isEnabled\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\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(style);\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 console.log(\"Style\", actualStyle);\n\n return h(\n MapAreaContainer,\n {\n navbar: h(FloatingNavbar, [\n headerElement ?? h(\"h2\", title),\n h(Spacer),\n h(MapLoadingButton, {\n active: isOpen,\n onClick: () => setOpen(!isOpen),\n }),\n ]),\n contextPanel: h(PanelCard, [\n h(Switch, {\n checked: xRay,\n label: \"X-ray mode\",\n onChange() {\n setState({ ...state, xRay: !xRay });\n },\n }),\n children,\n ]),\n detailPanel: detailElement,\n contextPanelOpen: isOpen,\n },\n h(\n MapView,\n {\n style: actualStyle,\n transformRequest,\n mapPosition,\n projection: \"globe\",\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 ]\n )\n );\n}\n","import { getMapboxStyle, mergeStyles } from \"@macrostrat/mapbox-utils\";\nimport chroma from \"chroma-js\";\nimport mapboxgl from \"mapbox-gl\";\n\ninterface XRayOptions {\n color?: string;\n inDarkMode?: boolean;\n mapboxToken?: string;\n xRaySources?: string[];\n}\n\nexport async function buildXRayStyle(\n baseStyle: string | object,\n params: XRayOptions = null\n) {\n const {\n inDarkMode = false,\n color = \"rgb(74, 242, 161)\",\n mapboxToken,\n xRaySources\n } = params;\n const style = await getMapboxStyle(baseStyle, { access_token: mapboxToken });\n const sources = xRaySources ?? Object.keys(style.sources);\n\n let layers = [];\n for (let layer of style.layers) {\n if (!sources.includes(layer.source)) {\n layers.push(layer);\n continue;\n }\n let newLayer = transformMapboxLayer(layer, color, inDarkMode);\n if (newLayer != null) {\n layers.push(newLayer);\n }\n }\n\n return {\n ...style,\n layers,\n };\n}\n\nfunction transformMapboxLayer(layer, color, inDarkMode) {\n const c = chroma(color);\n const xRayColor = (opacity = 1, darken = 0) => {\n if (!inDarkMode) {\n return chroma(color)\n .darken(2 - darken)\n .alpha(opacity)\n .css();\n }\n return c.alpha(opacity).darken(darken).css();\n };\n\n if (layer.type == \"background\") {\n return null;\n }\n\n let newLayer = { ...layer };\n\n if (layer.type == \"fill\") {\n newLayer.paint = {\n \"fill-color\": xRayColor(0.1),\n \"fill-outline-color\": xRayColor(0.5),\n };\n } else if (layer.type == \"line\") {\n newLayer.paint = {\n \"line-color\": xRayColor(0.5, 0),\n \"line-width\": 1.5,\n };\n } else if (layer.type == \"symbol\") {\n newLayer.paint = {\n \"text-color\": xRayColor(1, -0.5),\n \"text-halo-color\": \"#000\",\n };\n } else if (layer.type == \"circle\") {\n newLayer.paint = {\n \"circle-color\": xRayColor(0.5, 0),\n \"circle-stroke-color\": xRayColor(0.5, 1),\n \"circle-radius\": 2,\n };\n }\n\n return newLayer;\n}\n\ntype InspectorStyleOptions = XRayOptions & {\n xRay?: boolean;\n};\n\nexport async function buildInspectorStyle(\n baseStyle: mapboxgl.Style | string,\n overlayStyle: mapboxgl.Style | string | null = null,\n params: InspectorStyleOptions = {}\n) {\n const { mapboxToken, xRay = false, xRaySources: _xRaySources, ...rest } = params;\n let xRaySources = _xRaySources;\n let style = await getMapboxStyle(baseStyle, {\n access_token: mapboxToken,\n });\n\n if (overlayStyle != null) {\n const overlay = await getMapboxStyle(overlayStyle, {\n access_token: mapboxToken,\n });\n style = mergeStyles(style, overlay);\n xRaySources ??= Object.keys(overlay.sources);\n }\n\n\n if (xRay) {\n // If we haven't specified sources, then we'll use all of them\n xRaySources ??= Object.keys(style.sources);\n\n style = await buildXRayStyle(style, { ...rest, mapboxToken, xRaySources });\n }\n return style;\n}\n","import hyper from \"@macrostrat/hyper\";\nimport { HTMLDivProps } from \"@blueprintjs/core\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { useTransition } from \"transition-hook\";\nimport {\n MapboxMapProvider,\n ZoomControl,\n useMapPosition,\n} from \"@macrostrat/mapbox-react\";\nimport { ToasterContext } from \"@macrostrat/ui-components\";\nimport { MapBottomControls } from \"./controls\";\nimport { mapViewInfo, MapPosition } from \"@macrostrat/mapbox-utils\";\nimport { Card } from \"@blueprintjs/core\";\n\nimport { ReactNode } from \"react\";\n\nexport function MapInterface() {\n return h(\"div\", \"Hello world\");\n}\n\nconst h = hyper.styled(styles);\n\ntype AnyElement = React.ReactNode | React.ReactElement | React.ReactFragment;\n\nexport const PanelCard = (props) =>\n h(Card, { ...props, className: classNames(\"panel-card\", props.className) });\n\nfunction _MapAreaContainer({\n children,\n className,\n navbar,\n contextPanel = null,\n detailPanel = null,\n detailPanelOpen,\n contextPanelOpen = true,\n bottomPanel = null,\n mainPanel,\n mapControls = h(MapBottomControls),\n contextStackProps = null,\n detailStackProps = null,\n mapPosition = null,\n fitViewport = true,\n ...rest\n}: {\n navbar: AnyElement;\n children?: AnyElement;\n mapControls?: AnyElement;\n contextPanel?: AnyElement;\n contextStack?: AnyElement;\n mainPanel?: AnyElement;\n detailPanel?: AnyElement;\n bottomPanel?: AnyElement;\n className?: string;\n detailPanelOpen?: boolean;\n contextPanelOpen?: boolean;\n contextStackProps?: HTMLDivProps;\n detailStackProps?: HTMLDivProps;\n mapPosition?: MapPosition;\n fitViewport?: boolean;\n}) {\n const _detailPanelOpen = detailPanelOpen ?? detailPanel != null;\n const contextPanelTrans = useTransition(contextPanelOpen, 800);\n const detailPanelTrans = useTransition(_detailPanelOpen, 800);\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 - These styles are doubly applied so we can have both namespaced and\n outside-accessible styles for each case.\n */\n const mainUIClassName = classNames(\n {\n \"detail-panel-open\": _detailPanelOpen,\n \"map-context-open\": contextPanelOpen,\n },\n `context-panel-${contextPanelTrans.stage}`,\n `map-context-${contextPanelTrans.stage}`,\n `detail-panel-${detailPanelTrans.stage}`,\n `map-detail-${detailPanelTrans.stage}`\n );\n\n return h(\n MapStyledContainer,\n {\n className: classNames(\"map-page\", className, {\n \"fit-viewport\": fitViewport,\n }),\n mapPosition,\n },\n [\n h(\"div.main-ui\", { className: mainUIClassName, ...rest }, [\n h(\"div.context-stack\", [\n navbar,\n h(\"div.context-panel-holder\", [\n h.if(contextPanelTrans.shouldMount)([contextPanel]),\n ]),\n h(\"div.spacer\"),\n ]),\n //h(MapView),\n children ?? mainPanel,\n h(\"div.detail-stack.infodrawer-container\", detailStackProps, [\n detailPanel,\n h(ZoomControl, { className: \"zoom-control\" }),\n h(\"div.spacer\"),\n mapControls,\n ]),\n ]),\n h(\"div.bottom\", null, bottomPanel),\n ]\n );\n}\n\nconst MapProviders = ({ children }) =>\n h(ToasterContext, h(MapboxMapProvider, children));\n\nexport const MapAreaContainer = (props) =>\n h(MapProviders, h(_MapAreaContainer, props));\n\ninterface MapContainerProps {\n className?: string;\n mapPosition?: MapPosition;\n children?: ReactNode;\n}\n\nexport function MapStyledContainer({ className, children }: MapContainerProps) {\n const mapPosition = useMapPosition();\n if (mapPosition != null) {\n const { mapIsRotated, mapUse3D, mapIsGlobal } = mapViewInfo(mapPosition);\n className = classNames(className, {\n \"map-is-rotated\": mapIsRotated,\n \"map-3d-available\": mapUse3D,\n \"map-is-global\": mapIsGlobal,\n });\n }\n\n return h(\"div\", { className }, children);\n}\n\n//const _MapPage = compose(HotkeysProvider, MapPage);\n",".map-page\n display: flex\n flex-direction: column\n position: relative\n width: 100%\n height: 100%\n overflow: hidden\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 &.map-is-rotated\n .compass-control\n display: block\n\n .map-3d-control\n display: none\n &.map-3d-available .map-3d-control\n display: block\n &.map-is-rotated.map-3d-available .map-3d-control\n display: none\n\n .globe-control\n display: none\n svg\n color: var(--secondary-color)\n &.map-is-global .globe-control\n display: block\n\n.main-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.panel-card\n padding: 10px\n background-color: var(--panel-background-color)\n overflow: hidden\n\n & >:last-child\n margin-bottom: 0\n\n:global(.bp4-dark) .panel-card\n background-color: var(--panel-background-color)\n\n.context-stack\n display: flex\n flex-direction: column\n max-height: 100%\n\n &>div\n flex-shrink: 1\n\n &>.searchbar\n flex: 0\n\n.context-stack,\n.detail-stack\n z-index: 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(.bp4-button-text)\n transition: all 0.2s\n transition-delay: 0.1s\n\n .menu-card.narrow-card .panel-header:not(.minimal) &:global(.bp4-active) ~ & :global(.bp4-button-text)\n width: 0\n opacity: 0\n margin-left: -7px\n\n .context-panel-leave .menu-card .panel-header & :global(.bp4-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(.bp4-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(.bp4-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 .bp4-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 & .bp4-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 .bp4-dark .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 .bp4-dark .mapboxgl-ctrl-group .mapboxgl-ctrl-icon\n filter: invert(40%)\n\n .bp4-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.main-ui.detail-panel-open .zoom-control\n opacity: 0\n display: none\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.main-ui.searching .map-view-container\n pointer-events: none\n\n.map-controls\n display: flex\n flex-direction: row\n justify-content: right\n margin-bottom: 0\n\n &>*\n margin-left: 0.5em\n\n.map-controls :global(.mapbox-control),\n.map-controls :global(.map-control-wrapper),\n.map-controls .map-control\n min-width: 22px\n min-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 .map-control button\n width: 22px\n height: 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/* 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 .main-ui.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 &: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/* Desktop styling is necessarily much more complicated than mobile\n to handle a two-column layout. */\n@media screen and (min-width: 768px)\n .main-ui\n flex-direction: row\n padding: 1em 1em 2em\n min-height: 80px\n &>*\n margin-right: 0.5em\n &>*:last-child\n margin-right: 0\n\n .context-stack\n 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 &>.spacer\n flex-grow: 0\n\n .context-panel-holder\n min-height: 0\n position: relative\n &>div\n max-height: 100%\n\n .main-ui.detail-panel-open .detail-stack\n width: var(--map-detail-stack-width, 30em)\n\n .detail-stack\n width: 30em\n pointer-events: none\n display: flex\n flex-direction: column\n\n .context-stack, .detail-stack\n pointer-events: none\n z-index: 100\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.main-ui .detail-panel\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n.main-ui.detail-panel-from .detail-panel\n opacity: 0\n\n.main-ui.detail-panel-enter .detail-panel\n opacity: 1\n\n.main-ui.detail-panel-leave .detail-panel\n opacity: 0\n\n.main-ui .context-panel-holder\n pointer-events: none\n flex: 1\n &>div\n pointer-events: all\n transition: opacity 0.8s ease //, height 0.8s ease, max-height 0.8s ease, padding 0.8s ease\n\n.main-ui.context-panel-from .context-panel-holder>div\n opacity: 0\n\n.main-ui.context-panel-enter .context-panel-holder>div\n opacity: 1\n\n.main-ui.context-panel-leave .context-panel-holder>div\n opacity: 0\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: 0\n\n@media only screen and (max-width: 768px)\n .main-ui .detail-stack\n transition: opacity 0.8s ease, height 0.8s ease, max-height 0.8s ease\n\n .main-ui.detail-panel-from .detail-stack\n max-height: 0\n height: 0\n\n .main-ui.detail-panel-leave .detail-stack\n max-height: 0\n max-height: 0\n\n .main-ui.context-panel-from .context-panel\n max-height: 0\n height: 0\n\n .main-ui.context-panel-leave\n .context-stack\n .context-panel-holder\n flex: 0\n .spacer\n flex: 1\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-page .main-ui.detail-panel-leave .map-view-container\n margin-right: -14em\n\n .map-page.map-is-global .main-ui.detail-panel-leave .map-view-container\n margin-right: -30em\n\n .map-page.map-is-global .main-ui.context-panel-leave .map-view-container\n margin-left: -16em\n","import { useRef } from \"react\";\nimport { GeolocateControl } from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport {\n CompassControl,\n GlobeControl,\n ThreeDControl,\n MapControlWrapper,\n} from \"@macrostrat/mapbox-react\";\nimport { ScaleControl as BaseScaleControl } from \"mapbox-gl\";\n\nconst h = hyper.styled(styles);\n\nfunction ScaleControl(props) {\n const optionsRef = useRef({\n maxWidth: 200,\n unit: \"metric\",\n });\n return h(MapControlWrapper, {\n className: \"map-scale-control\",\n control: BaseScaleControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nfunction GeolocationControl(props) {\n const optionsRef = useRef({\n showAccuracyCircle: true,\n showUserLocation: true,\n trackUserLocation: true,\n positionOptions: {\n enableHighAccuracy: true,\n },\n });\n return h(MapControlWrapper, {\n control: GeolocateControl,\n options: optionsRef.current,\n ...props,\n });\n}\n\nexport function MapBottomControls() {\n return h(\"div.map-controls\", [\n h(ScaleControl),\n h(ThreeDControl, { className: \"map-3d-control\" }),\n h(CompassControl, { className: \"compass-control\" }),\n h(GlobeControl, { className: \"globe-control\" }),\n h(GeolocationControl, { className: \"geolocation-control\" }),\n ]);\n}\n","import {\n useMapRef,\n useMapEaseToCenter,\n useMapDispatch,\n useMapStatus,\n} from \"@macrostrat/mapbox-react\";\nimport { 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\";\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}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\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 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 });\n\n useMapEaseToCenter(infoMarkerPosition, padding);\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\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 }, [mapRef.current, onMapMoved, dispatch]);\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\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, mapRef.current, mapIsLoading]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n\n useMapMarker(mapRef, markerRef, position);\n\n const handleMapClick = useCallback(\n (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 }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [mapRef.current, setPosition]\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map != null && setPosition != null) {\n map.on(\"click\", handleMapClick);\n }\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [mapRef.current, setPosition]);\n\n return null;\n}\n","import { useEffect } from \"react\";\nimport { Marker } from \"mapbox-gl\";\n\nfunction calcMapPadding(rect, childRect) {\n return {\n left: Math.max(rect.left - childRect.left, 0),\n top: Math.max(rect.top - childRect.top, 0),\n right: Math.max(childRect.right - rect.right, 0),\n bottom: Math.max(childRect.bottom - rect.bottom, 0),\n };\n}\n\nexport function getMapPadding(ref, parentRef) {\n const rect = parentRef.current?.getBoundingClientRect();\n const childRect = ref.current?.getBoundingClientRect();\n if (rect == null || childRect == null) return;\n return calcMapPadding(rect, childRect);\n}\n\nexport function useMapMarker(mapRef, markerRef, markerPosition) {\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n if (markerPosition == null) {\n markerRef.current?.remove();\n return;\n }\n const marker = markerRef.current ?? new Marker();\n marker.setLngLat(markerPosition).addTo(map);\n markerRef.current = marker;\n return () => marker.remove();\n }, [mapRef.current, markerPosition]);\n}\n","import hyper from \"@macrostrat/hyper\";\nimport {\n useMapRef,\n useMapDispatch,\n useMapPosition,\n} from \"@macrostrat/mapbox-react\";\nimport {\n mapViewInfo,\n MapPosition,\n setMapPosition,\n} from \"@macrostrat/mapbox-utils\";\nimport classNames from \"classnames\";\nimport mapboxgl from \"mapbox-gl\";\nimport { useEffect, useRef, useCallback } from \"react\";\nimport styles from \"./main.module.sass\";\nimport rootStyles from \"../main.module.sass\";\nimport { enable3DTerrain } from \"./terrain\";\nimport {\n MapLoadingReporter,\n MapMovedReporter,\n MapPaddingManager,\n MapResizeManager,\n} from \"../helpers\";\nimport \"mapbox-gl/dist/mapbox-gl.css\";\n\nconst h = hyper.styled({ ...styles, ...rootStyles });\n\ntype MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, \"container\">;\n\nexport interface MapViewProps extends MapboxCoreOptions {\n showLineSymbols?: boolean;\n children?: React.ReactNode;\n accessToken?: string;\n terrainSourceID?: string;\n enableTerrain?: boolean;\n infoMarkerPosition?: mapboxgl.LngLatLike;\n //style: mapboxgl.Style | string;\n //transformRequest?: mapboxgl.TransformRequestFunction;\n mapPosition?: MapPosition;\n onMapLoad?: (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\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 accessToken,\n infoMarkerPosition,\n transformRequest,\n projection,\n onMapLoaded = null,\n onStyleLoaded = null,\n ...rest\n } = props;\n if (enableTerrain) {\n terrainSourceID ??= \"mapbox-3d-dem\";\n }\n\n if (accessToken != null) {\n mapboxgl.accessToken = accessToken;\n }\n\n const dispatch = useMapDispatch();\n let mapRef = useMapRef();\n const ref = useRef<HTMLDivElement>();\n const parentRef = useRef<HTMLDivElement>();\n\n // Keep track of map position for reloads\n\n useEffect(() => {\n if (style == null) return;\n if (mapRef.current != null) {\n console.log(\"Setting style\", style);\n mapRef.current.setStyle(style);\n return;\n }\n const map = initializeMap(ref.current, {\n style,\n projection,\n mapPosition,\n ...rest,\n });\n map.on(\"style.load\", () => {\n onStyleLoaded?.(map);\n dispatch({ type: \"set-style-loaded\", payload: true });\n });\n onMapLoaded?.(map);\n dispatch({ type: \"set-map\", payload: map });\n }, [style]);\n\n // Map style updating\n // useEffect(() => {\n // if (mapRef?.current == null || style == null) return;\n // mapRef?.current?.setStyle(style);\n // }, [mapRef.current, style]);\n\n // Set map position if it changes\n // useEffect(() => {\n // const map = mapRef.current;\n // if (map == null || mapPosition == null) return;\n // setMapPosition(map, mapPosition);\n // }, [mapPosition]);\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),\n h(MapResizeManager, { containerRef: ref }),\n h(MapPaddingManager, { containerRef: ref, parentRef, infoMarkerPosition }),\n h(MapTerrainManager, { mapUse3D, terrainSourceID }),\n children,\n ]);\n}\n\nexport function MapTerrainManager({\n mapUse3D,\n terrainSourceID,\n}: {\n mapUse3D?: boolean;\n terrainSourceID?: string;\n}) {\n const mapRef = useMapRef();\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n enable3DTerrain(map, mapUse3D, terrainSourceID);\n }, [mapRef.current, mapUse3D]);\n return null;\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/* 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","// We should merge this with code in @macrostrat/mapbox-react/src/terrain.ts:\n\nexport function enable3DTerrain(\n map,\n shouldEnable: boolean,\n sourceID: string | null = null\n) {\n let demSourceID = sourceID ?? getTerrainSourceID(map) ?? \"mapbox-dem\";\n\n console.log(\"Enabling 3D terrain with source\", demSourceID);\n\n if (!map.style?._loaded) {\n map.once(\"style.load\", () => {\n enable3DTerrain(map, shouldEnable, demSourceID);\n });\n return;\n }\n\n // Enable or disable terrain depending on our current desires...\n const currentTerrain = map.getTerrain();\n if (!shouldEnable) {\n if (currentTerrain != null) map.setTerrain(null);\n return;\n }\n if (currentTerrain != null) return;\n\n // Add a DEM source if one is not found already.\n if (map.getSource(demSourceID) == null) {\n map.addSource(demSourceID, {\n type: \"raster-dem\",\n url: \"mapbox://mapbox.mapbox-terrain-dem-v1\",\n tileSize: 512,\n maxzoom: 14,\n });\n }\n\n // add a sky layer that will show when the map is highly pitched\n if (map.getLayer(\"sky\") == null) {\n map.addLayer({\n id: \"sky\",\n type: \"sky\",\n paint: {\n \"sky-type\": \"atmosphere\",\n \"sky-atmosphere-sun\": [0.0, 0.0],\n \"sky-atmosphere-sun-intensity\": 15,\n },\n });\n }\n\n map.setTerrain({ source: demSourceID, exaggeration: 1 });\n}\n\nfunction getTerrainSourceID(map) {\n for (const [key, source] of Object.entries(map.getStyle().sources)) {\n if (source.type == \"raster-dem\") {\n return key;\n }\n }\n return null;\n}\n",".feature-panel\n position: relative\n overflow-x: hidden\n\n.key-value\n display: inline-block\n margin-right: 1em\n .key\n font-weight: bold\n font-size: 0.9em\n &:after\n content: ': '\n .value\n font-size: 0.9em\n\n.feature-properties\n position: relative\n &:before\n content: \"–\"\n position: absolute\n top: 4px\n left: 0\n\n.feature-header h3\n margin-bottom: 0\n margin-top: 0.5em\n\n.feature-group\n border-bottom: 1px solid var(--panel-rule-inner)\n padding: 0 1em\n margin-left: -1em\n margin-right: -1em\n margin-bottom: 0.5em\n &:last-child\n border-bottom: none\n\n.tile-info\n display: flex\n flex-direction: row\n align-items: baseline\n padding: 0 1em\n h3\n margin-right: 0.5em\n\n.opacity-slider\n margin: 0 1em 0.5em\n :global\n .bp4-slider-handle .bp4-slider-label\n background-color: var(--secondary-color)\n color: var(--text-color)\n\n.unit-number\n .unit\n font-size: 0.9em\n margin-left: 0.2em\n font-weight: bold\n\n.page\n margin: 2em auto\n max-width: 50em\n\n.dev-index-page\n overflow-y: scroll\n","import { useMapConditionalStyle, useMapRef } from \"@macrostrat/mapbox-react\";\nimport { tileToGeoJSON } from \"@mapbox/tilebelt\";\nimport { useCallback } from \"react\";\n\ntype TileIndex = { x: number; y: number; z: number };\n\nexport function TileExtentLayer({\n tile,\n color = \"red\",\n}: {\n tile: TileIndex | null;\n color?: string;\n}) {\n const styleCallback = useCallback(\n (map, val: TileIndex) => {\n const style = map.getStyle();\n if (style.layers == null) return;\n style.layers = style.layers.filter((l) => l.id != \"tile-extent\");\n if (val == null) {\n return map.setStyle(style);\n }\n const { x, y, z } = val;\n const extent = tileToGeoJSON([x, y, z]);\n const source = {\n type: \"geojson\",\n data: extent,\n };\n const layer = {\n id: \"tile-extent\",\n type: \"line\",\n source: \"tile-extent\",\n paint: {\n \"line-color\": color,\n \"line-width\": 2,\n },\n };\n style.sources[\"tile-extent\"] = source;\n style.layers.push(layer);\n map.setStyle(style);\n },\n [color]\n );\n const map = useMapRef();\n useMapConditionalStyle(map, tile, styleCallback);\n return null;\n}\n","import { Spinner, Switch } from \"@blueprintjs/core\";\nimport { useMapRef, useMapStatus } from \"@macrostrat/mapbox-react\";\nimport mapboxgl from \"mapbox-gl\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useEffect, useState } from \"react\";\nimport { JSONView, usePrevious } from \"@macrostrat/ui-components\";\nimport { group } from \"d3-array\";\nimport { ExpansionPanel } from \"../expansion-panel\";\n\nconst h = hyper.styled(styles);\n\nexport function FeatureProperties({ data, ...rest }) {\n return h(\"div.feature-properties\", [\n h(JSONView, {\n data,\n hideRoot: true,\n ...rest,\n }),\n ]);\n}\n\nexport function FeatureRecord({ feature }) {\n const props = feature.properties;\n return h(\"div.feature-record\", [\n h.if(Object.keys(props).length > 0)(FeatureProperties, { data: props }),\n ]);\n}\n\nexport function FeatureSelectionHandler({\n selectedLocation,\n setFeatures,\n radius = 2,\n}: {\n selectedLocation: mapboxgl.LngLat;\n setFeatures: (features: mapboxgl.MapboxGeoJSONFeature[]) => void;\n radius?: number;\n}) {\n const mapRef = useMapRef();\n const { isLoading } = useMapStatus();\n const prevLocation = usePrevious(selectedLocation);\n\n useEffect(() => {\n const map = mapRef?.current;\n if (map == null) return;\n if (selectedLocation == null) {\n setFeatures(null);\n return;\n }\n\n // Don't update if the location hasn't changed\n if (selectedLocation == prevLocation) return;\n\n const r = radius;\n const pt = map.project(selectedLocation);\n\n const bbox: [mapboxgl.PointLike, mapboxgl.PointLike] = [\n [pt.x - r, pt.y - r],\n [pt.x + r, pt.y + r],\n ];\n const features = map.queryRenderedFeatures(bbox);\n setFeatures(features);\n }, [mapRef?.current, selectedLocation, isLoading]);\n\n return null;\n}\n\nfunction FeatureHeader({ feature }) {\n return h(\"div.feature-header\", [\n h(\"h3\", [\n h(KeyValue, { label: \"Source\", value: feature.source }),\n h(KeyValue, { label: \"Source layer\", value: feature.sourceLayer }),\n ]),\n ]);\n}\n\nfunction KeyValue({ label, value }) {\n return h(\"span.key-value\", [h(\"span.key\", label), h(\"code.value\", value)]);\n}\n\nfunction LoadingAwareFeatureSet({ features, sourceID }) {\n const map = useMapRef();\n if (map?.current == null) return null;\n const [isLoaded, setIsLoaded] = useState(false);\n\n const sourceFeatures = features.filter((d) => d.source == \"burwell\");\n\n useEffect(() => {\n if (sourceFeatures.length > 0) {\n setIsLoaded(true);\n return;\n }\n\n const isLoaded = map.current.isSourceLoaded(sourceID);\n setIsLoaded(isLoaded);\n if (!isLoaded) {\n map.current.once(\"sourcedata\", (e) => {\n if (e.sourceId == sourceID) {\n setIsLoaded(true);\n }\n });\n }\n }, [map.current, sourceID, sourceFeatures.length]);\n\n if (!isLoaded) return h(Spinner);\n return h(Features, { features: sourceFeatures });\n}\n\nexport function TileInfo({ feature, showExtent, setShowExtent }) {\n if (feature == null) return null;\n const size = feature._vectorTileFeature._pbf.length;\n return h(\"div.tile-info\", [\n h(\"h3\", \"Tile\"),\n h(\"div.tile-index\", [\n h(KeyValue, { label: \"x\", value: feature._x }),\n h(KeyValue, { label: \"y\", value: feature._y }),\n h(KeyValue, { label: \"z\", value: feature._z }),\n ]),\n h(\"div.spacer\"),\n h(KeyValue, { label: \"Size\", value: formatSize(size) }),\n h(Switch, {\n label: \"Show extent\",\n alignIndicator: \"right\",\n checked: showExtent,\n onChange() {\n setShowExtent(!showExtent);\n },\n }),\n ]);\n}\n\nfunction formatSize(size: number) {\n if (size > 1000000)\n return h(UnitNumber, { value: size / 1000000, unit: \"Mb\" });\n if (size > 1000) return h(UnitNumber, { value: size / 1000, unit: \"Kb\" });\n return `${size} bytes`;\n}\n\nfunction UnitNumber({ value, unit, precision = 1 }) {\n return h(\"span.unit-number\", [\n h(\"span.number\", value.toFixed(precision)),\n h(\"span.unit\", unit),\n ]);\n}\n\nexport function FeaturePanel({\n features,\n focusedSource = null,\n focusedSourceTitle = null,\n}) {\n if (features == null) return null;\n\n let focusedSourcePanel = null;\n let filteredFeatures = features;\n let title = \"Features\";\n\n if (focusedSource != null) {\n title = \"Basemap features\";\n focusedSourcePanel = h(\n ExpansionPanel,\n {\n title: \"Macrostrat features\",\n className: \"macrostrat-features\",\n expanded: true,\n },\n [\n h(LoadingAwareFeatureSet, {\n features,\n sourceID: focusedSource,\n }),\n ]\n );\n filteredFeatures = features.filter((d) => d.source != focusedSource);\n }\n\n return h(\"div.feature-panel\", [\n focusedSourcePanel,\n h(\n ExpansionPanel,\n { title, className: \"basemap-features\", expanded: focusedSource == null },\n [\n h(FeatureGroups, {\n features: filteredFeatures,\n }),\n ]\n ),\n ]);\n}\n\nfunction FeatureGroups({ features }) {\n /** Group features by source and sourceLayer */\n if (features == null) return null;\n\n const groups = group(features, (d) => `${d.source} - ${d.sourceLayer}`);\n\n return h(\n \"div.feature-groups\",\n Array.from(groups).map(([key, features]) => {\n return h(\"div.feature-group\", [\n h(FeatureHeader, { feature: features[0] }),\n h(Features, { features }),\n ]);\n })\n );\n}\n\nexport function Features({ features }) {\n return h(\n \"div.features\",\n features.map((feature, i) => h(FeatureRecord, { key: i, feature }))\n );\n}\n","import { useState } from \"react\";\nimport { Collapse, Icon } from \"@blueprintjs/core\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport classNames from \"classnames\";\nimport { Button } from \"@blueprintjs/core\";\nimport { PanelSubhead } from \"./headers\";\n\nconst h = hyper.styled(styles);\n\nfunction ExpansionPanelSummary(props) {\n const { expanded, children, onChange, className, title, titleComponent } =\n props;\n const icon = expanded ? \"chevron-up\" : \"chevron-down\";\n return h(\n PanelSubhead,\n {\n className: classNames(\"expansion-panel-header\", className),\n onClick: onChange,\n title,\n component: titleComponent,\n },\n [children, h(Icon, { icon })]\n );\n}\n\nfunction ExpansionPanelBase(props) {\n let {\n title,\n titleComponent = \"h3\",\n children,\n expanded,\n helpText,\n onChange = () => {},\n sideComponent = null,\n className,\n } = props;\n const [isOpen, setOpen] = useState(expanded || false);\n\n const onChange_ = () => {\n onChange();\n setOpen(!isOpen);\n };\n\n return h(\n \"div.expansion-panel-base\",\n {\n className: classNames(className, {\n expanded: isOpen,\n collapsed: !isOpen,\n }),\n },\n [\n h(\n ExpansionPanelSummary,\n {\n onChange: onChange_,\n expanded: isOpen,\n title,\n titleComponent,\n },\n h(\"div.expansion-summary-title-help\", [\n h(\"span.expansion-panel-subtext\", helpText),\n \" \",\n sideComponent,\n ])\n ),\n h(Collapse, { isOpen }, h(\"div.expansion-children\", null, children)),\n ]\n );\n}\n\nexport function InfoPanelSection(props) {\n let { title, children, className, headerElement = null } = props;\n return h(\"div.info-panel-section\", { className }, [\n h(\"div.panel-subhead\", null, headerElement ?? h(\"h3\", title)),\n h(\"div.panel-content\", null, children),\n ]);\n}\n\nfunction ExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel\",\n });\n}\n\nfunction SubExpansionPanel(props) {\n return h(ExpansionPanelBase, {\n ...props,\n className: \"expansion-panel sub-expansion-panel\",\n titleComponent: \"h4\",\n });\n}\n\nfunction ExpandableDetailsPanel(props) {\n let { title, children, value, headerElement, className } = props;\n const [isOpen, setIsOpen] = useState(false);\n headerElement ??= h([h(\"div.title\", title), value]);\n return h(\"div.expandable-details\", { className }, [\n h(\"div.expandable-details-main\", [\n h(\"div.expandable-details-header\", headerElement),\n h(\"div.expandable-details-toggle\", [\n h(Button, {\n small: true,\n minimal: true,\n active: isOpen,\n onClick: () => setIsOpen(!isOpen),\n icon: \"more\",\n }),\n ]),\n ]),\n h(\n Collapse,\n { isOpen },\n h(\"div.expandable-details-children\", null, children)\n ),\n ]);\n}\n\nfunction ExpansionBody({ title, className, children }) {\n return h(\"div.expansion-body\", { className }, [\n h(\"div.expansion-panel-detail-header\", title),\n h(\"div.expansion-panel-detail-body\", null, children),\n ]);\n}\n\nexport {\n ExpansionPanel,\n ExpansionPanelSummary,\n ExpandableDetailsPanel,\n SubExpansionPanel,\n ExpansionBody,\n PanelSubhead,\n};\n","\n.panel-subhead\n padding: 0.2em var(--box-horizontal-padding)\n border-top: 1px solid var(--panel-rule-color)\n border-bottom: 1px solid var(--panel-rule-color)\n background-color: var(--accent-color)\n display: flex\n flex-direction: row\n align-items: center\n z-index: 1\n gap: var(--box-horizontal-padding)\n top: -1px\n position: sticky\n h1, h2, h3, h4\n font-family: Montserrat,sans-serif\n font-weight: 700\n margin: 0.2em 0\n h4\n font-weight: 600\n .title\n flex-grow: 1\n\n// :global(.bp4-dark) .panel-subhead\n// margin 0 1px\n\n.expansion-panel\n padding: 0\n flex-wrap: wrap\n margin-top: -1px\n // &.collapsed\n // .expansion-panel-header\n // border-bottom-width: 0;\n\n.sub-expansion-panel\n margin: -1px calc(var(--panel-padding-h) * -0.5) 0\n overflow: hidden\n &:first-child\n .expansion-panel-header\n border-top-width: 0\n .panel-subhead\n border-top: none\n border-bottom: none\n\n .expansion-panel-header\n background-color: var(--accent-secondary-color)\n cursor: pointer\n &:hover\n background-color: var(--accent-secondary-hover-color)\n h2, h3, h4\n font-weight: 500\n border-bottom: 1px solid var(--tertiary-border-color)\n border-top: 1px solid var(--tertiary-border-color)\n margin-top: -1px\n padding: 5px 1em 5px\n align-items: center\n\n.expansion-summary-title-help\n margin-left: 5px\n :global(.bp4-icon)\n margin-left: 5px\n\n.expansion-panel-header\n cursor: pointer\n &:hover\n background-color: var(--accent-hover-color)\n :global(.bp4-icon)\n transform: translate(0,3px)\n\n.expansion-children\n padding: 5px 1em 10px\n .expansion-panel\n margin-left: -1em\n margin-right: -1em\n &:first-child\n margin-top: -5px\n\n.expansion-panel-subtext\n font-size: 85%\n font-weight: 400\n\n:global\n .expansion-panel-root\n padding-left: 15px !important\n\n .expansion-panel-detail\n display: block !important\n padding: 0 !important\n\n .expansion-panel-detail-sub\n display: block !important\n\n// New expandable panel for details\n.expandable-details-main\n display: flex\n flex-direction: row\n align-items: center\n justify-content: space-between\n margin: 3px 0\n\n.expandable-details-header\n display: inline-flex\n flex-direction: row\n align-items: baseline\n flex-grow: 1\n\n.expandable-details-children\n position: relative\n\n.expandable-details-toggle\n :global(.bp4-button)\n font-size: 10px\n\n.expandable-details\n &.macrostrat-unit\n .title:after\n content: none\n .title\n margin-right: 1em\n &:after\n content: \":\"\n\n.expansion-body\n display: inline-block\n //flex-direction row\n align-items: baseline\n background-color: var(--tertiary-background)\n padding: 2px 6px\n border-radius: 4px\n width: 100%\n box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.2)\n margin-bottom: 6px\n\n.expansion-panel-detail-header\n font-size: 90%\n font-style: italic\n margin-right: 1em\n display: inline\n color: var(--secondary-color)\n &:after\n content: \":\"\n\n.expansion-panel-detail-body\n display: inline\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\n\nconst h = hyper.styled(styles);\n\nexport function PanelSubhead(props) {\n const { title, component = \"h3\", children, ...rest } = props;\n return h(\"div.panel-subhead\", rest, [\n h(\n component,\n {\n className: \"title\",\n },\n title\n ),\n children,\n ]);\n}\n"],"names":[],"version":3,"file":"index.cjs.map"}
|