@macrostrat/column-views 3.2.2 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/dist/index.cjs +15 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +11 -5
- package/dist/maps/column-correlation/core.cjs +10 -30
- package/dist/maps/column-correlation/core.cjs.map +1 -1
- package/dist/maps/column-correlation/core.d.ts +1 -1
- package/dist/maps/column-correlation/core.js +10 -30
- package/dist/maps/column-correlation/core.js.map +1 -1
- package/dist/maps/column-navigation/mapbox/index.cjs +156 -118
- package/dist/maps/column-navigation/mapbox/index.cjs.map +1 -1
- package/dist/maps/column-navigation/mapbox/index.d.ts +23 -2
- package/dist/maps/column-navigation/mapbox/index.js +158 -120
- package/dist/maps/column-navigation/mapbox/index.js.map +1 -1
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.cjs +7 -1
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.cjs.map +1 -1
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.d.ts +3 -26
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.js +9 -3
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.js.map +1 -1
- package/dist/maps/index.d.ts +2 -2
- package/dist/maps/{_shared/inset-map.cjs → inset-map/index.cjs} +1 -1
- package/dist/maps/inset-map/index.cjs.map +1 -0
- package/dist/maps/{_shared/inset-map.js → inset-map/index.js} +1 -1
- package/dist/maps/inset-map/index.js.map +1 -0
- package/dist/maps/layers/columns.cjs +161 -0
- package/dist/maps/layers/columns.cjs.map +1 -0
- package/dist/maps/layers/columns.d.ts +28 -0
- package/dist/maps/layers/columns.js +161 -0
- package/dist/maps/layers/columns.js.map +1 -0
- package/dist/maps/layers/index.d.ts +2 -0
- package/dist/maps/{units-overlay/index.cjs → layers/units.cjs} +41 -88
- package/dist/maps/layers/units.cjs.map +1 -0
- package/dist/maps/{units-overlay/index.d.ts → layers/units.d.ts} +1 -1
- package/dist/maps/{units-overlay/index.js → layers/units.js} +34 -82
- package/dist/maps/layers/units.js.map +1 -0
- package/dist/unit-details/age-range.cjs +87 -44
- package/dist/unit-details/age-range.cjs.map +1 -1
- package/dist/unit-details/age-range.d.ts +32 -5
- package/dist/unit-details/age-range.js +85 -44
- package/dist/unit-details/age-range.js.map +1 -1
- package/package.json +4 -4
- package/src/maps/column-correlation/core.ts +9 -29
- package/src/maps/column-navigation/mapbox/index.ts +191 -138
- package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +17 -3
- package/src/maps/index.ts +2 -2
- package/src/maps/layers/columns.ts +210 -0
- package/src/maps/layers/index.ts +2 -0
- package/src/maps/{units-overlay/index.ts → layers/units.ts} +34 -84
- package/src/maps/unit-map.stories.ts +27 -12
- package/src/unit-details/age-range.ts +125 -47
- package/dist/maps/_shared/index.d.ts +0 -2
- package/dist/maps/_shared/inset-map.cjs.map +0 -1
- package/dist/maps/_shared/inset-map.js.map +0 -1
- package/dist/maps/_shared/styles.cjs +0 -73
- package/dist/maps/_shared/styles.cjs.map +0 -1
- package/dist/maps/_shared/styles.d.ts +0 -2
- package/dist/maps/_shared/styles.js +0 -73
- package/dist/maps/_shared/styles.js.map +0 -1
- package/dist/maps/units-overlay/index.cjs.map +0 -1
- package/dist/maps/units-overlay/index.js.map +0 -1
- package/src/maps/_shared/index.ts +0 -2
- package/src/maps/_shared/styles.ts +0 -76
- /package/dist/maps/{_shared/inset-map.d.ts → inset-map/index.d.ts} +0 -0
- /package/src/maps/{_shared/inset-map.ts → inset-map/index.ts} +0 -0
- /package/src/maps/{_shared → inset-map}/inset-map.stories.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. The format
|
|
|
4
4
|
is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this
|
|
5
5
|
project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [3.3.0] - 2026-02-13
|
|
8
|
+
|
|
9
|
+
- Greatly streamline handling of `InsetMap`, column and unit overlay layers
|
|
10
|
+
- Improve design of age range tags
|
|
11
|
+
|
|
7
12
|
## [3.2.2] - 2026-02-09
|
|
8
13
|
|
|
9
14
|
- Move `AgeField` and `AgeRange` to separate exports
|
package/dist/index.cjs
CHANGED
|
@@ -8,22 +8,23 @@ const ageModelOverlay = require("./age-model-overlay.cjs");
|
|
|
8
8
|
const notes = require("./notes.cjs");
|
|
9
9
|
const ageRange = require("./unit-details/age-range.cjs");
|
|
10
10
|
const composite = require("./units/composite.cjs");
|
|
11
|
+
const columns = require("./maps/layers/columns.cjs");
|
|
11
12
|
const base = require("./facets/measurements/base.cjs");
|
|
12
13
|
const panel = require("./unit-details/panel.cjs");
|
|
13
14
|
const layers = require("./maps/column-navigation/svg/layers.cjs");
|
|
14
15
|
const core = require("./maps/column-correlation/core.cjs");
|
|
15
16
|
const state = require("./maps/column-correlation/state.cjs");
|
|
16
|
-
const columnNav = require("./data-provider/column-nav.cjs");
|
|
17
17
|
const index$1 = require("./maps/column-navigation/mapbox/index.cjs");
|
|
18
|
+
const columnNav = require("./data-provider/column-nav.cjs");
|
|
18
19
|
const index$2 = require("./maps/column-navigation/svg/index.cjs");
|
|
19
20
|
const main = require("./correlation-chart/main.cjs");
|
|
20
21
|
const index$3 = require("./facets/detrital-zircon/index.cjs");
|
|
21
22
|
const provider = require("./facets/fossils/provider.cjs");
|
|
22
23
|
const types = require("./prepare-units/types.cjs");
|
|
23
|
-
const
|
|
24
|
+
const index$4 = require("./maps/inset-map/index.cjs");
|
|
24
25
|
const isotopesColumn = require("./facets/carbon-isotopes/isotopes-column.cjs");
|
|
25
26
|
const store = require("./data-provider/store.cjs");
|
|
26
|
-
const
|
|
27
|
+
const units = require("./maps/layers/units.cjs");
|
|
27
28
|
const dataProvider = require("./facets/carbon-isotopes/data-provider.cjs");
|
|
28
29
|
const utils = require("./prepare-units/utils.cjs");
|
|
29
30
|
const index$5 = require("./facets/fossils/index.cjs");
|
|
@@ -32,7 +33,6 @@ const sgp = require("./facets/measurements/sgp.cjs");
|
|
|
32
33
|
const modalPanel = require("./unit-details/modal-panel.cjs");
|
|
33
34
|
const popover = require("./unit-details/popover.cjs");
|
|
34
35
|
const unitSelection = require("./data-provider/unit-selection.cjs");
|
|
35
|
-
const styles = require("./maps/_shared/styles.cjs");
|
|
36
36
|
const colors = require("./units/colors.cjs");
|
|
37
37
|
const hashString = require("./correlation-chart/hash-string.cjs");
|
|
38
38
|
const helpers = require("./prepare-units/helpers.cjs");
|
|
@@ -59,6 +59,7 @@ exports.ComputedSurfacesOverlay = ageModelOverlay.ComputedSurfacesOverlay;
|
|
|
59
59
|
exports.ColumnNotes = notes.ColumnNotes;
|
|
60
60
|
exports.AgeField = ageRange.AgeField;
|
|
61
61
|
exports.AgeLabel = ageRange.AgeLabel;
|
|
62
|
+
exports.AgeRange = ageRange.AgeRange;
|
|
62
63
|
exports.Duration = ageRange.Duration;
|
|
63
64
|
exports.IntervalProportions = ageRange.IntervalProportions;
|
|
64
65
|
exports.getAge = ageRange.getAge;
|
|
@@ -70,6 +71,9 @@ exports.CompositeUnitsColumn = composite.CompositeUnitsColumn;
|
|
|
70
71
|
exports.LabelTrackerProvider = composite.LabelTrackerProvider;
|
|
71
72
|
exports.SectionLabelsColumn = composite.SectionLabelsColumn;
|
|
72
73
|
exports.TrackedLabeledUnit = composite.TrackedLabeledUnit;
|
|
74
|
+
exports.BaseColumnsLayer = columns.BaseColumnsLayer;
|
|
75
|
+
exports.SelectedColumnOverlay = columns.SelectedColumnOverlay;
|
|
76
|
+
exports.buildColumnsStyle = columns.buildColumnsStyle;
|
|
73
77
|
exports.BaseMeasurementsColumn = base.BaseMeasurementsColumn;
|
|
74
78
|
exports.TruncatedList = base.TruncatedList;
|
|
75
79
|
exports.groupNotesByPixelDistance = base.groupNotesByPixelDistance;
|
|
@@ -91,9 +95,12 @@ exports.MeasurementsLayer = layers.MeasurementsLayer;
|
|
|
91
95
|
exports.ColumnCorrelationMap = core.ColumnCorrelationMap;
|
|
92
96
|
exports.ColumnCorrelationProvider = state.ColumnCorrelationProvider;
|
|
93
97
|
exports.useCorrelationMapStore = state.useCorrelationMapStore;
|
|
98
|
+
exports.ColumnHoverInteraction = index$1.ColumnHoverInteraction;
|
|
99
|
+
exports.ColumnNavigationMap = index$1.ColumnNavigationMap;
|
|
100
|
+
exports.ColumnSelectionManager = index$1.ColumnSelectionManager;
|
|
101
|
+
exports.ColumnsNavigationLayer = index$1.ColumnsNavigationLayer;
|
|
94
102
|
exports.ColumnNavProvider = columnNav.ColumnNavProvider;
|
|
95
103
|
exports.useColumnNav = columnNav.useColumnNav;
|
|
96
|
-
exports.ColumnNavigationMap = index$1.ColumnNavigationMap;
|
|
97
104
|
exports.ColumnNavigationSVGMap = index$2.ColumnNavigationSVGMap;
|
|
98
105
|
exports.ResizableMapFrame = index$2.ResizableMapFrame;
|
|
99
106
|
exports.CorrelationChart = main.CorrelationChart;
|
|
@@ -103,7 +110,7 @@ exports.FossilDataType = provider.FossilDataType;
|
|
|
103
110
|
exports.useFossilData = provider.useFossilData;
|
|
104
111
|
exports.HeightMethod = types.HeightMethod;
|
|
105
112
|
exports.HybridScaleType = types.HybridScaleType;
|
|
106
|
-
exports.InsetMap =
|
|
113
|
+
exports.InsetMap = index$4.InsetMap;
|
|
107
114
|
exports.IsotopesColumn = isotopesColumn.IsotopesColumn;
|
|
108
115
|
exports.IsotopesDataset = isotopesColumn.IsotopesDataset;
|
|
109
116
|
exports.LithologiesProvider = store.LithologiesProvider;
|
|
@@ -118,8 +125,8 @@ exports.useColumnUnitsMap = store.useColumnUnitsMap;
|
|
|
118
125
|
exports.useCompositeScale = store.useCompositeScale;
|
|
119
126
|
exports.useMacrostratColumnData = store.useMacrostratColumnData;
|
|
120
127
|
exports.useMacrostratUnits = store.useMacrostratUnits;
|
|
121
|
-
exports.MacrostratUnitsOverlay =
|
|
122
|
-
exports.buildUnitsStyle =
|
|
128
|
+
exports.MacrostratUnitsOverlay = units.MacrostratUnitsOverlay;
|
|
129
|
+
exports.buildUnitsStyle = units.buildUnitsStyle;
|
|
123
130
|
exports.MeasurementDataContext = dataProvider.MeasurementDataContext;
|
|
124
131
|
exports.MeasurementDataProvider = dataProvider.MeasurementDataProvider;
|
|
125
132
|
exports.useMeasurementData = dataProvider.useMeasurementData;
|
|
@@ -146,7 +153,6 @@ exports.useColumnRef = unitSelection.useColumnRef;
|
|
|
146
153
|
exports.useSelectedUnit = unitSelection.useSelectedUnit;
|
|
147
154
|
exports.useUnitSelectionDispatch = unitSelection.useUnitSelectionDispatch;
|
|
148
155
|
exports.useUnitSelectionTarget = unitSelection.useUnitSelectionTarget;
|
|
149
|
-
exports.buildColumnsStyle = styles.buildColumnsStyle;
|
|
150
156
|
exports.flattenLithologies = colors.flattenLithologies;
|
|
151
157
|
exports.getMixedColorForData = colors.getMixedColorForData;
|
|
152
158
|
exports.getMixedUnitColor = colors.getMixedUnitColor;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -4,24 +4,25 @@ import { prepareColumnUnits, usePreparedColumnUnits } from "./prepare-units/inde
|
|
|
4
4
|
import { Column, ColumnBasicInfo, ColumnContainer } from "./column.js";
|
|
5
5
|
import { BoundaryAgeModelOverlay, ComputedSurfacesOverlay } from "./age-model-overlay.js";
|
|
6
6
|
import { ColumnNotes } from "./notes.js";
|
|
7
|
-
import { AgeField, AgeLabel, Duration, IntervalProportions, getAge, getAgeRange } from "./unit-details/age-range.js";
|
|
7
|
+
import { AgeField, AgeLabel, AgeRange, Duration, IntervalProportions, getAge, getAgeRange } from "./unit-details/age-range.js";
|
|
8
8
|
import { AnnotatedUnitsColumn, ColumnNotesProvider, CompositeUnitComponent, CompositeUnitsColumn, LabelTrackerProvider, SectionLabelsColumn, TrackedLabeledUnit } from "./units/composite.js";
|
|
9
|
+
import { BaseColumnsLayer, SelectedColumnOverlay, buildColumnsStyle } from "./maps/layers/columns.js";
|
|
9
10
|
import { BaseMeasurementsColumn, TruncatedList, groupNotesByPixelDistance, mergeHeightRanges, standardizeMeasurementHeight } from "./facets/measurements/base.js";
|
|
10
11
|
import { ClickableText, Identifier, LegendPanelHeader, ReferencesField, ThicknessField, UnitDetailsFeature, UnitDetailsPanel } from "./unit-details/panel.js";
|
|
11
12
|
import { ColumnCenters, ColumnFeatures, ColumnKeyboardNavigation, Columns, CurrentColumn, MeasurementsLayer } from "./maps/column-navigation/svg/layers.js";
|
|
12
13
|
import { ColumnCorrelationMap } from "./maps/column-correlation/core.js";
|
|
13
14
|
import { ColumnCorrelationProvider, useCorrelationMapStore } from "./maps/column-correlation/state.js";
|
|
15
|
+
import { ColumnHoverInteraction, ColumnNavigationMap, ColumnSelectionManager, ColumnsNavigationLayer } from "./maps/column-navigation/mapbox/index.js";
|
|
14
16
|
import { ColumnNavProvider, useColumnNav } from "./data-provider/column-nav.js";
|
|
15
|
-
import { ColumnNavigationMap } from "./maps/column-navigation/mapbox/index.js";
|
|
16
17
|
import { ColumnNavigationSVGMap, ResizableMapFrame } from "./maps/column-navigation/svg/index.js";
|
|
17
18
|
import { CorrelationChart } from "./correlation-chart/main.js";
|
|
18
19
|
import { DetritalColumn, DetritalGroup } from "./facets/detrital-zircon/index.js";
|
|
19
20
|
import { FossilDataType, useFossilData } from "./facets/fossils/provider.js";
|
|
20
21
|
import { HeightMethod, HybridScaleType } from "./prepare-units/types.js";
|
|
21
|
-
import { InsetMap } from "./maps/
|
|
22
|
+
import { InsetMap } from "./maps/inset-map/index.js";
|
|
22
23
|
import { IsotopesColumn, IsotopesDataset } from "./facets/carbon-isotopes/isotopes-column.js";
|
|
23
24
|
import { LithologiesProvider, MacrostratColumnDataProvider, MacrostratColumnProvider, MacrostratColumnStateProvider, UnitSelectionProvider, columnUnitsAtom, columnUnitsMapAtom, scope, useColumnUnitsMap, useCompositeScale, useMacrostratColumnData, useMacrostratUnits } from "./data-provider/store.js";
|
|
24
|
-
import { MacrostratUnitsOverlay, buildUnitsStyle } from "./maps/units
|
|
25
|
+
import { MacrostratUnitsOverlay, buildUnitsStyle } from "./maps/layers/units.js";
|
|
25
26
|
import { MeasurementDataContext, MeasurementDataProvider, useMeasurementData } from "./facets/carbon-isotopes/data-provider.js";
|
|
26
27
|
import { MergeSectionsMode, agesOverlap, createUnitSorter, ensureArray, ensureRealFloat, getPositionWithinUnit, getUnitHeightRange, unitsOverlap } from "./prepare-units/utils.js";
|
|
27
28
|
import { PBDBFossilsColumn } from "./facets/fossils/index.js";
|
|
@@ -30,7 +31,6 @@ import { SGPMeasurementsColumn } from "./facets/measurements/sgp.js";
|
|
|
30
31
|
import { UnitDetailsPanelWithNavigation } from "./unit-details/modal-panel.js";
|
|
31
32
|
import { UnitDetailsPopover, UnitSelectionPopover } from "./unit-details/popover.js";
|
|
32
33
|
import { UnitKeyboardNavigation, UnitSelectionCallbackManager, allowUnitSelectionAtom, selectedUnitIDAtom, useAtomOverlayPosition, useColumnRef, useSelectedUnit, useUnitSelectionDispatch, useUnitSelectionTarget } from "./data-provider/unit-selection.js";
|
|
33
|
-
import { buildColumnsStyle } from "./maps/_shared/styles.js";
|
|
34
34
|
import { flattenLithologies, getMixedColorForData, getMixedUnitColor } from "./units/colors.js";
|
|
35
35
|
import { parseLineFromString, stringifyLine } from "./correlation-chart/hash-string.js";
|
|
36
36
|
import { preprocessUnits } from "./prepare-units/helpers.js";
|
|
@@ -38,8 +38,10 @@ export {
|
|
|
38
38
|
AgeCursor,
|
|
39
39
|
AgeField,
|
|
40
40
|
AgeLabel,
|
|
41
|
+
AgeRange,
|
|
41
42
|
AnnotatedUnitsColumn,
|
|
42
43
|
ApproximateHeightAxis,
|
|
44
|
+
BaseColumnsLayer,
|
|
43
45
|
BaseMeasurementsColumn,
|
|
44
46
|
BasicUnitComponent,
|
|
45
47
|
BoundaryAgeModelOverlay,
|
|
@@ -52,13 +54,16 @@ export {
|
|
|
52
54
|
ColumnCorrelationMap,
|
|
53
55
|
ColumnCorrelationProvider,
|
|
54
56
|
ColumnFeatures,
|
|
57
|
+
ColumnHoverInteraction,
|
|
55
58
|
ColumnKeyboardNavigation,
|
|
56
59
|
ColumnNavProvider,
|
|
57
60
|
ColumnNavigationMap,
|
|
58
61
|
ColumnNavigationSVGMap,
|
|
59
62
|
ColumnNotes,
|
|
60
63
|
ColumnNotesProvider,
|
|
64
|
+
ColumnSelectionManager,
|
|
61
65
|
Columns,
|
|
66
|
+
ColumnsNavigationLayer,
|
|
62
67
|
CompositeAgeAxis,
|
|
63
68
|
CompositeAgeAxisCore,
|
|
64
69
|
CompositeUnitComponent,
|
|
@@ -95,6 +100,7 @@ export {
|
|
|
95
100
|
ResizableMapFrame,
|
|
96
101
|
SGPMeasurementsColumn,
|
|
97
102
|
SectionLabelsColumn,
|
|
103
|
+
SelectedColumnOverlay,
|
|
98
104
|
SimpleUnitsColumn,
|
|
99
105
|
ThicknessField,
|
|
100
106
|
TrackedLabeledUnit,
|
|
@@ -6,30 +6,22 @@ const h = require("@macrostrat/hyper");
|
|
|
6
6
|
const React = require("react");
|
|
7
7
|
const mapboxUtils = require("@macrostrat/mapbox-utils");
|
|
8
8
|
const state = require("./state.cjs");
|
|
9
|
+
const index = require("../inset-map/index.cjs");
|
|
9
10
|
const mapStyles = require("@macrostrat/map-styles");
|
|
10
|
-
const
|
|
11
|
-
const insetMap = require("../_shared/inset-map.cjs");
|
|
11
|
+
const columns = require("../layers/columns.cjs");
|
|
12
12
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
13
13
|
const h__default = /* @__PURE__ */ _interopDefault(h);
|
|
14
14
|
function ColumnCorrelationMap(props) {
|
|
15
15
|
const { padding = 50, children, columnColor, projectID, ...rest } = props;
|
|
16
|
-
const overlayStyles = React.useMemo(() => {
|
|
17
|
-
return [
|
|
18
|
-
styles.buildColumnsStyle(columnColor),
|
|
19
|
-
selectedColumnsStyle,
|
|
20
|
-
lineOfSectionStyle
|
|
21
|
-
];
|
|
22
|
-
}, [columnColor]);
|
|
23
16
|
return h__default.default(
|
|
24
|
-
|
|
17
|
+
index.InsetMap,
|
|
25
18
|
{
|
|
26
19
|
...rest,
|
|
27
20
|
boxZoom: false,
|
|
28
|
-
dragRotate: false
|
|
29
|
-
overlayStyles
|
|
21
|
+
dragRotate: false
|
|
30
22
|
},
|
|
31
23
|
[
|
|
32
|
-
h__default.default(ColumnsLayer),
|
|
24
|
+
h__default.default(ColumnsLayer, { color: columnColor }),
|
|
33
25
|
h__default.default(SelectedColumnsLayer),
|
|
34
26
|
h__default.default(MapClickHandler),
|
|
35
27
|
h__default.default(SectionLine, { padding }),
|
|
@@ -48,6 +40,7 @@ function MapClickHandler() {
|
|
|
48
40
|
return null;
|
|
49
41
|
}
|
|
50
42
|
function SelectedColumnsLayer() {
|
|
43
|
+
mapboxReact.useOverlayStyle(() => selectedColumnsStyle, []);
|
|
51
44
|
const focusedColumns = state.useCorrelationMapStore(
|
|
52
45
|
(state2) => state2.focusedColumns
|
|
53
46
|
);
|
|
@@ -78,23 +71,9 @@ function SelectedColumnsLayer() {
|
|
|
78
71
|
);
|
|
79
72
|
return null;
|
|
80
73
|
}
|
|
81
|
-
function ColumnsLayer({ enabled = true }) {
|
|
82
|
-
const columns = state.useCorrelationMapStore((state2) => state2.columns);
|
|
83
|
-
|
|
84
|
-
(map) => {
|
|
85
|
-
if (columns == null) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const data = {
|
|
89
|
-
type: "FeatureCollection",
|
|
90
|
-
features: columns
|
|
91
|
-
};
|
|
92
|
-
console.log(" columns", data);
|
|
93
|
-
mapboxUtils.setGeoJSON(map, "columns", data);
|
|
94
|
-
},
|
|
95
|
-
[columns, enabled]
|
|
96
|
-
);
|
|
97
|
-
return null;
|
|
74
|
+
function ColumnsLayer({ enabled = true, color }) {
|
|
75
|
+
const columns$1 = state.useCorrelationMapStore((state2) => state2.columns);
|
|
76
|
+
return h__default.default(columns.BaseColumnsLayer, { enabled, color, columns: columns$1 });
|
|
98
77
|
}
|
|
99
78
|
const selectedColumnsStyle = {
|
|
100
79
|
version: 8,
|
|
@@ -142,6 +121,7 @@ const lineOfSectionStyle = {
|
|
|
142
121
|
layers: mapStyles.buildCrossSectionLayers()
|
|
143
122
|
};
|
|
144
123
|
function SectionLine({ padding }) {
|
|
124
|
+
mapboxReact.useOverlayStyle(() => lineOfSectionStyle, []);
|
|
145
125
|
const focusedLine = state.useCorrelationMapStore((state2) => state2.focusedLine);
|
|
146
126
|
mapboxReact.useMapStyleOperator(
|
|
147
127
|
(map) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.cjs","sources":["../../../src/maps/column-correlation/core.ts"],"sourcesContent":["import {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds, Style } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON, buildGeoJSONSource } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport {
|
|
1
|
+
{"version":3,"file":"core.cjs","sources":["../../../src/maps/column-correlation/core.ts"],"sourcesContent":["import {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n useOverlayStyle,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds, Style } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON, buildGeoJSONSource } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport { InsetMap, type InsetMapProps } from \"../inset-map\";\nimport { BaseColumnsLayer } from \"../layers\";\nimport { buildCrossSectionLayers } from \"@macrostrat/map-styles\";\n\nexport interface CorrelationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n columnColor?: string;\n}\n\nexport function ColumnCorrelationMap(props: CorrelationMapProps) {\n const { padding = 50, children, columnColor, projectID, ...rest } = props;\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n },\n [\n h(ColumnsLayer, { color: columnColor }),\n h(SelectedColumnsLayer),\n h(MapClickHandler),\n h(SectionLine, { padding }),\n children,\n ],\n );\n}\n\nfunction MapClickHandler() {\n const onClickMap = useCorrelationMapStore((state) => state.onClickMap);\n\n useMapClickHandler(\n (e) => {\n onClickMap(e, { type: \"Point\", coordinates: e.lngLat.toArray() });\n },\n [onClickMap],\n );\n\n return null;\n}\n\nfunction SelectedColumnsLayer() {\n useOverlayStyle(() => selectedColumnsStyle, []);\n\n const focusedColumns = useCorrelationMapStore(\n (state) => state.focusedColumns,\n );\n\n useMapStyleOperator(\n (map) => {\n let features = focusedColumns;\n\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features,\n };\n\n const columnCentroidLine: Feature = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map(\n (col) => col.properties.centroid.geometry.coordinates,\n ),\n },\n properties: {},\n };\n\n setGeoJSON(map, \"selected-columns\", data);\n setGeoJSON(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [columnCentroidLine],\n });\n },\n [focusedColumns],\n );\n return null;\n}\n\nfunction ColumnsLayer({ enabled = true, color }) {\n const columns = useCorrelationMapStore((state) => state.columns);\n return h(BaseColumnsLayer, { enabled, color, columns });\n}\n\nconst selectedColumnsStyle: Style = {\n version: 8,\n sources: {\n \"selected-columns\": buildGeoJSONSource(),\n \"selected-column-centroids\": buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\",\n },\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [2, 2],\n },\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\",\n },\n },\n ],\n};\n\nconst lineOfSectionStyle: Style = {\n version: 8,\n sources: {\n elevationMarker: buildGeoJSONSource(),\n crossSectionLine: buildGeoJSONSource(),\n crossSectionEndpoints: buildGeoJSONSource(),\n },\n layers: buildCrossSectionLayers(),\n};\n\nfunction SectionLine({ padding }: { padding: number }) {\n useOverlayStyle(() => lineOfSectionStyle, []);\n const focusedLine = useCorrelationMapStore((state) => state.focusedLine);\n\n // Setup focused line\n useMapStyleOperator(\n (map) => {\n if (focusedLine == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: { id: \"focusedLine\" },\n },\n ],\n };\n\n setGeoJSON(map, \"crossSectionLine\", data);\n setGeoJSON(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord) => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: coord },\n properties: {},\n })),\n });\n },\n [focusedLine],\n );\n\n const bounds = useMemo(() => {\n if (focusedLine == null || focusedLine?.coordinates.length < 2) {\n return null;\n }\n let bounds = new LngLatBounds();\n for (let coord of focusedLine.coordinates) {\n bounds.extend(coord);\n }\n return bounds;\n }, [focusedLine]);\n\n useMapEaseTo({ bounds, padding, trackResize: true });\n\n return null;\n}\n"],"names":["h","InsetMap","useCorrelationMapStore","state","useMapClickHandler","useOverlayStyle","useMapStyleOperator","setGeoJSON","columns","BaseColumnsLayer","buildGeoJSONSource","buildCrossSectionLayers","useMemo","bounds","LngLatBounds","useMapEaseTo"],"mappings":"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"}
|
|
@@ -1,31 +1,23 @@
|
|
|
1
|
-
import { useMapStyleOperator, useMapClickHandler, useMapEaseTo } from "@macrostrat/mapbox-react";
|
|
1
|
+
import { useOverlayStyle, useMapStyleOperator, useMapClickHandler, useMapEaseTo } from "@macrostrat/mapbox-react";
|
|
2
2
|
import { LngLatBounds } from "mapbox-gl";
|
|
3
3
|
import h from "@macrostrat/hyper";
|
|
4
4
|
import { useMemo } from "react";
|
|
5
|
-
import {
|
|
5
|
+
import { setGeoJSON, buildGeoJSONSource } from "@macrostrat/mapbox-utils";
|
|
6
6
|
import { useCorrelationMapStore } from "./state.js";
|
|
7
|
+
import { InsetMap } from "../inset-map/index.js";
|
|
7
8
|
import { buildCrossSectionLayers } from "@macrostrat/map-styles";
|
|
8
|
-
import {
|
|
9
|
-
import { InsetMap } from "../_shared/inset-map.js";
|
|
9
|
+
import { BaseColumnsLayer } from "../layers/columns.js";
|
|
10
10
|
function ColumnCorrelationMap(props) {
|
|
11
11
|
const { padding = 50, children, columnColor, projectID, ...rest } = props;
|
|
12
|
-
const overlayStyles = useMemo(() => {
|
|
13
|
-
return [
|
|
14
|
-
buildColumnsStyle(columnColor),
|
|
15
|
-
selectedColumnsStyle,
|
|
16
|
-
lineOfSectionStyle
|
|
17
|
-
];
|
|
18
|
-
}, [columnColor]);
|
|
19
12
|
return h(
|
|
20
13
|
InsetMap,
|
|
21
14
|
{
|
|
22
15
|
...rest,
|
|
23
16
|
boxZoom: false,
|
|
24
|
-
dragRotate: false
|
|
25
|
-
overlayStyles
|
|
17
|
+
dragRotate: false
|
|
26
18
|
},
|
|
27
19
|
[
|
|
28
|
-
h(ColumnsLayer),
|
|
20
|
+
h(ColumnsLayer, { color: columnColor }),
|
|
29
21
|
h(SelectedColumnsLayer),
|
|
30
22
|
h(MapClickHandler),
|
|
31
23
|
h(SectionLine, { padding }),
|
|
@@ -44,6 +36,7 @@ function MapClickHandler() {
|
|
|
44
36
|
return null;
|
|
45
37
|
}
|
|
46
38
|
function SelectedColumnsLayer() {
|
|
39
|
+
useOverlayStyle(() => selectedColumnsStyle, []);
|
|
47
40
|
const focusedColumns = useCorrelationMapStore(
|
|
48
41
|
(state) => state.focusedColumns
|
|
49
42
|
);
|
|
@@ -74,23 +67,9 @@ function SelectedColumnsLayer() {
|
|
|
74
67
|
);
|
|
75
68
|
return null;
|
|
76
69
|
}
|
|
77
|
-
function ColumnsLayer({ enabled = true }) {
|
|
70
|
+
function ColumnsLayer({ enabled = true, color }) {
|
|
78
71
|
const columns = useCorrelationMapStore((state) => state.columns);
|
|
79
|
-
|
|
80
|
-
(map) => {
|
|
81
|
-
if (columns == null) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const data = {
|
|
85
|
-
type: "FeatureCollection",
|
|
86
|
-
features: columns
|
|
87
|
-
};
|
|
88
|
-
console.log(" columns", data);
|
|
89
|
-
setGeoJSON(map, "columns", data);
|
|
90
|
-
},
|
|
91
|
-
[columns, enabled]
|
|
92
|
-
);
|
|
93
|
-
return null;
|
|
72
|
+
return h(BaseColumnsLayer, { enabled, color, columns });
|
|
94
73
|
}
|
|
95
74
|
const selectedColumnsStyle = {
|
|
96
75
|
version: 8,
|
|
@@ -138,6 +117,7 @@ const lineOfSectionStyle = {
|
|
|
138
117
|
layers: buildCrossSectionLayers()
|
|
139
118
|
};
|
|
140
119
|
function SectionLine({ padding }) {
|
|
120
|
+
useOverlayStyle(() => lineOfSectionStyle, []);
|
|
141
121
|
const focusedLine = useCorrelationMapStore((state) => state.focusedLine);
|
|
142
122
|
useMapStyleOperator(
|
|
143
123
|
(map) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sources":["../../../src/maps/column-correlation/core.ts"],"sourcesContent":["import {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds, Style } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON, buildGeoJSONSource } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport {
|
|
1
|
+
{"version":3,"file":"core.js","sources":["../../../src/maps/column-correlation/core.ts"],"sourcesContent":["import {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n useOverlayStyle,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds, Style } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON, buildGeoJSONSource } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport { InsetMap, type InsetMapProps } from \"../inset-map\";\nimport { BaseColumnsLayer } from \"../layers\";\nimport { buildCrossSectionLayers } from \"@macrostrat/map-styles\";\n\nexport interface CorrelationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n columnColor?: string;\n}\n\nexport function ColumnCorrelationMap(props: CorrelationMapProps) {\n const { padding = 50, children, columnColor, projectID, ...rest } = props;\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n },\n [\n h(ColumnsLayer, { color: columnColor }),\n h(SelectedColumnsLayer),\n h(MapClickHandler),\n h(SectionLine, { padding }),\n children,\n ],\n );\n}\n\nfunction MapClickHandler() {\n const onClickMap = useCorrelationMapStore((state) => state.onClickMap);\n\n useMapClickHandler(\n (e) => {\n onClickMap(e, { type: \"Point\", coordinates: e.lngLat.toArray() });\n },\n [onClickMap],\n );\n\n return null;\n}\n\nfunction SelectedColumnsLayer() {\n useOverlayStyle(() => selectedColumnsStyle, []);\n\n const focusedColumns = useCorrelationMapStore(\n (state) => state.focusedColumns,\n );\n\n useMapStyleOperator(\n (map) => {\n let features = focusedColumns;\n\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features,\n };\n\n const columnCentroidLine: Feature = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map(\n (col) => col.properties.centroid.geometry.coordinates,\n ),\n },\n properties: {},\n };\n\n setGeoJSON(map, \"selected-columns\", data);\n setGeoJSON(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [columnCentroidLine],\n });\n },\n [focusedColumns],\n );\n return null;\n}\n\nfunction ColumnsLayer({ enabled = true, color }) {\n const columns = useCorrelationMapStore((state) => state.columns);\n return h(BaseColumnsLayer, { enabled, color, columns });\n}\n\nconst selectedColumnsStyle: Style = {\n version: 8,\n sources: {\n \"selected-columns\": buildGeoJSONSource(),\n \"selected-column-centroids\": buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\",\n },\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [2, 2],\n },\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\",\n },\n },\n ],\n};\n\nconst lineOfSectionStyle: Style = {\n version: 8,\n sources: {\n elevationMarker: buildGeoJSONSource(),\n crossSectionLine: buildGeoJSONSource(),\n crossSectionEndpoints: buildGeoJSONSource(),\n },\n layers: buildCrossSectionLayers(),\n};\n\nfunction SectionLine({ padding }: { padding: number }) {\n useOverlayStyle(() => lineOfSectionStyle, []);\n const focusedLine = useCorrelationMapStore((state) => state.focusedLine);\n\n // Setup focused line\n useMapStyleOperator(\n (map) => {\n if (focusedLine == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: { id: \"focusedLine\" },\n },\n ],\n };\n\n setGeoJSON(map, \"crossSectionLine\", data);\n setGeoJSON(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord) => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: coord },\n properties: {},\n })),\n });\n },\n [focusedLine],\n );\n\n const bounds = useMemo(() => {\n if (focusedLine == null || focusedLine?.coordinates.length < 2) {\n return null;\n }\n let bounds = new LngLatBounds();\n for (let coord of focusedLine.coordinates) {\n bounds.extend(coord);\n }\n return bounds;\n }, [focusedLine]);\n\n useMapEaseTo({ bounds, padding, trackResize: true });\n\n return null;\n}\n"],"names":["bounds"],"mappings":";;;;;;;;;AAwBO,SAAS,qBAAqB,OAA4B;AAC/D,QAAM,EAAE,UAAU,IAAI,UAAU,aAAa,WAAW,GAAG,SAAS;AAEpE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,SAAS;AAAA,MACT,YAAY;AAAA,IAAA;AAAA,IAEd;AAAA,MACE,EAAE,cAAc,EAAE,OAAO,aAAa;AAAA,MACtC,EAAE,oBAAoB;AAAA,MACtB,EAAE,eAAe;AAAA,MACjB,EAAE,aAAa,EAAE,SAAS;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ;AAEA,SAAS,kBAAkB;AACzB,QAAM,aAAa,uBAAuB,CAAC,UAAU,MAAM,UAAU;AAErE;AAAA,IACE,CAAC,MAAM;AACL,iBAAW,GAAG,EAAE,MAAM,SAAS,aAAa,EAAE,OAAO,QAAA,GAAW;AAAA,IAClE;AAAA,IACA,CAAC,UAAU;AAAA,EAAA;AAGb,SAAO;AACT;AAEA,SAAS,uBAAuB;AAC9B,kBAAgB,MAAM,sBAAsB,EAAE;AAE9C,QAAM,iBAAiB;AAAA,IACrB,CAAC,UAAU,MAAM;AAAA,EAAA;AAGnB;AAAA,IACE,CAAC,QAAQ;AACP,UAAI,WAAW;AAEf,YAAM,OAA0B;AAAA,QAC9B,MAAM;AAAA,QACN;AAAA,MAAA;AAGF,YAAM,qBAA8B;AAAA,QAClC,MAAM;AAAA,QACN,UAAU;AAAA,UACR,MAAM;AAAA,UACN,aAAa,SAAS;AAAA,YACpB,CAAC,QAAQ,IAAI,WAAW,SAAS,SAAS;AAAA,UAAA;AAAA,QAC5C;AAAA,QAEF,YAAY,CAAA;AAAA,MAAC;AAGf,iBAAW,KAAK,oBAAoB,IAAI;AACxC,iBAAW,KAAK,6BAA6B;AAAA,QAC3C,MAAM;AAAA,QACN,UAAU,CAAC,kBAAkB;AAAA,MAAA,CAC9B;AAAA,IACH;AAAA,IACA,CAAC,cAAc;AAAA,EAAA;AAEjB,SAAO;AACT;AAEA,SAAS,aAAa,EAAE,UAAU,MAAM,SAAS;AAC/C,QAAM,UAAU,uBAAuB,CAAC,UAAU,MAAM,OAAO;AAC/D,SAAO,EAAE,kBAAkB,EAAE,SAAS,OAAO,SAAS;AACxD;AAEA,MAAM,uBAA8B;AAAA,EAClC,SAAS;AAAA,EACT,SAAS;AAAA,IACP,oBAAoB,mBAAA;AAAA,IACpB,6BAA6B,mBAAA;AAAA,EAAmB;AAAA,EAElD,QAAQ;AAAA,IACN;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,cAAc;AAAA,MAAA;AAAA,IAChB;AAAA,IAEF;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,cAAc;AAAA,QACd,cAAc;AAAA,QACd,kBAAkB,CAAC,GAAG,CAAC;AAAA,MAAA;AAAA,IACzB;AAAA,IAEF;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,MAAA;AAAA,IAClB;AAAA,EACF;AAEJ;AAEA,MAAM,qBAA4B;AAAA,EAChC,SAAS;AAAA,EACT,SAAS;AAAA,IACP,iBAAiB,mBAAA;AAAA,IACjB,kBAAkB,mBAAA;AAAA,IAClB,uBAAuB,mBAAA;AAAA,EAAmB;AAAA,EAE5C,QAAQ,wBAAA;AACV;AAEA,SAAS,YAAY,EAAE,WAAgC;AACrD,kBAAgB,MAAM,oBAAoB,EAAE;AAC5C,QAAM,cAAc,uBAAuB,CAAC,UAAU,MAAM,WAAW;AAGvE;AAAA,IACE,CAAC,QAAQ;AACP,UAAI,eAAe,MAAM;AACvB;AAAA,MACF;AACA,YAAM,OAA0B;AAAA,QAC9B,MAAM;AAAA,QACN,UAAU;AAAA,UACR;AAAA,YACE,MAAM;AAAA,YACN,UAAU;AAAA,YACV,YAAY,EAAE,IAAI,cAAA;AAAA,UAAc;AAAA,QAClC;AAAA,MACF;AAGF,iBAAW,KAAK,oBAAoB,IAAI;AACxC,iBAAW,KAAK,yBAAyB;AAAA,QACvC,MAAM;AAAA,QACN,UAAU,YAAY,YAAY,IAAI,CAAC,WAAW;AAAA,UAChD,MAAM;AAAA,UACN,UAAU,EAAE,MAAM,SAAS,aAAa,MAAA;AAAA,UACxC,YAAY,CAAA;AAAA,QAAC,EACb;AAAA,MAAA,CACH;AAAA,IACH;AAAA,IACA,CAAC,WAAW;AAAA,EAAA;AAGd,QAAM,SAAS,QAAQ,MAAM;AAC3B,QAAI,eAAe,QAAQ,aAAa,YAAY,SAAS,GAAG;AAC9D,aAAO;AAAA,IACT;AACA,QAAIA,UAAS,IAAI,aAAA;AACjB,aAAS,SAAS,YAAY,aAAa;AACzCA,cAAO,OAAO,KAAK;AAAA,IACrB;AACA,WAAOA;AAAAA,EACT,GAAG,CAAC,WAAW,CAAC;AAEhB,eAAa,EAAE,QAAQ,SAAS,aAAa,MAAM;AAEnD,SAAO;AACT;"}
|