@macrostrat/map-interface 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/container.cjs +7 -4
- package/dist/container.cjs.map +1 -1
- package/dist/container.js +2 -2
- package/dist/container.js.map +1 -1
- package/dist/context-panel/index.cjs +3 -1
- package/dist/context-panel/index.cjs.map +1 -1
- package/dist/context-panel/index.js +2 -2
- package/dist/context-panel/index.js.map +1 -1
- package/dist/context-panel/main.module.sass.cjs +6 -1
- package/dist/context-panel/main.module.sass.cjs.map +1 -1
- package/dist/context-panel/main.module.sass.js +4 -1
- package/dist/context-panel/main.module.sass.js.map +1 -1
- package/dist/controls.cjs +3 -1
- package/dist/controls.cjs.map +1 -1
- package/dist/controls.js +2 -2
- package/dist/controls.js.map +1 -1
- package/dist/dev/main.module.sass.cjs +6 -1
- package/dist/dev/main.module.sass.cjs.map +1 -1
- package/dist/dev/main.module.sass.js +4 -1
- package/dist/dev/main.module.sass.js.map +1 -1
- package/dist/dev/map-page.cjs +5 -2
- package/dist/dev/map-page.cjs.map +1 -1
- package/dist/dev/map-page.js +2 -2
- package/dist/dev/map-page.js.map +1 -1
- package/dist/dev/vector-tile-features.cjs +3 -1
- package/dist/dev/vector-tile-features.cjs.map +1 -1
- package/dist/dev/vector-tile-features.js +2 -2
- package/dist/dev/vector-tile-features.js.map +1 -1
- package/dist/expansion-panel/headers.cjs +3 -1
- package/dist/expansion-panel/headers.cjs.map +1 -1
- package/dist/expansion-panel/headers.js +2 -2
- package/dist/expansion-panel/headers.js.map +1 -1
- package/dist/expansion-panel/index.cjs +6 -3
- package/dist/expansion-panel/index.cjs.map +1 -1
- package/dist/expansion-panel/index.js +2 -2
- package/dist/expansion-panel/index.js.map +1 -1
- package/dist/expansion-panel/main.module.sass.cjs +6 -1
- package/dist/expansion-panel/main.module.sass.cjs.map +1 -1
- package/dist/expansion-panel/main.module.sass.js +4 -1
- package/dist/expansion-panel/main.module.sass.js.map +1 -1
- package/dist/helpers.cjs +4 -2
- package/dist/helpers.cjs.map +1 -1
- package/dist/location-details/fossil-collections/collections.cjs +13 -11
- package/dist/location-details/fossil-collections/collections.cjs.map +1 -1
- package/dist/location-details/fossil-collections/collections.js +2 -2
- package/dist/location-details/fossil-collections/collections.js.map +1 -1
- package/dist/location-details/fossil-collections/index.cjs +3 -1
- package/dist/location-details/fossil-collections/index.cjs.map +1 -1
- package/dist/location-details/fossil-collections/main.module.sass.cjs +6 -2
- package/dist/location-details/fossil-collections/main.module.sass.cjs.map +1 -1
- package/dist/location-details/fossil-collections/main.module.sass.js +4 -1
- package/dist/location-details/fossil-collections/main.module.sass.js.map +1 -1
- package/dist/location-details/info-blocks.cjs +5 -2
- package/dist/location-details/info-blocks.cjs.map +1 -1
- package/dist/location-details/info-blocks.js +2 -2
- package/dist/location-details/info-blocks.js.map +1 -1
- package/dist/location-details/info-blocks.module.sass.cjs +6 -1
- package/dist/location-details/info-blocks.module.sass.cjs.map +1 -1
- package/dist/location-details/info-blocks.module.sass.js +4 -1
- package/dist/location-details/info-blocks.module.sass.js.map +1 -1
- package/dist/location-details/macrostrat-linked.cjs +6 -3
- package/dist/location-details/macrostrat-linked.cjs.map +1 -1
- package/dist/location-details/macrostrat-linked.js +2 -2
- package/dist/location-details/macrostrat-linked.js.map +1 -1
- package/dist/location-details/main.module.sass.cjs +6 -1
- package/dist/location-details/main.module.sass.cjs.map +1 -1
- package/dist/location-details/main.module.sass.js +4 -1
- package/dist/location-details/main.module.sass.js.map +1 -1
- package/dist/location-details/physiography.cjs +7 -5
- package/dist/location-details/physiography.cjs.map +1 -1
- package/dist/location-details/reg-strat.cjs +19 -17
- package/dist/location-details/reg-strat.cjs.map +1 -1
- package/dist/location-details/xdd-panel/article.cjs +14 -12
- package/dist/location-details/xdd-panel/article.cjs.map +1 -1
- package/dist/location-details/xdd-panel/index.cjs +7 -5
- package/dist/location-details/xdd-panel/index.cjs.map +1 -1
- package/dist/location-details/xdd-panel/journal.cjs +4 -2
- package/dist/location-details/xdd-panel/journal.cjs.map +1 -1
- package/dist/location-panel/header.cjs +5 -2
- package/dist/location-panel/header.cjs.map +1 -1
- package/dist/location-panel/header.js +2 -2
- package/dist/location-panel/header.js.map +1 -1
- package/dist/location-panel/index.cjs +6 -3
- package/dist/location-panel/index.cjs.map +1 -1
- package/dist/location-panel/index.js +2 -2
- package/dist/location-panel/index.js.map +1 -1
- package/dist/location-panel/main.module.sass.cjs +6 -1
- package/dist/location-panel/main.module.sass.cjs.map +1 -1
- package/dist/location-panel/main.module.sass.js +4 -1
- package/dist/location-panel/main.module.sass.js.map +1 -1
- package/dist/main.module.sass.cjs +6 -1
- package/dist/main.module.sass.cjs.map +1 -1
- package/dist/main.module.sass.js +4 -1
- package/dist/main.module.sass.js.map +1 -1
- package/dist/map-interface.css +1 -1
- package/dist/map-view.cjs +10 -6
- package/dist/map-view.cjs.map +1 -1
- package/dist/map-view.js +2 -2
- package/dist/map-view.js.map +1 -1
- package/package.json +19 -15
- package/src/location-details/location-details.stories.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-tile-features.js","sources":["../../src/dev/vector-tile-features.ts"],"sourcesContent":["import { Spinner, Switch, Button, Intent } 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 { useCallback, useEffect, useRef, useState } from \"react\";\nimport { JSONView } 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 // Instead of managing hover state with CSS, we use a state variable,\n // so that the button re-renders when the state changes\n const [showControls, setShowControls] = useState(false);\n const onMouseEnter = useCallback(() => setShowControls(true), []);\n const onMouseLeave = useCallback(() => setShowControls(false), []);\n\n return h(\"div.feature-properties\", { onMouseEnter, onMouseLeave }, [\n h.if(showControls)(\"div.controls\", h(CopyJSONButton, { data })),\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\nfunction CopyJSONButton({ data }) {\n const [copied, setCopied] = useState(false);\n return h(Button, {\n icon: copied ? \"tick\" : \"clipboard\",\n intent: copied ? Intent.SUCCESS : Intent.NONE,\n minimal: true,\n small: true,\n onClick() {\n navigator.clipboard.writeText(JSON.stringify(data, null, 2));\n setCopied(true);\n },\n });\n}\n\n/** This component wraps queryRenderedFeatures to get features at a given location */\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((s) => s.isLoading);\n const isInitialized = useMapStatus((s) => s.isInitialized);\n const prevLocation = useRef(null);\n const prevFeatures = useRef([]);\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 if (!isInitialized) return;\n\n const hasPreviouslyLoadedFeatures = prevFeatures.current.length > 0;\n\n const locationMemo = JSON.stringify(selectedLocation);\n if (locationMemo == prevLocation.current && hasPreviouslyLoadedFeatures)\n return;\n\n prevLocation.current = locationMemo;\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 prevFeatures.current = features ?? [];\n setFeatures(features);\n }, [isInitialized, 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: focusedSourceTitle ?? \"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: any) => `${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"],"names":["hyper","isLoaded","features"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vector-tile-features.js","sources":["../../src/dev/vector-tile-features.ts"],"sourcesContent":["import { Spinner, Switch, Button, Intent } 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 { useCallback, useEffect, useRef, useState } from \"react\";\nimport { JSONView } 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 // Instead of managing hover state with CSS, we use a state variable,\n // so that the button re-renders when the state changes\n const [showControls, setShowControls] = useState(false);\n const onMouseEnter = useCallback(() => setShowControls(true), []);\n const onMouseLeave = useCallback(() => setShowControls(false), []);\n\n return h(\"div.feature-properties\", { onMouseEnter, onMouseLeave }, [\n h.if(showControls)(\"div.controls\", h(CopyJSONButton, { data })),\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\nfunction CopyJSONButton({ data }) {\n const [copied, setCopied] = useState(false);\n return h(Button, {\n icon: copied ? \"tick\" : \"clipboard\",\n intent: copied ? Intent.SUCCESS : Intent.NONE,\n minimal: true,\n small: true,\n onClick() {\n navigator.clipboard.writeText(JSON.stringify(data, null, 2));\n setCopied(true);\n },\n });\n}\n\n/** This component wraps queryRenderedFeatures to get features at a given location */\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((s) => s.isLoading);\n const isInitialized = useMapStatus((s) => s.isInitialized);\n const prevLocation = useRef(null);\n const prevFeatures = useRef([]);\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 if (!isInitialized) return;\n\n const hasPreviouslyLoadedFeatures = prevFeatures.current.length > 0;\n\n const locationMemo = JSON.stringify(selectedLocation);\n if (locationMemo == prevLocation.current && hasPreviouslyLoadedFeatures)\n return;\n\n prevLocation.current = locationMemo;\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 prevFeatures.current = features ?? [];\n setFeatures(features);\n }, [isInitialized, 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: focusedSourceTitle ?? \"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: any) => `${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"],"names":["hyper","styles","isLoaded","features"],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const h$1 = require("@macrostrat/hyper");
|
|
4
4
|
const main_module = require("./main.module.sass.cjs");
|
|
5
|
-
const
|
|
5
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
6
|
+
const h__default = /* @__PURE__ */ _interopDefault(h$1);
|
|
7
|
+
const h = h__default.default.styled(main_module.default);
|
|
6
8
|
function PanelSubhead(props) {
|
|
7
9
|
const { title, component = "h3", children, ...rest } = props;
|
|
8
10
|
return h("div.panel-subhead", rest, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.cjs","sources":["../../src/expansion-panel/headers.ts"],"sourcesContent":["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":["hyper","styles"],"mappings":"
|
|
1
|
+
{"version":3,"file":"headers.cjs","sources":["../../src/expansion-panel/headers.ts"],"sourcesContent":["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":["hyper","styles"],"mappings":";;;;;;AAGA,MAAM,IAAIA,WAAAA,QAAM,OAAOC,mBAAM;AAEtB,SAAS,aAAa,OAAO;AAClC,QAAM,EAAE,OAAO,YAAY,MAAM,UAAU,GAAG,SAAS;AACvD,SAAO,EAAE,qBAAqB,MAAM;AAAA,IAClC;AAAA,MACE;AAAA,MACA;AAAA,QACE,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,IAAA;AAAA,IAEF;AAAA,EAAA,CACD;AACH;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import h$1 from "@macrostrat/hyper";
|
|
2
|
-
import
|
|
3
|
-
const h = h$1.styled(
|
|
2
|
+
import h$2 from "./main.module.sass.js";
|
|
3
|
+
const h = h$1.styled(h$2);
|
|
4
4
|
function PanelSubhead(props) {
|
|
5
5
|
const { title, component = "h3", children, ...rest } = props;
|
|
6
6
|
return h("div.panel-subhead", rest, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.js","sources":["../../src/expansion-panel/headers.ts"],"sourcesContent":["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":["hyper"],"mappings":";;AAGA,MAAM,IAAIA,IAAM,
|
|
1
|
+
{"version":3,"file":"headers.js","sources":["../../src/expansion-panel/headers.ts"],"sourcesContent":["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":["hyper","styles"],"mappings":";;AAGA,MAAM,IAAIA,IAAM,OAAOC,GAAM;AAEtB,SAAS,aAAa,OAAO;AAClC,QAAM,EAAE,OAAO,YAAY,MAAM,UAAU,GAAG,SAAS;AACvD,SAAO,EAAE,qBAAqB,MAAM;AAAA,IAClC;AAAA,MACE;AAAA,MACA;AAAA,QACE,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,IAAA;AAAA,IAEF;AAAA,EAAA,CACD;AACH;"}
|
|
@@ -6,14 +6,17 @@ const h$1 = require("@macrostrat/hyper");
|
|
|
6
6
|
const main_module = require("./main.module.sass.cjs");
|
|
7
7
|
const classNames = require("classnames");
|
|
8
8
|
const headers = require("./headers.cjs");
|
|
9
|
-
const
|
|
9
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
10
|
+
const h__default = /* @__PURE__ */ _interopDefault(h$1);
|
|
11
|
+
const classNames__default = /* @__PURE__ */ _interopDefault(classNames);
|
|
12
|
+
const h = h__default.default.styled(main_module.default);
|
|
10
13
|
function ExpansionPanelSummary(props) {
|
|
11
14
|
const { expanded, children, onChange, className, title, titleComponent } = props;
|
|
12
15
|
const icon = expanded ? "chevron-up" : "chevron-down";
|
|
13
16
|
return h(
|
|
14
17
|
headers.PanelSubhead,
|
|
15
18
|
{
|
|
16
|
-
className:
|
|
19
|
+
className: classNames__default.default("expansion-panel-header", className),
|
|
17
20
|
onClick: onChange,
|
|
18
21
|
title,
|
|
19
22
|
component: titleComponent
|
|
@@ -41,7 +44,7 @@ function ExpansionPanelBase(props) {
|
|
|
41
44
|
return h(
|
|
42
45
|
"div.expansion-panel-base",
|
|
43
46
|
{
|
|
44
|
-
className:
|
|
47
|
+
className: classNames__default.default(className, {
|
|
45
48
|
expanded: isOpen,
|
|
46
49
|
collapsed: !isOpen
|
|
47
50
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/expansion-panel/index.ts"],"sourcesContent":["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, className: \"expansion-panel-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"],"names":["hyper","styles","PanelSubhead","Icon","useState","Collapse","Button"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/expansion-panel/index.ts"],"sourcesContent":["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, className: \"expansion-panel-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"],"names":["hyper","styles","PanelSubhead","classNames","Icon","useState","Collapse","Button"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
2
|
import { Button, Collapse, Icon } from "@blueprintjs/core";
|
|
3
3
|
import h$1 from "@macrostrat/hyper";
|
|
4
|
-
import
|
|
4
|
+
import h$2 from "./main.module.sass.js";
|
|
5
5
|
import classNames from "classnames";
|
|
6
6
|
import { PanelSubhead } from "./headers.js";
|
|
7
|
-
const h = h$1.styled(
|
|
7
|
+
const h = h$1.styled(h$2);
|
|
8
8
|
function ExpansionPanelSummary(props) {
|
|
9
9
|
const { expanded, children, onChange, className, title, titleComponent } = props;
|
|
10
10
|
const icon = expanded ? "chevron-up" : "chevron-down";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/expansion-panel/index.ts"],"sourcesContent":["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, className: \"expansion-panel-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"],"names":["hyper"],"mappings":";;;;;;AAQA,MAAM,IAAIA,IAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/expansion-panel/index.ts"],"sourcesContent":["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, className: \"expansion-panel-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"],"names":["hyper","styles"],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const h$1 = require("@macrostrat/hyper");
|
|
4
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
5
|
+
const h__default = /* @__PURE__ */ _interopDefault(h$1);
|
|
3
6
|
const title = "_title_1phba_23";
|
|
4
7
|
const styles = {
|
|
5
8
|
"panel-subhead": "_panel-subhead_1phba_1",
|
|
@@ -22,6 +25,8 @@ const styles = {
|
|
|
22
25
|
"expansion-panel-detail-header": "_expansion-panel-detail-header_1phba_160",
|
|
23
26
|
"expansion-panel-detail-body": "_expansion-panel-detail-body_1phba_171"
|
|
24
27
|
};
|
|
25
|
-
|
|
28
|
+
let h = h__default.default.styled(styles);
|
|
29
|
+
Object.assign(h, styles);
|
|
30
|
+
exports.default = h;
|
|
26
31
|
exports.title = title;
|
|
27
32
|
//# sourceMappingURL=main.module.sass.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.module.sass.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.module.sass.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import h$1 from "@macrostrat/hyper";
|
|
1
2
|
const title = "_title_1phba_23";
|
|
2
3
|
const styles = {
|
|
3
4
|
"panel-subhead": "_panel-subhead_1phba_1",
|
|
@@ -20,8 +21,10 @@ const styles = {
|
|
|
20
21
|
"expansion-panel-detail-header": "_expansion-panel-detail-header_1phba_160",
|
|
21
22
|
"expansion-panel-detail-body": "_expansion-panel-detail-body_1phba_171"
|
|
22
23
|
};
|
|
24
|
+
let h = h$1.styled(styles);
|
|
25
|
+
Object.assign(h, styles);
|
|
23
26
|
export {
|
|
24
|
-
|
|
27
|
+
h as default,
|
|
25
28
|
title
|
|
26
29
|
};
|
|
27
30
|
//# sourceMappingURL=main.module.sass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.module.sass.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.module.sass.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/helpers.cjs
CHANGED
|
@@ -7,6 +7,8 @@ const useResizeObserver = require("use-resize-observer");
|
|
|
7
7
|
const mapboxUtils = require("@macrostrat/mapbox-utils");
|
|
8
8
|
const utils = require("./utils.cjs");
|
|
9
9
|
const uiComponents = require("@macrostrat/ui-components");
|
|
10
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
11
|
+
const useResizeObserver__default = /* @__PURE__ */ _interopDefault(useResizeObserver);
|
|
10
12
|
function MapResizeManager({ containerRef }) {
|
|
11
13
|
const mapRef = mapboxReact.useMapRef();
|
|
12
14
|
const debouncedResize = React.useRef(
|
|
@@ -14,7 +16,7 @@ function MapResizeManager({ containerRef }) {
|
|
|
14
16
|
mapRef.current?.resize();
|
|
15
17
|
}, 100)
|
|
16
18
|
);
|
|
17
|
-
|
|
19
|
+
useResizeObserver__default.default({
|
|
18
20
|
ref: containerRef,
|
|
19
21
|
onResize: debouncedResize.current
|
|
20
22
|
});
|
|
@@ -43,7 +45,7 @@ function MapPaddingManager({
|
|
|
43
45
|
if (map == null) return;
|
|
44
46
|
updateMapPadding();
|
|
45
47
|
}, [mapRef.current]);
|
|
46
|
-
|
|
48
|
+
useResizeObserver__default.default({
|
|
47
49
|
ref: parentRef,
|
|
48
50
|
onResize(sz) {
|
|
49
51
|
updateMapPadding();
|
package/dist/helpers.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.cjs","sources":["../src/helpers.ts"],"sourcesContent":["import {\n useMapRef,\n useMapEaseTo,\n useMapDispatch,\n useMapInitialized,\n} from \"@macrostrat/mapbox-react\";\nimport { useMemo, useRef } from \"react\";\nimport { debounce } from \"underscore\";\nimport useResizeObserver from \"use-resize-observer\";\n\nimport { getMapPosition } from \"@macrostrat/mapbox-utils\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\n\nexport function MapResizeManager({ containerRef }) {\n const mapRef = useMapRef();\n\n const debouncedResize = useRef(\n debounce(() => {\n mapRef.current?.resize();\n }, 100),\n );\n\n useResizeObserver({\n ref: containerRef,\n onResize: debouncedResize.current,\n });\n\n return null;\n}\n\ninterface MapPaddingManagerProps {\n containerRef: React.RefObject<HTMLDivElement>;\n parentRef: React.RefObject<HTMLDivElement>;\n infoMarkerPosition: mapboxgl.LngLatLike;\n debounceTime?: number;\n}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\n debounceTime = 200,\n}: MapPaddingManagerProps) {\n const mapRef = useMapRef();\n\n const [padding, setPadding] = useState(\n getMapPadding(containerRef, parentRef),\n );\n\n const _updateMapPadding = useCallback(() => {\n const newPadding = getMapPadding(containerRef, parentRef);\n setPadding(newPadding);\n }, [containerRef.current, parentRef.current]);\n\n const updateMapPadding = useMemo(\n () => debounce(_updateMapPadding, debounceTime),\n [_updateMapPadding, debounceTime],\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [mapRef.current]);\n\n useResizeObserver({\n ref: parentRef,\n onResize(sz) {\n updateMapPadding();\n },\n round(n) {\n return Math.round(n);\n },\n });\n\n // Ideally, we would not have to do this when we know the infobox is loaded\n useMapEaseTo({ center: infoMarkerPosition, padding });\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n const mapMovedCallback = useCallback(() => {\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = getMapPosition(map);\n dispatch({ type: \"map-moved\", payload: mapPosition });\n onMapMoved?.(mapPosition, map);\n }, [onMapMoved, dispatch, isInitialized]);\n\n useEffect(() => {\n // Get the current value of the map. Useful for gradually moving away\n // from class component\n const map = mapRef.current;\n if (map == null) return;\n // Update the URI when the map moves\n mapMovedCallback();\n const cb = debounce(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return () => {\n map?.off(\"moveend\", cb);\n };\n }, [mapMovedCallback]);\n return null;\n}\n\ninterface MapLoadingReporterProps {\n ignoredSources?: string[];\n onMapLoading?: (evt: mapboxgl.MapEvent) => void;\n onMapIdle?: (evt: mapboxgl.MapEvent) => void;\n mapIsLoading?: boolean;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}: MapLoadingReporterProps) {\n const mapRef = useMapRef();\n const loadingRef = useRef(false);\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n useEffect(() => {\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n\n //let didSendLoading = false;\n\n const loadingCallback = (evt) => {\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n //if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({ type: \"set-loading\", payload: true });\n loadingRef.current = true;\n //didSendLoading = true;\n };\n const idleCallback = (evt) => {\n if (!map.loaded()) return;\n dispatch({ type: \"set-loading\", payload: false });\n loadingRef.current = false;\n onMapIdle?.(evt);\n };\n map.on(\"sourcedataloading\", loadingCallback);\n map.on(\"idle\", idleCallback);\n return () => {\n map?.off(\"sourcedataloading\", loadingCallback);\n map?.off(\"idle\", idleCallback);\n };\n }, [ignoredSources, mapIsLoading, isInitialized]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n const isInitialized = useMapInitialized();\n\n useMapMarker(mapRef, markerRef, position);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null || setPosition == null) return;\n\n const handleMapClick = (event: mapboxgl.MapMouseEvent) => {\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) {\n mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });\n }\n };\n\n map.on(\"click\", handleMapClick);\n\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [setPosition, isInitialized]);\n\n return null;\n}\n\nexport function useBasicMapStyle(\n opts: {\n styleType?: \"macrostrat\" | \"standard\";\n } = {},\n) {\n const { styleType } = opts;\n const inDarkMode = useInDarkMode();\n\n const props = useMemo(() => {\n return { styleType, inDarkMode };\n }, [styleType, inDarkMode]);\n\n return getBasicMapStyle(props);\n}\n\nexport function getBasicMapStyle(opts: {\n styleType?: \"macrostrat\" | \"standard\";\n inDarkMode?: boolean;\n}) {\n const { styleType = \"macrostrat\", inDarkMode = false } = opts ?? {};\n\n if (styleType == \"macrostrat\") {\n return inDarkMode\n ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\"\n : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\";\n } else {\n return inDarkMode\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n }\n}\n\nexport const useBasicStylePair = useBasicMapStyle;\n"],"names":["useMapRef","useRef","debounce","useState","getMapPadding","useCallback","useMemo","useEffect","useMapEaseTo","useMapDispatch","useMapInitialized","getMapPosition","mapIsLoading","useMapMarker","useInDarkMode"],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.cjs","sources":["../src/helpers.ts"],"sourcesContent":["import {\n useMapRef,\n useMapEaseTo,\n useMapDispatch,\n useMapInitialized,\n} from \"@macrostrat/mapbox-react\";\nimport { useMemo, useRef } from \"react\";\nimport { debounce } from \"underscore\";\nimport useResizeObserver from \"use-resize-observer\";\n\nimport { getMapPosition } from \"@macrostrat/mapbox-utils\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { getMapPadding, useMapMarker } from \"./utils\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\n\nexport function MapResizeManager({ containerRef }) {\n const mapRef = useMapRef();\n\n const debouncedResize = useRef(\n debounce(() => {\n mapRef.current?.resize();\n }, 100),\n );\n\n useResizeObserver({\n ref: containerRef,\n onResize: debouncedResize.current,\n });\n\n return null;\n}\n\ninterface MapPaddingManagerProps {\n containerRef: React.RefObject<HTMLDivElement>;\n parentRef: React.RefObject<HTMLDivElement>;\n infoMarkerPosition: mapboxgl.LngLatLike;\n debounceTime?: number;\n}\n\nexport function MapPaddingManager({\n containerRef,\n parentRef,\n infoMarkerPosition,\n debounceTime = 200,\n}: MapPaddingManagerProps) {\n const mapRef = useMapRef();\n\n const [padding, setPadding] = useState(\n getMapPadding(containerRef, parentRef),\n );\n\n const _updateMapPadding = useCallback(() => {\n const newPadding = getMapPadding(containerRef, parentRef);\n setPadding(newPadding);\n }, [containerRef.current, parentRef.current]);\n\n const updateMapPadding = useMemo(\n () => debounce(_updateMapPadding, debounceTime),\n [_updateMapPadding, debounceTime],\n );\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null) return;\n // Update map padding on load\n updateMapPadding();\n }, [mapRef.current]);\n\n useResizeObserver({\n ref: parentRef,\n onResize(sz) {\n updateMapPadding();\n },\n round(n) {\n return Math.round(n);\n },\n });\n\n // Ideally, we would not have to do this when we know the infobox is loaded\n useMapEaseTo({ center: infoMarkerPosition, padding });\n\n return null;\n}\n\nexport function MapMovedReporter({ onMapMoved = null }) {\n const mapRef = useMapRef();\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n const mapMovedCallback = useCallback(() => {\n const map = mapRef.current;\n if (map == null) return;\n const mapPosition = getMapPosition(map);\n dispatch({ type: \"map-moved\", payload: mapPosition });\n onMapMoved?.(mapPosition, map);\n }, [onMapMoved, dispatch, isInitialized]);\n\n useEffect(() => {\n // Get the current value of the map. Useful for gradually moving away\n // from class component\n const map = mapRef.current;\n if (map == null) return;\n // Update the URI when the map moves\n mapMovedCallback();\n const cb = debounce(mapMovedCallback, 100);\n map.on(\"moveend\", cb);\n return () => {\n map?.off(\"moveend\", cb);\n };\n }, [mapMovedCallback]);\n return null;\n}\n\ninterface MapLoadingReporterProps {\n ignoredSources?: string[];\n onMapLoading?: (evt: mapboxgl.MapEvent) => void;\n onMapIdle?: (evt: mapboxgl.MapEvent) => void;\n mapIsLoading?: boolean;\n}\n\nexport function MapLoadingReporter({\n ignoredSources,\n onMapLoading = null,\n onMapIdle = null,\n mapIsLoading,\n}: MapLoadingReporterProps) {\n const mapRef = useMapRef();\n const loadingRef = useRef(false);\n const dispatch = useMapDispatch();\n const isInitialized = useMapInitialized();\n\n useEffect(() => {\n const map = mapRef.current;\n const mapIsLoading = loadingRef.current;\n if (map == null) return;\n\n //let didSendLoading = false;\n\n const loadingCallback = (evt) => {\n if (ignoredSources.includes(evt.sourceId) || mapIsLoading) return;\n //if (didSendLoading) return;\n onMapLoading?.(evt);\n dispatch({ type: \"set-loading\", payload: true });\n loadingRef.current = true;\n //didSendLoading = true;\n };\n const idleCallback = (evt) => {\n if (!map.loaded()) return;\n dispatch({ type: \"set-loading\", payload: false });\n loadingRef.current = false;\n onMapIdle?.(evt);\n };\n map.on(\"sourcedataloading\", loadingCallback);\n map.on(\"idle\", idleCallback);\n return () => {\n map?.off(\"sourcedataloading\", loadingCallback);\n map?.off(\"idle\", idleCallback);\n };\n }, [ignoredSources, mapIsLoading, isInitialized]);\n return null;\n}\n\nexport function MapMarker({ position, setPosition, centerMarker = true }) {\n const mapRef = useMapRef();\n const markerRef = useRef(null);\n const isInitialized = useMapInitialized();\n\n useMapMarker(mapRef, markerRef, position);\n\n useEffect(() => {\n const map = mapRef.current;\n if (map == null || setPosition == null) return;\n\n const handleMapClick = (event: mapboxgl.MapMouseEvent) => {\n setPosition(event.lngLat, event, mapRef.current);\n // We should integrate this with the \"easeToCenter\" hook\n if (centerMarker) {\n mapRef.current?.flyTo({ center: event.lngLat, duration: 800 });\n }\n };\n\n map.on(\"click\", handleMapClick);\n\n return () => {\n map?.off(\"click\", handleMapClick);\n };\n }, [setPosition, isInitialized]);\n\n return null;\n}\n\nexport function useBasicMapStyle(\n opts: {\n styleType?: \"macrostrat\" | \"standard\";\n } = {},\n) {\n const { styleType } = opts;\n const inDarkMode = useInDarkMode();\n\n const props = useMemo(() => {\n return { styleType, inDarkMode };\n }, [styleType, inDarkMode]);\n\n return getBasicMapStyle(props);\n}\n\nexport function getBasicMapStyle(opts: {\n styleType?: \"macrostrat\" | \"standard\";\n inDarkMode?: boolean;\n}) {\n const { styleType = \"macrostrat\", inDarkMode = false } = opts ?? {};\n\n if (styleType == \"macrostrat\") {\n return inDarkMode\n ? \"mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true\"\n : \"mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true\";\n } else {\n return inDarkMode\n ? \"mapbox://styles/mapbox/dark-v10\"\n : \"mapbox://styles/mapbox/light-v10\";\n }\n}\n\nexport const useBasicStylePair = useBasicMapStyle;\n"],"names":["useMapRef","useRef","debounce","useResizeObserver","useState","getMapPadding","useCallback","useMemo","useEffect","useMapEaseTo","useMapDispatch","useMapInitialized","getMapPosition","mapIsLoading","useMapMarker","useInDarkMode"],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
2
|
const React = require("react");
|
|
4
3
|
const core = require("@blueprintjs/core");
|
|
5
4
|
const h$1 = require("@macrostrat/hyper");
|
|
6
5
|
const main_module = require("./main.module.sass.cjs");
|
|
7
6
|
const fossils = require("../utils/fossils.cjs");
|
|
8
|
-
const
|
|
7
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
8
|
+
const React__default = /* @__PURE__ */ _interopDefault(React);
|
|
9
|
+
const h__default = /* @__PURE__ */ _interopDefault(h$1);
|
|
10
|
+
const h = h__default.default.styled(main_module);
|
|
9
11
|
function PBDBCollections({ data }) {
|
|
10
12
|
if (data == null) return null;
|
|
11
13
|
return h(
|
|
@@ -17,13 +19,13 @@ function FossilCollection({ col }) {
|
|
|
17
19
|
let occurrenceTree = fossils.makeOccurrenceTree(col.occurrences);
|
|
18
20
|
return h(
|
|
19
21
|
"div.fossil-collection",
|
|
20
|
-
/* @__PURE__ */
|
|
22
|
+
/* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(Header, { col }), /* @__PURE__ */ React__default.default.createElement(core.Tabs, null, /* @__PURE__ */ React__default.default.createElement(core.Tab, { title: "Info", panel: /* @__PURE__ */ React__default.default.createElement(InfoPanel, { col }), id: "info" }), /* @__PURE__ */ React__default.default.createElement(
|
|
21
23
|
core.Tab,
|
|
22
24
|
{
|
|
23
25
|
id: "occ",
|
|
24
26
|
title: `Occurrences (${col.occurrences.length})`,
|
|
25
27
|
disabled: col.occurrences.length == 0,
|
|
26
|
-
panel: /* @__PURE__ */
|
|
28
|
+
panel: /* @__PURE__ */ React__default.default.createElement(OccurencesPanel, { occurrenceTree })
|
|
27
29
|
}
|
|
28
30
|
)))
|
|
29
31
|
);
|
|
@@ -50,19 +52,19 @@ function Header({ col }) {
|
|
|
50
52
|
}
|
|
51
53
|
function InfoPanel(props) {
|
|
52
54
|
const { col } = props;
|
|
53
|
-
return /* @__PURE__ */
|
|
55
|
+
return /* @__PURE__ */ React__default.default.createElement("div", null, col.oei && /* @__PURE__ */ React__default.default.createElement("div", { className: "map-source-attr" }, /* @__PURE__ */ React__default.default.createElement("span", { className: "attr" }, "Age: "), " ", col.oei, " (", col.lag, " - ", col.lag, /* @__PURE__ */ React__default.default.createElement("span", { className: "age-chip-ma" }, "Ma"), ")"), col.sgr && /* @__PURE__ */ React__default.default.createElement("div", { className: "map-source-attr" }, /* @__PURE__ */ React__default.default.createElement("span", { className: "attr" }, "Group: "), " ", col.sgr), col.sfm && /* @__PURE__ */ React__default.default.createElement("div", { className: "map-source-attr" }, /* @__PURE__ */ React__default.default.createElement("span", { className: "attr" }, "Formation: "), " ", col.sfm), col.lt1 && /* @__PURE__ */ React__default.default.createElement("div", { className: "map-source-attr" }, /* @__PURE__ */ React__default.default.createElement("span", { className: "attr" }, "Lithology: "), " ", col.la1 ? col.la1 : "", " ", col.lf1 ? col.lf1 : "", " ", col.lt1.replace('"', ""), " ", col.lt2 ? ", " : "", col.la2 ? col.la2 : "", " ", col.lf2 ? col.lf2 : "", " ", col.lt2), col.env && /* @__PURE__ */ React__default.default.createElement("div", { className: "map-source-attr" }, /* @__PURE__ */ React__default.default.createElement("span", { className: "attr" }, "Environment: "), " ", col.env), col.ref && /* @__PURE__ */ React__default.default.createElement("div", { className: "reference map-source-attr" }, /* @__PURE__ */ React__default.default.createElement("span", { className: "attr" }, "Reference: "), " ", /* @__PURE__ */ React__default.default.createElement("span", { dangerouslySetInnerHTML: { __html: col.ref } })));
|
|
54
56
|
}
|
|
55
57
|
function OccurencesPanel(props) {
|
|
56
58
|
const { occurrenceTree } = props;
|
|
57
|
-
return /* @__PURE__ */
|
|
58
|
-
return /* @__PURE__ */
|
|
59
|
-
return /* @__PURE__ */
|
|
60
|
-
return /* @__PURE__ */
|
|
61
|
-
return /* @__PURE__ */
|
|
59
|
+
return /* @__PURE__ */ React__default.default.createElement("div", null, /* @__PURE__ */ React__default.default.createElement("ul", { className: "taxon-list phylum-list" }, occurrenceTree.phyla.map((phylum, pidx) => {
|
|
60
|
+
return /* @__PURE__ */ React__default.default.createElement("div", { key: pidx, className: "phyla" }, /* @__PURE__ */ React__default.default.createElement("li", null, phylum.phylum), /* @__PURE__ */ React__default.default.createElement("ul", { className: "taxon-list" }, phylum.classes.map((cls, clsidx) => {
|
|
61
|
+
return /* @__PURE__ */ React__default.default.createElement("div", { key: clsidx, className: "classes" }, /* @__PURE__ */ React__default.default.createElement("li", null, cls.nameClass), /* @__PURE__ */ React__default.default.createElement("ul", { className: "taxon-list" }, cls.families.map((family, familyidx) => {
|
|
62
|
+
return /* @__PURE__ */ React__default.default.createElement("div", { key: familyidx, className: "families" }, /* @__PURE__ */ React__default.default.createElement("li", null, family.family), /* @__PURE__ */ React__default.default.createElement("ul", { className: "taxon-list genera" }, family.genera.map((genus, genusidx) => {
|
|
63
|
+
return /* @__PURE__ */ React__default.default.createElement("li", { key: genusidx }, genus.old_name ? '"' + genus.old_name + '" - ' : "", genus.genusRes ? genus.genusRes : " ", genus.display_name1, /* @__PURE__ */ React__default.default.createElement("i", null, genus.display_name2 ? genus.display_name2 : "", genus.display_name3 ? genus.display_name3 : ""));
|
|
62
64
|
})));
|
|
63
65
|
})));
|
|
64
66
|
})));
|
|
65
67
|
})));
|
|
66
68
|
}
|
|
67
|
-
exports
|
|
69
|
+
module.exports = PBDBCollections;
|
|
68
70
|
//# sourceMappingURL=collections.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.cjs","sources":["../../../src/location-details/fossil-collections/collections.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tabs, Tab } from \"@blueprintjs/core\";\nimport { makeOccurrenceTree } from \"../utils\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nconst h = hyper.styled(styles);\n\nexport default function PBDBCollections({ data }) {\n if (data == null) return null;\n return h(\n \"div.collections\",\n data.map((col, ix) => h(FossilCollection, { key: ix, col })),\n );\n}\n\nfunction FossilCollection({ col }) {\n let occurrenceTree = makeOccurrenceTree(col.occurrences);\n return h(\n \"div.fossil-collection\",\n <>\n <Header col={col} />\n <Tabs>\n <Tab title=\"Info\" panel={<InfoPanel col={col} />} id=\"info\" />\n <Tab\n id=\"occ\"\n title={`Occurrences (${col.occurrences.length})`}\n disabled={col.occurrences.length == 0}\n panel={<OccurencesPanel occurrenceTree={occurrenceTree} />}\n />\n </Tabs>\n </>,\n );\n}\n\nfunction CollectionNumber({ col }) {\n const num = col.oid.replace(\"col:\", \"\");\n return h(\"div.collection-number\", [\n h(\"span.collection-number-prefix\", \"#\"),\n h(\n \"a\",\n {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${num}`,\n target: \"_blank\",\n },\n num,\n ),\n ]);\n}\n\nfunction Header({ col }) {\n return h(\"div.pbdb-panel-header\", [\n h.if(col.nam)(\"h4\", {}, col.nam),\n h.if(col.oid)(CollectionNumber, { col }),\n ]);\n}\n\nfunction InfoPanel(props) {\n const { col } = props;\n\n return (\n <div>\n {col.oei && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Age: </span> {col.oei} ({col.lag} - {col.lag}\n <span className=\"age-chip-ma\">Ma</span>)\n </div>\n )}\n {col.sgr && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Group: </span> {col.sgr}\n </div>\n )}\n {col.sfm && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Formation: </span> {col.sfm}\n </div>\n )}\n {col.lt1 && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Lithology: </span> {col.la1 ? col.la1 : \"\"}{\" \"}\n {col.lf1 ? col.lf1 : \"\"} {col.lt1.replace('\"', \"\")}{\" \"}\n {col.lt2 ? \", \" : \"\"}\n {col.la2 ? col.la2 : \"\"} {col.lf2 ? col.lf2 : \"\"} {col.lt2}\n </div>\n )}\n {col.env && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Environment: </span> {col.env}\n </div>\n )}\n {col.ref && (\n <div className=\"reference map-source-attr\">\n <span className=\"attr\">Reference: </span>{\" \"}\n <span dangerouslySetInnerHTML={{ __html: col.ref }}></span>\n </div>\n )}\n </div>\n );\n}\n\nfunction OccurencesPanel(props) {\n const { occurrenceTree } = props;\n\n return (\n <div>\n <ul className=\"taxon-list phylum-list\">\n {occurrenceTree.phyla.map((phylum, pidx) => {\n return (\n <div key={pidx} className=\"phyla\">\n <li>{phylum.phylum}</li>\n <ul className=\"taxon-list\">\n {phylum.classes.map((cls, clsidx) => {\n return (\n <div key={clsidx} className=\"classes\">\n <li>{cls.nameClass}</li>\n <ul className=\"taxon-list\">\n {cls.families.map((family, familyidx) => {\n return (\n <div key={familyidx} className=\"families\">\n <li>{family.family}</li>\n <ul className=\"taxon-list genera\">\n {family.genera.map((genus, genusidx) => {\n return (\n <li key={genusidx}>\n {genus.old_name\n ? '\"' + genus.old_name + '\" - '\n : \"\"}\n {genus.genusRes ? genus.genusRes : \" \"}\n {genus.display_name1}\n <i>\n {genus.display_name2\n ? genus.display_name2\n : \"\"}\n {genus.display_name3\n ? genus.display_name3\n : \"\"}\n </i>\n </li>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n}\n"],"names":["hyper","styles","makeOccurrenceTree","Tabs","Tab"],"mappings":"
|
|
1
|
+
{"version":3,"file":"collections.cjs","sources":["../../../src/location-details/fossil-collections/collections.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tabs, Tab } from \"@blueprintjs/core\";\nimport { makeOccurrenceTree } from \"../utils\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nconst h = hyper.styled(styles);\n\nexport default function PBDBCollections({ data }) {\n if (data == null) return null;\n return h(\n \"div.collections\",\n data.map((col, ix) => h(FossilCollection, { key: ix, col })),\n );\n}\n\nfunction FossilCollection({ col }) {\n let occurrenceTree = makeOccurrenceTree(col.occurrences);\n return h(\n \"div.fossil-collection\",\n <>\n <Header col={col} />\n <Tabs>\n <Tab title=\"Info\" panel={<InfoPanel col={col} />} id=\"info\" />\n <Tab\n id=\"occ\"\n title={`Occurrences (${col.occurrences.length})`}\n disabled={col.occurrences.length == 0}\n panel={<OccurencesPanel occurrenceTree={occurrenceTree} />}\n />\n </Tabs>\n </>,\n );\n}\n\nfunction CollectionNumber({ col }) {\n const num = col.oid.replace(\"col:\", \"\");\n return h(\"div.collection-number\", [\n h(\"span.collection-number-prefix\", \"#\"),\n h(\n \"a\",\n {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${num}`,\n target: \"_blank\",\n },\n num,\n ),\n ]);\n}\n\nfunction Header({ col }) {\n return h(\"div.pbdb-panel-header\", [\n h.if(col.nam)(\"h4\", {}, col.nam),\n h.if(col.oid)(CollectionNumber, { col }),\n ]);\n}\n\nfunction InfoPanel(props) {\n const { col } = props;\n\n return (\n <div>\n {col.oei && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Age: </span> {col.oei} ({col.lag} - {col.lag}\n <span className=\"age-chip-ma\">Ma</span>)\n </div>\n )}\n {col.sgr && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Group: </span> {col.sgr}\n </div>\n )}\n {col.sfm && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Formation: </span> {col.sfm}\n </div>\n )}\n {col.lt1 && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Lithology: </span> {col.la1 ? col.la1 : \"\"}{\" \"}\n {col.lf1 ? col.lf1 : \"\"} {col.lt1.replace('\"', \"\")}{\" \"}\n {col.lt2 ? \", \" : \"\"}\n {col.la2 ? col.la2 : \"\"} {col.lf2 ? col.lf2 : \"\"} {col.lt2}\n </div>\n )}\n {col.env && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Environment: </span> {col.env}\n </div>\n )}\n {col.ref && (\n <div className=\"reference map-source-attr\">\n <span className=\"attr\">Reference: </span>{\" \"}\n <span dangerouslySetInnerHTML={{ __html: col.ref }}></span>\n </div>\n )}\n </div>\n );\n}\n\nfunction OccurencesPanel(props) {\n const { occurrenceTree } = props;\n\n return (\n <div>\n <ul className=\"taxon-list phylum-list\">\n {occurrenceTree.phyla.map((phylum, pidx) => {\n return (\n <div key={pidx} className=\"phyla\">\n <li>{phylum.phylum}</li>\n <ul className=\"taxon-list\">\n {phylum.classes.map((cls, clsidx) => {\n return (\n <div key={clsidx} className=\"classes\">\n <li>{cls.nameClass}</li>\n <ul className=\"taxon-list\">\n {cls.families.map((family, familyidx) => {\n return (\n <div key={familyidx} className=\"families\">\n <li>{family.family}</li>\n <ul className=\"taxon-list genera\">\n {family.genera.map((genus, genusidx) => {\n return (\n <li key={genusidx}>\n {genus.old_name\n ? '\"' + genus.old_name + '\" - '\n : \"\"}\n {genus.genusRes ? genus.genusRes : \" \"}\n {genus.display_name1}\n <i>\n {genus.display_name2\n ? genus.display_name2\n : \"\"}\n {genus.display_name3\n ? genus.display_name3\n : \"\"}\n </i>\n </li>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n}\n"],"names":["hyper","styles","makeOccurrenceTree","React","Tabs","Tab"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Tabs, Tab } from "@blueprintjs/core";
|
|
3
3
|
import h$1 from "@macrostrat/hyper";
|
|
4
|
-
import
|
|
4
|
+
import h$2 from "./main.module.sass.js";
|
|
5
5
|
import { makeOccurrenceTree } from "../utils/fossils.js";
|
|
6
|
-
const h = h$1.styled(
|
|
6
|
+
const h = h$1.styled(h$2);
|
|
7
7
|
function PBDBCollections({ data }) {
|
|
8
8
|
if (data == null) return null;
|
|
9
9
|
return h(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sources":["../../../src/location-details/fossil-collections/collections.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tabs, Tab } from \"@blueprintjs/core\";\nimport { makeOccurrenceTree } from \"../utils\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nconst h = hyper.styled(styles);\n\nexport default function PBDBCollections({ data }) {\n if (data == null) return null;\n return h(\n \"div.collections\",\n data.map((col, ix) => h(FossilCollection, { key: ix, col })),\n );\n}\n\nfunction FossilCollection({ col }) {\n let occurrenceTree = makeOccurrenceTree(col.occurrences);\n return h(\n \"div.fossil-collection\",\n <>\n <Header col={col} />\n <Tabs>\n <Tab title=\"Info\" panel={<InfoPanel col={col} />} id=\"info\" />\n <Tab\n id=\"occ\"\n title={`Occurrences (${col.occurrences.length})`}\n disabled={col.occurrences.length == 0}\n panel={<OccurencesPanel occurrenceTree={occurrenceTree} />}\n />\n </Tabs>\n </>,\n );\n}\n\nfunction CollectionNumber({ col }) {\n const num = col.oid.replace(\"col:\", \"\");\n return h(\"div.collection-number\", [\n h(\"span.collection-number-prefix\", \"#\"),\n h(\n \"a\",\n {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${num}`,\n target: \"_blank\",\n },\n num,\n ),\n ]);\n}\n\nfunction Header({ col }) {\n return h(\"div.pbdb-panel-header\", [\n h.if(col.nam)(\"h4\", {}, col.nam),\n h.if(col.oid)(CollectionNumber, { col }),\n ]);\n}\n\nfunction InfoPanel(props) {\n const { col } = props;\n\n return (\n <div>\n {col.oei && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Age: </span> {col.oei} ({col.lag} - {col.lag}\n <span className=\"age-chip-ma\">Ma</span>)\n </div>\n )}\n {col.sgr && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Group: </span> {col.sgr}\n </div>\n )}\n {col.sfm && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Formation: </span> {col.sfm}\n </div>\n )}\n {col.lt1 && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Lithology: </span> {col.la1 ? col.la1 : \"\"}{\" \"}\n {col.lf1 ? col.lf1 : \"\"} {col.lt1.replace('\"', \"\")}{\" \"}\n {col.lt2 ? \", \" : \"\"}\n {col.la2 ? col.la2 : \"\"} {col.lf2 ? col.lf2 : \"\"} {col.lt2}\n </div>\n )}\n {col.env && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Environment: </span> {col.env}\n </div>\n )}\n {col.ref && (\n <div className=\"reference map-source-attr\">\n <span className=\"attr\">Reference: </span>{\" \"}\n <span dangerouslySetInnerHTML={{ __html: col.ref }}></span>\n </div>\n )}\n </div>\n );\n}\n\nfunction OccurencesPanel(props) {\n const { occurrenceTree } = props;\n\n return (\n <div>\n <ul className=\"taxon-list phylum-list\">\n {occurrenceTree.phyla.map((phylum, pidx) => {\n return (\n <div key={pidx} className=\"phyla\">\n <li>{phylum.phylum}</li>\n <ul className=\"taxon-list\">\n {phylum.classes.map((cls, clsidx) => {\n return (\n <div key={clsidx} className=\"classes\">\n <li>{cls.nameClass}</li>\n <ul className=\"taxon-list\">\n {cls.families.map((family, familyidx) => {\n return (\n <div key={familyidx} className=\"families\">\n <li>{family.family}</li>\n <ul className=\"taxon-list genera\">\n {family.genera.map((genus, genusidx) => {\n return (\n <li key={genusidx}>\n {genus.old_name\n ? '\"' + genus.old_name + '\" - '\n : \"\"}\n {genus.genusRes ? genus.genusRes : \" \"}\n {genus.display_name1}\n <i>\n {genus.display_name2\n ? genus.display_name2\n : \"\"}\n {genus.display_name3\n ? genus.display_name3\n : \"\"}\n </i>\n </li>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n}\n"],"names":["hyper"],"mappings":";;;;;AAKA,MAAM,IAAIA,IAAM,
|
|
1
|
+
{"version":3,"file":"collections.js","sources":["../../../src/location-details/fossil-collections/collections.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tabs, Tab } from \"@blueprintjs/core\";\nimport { makeOccurrenceTree } from \"../utils\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nconst h = hyper.styled(styles);\n\nexport default function PBDBCollections({ data }) {\n if (data == null) return null;\n return h(\n \"div.collections\",\n data.map((col, ix) => h(FossilCollection, { key: ix, col })),\n );\n}\n\nfunction FossilCollection({ col }) {\n let occurrenceTree = makeOccurrenceTree(col.occurrences);\n return h(\n \"div.fossil-collection\",\n <>\n <Header col={col} />\n <Tabs>\n <Tab title=\"Info\" panel={<InfoPanel col={col} />} id=\"info\" />\n <Tab\n id=\"occ\"\n title={`Occurrences (${col.occurrences.length})`}\n disabled={col.occurrences.length == 0}\n panel={<OccurencesPanel occurrenceTree={occurrenceTree} />}\n />\n </Tabs>\n </>,\n );\n}\n\nfunction CollectionNumber({ col }) {\n const num = col.oid.replace(\"col:\", \"\");\n return h(\"div.collection-number\", [\n h(\"span.collection-number-prefix\", \"#\"),\n h(\n \"a\",\n {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${num}`,\n target: \"_blank\",\n },\n num,\n ),\n ]);\n}\n\nfunction Header({ col }) {\n return h(\"div.pbdb-panel-header\", [\n h.if(col.nam)(\"h4\", {}, col.nam),\n h.if(col.oid)(CollectionNumber, { col }),\n ]);\n}\n\nfunction InfoPanel(props) {\n const { col } = props;\n\n return (\n <div>\n {col.oei && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Age: </span> {col.oei} ({col.lag} - {col.lag}\n <span className=\"age-chip-ma\">Ma</span>)\n </div>\n )}\n {col.sgr && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Group: </span> {col.sgr}\n </div>\n )}\n {col.sfm && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Formation: </span> {col.sfm}\n </div>\n )}\n {col.lt1 && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Lithology: </span> {col.la1 ? col.la1 : \"\"}{\" \"}\n {col.lf1 ? col.lf1 : \"\"} {col.lt1.replace('\"', \"\")}{\" \"}\n {col.lt2 ? \", \" : \"\"}\n {col.la2 ? col.la2 : \"\"} {col.lf2 ? col.lf2 : \"\"} {col.lt2}\n </div>\n )}\n {col.env && (\n <div className=\"map-source-attr\">\n <span className=\"attr\">Environment: </span> {col.env}\n </div>\n )}\n {col.ref && (\n <div className=\"reference map-source-attr\">\n <span className=\"attr\">Reference: </span>{\" \"}\n <span dangerouslySetInnerHTML={{ __html: col.ref }}></span>\n </div>\n )}\n </div>\n );\n}\n\nfunction OccurencesPanel(props) {\n const { occurrenceTree } = props;\n\n return (\n <div>\n <ul className=\"taxon-list phylum-list\">\n {occurrenceTree.phyla.map((phylum, pidx) => {\n return (\n <div key={pidx} className=\"phyla\">\n <li>{phylum.phylum}</li>\n <ul className=\"taxon-list\">\n {phylum.classes.map((cls, clsidx) => {\n return (\n <div key={clsidx} className=\"classes\">\n <li>{cls.nameClass}</li>\n <ul className=\"taxon-list\">\n {cls.families.map((family, familyidx) => {\n return (\n <div key={familyidx} className=\"families\">\n <li>{family.family}</li>\n <ul className=\"taxon-list genera\">\n {family.genera.map((genus, genusidx) => {\n return (\n <li key={genusidx}>\n {genus.old_name\n ? '\"' + genus.old_name + '\" - '\n : \"\"}\n {genus.genusRes ? genus.genusRes : \" \"}\n {genus.display_name1}\n <i>\n {genus.display_name2\n ? genus.display_name2\n : \"\"}\n {genus.display_name3\n ? genus.display_name3\n : \"\"}\n </i>\n </li>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n })}\n </ul>\n </div>\n );\n}\n"],"names":["hyper","styles"],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const h = require("@macrostrat/hyper");
|
|
4
4
|
const collections = require("./collections.cjs");
|
|
5
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
6
|
+
const h__default = /* @__PURE__ */ _interopDefault(h);
|
|
5
7
|
function FossilCollections(props) {
|
|
6
8
|
const { data, expanded = false } = props;
|
|
7
9
|
if (!data || data.length <= 0) {
|
|
8
10
|
return null;
|
|
9
11
|
}
|
|
10
|
-
return
|
|
12
|
+
return h__default.default(collections, { data });
|
|
11
13
|
}
|
|
12
14
|
exports.FossilCollections = FossilCollections;
|
|
13
15
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../src/location-details/fossil-collections/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport PBDBCollections from \"./collections\";\n\nexport function FossilCollections(props) {\n const { data, expanded = false } = props;\n\n if (!data || data.length <= 0) {\n return null;\n }\n return h(PBDBCollections, { data });\n}\n"],"names":["PBDBCollections"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/location-details/fossil-collections/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport PBDBCollections from \"./collections\";\n\nexport function FossilCollections(props) {\n const { data, expanded = false } = props;\n\n if (!data || data.length <= 0) {\n return null;\n }\n return h(PBDBCollections, { data });\n}\n"],"names":["h","PBDBCollections"],"mappings":";;;;;;AAGO,SAAS,kBAAkB,OAAO;AACvC,QAAM,EAAE,MAAM,WAAW,MAAA,IAAU;AAEnC,MAAI,CAAC,QAAQ,KAAK,UAAU,GAAG;AAC7B,WAAO;AAAA,EACT;AACA,SAAOA,mBAAEC,aAAiB,EAAE,MAAM;AACpC;;"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
const h$1 = require("@macrostrat/hyper");
|
|
3
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
4
|
+
const h__default = /* @__PURE__ */ _interopDefault(h$1);
|
|
3
5
|
const styles = {
|
|
4
6
|
"pbdb-panel-header": "_pbdb-panel-header_i4zn4_1",
|
|
5
7
|
"fossil-collection": "_fossil-collection_i4zn4_14"
|
|
6
8
|
};
|
|
7
|
-
|
|
9
|
+
let h = h__default.default.styled(styles);
|
|
10
|
+
Object.assign(h, styles);
|
|
11
|
+
module.exports = h;
|
|
8
12
|
//# sourceMappingURL=main.module.sass.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.module.sass.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.module.sass.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import h$1 from "@macrostrat/hyper";
|
|
1
2
|
const styles = {
|
|
2
3
|
"pbdb-panel-header": "_pbdb-panel-header_i4zn4_1",
|
|
3
4
|
"fossil-collection": "_fossil-collection_i4zn4_14"
|
|
4
5
|
};
|
|
6
|
+
let h = h$1.styled(styles);
|
|
7
|
+
Object.assign(h, styles);
|
|
5
8
|
export {
|
|
6
|
-
|
|
9
|
+
h as default
|
|
7
10
|
};
|
|
8
11
|
//# sourceMappingURL=main.module.sass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.module.sass.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.module.sass.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|