@macrostrat/column-views 1.0.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/esm/_shared.f7eec55a.js +9 -0
- package/dist/esm/_shared.f7eec55a.js.map +1 -0
- package/dist/esm/age-axis.4a8cf5e6.js +98 -0
- package/dist/esm/age-axis.4a8cf5e6.js.map +1 -0
- package/dist/esm/age-axis.module.03773a80.css +33 -0
- package/dist/esm/age-axis.module.03773a80.css.map +1 -0
- package/dist/esm/age-axis.module.3cc91335.js +22 -0
- package/dist/esm/age-axis.module.3cc91335.js.map +1 -0
- package/dist/esm/age-model-overlay.c7226855.js +57 -0
- package/dist/esm/age-model-overlay.c7226855.js.map +1 -0
- package/dist/esm/age-model-overlay.module.5d9e78fb.css +14 -0
- package/dist/esm/age-model-overlay.module.5d9e78fb.css.map +1 -0
- package/dist/esm/age-model-overlay.module.cd985dcb.js +16 -0
- package/dist/esm/age-model-overlay.module.cd985dcb.js.map +1 -0
- package/dist/esm/base.910b80b4.js +288 -0
- package/dist/esm/base.910b80b4.js.map +1 -0
- package/dist/esm/boxes.8292cff2.js +258 -0
- package/dist/esm/boxes.8292cff2.js.map +1 -0
- package/dist/esm/boxes.module.2b5fb18e.css +26 -0
- package/dist/esm/boxes.module.2b5fb18e.css.map +1 -0
- package/dist/esm/boxes.module.4ebc7796.js +19 -0
- package/dist/esm/boxes.module.4ebc7796.js.map +1 -0
- package/dist/esm/{carbon-isotopes.3b502a9e.js → carbon-isotopes.10db8285.js} +2 -2
- package/dist/esm/{carbon-isotopes.3b502a9e.js.map → carbon-isotopes.10db8285.js.map} +1 -1
- package/dist/esm/colors.395c6db5.js +40 -0
- package/dist/esm/colors.395c6db5.js.map +1 -0
- package/dist/esm/column-correlation.c8dcfe98.js +9 -0
- package/dist/esm/column-correlation.c8dcfe98.js.map +1 -0
- package/dist/esm/column-nav.5414677c.js +55 -0
- package/dist/esm/column-nav.5414677c.js.map +1 -0
- package/dist/esm/column-navigation.37cd3245.js +9 -0
- package/dist/esm/column-navigation.37cd3245.js.map +1 -0
- package/dist/esm/column.01d68dd8.js +127 -0
- package/dist/esm/column.01d68dd8.js.map +1 -0
- package/dist/esm/{column.db058031.js → column.a25f8ebd.js} +4 -4
- package/dist/esm/column.a25f8ebd.js.map +1 -0
- package/dist/esm/column.module.1b776e15.js +46 -0
- package/dist/esm/column.module.1b776e15.js.map +1 -0
- package/dist/esm/column.module.a67a6b4c.css +159 -0
- package/dist/esm/column.module.a67a6b4c.css.map +1 -0
- package/dist/esm/composite-scale.577bf64a.js +222 -0
- package/dist/esm/composite-scale.577bf64a.js.map +1 -0
- package/dist/esm/composite.039e4798.js +163 -0
- package/dist/esm/composite.039e4798.js.map +1 -0
- package/dist/esm/{core.4db8e452.js → core.843310d3.js} +11 -12
- package/dist/esm/core.843310d3.js.map +1 -0
- package/dist/esm/core.91ede078.js +206 -0
- package/dist/esm/core.91ede078.js.map +1 -0
- package/dist/esm/correlation-chart.abd8b346.js +9 -0
- package/dist/esm/correlation-chart.abd8b346.js.map +1 -0
- package/dist/esm/data-provider.1506eb64.js.map +1 -1
- package/dist/esm/data-provider.f10c6d0b.js +13 -0
- package/dist/esm/data-provider.f10c6d0b.js.map +1 -0
- package/dist/esm/fetch.99aec438.js +152 -0
- package/dist/esm/fetch.99aec438.js.map +1 -0
- package/dist/esm/hash-string.285b37fb.js +39 -0
- package/dist/esm/hash-string.285b37fb.js.map +1 -0
- package/dist/esm/helpers.2f0a0cb7.js +141 -0
- package/dist/esm/helpers.2f0a0cb7.js.map +1 -0
- package/dist/esm/index.d.ts +797 -130
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +13 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inset-map.3c18106d.js +66 -0
- package/dist/esm/inset-map.3c18106d.js.map +1 -0
- package/dist/esm/keyboard-navigation.6713401b.js +48 -0
- package/dist/esm/keyboard-navigation.6713401b.js.map +1 -0
- package/dist/esm/keyboard-navigation.a9fc80dd.js +112 -0
- package/dist/esm/keyboard-navigation.a9fc80dd.js.map +1 -0
- package/dist/esm/layers.033d3fb0.js +170 -0
- package/dist/esm/layers.033d3fb0.js.map +1 -0
- package/dist/esm/main.2e0375a5.js +221 -0
- package/dist/esm/main.2e0375a5.js.map +1 -0
- package/dist/esm/main.module.3dd9500b.css +134 -0
- package/dist/esm/main.module.3dd9500b.css.map +1 -0
- package/dist/esm/main.module.c09154b1.js +70 -0
- package/dist/esm/main.module.c09154b1.js.map +1 -0
- package/dist/esm/mapbox.cac42eed.js +167 -0
- package/dist/esm/mapbox.cac42eed.js.map +1 -0
- package/dist/esm/maps.bcdea9c1.js +11 -0
- package/dist/esm/maps.bcdea9c1.js.map +1 -0
- package/dist/esm/{names.f6a4e9a4.js → names.a8f2b452.js} +5 -5
- package/dist/esm/names.a8f2b452.js.map +1 -0
- package/dist/esm/panel.598f76a5.js +420 -0
- package/dist/esm/panel.598f76a5.js.map +1 -0
- package/dist/esm/panel.module.386166cc.js +58 -0
- package/dist/esm/panel.module.386166cc.js.map +1 -0
- package/dist/esm/panel.module.3d2ea3c6.css +111 -0
- package/dist/esm/panel.module.3d2ea3c6.css.map +1 -0
- package/dist/esm/popover.a810b7bc.js +66 -0
- package/dist/esm/popover.a810b7bc.js.map +1 -0
- package/dist/esm/popover.module.c4ba4189.js +22 -0
- package/dist/esm/popover.module.c4ba4189.js.map +1 -0
- package/dist/esm/{selection-popover.module.0a701258.css → popover.module.c4d6bfb0.css} +11 -8
- package/dist/esm/popover.module.c4d6bfb0.css.map +1 -0
- package/dist/esm/prepare-data.d4284b4a.js +125 -0
- package/dist/esm/prepare-data.d4284b4a.js.map +1 -0
- package/dist/esm/prepare-units.6c890a96.js +104 -0
- package/dist/esm/prepare-units.6c890a96.js.map +1 -0
- package/dist/esm/{resolvers.b5c82b78.js → resolvers.36013b49.js} +13 -2
- package/dist/esm/resolvers.36013b49.js.map +1 -0
- package/dist/esm/section.a34d379a.js +215 -0
- package/dist/esm/section.a34d379a.js.map +1 -0
- package/dist/esm/selection.f5b0297e.js +143 -0
- package/dist/esm/selection.f5b0297e.js.map +1 -0
- package/dist/esm/state.178ef364.js +75 -0
- package/dist/esm/state.178ef364.js.map +1 -0
- package/dist/esm/state.2952cbca.js +118 -0
- package/dist/esm/state.2952cbca.js.map +1 -0
- package/dist/esm/store.c4d7a8a4.js +52 -0
- package/dist/esm/store.c4d7a8a4.js.map +1 -0
- package/dist/esm/styles.7bc776d1.js +95 -0
- package/dist/esm/styles.7bc776d1.js.map +1 -0
- package/dist/esm/svg.4b9a96c1.js +89 -0
- package/dist/esm/svg.4b9a96c1.js.map +1 -0
- package/dist/esm/types.0f0b57c9.js +3 -0
- package/dist/esm/types.0f0b57c9.js.map +1 -0
- package/dist/esm/unit-details.071cefed.js +9 -0
- package/dist/esm/unit-details.071cefed.js.map +1 -0
- package/dist/esm/units.5a4fc058.js +98 -0
- package/dist/esm/units.5a4fc058.js.map +1 -0
- package/dist/esm/utils.d7a43a2a.js +55 -0
- package/dist/esm/utils.d7a43a2a.js.map +1 -0
- package/dist/node/index.js.map +1 -1
- package/package.json +24 -7
- package/src/age-axis.module.sass +27 -0
- package/src/age-axis.ts +82 -19
- package/src/age-model-overlay.module.sass +11 -0
- package/src/age-model-overlay.ts +73 -0
- package/src/carbon-isotopes/column.ts +4 -2
- package/src/carbon-isotopes/core.ts +9 -6
- package/src/carbon-isotopes/data-provider.ts +3 -3
- package/src/column.module.sass +58 -49
- package/src/column.ts +149 -135
- package/src/correlation-chart/hash-string.ts +57 -0
- package/src/correlation-chart/index.ts +2 -0
- package/src/correlation-chart/main.module.sass +122 -0
- package/src/correlation-chart/main.ts +305 -0
- package/src/correlation-chart/prepare-data.ts +217 -0
- package/src/correlation-chart/stories/correlation-chart.stories.ts +192 -0
- package/src/correlation-chart/stories/stories.module.sass +18 -0
- package/src/correlation-chart/unconformity-line.module.sass +8 -0
- package/src/correlation-chart/unconformity-line.ts +25 -0
- package/src/data-provider/base.ts +388 -0
- package/src/data-provider/column-nav.ts +53 -0
- package/src/data-provider/fetch.ts +231 -0
- package/src/data-provider/index.ts +4 -0
- package/src/data-provider/store.ts +72 -0
- package/src/index.ts +5 -3
- package/src/maps/_shared/index.ts +2 -0
- package/src/maps/_shared/inset-map.stories.ts +20 -0
- package/src/maps/_shared/inset-map.ts +87 -0
- package/src/maps/_shared/styles.ts +57 -0
- package/src/maps/column-correlation/column-correlation-map.stories.ts +96 -0
- package/src/maps/column-correlation/core.ts +225 -0
- package/src/maps/column-correlation/index.ts +2 -0
- package/src/maps/column-correlation/state.ts +192 -0
- package/src/maps/column-navigation/index.ts +2 -0
- package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +102 -0
- package/src/maps/column-navigation/mapbox/index.ts +219 -0
- package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +119 -0
- package/src/maps/column-navigation/mapbox/state.ts +109 -0
- package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +46 -0
- package/src/{map → maps/column-navigation/svg}/index.ts +18 -6
- package/src/{map → maps/column-navigation/svg}/layers.ts +28 -109
- package/src/maps/column-navigation/utils/keyboard-navigation.ts +58 -0
- package/src/maps/index.ts +3 -0
- package/src/prepare-units/composite-scale.ts +353 -0
- package/src/prepare-units/helpers.ts +226 -0
- package/src/prepare-units/index.ts +177 -0
- package/src/prepare-units/utils.ts +98 -0
- package/src/section.ts +264 -84
- package/src/unit-details/index.ts +2 -215
- package/src/unit-details/{index.module.sass → panel.module.sass} +39 -8
- package/src/unit-details/panel.ts +523 -0
- package/src/{selection-popover.module.sass → unit-details/popover.module.sass} +4 -2
- package/src/unit-details/popover.ts +82 -0
- package/src/units/boxes.module.sass +16 -0
- package/src/units/boxes.ts +243 -90
- package/src/units/colors.ts +64 -0
- package/src/units/composite.ts +157 -152
- package/src/units/index.ts +76 -9
- package/src/units/names.ts +8 -4
- package/src/units/resolvers.ts +11 -0
- package/src/units/selection.ts +115 -101
- package/src/units/types.ts +5 -16
- package/dist/esm/age-axis.64c509ee.js +0 -41
- package/dist/esm/age-axis.64c509ee.js.map +0 -1
- package/dist/esm/boxes.13968b76.js +0 -164
- package/dist/esm/boxes.13968b76.js.map +0 -1
- package/dist/esm/boxes.module.28873d08.css +0 -4
- package/dist/esm/boxes.module.28873d08.css.map +0 -1
- package/dist/esm/boxes.module.605bdcd6.js +0 -13
- package/dist/esm/boxes.module.605bdcd6.js.map +0 -1
- package/dist/esm/column.8dd26e1a.js +0 -149
- package/dist/esm/column.8dd26e1a.js.map +0 -1
- package/dist/esm/column.db058031.js.map +0 -1
- package/dist/esm/column.module.039d872c.css +0 -151
- package/dist/esm/column.module.039d872c.css.map +0 -1
- package/dist/esm/column.module.e632868a.js +0 -19
- package/dist/esm/column.module.e632868a.js.map +0 -1
- package/dist/esm/composite.608a4ca2.js +0 -153
- package/dist/esm/composite.608a4ca2.js.map +0 -1
- package/dist/esm/core.4db8e452.js.map +0 -1
- package/dist/esm/helpers.8a03cfc7.js +0 -94
- package/dist/esm/helpers.8a03cfc7.js.map +0 -1
- package/dist/esm/index.module.0844afd8.css +0 -65
- package/dist/esm/index.module.0844afd8.css.map +0 -1
- package/dist/esm/index.module.24fe3a2e.js +0 -37
- package/dist/esm/index.module.24fe3a2e.js.map +0 -1
- package/dist/esm/layers.ad5fd25d.js +0 -231
- package/dist/esm/layers.ad5fd25d.js.map +0 -1
- package/dist/esm/map.7aa26f17.js +0 -82
- package/dist/esm/map.7aa26f17.js.map +0 -1
- package/dist/esm/names.f6a4e9a4.js.map +0 -1
- package/dist/esm/providers.cd1e652f.js +0 -25
- package/dist/esm/providers.cd1e652f.js.map +0 -1
- package/dist/esm/resolvers.b5c82b78.js.map +0 -1
- package/dist/esm/section.cc1b1100.js +0 -118
- package/dist/esm/section.cc1b1100.js.map +0 -1
- package/dist/esm/selection-popover.17d1bd55.js +0 -60
- package/dist/esm/selection-popover.17d1bd55.js.map +0 -1
- package/dist/esm/selection-popover.module.0a701258.css.map +0 -1
- package/dist/esm/selection-popover.module.e22f5183.js +0 -22
- package/dist/esm/selection-popover.module.e22f5183.js.map +0 -1
- package/dist/esm/selection.bbf26d0e.js +0 -117
- package/dist/esm/selection.bbf26d0e.js.map +0 -1
- package/dist/esm/store.25eaa168.js +0 -18
- package/dist/esm/store.25eaa168.js.map +0 -1
- package/dist/esm/types.f016e032.js +0 -18
- package/dist/esm/types.f016e032.js.map +0 -1
- package/dist/esm/unit-details.56ff8b70.js +0 -209
- package/dist/esm/unit-details.56ff8b70.js.map +0 -1
- package/dist/esm/units.361088d4.js +0 -42
- package/dist/esm/units.361088d4.js.map +0 -1
- package/src/helpers.ts +0 -133
- package/src/providers.ts +0 -34
- package/src/selection-popover.ts +0 -71
- package/src/store.ts +0 -12
- package/src/units/units.scss +0 -16
- /package/src/{map → maps/column-navigation/svg}/animated.ts +0 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import {buildColumnsStyle as $1dbfddc9637b572c$export$d2995719c3a4ae17} from "./styles.7bc776d1.js";
|
|
2
|
+
import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0} from "./inset-map.3c18106d.js";
|
|
3
|
+
import {ColumnNavigationProvider as $09486427d129f589$export$8da3b11f62ebf019, useColumnNavigationStore as $09486427d129f589$export$642c2b57c47ea41} from "./state.178ef364.js";
|
|
4
|
+
import {buildKeyboardNavigationStyle as $ab1043903d5406ef$export$c613fba0aabeee13, ColumnKeyboardNavigation as $ab1043903d5406ef$export$8c41dd563753848} from "./keyboard-navigation.a9fc80dd.js";
|
|
5
|
+
import {useMapStyleOperator as $lRXWn$useMapStyleOperator} from "@macrostrat/mapbox-react";
|
|
6
|
+
import $lRXWn$macrostrathyper from "@macrostrat/hyper";
|
|
7
|
+
import {useMemo as $lRXWn$useMemo, useRef as $lRXWn$useRef} from "react";
|
|
8
|
+
import {setGeoJSON as $lRXWn$setGeoJSON} from "@macrostrat/mapbox-utils";
|
|
9
|
+
import {geoCentroid as $lRXWn$geoCentroid} from "d3-geo";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
function $9d5d216fa2057b5b$export$821baedf611249f3(props) {
|
|
20
|
+
const { columns: columns, onSelectColumn: onSelectColumn, onHoverColumn: onHoverColumn, selectedColumn: selectedColumn, hoveredColumn: hoveredColumn, projectID: projectID, inProcess: inProcess, ...rest } = props;
|
|
21
|
+
return (0, $lRXWn$macrostrathyper)((0, $09486427d129f589$export$8da3b11f62ebf019), {
|
|
22
|
+
columns: columns,
|
|
23
|
+
onSelectColumn: onSelectColumn,
|
|
24
|
+
onHoverColumn: onHoverColumn,
|
|
25
|
+
selectedColumn: selectedColumn,
|
|
26
|
+
hoveredColumn: hoveredColumn,
|
|
27
|
+
projectID: projectID,
|
|
28
|
+
inProcess: inProcess
|
|
29
|
+
}, (0, $lRXWn$macrostrathyper)($9d5d216fa2057b5b$var$_ColumnNavigationMap, rest));
|
|
30
|
+
}
|
|
31
|
+
function $9d5d216fa2057b5b$var$_ColumnNavigationMap(props) {
|
|
32
|
+
const { padding: padding = 50, children: children, columnColor: columnColor, showTriangulation: showTriangulation, triangulationColor: triangulationColor, keyboardNavigation: keyboardNavigation = true, ...rest } = props;
|
|
33
|
+
const overlayStyles = (0, $lRXWn$useMemo)(()=>{
|
|
34
|
+
let styles = [
|
|
35
|
+
(0, $1dbfddc9637b572c$export$d2995719c3a4ae17)(columnColor)
|
|
36
|
+
];
|
|
37
|
+
if (showTriangulation) styles.push((0, $ab1043903d5406ef$export$c613fba0aabeee13)(triangulationColor));
|
|
38
|
+
return styles;
|
|
39
|
+
}, [
|
|
40
|
+
columnColor,
|
|
41
|
+
showTriangulation,
|
|
42
|
+
triangulationColor
|
|
43
|
+
]);
|
|
44
|
+
return (0, $lRXWn$macrostrathyper)((0, $5593f90ffec284da$export$1e8149fc0d15fed0), {
|
|
45
|
+
...rest,
|
|
46
|
+
boxZoom: false,
|
|
47
|
+
dragRotate: false,
|
|
48
|
+
overlayStyles: overlayStyles
|
|
49
|
+
}, [
|
|
50
|
+
(0, $lRXWn$macrostrathyper)($9d5d216fa2057b5b$var$ColumnsLayer),
|
|
51
|
+
(0, $lRXWn$macrostrathyper).if(keyboardNavigation)((0, $ab1043903d5406ef$export$8c41dd563753848), {
|
|
52
|
+
showTriangulation: showTriangulation
|
|
53
|
+
}),
|
|
54
|
+
children
|
|
55
|
+
]);
|
|
56
|
+
}
|
|
57
|
+
function $9d5d216fa2057b5b$var$ColumnsLayer({ enabled: enabled = true }) {
|
|
58
|
+
const columns = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.columns);
|
|
59
|
+
const selectedColumn = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.selectedColumn);
|
|
60
|
+
const hoveredColumn = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.hoveredColumn);
|
|
61
|
+
const selectColumn = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.selectColumn);
|
|
62
|
+
const setHoveredColumn = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.setHoveredColumn);
|
|
63
|
+
(0, $lRXWn$useMapStyleOperator)((map)=>{
|
|
64
|
+
if (columns == null) return;
|
|
65
|
+
const data = {
|
|
66
|
+
type: "FeatureCollection",
|
|
67
|
+
features: columns
|
|
68
|
+
};
|
|
69
|
+
(0, $lRXWn$setGeoJSON)(map, "columns", data);
|
|
70
|
+
const mouseMove = (event)=>{
|
|
71
|
+
if (event.features.length == 0) return;
|
|
72
|
+
const hoveredFeature = event.features[0];
|
|
73
|
+
setHoveredColumn(hoveredFeature.id);
|
|
74
|
+
map.getCanvas().style.cursor = "pointer";
|
|
75
|
+
};
|
|
76
|
+
const mouseLeave = ()=>{
|
|
77
|
+
setHoveredColumn(null);
|
|
78
|
+
map.getCanvas().style.cursor = "";
|
|
79
|
+
};
|
|
80
|
+
const clickHandler = (event)=>{
|
|
81
|
+
if (event.features.length == 0) return;
|
|
82
|
+
const selectedColumn = event.features[0];
|
|
83
|
+
const id = selectedColumn.id;
|
|
84
|
+
selectColumn(id);
|
|
85
|
+
};
|
|
86
|
+
// Setup hover styles on map
|
|
87
|
+
const layers = [
|
|
88
|
+
"columns-points",
|
|
89
|
+
"columns-fill"
|
|
90
|
+
];
|
|
91
|
+
map.on("mousemove", layers, mouseMove);
|
|
92
|
+
map.on("mouseleave", layers, mouseLeave);
|
|
93
|
+
map.on("click", layers, clickHandler);
|
|
94
|
+
return ()=>{
|
|
95
|
+
map.off("mouseenter", layers, mouseMove);
|
|
96
|
+
map.off("mouseleave", layers, mouseLeave);
|
|
97
|
+
map.off("click", layers, clickHandler);
|
|
98
|
+
};
|
|
99
|
+
}, [
|
|
100
|
+
columns,
|
|
101
|
+
enabled
|
|
102
|
+
]);
|
|
103
|
+
const hoveredColumnRef = (0, $lRXWn$useRef)(null);
|
|
104
|
+
(0, $lRXWn$useMapStyleOperator)((map)=>{
|
|
105
|
+
const prevHoveredColumn = hoveredColumnRef.current;
|
|
106
|
+
if (hoveredColumn == prevHoveredColumn) return;
|
|
107
|
+
if (prevHoveredColumn != null) // Deselect previous column
|
|
108
|
+
map.setFeatureState({
|
|
109
|
+
source: "columns",
|
|
110
|
+
id: prevHoveredColumn
|
|
111
|
+
}, {
|
|
112
|
+
hover: false
|
|
113
|
+
});
|
|
114
|
+
hoveredColumnRef.current = hoveredColumn;
|
|
115
|
+
// Select the current column
|
|
116
|
+
map.setFeatureState({
|
|
117
|
+
source: "columns",
|
|
118
|
+
id: hoveredColumn
|
|
119
|
+
}, {
|
|
120
|
+
hover: true
|
|
121
|
+
});
|
|
122
|
+
}, [
|
|
123
|
+
hoveredColumn,
|
|
124
|
+
columns
|
|
125
|
+
]);
|
|
126
|
+
/** Set feature state for selected columns */ const selectedColumnRef = (0, $lRXWn$useRef)(null);
|
|
127
|
+
const initialRenderRef = (0, $lRXWn$useRef)(true);
|
|
128
|
+
(0, $lRXWn$useMapStyleOperator)((map)=>{
|
|
129
|
+
if (columns == null) return;
|
|
130
|
+
const prevSelectedColumn = selectedColumnRef.current;
|
|
131
|
+
if (selectedColumn == prevSelectedColumn) return;
|
|
132
|
+
if (prevSelectedColumn != null) // Deselect previous column
|
|
133
|
+
map.setFeatureState({
|
|
134
|
+
source: "columns",
|
|
135
|
+
id: prevSelectedColumn
|
|
136
|
+
}, {
|
|
137
|
+
selected: false
|
|
138
|
+
});
|
|
139
|
+
selectedColumnRef.current = selectedColumn;
|
|
140
|
+
// Select the current column
|
|
141
|
+
map.setFeatureState({
|
|
142
|
+
source: "columns",
|
|
143
|
+
id: selectedColumn
|
|
144
|
+
}, {
|
|
145
|
+
selected: true
|
|
146
|
+
});
|
|
147
|
+
// Center the selected column
|
|
148
|
+
const columnGeometry = columns.find((d)=>d.id == selectedColumn)?.geometry;
|
|
149
|
+
if (columnGeometry == null) return;
|
|
150
|
+
const center = (0, $lRXWn$geoCentroid)(columnGeometry);
|
|
151
|
+
const isInitialRender = initialRenderRef.current;
|
|
152
|
+
map.easeTo({
|
|
153
|
+
center: center
|
|
154
|
+
}, {
|
|
155
|
+
duration: isInitialRender ? 0 : 500
|
|
156
|
+
});
|
|
157
|
+
if (isInitialRender) initialRenderRef.current = false;
|
|
158
|
+
}, [
|
|
159
|
+
selectedColumn,
|
|
160
|
+
columns
|
|
161
|
+
]);
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
export {$9d5d216fa2057b5b$export$821baedf611249f3 as ColumnNavigationMap};
|
|
167
|
+
//# sourceMappingURL=mapbox.cac42eed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/maps/column-navigation/mapbox/index.ts"],"sourcesContent":["import { useMapStyleOperator } from \"@macrostrat/mapbox-react\";\nimport h from \"@macrostrat/hyper\";\nimport { FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo, useRef } from \"react\";\nimport { buildColumnsStyle, InsetMapProps } from \"../../_shared\";\nimport { setGeoJSON } from \"@macrostrat/mapbox-utils\";\n\nimport {\n ColumnNavigationProvider,\n NavigationProviderProps,\n useColumnNavigationStore,\n} from \"./state\";\nimport { InsetMap } from \"../../_shared\";\nimport { geoCentroid } from \"d3-geo\";\nimport {\n ColumnKeyboardNavigation,\n buildKeyboardNavigationStyle,\n} from \"./keyboard-navigation\";\n\nexport interface ColumnNavigationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n selectedColumn?: number;\n hoveredColumn?: number;\n onSelectColumn?: (colID: number | null) => void;\n onHoverColumn?: (colID: number | null) => void;\n showTriangulation?: boolean;\n columnColor?: string;\n triangulationColor?: string;\n keyboardNavigation?: boolean;\n}\n\nexport function ColumnNavigationMap(\n props: ColumnNavigationMapProps & NavigationProviderProps\n) {\n const {\n columns,\n onSelectColumn,\n onHoverColumn,\n selectedColumn,\n hoveredColumn,\n projectID,\n inProcess,\n ...rest\n } = props;\n\n return h(\n ColumnNavigationProvider,\n {\n columns,\n onSelectColumn,\n onHoverColumn,\n selectedColumn,\n hoveredColumn,\n projectID,\n inProcess,\n },\n h(_ColumnNavigationMap, rest)\n );\n}\n\nfunction _ColumnNavigationMap(props: ColumnNavigationMapProps) {\n const {\n padding = 50,\n children,\n columnColor,\n showTriangulation,\n triangulationColor,\n keyboardNavigation = true,\n ...rest\n } = props;\n\n const overlayStyles = useMemo(() => {\n let styles: any[] = [buildColumnsStyle(columnColor)];\n if (showTriangulation) {\n styles.push(buildKeyboardNavigationStyle(triangulationColor));\n }\n return styles;\n }, [columnColor, showTriangulation, triangulationColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n h.if(keyboardNavigation)(ColumnKeyboardNavigation, { showTriangulation }),\n children,\n ]\n );\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useColumnNavigationStore((state) => state.columns);\n const selectedColumn = useColumnNavigationStore(\n (state) => state.selectedColumn\n );\n const hoveredColumn = useColumnNavigationStore(\n (state) => state.hoveredColumn\n );\n const selectColumn = useColumnNavigationStore((state) => state.selectColumn);\n const setHoveredColumn = useColumnNavigationStore(\n (state) => state.setHoveredColumn\n );\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n setGeoJSON(map, \"columns\", data);\n\n const mouseMove = (event) => {\n if (event.features.length == 0) return;\n const hoveredFeature = event.features[0];\n setHoveredColumn(hoveredFeature.id);\n map.getCanvas().style.cursor = \"pointer\";\n };\n const mouseLeave = () => {\n setHoveredColumn(null);\n map.getCanvas().style.cursor = \"\";\n };\n\n const clickHandler = (event) => {\n if (event.features.length == 0) return;\n const selectedColumn = event.features[0];\n const id = selectedColumn.id;\n selectColumn(id);\n };\n\n // Setup hover styles on map\n const layers = [\"columns-points\", \"columns-fill\"];\n map.on(\"mousemove\", layers, mouseMove);\n map.on(\"mouseleave\", layers, mouseLeave);\n map.on(\"click\", layers, clickHandler);\n\n return () => {\n map.off(\"mouseenter\", layers, mouseMove);\n map.off(\"mouseleave\", layers, mouseLeave);\n map.off(\"click\", layers, clickHandler);\n };\n },\n [columns, enabled]\n );\n\n const hoveredColumnRef = useRef(null);\n useMapStyleOperator(\n (map) => {\n const prevHoveredColumn = hoveredColumnRef.current;\n if (hoveredColumn == prevHoveredColumn) return;\n if (prevHoveredColumn != null) {\n // Deselect previous column\n map.setFeatureState(\n { source: \"columns\", id: prevHoveredColumn },\n { hover: false }\n );\n }\n hoveredColumnRef.current = hoveredColumn;\n // Select the current column\n map.setFeatureState(\n { source: \"columns\", id: hoveredColumn },\n { hover: true }\n );\n },\n [hoveredColumn, columns]\n );\n\n /** Set feature state for selected columns */\n const selectedColumnRef = useRef(null);\n const initialRenderRef = useRef(true);\n useMapStyleOperator(\n (map) => {\n if (columns == null) return;\n const prevSelectedColumn = selectedColumnRef.current;\n if (selectedColumn == prevSelectedColumn) return;\n if (prevSelectedColumn != null) {\n // Deselect previous column\n map.setFeatureState(\n { source: \"columns\", id: prevSelectedColumn },\n { selected: false }\n );\n }\n\n selectedColumnRef.current = selectedColumn;\n\n // Select the current column\n map.setFeatureState(\n { source: \"columns\", id: selectedColumn },\n { selected: true }\n );\n\n // Center the selected column\n const columnGeometry = columns.find(\n (d) => d.id == selectedColumn\n )?.geometry;\n if (columnGeometry == null) return;\n const center = geoCentroid(columnGeometry);\n\n const isInitialRender = initialRenderRef.current;\n map.easeTo({ center }, { duration: isInitialRender ? 0 : 500 });\n if (isInitialRender) {\n initialRenderRef.current = false;\n }\n },\n [selectedColumn, columns]\n );\n\n return null;\n}\n"],"names":[],"version":3,"file":"mapbox.cac42eed.js.map"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {ColumnNavigationMap as $9d5d216fa2057b5b$export$821baedf611249f3, ResizableMapFrame as $e6046e00d2c8a163$export$c4313db718750a5a, ColumnNavigationSVGMap as $e6046e00d2c8a163$export$9595c40c7a4c4f7b, MeasurementsLayer as $93f116a6493b17c3$export$2254347cd20e6080, ColumnFeatures as $93f116a6493b17c3$export$f177ff57c101017a, ColumnKeyboardNavigation as $93f116a6493b17c3$export$8c41dd563753848, Columns as $93f116a6493b17c3$export$f02cc02ad0e0bba3, ColumnCenters as $93f116a6493b17c3$export$4d8f6e6df85d9012, CurrentColumn as $93f116a6493b17c3$export$b9d912252344e099} from "./column-navigation.37cd3245.js";
|
|
2
|
+
import {ColumnCorrelationMap as $dcd183b733f66144$export$8e7d97509e84cc49, ColumnCorrelationProvider as $74e211dc185c20b4$export$72ffe141ebf87ef1, useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-correlation.c8dcfe98.js";
|
|
3
|
+
import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0, buildColumnsStyle as $1dbfddc9637b572c$export$d2995719c3a4ae17} from "./_shared.f7eec55a.js";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
export {$9d5d216fa2057b5b$export$821baedf611249f3 as ColumnNavigationMap, $e6046e00d2c8a163$export$c4313db718750a5a as ResizableMapFrame, $e6046e00d2c8a163$export$9595c40c7a4c4f7b as ColumnNavigationSVGMap, $93f116a6493b17c3$export$2254347cd20e6080 as MeasurementsLayer, $93f116a6493b17c3$export$f177ff57c101017a as ColumnFeatures, $93f116a6493b17c3$export$8c41dd563753848 as ColumnKeyboardNavigation, $93f116a6493b17c3$export$f02cc02ad0e0bba3 as Columns, $93f116a6493b17c3$export$4d8f6e6df85d9012 as ColumnCenters, $93f116a6493b17c3$export$b9d912252344e099 as CurrentColumn, $dcd183b733f66144$export$8e7d97509e84cc49 as ColumnCorrelationMap, $74e211dc185c20b4$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $74e211dc185c20b4$export$21398703d3a9bb4d as useCorrelationMapStore, $5593f90ffec284da$export$1e8149fc0d15fed0 as InsetMap, $1dbfddc9637b572c$export$d2995719c3a4ae17 as buildColumnsStyle};
|
|
11
|
+
//# sourceMappingURL=maps.bcdea9c1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"","sources":["packages/column-views/src/maps/index.ts"],"sourcesContent":["export * from \"./column-navigation\";\nexport * from \"./column-correlation\";\nexport * from \"./_shared\";\n"],"names":[],"version":3,"file":"maps.bcdea9c1.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./utils.d7a43a2a.js";
|
|
2
2
|
import $5ZBll$macrostrathyper from "@macrostrat/hyper";
|
|
3
3
|
import $5ZBll$react, {useContext as $5ZBll$useContext, useCallback as $5ZBll$useCallback} from "react";
|
|
4
4
|
import {ColumnContext as $5ZBll$ColumnContext, NotesColumn as $5ZBll$NotesColumn} from "@macrostrat/column-components";
|
|
@@ -9,10 +9,10 @@ import {ColumnContext as $5ZBll$ColumnContext, NotesColumn as $5ZBll$NotesColumn
|
|
|
9
9
|
|
|
10
10
|
function $bc17276da4abb183$export$2f2e65a797f8fc1e(div, opts) {
|
|
11
11
|
const { axisType: axisType } = opts;
|
|
12
|
-
const
|
|
12
|
+
const [height, top_height] = (0, $b6657fba8924a702$export$70e712e2ac0237a)(div, axisType);
|
|
13
13
|
return {
|
|
14
|
-
height:
|
|
15
|
-
top_height:
|
|
14
|
+
height: height,
|
|
15
|
+
top_height: top_height,
|
|
16
16
|
data: div,
|
|
17
17
|
id: div.unit_id
|
|
18
18
|
};
|
|
@@ -62,4 +62,4 @@ function $bc17276da4abb183$export$594d19cdd88f8c16(props) {
|
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
export {$bc17276da4abb183$export$2f2e65a797f8fc1e as noteForDivision, $bc17276da4abb183$export$c9757aeb43a67df0 as defaultNameFunction, $bc17276da4abb183$export$6316e673796ccb55 as UnitDataColumn, $bc17276da4abb183$export$594d19cdd88f8c16 as UnitNamesColumn};
|
|
65
|
-
//# sourceMappingURL=names.
|
|
65
|
+
//# sourceMappingURL=names.a8f2b452.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;AA+BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,OAAO;gBACL;oBACA;QACA,MAAM;QACN,IAAI,IAAI,OAAO;IACjB;AACF;AAEA,MAAM,4CAAsB,CAAC;IAC3B,OAAO,IAAI,SAAS,CACjB,OAAO,CAAC,OAAO,UACf,OAAO,CAAC,MAAM,aACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,sCAAgB,KAAoB;IAC3C,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,oBAAY;IACnC,MAAM,QACJ,IAAI,iBACJ,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,KAAK,WACjB,GAAG,MACJ,GAAG;IAEJ,MAAM,SAAE,KAAK,EAAE,GAAG;IAElB,MAAM,sBAAsB,CAAA,GAAA,kBAAU,EACpC,CAAC;QACC,IAAI,iBAAiB,GAAG,OAAO;QAC/B,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM;QACxD,OAAO,KAAK;IACd,GACA;QAAC;QAAO;KAAc;IAGxB,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM,QAAoB,UACvB,MAAM,CAAC,kBACP,GAAG,CAAC,CAAC,IAAa,0CAAgB,GAAG;YAAE,UAAU,IAAI,QAAQ;QAAC,IAC9D,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpC,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAQ3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,gBAAgB,CAAC;QACrB,MAAM,QAAE,IAAI,EAAE,GAAG;QACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;IACxD;IAEA,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;QACvB,eAAe,iBAAiB;QAChC,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useContext, useCallback } from \"react\";\nimport {\n ColumnContext,\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit } from \"./types\";\nimport React from \"react\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { CompositeColumnScale } from \"./composite\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n scale?: CompositeColumnScale;\n}\n\ntype UnitNote = {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n};\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType }\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const ctx = useContext(ColumnContext);\n const {\n left,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n minimumHeight = 0,\n divisions = ctx?.divisions,\n ...rest\n } = props;\n\n const { scale } = ctx;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight]\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType: ctx.axisType }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left || 0})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const NoteComponent = (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n };\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? NoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"names.a8f2b452.js.map"}
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
import "./panel.module.3d2ea3c6.css";
|
|
2
|
+
import $01tAX$panelmodule386166ccjs from "./panel.module.386166cc.js";
|
|
3
|
+
import {defaultNameFunction as $bc17276da4abb183$export$c9757aeb43a67df0} from "./names.a8f2b452.js";
|
|
4
|
+
import {useMacrostratData as $774a5efa27d1c77b$export$b9c9fc603d74a555, useMacrostratDefs as $774a5efa27d1c77b$export$89dd4e5ae4a82373} from "./base.910b80b4.js";
|
|
5
|
+
import $01tAX$macrostrathyper from "@macrostrat/hyper";
|
|
6
|
+
import {JSONView as $01tAX$JSONView} from "@macrostrat/ui-components";
|
|
7
|
+
import {Button as $01tAX$Button, ButtonGroup as $01tAX$ButtonGroup} from "@blueprintjs/core";
|
|
8
|
+
import {useState as $01tAX$useState, useMemo as $01tAX$useMemo} from "react";
|
|
9
|
+
import {LithologyTagFeature as $01tAX$LithologyTagFeature, DataField as $01tAX$DataField, Parenthetical as $01tAX$Parenthetical, Value as $01tAX$Value, LithologyList as $01tAX$LithologyList, EnvironmentsList as $01tAX$EnvironmentsList, ItemList as $01tAX$ItemList, IntervalTag as $01tAX$IntervalTag} from "@macrostrat/data-components";
|
|
10
|
+
import $01tAX$classnames from "classnames";
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
function $parcel$interopDefault(a) {
|
|
14
|
+
return a && a.__esModule ? a.default : a;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
const $448b24baeef3b229$var$h = (0, $01tAX$macrostrathyper).styled((0, ($parcel$interopDefault($01tAX$panelmodule386166ccjs))));
|
|
26
|
+
function $448b24baeef3b229$export$fbd245232df17557({ unit: unit, onClose: onClose, className: className, features: features = new Set([
|
|
27
|
+
"adjacent-units",
|
|
28
|
+
"outcrop-type",
|
|
29
|
+
"json-toggle",
|
|
30
|
+
"depth-range"
|
|
31
|
+
]), lithologyFeatures: lithologyFeatures, actions: actions, selectUnit: selectUnit, columnUnits: columnUnits }) {
|
|
32
|
+
const [showJSON, setShowJSON] = (0, $01tAX$useState)(false);
|
|
33
|
+
let content = null;
|
|
34
|
+
if (showJSON) content = $448b24baeef3b229$var$h((0, $01tAX$JSONView), {
|
|
35
|
+
data: unit,
|
|
36
|
+
showRoot: false
|
|
37
|
+
});
|
|
38
|
+
else content = $448b24baeef3b229$var$h($448b24baeef3b229$var$UnitDetailsContent, {
|
|
39
|
+
unit: unit,
|
|
40
|
+
features: features,
|
|
41
|
+
lithologyFeatures: lithologyFeatures
|
|
42
|
+
});
|
|
43
|
+
let title = (0, $bc17276da4abb183$export$c9757aeb43a67df0)(unit);
|
|
44
|
+
let hiddenActions = null;
|
|
45
|
+
if (features.has("json-toggle")) hiddenActions = $448b24baeef3b229$var$h((0, $01tAX$Button), {
|
|
46
|
+
icon: "code",
|
|
47
|
+
small: true,
|
|
48
|
+
minimal: true,
|
|
49
|
+
key: "json-view-toggle",
|
|
50
|
+
className: (0, $01tAX$classnames)("json-view-toggle", {
|
|
51
|
+
enabled: setShowJSON
|
|
52
|
+
}),
|
|
53
|
+
onClick (evt) {
|
|
54
|
+
setShowJSON(!showJSON);
|
|
55
|
+
evt.stopPropagation();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return $448b24baeef3b229$var$h("div.unit-details-panel", {
|
|
59
|
+
className: className
|
|
60
|
+
}, [
|
|
61
|
+
$448b24baeef3b229$var$h($448b24baeef3b229$export$fc503c39cc5cff43, {
|
|
62
|
+
onClose: onClose,
|
|
63
|
+
title: title,
|
|
64
|
+
id: unit.unit_id,
|
|
65
|
+
actions: actions,
|
|
66
|
+
hiddenActions: hiddenActions
|
|
67
|
+
}),
|
|
68
|
+
$448b24baeef3b229$var$h("div.unit-details-content-holder", content)
|
|
69
|
+
]);
|
|
70
|
+
}
|
|
71
|
+
function $448b24baeef3b229$export$fc503c39cc5cff43({ title: title, id: id, onClose: onClose, actions: actions = null, hiddenActions: hiddenActions }) {
|
|
72
|
+
return $448b24baeef3b229$var$h("header.legend-panel-header", [
|
|
73
|
+
$448b24baeef3b229$var$h("div.title-container", [
|
|
74
|
+
$448b24baeef3b229$var$h.if(title != null)("h3", title),
|
|
75
|
+
$448b24baeef3b229$var$h.if(hiddenActions != null)("div.hidden-actions", hiddenActions)
|
|
76
|
+
]),
|
|
77
|
+
$448b24baeef3b229$var$h("div.spacer"),
|
|
78
|
+
$448b24baeef3b229$var$h.if(id != null)("code", id),
|
|
79
|
+
$448b24baeef3b229$var$h.if(actions != null)((0, $01tAX$ButtonGroup), {
|
|
80
|
+
minimal: true
|
|
81
|
+
}, actions),
|
|
82
|
+
$448b24baeef3b229$var$h.if(onClose != null)((0, $01tAX$Button), {
|
|
83
|
+
icon: "cross",
|
|
84
|
+
minimal: true,
|
|
85
|
+
small: true,
|
|
86
|
+
onClick () {
|
|
87
|
+
onClose();
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
]);
|
|
91
|
+
}
|
|
92
|
+
var $448b24baeef3b229$export$ec297f6f9a6ccad0 = /*#__PURE__*/ function(UnitDetailsFeature) {
|
|
93
|
+
UnitDetailsFeature["AdjacentUnits"] = "adjacent-units";
|
|
94
|
+
UnitDetailsFeature["Color"] = "color";
|
|
95
|
+
UnitDetailsFeature["OutcropType"] = "outcrop-type";
|
|
96
|
+
UnitDetailsFeature["JSONToggle"] = "json-toggle";
|
|
97
|
+
UnitDetailsFeature["DepthRange"] = "depth-range";
|
|
98
|
+
return UnitDetailsFeature;
|
|
99
|
+
}({});
|
|
100
|
+
function $448b24baeef3b229$var$UnitDetailsContent({ unit: unit, selectUnit: selectUnit, columnUnits: columnUnits, lithologyFeatures: lithologyFeatures = new Set([
|
|
101
|
+
(0, $01tAX$LithologyTagFeature).Proportion,
|
|
102
|
+
(0, $01tAX$LithologyTagFeature).Attributes
|
|
103
|
+
]), features: features = new Set([
|
|
104
|
+
"adjacent-units",
|
|
105
|
+
"outcrop-type"
|
|
106
|
+
]) }) {
|
|
107
|
+
const lithMap = (0, $774a5efa27d1c77b$export$89dd4e5ae4a82373)("lithologies");
|
|
108
|
+
const envMap = (0, $774a5efa27d1c77b$export$89dd4e5ae4a82373)("environments");
|
|
109
|
+
const environments = $448b24baeef3b229$var$enhanceEnvironments(unit.environ, envMap);
|
|
110
|
+
const lithologies = $448b24baeef3b229$var$enhanceLithologies(unit.lith ?? [], lithMap);
|
|
111
|
+
// Create a lookup table of units if provided
|
|
112
|
+
const columnUnitsMap = (0, $01tAX$useMemo)(()=>{
|
|
113
|
+
const map = new Map();
|
|
114
|
+
for (const colUnit of columnUnits ?? [])map.set(colUnit.unit_id, colUnit);
|
|
115
|
+
return map;
|
|
116
|
+
}, [
|
|
117
|
+
columnUnits
|
|
118
|
+
]);
|
|
119
|
+
let outcropField = null;
|
|
120
|
+
if (features.has("outcrop-type")) {
|
|
121
|
+
// Determine outcrop type
|
|
122
|
+
let outcrop = unit.outcrop;
|
|
123
|
+
if (outcrop == "both") outcrop = "surface and subsurface";
|
|
124
|
+
outcropField = $448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
125
|
+
label: "Outcrop",
|
|
126
|
+
value: outcrop
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
let thicknessOrHeightRange = null;
|
|
130
|
+
const [thickness, thicknessUnit] = $448b24baeef3b229$var$getThickness(unit);
|
|
131
|
+
// Proxy for actual heights in t_pos and b_pos
|
|
132
|
+
if (features.has("depth-range") && unit.t_pos != null && unit.b_pos != null && unit.min_thick == unit.max_thick && // We have an actual fixed height
|
|
133
|
+
unit.min_thick != 0 // Not a zero thickness
|
|
134
|
+
) {
|
|
135
|
+
const label = unit.t_pos < unit.b_pos ? "Depth" : "Height";
|
|
136
|
+
const u1 = "m";
|
|
137
|
+
thicknessOrHeightRange = $448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
138
|
+
unit: u1,
|
|
139
|
+
label: label,
|
|
140
|
+
value: $448b24baeef3b229$var$formatRange(unit.b_pos, unit.t_pos),
|
|
141
|
+
children: $448b24baeef3b229$var$h((0, $01tAX$Parenthetical), $448b24baeef3b229$var$h((0, $01tAX$Value), {
|
|
142
|
+
value: thickness,
|
|
143
|
+
unit: thicknessUnit
|
|
144
|
+
}))
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
thicknessOrHeightRange ??= $448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
148
|
+
label: "Thickness",
|
|
149
|
+
value: thickness,
|
|
150
|
+
unit: thicknessUnit
|
|
151
|
+
});
|
|
152
|
+
/** We are trying to move away from passing the "color" parameter in the API */ let colorSwatch = null;
|
|
153
|
+
if ("color" in unit) {
|
|
154
|
+
const unit1 = unit;
|
|
155
|
+
colorSwatch = $448b24baeef3b229$var$h("div.color-swatch", {
|
|
156
|
+
style: {
|
|
157
|
+
backgroundColor: unit1.color
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
return $448b24baeef3b229$var$h("div.unit-details-content", [
|
|
162
|
+
thicknessOrHeightRange,
|
|
163
|
+
$448b24baeef3b229$var$h((0, $01tAX$LithologyList), {
|
|
164
|
+
label: "Lithology",
|
|
165
|
+
lithologies: lithologies,
|
|
166
|
+
features: lithologyFeatures
|
|
167
|
+
}),
|
|
168
|
+
$448b24baeef3b229$var$h($448b24baeef3b229$var$AgeField, {
|
|
169
|
+
unit: unit
|
|
170
|
+
}, [
|
|
171
|
+
$448b24baeef3b229$var$h((0, $01tAX$Parenthetical), $448b24baeef3b229$var$h($448b24baeef3b229$export$3b11bc38611c5941, {
|
|
172
|
+
value: unit.b_age - unit.t_age
|
|
173
|
+
})),
|
|
174
|
+
$448b24baeef3b229$var$h($448b24baeef3b229$var$IntervalProportions, {
|
|
175
|
+
unit: unit
|
|
176
|
+
})
|
|
177
|
+
]),
|
|
178
|
+
$448b24baeef3b229$var$h((0, $01tAX$EnvironmentsList), {
|
|
179
|
+
environments: environments
|
|
180
|
+
}),
|
|
181
|
+
$448b24baeef3b229$var$h.if(unit.strat_name_id != null)((0, $01tAX$DataField), {
|
|
182
|
+
label: "Stratigraphic name"
|
|
183
|
+
}, $448b24baeef3b229$var$h("span.strat-name-id", unit.strat_name_id)),
|
|
184
|
+
outcropField,
|
|
185
|
+
$448b24baeef3b229$var$h.if(features.has("adjacent-units"))([
|
|
186
|
+
$448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
187
|
+
label: "Above"
|
|
188
|
+
}, $448b24baeef3b229$var$h($448b24baeef3b229$var$UnitIDList, {
|
|
189
|
+
units: unit.units_above,
|
|
190
|
+
selectUnit: selectUnit
|
|
191
|
+
})),
|
|
192
|
+
$448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
193
|
+
label: "Below"
|
|
194
|
+
}, $448b24baeef3b229$var$h($448b24baeef3b229$var$UnitIDList, {
|
|
195
|
+
units: unit.units_below,
|
|
196
|
+
selectUnit: selectUnit
|
|
197
|
+
}))
|
|
198
|
+
]),
|
|
199
|
+
colorSwatch,
|
|
200
|
+
$448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
201
|
+
label: "Source",
|
|
202
|
+
inline: true
|
|
203
|
+
}, $448b24baeef3b229$var$h($448b24baeef3b229$var$BibInfo, {
|
|
204
|
+
refs: unit.refs
|
|
205
|
+
}))
|
|
206
|
+
]);
|
|
207
|
+
}
|
|
208
|
+
function $448b24baeef3b229$var$getThickness(unit) {
|
|
209
|
+
let minThickness = unit.min_thick ?? 0;
|
|
210
|
+
let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;
|
|
211
|
+
let _unit = "m";
|
|
212
|
+
if (minThickness == 0 && maxThickness == 0) return [
|
|
213
|
+
"Unknown",
|
|
214
|
+
null
|
|
215
|
+
];
|
|
216
|
+
if (minThickness < 0.8 && maxThickness < 1.2) {
|
|
217
|
+
// Convert to cm
|
|
218
|
+
minThickness = minThickness * 100;
|
|
219
|
+
maxThickness = maxThickness * 100;
|
|
220
|
+
_unit = "cm";
|
|
221
|
+
} else if (minThickness > 800 && maxThickness > 1200) {
|
|
222
|
+
// Convert to km
|
|
223
|
+
minThickness = minThickness / 1000;
|
|
224
|
+
maxThickness = maxThickness / 1000;
|
|
225
|
+
_unit = "km";
|
|
226
|
+
}
|
|
227
|
+
if (minThickness == maxThickness) return [
|
|
228
|
+
$448b24baeef3b229$var$formatSignificance(minThickness),
|
|
229
|
+
_unit
|
|
230
|
+
];
|
|
231
|
+
return [
|
|
232
|
+
$448b24baeef3b229$var$formatRange(minThickness, maxThickness),
|
|
233
|
+
_unit
|
|
234
|
+
];
|
|
235
|
+
}
|
|
236
|
+
function $448b24baeef3b229$var$ThicknessField({ unit: unit, label: label = "Thickness" }) {
|
|
237
|
+
const [value, thicknessUnit] = $448b24baeef3b229$var$getThickness(unit);
|
|
238
|
+
return $448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
239
|
+
label: label,
|
|
240
|
+
value: value,
|
|
241
|
+
unit: thicknessUnit
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
function $448b24baeef3b229$var$BibInfo({ refs: refs }) {
|
|
245
|
+
const refData = (0, $774a5efa27d1c77b$export$b9c9fc603d74a555)("refs", refs);
|
|
246
|
+
if (refData == null || refData.length === 0) return null;
|
|
247
|
+
if (refData.length == 1) return $448b24baeef3b229$var$h($448b24baeef3b229$var$Citation, {
|
|
248
|
+
data: refData[0],
|
|
249
|
+
tag: "span"
|
|
250
|
+
});
|
|
251
|
+
return $448b24baeef3b229$var$h("ul.refs", refData.map((data, i)=>$448b24baeef3b229$var$h($448b24baeef3b229$var$Citation, {
|
|
252
|
+
data: data,
|
|
253
|
+
tag: "li",
|
|
254
|
+
key: i
|
|
255
|
+
})));
|
|
256
|
+
}
|
|
257
|
+
function $448b24baeef3b229$var$Citation({ data: data, tag: tag = "p" }) {
|
|
258
|
+
return $448b24baeef3b229$var$h(tag, {
|
|
259
|
+
className: "citation"
|
|
260
|
+
}, [
|
|
261
|
+
$448b24baeef3b229$var$h("span.authors", data.author),
|
|
262
|
+
", ",
|
|
263
|
+
$448b24baeef3b229$var$h("span.year", data.pub_year),
|
|
264
|
+
", ",
|
|
265
|
+
$448b24baeef3b229$var$h("span.title", data.ref)
|
|
266
|
+
]);
|
|
267
|
+
}
|
|
268
|
+
function $448b24baeef3b229$var$AgeField({ unit: unit, children: children }) {
|
|
269
|
+
const [b_age, t_age, _unit] = $448b24baeef3b229$var$getAgeRange(unit);
|
|
270
|
+
return $448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
271
|
+
label: "Age",
|
|
272
|
+
value: $448b24baeef3b229$var$formatRange(b_age, t_age),
|
|
273
|
+
unit: _unit
|
|
274
|
+
}, children);
|
|
275
|
+
}
|
|
276
|
+
function $448b24baeef3b229$var$getAgeRange(_unit) {
|
|
277
|
+
let b_age = _unit.b_age;
|
|
278
|
+
let t_age = _unit.t_age;
|
|
279
|
+
let unit = "Ma";
|
|
280
|
+
if (b_age < 0.8 && t_age < 1.2) {
|
|
281
|
+
b_age *= 1000;
|
|
282
|
+
t_age *= 1000;
|
|
283
|
+
unit = "ka";
|
|
284
|
+
} else if (b_age > 800 && t_age > 1200) {
|
|
285
|
+
b_age /= 1000;
|
|
286
|
+
t_age /= 1000;
|
|
287
|
+
unit = "Ga";
|
|
288
|
+
}
|
|
289
|
+
return [
|
|
290
|
+
b_age,
|
|
291
|
+
t_age,
|
|
292
|
+
unit
|
|
293
|
+
];
|
|
294
|
+
}
|
|
295
|
+
function $448b24baeef3b229$export$3b11bc38611c5941({ value: value, maximumFractionDigits: maximumFractionDigits = 2, minimumFractionDigits: minimumFractionDigits = 0 }) {
|
|
296
|
+
let unit = "Myr";
|
|
297
|
+
if (value < 0.8) {
|
|
298
|
+
unit = "kyr";
|
|
299
|
+
value *= 1000;
|
|
300
|
+
if (value < 5) {
|
|
301
|
+
unit = "yr";
|
|
302
|
+
value *= 1000;
|
|
303
|
+
}
|
|
304
|
+
} else if (value > 1000) {
|
|
305
|
+
unit = "Gyr";
|
|
306
|
+
value /= 1000;
|
|
307
|
+
}
|
|
308
|
+
let _value = value.toLocaleString("en-US", {
|
|
309
|
+
maximumFractionDigits: maximumFractionDigits,
|
|
310
|
+
minimumFractionDigits: minimumFractionDigits
|
|
311
|
+
});
|
|
312
|
+
return $448b24baeef3b229$var$h((0, $01tAX$Value), {
|
|
313
|
+
value: _value,
|
|
314
|
+
unit: unit
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
function $448b24baeef3b229$var$enhanceEnvironments(environments, envMap) {
|
|
318
|
+
return environments.map((env)=>{
|
|
319
|
+
return {
|
|
320
|
+
...envMap?.get(env.environ_id) ?? {},
|
|
321
|
+
...env
|
|
322
|
+
};
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
function $448b24baeef3b229$var$enhanceLithologies(lithologies, lithMap) {
|
|
326
|
+
return lithologies.map((lith)=>{
|
|
327
|
+
return {
|
|
328
|
+
...lithMap?.get(lith.lith_id) ?? {},
|
|
329
|
+
...lith
|
|
330
|
+
};
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
function $448b24baeef3b229$var$UnitIDList({ units: units, selectUnit: selectUnit }) {
|
|
334
|
+
const u1 = units.filter((d)=>d != 0);
|
|
335
|
+
if (u1.length === 0) return $448b24baeef3b229$var$h("span.no-units", "None");
|
|
336
|
+
let tag = "span";
|
|
337
|
+
if (selectUnit != null) tag = "a";
|
|
338
|
+
return $448b24baeef3b229$var$h((0, $01tAX$ItemList), {
|
|
339
|
+
className: "unit-id-list"
|
|
340
|
+
}, u1.map((unit)=>{
|
|
341
|
+
return $448b24baeef3b229$var$h(tag, {
|
|
342
|
+
className: "unit-id",
|
|
343
|
+
onClick () {
|
|
344
|
+
selectUnit?.(unit.id);
|
|
345
|
+
},
|
|
346
|
+
key: unit.id
|
|
347
|
+
}, unit);
|
|
348
|
+
}));
|
|
349
|
+
}
|
|
350
|
+
function $448b24baeef3b229$var$IntervalProportions({ unit: unit }) {
|
|
351
|
+
const i0 = unit.b_int_id;
|
|
352
|
+
const i1 = unit.t_int_id;
|
|
353
|
+
let b_prop = unit.b_prop ?? 0;
|
|
354
|
+
let t_prop = unit.t_prop ?? 1;
|
|
355
|
+
const intervalMap = (0, $774a5efa27d1c77b$export$89dd4e5ae4a82373)("intervals");
|
|
356
|
+
const int0 = intervalMap?.get(i0) ?? {};
|
|
357
|
+
const interval0 = {
|
|
358
|
+
...int0,
|
|
359
|
+
id: i0,
|
|
360
|
+
name: unit.b_int_name
|
|
361
|
+
};
|
|
362
|
+
let p0 = null;
|
|
363
|
+
const int1 = intervalMap?.get(i1) ?? {};
|
|
364
|
+
const p1 = $448b24baeef3b229$var$h($448b24baeef3b229$var$Proportion, {
|
|
365
|
+
value: t_prop
|
|
366
|
+
});
|
|
367
|
+
if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) // We have a single interval with undefined proportions
|
|
368
|
+
p0 = $448b24baeef3b229$var$h($448b24baeef3b229$var$Proportion, {
|
|
369
|
+
value: b_prop
|
|
370
|
+
});
|
|
371
|
+
if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) p0 = $448b24baeef3b229$var$h("span.joint-proportion", [
|
|
372
|
+
p0,
|
|
373
|
+
$448b24baeef3b229$var$h("span.sep", "to"),
|
|
374
|
+
p1
|
|
375
|
+
]);
|
|
376
|
+
return $448b24baeef3b229$var$h("div.interval-proportions", [
|
|
377
|
+
$448b24baeef3b229$var$h((0, $01tAX$IntervalTag), {
|
|
378
|
+
interval: interval0,
|
|
379
|
+
prefix: p0
|
|
380
|
+
}),
|
|
381
|
+
$448b24baeef3b229$var$h.if(i0 != i1)("span.discourage-break", [
|
|
382
|
+
$448b24baeef3b229$var$h("span.sep", "to"),
|
|
383
|
+
$448b24baeef3b229$var$h((0, $01tAX$IntervalTag), {
|
|
384
|
+
interval: {
|
|
385
|
+
...int1,
|
|
386
|
+
id: i1,
|
|
387
|
+
name: unit.t_int_name
|
|
388
|
+
},
|
|
389
|
+
prefix: p1
|
|
390
|
+
})
|
|
391
|
+
])
|
|
392
|
+
]);
|
|
393
|
+
}
|
|
394
|
+
const $448b24baeef3b229$var$formatProportion = (d)=>{
|
|
395
|
+
if (d == null) return null;
|
|
396
|
+
return d.toFixed(1);
|
|
397
|
+
};
|
|
398
|
+
function $448b24baeef3b229$var$Proportion({ value: value }) {
|
|
399
|
+
let content = null;
|
|
400
|
+
if (value == 0) content = "base";
|
|
401
|
+
else if (value == 1) content = "top";
|
|
402
|
+
else content = $448b24baeef3b229$var$formatProportion(value * 100) + "%";
|
|
403
|
+
return $448b24baeef3b229$var$h("span.proportion", content);
|
|
404
|
+
}
|
|
405
|
+
function $448b24baeef3b229$var$formatRange(min, max, precision = null) {
|
|
406
|
+
if (min == null || max == null) return null;
|
|
407
|
+
if (min === max) return min.toFixed(precision);
|
|
408
|
+
return `${$448b24baeef3b229$var$formatSignificance(min, precision)}\u{2013}${$448b24baeef3b229$var$formatSignificance(max, precision)}`;
|
|
409
|
+
}
|
|
410
|
+
function $448b24baeef3b229$var$formatSignificance(value, precision = null) {
|
|
411
|
+
// Format to preserve a reasonable number of significant figures
|
|
412
|
+
// this could be done with an easier algorithm, probably:
|
|
413
|
+
if (precision == null) return value.toLocaleString();
|
|
414
|
+
if (precision >= 0) return value.toFixed(precision);
|
|
415
|
+
if (precision < 0) return (value / Math.pow(10, -precision)).toFixed(0) + "0".repeat(-precision);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
export {$448b24baeef3b229$export$fbd245232df17557 as UnitDetailsPanel, $448b24baeef3b229$export$fc503c39cc5cff43 as LegendPanelHeader, $448b24baeef3b229$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $448b24baeef3b229$export$3b11bc38611c5941 as Duration};
|
|
420
|
+
//# sourceMappingURL=panel.598f76a5.js.map
|