@macrostrat/column-views 2.3.0 → 2.3.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 -2
- package/dist/esm/{column-views.c3c7901a.js → column-views.029ea8f1.js} +6 -3
- package/dist/esm/column-views.029ea8f1.js.map +1 -0
- package/dist/esm/{column-views.5eb4e6ff.js → column-views.0a010643.js} +2 -2
- package/dist/esm/column-views.0a010643.js.map +1 -0
- package/dist/esm/{column-views.44373a90.js → column-views.18aac6a5.js} +2 -2
- package/dist/esm/{column-views.44373a90.js.map → column-views.18aac6a5.js.map} +1 -1
- package/dist/esm/{column-views.322790f3.js → column-views.24060b85.js} +5 -9
- package/dist/esm/column-views.24060b85.js.map +1 -0
- package/dist/esm/{column-views.de433f18.js → column-views.26e0e0b6.js} +3 -3
- package/dist/esm/column-views.26e0e0b6.js.map +1 -0
- package/dist/esm/column-views.2c45a7b5.js.map +1 -1
- package/dist/esm/{column-views.92575b87.js → column-views.2f979aee.js} +2 -2
- package/dist/esm/{column-views.92575b87.js.map → column-views.2f979aee.js.map} +1 -1
- package/dist/esm/{column-views.2bac03a2.js → column-views.3f1cdc18.js} +2 -2
- package/dist/esm/{column-views.2bac03a2.js.map → column-views.3f1cdc18.js.map} +1 -1
- package/dist/esm/{column-views.40094dd9.js → column-views.4685ea28.js} +15 -14
- package/dist/esm/column-views.4685ea28.js.map +1 -0
- package/dist/esm/column-views.4b259f9e.js.map +1 -1
- package/dist/esm/{column-views.dc195174.js → column-views.4e6eead3.js} +2 -2
- package/dist/esm/{column-views.dc195174.js.map → column-views.4e6eead3.js.map} +1 -1
- package/dist/esm/{column-views.403a7b48.css → column-views.6f9511d1.css} +2 -1
- package/dist/esm/column-views.6f9511d1.css.map +1 -0
- package/dist/esm/{column-views.107b47b4.js → column-views.6f96d1c3.js} +6 -6
- package/dist/esm/{column-views.107b47b4.js.map → column-views.6f96d1c3.js.map} +1 -1
- package/dist/esm/{column-views.343fc926.js → column-views.6fff7602.js} +5 -10
- package/dist/esm/column-views.6fff7602.js.map +1 -0
- package/dist/esm/{column-views.5ca2b219.js → column-views.73fc96cb.js} +3 -3
- package/dist/esm/{column-views.5ca2b219.js.map → column-views.73fc96cb.js.map} +1 -1
- package/dist/esm/column-views.75b83110.js +13 -0
- package/dist/esm/{column-views.3c9cba65.js.map → column-views.75b83110.js.map} +1 -1
- package/dist/esm/{column-views.d524075b.js → column-views.82a5112b.js} +4 -4
- package/dist/esm/{column-views.d524075b.js.map → column-views.82a5112b.js.map} +1 -1
- package/dist/esm/column-views.82eb5026.js.map +1 -1
- package/dist/esm/{column-views.6df65dab.js → column-views.8d972657.js} +3 -3
- package/dist/esm/{column-views.6df65dab.js.map → column-views.8d972657.js.map} +1 -1
- package/dist/esm/column-views.9ffc089b.js.map +1 -1
- package/dist/esm/{column-views.63d40878.js → column-views.a665cbb2.js} +2 -2
- package/dist/esm/{column-views.63d40878.js.map → column-views.a665cbb2.js.map} +1 -1
- package/dist/esm/{column-views.565b193a.js → column-views.b9265595.js} +2 -2
- package/dist/esm/{column-views.565b193a.js.map → column-views.b9265595.js.map} +1 -1
- package/dist/esm/{column-views.afe0bb48.js → column-views.b977da35.js} +3 -3
- package/dist/esm/{column-views.afe0bb48.js.map → column-views.b977da35.js.map} +1 -1
- package/dist/esm/{column-views.7fa0d026.js → column-views.d5fff9b8.js} +4 -5
- package/dist/esm/column-views.d5fff9b8.js.map +1 -0
- package/dist/esm/column-views.e075af15.js.map +1 -1
- package/dist/esm/{column-views.2708e176.js → column-views.e3f0cd7b.js} +6 -6
- package/dist/esm/{column-views.2708e176.js.map → column-views.e3f0cd7b.js.map} +1 -1
- package/dist/esm/{column-views.6c9e5069.js → column-views.ee9d71ba.js} +4 -5
- package/dist/esm/column-views.ee9d71ba.js.map +1 -0
- package/dist/esm/index.d.ts +70 -49
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +8 -8
- package/dist/node/{column-views.b40c1b9c.js → column-views.00ad98fa.js} +2 -2
- package/dist/node/{column-views.b40c1b9c.js.map → column-views.00ad98fa.js.map} +1 -1
- package/dist/node/{column-views.7cc1a14f.js → column-views.02869dc5.js} +2 -2
- package/dist/node/{column-views.7cc1a14f.js.map → column-views.02869dc5.js.map} +1 -1
- package/dist/node/{column-views.c9880a4d.js → column-views.0a2596c2.js} +2 -2
- package/dist/node/{column-views.c9880a4d.js.map → column-views.0a2596c2.js.map} +1 -1
- package/dist/node/column-views.3a079e34.css +2 -0
- package/dist/node/column-views.3a079e34.css.map +1 -0
- package/dist/node/{column-views.1d064426.js → column-views.3a947d58.js} +2 -2
- package/dist/node/{column-views.1d064426.js.map → column-views.3a947d58.js.map} +1 -1
- package/dist/node/{column-views.8ee8469d.js → column-views.3d0c2bea.js} +2 -2
- package/dist/node/{column-views.8ee8469d.js.map → column-views.3d0c2bea.js.map} +1 -1
- package/dist/node/column-views.46efb749.js.map +1 -1
- package/dist/node/column-views.4ec769a6.js +2 -0
- package/dist/node/column-views.4ec769a6.js.map +1 -0
- package/dist/node/{column-views.b103acbc.js → column-views.59ce629d.js} +2 -2
- package/dist/node/{column-views.b103acbc.js.map → column-views.59ce629d.js.map} +1 -1
- package/dist/node/column-views.5fd6e11a.js.map +1 -1
- package/dist/node/column-views.6556e004.js +2 -0
- package/dist/node/column-views.6556e004.js.map +1 -0
- package/dist/node/column-views.67e7a200.js +2 -0
- package/dist/node/column-views.67e7a200.js.map +1 -0
- package/dist/node/{column-views.d8821a96.js → column-views.6b391d60.js} +2 -2
- package/dist/node/{column-views.d8821a96.js.map → column-views.6b391d60.js.map} +1 -1
- package/dist/node/column-views.75456275.js.map +1 -1
- package/dist/node/{column-views.d77d260b.js → column-views.825d2719.js} +2 -2
- package/dist/node/{column-views.d77d260b.js.map → column-views.825d2719.js.map} +1 -1
- package/dist/node/{column-views.f577d065.js → column-views.868c04dc.js} +2 -2
- package/dist/node/{column-views.f577d065.js.map → column-views.868c04dc.js.map} +1 -1
- package/dist/node/column-views.8eae7028.js +2 -0
- package/dist/node/column-views.8eae7028.js.map +1 -0
- package/dist/node/column-views.8f540f78.js +2 -0
- package/dist/node/column-views.8f540f78.js.map +1 -0
- package/dist/node/column-views.9efa91f1.js +2 -0
- package/dist/node/column-views.9efa91f1.js.map +1 -0
- package/dist/node/column-views.c007152b.js.map +1 -1
- package/dist/node/{column-views.ec691859.js → column-views.c4188442.js} +2 -2
- package/dist/node/{column-views.ec691859.js.map → column-views.c4188442.js.map} +1 -1
- package/dist/node/{column-views.56f88b8c.js → column-views.dfe9a971.js} +2 -2
- package/dist/node/{column-views.56f88b8c.js.map → column-views.dfe9a971.js.map} +1 -1
- package/dist/node/column-views.e153680b.js +2 -0
- package/dist/node/column-views.e153680b.js.map +1 -0
- package/dist/node/{column-views.42bc66a8.js → column-views.ed2fd268.js} +2 -2
- package/dist/node/{column-views.42bc66a8.js.map → column-views.ed2fd268.js.map} +1 -1
- package/dist/node/{column-views.5559de6a.js → column-views.fafbc028.js} +2 -2
- package/dist/node/{column-views.5559de6a.js.map → column-views.fafbc028.js.map} +1 -1
- package/dist/node/{column-views.6c7f9245.js → column-views.fee4e65d.js} +2 -2
- package/dist/node/{column-views.6c7f9245.js.map → column-views.fee4e65d.js.map} +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +4 -4
- package/src/data-provider/base.ts +1 -0
- package/src/data-provider/store.ts +1 -1
- package/src/facets/carbon-isotopes/isotopes-column.ts +2 -2
- package/src/facets/detrital-zircon/index.module.sass +2 -3
- package/src/facets/detrital-zircon/index.ts +3 -0
- package/src/facets/fossils/index.ts +19 -12
- package/src/facets/fossils/provider.ts +30 -17
- package/src/facets/fossils/taxon-ranges.ts +14 -7
- package/src/facets/measurements/base.ts +7 -3
- package/src/facets/measurements/sgp.ts +4 -5
- package/src/prepare-units/index.ts +2 -0
- package/src/unit-details/panel.ts +12 -10
- package/src/units/composite.ts +4 -10
- package/src/units/names.ts +26 -28
- package/dist/esm/column-views.322790f3.js.map +0 -1
- package/dist/esm/column-views.343fc926.js.map +0 -1
- package/dist/esm/column-views.3c9cba65.js +0 -13
- package/dist/esm/column-views.40094dd9.js.map +0 -1
- package/dist/esm/column-views.403a7b48.css.map +0 -1
- package/dist/esm/column-views.5eb4e6ff.js.map +0 -1
- package/dist/esm/column-views.6c9e5069.js.map +0 -1
- package/dist/esm/column-views.7fa0d026.js.map +0 -1
- package/dist/esm/column-views.c3c7901a.js.map +0 -1
- package/dist/esm/column-views.de433f18.js.map +0 -1
- package/dist/node/column-views.28609db2.css +0 -2
- package/dist/node/column-views.28609db2.css.map +0 -1
- package/dist/node/column-views.5361f0e2.js +0 -2
- package/dist/node/column-views.5361f0e2.js.map +0 -1
- package/dist/node/column-views.777b9bb6.js +0 -2
- package/dist/node/column-views.777b9bb6.js.map +0 -1
- package/dist/node/column-views.93bde6c1.js +0 -2
- package/dist/node/column-views.93bde6c1.js.map +0 -1
- package/dist/node/column-views.af480651.js +0 -2
- package/dist/node/column-views.af480651.js.map +0 -1
- package/dist/node/column-views.b6e86cf0.js +0 -2
- package/dist/node/column-views.b6e86cf0.js.map +0 -1
- package/dist/node/column-views.ec7cc7cc.js +0 -2
- package/dist/node/column-views.ec7cc7cc.js.map +0 -1
- package/dist/node/column-views.fac4baff.js +0 -2
- package/dist/node/column-views.fac4baff.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ 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
|
+
## [2.3.2] - 2025-12-13
|
|
8
|
+
|
|
9
|
+
Remove duplicate exports; fix typings
|
|
10
|
+
|
|
11
|
+
## [2.3.1] - 2025-12-10
|
|
12
|
+
|
|
13
|
+
Fix detrital zircon facet rendering bug
|
|
14
|
+
|
|
7
15
|
## [2.3.0] - 2025-12-10
|
|
8
16
|
|
|
9
17
|
- Streamline column facet components
|
|
@@ -80,8 +88,7 @@ Major update for columns and correlation diagrams:
|
|
|
80
88
|
- Add `ColoredUnitComponent` based on mixing unit colors by lithology
|
|
81
89
|
- Fully integrated management of composite column scales, allowing for much more
|
|
82
90
|
flexible column creation
|
|
83
|
-
- Added
|
|
84
|
-
of the column
|
|
91
|
+
- Added zigzag cutoffs when units overflow the time bounds of the column
|
|
85
92
|
- Added a unified `MacrostratDataProvider` that allows frontend caching of data
|
|
86
93
|
dictionaries in the UI
|
|
87
94
|
- Major improvements to columns and styling
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {useDetritalMeasurements as $9f310bd6e88a58bc$export$1b0cf9c36f060135} from "./column-views.60e97132.js";
|
|
2
2
|
import $d4hxx$columnviews2c45a7b5js from "./column-views.2c45a7b5.js";
|
|
3
|
-
import "./column-views.
|
|
4
|
-
import {BaseMeasurementsColumn as $50d219504625a431$export$ce5c4f2fdf4e644d, mergeHeightRanges as $50d219504625a431$export$8f2afa8ddee7317e} from "./column-views.
|
|
3
|
+
import "./column-views.6f9511d1.css";
|
|
4
|
+
import {BaseMeasurementsColumn as $50d219504625a431$export$ce5c4f2fdf4e644d, mergeHeightRanges as $50d219504625a431$export$8f2afa8ddee7317e} from "./column-views.26e0e0b6.js";
|
|
5
5
|
import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
6
6
|
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.052498a6.js";
|
|
7
7
|
import {usePlotArea as $d4hxx$usePlotArea, DetritalSpectrumPlot as $d4hxx$DetritalSpectrumPlot, DetritalSeries as $d4hxx$DetritalSeries} from "@macrostrat/data-components";
|
|
@@ -9,6 +9,7 @@ import $d4hxx$macrostrathyper from "@macrostrat/hyper";
|
|
|
9
9
|
import {useMemo as $d4hxx$useMemo} from "react";
|
|
10
10
|
import $d4hxx$classnames from "classnames";
|
|
11
11
|
import {group as $d4hxx$group} from "d3-array";
|
|
12
|
+
import {NonIdealState as $d4hxx$NonIdealState, Spinner as $d4hxx$Spinner} from "@blueprintjs/core";
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
function $parcel$interopDefault(a) {
|
|
@@ -24,6 +25,7 @@ function $parcel$interopDefault(a) {
|
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
|
|
28
|
+
|
|
27
29
|
const $715dd5fedd79146a$var$h = (0, $d4hxx$macrostrathyper).styled((0, ($parcel$interopDefault($d4hxx$columnviews2c45a7b5js))));
|
|
28
30
|
function $715dd5fedd79146a$var$prepareDetritalData(data, units, axisType) {
|
|
29
31
|
/** Right now measurement data could be duplicated if there are multiple units linked to the same
|
|
@@ -93,6 +95,7 @@ function $715dd5fedd79146a$export$f176396e104db8d5({ columnID: columnID, color:
|
|
|
93
95
|
units,
|
|
94
96
|
axisType
|
|
95
97
|
]);
|
|
98
|
+
if (data1 == null) return $715dd5fedd79146a$var$h((0, $d4hxx$NonIdealState), $715dd5fedd79146a$var$h((0, $d4hxx$Spinner)));
|
|
96
99
|
return $715dd5fedd79146a$var$h((0, $50d219504625a431$export$ce5c4f2fdf4e644d), {
|
|
97
100
|
data: data1,
|
|
98
101
|
noteComponent: noteComponent,
|
|
@@ -146,4 +149,4 @@ function $715dd5fedd79146a$export$1b3047373cd1c8c7(props) {
|
|
|
146
149
|
|
|
147
150
|
|
|
148
151
|
export {$715dd5fedd79146a$export$f176396e104db8d5 as DetritalColumn, $715dd5fedd79146a$export$1b3047373cd1c8c7 as DetritalGroup};
|
|
149
|
-
//# sourceMappingURL=column-views.
|
|
152
|
+
//# sourceMappingURL=column-views.029ea8f1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/facets/detrital-zircon/index.ts"],"sourcesContent":["import {\n DetritalSpectrumPlot,\n DetritalSeries,\n usePlotArea,\n} from \"@macrostrat/data-components\";\nimport type { IUnit } from \"../../units/types\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useDetritalMeasurements, MeasurementInfo } from \"./provider\";\nimport { useMemo } from \"react\";\nimport styles from \"./index.module.sass\";\nimport classNames from \"classnames\";\nimport {\n BaseMeasurementsColumn,\n mergeHeightRanges,\n ColumnMeasurementData,\n} from \"../measurements\";\nimport { group } from \"d3-array\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { useMacrostratColumnData } from \"../../data-provider\";\nimport { getUnitHeightRange } from \"../../prepare-units\";\nimport { NonIdealState, Spinner } from \"@blueprintjs/core\";\n\nconst h = hyper.styled(styles);\n\ninterface DetritalItemProps {\n note: DZMeasurementInfo;\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\ninterface DZMeasurementInfo extends ColumnMeasurementData<MeasurementInfo[]> {\n units: IUnit[];\n}\n\nfunction prepareDetritalData(\n data: MeasurementInfo[],\n units: IUnit[],\n axisType: ColumnAxisType,\n) {\n /** Right now measurement data could be duplicated if there are multiple units linked to the same\n * measuremeta_id. THis happens because matches to units might be at a lower rank (e.g, if the column\n * contains Formations but the measurements are linked to a Group). To handle this, we group by measuremeta_id\n * and then create unique keys based on the set of units linked to each measurement.\n */\n\n // Group data by measuremeta_id\n const measurementsGrouped = group(data, (d) => d.measuremeta_id);\n\n const resMap = new Map<string, DZMeasurementInfo>();\n\n for (const measurements of measurementsGrouped.values()) {\n // Get a list of unique unit_ids for this measurement\n const unitIDs = new Set(measurements.map((m) => m.unit_id));\n const ids = Array.from(unitIDs);\n ids.sort();\n // Key is unique to the set of units\n const key = ids.join(\"-\");\n\n if (!resMap.has(key)) {\n const unitData = ids\n .map((id) => {\n return units.find((u) => u.unit_id === id);\n })\n .filter(Boolean);\n\n const positions = unitData.map((unit) => {\n const [height, top_height] = getUnitHeightRange(unit, axisType);\n return { height, top_height };\n });\n\n // merge positions (note: we could also have multiple separate notes per measurement)\n const pos = mergeHeightRanges(positions, axisType);\n\n resMap.set(key, {\n id: key,\n data: [],\n units: unitData as IUnit[],\n ...pos,\n });\n }\n resMap.get(key)!.data.push(measurements[0]);\n }\n\n return Array.from(resMap.values());\n}\n\nfunction DetritalColumn({ columnID, color = \"magenta\" }) {\n const data = useDetritalMeasurements({ col_id: columnID });\n\n const width = 400;\n const paddingLeft = 40;\n\n const spectrumWidth = width - paddingLeft;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(DetritalGroup, {\n width: spectrumWidth,\n height: 40,\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n const { axisType, units } = useMacrostratColumnData();\n\n const data1 = useMemo(() => {\n if (data == null || units == null) return null;\n return prepareDetritalData(data, units, axisType);\n }, [data, units, axisType]);\n\n if (data1 == null) return h(NonIdealState, h(Spinner));\n\n return h(BaseMeasurementsColumn, {\n data: data1,\n noteComponent,\n deltaConnectorAttachment: 20,\n });\n}\n\nfunction DepositionalAge({ unit }) {\n const { xScale, height } = usePlotArea();\n\n const { t_age, b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n\n return h(\"rect.depositional-age\", { x, width: x1 - x, y: 0, height });\n}\n\nfunction DetritalGroup(props: DetritalItemProps) {\n const { note, width, height, color, spacing } = props;\n const { data, units } = note;\n\n const _color = color;\n\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n\n return h(\n \"div.detrital-group\",\n { className: classNames({ \"hide-axis\": hideAxisLabels }) },\n [\n h(\n DetritalSpectrumPlot,\n { width, innerHeight: height, showAxisLabels: true, paddingBottom: 40 },\n [\n units.map((unit) => {\n return h(DepositionalAge, { unit });\n }),\n data.map((d) => {\n return h(DetritalSeries, {\n bandwidth: 20,\n data: d.measure_value,\n color: _color,\n });\n }),\n ],\n ),\n ],\n );\n}\n\nexport { DetritalColumn, DetritalGroup };\n"],"names":[],"version":3,"file":"column-views.029ea8f1.js.map"}
|
|
@@ -2,7 +2,7 @@ import "./column-views.562db43a.css";
|
|
|
2
2
|
import $01tAX$columnviewsfcf25ec6js from "./column-views.fcf25ec6.js";
|
|
3
3
|
import {useColumnUnitsMap as $d5074f164411387e$export$7513be0cfd10d9cc} from "./column-views.4b259f9e.js";
|
|
4
4
|
import {useMacrostratData as $774a5efa27d1c77b$export$b9c9fc603d74a555, useMacrostratDefs as $774a5efa27d1c77b$export$89dd4e5ae4a82373} from "./column-views.e075af15.js";
|
|
5
|
-
import {defaultNameFunction as $bc17276da4abb183$export$c9757aeb43a67df0} from "./column-views.
|
|
5
|
+
import {defaultNameFunction as $bc17276da4abb183$export$c9757aeb43a67df0} from "./column-views.4685ea28.js";
|
|
6
6
|
import $01tAX$macrostrathyper from "@macrostrat/hyper";
|
|
7
7
|
import {JSONView as $01tAX$JSONView} from "@macrostrat/ui-components";
|
|
8
8
|
import {Button as $01tAX$Button, ButtonGroup as $01tAX$ButtonGroup} from "@blueprintjs/core";
|
|
@@ -550,4 +550,4 @@ function $448b24baeef3b229$var$formatSignificance(value, precision = null) {
|
|
|
550
550
|
|
|
551
551
|
|
|
552
552
|
export {$448b24baeef3b229$export$fbd245232df17557 as UnitDetailsPanel, $448b24baeef3b229$export$fc503c39cc5cff43 as LegendPanelHeader, $448b24baeef3b229$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $448b24baeef3b229$export$3b11bc38611c5941 as Duration, $448b24baeef3b229$export$895d4931dd696e25 as ReferencesField, $448b24baeef3b229$export$989167234458594d as Identifier, $448b24baeef3b229$export$37ebfd237811b1eb as AgeLabel, $448b24baeef3b229$export$b6867fc5221f9f65 as ClickableText};
|
|
553
|
-
//# sourceMappingURL=column-views.
|
|
553
|
+
//# sourceMappingURL=column-views.0a010643.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/unit-details/panel.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport styles from \"./panel.module.sass\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { Button, ButtonGroup } from \"@blueprintjs/core\";\nimport { ReactNode, useMemo, useState } from \"react\";\nimport {\n DataField,\n EnvironmentsList,\n IntervalShort,\n IntervalTag,\n ItemList,\n LithologyList,\n LithologyTagFeature,\n Parenthetical,\n Value,\n} from \"@macrostrat/data-components\";\nimport {\n useColumnUnitsMap,\n useMacrostratData,\n useMacrostratDefs,\n} from \"../data-provider\";\nimport type {\n Environment,\n UnitLong,\n UnitLongFull,\n Lithology,\n Interval,\n StratUnit,\n} from \"@macrostrat/api-types\";\nimport { defaultNameFunction } from \"../units/names\";\nimport classNames from \"classnames\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPanel({\n unit,\n onClose,\n className,\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n UnitDetailsFeature.JSONToggle,\n UnitDetailsFeature.DepthRange,\n ]),\n lithologyFeatures,\n actions,\n hiddenActions = null,\n onSelectUnit,\n columnUnits,\n onClickItem,\n}: {\n unit: any;\n onClose?: any;\n showLithologyProportions?: boolean;\n className?: string;\n actions?: ReactNode;\n hiddenActions?: ReactNode;\n features?: Set<UnitDetailsFeature>;\n lithologyFeatures?: Set<LithologyTagFeature>;\n columnUnits?: UnitLong[];\n onSelectUnit?: (unitID: number) => void;\n onClickItem?: MacrostratItemClickHandler;\n}) {\n const [showJSON, setShowJSON] = useState(false);\n\n let content = null;\n if (showJSON) {\n content = h(JSONView, { data: unit, showRoot: false });\n } else {\n content = h(UnitDetailsContent, {\n unit,\n features,\n lithologyFeatures,\n onClickItem,\n onSelectUnit,\n });\n }\n\n let title = defaultNameFunction(unit);\n\n if (features.has(UnitDetailsFeature.JSONToggle)) {\n hiddenActions = h([\n h(Button, {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: classNames(\"json-view-toggle\", { enabled: setShowJSON }),\n onClick(evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n },\n }),\n hiddenActions,\n ]);\n }\n\n return h(\"div.unit-details-panel\", { className }, [\n h(LegendPanelHeader, {\n onClose,\n title,\n id: unit.unit_id,\n actions,\n hiddenActions,\n }),\n h(\"div.unit-details-content-holder\", content),\n ]);\n}\n\nexport function LegendPanelHeader({\n title,\n id,\n onClose,\n actions = null,\n hiddenActions,\n}: {\n title?: string | null;\n id?: number | null;\n onClose?: () => void;\n actions?: ReactNode | null;\n hiddenActions?: ReactNode | null;\n}) {\n return h(\"header.legend-panel-header\", [\n h(\"div.title-container\", [\n h.if(title != null)(\"h3\", title),\n h.if(hiddenActions != null)(\n \"span.hidden-actions-container\",\n h(\"div.hidden-actions\", hiddenActions),\n ),\n ]),\n h(\"div.spacer\"),\n h.if(id != null)(\"code.unit-id\", id),\n h.if(actions != null)(ButtonGroup, { minimal: true }, actions),\n h.if(onClose != null)(Button, {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick() {\n onClose();\n },\n }),\n ]);\n}\n\nexport enum UnitDetailsFeature {\n AdjacentUnits = \"adjacent-units\",\n Color = \"color\",\n OutcropType = \"outcrop-type\",\n JSONToggle = \"json-toggle\",\n DepthRange = \"depth-range\",\n}\n\nexport type MacrostratItemClickHandler = (\n event: MouseEvent,\n item:\n | Lithology\n | Environment\n | UnitLong\n | Interval\n | { strat_name_id: number },\n) => void;\n\nfunction UnitDetailsContent({\n unit,\n onSelectUnit,\n columnUnits,\n lithologyFeatures = new Set([\n LithologyTagFeature.Proportion,\n LithologyTagFeature.Attributes,\n ]),\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n ]),\n onClickItem,\n getItemHref,\n}: {\n unit: UnitLong;\n onSelectUnit?: (unitID: number) => void;\n columnUnits?: UnitLong[];\n lithologyFeatures?: Set<LithologyTagFeature>;\n features?: Set<UnitDetailsFeature>;\n onClickItem?: MacrostratItemClickHandler;\n getItemHref?: (item: Lithology | Environment | UnitLong) => string | null;\n}) {\n const lithMap = useMacrostratDefs(\"lithologies\");\n const envMap = useMacrostratDefs(\"environments\");\n\n const environments = enhanceEnvironments(unit.environ, envMap);\n const lithologies = enhanceLithologies(unit.lith ?? [], lithMap);\n\n // Create a lookup table of units if provided\n const columnUnitsMap = useMemo(() => {\n const map = new Map<number, UnitLong>();\n for (const colUnit of columnUnits ?? []) {\n map.set(colUnit.unit_id, colUnit);\n }\n return map;\n }, [columnUnits]);\n\n let outcropField = null;\n if (features.has(UnitDetailsFeature.OutcropType)) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") {\n outcrop = \"surface and subsurface\";\n }\n outcropField = h(DataField, {\n label: \"Outcrop\",\n value: outcrop,\n });\n }\n\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (\n features.has(UnitDetailsFeature.DepthRange) &&\n unit.t_pos != null &&\n unit.b_pos != null &&\n unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n\n thicknessOrHeightRange = h(DataField, {\n unit: u1,\n label,\n value: formatRange(unit.b_pos, unit.t_pos),\n children: h(\n Parenthetical,\n h(Value, { value: thickness, unit: thicknessUnit }),\n ),\n });\n }\n thicknessOrHeightRange ??= h(DataField, {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit,\n });\n\n /** We are trying to move away from passing the \"color\" parameter in the API */\n let colorSwatch: ReactNode = null;\n if (\"color\" in unit && features.has(UnitDetailsFeature.Color)) {\n const unit1 = unit as UnitLongFull;\n colorSwatch = h(\"div.color-swatch\", {\n style: { backgroundColor: unit1.color },\n });\n }\n\n return h(\"div.unit-details-content\", [\n thicknessOrHeightRange,\n h(LithologyList, {\n label: \"Lithology\",\n lithologies,\n features: lithologyFeatures,\n getItemHref,\n onClickItem,\n }),\n h(AgeField, { unit }, [\n h(Parenthetical, h(Duration, { value: unit.b_age - unit.t_age })),\n h(IntervalProportions, {\n unit,\n onClickItem,\n }),\n ]),\n h(EnvironmentsList, {\n environments,\n onClickItem,\n getItemHref,\n }),\n h.if(unit.strat_name_id != null)(StratNameField, {\n strat_name_id: unit.strat_name_id,\n }),\n outcropField,\n h.if(features.has(UnitDetailsFeature.AdjacentUnits))([\n h(\n DataField,\n { label: \"Above\" },\n h(UnitIDList, {\n units: unit.units_above,\n onSelectUnit,\n showNames: true,\n }),\n ),\n h(\n DataField,\n { label: \"Below\" },\n h(UnitIDList, {\n units: unit.units_below,\n onSelectUnit,\n showNames: true,\n }),\n ),\n ]),\n colorSwatch,\n h(ReferencesField, { refs: unit.refs, inline: true }),\n ]);\n}\n\nexport function ReferencesField({ refs, className = null, ...rest }) {\n if (refs == null || refs.length === 0) {\n return null;\n }\n\n return h(\n DataField,\n {\n label: \"References\",\n className: classNames(\"refs-field\", className),\n ...rest,\n },\n h(BibInfo, { refs }),\n );\n}\n\nfunction StratNameField({\n strat_name_id,\n onClickItem,\n}: {\n strat_name_id: number;\n onClickItem?: (event: MouseEvent, item: { strat_name_id: number }) => void;\n}) {\n const stratNames = useMemo(() => [strat_name_id], [strat_name_id]);\n const data = useMacrostratData(\"strat_names\", stratNames);\n const stratNameData = data?.[0];\n let inner: any = h(Identifier, { id: strat_name_id });\n const name = stratNameData?.strat_name_long;\n if (name != null) {\n inner = h(\"span.strat-name\", name);\n }\n\n const clickable = onClickItem != null;\n\n const className = classNames({\n clickable,\n });\n\n return h(\n DataField,\n {\n label: \"Stratigraphic name\",\n },\n h(\n clickable ? \"a\" : \"span\",\n {\n className,\n onClick: (e) => onClickItem(e, { strat_name_id }),\n },\n inner,\n ),\n );\n}\n\nfunction getThickness(unit): [string, string] {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n\n if (minThickness == 0 && maxThickness == 0) {\n return [\"Unknown\", null];\n }\n\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n\n if (minThickness == maxThickness) {\n return [formatSignificance(minThickness), _unit];\n }\n\n return [formatRange(minThickness, maxThickness), _unit];\n}\n\nfunction ThicknessField({ unit, label = \"Thickness\" }) {\n const [value, thicknessUnit] = getThickness(unit);\n return h(DataField, {\n label,\n value,\n unit: thicknessUnit,\n });\n}\n\nfunction BibInfo({ refs }) {\n const refData = useMacrostratData(\"refs\", refs);\n\n if (refData == null || refData.length === 0) {\n return null;\n }\n\n if (refData.length == 1) {\n return h(Citation, {\n data: refData[0],\n tag: \"span\",\n key: refData[0].ref_id,\n });\n }\n\n return h(\n \"ul.refs\",\n refData.map((data, i) =>\n h(Citation, { data, tag: \"li\", key: data.ref_id }),\n ),\n );\n}\n\nfunction Citation({ data, tag = \"p\" }) {\n return h(tag, { className: \"citation\" }, [\n h(\"span.authors\", data.author),\n \", \",\n h(\"span.year\", data.pub_year),\n \", \",\n h(\"span.title\", data.ref),\n ]);\n}\n\nfunction AgeField({ unit, children }) {\n const [b_age, t_age, _unit] = getAgeRange(unit);\n\n return h(\n DataField,\n {\n label: \"Age\",\n value: formatRange(b_age, t_age),\n unit: _unit,\n },\n children,\n );\n}\n\nfunction getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n\n return [b_age, t_age, unit];\n}\n\nfunction getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */\n let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n\n return [value, unit];\n}\n\nexport function AgeLabel({\n age,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n className,\n}: {\n age: number;\n className?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n}) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */\n const [value, unit] = getAge(age);\n\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit, className });\n}\n\nexport function Duration({\n value,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n}) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit });\n}\n\nfunction enhanceEnvironments(\n environments: Partial<Environment>[],\n envMap: Map<number, Environment>,\n) {\n return environments.map((env) => {\n return {\n ...(envMap?.get(env.environ_id) ?? {}),\n ...env,\n };\n });\n}\n\nfunction enhanceLithologies(\n lithologies: Partial<UnitLong[\"lith\"]>,\n lithMap: Map<number, any>,\n) {\n return lithologies.map((lith) => {\n return {\n ...(lithMap?.get(lith.lith_id) ?? {}), // get lithology details\n ...lith, // override with the unit's specific lithology data\n };\n });\n}\n\nexport function ClickableText({\n onClick,\n className,\n children,\n}: {\n onClick: () => void;\n className?: string;\n children: ReactNode;\n}) {\n /** An optionally clickable text element */\n const tag = onClick != null ? \"a\" : \"span\";\n return h(tag, { onClick, className }, children);\n}\n\nexport function Identifier({\n id,\n onClick,\n className,\n}: {\n id: number | string;\n onClick?: (id: number | string) => void;\n className?: string;\n}) {\n /** An item that displays a numeric identifier, optionally clickable */\n const _onClick = onClick != null ? () => onClick(id) : null;\n\n return h(\n ClickableText,\n {\n onClick: _onClick,\n className: classNames(\"identifier\", className),\n },\n id,\n );\n}\n\ntype UnitInfo = {\n unitID: number;\n colID?: number;\n name?: string;\n};\n\nfunction UnitIDList({ units, onSelectUnit, showNames = false }) {\n const unitsMap = useColumnUnitsMap();\n\n const extUnits: UnitInfo[] = useMemo(() => {\n const u1 = units.filter((d) => d != 0);\n if (showNames) {\n return u1.map((unitID) => {\n const unitData = unitsMap?.get(unitID);\n let name: string = undefined;\n if (unitData != null) {\n name = defaultNameFunction(unitData);\n }\n return {\n unitID,\n colID: unitData?.col_id,\n name,\n };\n });\n } else {\n return u1.map((unitID) => ({ unitID }));\n }\n }, [units, unitsMap]);\n\n if (extUnits.length === 0) {\n return h(\"span.no-units\", \"None\");\n }\n\n return h(\n ItemList,\n { className: \"units-list\" },\n extUnits.map((info) =>\n h(\"span.item\", h(UnitIdentifier, { ...info, onSelectUnit })),\n ),\n );\n}\n\nfunction UnitIdentifier({\n unitID,\n colID,\n name,\n onSelectUnit,\n}: UnitInfo & { onSelectUnit?: (unitID: number) => void }) {\n const onClick = useMemo(() => {\n if (onSelectUnit == null) return null;\n return () => {\n onSelectUnit(unitID);\n };\n }, [onSelectUnit]);\n\n if (name != null) {\n return h(\n ClickableText,\n {\n className: \"unit-name\",\n onClick,\n },\n name,\n );\n }\n\n return h(Identifier, {\n className: \"unit-id\",\n onClick,\n key: unitID,\n id: unitID,\n });\n}\n\nfunction IntervalProportions({ unit, onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n\n const intervalMap = useMacrostratDefs(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n\n const interval0: IntervalShort = {\n ...int0,\n id: i0,\n name: unit.b_int_name,\n };\n\n let p0: ReactNode = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1: ReactNode = h(Proportion, { value: t_prop });\n\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) {\n // We have a single interval with undefined proportions\n p0 = h(Proportion, { value: b_prop });\n }\n\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) {\n p0 = h(\"span.joint-proportion\", [p0, h(\"span.sep\", \"to\"), p1]);\n }\n\n const clickable = onClickItem != null;\n\n const handleClick = (event: MouseEvent) => {\n if (onClickItem) {\n onClickItem(event, interval0);\n }\n };\n\n return h(\"div.interval-proportions\", [\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0,\n }),\n h.if(i0 != i1)(\"span.discourage-break\", [\n h(\"span.sep\", \"to\"),\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name,\n },\n prefix: p1,\n }),\n ]),\n ]);\n}\n\nconst formatProportion = (d) => {\n if (d == null) return null;\n return d.toFixed(1);\n};\n\nfunction Proportion({ value }) {\n let content = null;\n if (value == 0) {\n content = \"base\";\n } else if (value == 1) {\n content = \"top\";\n } else {\n content = formatProportion(value * 100) + \"%\";\n }\n\n return h(\"span.proportion\", content);\n}\n\nfunction formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) {\n return min.toFixed(precision);\n }\n\n return `${formatSignificance(min, precision)}–${formatSignificance(\n max,\n precision,\n )}`;\n}\n\nfunction formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n\n if (precision == null) {\n return value.toLocaleString();\n }\n if (precision >= 0) {\n return value.toFixed(precision);\n }\n if (precision < 0) {\n return (\n (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision)\n );\n }\n}\n"],"names":[],"version":3,"file":"column-views.0a010643.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {ColumnNotesProvider as $8c8238faa5cde49c$export$6cc7a9df4edde18} from "./column-views.
|
|
1
|
+
import {ColumnNotesProvider as $8c8238faa5cde49c$export$6cc7a9df4edde18} from "./column-views.a665cbb2.js";
|
|
2
2
|
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
3
3
|
import $aB7pQ$macrostrathyper from "@macrostrat/hyper";
|
|
4
4
|
import {SVG as $aB7pQ$SVG, NotesColumn as $aB7pQ$NotesColumn} from "@macrostrat/column-components";
|
|
@@ -35,4 +35,4 @@ function $9e52fe4012c88296$export$fc5babae10f3f77d({ notes: notes, width: width
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
export {$9e52fe4012c88296$export$fc5babae10f3f77d as ColumnNotes};
|
|
38
|
-
//# sourceMappingURL=column-views.
|
|
38
|
+
//# sourceMappingURL=column-views.18aac6a5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;AAkBO,SAAS,0CAAY,SAC1B,KAAK,SACL,QAAQ,oBACR,aAAa,eACb,cAAc,8BACd,wBAAwB,wBACxB,oBAAoB,YACpB,QAAQ,EACS;IACjB,MAAM,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAC9C,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,OAAO,CAAA,GAAA,sBAAA,EACL,CAAA,GAAA,wCAAkB,GAClB;eACE;qBACA;QACA,YAAY;IACd,GACA;QACE,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,UAAE,GAAG;mBAAE;YAAO,QAAQ;YAAa,UAAU;QAAE,GAAG;YAClD,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;uBACb;uBACA;+BACA;6BACA;0CACA;sCACA;YACF;SACD;QACD;KACD;AAEL","sources":["packages/column-views/src/notes.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\n\nimport { ColumnNotesProvider } from \"./units\";\n\nimport { NotesColumn, SVG } from \"@macrostrat/column-components\";\nimport { useCompositeScale, useMacrostratColumnData } from \"./data-provider\";\nimport type { ComponentType, ReactNode } from \"react\";\n\ninterface ColumnNotesProps {\n notes: any[];\n width?: number;\n noteComponent?: any;\n paddingLeft?: number;\n deltaConnectorAttachment?: number;\n children?: ReactNode;\n focusedNoteComponent?: ComponentType<any> | null;\n}\n\nexport function ColumnNotes({\n notes,\n width = 200,\n noteComponent,\n paddingLeft = 60,\n deltaConnectorAttachment,\n focusedNoteComponent,\n children,\n}: ColumnNotesProps) {\n const { totalHeight } = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n return h(\n ColumnNotesProvider,\n {\n scale,\n totalHeight,\n pixelScale: -1,\n },\n [\n h(SVG, { width, height: totalHeight, paddingH: 4 }, [\n h(NotesColumn, {\n width,\n notes,\n noteComponent,\n paddingLeft,\n deltaConnectorAttachment,\n focusedNoteComponent,\n }),\n ]),\n children,\n ],\n );\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;AAkBO,SAAS,0CAAY,SAC1B,KAAK,SACL,QAAQ,oBACR,aAAa,eACb,cAAc,8BACd,wBAAwB,wBACxB,oBAAoB,YACpB,QAAQ,EACS;IACjB,MAAM,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAC9C,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,OAAO,CAAA,GAAA,sBAAA,EACL,CAAA,GAAA,wCAAkB,GAClB;eACE;qBACA;QACA,YAAY;IACd,GACA;QACE,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,UAAE,GAAG;mBAAE;YAAO,QAAQ;YAAa,UAAU;QAAE,GAAG;YAClD,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;uBACb;uBACA;+BACA;6BACA;0CACA;sCACA;YACF;SACD;QACD;KACD;AAEL","sources":["packages/column-views/src/notes.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\n\nimport { ColumnNotesProvider } from \"./units\";\n\nimport { NotesColumn, SVG } from \"@macrostrat/column-components\";\nimport { useCompositeScale, useMacrostratColumnData } from \"./data-provider\";\nimport type { ComponentType, ReactNode } from \"react\";\n\ninterface ColumnNotesProps {\n notes: any[];\n width?: number;\n noteComponent?: any;\n paddingLeft?: number;\n deltaConnectorAttachment?: number;\n children?: ReactNode;\n focusedNoteComponent?: ComponentType<any> | null;\n}\n\nexport function ColumnNotes({\n notes,\n width = 200,\n noteComponent,\n paddingLeft = 60,\n deltaConnectorAttachment,\n focusedNoteComponent,\n children,\n}: ColumnNotesProps) {\n const { totalHeight } = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n return h(\n ColumnNotesProvider,\n {\n scale,\n totalHeight,\n pixelScale: -1,\n },\n [\n h(SVG, { width, height: totalHeight, paddingH: 4 }, [\n h(NotesColumn, {\n width,\n notes,\n noteComponent,\n paddingLeft,\n deltaConnectorAttachment,\n focusedNoteComponent,\n }),\n ]),\n children,\n ],\n );\n}\n"],"names":[],"version":3,"file":"column-views.18aac6a5.js.map"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57, useFossilData as $a3ff7da576c02df0$export$e6af757fa9780077} from "./column-views.
|
|
2
|
-
import {BaseMeasurementsColumn as $50d219504625a431$export$ce5c4f2fdf4e644d, groupNotesByPixelDistance as $50d219504625a431$export$4e649f790614b299, standardizeMeasurementHeight as $50d219504625a431$export$9d101e1fcb2166a6, TruncatedList as $50d219504625a431$export$653e47a7a0da0f0d} from "./column-views.
|
|
1
|
+
import {FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57, useFossilData as $a3ff7da576c02df0$export$e6af757fa9780077} from "./column-views.6fff7602.js";
|
|
2
|
+
import {BaseMeasurementsColumn as $50d219504625a431$export$ce5c4f2fdf4e644d, groupNotesByPixelDistance as $50d219504625a431$export$4e649f790614b299, standardizeMeasurementHeight as $50d219504625a431$export$9d101e1fcb2166a6, TruncatedList as $50d219504625a431$export$653e47a7a0da0f0d} from "./column-views.26e0e0b6.js";
|
|
3
3
|
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
4
4
|
import "./column-views.cb6fc808.css";
|
|
5
5
|
import $6u76g$columnviewsd5e788e8js from "./column-views.d5e788e8.js";
|
|
6
6
|
import {getPositionWithinUnit as $b6657fba8924a702$export$441710fb21b4ae09, getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.052498a6.js";
|
|
7
|
-
import {PBDBOccurrencesMatrix as $d419340b86dbd2ea$export$652730986cccff7a
|
|
7
|
+
import {PBDBOccurrencesMatrix as $d419340b86dbd2ea$export$652730986cccff7a} from "./column-views.ee9d71ba.js";
|
|
8
8
|
import $6u76g$macrostrathyper from "@macrostrat/hyper";
|
|
9
9
|
import {ColumnAxisType as $6u76g$ColumnAxisType} from "@macrostrat/column-components";
|
|
10
10
|
import {scaleLinear as $6u76g$scaleLinear} from "d3-scale";
|
|
@@ -52,10 +52,6 @@ function $b9286605a04210d4$var$FossilInfo(props) {
|
|
|
52
52
|
maxItems: focused ? Infinity : maxItems ?? 5
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
-
const $b9286605a04210d4$var$FocusedFossilInfo = (props)=>$b9286605a04210d4$var$h($b9286605a04210d4$var$FossilInfo, {
|
|
56
|
-
...props,
|
|
57
|
-
maxItems: Infinity
|
|
58
|
-
});
|
|
59
55
|
function $b9286605a04210d4$var$PBDBCollectionLink({ data: data }) {
|
|
60
56
|
/** A link to a PBDB collection that handles either an occurrence or collection object */ return $b9286605a04210d4$var$h("a.link-id", {
|
|
61
57
|
href: `https://paleobiodb.org/app/collections#display=col:${data.cltn_id}`,
|
|
@@ -134,5 +130,5 @@ function $b9286605a04210d4$var$getRelativePositionInUnit(pos, unit, axisType) {
|
|
|
134
130
|
}
|
|
135
131
|
|
|
136
132
|
|
|
137
|
-
export {$b9286605a04210d4$export$554267114407ef68 as PBDBFossilsColumn, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $a3ff7da576c02df0$export$
|
|
138
|
-
//# sourceMappingURL=column-views.
|
|
133
|
+
export {$b9286605a04210d4$export$554267114407ef68 as PBDBFossilsColumn, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $a3ff7da576c02df0$export$e6af757fa9780077 as useFossilData, $d419340b86dbd2ea$export$652730986cccff7a as PBDBOccurrencesMatrix};
|
|
134
|
+
//# sourceMappingURL=column-views.24060b85.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/facets/fossils/index.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n FossilDataType,\n type PBDBCollection,\n type PBDBEntity,\n type PBDBOccurrence,\n useFossilData,\n} from \"./provider\";\nimport type { IUnit } from \"../../units\";\nimport {\n BaseMeasurementsColumn,\n ColumnMeasurementData,\n MeasurementHeightData,\n standardizeMeasurementHeight,\n groupNotesByPixelDistance,\n TruncatedList,\n} from \"../measurements\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport {\n useCompositeScale,\n useMacrostratColumnData,\n} from \"../../data-provider\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport styles from \"./taxon-ranges.module.sass\";\nimport {\n CompositeColumnScale,\n getPositionWithinUnit,\n getUnitHeightRange,\n} from \"../../prepare-units\";\nimport { scaleLinear } from \"d3-scale\";\n\nexport {\n FossilDataType,\n type PBDBCollection,\n type PBDBEntity,\n type PBDBOccurrence,\n useFossilData,\n};\nexport * from \"./taxon-ranges\";\n\nconst h = hyper.styled(styles);\n\nexport function PBDBFossilsColumn({\n columnID,\n type = FossilDataType.Collections,\n}: {\n columnID: number;\n type: FossilDataType;\n}) {\n const data = useFossilData(columnID, type);\n const { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n if (data == null || units == null || scale == null) return null;\n\n const data1 = preparePBDBData(data, units, scale, axisType);\n\n return h(BaseMeasurementsColumn, {\n data: data1,\n noteComponent: FossilInfo,\n focusedNoteComponent: FossilInfo,\n className: \"fossil-collections\",\n });\n}\n\ninterface FossilItemProps {\n note: {\n data: PBDBCollection[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n focused?: boolean;\n maxItems?: number;\n}\n\nfunction FossilInfo(props: FossilItemProps) {\n const { note, maxItems, focused = false } = props;\n const { data } = note;\n // Sort collections by name\n data.sort((a, b) => {\n const nameA = a.best_name ?? a.cltn_name ?? \"\";\n const nameB = b.best_name ?? b.cltn_name ?? \"\";\n return nameA.localeCompare(nameB);\n });\n\n return h(TruncatedList, {\n data,\n className: \"fossil-collections\",\n itemRenderer: PBDBCollectionLink,\n maxItems: focused ? Infinity : (maxItems ?? 5),\n });\n}\n\nfunction PBDBCollectionLink({\n data,\n}: {\n data: PBDBCollection | PBDBOccurrence;\n}) {\n /** A link to a PBDB collection that handles either an occurrence or collection object */\n return h(\n \"a.link-id\",\n {\n href: `https://paleobiodb.org/app/collections#display=col:${data.cltn_id}`,\n target: \"_blank\",\n onClick(e) {\n e.stopPropagation();\n },\n },\n data.best_name ?? data.cltn_name,\n );\n}\n\ninterface PreparePBDBDataOptions {\n /** If set, group close notes within this distance (in pixels in display space)\n * into a single note. If a number is provided, that number is used as the distance,\n * otherwise a default of 5 pixels is used.\n */\n groupCloseNotes?: boolean | number;\n}\n\nfunction preparePBDBData<T extends PBDBEntity>(\n data: T[],\n units: UnitLong[],\n scale: CompositeColumnScale,\n axisType: ColumnAxisType,\n options?: PreparePBDBDataOptions,\n) {\n /** Prepare PBDB fossil data for display in a measurements column */\n const { groupCloseNotes = true } = options ?? {};\n const groupDistance =\n typeof groupCloseNotes === \"number\" ? groupCloseNotes : 10;\n\n // Map of data to its defined height ranges\n const dataMap = new Map<string, ColumnMeasurementData<T[]>>();\n\n // Todo: if we wanted, we could add a step where we group notes that are too close together here...\n\n for (const d of data) {\n const range = getHeightRangeForPBDBEntity(d, units, axisType);\n\n if (range == null) continue;\n const { height, top_height } = range;\n // compose the key based on height info\n let key = `${height}`;\n if (top_height != null) {\n key += `-${top_height}`;\n }\n\n // Group by height key\n if (!dataMap.has(key)) {\n dataMap.set(key, {\n height,\n top_height: top_height ?? height,\n data: [],\n id: key,\n });\n }\n dataMap.get(key)!.data.push(d);\n }\n\n return groupNotesByPixelDistance(\n Array.from(dataMap.values()),\n scale,\n axisType,\n groupDistance,\n );\n}\n\nfunction getHeightRangeForPBDBEntity<T extends PBDBEntity>(\n d: T,\n units: UnitLong[],\n axisType: ColumnAxisType,\n): MeasurementHeightData | null {\n let height: number | null = null;\n if (d.slb != null && d.slu == \"mbsf\") {\n // Meters below sea floor - special case for eODP where we have\n // specific depth data referenced\n height = Number(d.slb);\n if (axisType === ColumnAxisType.DEPTH) {\n // Data is already in depth units\n return { height };\n }\n }\n if (d.unit_id == null) return null;\n if (height != null) {\n // If we have both height and unit info, we need to adjust the height\n // to fit whatever scale type we're using.\n // TODO: we could improve how this works by having concurrent age and\n // height scales, which would allow us to do this without having to\n // reference to a specific unit.\n const unit = units.find((u) => u.unit_id === d.unit_id);\n if (unit == null) return null;\n const relHeight = getRelativePositionInUnit(\n height,\n unit,\n ColumnAxisType.DEPTH,\n );\n if (relHeight == null) return null;\n height = getPositionWithinUnit(relHeight, unit, axisType);\n return { height };\n }\n // We can just get the height within the unit, clipped to the unit boundaries\n return standardizeMeasurementHeight({ unit_id: d.unit_id }, units, axisType);\n}\n\nfunction getRelativePositionInUnit(\n pos: number,\n unit: UnitLong,\n axisType: ColumnAxisType,\n): number | null {\n // This is the inverse of getPositionWithinUnit\n const heights = getUnitHeightRange(unit, axisType, false);\n const scale = scaleLinear(heights).domain([0, 1]);\n const relPos = scale.invert(pos);\n if (relPos < 0 || relPos > 1) return null;\n return relPos;\n}\n"],"names":[],"version":3,"file":"column-views.24060b85.js.map"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./column-views.54c1f382.css";
|
|
2
2
|
import $5tCNh$columnviews17a70358js from "./column-views.17a70358.js";
|
|
3
3
|
import {getPositionWithinUnit as $b6657fba8924a702$export$441710fb21b4ae09, getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.052498a6.js";
|
|
4
|
-
import {ColumnNotes as $9e52fe4012c88296$export$fc5babae10f3f77d} from "./column-views.
|
|
4
|
+
import {ColumnNotes as $9e52fe4012c88296$export$fc5babae10f3f77d} from "./column-views.18aac6a5.js";
|
|
5
5
|
import $5tCNh$macrostrathyper from "@macrostrat/hyper";
|
|
6
6
|
import {ColumnAxisType as $5tCNh$ColumnAxisType} from "@macrostrat/column-components";
|
|
7
7
|
|
|
@@ -118,7 +118,7 @@ function $50d219504625a431$export$4e649f790614b299(data, scale, axisType, groupD
|
|
|
118
118
|
if (axisType === (0, $5tCNh$ColumnAxisType).AGE || axisType === (0, $5tCNh$ColumnAxisType).DEPTH) // Inverted axis
|
|
119
119
|
currentGroup.top_height = Math.min(currentGroup.top_height, top_height);
|
|
120
120
|
else currentGroup.top_height = Math.max(currentGroup.top_height, top_height);
|
|
121
|
-
currentGroup.
|
|
121
|
+
currentGroup.id = `${currentGroup.height}-${currentGroup.top_height}`;
|
|
122
122
|
} else {
|
|
123
123
|
// Start a new group
|
|
124
124
|
currentGroup = {
|
|
@@ -136,4 +136,4 @@ function $50d219504625a431$export$4e649f790614b299(data, scale, axisType, groupD
|
|
|
136
136
|
|
|
137
137
|
|
|
138
138
|
export {$50d219504625a431$export$9d101e1fcb2166a6 as standardizeMeasurementHeight, $50d219504625a431$export$8f2afa8ddee7317e as mergeHeightRanges, $50d219504625a431$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $50d219504625a431$export$653e47a7a0da0f0d as TruncatedList, $50d219504625a431$export$4e649f790614b299 as groupNotesByPixelDistance};
|
|
139
|
-
//# sourceMappingURL=column-views.
|
|
139
|
+
//# sourceMappingURL=column-views.26e0e0b6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/facets/measurements/base.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport styles from \"./base.module.sass\";\nimport {\n type CompositeColumnScale,\n getPositionWithinUnit,\n getUnitHeightRange,\n} from \"../../prepare-units\";\nimport { ColumnNotes } from \"../../notes\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nconst h = hyper.styled(styles);\n\ntype GetHeightRangeFn<T> = (\n data: T,\n unit: UnitLong | null,\n axisType: ColumnAxisType,\n) => MeasurementHeightData;\n\nexport interface BaseMeasurementsColumnProps<T> {\n data: T[];\n noteComponent?: any;\n width?: number;\n paddingLeft?: number;\n className?: string;\n // TODO: these props are confusing\n getUnitID?: (d: T) => number | string;\n isMatchingUnit?: (d: T, unit: UnitLong) => boolean;\n getHeightRange?: GetHeightRangeFn<T>;\n deltaConnectorAttachment?: number;\n focusedNoteComponent?: any;\n}\n\nexport interface ColumnMeasurementData<T = any> extends MeasurementHeightData {\n data: T;\n id: string | number;\n}\n\ntype MeasurementPositionInformation =\n | MeasurementHeightData\n | {\n unit_id: number;\n unit_rel_pos?: number;\n };\n\nexport function standardizeMeasurementHeight(\n pos: MeasurementPositionInformation,\n units: UnitLong[],\n axisType: ColumnAxisType,\n): MeasurementHeightData | null {\n /** Get a standardized height representation from position information for\n * a measurement\n */\n if (\"height\" in pos) {\n return pos;\n }\n const unit = units.find((u) => u.unit_id === pos.unit_id);\n if (unit == null) {\n return null;\n }\n if (pos.unit_rel_pos != null) {\n const res = getPositionWithinUnit(pos.unit_rel_pos, unit, axisType);\n if (res == null) return null;\n return { height: res };\n } else {\n const [height, top_height] = getUnitHeightRange(unit, axisType);\n return { height, top_height };\n }\n}\n\nexport function mergeHeightRanges(\n data: MeasurementHeightData[],\n axisType: ColumnAxisType,\n): MeasurementHeightData {\n /** Merge multiple height ranges into a single range */\n const heights = [];\n\n for (const d of data) {\n heights.push(d.height);\n if (d.top_height != null) {\n heights.push(d.top_height);\n }\n }\n\n let height: number;\n let top_height: number;\n if (axisType === ColumnAxisType.AGE || axisType === ColumnAxisType.DEPTH) {\n height = Math.max(...heights);\n top_height = Math.min(...heights);\n } else {\n height = Math.min(...heights);\n top_height = Math.max(...heights);\n }\n\n if (top_height === height) {\n return { height };\n }\n return { height, top_height };\n}\n\nexport type MeasurementHeightData = {\n height: number;\n top_height?: number | null;\n};\n\nexport function BaseMeasurementsColumn({\n data,\n noteComponent,\n width = 500,\n paddingLeft = 40,\n className,\n deltaConnectorAttachment,\n focusedNoteComponent,\n}: BaseMeasurementsColumnProps<any>) {\n if (data == null) return null;\n\n return h(\n \"div.measurements-column\",\n { className },\n h(ColumnNotes, {\n width,\n paddingLeft,\n notes: data,\n noteComponent,\n deltaConnectorAttachment,\n focusedNoteComponent,\n }),\n );\n}\n\ninterface TruncatedListProps {\n data: any[];\n className?: string;\n maxItems?: number;\n itemRenderer?: (props: { data: any }) => any;\n}\n\nexport function TruncatedList({\n data,\n className,\n maxItems = 5,\n itemRenderer = (p) => h(\"span\", p.data),\n}: TruncatedListProps) {\n let tooMany = null;\n let d1 = data;\n if (data.length > maxItems) {\n const n = data.length - maxItems;\n d1 = data.slice(0, maxItems);\n tooMany = h(\"li.too-many\", `and ${n} more`);\n }\n\n return h(\"ul.truncated-list\", { className }, [\n d1.map((d, i) => {\n return h(\"li.element\", { key: i }, h(itemRenderer, { data: d }));\n }),\n tooMany,\n ]);\n}\n\nexport function groupNotesByPixelDistance<T = any>(\n data: ColumnMeasurementData<T[]>[],\n scale: CompositeColumnScale,\n axisType: ColumnAxisType,\n groupDistance: number,\n) {\n /** Group notes that are within a certain pixel distance of each other\n * in display space\n */\n if (data.length === 0 || groupDistance <= 0) return data;\n if (axisType === ColumnAxisType.AGE || axisType === ColumnAxisType.DEPTH) {\n data.sort((a, b) => b.height - a.height);\n } else {\n // Sort data by height (ascending up the column)\n data.sort((a, b) => a.height - b.height);\n }\n\n const groupedData: ColumnMeasurementData<T[]>[] = [];\n let currentGroup: ColumnMeasurementData<T[]> | null = null;\n let currentGroupPosition: number = Infinity;\n\n for (const d of data) {\n // Check distance from current max position\n // Pixels go up as we go down in the section\n\n // The _top_ of the next group must be within groupDistance of the\n // _bottom_ of the current group. This makes sure that we don't collapse\n // groups that are separated by a large distance\n const distance = currentGroupPosition - scale(d.top_height ?? d.height);\n\n if (distance <= groupDistance) {\n if (currentGroup == null) {\n throw new Error(\"Current group is null when it shouldn't be\");\n }\n // Merge into current group\n currentGroup.data.push(...d.data);\n // Update height range\n const top_height = d.top_height ?? d.height;\n if (\n axisType === ColumnAxisType.AGE ||\n axisType === ColumnAxisType.DEPTH\n ) {\n // Inverted axis\n currentGroup.top_height = Math.min(currentGroup.top_height, top_height);\n } else {\n currentGroup.top_height = Math.max(currentGroup.top_height, top_height);\n }\n currentGroup.id = `${currentGroup.height}-${currentGroup.top_height}`;\n } else {\n // Start a new group\n currentGroup = { ...d, data: [...d.data] };\n currentGroupPosition =\n scale(currentGroup.height) ??\n scale(currentGroup.top_height) ??\n Infinity;\n groupedData.push(currentGroup);\n }\n }\n\n return groupedData;\n}\n"],"names":[],"version":3,"file":"column-views.26e0e0b6.js.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAJA,4CAAqC;AACrC,4CAAmC;AACnC,4CAA8B;AAC9B,2CAA+B;AAC/B,4CAAkC","sources":["packages/column-views/src/facets/detrital-zircon/index.module.sass"],"sourcesContent":["\n.depositional-age\n fill: var(--column-stroke-color)\n fill-opacity: 0.25\n stroke-width: 1px\n stroke: var(--column-stroke-color)\n\n.detrital-group\n margin: -5px
|
|
1
|
+
{"mappings":";;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAJA,4CAAqC;AACrC,4CAAmC;AACnC,4CAA8B;AAC9B,2CAA+B;AAC/B,4CAAkC","sources":["packages/column-views/src/facets/detrital-zircon/index.module.sass"],"sourcesContent":["\n.depositional-age\n fill: var(--column-stroke-color)\n fill-opacity: 0.25\n stroke-width: 1px\n stroke: var(--column-stroke-color)\n\n.detrital-group\n margin: -5px -5px -36px -10px\n height: 53px\n\n &.hide-axis :global .visx-axis\n tspan, text\n display: none\n\n.dz-spectra\n position: relative\n\n.floating-axis\n position: sticky\n bottom: 0\n"],"names":[],"version":3,"file":"column-views.2c45a7b5.js.map"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./column-views.321af3ae.css";
|
|
2
2
|
import $lfxOo$columnviews22ec902bjs from "./column-views.22ec902b.js";
|
|
3
3
|
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
4
|
-
import {AgeLabel as $448b24baeef3b229$export$37ebfd237811b1eb} from "./column-views.
|
|
4
|
+
import {AgeLabel as $448b24baeef3b229$export$37ebfd237811b1eb} from "./column-views.0a010643.js";
|
|
5
5
|
import $lfxOo$macrostrathyper from "@macrostrat/hyper";
|
|
6
6
|
import {ColumnContext as $lfxOo$ColumnContext, ColumnAxis as $lfxOo$ColumnAxis, ColumnAxisType as $lfxOo$ColumnAxisType, SVG as $lfxOo$SVG, AgeAxis as $lfxOo$AgeAxis} from "@macrostrat/column-components";
|
|
7
7
|
import {useContext as $lfxOo$useContext} from "react";
|
|
@@ -138,4 +138,4 @@ function $43794af7643cdf40$export$20d84abfcfa68dfa({ age: age }) {
|
|
|
138
138
|
|
|
139
139
|
|
|
140
140
|
export {$43794af7643cdf40$export$64204d5cbb3e8227 as VerticalAxisLabel, $43794af7643cdf40$export$40b6b0e4520eeb34 as CompositeAgeAxis, $43794af7643cdf40$export$ac30ca3cf5df959d as CompositeAgeAxisCore, $43794af7643cdf40$export$82731b9607850ca6 as ApproximateHeightAxis, $43794af7643cdf40$export$20d84abfcfa68dfa as AgeCursor};
|
|
141
|
-
//# sourceMappingURL=column-views.
|
|
141
|
+
//# sourceMappingURL=column-views.2f979aee.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/column-views/src/age-axis.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n SVG,\n ColumnAxis,\n ColumnContext,\n ColumnAxisType,\n AgeAxis,\n} from \"@macrostrat/column-components\";\nimport { useContext } from \"react\";\nimport styles from \"./age-axis.module.sass\";\nimport { useCompositeScale, useMacrostratColumnData } from \"./data-provider\";\nimport { Parenthetical } from \"@macrostrat/data-components\";\nimport { AgeLabel } from \"./unit-details\";\nimport { PackageScaleLayoutData } from \"./prepare-units\";\n\nconst h = hyper.styled(styles);\n\nconst AgeAxisCore = ({ ticks, tickSpacing = 40, showDomain = false }) => {\n const { pixelHeight } = useContext(ColumnContext);\n // A tick roughly every 40 pixels\n let v = Math.max(Math.round(pixelHeight / tickSpacing), 1);\n\n return h(\"g.axis\", { transform: \"translate(20 0)\" }, [\n h(ColumnAxis, {\n ticks: v,\n showDomain,\n }),\n ]);\n};\n\nexport function VerticalAxisLabel(props) {\n const { label = \"Age\", unit = \"Ma\", className, height } = props;\n return h(\n \"div.column-axis-label.age-axis-label\",\n { className, style: { height } },\n [\n label,\n \" \",\n h.if(unit)(Parenthetical, { className: \"age-axis-unit\" }, unit),\n ],\n );\n}\n\ninterface CompositeAgeAxisProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function CompositeAgeAxis(rest: CompositeAgeAxisProps) {\n const { axisType, sections, totalHeight } = useMacrostratColumnData();\n\n const packages = sections.map((section) => {\n return {\n key: `section-${section.section_id}`,\n ...section.scaleInfo,\n };\n });\n\n return h(CompositeAgeAxisCore, {\n axisType,\n packages,\n totalHeight,\n ...rest,\n });\n}\n\nexport function ApproximateHeightAxis(rest: CompositeAgeAxisProps) {\n /** Axis to show approximate height based on dynamic column scales */\n const { axisType, sections, totalHeight } = useMacrostratColumnData();\n\n const packages = sections.map((section) => {\n const { scaleInfo } = section;\n if (scaleInfo.heightScale == null) {\n throw new Error(\"No height scale available for section\");\n }\n return {\n key: `section-${section.section_id}`,\n ...scaleInfo,\n scale: scaleInfo.heightScale, // Use height scale instead of age scale\n // This only works with dynamic columns\n };\n });\n\n return h(CompositeAgeAxisCore, {\n axisType,\n axisLabel: \"Approx. height\",\n axisUnit: \"m\",\n packages,\n totalHeight,\n ...rest,\n });\n}\n\nexport interface CompositeStratigraphicScaleInfo extends CompositeAgeAxisProps {\n axisType: ColumnAxisType;\n axisLabel?: string;\n axisUnit?: string;\n totalHeight: number;\n packages: PackageScaleLayoutData[];\n}\n\nexport function CompositeAgeAxisCore(props: CompositeStratigraphicScaleInfo) {\n const { axisType, axisLabel, axisUnit, totalHeight, packages, ...rest } =\n props;\n\n if (axisType == ColumnAxisType.ORDINAL) {\n return null;\n }\n\n let _axisLabel: string = axisLabel ?? \"Age\";\n let _axisUnit = axisUnit ?? \"Ma\";\n if (axisType == ColumnAxisType.DEPTH) {\n _axisLabel = \"Depth\";\n _axisUnit = \"m\";\n } else if (axisType == ColumnAxisType.HEIGHT) {\n _axisLabel = \"Height\";\n _axisUnit = \"m\";\n }\n\n return h(\"div.composite-age-axis\", rest, [\n h(VerticalAxisLabel, {\n label: _axisLabel,\n unit: _axisUnit,\n height: totalHeight,\n }),\n h(\n SVG,\n {\n className: \"age-axis-column\",\n style: { width: `22px`, height: `${totalHeight}px` },\n width: 22,\n height: totalHeight,\n },\n packages.map((group, i) => {\n const { key, scale } = group;\n\n return h(AgeAxis, {\n key,\n className: \"age-axis\",\n scale,\n tickSizeOuter: 3,\n });\n }),\n ),\n ]);\n}\n\nexport function AgeCursor({ age }) {\n /** A cursor that shows the age at a specific point on the age axis. */\n const scale = useCompositeScale();\n const heightPx = scale(age);\n\n if (age == null || heightPx == null) {\n return null;\n }\n\n return h(\n \"div.age-cursor\",\n {\n style: {\n top: heightPx,\n },\n },\n [h(\"div.line\"), h(AgeLabel, { age, className: \"label\" })],\n );\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/age-axis.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n SVG,\n ColumnAxis,\n ColumnContext,\n ColumnAxisType,\n AgeAxis,\n} from \"@macrostrat/column-components\";\nimport { useContext } from \"react\";\nimport styles from \"./age-axis.module.sass\";\nimport { useCompositeScale, useMacrostratColumnData } from \"./data-provider\";\nimport { Parenthetical } from \"@macrostrat/data-components\";\nimport { AgeLabel } from \"./unit-details\";\nimport { PackageScaleLayoutData } from \"./prepare-units\";\n\nconst h = hyper.styled(styles);\n\nconst AgeAxisCore = ({ ticks, tickSpacing = 40, showDomain = false }) => {\n const { pixelHeight } = useContext(ColumnContext);\n // A tick roughly every 40 pixels\n let v = Math.max(Math.round(pixelHeight / tickSpacing), 1);\n\n return h(\"g.axis\", { transform: \"translate(20 0)\" }, [\n h(ColumnAxis, {\n ticks: v,\n showDomain,\n }),\n ]);\n};\n\nexport function VerticalAxisLabel(props) {\n const { label = \"Age\", unit = \"Ma\", className, height } = props;\n return h(\n \"div.column-axis-label.age-axis-label\",\n { className, style: { height } },\n [\n label,\n \" \",\n h.if(unit)(Parenthetical, { className: \"age-axis-unit\" }, unit),\n ],\n );\n}\n\ninterface CompositeAgeAxisProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function CompositeAgeAxis(rest: CompositeAgeAxisProps) {\n const { axisType, sections, totalHeight } = useMacrostratColumnData();\n\n const packages = sections.map((section) => {\n return {\n key: `section-${section.section_id}`,\n ...section.scaleInfo,\n };\n });\n\n return h(CompositeAgeAxisCore, {\n axisType,\n packages,\n totalHeight,\n ...rest,\n });\n}\n\nexport function ApproximateHeightAxis(rest: CompositeAgeAxisProps) {\n /** Axis to show approximate height based on dynamic column scales */\n const { axisType, sections, totalHeight } = useMacrostratColumnData();\n\n const packages = sections.map((section) => {\n const { scaleInfo } = section;\n if (scaleInfo.heightScale == null) {\n throw new Error(\"No height scale available for section\");\n }\n return {\n key: `section-${section.section_id}`,\n ...scaleInfo,\n scale: scaleInfo.heightScale, // Use height scale instead of age scale\n // This only works with dynamic columns\n };\n });\n\n return h(CompositeAgeAxisCore, {\n axisType,\n axisLabel: \"Approx. height\",\n axisUnit: \"m\",\n packages,\n totalHeight,\n ...rest,\n });\n}\n\nexport interface CompositeStratigraphicScaleInfo extends CompositeAgeAxisProps {\n axisType: ColumnAxisType;\n axisLabel?: string;\n axisUnit?: string;\n totalHeight: number;\n packages: PackageScaleLayoutData[];\n}\n\nexport function CompositeAgeAxisCore(props: CompositeStratigraphicScaleInfo) {\n const { axisType, axisLabel, axisUnit, totalHeight, packages, ...rest } =\n props;\n\n if (axisType == ColumnAxisType.ORDINAL) {\n return null;\n }\n\n let _axisLabel: string = axisLabel ?? \"Age\";\n let _axisUnit = axisUnit ?? \"Ma\";\n if (axisType == ColumnAxisType.DEPTH) {\n _axisLabel = \"Depth\";\n _axisUnit = \"m\";\n } else if (axisType == ColumnAxisType.HEIGHT) {\n _axisLabel = \"Height\";\n _axisUnit = \"m\";\n }\n\n return h(\"div.composite-age-axis\", rest, [\n h(VerticalAxisLabel, {\n label: _axisLabel,\n unit: _axisUnit,\n height: totalHeight,\n }),\n h(\n SVG,\n {\n className: \"age-axis-column\",\n style: { width: `22px`, height: `${totalHeight}px` },\n width: 22,\n height: totalHeight,\n },\n packages.map((group, i) => {\n const { key, scale } = group;\n\n return h(AgeAxis, {\n key,\n className: \"age-axis\",\n scale,\n tickSizeOuter: 3,\n });\n }),\n ),\n ]);\n}\n\nexport function AgeCursor({ age }) {\n /** A cursor that shows the age at a specific point on the age axis. */\n const scale = useCompositeScale();\n const heightPx = scale(age);\n\n if (age == null || heightPx == null) {\n return null;\n }\n\n return h(\n \"div.age-cursor\",\n {\n style: {\n top: heightPx,\n },\n },\n [h(\"div.line\"), h(AgeLabel, { age, className: \"label\" })],\n );\n}\n"],"names":[],"version":3,"file":"column-views.2f979aee.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.
|
|
1
|
+
import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.0a010643.js";
|
|
2
2
|
import {Button as $fodo6$Button} from "@blueprintjs/core";
|
|
3
3
|
import {useKeyHandler as $fodo6$useKeyHandler} from "@macrostrat/ui-components";
|
|
4
4
|
import $fodo6$macrostrathyper from "@macrostrat/hyper";
|
|
@@ -57,4 +57,4 @@ function $d418ca9cbe9b0f3c$export$cfdbe8496aa51962(props) {
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
export {$d418ca9cbe9b0f3c$export$cfdbe8496aa51962 as UnitDetailsPanelWithNavigation};
|
|
60
|
-
//# sourceMappingURL=column-views.
|
|
60
|
+
//# sourceMappingURL=column-views.3f1cdc18.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;AAKO,SAAS,0CAA+B,KAAK;IAClD,MAAM,YAAE,QAAQ,aAAE,SAAS,gBAAE,YAAY,gBAAE,YAAY,YAAE,QAAQ,EAAE,GAAG,MAAM,GAC1E;IAEF,MAAM,KAAK,UAAU,UACnB,CAAC,OAAS,KAAK,OAAO,KAAK,cAAc;IAG3C,MAAM,SAAS;QACb,IAAI,KAAK;QACT,IAAI,KAAK;IACX;IAEA,CAAA,GAAA,oBAAY,EACV,CAAC;QACC,MAAM,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,SAAS,MAAM,EAAE;QAC/D,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO;QACrC,MAAM,eAAe;IACvB,GACA;QAAC;QAAU;KAAG;IAGhB,IAAI,gBAAgB,MAAM,OAAO;IAEjC,MAAM,UAAU,CAAA,GAAA,sBAAA,EAAE;QAChB,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO;YACjB;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO,SAAS,MAAM,GAAG;YACnC;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;KACD;IAED,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAe,GAAG;QACzB,MAAM;QACN,SAAQ,KAAK;YACX,aAAa;QACf;mBACA;iBACA;QACA,0BAA0B;QAC1B,YAAY;QACZ,aAAa;kBACb;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/unit-details/modal-panel.ts"],"sourcesContent":["import { Button } from \"@blueprintjs/core\";\nimport { UnitDetailsPanel } from \"./panel\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nexport function UnitDetailsPanelWithNavigation(props) {\n const { unitData, className, selectedUnit, onSelectUnit, features, ...rest } =\n props;\n\n const ix = unitData?.findIndex(\n (unit) => unit.unit_id === selectedUnit?.unit_id,\n );\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= unitData.length) return;\n onSelectUnit(unitData[nextIx].unit_id);\n event.stopPropagation();\n },\n [unitData, ix],\n );\n\n if (selectedUnit == null) return null;\n\n const actions = h([\n h(Button, {\n icon: \"arrow-up\",\n disabled: ix === 0,\n onClick() {\n onSelectUnit(unitData[ix - 1]?.unit_id);\n },\n }),\n h(Button, {\n icon: \"arrow-down\",\n disabled: ix === unitData.length - 1,\n onClick() {\n onSelectUnit(unitData[ix + 1]?.unit_id);\n },\n }),\n ]);\n\n return h(UnitDetailsPanel, {\n unit: selectedUnit,\n onClose(event) {\n onSelectUnit(null);\n },\n className,\n actions,\n showLithologyProportions: true,\n selectUnit: onSelectUnit,\n columnUnits: unitData,\n features,\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;AAKO,SAAS,0CAA+B,KAAK;IAClD,MAAM,YAAE,QAAQ,aAAE,SAAS,gBAAE,YAAY,gBAAE,YAAY,YAAE,QAAQ,EAAE,GAAG,MAAM,GAC1E;IAEF,MAAM,KAAK,UAAU,UACnB,CAAC,OAAS,KAAK,OAAO,KAAK,cAAc;IAG3C,MAAM,SAAS;QACb,IAAI,KAAK;QACT,IAAI,KAAK;IACX;IAEA,CAAA,GAAA,oBAAY,EACV,CAAC;QACC,MAAM,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,SAAS,MAAM,EAAE;QAC/D,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO;QACrC,MAAM,eAAe;IACvB,GACA;QAAC;QAAU;KAAG;IAGhB,IAAI,gBAAgB,MAAM,OAAO;IAEjC,MAAM,UAAU,CAAA,GAAA,sBAAA,EAAE;QAChB,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO;YACjB;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO,SAAS,MAAM,GAAG;YACnC;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;KACD;IAED,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAe,GAAG;QACzB,MAAM;QACN,SAAQ,KAAK;YACX,aAAa;QACf;mBACA;iBACA;QACA,0BAA0B;QAC1B,YAAY;QACZ,aAAa;kBACb;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/unit-details/modal-panel.ts"],"sourcesContent":["import { Button } from \"@blueprintjs/core\";\nimport { UnitDetailsPanel } from \"./panel\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nexport function UnitDetailsPanelWithNavigation(props) {\n const { unitData, className, selectedUnit, onSelectUnit, features, ...rest } =\n props;\n\n const ix = unitData?.findIndex(\n (unit) => unit.unit_id === selectedUnit?.unit_id,\n );\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= unitData.length) return;\n onSelectUnit(unitData[nextIx].unit_id);\n event.stopPropagation();\n },\n [unitData, ix],\n );\n\n if (selectedUnit == null) return null;\n\n const actions = h([\n h(Button, {\n icon: \"arrow-up\",\n disabled: ix === 0,\n onClick() {\n onSelectUnit(unitData[ix - 1]?.unit_id);\n },\n }),\n h(Button, {\n icon: \"arrow-down\",\n disabled: ix === unitData.length - 1,\n onClick() {\n onSelectUnit(unitData[ix + 1]?.unit_id);\n },\n }),\n ]);\n\n return h(UnitDetailsPanel, {\n unit: selectedUnit,\n onClose(event) {\n onSelectUnit(null);\n },\n className,\n actions,\n showLithologyProportions: true,\n selectUnit: onSelectUnit,\n columnUnits: unitData,\n features,\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.3f1cdc18.js.map"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.052498a6.js";
|
|
2
1
|
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
2
|
+
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.052498a6.js";
|
|
3
3
|
import $5ZBll$macrostrathyper from "@macrostrat/hyper";
|
|
4
|
-
import $5ZBll$react, {useCallback as $5ZBll$useCallback
|
|
4
|
+
import $5ZBll$react, {useCallback as $5ZBll$useCallback} from "react";
|
|
5
5
|
import {NotesColumn as $5ZBll$NotesColumn} from "@macrostrat/column-components";
|
|
6
6
|
|
|
7
7
|
|
|
@@ -12,11 +12,13 @@ import {NotesColumn as $5ZBll$NotesColumn} from "@macrostrat/column-components";
|
|
|
12
12
|
function $bc17276da4abb183$export$2f2e65a797f8fc1e(div, opts) {
|
|
13
13
|
const { axisType: axisType } = opts;
|
|
14
14
|
const [height, top_height] = (0, $b6657fba8924a702$export$70e712e2ac0237a)(div, axisType);
|
|
15
|
+
const nameForDivision = opts.nameForDivision ?? $bc17276da4abb183$export$c9757aeb43a67df0;
|
|
15
16
|
return {
|
|
16
17
|
height: height,
|
|
17
18
|
top_height: top_height,
|
|
18
19
|
data: div,
|
|
19
|
-
id: div.unit_id
|
|
20
|
+
id: div.unit_id,
|
|
21
|
+
note: nameForDivision(div)
|
|
20
22
|
};
|
|
21
23
|
}
|
|
22
24
|
const $bc17276da4abb183$export$c9757aeb43a67df0 = (div)=>{
|
|
@@ -25,7 +27,7 @@ const $bc17276da4abb183$export$c9757aeb43a67df0 = (div)=>{
|
|
|
25
27
|
function $bc17276da4abb183$var$UnitDataColumn_(props) {
|
|
26
28
|
const { axisType: axisType, units: units } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
|
|
27
29
|
const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
|
|
28
|
-
const { left: left = 0, noteComponent: noteComponent, shouldRenderNote: shouldRenderNote = (note, i)=>true, minimumHeight: minimumHeight = 0, divisions: divisions = units, ...rest } = props;
|
|
30
|
+
const { left: left = 0, noteComponent: noteComponent, shouldRenderNote: shouldRenderNote = (note, i)=>true, nameForDivision: nameForDivision, minimumHeight: minimumHeight = 0, divisions: divisions = units, ...rest } = props;
|
|
29
31
|
const minimumHeightFilter = (0, $5ZBll$useCallback)((d)=>{
|
|
30
32
|
if (minimumHeight == 0) return true;
|
|
31
33
|
const dy = Math.abs(scale(d.top_height) - scale(d.height));
|
|
@@ -36,7 +38,8 @@ function $bc17276da4abb183$var$UnitDataColumn_(props) {
|
|
|
36
38
|
]);
|
|
37
39
|
if (divisions == null) return null;
|
|
38
40
|
const notes = divisions.filter(shouldRenderNote).map((d)=>$bc17276da4abb183$export$2f2e65a797f8fc1e(d, {
|
|
39
|
-
axisType: axisType
|
|
41
|
+
axisType: axisType,
|
|
42
|
+
nameForDivision: nameForDivision
|
|
40
43
|
})).filter(minimumHeightFilter);
|
|
41
44
|
return (0, $5ZBll$macrostrathyper)((0, $5ZBll$NotesColumn), {
|
|
42
45
|
transform: `translate(${left})`,
|
|
@@ -50,20 +53,18 @@ function $bc17276da4abb183$var$UnitDataColumn_(props) {
|
|
|
50
53
|
});
|
|
51
54
|
}
|
|
52
55
|
const $bc17276da4abb183$export$6316e673796ccb55 = (0, $5ZBll$react).memo($bc17276da4abb183$var$UnitDataColumn_);
|
|
56
|
+
function $bc17276da4abb183$var$UnitNameNote(props) {
|
|
57
|
+
const { note: note } = props;
|
|
58
|
+
return (0, $5ZBll$macrostrathyper)("p.col-note-label", note.note);
|
|
59
|
+
}
|
|
53
60
|
function $bc17276da4abb183$export$594d19cdd88f8c16(props) {
|
|
54
|
-
const {
|
|
55
|
-
const defaultNoteComponent = (0, $5ZBll$useMemo)(()=>(props)=>{
|
|
56
|
-
const { note: note } = props;
|
|
57
|
-
return (0, $5ZBll$macrostrathyper)("p.col-note-label", nameForDivision(note.data));
|
|
58
|
-
}, [
|
|
59
|
-
nameForDivision
|
|
60
|
-
]);
|
|
61
|
+
const { noteComponent: noteComponent = $bc17276da4abb183$var$UnitNameNote, ...rest } = props;
|
|
61
62
|
return (0, $5ZBll$macrostrathyper)($bc17276da4abb183$export$6316e673796ccb55, {
|
|
62
|
-
noteComponent: noteComponent
|
|
63
|
+
noteComponent: noteComponent,
|
|
63
64
|
...rest
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
|
|
68
69
|
export {$bc17276da4abb183$export$2f2e65a797f8fc1e as noteForDivision, $bc17276da4abb183$export$c9757aeb43a67df0 as defaultNameFunction, $bc17276da4abb183$export$6316e673796ccb55 as UnitDataColumn, $bc17276da4abb183$export$594d19cdd88f8c16 as UnitNamesColumn};
|
|
69
|
-
//# sourceMappingURL=column-views.
|
|
70
|
+
//# sourceMappingURL=column-views.4685ea28.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;AAmCA,SAAS,0CACP,GAAU,EACV,IAA4E;IAE5E,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,MAAM,kBAAkB,KAAK,eAAe,IAAI;IAEhD,OAAO;gBACL;oBACA;QACA,MAAM;QACN,IAAI,IAAI,OAAO;QACf,MAAM,gBAAgB;IACxB;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,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAClD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAC9B,MAAM,QACJ,OAAO,kBACP,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,uBAChE,eAAe,iBACf,gBAAgB,cAChB,YAAY,OACZ,GAAG,MACJ,GAAG;IAEJ,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;sBAAE;6BAAU;QAAgB,IACjE,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAQlC,SAAS,mCAAa,KAAyB;IAC7C,MAAM,QAAE,IAAI,EAAE,GAAG;IACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,KAAK,IAAI;AACxC;AAEO,SAAS,0CAAgB,KAAqB;IACnD,MAAM,iBAAE,gBAAgB,oCAAc,GAAG,MAAM,GAAG;IAClD,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;uBACvB;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useCallback } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n type ColumnDivision,\n type NoteData,\n type NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { IUnit } from \"./types\";\nimport React from \"react\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\nimport {\n type CompositeColumnScale,\n getUnitHeightRange,\n} from \"../prepare-units\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n nameForDivision?(obj: IUnit): 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\ninterface UnitNote extends NoteData {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n}\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType; nameForDivision?: (obj: IUnit) => string },\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n const nameForDivision = opts.nameForDivision ?? defaultNameFunction;\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n note: nameForDivision(div),\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 { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n nameForDivision,\n minimumHeight = 0,\n divisions = units,\n ...rest\n } = props;\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, nameForDivision }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\nexport interface UnitNamesProps extends UnitDataProps {\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nfunction UnitNameNote(props: { note: UnitNote }) {\n const { note } = props;\n return h(\"p.col-note-label\", note.note);\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const { noteComponent = UnitNameNote, ...rest } = props;\n return h(UnitDataColumn, {\n noteComponent,\n ...rest,\n });\n}\n\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"column-views.4685ea28.js.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;AAoBA,MAAM,YAAE,8BAAQ,cAAE,gCAAU,gBAAE,kCAAY,YAAE,8BAAQ,EAAE,GAAG,CAAA,GAAA,sBAAc;AAOvE,MAAM,wCAAkB,CAAA,GAAA,WAAG;AAE3B,MAAM,2CAAqB,CAAA,GAAA,WAAG,EAA+B,CAAC;IAC5D,MAAM,QAAQ,IAAI;IAClB,IAAI,CAAC,OAAO,OAAO;IACnB,MAAM,UAAU,IAAI;IACpB,MAAM,OAAO,CAAC,CAAC;QACb,QAAQ,GAAG,CAAC,KAAK,OAAO,EAAE;IAC5B;IACA,OAAO;AACT;AAEA,SAAS,qCAAe,YAAE,QAAQ,EAAE,GAAG,MAAqB;IAC1D,kDAAkD;IAClD,IAAI,MAAM;IACV,IAAI;QACF,MAAM;IACR,EAAE,OAAM;QACN,mCAAmC;QACnC,MAAM;IACR;IACA,OAAO,CAAA,GAAA,sBAAA,EAAE,gCAAU;QAAE,OAAO;QAAK,GAAG,IAAI;IAAC,GAAG;AAC9C;AAEO,SAAS,0CAA8B,YAC5C,QAAQ,SACR,KAAK,EAIN;IACC;;;GAGC,GAED,MAAM,UAAmD;QACvD;YAAC;YAAiB;SAAM;KACzB;IAED,OAAO,CAAA,GAAA,sBAAA,EACL,sCACA;QACE,eAAe;IACjB,GACA;QAAC,CAAA,GAAA,sBAAA,EAAE,mCAAa;YAAE,OAAO;QAAQ;QAAI;KAAS;AAElD;AASA,MAAM,oDACJ,CAAA,GAAA,oBAAY,EAA+B;AAEtC,SAAS,0CAA6B,YAC3C,QAAQ,SACR,KAAK,YACL,QAAQ,eACR,WAAW,YACX,QAAQ,EAC8C;IACtD;;;;;;;;;KASG,GAEH,MAAM,QAAQ,CAAA,GAAA,cAAM,EAAE;QACpB,uDAAuD;QACvD,OAAO;mBACL;sBACA;yBACA;sBACA;QACF;IACF,GAAG;QAAC;QAAO;QAAU;QAAa;KAAS;IAE3C,OAAO,CAAA,GAAA,sBAAA,EACL,2CACA;eAAE;IAAM,GACR,CAAA,GAAA,sBAAA,EAAE,kDAA4B,QAAQ,EAAE;eAAE;IAAM,GAAG;AAEvD;AAEO,SAAS;IACd,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE;IACvB,IAAI,CAAC,KACH,MAAM,IAAI,MACR;IAGJ,OAAO;AACT;AAEO,SAAS;IACd,OAAO,mCAAa;AACtB;AAEO,SAAS;IACd,IAAI;QACF,OAAO,mCAAa;IACtB,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEO,SAAS;IACd,MAAM,MAAM;IACZ,OAAO,CAAA,GAAA,cAAM,EACX,IAAM,CAAA,GAAA,yCAAmB,EAAE,IAAI,QAAQ,EAAE,OACzC;QAAC,IAAI,QAAQ;KAAC;AAElB;AAEA,SAAS,kCAAY,SACnB,KAAK,EAGN;IACC;;;;GAIC,GACD,uDAAuD,GACvD,mBAAmB;IACnB,MAAM,QAAQ;IAEd,gCAAgC;IAChC,MAAM,gBAAgB,CAAA,GAAA,aAAK,EAAE,MAAM,MAAM;IACzC,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,cAAc,OAAO,KAAK,MAAM,MAAM,EAAE;YAC1C,QAAQ,KAAK,CAAC;YACd,cAAc,OAAO,GAAG,MAAM,MAAM;QACtC;IACF,GAAG;QAAC,MAAM,MAAM;KAAC;IAEjB,KAAK,MAAM,CAAC,MAAM,MAAM,IAAI,MAC1B,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,GAAG,CAAC,MAAM;IAClB,GAAG;QAAC;QAAO;KAAM;IAEnB,OAAO;AACT","sources":["packages/column-views/src/data-provider/store.ts"],"sourcesContent":["import {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n CompositeColumnScale,\n createCompositeScale,\n} from \"../prepare-units/composite-scale\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport type { ExtUnit, PackageLayoutData } from \"../prepare-units\";\n// An isolated jotai store for Macrostrat column usage\n// TODO: there might be a better way to do this using the MacrostratDataProvider or similar\nimport { createIsolation } from \"jotai-scope\";\nimport { atom, PrimitiveAtom, type WritableAtom } from \"jotai\";\n\nconst { Provider, useSetAtom, useAtomValue, useStore } = createIsolation();\n\ntype ProviderProps = {\n children: ReactNode;\n initialValues?: Iterable<[WritableAtom<any, any, any>, any]>;\n};\n\nconst columnUnitsAtom = atom<ExtUnit[]>();\n\nconst columnUnitsMapAtom = atom<Map<number, ExtUnit> | null>((get) => {\n const units = get(columnUnitsAtom);\n if (!units) return null;\n const unitMap = new Map<number, ExtUnit>();\n units.forEach((unit) => {\n unitMap.set(unit.unit_id, unit);\n });\n return unitMap;\n});\n\nfunction ScopedProvider({ children, ...rest }: ProviderProps) {\n // Always use the same store instance in this tree\n let val = null;\n try {\n val = useStore();\n } catch {\n // No store found, create a new one\n val = null;\n }\n return h(Provider, { store: val, ...rest }, children);\n}\n\nexport function MacrostratColumnStateProvider({\n children,\n units,\n}: {\n children
|
|
1
|
+
{"mappings":";;;;;;;;;;;AAoBA,MAAM,YAAE,8BAAQ,cAAE,gCAAU,gBAAE,kCAAY,YAAE,8BAAQ,EAAE,GAAG,CAAA,GAAA,sBAAc;AAOvE,MAAM,wCAAkB,CAAA,GAAA,WAAG;AAE3B,MAAM,2CAAqB,CAAA,GAAA,WAAG,EAA+B,CAAC;IAC5D,MAAM,QAAQ,IAAI;IAClB,IAAI,CAAC,OAAO,OAAO;IACnB,MAAM,UAAU,IAAI;IACpB,MAAM,OAAO,CAAC,CAAC;QACb,QAAQ,GAAG,CAAC,KAAK,OAAO,EAAE;IAC5B;IACA,OAAO;AACT;AAEA,SAAS,qCAAe,YAAE,QAAQ,EAAE,GAAG,MAAqB;IAC1D,kDAAkD;IAClD,IAAI,MAAM;IACV,IAAI;QACF,MAAM;IACR,EAAE,OAAM;QACN,mCAAmC;QACnC,MAAM;IACR;IACA,OAAO,CAAA,GAAA,sBAAA,EAAE,gCAAU;QAAE,OAAO;QAAK,GAAG,IAAI;IAAC,GAAG;AAC9C;AAEO,SAAS,0CAA8B,YAC5C,QAAQ,SACR,KAAK,EAIN;IACC;;;GAGC,GAED,MAAM,UAAmD;QACvD;YAAC;YAAiB;SAAM;KACzB;IAED,OAAO,CAAA,GAAA,sBAAA,EACL,sCACA;QACE,eAAe;IACjB,GACA;QAAC,CAAA,GAAA,sBAAA,EAAE,mCAAa;YAAE,OAAO;QAAQ;QAAI;KAAS;AAElD;AASA,MAAM,oDACJ,CAAA,GAAA,oBAAY,EAA+B;AAEtC,SAAS,0CAA6B,YAC3C,QAAQ,SACR,KAAK,YACL,QAAQ,eACR,WAAW,YACX,QAAQ,EAC8C;IACtD;;;;;;;;;KASG,GAEH,MAAM,QAAQ,CAAA,GAAA,cAAM,EAAE;QACpB,uDAAuD;QACvD,OAAO;mBACL;sBACA;yBACA;sBACA;QACF;IACF,GAAG;QAAC;QAAO;QAAU;QAAa;KAAS;IAE3C,OAAO,CAAA,GAAA,sBAAA,EACL,2CACA;eAAE;IAAM,GACR,CAAA,GAAA,sBAAA,EAAE,kDAA4B,QAAQ,EAAE;eAAE;IAAM,GAAG;AAEvD;AAEO,SAAS;IACd,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE;IACvB,IAAI,CAAC,KACH,MAAM,IAAI,MACR;IAGJ,OAAO;AACT;AAEO,SAAS;IACd,OAAO,mCAAa;AACtB;AAEO,SAAS;IACd,IAAI;QACF,OAAO,mCAAa;IACtB,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEO,SAAS;IACd,MAAM,MAAM;IACZ,OAAO,CAAA,GAAA,cAAM,EACX,IAAM,CAAA,GAAA,yCAAmB,EAAE,IAAI,QAAQ,EAAE,OACzC;QAAC,IAAI,QAAQ;KAAC;AAElB;AAEA,SAAS,kCAAY,SACnB,KAAK,EAGN;IACC;;;;GAIC,GACD,uDAAuD,GACvD,mBAAmB;IACnB,MAAM,QAAQ;IAEd,gCAAgC;IAChC,MAAM,gBAAgB,CAAA,GAAA,aAAK,EAAE,MAAM,MAAM;IACzC,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,cAAc,OAAO,KAAK,MAAM,MAAM,EAAE;YAC1C,QAAQ,KAAK,CAAC;YACd,cAAc,OAAO,GAAG,MAAM,MAAM;QACtC;IACF,GAAG;QAAC,MAAM,MAAM;KAAC;IAEjB,KAAK,MAAM,CAAC,MAAM,MAAM,IAAI,MAC1B,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,GAAG,CAAC,MAAM;IAClB,GAAG;QAAC;QAAO;KAAM;IAEnB,OAAO;AACT","sources":["packages/column-views/src/data-provider/store.ts"],"sourcesContent":["import {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n CompositeColumnScale,\n createCompositeScale,\n} from \"../prepare-units/composite-scale\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport type { ExtUnit, PackageLayoutData } from \"../prepare-units\";\n// An isolated jotai store for Macrostrat column usage\n// TODO: there might be a better way to do this using the MacrostratDataProvider or similar\nimport { createIsolation } from \"jotai-scope\";\nimport { atom, PrimitiveAtom, type WritableAtom } from \"jotai\";\n\nconst { Provider, useSetAtom, useAtomValue, useStore } = createIsolation();\n\ntype ProviderProps = {\n children: ReactNode;\n initialValues?: Iterable<[WritableAtom<any, any, any>, any]>;\n};\n\nconst columnUnitsAtom = atom<ExtUnit[]>();\n\nconst columnUnitsMapAtom = atom<Map<number, ExtUnit> | null>((get) => {\n const units = get(columnUnitsAtom);\n if (!units) return null;\n const unitMap = new Map<number, ExtUnit>();\n units.forEach((unit) => {\n unitMap.set(unit.unit_id, unit);\n });\n return unitMap;\n});\n\nfunction ScopedProvider({ children, ...rest }: ProviderProps) {\n // Always use the same store instance in this tree\n let val = null;\n try {\n val = useStore();\n } catch {\n // No store found, create a new one\n val = null;\n }\n return h(Provider, { store: val, ...rest }, children);\n}\n\nexport function MacrostratColumnStateProvider({\n children,\n units,\n}: {\n children?: ReactNode;\n units: ExtUnit[];\n}) {\n /** Top-level provider for Macrostrat column data.\n * It is either provided by the Column component itself, or\n * can be hoisted higher in the tree to provide a common data context\n */\n\n const atomMap: [[PrimitiveAtom<ExtUnit[]>, ExtUnit[]]] = [\n [columnUnitsAtom, units],\n ];\n\n return h(\n ScopedProvider,\n {\n initialValues: atomMap,\n },\n [h(AtomUpdater, { atoms: atomMap }), children],\n );\n}\n\nexport interface MacrostratColumnDataContext {\n units: ExtUnit[];\n sections: PackageLayoutData[];\n totalHeight?: number;\n axisType?: ColumnAxisType;\n}\n\nconst MacrostratColumnDataContext =\n createContext<MacrostratColumnDataContext>(null);\n\nexport function MacrostratColumnDataProvider({\n children,\n units,\n sections,\n totalHeight,\n axisType,\n}: MacrostratColumnDataContext & { children: ReactNode }) {\n /** Internal provider for Macrostrat column data.\n * As a general rule, we want to provide data and column-axis\n * height calculations through the context, since these need to\n * be accessed by any component that lays out information on the\n * column.\n *\n * Cross-axis layout and view configuration (e.g., showing and hiding\n * of different components or labels) should be handled through passing\n * props to the components themselves.\n * */\n\n const value = useMemo(() => {\n // For now, change ordinal axis types to age axis types\n return {\n units,\n sections,\n totalHeight,\n axisType,\n };\n }, [units, sections, totalHeight, axisType]);\n\n return h(\n MacrostratColumnStateProvider,\n { units },\n h(MacrostratColumnDataContext.Provider, { value }, children),\n );\n}\n\nexport function useMacrostratColumnData() {\n const ctx = useContext(MacrostratColumnDataContext);\n if (!ctx) {\n throw new Error(\n \"useMacrostratColumnData must be used within a MacrostratColumnDataProvider\",\n );\n }\n return ctx;\n}\n\nexport function useMacrostratUnits() {\n return useAtomValue(columnUnitsAtom);\n}\n\nexport function useColumnUnitsMap(): Map<number, ExtUnit> | null {\n try {\n return useAtomValue(columnUnitsMapAtom);\n } catch {\n return null;\n }\n}\n\nexport function useCompositeScale(): CompositeColumnScale {\n const ctx = useMacrostratColumnData();\n return useMemo(\n () => createCompositeScale(ctx.sections, true),\n [ctx.sections],\n );\n}\n\nfunction AtomUpdater({\n atoms,\n}: {\n atoms: [WritableAtom<any, any, any>, any][];\n}) {\n /**\n * A generic updater to sync Jotai atoms with state passed as props.\n * Useful for scoped providers where state needs to be synced outside\n * of the current context.\n */\n /** TODO: this is an awkward way to keep atoms updated */\n // The scoped store\n const store = useStore();\n\n // Warn on atoms changing length\n const prevLengthRef = useRef(atoms.length);\n useEffect(() => {\n if (prevLengthRef.current !== atoms.length) {\n console.error(\"Error: number of atoms in ScopedAtomUpdater has changed.\");\n prevLengthRef.current = atoms.length;\n }\n }, [atoms.length]);\n\n for (const [atom, value] of atoms) {\n useEffect(() => {\n store.set(atom, value);\n }, [store, value]);\n }\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.4b259f9e.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {CorrelationChart as $ed7dc56184962590$export$9ebf875c09445bec} from "./column-views.
|
|
1
|
+
import {CorrelationChart as $ed7dc56184962590$export$9ebf875c09445bec} from "./column-views.6f96d1c3.js";
|
|
2
2
|
import {parseLineFromString as $c491b6231216b7f9$export$77c3cc7a57c6db5f, stringifyLine as $c491b6231216b7f9$export$8c53992169ff5301} from "./column-views.beb54e95.js";
|
|
3
3
|
|
|
4
4
|
|
|
@@ -6,4 +6,4 @@ import {parseLineFromString as $c491b6231216b7f9$export$77c3cc7a57c6db5f, string
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
export {$ed7dc56184962590$export$9ebf875c09445bec as CorrelationChart, $c491b6231216b7f9$export$77c3cc7a57c6db5f as parseLineFromString, $c491b6231216b7f9$export$8c53992169ff5301 as stringifyLine};
|
|
9
|
-
//# sourceMappingURL=column-views.
|
|
9
|
+
//# sourceMappingURL=column-views.4e6eead3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"","sources":["packages/column-views/src/correlation-chart/index.ts"],"sourcesContent":["export * from \"./main\";\nexport * from \"./hash-string\";\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":"","sources":["packages/column-views/src/correlation-chart/index.ts"],"sourcesContent":["export * from \"./main\";\nexport * from \"./hash-string\";\n"],"names":[],"version":3,"file":"column-views.4e6eead3.js.map"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.detrital-group_977b40 {
|
|
9
|
+
height: 53px;
|
|
9
10
|
margin: -5px -5px -36px -10px;
|
|
10
11
|
}
|
|
11
12
|
|
|
@@ -21,4 +22,4 @@
|
|
|
21
22
|
position: sticky;
|
|
22
23
|
bottom: 0;
|
|
23
24
|
}
|
|
24
|
-
/*# sourceMappingURL=column-views.
|
|
25
|
+
/*# sourceMappingURL=column-views.6f9511d1.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AACA;;;;;;;AAMA;;;;;AAMM;;;;AAGJ;;;;AAGA","sources":["packages/column-views/src/facets/detrital-zircon/index.module.sass"],"sourcesContent":["\n.depositional-age\n fill: var(--column-stroke-color)\n fill-opacity: 0.25\n stroke-width: 1px\n stroke: var(--column-stroke-color)\n\n.detrital-group\n margin: -5px -5px -36px -10px\n height: 53px\n\n &.hide-axis :global .visx-axis\n tspan, text\n display: none\n\n.dz-spectra\n position: relative\n\n.floating-axis\n position: sticky\n bottom: 0\n"],"names":[],"version":3,"file":"column-views.6f9511d1.css.map"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {UnitKeyboardNavigation as $61771df184788970$export$70f5ee19650fc7d1, UnitSelectionProvider as $61771df184788970$export$f19d75b1d4b676a4, useUnitSelectionStore as $61771df184788970$export$b220b1d3591dc9e5} from "./column-views.c44febd0.js";
|
|
2
|
-
import {UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.
|
|
2
|
+
import {UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.b9265595.js";
|
|
3
3
|
import "./column-views.338a7a83.css";
|
|
4
4
|
import $2d5zd$columnviews6a954628js from "./column-views.6a954628.js";
|
|
5
|
-
import {CompositeTimescaleCore as $7d0f52717c0de7e1$export$463f46772c64d403} from "./column-views.
|
|
5
|
+
import {CompositeTimescaleCore as $7d0f52717c0de7e1$export$463f46772c64d403} from "./column-views.b977da35.js";
|
|
6
6
|
import {buildCorrelationChartData as $2c6a8e6a98a077ae$export$7f21dc14b8199dc0, findLaterallyExtensiveUnits as $2c6a8e6a98a077ae$export$cc5d9b95e199a6de, splitStratIntoBoxes as $2c6a8e6a98a077ae$export$3e71a3125322d04b} from "./column-views.275ba52b.js";
|
|
7
|
-
import {CompositeAgeAxisCore as $43794af7643cdf40$export$ac30ca3cf5df959d} from "./column-views.
|
|
8
|
-
import {ColoredUnitComponent as $4c8184c4a7317749$export$6012fd1584b5d0c0} from "./column-views.
|
|
7
|
+
import {CompositeAgeAxisCore as $43794af7643cdf40$export$ac30ca3cf5df959d} from "./column-views.2f979aee.js";
|
|
8
|
+
import {ColoredUnitComponent as $4c8184c4a7317749$export$6012fd1584b5d0c0} from "./column-views.73fc96cb.js";
|
|
9
9
|
import {UnitBoxes as $d254716a820e9c85$export$5d1cdfabe8dc8085} from "./column-views.faa7e52e.js";
|
|
10
|
-
import {ColumnContainer as $2118f0266dc7e955$export$2194471aa3d52446} from "./column-views.
|
|
10
|
+
import {ColumnContainer as $2118f0266dc7e955$export$2194471aa3d52446} from "./column-views.e3f0cd7b.js";
|
|
11
11
|
import $2d5zd$macrostrathyper from "@macrostrat/hyper";
|
|
12
12
|
import {useMemo as $2d5zd$useMemo, useRef as $2d5zd$useRef} from "react";
|
|
13
13
|
import {useInDarkMode as $2d5zd$useInDarkMode} from "@macrostrat/ui-components";
|
|
@@ -225,4 +225,4 @@ function $ed7dc56184962590$var$TimescaleColumn(props) {
|
|
|
225
225
|
|
|
226
226
|
|
|
227
227
|
export {$ed7dc56184962590$export$9ebf875c09445bec as CorrelationChart};
|
|
228
|
-
//# sourceMappingURL=column-views.
|
|
228
|
+
//# sourceMappingURL=column-views.6f96d1c3.js.map
|