@macrostrat/column-views 1.0.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/esm/_shared.f7eec55a.js +9 -0
- package/dist/esm/_shared.f7eec55a.js.map +1 -0
- package/dist/esm/age-axis.4a8cf5e6.js +98 -0
- package/dist/esm/age-axis.4a8cf5e6.js.map +1 -0
- package/dist/esm/age-axis.module.03773a80.css +33 -0
- package/dist/esm/age-axis.module.03773a80.css.map +1 -0
- package/dist/esm/age-axis.module.3cc91335.js +22 -0
- package/dist/esm/age-axis.module.3cc91335.js.map +1 -0
- package/dist/esm/age-model-overlay.c7226855.js +57 -0
- package/dist/esm/age-model-overlay.c7226855.js.map +1 -0
- package/dist/esm/age-model-overlay.module.5d9e78fb.css +14 -0
- package/dist/esm/age-model-overlay.module.5d9e78fb.css.map +1 -0
- package/dist/esm/age-model-overlay.module.cd985dcb.js +16 -0
- package/dist/esm/age-model-overlay.module.cd985dcb.js.map +1 -0
- package/dist/esm/base.910b80b4.js +288 -0
- package/dist/esm/base.910b80b4.js.map +1 -0
- package/dist/esm/boxes.8292cff2.js +258 -0
- package/dist/esm/boxes.8292cff2.js.map +1 -0
- package/dist/esm/boxes.module.2b5fb18e.css +26 -0
- package/dist/esm/boxes.module.2b5fb18e.css.map +1 -0
- package/dist/esm/boxes.module.4ebc7796.js +19 -0
- package/dist/esm/boxes.module.4ebc7796.js.map +1 -0
- package/dist/esm/{carbon-isotopes.3b502a9e.js → carbon-isotopes.10db8285.js} +2 -2
- package/dist/esm/{carbon-isotopes.3b502a9e.js.map → carbon-isotopes.10db8285.js.map} +1 -1
- package/dist/esm/colors.395c6db5.js +40 -0
- package/dist/esm/colors.395c6db5.js.map +1 -0
- package/dist/esm/column-correlation.c8dcfe98.js +9 -0
- package/dist/esm/column-correlation.c8dcfe98.js.map +1 -0
- package/dist/esm/column-nav.5414677c.js +55 -0
- package/dist/esm/column-nav.5414677c.js.map +1 -0
- package/dist/esm/column-navigation.37cd3245.js +9 -0
- package/dist/esm/column-navigation.37cd3245.js.map +1 -0
- package/dist/esm/column.01d68dd8.js +127 -0
- package/dist/esm/column.01d68dd8.js.map +1 -0
- package/dist/esm/{column.db058031.js → column.a25f8ebd.js} +4 -4
- package/dist/esm/column.a25f8ebd.js.map +1 -0
- package/dist/esm/column.module.1b776e15.js +46 -0
- package/dist/esm/column.module.1b776e15.js.map +1 -0
- package/dist/esm/column.module.a67a6b4c.css +159 -0
- package/dist/esm/column.module.a67a6b4c.css.map +1 -0
- package/dist/esm/composite-scale.577bf64a.js +222 -0
- package/dist/esm/composite-scale.577bf64a.js.map +1 -0
- package/dist/esm/composite.039e4798.js +163 -0
- package/dist/esm/composite.039e4798.js.map +1 -0
- package/dist/esm/{core.4db8e452.js → core.843310d3.js} +11 -12
- package/dist/esm/core.843310d3.js.map +1 -0
- package/dist/esm/core.91ede078.js +206 -0
- package/dist/esm/core.91ede078.js.map +1 -0
- package/dist/esm/correlation-chart.abd8b346.js +9 -0
- package/dist/esm/correlation-chart.abd8b346.js.map +1 -0
- package/dist/esm/data-provider.1506eb64.js.map +1 -1
- package/dist/esm/data-provider.f10c6d0b.js +13 -0
- package/dist/esm/data-provider.f10c6d0b.js.map +1 -0
- package/dist/esm/fetch.99aec438.js +152 -0
- package/dist/esm/fetch.99aec438.js.map +1 -0
- package/dist/esm/hash-string.285b37fb.js +39 -0
- package/dist/esm/hash-string.285b37fb.js.map +1 -0
- package/dist/esm/helpers.2f0a0cb7.js +141 -0
- package/dist/esm/helpers.2f0a0cb7.js.map +1 -0
- package/dist/esm/index.d.ts +797 -130
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +13 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inset-map.3c18106d.js +66 -0
- package/dist/esm/inset-map.3c18106d.js.map +1 -0
- package/dist/esm/keyboard-navigation.6713401b.js +48 -0
- package/dist/esm/keyboard-navigation.6713401b.js.map +1 -0
- package/dist/esm/keyboard-navigation.a9fc80dd.js +112 -0
- package/dist/esm/keyboard-navigation.a9fc80dd.js.map +1 -0
- package/dist/esm/layers.033d3fb0.js +170 -0
- package/dist/esm/layers.033d3fb0.js.map +1 -0
- package/dist/esm/main.2e0375a5.js +221 -0
- package/dist/esm/main.2e0375a5.js.map +1 -0
- package/dist/esm/main.module.3dd9500b.css +134 -0
- package/dist/esm/main.module.3dd9500b.css.map +1 -0
- package/dist/esm/main.module.c09154b1.js +70 -0
- package/dist/esm/main.module.c09154b1.js.map +1 -0
- package/dist/esm/mapbox.cac42eed.js +167 -0
- package/dist/esm/mapbox.cac42eed.js.map +1 -0
- package/dist/esm/maps.bcdea9c1.js +11 -0
- package/dist/esm/maps.bcdea9c1.js.map +1 -0
- package/dist/esm/{names.f6a4e9a4.js → names.a8f2b452.js} +5 -5
- package/dist/esm/names.a8f2b452.js.map +1 -0
- package/dist/esm/panel.598f76a5.js +420 -0
- package/dist/esm/panel.598f76a5.js.map +1 -0
- package/dist/esm/panel.module.386166cc.js +58 -0
- package/dist/esm/panel.module.386166cc.js.map +1 -0
- package/dist/esm/panel.module.3d2ea3c6.css +111 -0
- package/dist/esm/panel.module.3d2ea3c6.css.map +1 -0
- package/dist/esm/popover.a810b7bc.js +66 -0
- package/dist/esm/popover.a810b7bc.js.map +1 -0
- package/dist/esm/popover.module.c4ba4189.js +22 -0
- package/dist/esm/popover.module.c4ba4189.js.map +1 -0
- package/dist/esm/{selection-popover.module.0a701258.css → popover.module.c4d6bfb0.css} +11 -8
- package/dist/esm/popover.module.c4d6bfb0.css.map +1 -0
- package/dist/esm/prepare-data.d4284b4a.js +125 -0
- package/dist/esm/prepare-data.d4284b4a.js.map +1 -0
- package/dist/esm/prepare-units.6c890a96.js +104 -0
- package/dist/esm/prepare-units.6c890a96.js.map +1 -0
- package/dist/esm/{resolvers.b5c82b78.js → resolvers.36013b49.js} +13 -2
- package/dist/esm/resolvers.36013b49.js.map +1 -0
- package/dist/esm/section.a34d379a.js +215 -0
- package/dist/esm/section.a34d379a.js.map +1 -0
- package/dist/esm/selection.f5b0297e.js +143 -0
- package/dist/esm/selection.f5b0297e.js.map +1 -0
- package/dist/esm/state.178ef364.js +75 -0
- package/dist/esm/state.178ef364.js.map +1 -0
- package/dist/esm/state.2952cbca.js +118 -0
- package/dist/esm/state.2952cbca.js.map +1 -0
- package/dist/esm/store.c4d7a8a4.js +52 -0
- package/dist/esm/store.c4d7a8a4.js.map +1 -0
- package/dist/esm/styles.7bc776d1.js +95 -0
- package/dist/esm/styles.7bc776d1.js.map +1 -0
- package/dist/esm/svg.4b9a96c1.js +89 -0
- package/dist/esm/svg.4b9a96c1.js.map +1 -0
- package/dist/esm/types.0f0b57c9.js +3 -0
- package/dist/esm/types.0f0b57c9.js.map +1 -0
- package/dist/esm/unit-details.071cefed.js +9 -0
- package/dist/esm/unit-details.071cefed.js.map +1 -0
- package/dist/esm/units.5a4fc058.js +98 -0
- package/dist/esm/units.5a4fc058.js.map +1 -0
- package/dist/esm/utils.d7a43a2a.js +55 -0
- package/dist/esm/utils.d7a43a2a.js.map +1 -0
- package/dist/node/index.js.map +1 -1
- package/package.json +24 -7
- package/src/age-axis.module.sass +27 -0
- package/src/age-axis.ts +82 -19
- package/src/age-model-overlay.module.sass +11 -0
- package/src/age-model-overlay.ts +73 -0
- package/src/carbon-isotopes/column.ts +4 -2
- package/src/carbon-isotopes/core.ts +9 -6
- package/src/carbon-isotopes/data-provider.ts +3 -3
- package/src/column.module.sass +58 -49
- package/src/column.ts +149 -135
- package/src/correlation-chart/hash-string.ts +57 -0
- package/src/correlation-chart/index.ts +2 -0
- package/src/correlation-chart/main.module.sass +122 -0
- package/src/correlation-chart/main.ts +305 -0
- package/src/correlation-chart/prepare-data.ts +217 -0
- package/src/correlation-chart/stories/correlation-chart.stories.ts +192 -0
- package/src/correlation-chart/stories/stories.module.sass +18 -0
- package/src/correlation-chart/unconformity-line.module.sass +8 -0
- package/src/correlation-chart/unconformity-line.ts +25 -0
- package/src/data-provider/base.ts +388 -0
- package/src/data-provider/column-nav.ts +53 -0
- package/src/data-provider/fetch.ts +231 -0
- package/src/data-provider/index.ts +4 -0
- package/src/data-provider/store.ts +72 -0
- package/src/index.ts +5 -3
- package/src/maps/_shared/index.ts +2 -0
- package/src/maps/_shared/inset-map.stories.ts +20 -0
- package/src/maps/_shared/inset-map.ts +87 -0
- package/src/maps/_shared/styles.ts +57 -0
- package/src/maps/column-correlation/column-correlation-map.stories.ts +96 -0
- package/src/maps/column-correlation/core.ts +225 -0
- package/src/maps/column-correlation/index.ts +2 -0
- package/src/maps/column-correlation/state.ts +192 -0
- package/src/maps/column-navigation/index.ts +2 -0
- package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +102 -0
- package/src/maps/column-navigation/mapbox/index.ts +219 -0
- package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +119 -0
- package/src/maps/column-navigation/mapbox/state.ts +109 -0
- package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +46 -0
- package/src/{map → maps/column-navigation/svg}/index.ts +18 -6
- package/src/{map → maps/column-navigation/svg}/layers.ts +28 -109
- package/src/maps/column-navigation/utils/keyboard-navigation.ts +58 -0
- package/src/maps/index.ts +3 -0
- package/src/prepare-units/composite-scale.ts +353 -0
- package/src/prepare-units/helpers.ts +226 -0
- package/src/prepare-units/index.ts +177 -0
- package/src/prepare-units/utils.ts +98 -0
- package/src/section.ts +264 -84
- package/src/unit-details/index.ts +2 -215
- package/src/unit-details/{index.module.sass → panel.module.sass} +39 -8
- package/src/unit-details/panel.ts +523 -0
- package/src/{selection-popover.module.sass → unit-details/popover.module.sass} +4 -2
- package/src/unit-details/popover.ts +82 -0
- package/src/units/boxes.module.sass +16 -0
- package/src/units/boxes.ts +243 -90
- package/src/units/colors.ts +64 -0
- package/src/units/composite.ts +157 -152
- package/src/units/index.ts +76 -9
- package/src/units/names.ts +8 -4
- package/src/units/resolvers.ts +11 -0
- package/src/units/selection.ts +115 -101
- package/src/units/types.ts +5 -16
- package/dist/esm/age-axis.64c509ee.js +0 -41
- package/dist/esm/age-axis.64c509ee.js.map +0 -1
- package/dist/esm/boxes.13968b76.js +0 -164
- package/dist/esm/boxes.13968b76.js.map +0 -1
- package/dist/esm/boxes.module.28873d08.css +0 -4
- package/dist/esm/boxes.module.28873d08.css.map +0 -1
- package/dist/esm/boxes.module.605bdcd6.js +0 -13
- package/dist/esm/boxes.module.605bdcd6.js.map +0 -1
- package/dist/esm/column.8dd26e1a.js +0 -149
- package/dist/esm/column.8dd26e1a.js.map +0 -1
- package/dist/esm/column.db058031.js.map +0 -1
- package/dist/esm/column.module.039d872c.css +0 -151
- package/dist/esm/column.module.039d872c.css.map +0 -1
- package/dist/esm/column.module.e632868a.js +0 -19
- package/dist/esm/column.module.e632868a.js.map +0 -1
- package/dist/esm/composite.608a4ca2.js +0 -153
- package/dist/esm/composite.608a4ca2.js.map +0 -1
- package/dist/esm/core.4db8e452.js.map +0 -1
- package/dist/esm/helpers.8a03cfc7.js +0 -94
- package/dist/esm/helpers.8a03cfc7.js.map +0 -1
- package/dist/esm/index.module.0844afd8.css +0 -65
- package/dist/esm/index.module.0844afd8.css.map +0 -1
- package/dist/esm/index.module.24fe3a2e.js +0 -37
- package/dist/esm/index.module.24fe3a2e.js.map +0 -1
- package/dist/esm/layers.ad5fd25d.js +0 -231
- package/dist/esm/layers.ad5fd25d.js.map +0 -1
- package/dist/esm/map.7aa26f17.js +0 -82
- package/dist/esm/map.7aa26f17.js.map +0 -1
- package/dist/esm/names.f6a4e9a4.js.map +0 -1
- package/dist/esm/providers.cd1e652f.js +0 -25
- package/dist/esm/providers.cd1e652f.js.map +0 -1
- package/dist/esm/resolvers.b5c82b78.js.map +0 -1
- package/dist/esm/section.cc1b1100.js +0 -118
- package/dist/esm/section.cc1b1100.js.map +0 -1
- package/dist/esm/selection-popover.17d1bd55.js +0 -60
- package/dist/esm/selection-popover.17d1bd55.js.map +0 -1
- package/dist/esm/selection-popover.module.0a701258.css.map +0 -1
- package/dist/esm/selection-popover.module.e22f5183.js +0 -22
- package/dist/esm/selection-popover.module.e22f5183.js.map +0 -1
- package/dist/esm/selection.bbf26d0e.js +0 -117
- package/dist/esm/selection.bbf26d0e.js.map +0 -1
- package/dist/esm/store.25eaa168.js +0 -18
- package/dist/esm/store.25eaa168.js.map +0 -1
- package/dist/esm/types.f016e032.js +0 -18
- package/dist/esm/types.f016e032.js.map +0 -1
- package/dist/esm/unit-details.56ff8b70.js +0 -209
- package/dist/esm/unit-details.56ff8b70.js.map +0 -1
- package/dist/esm/units.361088d4.js +0 -42
- package/dist/esm/units.361088d4.js.map +0 -1
- package/src/helpers.ts +0 -133
- package/src/providers.ts +0 -34
- package/src/selection-popover.ts +0 -71
- package/src/store.ts +0 -12
- package/src/units/units.scss +0 -16
- /package/src/{map → maps/column-navigation/svg}/animated.ts +0 -0
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import {group as $9eVFr$group} from "d3-array";
|
|
2
|
-
import {compareAgeRanges as $9eVFr$compareAgeRanges, AgeRangeRelationship as $9eVFr$AgeRangeRelationship} from "@macrostrat/stratigraphy-utils";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const $2c60de495788ce61$var$dt = 0.001;
|
|
7
|
-
function $2c60de495788ce61$var$unitsOverlap(a, b) {
|
|
8
|
-
const rel = (0, $9eVFr$compareAgeRanges)($2c60de495788ce61$var$unitAgeRange(a), $2c60de495788ce61$var$unitAgeRange(b), 0.001);
|
|
9
|
-
return rel != (0, $9eVFr$AgeRangeRelationship).Disjoint;
|
|
10
|
-
}
|
|
11
|
-
function $2c60de495788ce61$var$unitAgeRange(unit) {
|
|
12
|
-
return [
|
|
13
|
-
unit.b_age,
|
|
14
|
-
unit.t_age
|
|
15
|
-
];
|
|
16
|
-
}
|
|
17
|
-
function $2c60de495788ce61$export$9f8a901d6936c6b6(unit, i, divisions) {
|
|
18
|
-
const overlappingUnits = divisions.filter((d)=>d.unit_id != unit.unit_id && $2c60de495788ce61$var$unitsOverlap(unit, d));
|
|
19
|
-
let bottomOverlap = false;
|
|
20
|
-
for (const d of overlappingUnits)if (d.b_age < unit.b_age + $2c60de495788ce61$var$dt) bottomOverlap = true;
|
|
21
|
-
let column = 0;
|
|
22
|
-
if (overlappingUnits.length == 1) column = 1;
|
|
23
|
-
return {
|
|
24
|
-
...unit,
|
|
25
|
-
bottomOverlap: bottomOverlap,
|
|
26
|
-
column: column,
|
|
27
|
-
overlappingUnits: overlappingUnits.map((d)=>d.unit_id)
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function $2c60de495788ce61$export$55543e159517d62d(units) {
|
|
31
|
-
let divisions = units.map($2c60de495788ce61$export$9f8a901d6936c6b6);
|
|
32
|
-
for (let d of divisions){
|
|
33
|
-
const overlappingUnits = divisions.filter((u)=>d.overlappingUnits.includes(u.unit_id));
|
|
34
|
-
const maxNOverlapping = Math.max(Math.max(...d.overlappingUnits.map((uid)=>divisions.find((u)=>u.unit_id == uid).overlappingUnits.length), 0));
|
|
35
|
-
//d.maxNOverlapping = maxNOverlapping;
|
|
36
|
-
// Overlapping columns
|
|
37
|
-
const columns = overlappingUnits.map((d)=>d.column);
|
|
38
|
-
if (columns.includes(d.column)) {
|
|
39
|
-
let col = 0;
|
|
40
|
-
// Go through columns to find a better index
|
|
41
|
-
while(columns.includes(col))col++;
|
|
42
|
-
d.column = col;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return divisions;
|
|
46
|
-
}
|
|
47
|
-
function $2c60de495788ce61$export$dfbd00399d639b4c(units) {
|
|
48
|
-
let groups = Array.from((0, $9eVFr$group)(units, (d)=>d.section_id));
|
|
49
|
-
return groups.map(([section_id, units])=>{
|
|
50
|
-
const t_age = Math.min(...units.map((d)=>d.t_age));
|
|
51
|
-
const b_age = Math.max(...units.map((d)=>d.b_age));
|
|
52
|
-
return {
|
|
53
|
-
section_id: section_id,
|
|
54
|
-
t_age: t_age,
|
|
55
|
-
b_age: b_age,
|
|
56
|
-
units: units
|
|
57
|
-
};
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
function $2c60de495788ce61$export$ec445c47b6e5d2d(sections) {
|
|
61
|
-
/** Columns can have sections that overlap in time. Here, we merge overlapping
|
|
62
|
-
* sections into a single section to correctly render gap-bound packages.
|
|
63
|
-
*/ const [firstSection, ...rest] = sections;
|
|
64
|
-
const newSections = [
|
|
65
|
-
firstSection
|
|
66
|
-
];
|
|
67
|
-
for (const section of rest){
|
|
68
|
-
const lastSection = newSections[newSections.length - 1];
|
|
69
|
-
if (lastSection.b_age < section.t_age || lastSection.t_age > section.b_age) {
|
|
70
|
-
// No overlap, add the section as normal
|
|
71
|
-
newSections.push(section);
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
// Overlap, merge the sections
|
|
75
|
-
lastSection.section_id = [
|
|
76
|
-
...$2c60de495788ce61$export$d0c8ecbd4ed8940c(lastSection.section_id),
|
|
77
|
-
...$2c60de495788ce61$export$d0c8ecbd4ed8940c(section.section_id)
|
|
78
|
-
];
|
|
79
|
-
lastSection.units.push(...section.units);
|
|
80
|
-
lastSection.b_age = Math.max(lastSection.b_age, section.b_age);
|
|
81
|
-
lastSection.t_age = Math.min(lastSection.t_age, section.t_age);
|
|
82
|
-
}
|
|
83
|
-
return newSections;
|
|
84
|
-
}
|
|
85
|
-
function $2c60de495788ce61$export$d0c8ecbd4ed8940c(x) {
|
|
86
|
-
if (Array.isArray(x)) return x;
|
|
87
|
-
return [
|
|
88
|
-
x
|
|
89
|
-
];
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
export {$2c60de495788ce61$export$9f8a901d6936c6b6 as extendDivision, $2c60de495788ce61$export$55543e159517d62d as preprocessUnits, $2c60de495788ce61$export$dfbd00399d639b4c as groupUnitsIntoSections, $2c60de495788ce61$export$ec445c47b6e5d2d as _mergeOverlappingSections, $2c60de495788ce61$export$d0c8ecbd4ed8940c as ensureArray};
|
|
94
|
-
//# sourceMappingURL=helpers.8a03cfc7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/column-views/src/helpers.ts"],"sourcesContent":["import { BaseUnit, UnitLong } from \"@macrostrat/api-types\";\nimport { IUnit } from \"./units\";\nimport { SectionInfo } from \"./section\";\nimport { group } from \"d3-array\";\nimport {\n AgeRange,\n compareAgeRanges,\n AgeRangeRelationship,\n} from \"@macrostrat/stratigraphy-utils\";\n\nconst dt = 0.001;\n\nfunction unitsOverlap<T extends BaseUnit>(a: T, b: T) {\n const rel = compareAgeRanges(unitAgeRange(a), unitAgeRange(b), 0.001);\n return rel != AgeRangeRelationship.Disjoint;\n}\n\nfunction unitAgeRange<T extends BaseUnit>(unit: T): AgeRange {\n return [unit.b_age, unit.t_age];\n}\n\ninterface ExtUnit extends UnitLong {\n bottomOverlap: boolean;\n overlappingUnits: number[];\n column?: number;\n}\n\nexport function extendDivision(\n unit: UnitLong,\n i: number,\n divisions: UnitLong[]\n): ExtUnit {\n const overlappingUnits = divisions.filter(\n (d) => d.unit_id != unit.unit_id && unitsOverlap(unit, d)\n );\n let bottomOverlap = false;\n for (const d of overlappingUnits) {\n if (d.b_age < unit.b_age + dt) bottomOverlap = true;\n }\n\n let column = 0;\n if (overlappingUnits.length == 1) {\n column = 1;\n }\n\n return {\n ...unit,\n bottomOverlap,\n column,\n overlappingUnits: overlappingUnits.map((d) => d.unit_id),\n };\n}\n\nexport function preprocessUnits(units: UnitLong[]) {\n let divisions = units.map(extendDivision);\n for (let d of divisions) {\n const overlappingUnits = divisions.filter((u) =>\n d.overlappingUnits.includes(u.unit_id)\n );\n\n const maxNOverlapping = Math.max(\n Math.max(\n ...d.overlappingUnits.map(\n (uid) =>\n divisions.find((u) => u.unit_id == uid).overlappingUnits.length\n ),\n 0\n )\n );\n\n //d.maxNOverlapping = maxNOverlapping;\n\n // Overlapping columns\n const columns = overlappingUnits.map((d) => d.column);\n\n if (columns.includes(d.column)) {\n let col = 0;\n // Go through columns to find a better index\n while (columns.includes(col)) {\n col++;\n }\n d.column = col;\n }\n }\n\n return divisions;\n}\n\nexport function groupUnitsIntoSections(units: IUnit[]): SectionInfo[] {\n let groups = Array.from(group(units, (d) => d.section_id));\n return groups.map(([section_id, units]) => {\n const t_age = Math.min(...units.map((d) => d.t_age));\n const b_age = Math.max(...units.map((d) => d.b_age));\n return { section_id, t_age, b_age, units };\n });\n}\n\nexport function _mergeOverlappingSections(\n sections: SectionInfo[]\n): SectionInfo[] {\n /** Columns can have sections that overlap in time. Here, we merge overlapping\n * sections into a single section to correctly render gap-bound packages.\n */\n const [firstSection, ...rest] = sections;\n const newSections = [firstSection];\n for (const section of rest) {\n const lastSection = newSections[newSections.length - 1];\n if (\n lastSection.b_age < section.t_age ||\n lastSection.t_age > section.b_age\n ) {\n // No overlap, add the section as normal\n newSections.push(section);\n continue;\n }\n // Overlap, merge the sections\n lastSection.section_id = [\n ...ensureArray(lastSection.section_id),\n ...ensureArray(section.section_id),\n ];\n lastSection.units.push(...section.units);\n lastSection.b_age = Math.max(lastSection.b_age, section.b_age);\n lastSection.t_age = Math.min(lastSection.t_age, section.t_age);\n }\n return newSections;\n}\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n if (Array.isArray(x)) {\n return x;\n }\n return [x];\n}\n"],"names":[],"version":3,"file":"helpers.8a03cfc7.js.map"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
.Mnh6ea_legend-panel-header {
|
|
2
|
-
border-bottom: 1px solid var(--panel-rule-color);
|
|
3
|
-
background-color: var(--panel-secondary-background-color);
|
|
4
|
-
z-index: 50;
|
|
5
|
-
justify-content: space-between;
|
|
6
|
-
align-items: baseline;
|
|
7
|
-
gap: 1em;
|
|
8
|
-
margin: -1em -1em 0;
|
|
9
|
-
padding: .5em 1em;
|
|
10
|
-
display: flex;
|
|
11
|
-
position: sticky;
|
|
12
|
-
top: 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.Mnh6ea_legend-panel-header code {
|
|
16
|
-
color: var(--secondary-color);
|
|
17
|
-
font-size: .9em;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.Mnh6ea_legend-panel-header .Mnh6ea_spacer {
|
|
21
|
-
flex: 1;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.Mnh6ea_legend-panel-header button {
|
|
25
|
-
line-height: 1.5;
|
|
26
|
-
transform: translateY(2px);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.Mnh6ea_legend-panel-header h3 {
|
|
30
|
-
margin: 0 0 .5em;
|
|
31
|
-
font-size: 1.1em;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.Mnh6ea_unit-details-content {
|
|
35
|
-
margin-top: 1em;
|
|
36
|
-
margin-bottom: -.5em;
|
|
37
|
-
position: relative;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.Mnh6ea_proportion, .Mnh6ea_sep, .Mnh6ea_no-units {
|
|
41
|
-
color: var(--secondary-color);
|
|
42
|
-
font-size: .9em;
|
|
43
|
-
font-style: italic;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.Mnh6ea_strat-name-id, .Mnh6ea_unit-id {
|
|
47
|
-
font-family: var(--monospace-font);
|
|
48
|
-
color: var(--secondary-color);
|
|
49
|
-
font-size: .9em;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.Mnh6ea_strat-name-id:before, .Mnh6ea_unit-id:before {
|
|
53
|
-
content: "#";
|
|
54
|
-
color: var(--tertiary-color);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.Mnh6ea_color-swatch {
|
|
58
|
-
border: 1px solid var(--panel-rule-color);
|
|
59
|
-
border-radius: .2em;
|
|
60
|
-
width: 1em;
|
|
61
|
-
height: 1em;
|
|
62
|
-
margin-right: .2em;
|
|
63
|
-
display: inline-block;
|
|
64
|
-
}
|
|
65
|
-
/*# sourceMappingURL=index.module.0844afd8.css.map */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"AAAA;;;;;;;;;;;;;;AAYE;;;;;AAGA;;;;AAEA;;;;;AAIA;;;;;AAIF;;;;;;AAKA;;;;;;AAKA;;;;;;AAKE;;;;;AAIF","sources":["packages/column-views/src/unit-details/index.module.sass"],"sourcesContent":[".legend-panel-header\n display: flex\n justify-content: space-between\n align-items: baseline\n gap: 1em\n border-bottom: 1px solid var(--panel-rule-color)\n position: sticky\n top: 0\n background-color: var(--panel-secondary-background-color)\n margin: -1em -1em 0\n padding: 0.5em 1em\n z-index: 50\n code\n font-size: 0.9em\n color: var(--secondary-color)\n .spacer\n flex: 1\n button\n line-height: 1.5\n transform: translateY(2px)\n\n h3\n margin: 0 0 0.5em\n font-size: 1.1em\n\n.unit-details-content\n position: relative\n margin-top: 1em\n margin-bottom: -0.5em\n\n.proportion, .sep, .no-units\n color: var(--secondary-color)\n font-style: italic\n font-size: 0.9em\n\n.strat-name-id, .unit-id\n font-family: var(--monospace-font)\n color: var(--secondary-color)\n font-size: 0.9em\n\n &::before\n content: '#'\n color: var(--tertiary-color)\n\n.color-swatch\n width: 1em\n height: 1em\n border-radius: 0.2em\n margin-right: 0.2em\n border: 1px solid var(--panel-rule-color)\n display: inline-block\n"],"names":[],"version":3,"file":"index.module.0844afd8.css.map"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
function $parcel$export(e, n, v, s) {
|
|
3
|
-
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
4
|
-
}
|
|
5
|
-
var $051e16c544ec71c3$exports = {};
|
|
6
|
-
|
|
7
|
-
$parcel$export($051e16c544ec71c3$exports, "color-swatch", () => $051e16c544ec71c3$export$def51519e6441a17, (v) => $051e16c544ec71c3$export$def51519e6441a17 = v);
|
|
8
|
-
$parcel$export($051e16c544ec71c3$exports, "legend-panel-header", () => $051e16c544ec71c3$export$ce652ed9af8e3365, (v) => $051e16c544ec71c3$export$ce652ed9af8e3365 = v);
|
|
9
|
-
$parcel$export($051e16c544ec71c3$exports, "no-units", () => $051e16c544ec71c3$export$aff88130074c0d5f, (v) => $051e16c544ec71c3$export$aff88130074c0d5f = v);
|
|
10
|
-
$parcel$export($051e16c544ec71c3$exports, "proportion", () => $051e16c544ec71c3$export$5a14da41381fe262, (v) => $051e16c544ec71c3$export$5a14da41381fe262 = v);
|
|
11
|
-
$parcel$export($051e16c544ec71c3$exports, "sep", () => $051e16c544ec71c3$export$5aee1a5bd9743d8f, (v) => $051e16c544ec71c3$export$5aee1a5bd9743d8f = v);
|
|
12
|
-
$parcel$export($051e16c544ec71c3$exports, "spacer", () => $051e16c544ec71c3$export$8cc075c801fd6817, (v) => $051e16c544ec71c3$export$8cc075c801fd6817 = v);
|
|
13
|
-
$parcel$export($051e16c544ec71c3$exports, "strat-name-id", () => $051e16c544ec71c3$export$3ab27000c02e6186, (v) => $051e16c544ec71c3$export$3ab27000c02e6186 = v);
|
|
14
|
-
$parcel$export($051e16c544ec71c3$exports, "unit-details-content", () => $051e16c544ec71c3$export$1c30616b5f94c6bc, (v) => $051e16c544ec71c3$export$1c30616b5f94c6bc = v);
|
|
15
|
-
$parcel$export($051e16c544ec71c3$exports, "unit-id", () => $051e16c544ec71c3$export$e22f189945dfce76, (v) => $051e16c544ec71c3$export$e22f189945dfce76 = v);
|
|
16
|
-
var $051e16c544ec71c3$export$def51519e6441a17;
|
|
17
|
-
var $051e16c544ec71c3$export$ce652ed9af8e3365;
|
|
18
|
-
var $051e16c544ec71c3$export$aff88130074c0d5f;
|
|
19
|
-
var $051e16c544ec71c3$export$5a14da41381fe262;
|
|
20
|
-
var $051e16c544ec71c3$export$5aee1a5bd9743d8f;
|
|
21
|
-
var $051e16c544ec71c3$export$8cc075c801fd6817;
|
|
22
|
-
var $051e16c544ec71c3$export$3ab27000c02e6186;
|
|
23
|
-
var $051e16c544ec71c3$export$1c30616b5f94c6bc;
|
|
24
|
-
var $051e16c544ec71c3$export$e22f189945dfce76;
|
|
25
|
-
$051e16c544ec71c3$export$def51519e6441a17 = `Mnh6ea_color-swatch`;
|
|
26
|
-
$051e16c544ec71c3$export$ce652ed9af8e3365 = `Mnh6ea_legend-panel-header`;
|
|
27
|
-
$051e16c544ec71c3$export$aff88130074c0d5f = `Mnh6ea_no-units`;
|
|
28
|
-
$051e16c544ec71c3$export$5a14da41381fe262 = `Mnh6ea_proportion`;
|
|
29
|
-
$051e16c544ec71c3$export$5aee1a5bd9743d8f = `Mnh6ea_sep`;
|
|
30
|
-
$051e16c544ec71c3$export$8cc075c801fd6817 = `Mnh6ea_spacer`;
|
|
31
|
-
$051e16c544ec71c3$export$3ab27000c02e6186 = `Mnh6ea_strat-name-id`;
|
|
32
|
-
$051e16c544ec71c3$export$1c30616b5f94c6bc = `Mnh6ea_unit-details-content`;
|
|
33
|
-
$051e16c544ec71c3$export$e22f189945dfce76 = `Mnh6ea_unit-id`;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
export {$051e16c544ec71c3$exports as default};
|
|
37
|
-
//# sourceMappingURL=index.module.24fe3a2e.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AARA,4CAAiC,CAAC,mBAAmB,CAAC;AACtD,4CAAwC,CAAC,0BAA0B,CAAC;AACpE,4CAA6B,CAAC,eAAe,CAAC;AAC9C,4CAA+B,CAAC,iBAAiB,CAAC;AAClD,4CAAwB,CAAC,UAAU,CAAC;AACpC,4CAA2B,CAAC,aAAa,CAAC;AAC1C,4CAAkC,CAAC,oBAAoB,CAAC;AACxD,4CAAyC,CAAC,2BAA2B,CAAC;AACtE,4CAA4B,CAAC,cAAc,CAAC","sources":["packages/column-views/src/unit-details/index.module.sass"],"sourcesContent":[".legend-panel-header\n display: flex\n justify-content: space-between\n align-items: baseline\n gap: 1em\n border-bottom: 1px solid var(--panel-rule-color)\n position: sticky\n top: 0\n background-color: var(--panel-secondary-background-color)\n margin: -1em -1em 0\n padding: 0.5em 1em\n z-index: 50\n code\n font-size: 0.9em\n color: var(--secondary-color)\n .spacer\n flex: 1\n button\n line-height: 1.5\n transform: translateY(2px)\n\n h3\n margin: 0 0 0.5em\n font-size: 1.1em\n\n.unit-details-content\n position: relative\n margin-top: 1em\n margin-bottom: -0.5em\n\n.proportion, .sep, .no-units\n color: var(--secondary-color)\n font-style: italic\n font-size: 0.9em\n\n.strat-name-id, .unit-id\n font-family: var(--monospace-font)\n color: var(--secondary-color)\n font-size: 0.9em\n\n &::before\n content: '#'\n color: var(--tertiary-color)\n\n.color-swatch\n width: 1em\n height: 1em\n border-radius: 0.2em\n margin-right: 0.2em\n border: 1px solid var(--panel-rule-color)\n display: inline-block\n"],"names":[],"version":3,"file":"index.module.24fe3a2e.js.map"}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import $eaw9D$macrostrathyper from "@macrostrat/hyper";
|
|
2
|
-
import {FeatureLayer as $eaw9D$FeatureLayer, Feature as $eaw9D$Feature, MapContext as $eaw9D$MapContext} from "@macrostrat/svg-map-components";
|
|
3
|
-
import {useAPIResult as $eaw9D$useAPIResult, useKeyHandler as $eaw9D$useKeyHandler} from "@macrostrat/ui-components";
|
|
4
|
-
import $eaw9D$chromajs from "chroma-js";
|
|
5
|
-
import {geoCentroid as $eaw9D$geoCentroid} from "d3-geo";
|
|
6
|
-
import {geoVoronoi as $eaw9D$geoVoronoi} from "d3-geo-voronoi";
|
|
7
|
-
import {useContext as $eaw9D$useContext, useMemo as $eaw9D$useMemo} from "react";
|
|
8
|
-
import {feature as $eaw9D$feature} from "topojson-client";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const $347c34ac01fb689b$var$defaultStyle = {
|
|
19
|
-
fill: "rgb(239, 180, 249)",
|
|
20
|
-
stroke: "magenta"
|
|
21
|
-
};
|
|
22
|
-
function $347c34ac01fb689b$export$2254347cd20e6080(props) {
|
|
23
|
-
const { style: style = $347c34ac01fb689b$var$defaultStyle, ...params } = props;
|
|
24
|
-
const res = (0, $eaw9D$useAPIResult)("/measurements", {
|
|
25
|
-
...params,
|
|
26
|
-
format: "geojson",
|
|
27
|
-
response: "light"
|
|
28
|
-
});
|
|
29
|
-
if (res == null) return null;
|
|
30
|
-
return (0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
|
|
31
|
-
useCanvas: false,
|
|
32
|
-
style: style,
|
|
33
|
-
features: res.features.filter((d)=>d.properties.unit_id != null)
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
function $347c34ac01fb689b$export$4ad66a3119e1afaa(res) {
|
|
37
|
-
try {
|
|
38
|
-
const { data: data } = res.success;
|
|
39
|
-
const { features: f } = (0, $eaw9D$feature)(data, data.objects.output);
|
|
40
|
-
return f;
|
|
41
|
-
} catch (err) {
|
|
42
|
-
console.error(err);
|
|
43
|
-
return [];
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function $347c34ac01fb689b$export$f177ff57c101017a(props) {
|
|
47
|
-
const { features: features, onClick: onClick, color: color = "rgba(150,150,150, 1)", singleFeature: singleFeature = true } = props;
|
|
48
|
-
const c = (0, $eaw9D$chromajs)(color);
|
|
49
|
-
return (0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
|
|
50
|
-
className: "columns",
|
|
51
|
-
useCanvas: onClick == null,
|
|
52
|
-
style: {
|
|
53
|
-
fill: c.alpha(0.2).css(),
|
|
54
|
-
stroke: c.alpha(0.4).css()
|
|
55
|
-
}
|
|
56
|
-
}, features.map((f)=>{
|
|
57
|
-
return (0, $eaw9D$macrostrathyper)((0, $eaw9D$Feature), {
|
|
58
|
-
id: f.id ?? f.properties.col_id,
|
|
59
|
-
onClick: onClick,
|
|
60
|
-
feature: f
|
|
61
|
-
});
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
var $347c34ac01fb689b$var$MacrostratStatusCode = /*#__PURE__*/ function(MacrostratStatusCode) {
|
|
65
|
-
MacrostratStatusCode["InProcess"] = "in process";
|
|
66
|
-
return MacrostratStatusCode;
|
|
67
|
-
}($347c34ac01fb689b$var$MacrostratStatusCode || {});
|
|
68
|
-
function $347c34ac01fb689b$var$normalize(angle) {
|
|
69
|
-
if (angle > Math.PI) angle -= 2 * Math.PI;
|
|
70
|
-
else if (angle <= -Math.PI) angle += 2 * Math.PI;
|
|
71
|
-
return angle;
|
|
72
|
-
}
|
|
73
|
-
function $347c34ac01fb689b$var$buildTriangulation(features) {
|
|
74
|
-
console.log("Computing triangulation");
|
|
75
|
-
const centroids = features.map((0, $eaw9D$geoCentroid));
|
|
76
|
-
const tri = (0, $eaw9D$geoVoronoi)(centroids);
|
|
77
|
-
return {
|
|
78
|
-
centroids: centroids,
|
|
79
|
-
tri: tri
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
function $347c34ac01fb689b$var$buildKeyMapping(neighbors, centroids, currentIndex, projection) {
|
|
83
|
-
if (neighbors == null) return;
|
|
84
|
-
const currentCentroid = projection(centroids[currentIndex]);
|
|
85
|
-
let edgeAngles = neighbors.map((index)=>{
|
|
86
|
-
const centroid = projection(centroids[index]);
|
|
87
|
-
const dx = centroid[0] - currentCentroid[0];
|
|
88
|
-
const dy = centroid[1] - currentCentroid[1];
|
|
89
|
-
return {
|
|
90
|
-
col_index: index,
|
|
91
|
-
angle: Math.atan2(dy, dx)
|
|
92
|
-
};
|
|
93
|
-
});
|
|
94
|
-
edgeAngles.sort((d)=>d.angle);
|
|
95
|
-
function closestAngle(num) {
|
|
96
|
-
// Find closest angle in array of neighbors
|
|
97
|
-
let curr = edgeAngles[0];
|
|
98
|
-
for (let next of edgeAngles)if (Math.abs($347c34ac01fb689b$var$normalize(num - next.angle)) < Math.abs($347c34ac01fb689b$var$normalize(num - curr.angle))) curr = next;
|
|
99
|
-
return curr.col_index;
|
|
100
|
-
}
|
|
101
|
-
return {
|
|
102
|
-
37: closestAngle(Math.PI),
|
|
103
|
-
38: closestAngle(3 * Math.PI / 2),
|
|
104
|
-
39: closestAngle(0),
|
|
105
|
-
40: closestAngle(Math.PI / 2)
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
function $347c34ac01fb689b$export$8c41dd563753848(props) {
|
|
109
|
-
/** Keyboard navigation of columns using a Delaunay triangulation */ const { features: features = [], col_id: col_id = null, onChange: onChange, showLayers: showLayers = false, ...projectArgs } = props;
|
|
110
|
-
const { projection: projection } = (0, $eaw9D$useContext)((0, $eaw9D$MapContext));
|
|
111
|
-
const { centroids: centroids, tri: tri } = (0, $eaw9D$useMemo)(()=>$347c34ac01fb689b$var$buildTriangulation(features), [
|
|
112
|
-
features
|
|
113
|
-
]);
|
|
114
|
-
const currentIndex = (0, $eaw9D$useMemo)(()=>{
|
|
115
|
-
return features.findIndex((d)=>d.properties.col_id == col_id);
|
|
116
|
-
}, [
|
|
117
|
-
features,
|
|
118
|
-
col_id
|
|
119
|
-
]);
|
|
120
|
-
const neighbors = tri.delaunay.neighbors[currentIndex];
|
|
121
|
-
const keyMapping = (0, $eaw9D$useMemo)(()=>{
|
|
122
|
-
return $347c34ac01fb689b$var$buildKeyMapping(neighbors, centroids, currentIndex, projection);
|
|
123
|
-
}, [
|
|
124
|
-
neighbors,
|
|
125
|
-
currentIndex
|
|
126
|
-
]);
|
|
127
|
-
(0, $eaw9D$useKeyHandler)((event)=>{
|
|
128
|
-
const nextColumnIx = keyMapping[event.keyCode];
|
|
129
|
-
if (nextColumnIx == null) return;
|
|
130
|
-
const { col_id: col_id } = features[nextColumnIx].properties;
|
|
131
|
-
// @ts-ignore
|
|
132
|
-
onChange({
|
|
133
|
-
col_id: col_id,
|
|
134
|
-
...projectArgs
|
|
135
|
-
});
|
|
136
|
-
}, [
|
|
137
|
-
keyMapping
|
|
138
|
-
]);
|
|
139
|
-
if (neighbors == null) return null;
|
|
140
|
-
const neighborFeatures = neighbors.map((d)=>features[d]);
|
|
141
|
-
return (0, $eaw9D$macrostrathyper).if(showLayers)([
|
|
142
|
-
(0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
|
|
143
|
-
features: tri.links().features,
|
|
144
|
-
useCanvas: false,
|
|
145
|
-
style: {
|
|
146
|
-
stroke: "purple",
|
|
147
|
-
fill: "transparent"
|
|
148
|
-
}
|
|
149
|
-
}),
|
|
150
|
-
(0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
|
|
151
|
-
features: neighborFeatures,
|
|
152
|
-
useCanvas: false,
|
|
153
|
-
style: {
|
|
154
|
-
stroke: "rgb(93, 101, 212)",
|
|
155
|
-
strokeWidth: 3,
|
|
156
|
-
fill: "rgba(93, 101, 212, 0.5)"
|
|
157
|
-
}
|
|
158
|
-
})
|
|
159
|
-
]);
|
|
160
|
-
}
|
|
161
|
-
function $347c34ac01fb689b$var$processGeoJSON(res) {
|
|
162
|
-
return $347c34ac01fb689b$var$processGeoJSONBare(res?.success?.data);
|
|
163
|
-
}
|
|
164
|
-
function $347c34ac01fb689b$var$processGeoJSONBare(res) {
|
|
165
|
-
return res?.features;
|
|
166
|
-
}
|
|
167
|
-
const $347c34ac01fb689b$var$processors = {
|
|
168
|
-
topojson: $347c34ac01fb689b$export$4ad66a3119e1afaa,
|
|
169
|
-
geojson: $347c34ac01fb689b$var$processGeoJSON,
|
|
170
|
-
geojson_bare: $347c34ac01fb689b$var$processGeoJSONBare
|
|
171
|
-
};
|
|
172
|
-
function $347c34ac01fb689b$export$6b70218db02fa4ce({ apiRoute: apiRoute = "/columns", status_code: status_code, project_id: project_id, format: format = "topojson" }) {
|
|
173
|
-
let all = undefined;
|
|
174
|
-
if (status_code == null && project_id == null) all = true;
|
|
175
|
-
const processor = $347c34ac01fb689b$var$processors[format];
|
|
176
|
-
return (0, $eaw9D$useAPIResult)(apiRoute, {
|
|
177
|
-
format: format,
|
|
178
|
-
all: all,
|
|
179
|
-
status_code: status_code,
|
|
180
|
-
project_id: project_id
|
|
181
|
-
}, processor);
|
|
182
|
-
}
|
|
183
|
-
const $347c34ac01fb689b$export$f02cc02ad0e0bba3 = (props)=>{
|
|
184
|
-
const { apiRoute: apiRoute = "/columns", onChange: onChange, col_id: col_id = null, status_code: status_code, project_id: project_id, color: color, filterColumns: filterColumns, showDebugLayers: showDebugLayers = false, format: format = "topojson" } = props;
|
|
185
|
-
let features = $347c34ac01fb689b$export$6b70218db02fa4ce({
|
|
186
|
-
apiRoute: apiRoute,
|
|
187
|
-
status_code: status_code,
|
|
188
|
-
project_id: project_id,
|
|
189
|
-
format: format
|
|
190
|
-
});
|
|
191
|
-
if (features == null) return null;
|
|
192
|
-
if (filterColumns != null) features = features.filter(filterColumns);
|
|
193
|
-
return (0, $eaw9D$macrostrathyper)([
|
|
194
|
-
(0, $eaw9D$macrostrathyper)($347c34ac01fb689b$export$8c41dd563753848, {
|
|
195
|
-
features: features,
|
|
196
|
-
col_id: col_id,
|
|
197
|
-
onChange: onChange,
|
|
198
|
-
status_code: status_code,
|
|
199
|
-
project_id: project_id,
|
|
200
|
-
showLayers: showDebugLayers
|
|
201
|
-
}),
|
|
202
|
-
(0, $eaw9D$macrostrathyper)($347c34ac01fb689b$export$f177ff57c101017a, {
|
|
203
|
-
features: features,
|
|
204
|
-
onClick: onChange,
|
|
205
|
-
color: color
|
|
206
|
-
})
|
|
207
|
-
]);
|
|
208
|
-
};
|
|
209
|
-
const $347c34ac01fb689b$export$4d8f6e6df85d9012 = (props)=>{
|
|
210
|
-
return (0, $eaw9D$macrostrathyper)($347c34ac01fb689b$export$f02cc02ad0e0bba3, {
|
|
211
|
-
apiRoute: "/defs/columns",
|
|
212
|
-
...props
|
|
213
|
-
});
|
|
214
|
-
};
|
|
215
|
-
const $347c34ac01fb689b$export$b9d912252344e099 = (props)=>{
|
|
216
|
-
const { feature: feature } = props;
|
|
217
|
-
return (0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
|
|
218
|
-
features: [
|
|
219
|
-
feature
|
|
220
|
-
],
|
|
221
|
-
style: {
|
|
222
|
-
fill: "rgba(255,0,0,0.4)",
|
|
223
|
-
stroke: "rgba(255,0,0,0.6)",
|
|
224
|
-
strokeWidth: 2
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
export {$347c34ac01fb689b$export$2254347cd20e6080 as MeasurementsLayer, $347c34ac01fb689b$export$4ad66a3119e1afaa as processTopoJSON, $347c34ac01fb689b$export$f177ff57c101017a as ColumnFeatures, $347c34ac01fb689b$export$8c41dd563753848 as ColumnKeyboardNavigation, $347c34ac01fb689b$export$6b70218db02fa4ce as useColumnData, $347c34ac01fb689b$export$f02cc02ad0e0bba3 as Columns, $347c34ac01fb689b$export$4d8f6e6df85d9012 as ColumnCenters, $347c34ac01fb689b$export$b9d912252344e099 as CurrentColumn};
|
|
231
|
-
//# sourceMappingURL=layers.ad5fd25d.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/column-views/src/map/layers.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n Feature,\n FeatureLayer,\n MapContext,\n} from \"@macrostrat/svg-map-components\";\nimport { useAPIResult, useKeyHandler } from \"@macrostrat/ui-components\";\nimport chroma from \"chroma-js\";\nimport { ExtendedFeature, geoCentroid } from \"d3-geo\";\nimport { geoVoronoi } from \"d3-geo-voronoi\";\nimport { FeatureCollection, GeometryCollection, Polygon } from \"geojson\";\nimport { useContext, useEffect, useMemo } from \"react\";\nimport { feature } from \"topojson-client\";\n\nconst defaultStyle = {\n fill: \"rgb(239, 180, 249)\",\n stroke: \"magenta\",\n};\n\nexport function MeasurementsLayer(props) {\n const { style = defaultStyle, ...params } = props;\n const res: any = useAPIResult(\"/measurements\", {\n ...params,\n format: \"geojson\",\n response: \"light\",\n });\n if (res == null) return null;\n\n return h(FeatureLayer, {\n useCanvas: false,\n style,\n features: res.features.filter((d) => d.properties.unit_id != null),\n });\n}\n\ntype ColumnProps = { col_id: number };\n\ntype ColumnFeature = ExtendedFeature<Polygon, ColumnProps>;\n\nfunction processTopoJSON(res) {\n try {\n const { data } = res.success;\n const { features: f } = feature(data, data.objects.output) as any;\n return f;\n } catch (err) {\n console.error(err);\n return [];\n }\n}\nfunction ColumnFeatures(props) {\n const {\n features,\n onClick,\n color = \"rgba(150,150,150, 1)\",\n singleFeature = true,\n } = props;\n\n const c = chroma(color);\n\n return h(\n FeatureLayer,\n {\n className: \"columns\",\n useCanvas: onClick == null,\n style: {\n fill: c.alpha(0.2).css(),\n stroke: c.alpha(0.4).css(),\n },\n },\n features.map((f) => {\n return h(Feature, {\n id: f.id ?? f.properties.col_id,\n onClick,\n feature: f,\n });\n })\n );\n}\n\nenum MacrostratStatusCode {\n InProcess = \"in process\",\n}\n\ninterface ColumnNavProps {\n col_id: number;\n status_code?: MacrostratStatusCode;\n project_id?: number;\n onChange(col_id: number): void;\n}\n\ninterface KeyboardNavProps extends ColumnNavProps {\n features: ColumnFeature[];\n showLayers: boolean;\n}\n\nfunction normalize(angle) {\n if (angle > Math.PI) {\n angle -= 2 * Math.PI;\n } else if (angle <= -Math.PI) {\n angle += 2 * Math.PI;\n }\n return angle;\n}\n\nfunction buildTriangulation(features) {\n console.log(\"Computing triangulation\");\n const centroids = features.map(geoCentroid);\n const tri = geoVoronoi(centroids);\n return { centroids, tri };\n}\n\nfunction buildKeyMapping(neighbors, centroids, currentIndex, projection) {\n if (neighbors == null) return;\n\n const currentCentroid = projection(centroids[currentIndex]);\n\n let edgeAngles = neighbors.map((index) => {\n const centroid = projection(centroids[index]);\n const dx = centroid[0] - currentCentroid[0];\n const dy = centroid[1] - currentCentroid[1];\n return { col_index: index, angle: Math.atan2(dy, dx) };\n });\n\n edgeAngles.sort((d) => d.angle);\n\n function closestAngle(num) {\n // Find closest angle in array of neighbors\n let curr = edgeAngles[0];\n for (let next of edgeAngles) {\n if (\n Math.abs(normalize(num - next.angle)) <\n Math.abs(normalize(num - curr.angle))\n ) {\n curr = next;\n }\n }\n return curr.col_index;\n }\n\n return {\n 37: closestAngle(Math.PI), // left\n 38: closestAngle((3 * Math.PI) / 2), // up\n 39: closestAngle(0), // right\n 40: closestAngle(Math.PI / 2), // down\n };\n}\n\nfunction ColumnKeyboardNavigation(props: KeyboardNavProps) {\n /** Keyboard navigation of columns using a Delaunay triangulation */\n const {\n features = [],\n col_id = null,\n onChange,\n showLayers = false,\n ...projectArgs\n } = props;\n const { projection } = useContext(MapContext);\n const { centroids, tri } = useMemo(\n () => buildTriangulation(features),\n [features]\n );\n\n const currentIndex = useMemo(() => {\n return features.findIndex((d) => d.properties.col_id == col_id);\n }, [features, col_id]);\n\n const neighbors = tri.delaunay.neighbors[currentIndex];\n\n const keyMapping = useMemo(() => {\n return buildKeyMapping(neighbors, centroids, currentIndex, projection);\n }, [neighbors, currentIndex]);\n\n useKeyHandler(\n (event) => {\n const nextColumnIx = keyMapping[event.keyCode];\n if (nextColumnIx == null) return;\n const { col_id } = features[nextColumnIx].properties;\n\n // @ts-ignore\n onChange({ col_id, ...projectArgs });\n },\n [keyMapping]\n );\n\n if (neighbors == null) return null;\n const neighborFeatures = neighbors.map((d) => features[d]);\n\n return h.if(showLayers)([\n h(FeatureLayer, {\n features: tri.links().features,\n useCanvas: false,\n style: {\n stroke: \"purple\",\n fill: \"transparent\",\n },\n }),\n h(FeatureLayer, {\n features: neighborFeatures,\n useCanvas: false,\n style: {\n stroke: \"rgb(93, 101, 212)\",\n strokeWidth: 3,\n fill: \"rgba(93, 101, 212, 0.5)\",\n },\n }),\n\n //h(FeatureLayer, {features: tri.centers, useCanvas: false})\n ]);\n}\n\nfunction processGeoJSON(res) {\n return processGeoJSONBare(res?.success?.data);\n}\n\nfunction processGeoJSONBare(res) {\n return res?.features;\n}\n\nconst processors = {\n topojson: processTopoJSON,\n geojson: processGeoJSON,\n geojson_bare: processGeoJSONBare,\n};\n\nfunction useColumnData({\n apiRoute = \"/columns\",\n status_code,\n project_id,\n format = \"topojson\",\n}) {\n let all: boolean = undefined;\n if (status_code == null && project_id == null) {\n all = true;\n }\n\n const processor = processors[format];\n\n return useAPIResult(\n apiRoute,\n { format, all, status_code, project_id },\n processor\n );\n}\n\ninterface ColumnExtraInfo {\n apiRoute?: string;\n color?: string;\n filterColumns?(d: ColumnFeature): boolean;\n showDebugLayers?: boolean;\n format?: \"topojson\" | \"geojson\";\n}\n\nconst Columns = (props: ColumnNavProps & ColumnExtraInfo) => {\n const {\n apiRoute = \"/columns\",\n onChange,\n col_id = null,\n status_code,\n project_id,\n color,\n filterColumns,\n showDebugLayers = false,\n format = \"topojson\",\n } = props;\n\n let features: any[] = useColumnData({\n apiRoute,\n status_code,\n project_id,\n format,\n }) as any;\n\n if (features == null) return null;\n\n if (filterColumns != null) {\n features = features.filter(filterColumns);\n }\n\n return h([\n h(ColumnKeyboardNavigation, {\n features,\n col_id,\n onChange,\n status_code,\n project_id,\n showLayers: showDebugLayers,\n }),\n h(ColumnFeatures, { features, onClick: onChange, color }),\n ]);\n};\n\nconst ColumnCenters = (props: ColumnNavProps) => {\n return h(Columns, { apiRoute: \"/defs/columns\", ...props });\n};\n\nconst CurrentColumn = (props) => {\n const { feature } = props;\n return h(FeatureLayer, {\n features: [feature],\n style: {\n fill: \"rgba(255,0,0,0.4)\",\n stroke: \"rgba(255,0,0,0.6)\",\n strokeWidth: 2,\n },\n });\n};\n\nexport {\n Columns,\n CurrentColumn,\n processTopoJSON,\n ColumnCenters,\n ColumnFeatures,\n ColumnKeyboardNavigation,\n useColumnData,\n};\n"],"names":[],"version":3,"file":"layers.ad5fd25d.js.map"}
|
package/dist/esm/map.7aa26f17.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import {Columns as $347c34ac01fb689b$export$f02cc02ad0e0bba3, CurrentColumn as $347c34ac01fb689b$export$b9d912252344e099, MeasurementsLayer as $347c34ac01fb689b$export$2254347cd20e6080, processTopoJSON as $347c34ac01fb689b$export$4ad66a3119e1afaa, ColumnFeatures as $347c34ac01fb689b$export$f177ff57c101017a, ColumnKeyboardNavigation as $347c34ac01fb689b$export$8c41dd563753848, useColumnData as $347c34ac01fb689b$export$6b70218db02fa4ce, ColumnCenters as $347c34ac01fb689b$export$4d8f6e6df85d9012} from "./layers.ad5fd25d.js";
|
|
2
|
-
import {useRef as $kMgW8$useRef} from "react";
|
|
3
|
-
import $kMgW8$macrostrathyper from "@macrostrat/hyper";
|
|
4
|
-
import {Globe as $kMgW8$Globe, LandLayer as $kMgW8$LandLayer} from "@macrostrat/svg-map-components";
|
|
5
|
-
import {geoCentroid as $kMgW8$geoCentroid} from "d3-geo";
|
|
6
|
-
import {useElementSize as $kMgW8$useElementSize} from "@macrostrat/ui-components";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
function $157bdadaa2bcfcf5$export$c4313db718750a5a(props) {
|
|
15
|
-
const { center: center, children: children, style: style, margin: margin, className: className, allowZoom: allowZoom, ...rest } = props;
|
|
16
|
-
let { scale: scale } = props;
|
|
17
|
-
const ref = (0, $kMgW8$useRef)(null);
|
|
18
|
-
const sz = (0, $kMgW8$useElementSize)(ref);
|
|
19
|
-
const { width: width, height: height } = sz ?? {
|
|
20
|
-
width: 0,
|
|
21
|
-
height: 0
|
|
22
|
-
};
|
|
23
|
-
if (scale == null) scale = Math.min(width, height) + 2 * margin;
|
|
24
|
-
let zoomScaleExtent = null;
|
|
25
|
-
if (allowZoom) zoomScaleExtent = [
|
|
26
|
-
0.1 * Math.min(width, height),
|
|
27
|
-
2 * Math.max(width, height)
|
|
28
|
-
];
|
|
29
|
-
return (0, $kMgW8$macrostrathyper)("div.map-area", {
|
|
30
|
-
ref: ref,
|
|
31
|
-
style: style,
|
|
32
|
-
className: className
|
|
33
|
-
}, [
|
|
34
|
-
(0, $kMgW8$macrostrathyper)((0, $kMgW8$Globe), {
|
|
35
|
-
width: width,
|
|
36
|
-
height: height,
|
|
37
|
-
margin: margin,
|
|
38
|
-
center: center,
|
|
39
|
-
allowDrag: true,
|
|
40
|
-
allowZoom: allowZoom,
|
|
41
|
-
keepNorthUp: true,
|
|
42
|
-
zoomScaleExtent: zoomScaleExtent,
|
|
43
|
-
...rest,
|
|
44
|
-
scale: scale
|
|
45
|
-
}, [
|
|
46
|
-
(0, $kMgW8$macrostrathyper)((0, $kMgW8$LandLayer)),
|
|
47
|
-
children
|
|
48
|
-
])
|
|
49
|
-
]);
|
|
50
|
-
}
|
|
51
|
-
const $157bdadaa2bcfcf5$export$d9144ecbc6b090c5 = (props)=>{
|
|
52
|
-
const { currentColumn: currentColumn, setCurrentColumn: setCurrentColumn, children: children, style: style, margin: margin = 10, scale: scale, className: className, showInProcessColumns: showInProcessColumns = false, ...rest } = props;
|
|
53
|
-
const columnCenter = (0, $kMgW8$geoCentroid)(currentColumn);
|
|
54
|
-
return (0, $kMgW8$macrostrathyper)($157bdadaa2bcfcf5$export$c4313db718750a5a, {
|
|
55
|
-
center: columnCenter,
|
|
56
|
-
style: style,
|
|
57
|
-
margin: margin,
|
|
58
|
-
scale: scale,
|
|
59
|
-
className: className
|
|
60
|
-
}, [
|
|
61
|
-
children,
|
|
62
|
-
(0, $kMgW8$macrostrathyper)((0, $347c34ac01fb689b$export$f02cc02ad0e0bba3), {
|
|
63
|
-
onChange: setCurrentColumn,
|
|
64
|
-
col_id: currentColumn?.properties.col_id,
|
|
65
|
-
...rest
|
|
66
|
-
}),
|
|
67
|
-
(0, $kMgW8$macrostrathyper).if(showInProcessColumns)((0, $347c34ac01fb689b$export$f02cc02ad0e0bba3), {
|
|
68
|
-
onChange: setCurrentColumn,
|
|
69
|
-
col_id: currentColumn?.properties.col_id,
|
|
70
|
-
status_code: "in process",
|
|
71
|
-
color: "rgba(200,150,150, 0.5)",
|
|
72
|
-
...rest
|
|
73
|
-
}),
|
|
74
|
-
(0, $kMgW8$macrostrathyper).if(currentColumn != null)((0, $347c34ac01fb689b$export$b9d912252344e099), {
|
|
75
|
-
feature: currentColumn
|
|
76
|
-
})
|
|
77
|
-
]);
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
export {$157bdadaa2bcfcf5$export$c4313db718750a5a as ResizableMapFrame, $157bdadaa2bcfcf5$export$d9144ecbc6b090c5 as ColumnNavigatorMap, $347c34ac01fb689b$export$2254347cd20e6080 as MeasurementsLayer, $347c34ac01fb689b$export$4ad66a3119e1afaa as processTopoJSON, $347c34ac01fb689b$export$f177ff57c101017a as ColumnFeatures, $347c34ac01fb689b$export$8c41dd563753848 as ColumnKeyboardNavigation, $347c34ac01fb689b$export$6b70218db02fa4ce as useColumnData, $347c34ac01fb689b$export$f02cc02ad0e0bba3 as Columns, $347c34ac01fb689b$export$4d8f6e6df85d9012 as ColumnCenters, $347c34ac01fb689b$export$b9d912252344e099 as CurrentColumn};
|
|
82
|
-
//# sourceMappingURL=map.7aa26f17.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;AAOA,SAAS,0CAAkB,KAAK;IAC9B,MAAM,UAAE,MAAM,YAAE,QAAQ,SAAE,KAAK,UAAE,MAAM,aAAE,SAAS,aAAE,SAAS,EAAE,GAAG,MAAM,GACtE;IACF,IAAI,SAAE,KAAK,EAAE,GAAG;IAChB,MAAM,MAAM,CAAA,GAAA,aAAK,EAAE;IACnB,MAAM,KAAK,CAAA,GAAA,qBAAa,EAAE;IAC1B,MAAM,SAAE,KAAK,UAAE,MAAM,EAAE,GAAG,MAAM;QAAE,OAAO;QAAG,QAAQ;IAAE;IACtD,IAAI,SAAS,MACX,QAAQ,KAAK,GAAG,CAAC,OAAO,UAAU,IAAI;IAGxC,IAAI,kBAAkB;IAEtB,IAAI,WACF,kBAAkB;QAChB,MAAM,KAAK,GAAG,CAAC,OAAO;QACtB,IAAI,KAAK,GAAG,CAAC,OAAO;KACrB;IAGH,OAAO,CAAA,GAAA,sBAAA,EAAE,gBAAgB;aAAE;eAAK;mBAAO;IAAU,GAAG;QAClD,CAAA,GAAA,sBAAA,EACE,CAAA,GAAA,YAAI,GACJ;mBACE;oBACA;oBACA;oBACA;YACA,WAAW;uBACX;YACA,aAAa;6BACb;YACA,GAAG,IAAI;mBACP;QACF,GACA;YAAC,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,gBAAQ;YAAI;SAAS;KAE3B;AACH;AAEA,MAAM,4CAAqB,CAAC;IAC1B,MAAM,iBACJ,aAAa,oBACb,gBAAgB,YAChB,QAAQ,SACR,KAAK,UACL,SAAS,WACT,KAAK,aACL,SAAS,wBACT,uBAAuB,OACvB,GAAG,MACJ,GAAG;IAEJ,MAAM,eAAe,CAAA,GAAA,kBAAU,EAAE;IAEjC,OAAO,CAAA,GAAA,sBAAA,EACL,2CACA;QAAE,QAAQ;eAAc;gBAAO;eAAQ;mBAAO;IAAU,GACxD;QACE;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAM,GAAG;YACT,UAAU;YACV,QAAQ,eAAe,WAAW;YAClC,GAAG,IAAI;QACT;QACA,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,sBAAsB,CAAA,GAAA,yCAAM,GAAG;YAClC,UAAU;YACV,QAAQ,eAAe,WAAW;YAClC,aAAa;YACb,OAAO;YACP,GAAG,IAAI;QACT;QACA,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,iBAAiB,MAAM,CAAA,GAAA,yCAAY,GAAG;YAAE,SAAS;QAAc;KACrE;AAEL","sources":["packages/column-views/src/map/index.ts"],"sourcesContent":["import { useRef } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Globe, LandLayer } from \"@macrostrat/svg-map-components\";\nimport { geoCentroid } from \"d3-geo\";\nimport { useElementSize } from \"@macrostrat/ui-components\";\nimport { Columns, CurrentColumn } from \"./layers\";\n\nfunction ResizableMapFrame(props) {\n const { center, children, style, margin, className, allowZoom, ...rest } =\n props;\n let { scale } = props;\n const ref = useRef(null);\n const sz = useElementSize(ref);\n const { width, height } = sz ?? { width: 0, height: 0 };\n if (scale == null) {\n scale = Math.min(width, height) + 2 * margin;\n }\n\n let zoomScaleExtent = null;\n\n if (allowZoom) {\n zoomScaleExtent = [\n 0.1 * Math.min(width, height),\n 2 * Math.max(width, height),\n ];\n }\n\n return h(\"div.map-area\", { ref, style, className }, [\n h(\n Globe,\n {\n width,\n height,\n margin,\n center,\n allowDrag: true,\n allowZoom,\n keepNorthUp: true,\n zoomScaleExtent,\n ...rest,\n scale,\n },\n [h(LandLayer), children]\n ),\n ]);\n}\n\nconst ColumnNavigatorMap = (props) => {\n const {\n currentColumn,\n setCurrentColumn,\n children,\n style,\n margin = 10,\n scale,\n className,\n showInProcessColumns = false,\n ...rest\n } = props;\n\n const columnCenter = geoCentroid(currentColumn);\n\n return h(\n ResizableMapFrame,\n { center: columnCenter, style, margin, scale, className },\n [\n children,\n h(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n ...rest,\n }),\n h.if(showInProcessColumns)(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n status_code: \"in process\",\n color: \"rgba(200,150,150, 0.5)\",\n ...rest,\n }),\n h.if(currentColumn != null)(CurrentColumn, { feature: currentColumn }),\n ]\n );\n};\n\nexport * from \"./layers\";\nexport { ColumnNavigatorMap, ResizableMapFrame };\n"],"names":[],"version":3,"file":"map.7aa26f17.js.map"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;AA4BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,MAAM,CAAA,GAAA,yCAAgB,EAAE;IAC9B,OAAO;QACL,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;QACvB,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;QAC3B,MAAM;QACN,IAAI,IAAI,OAAO;IACjB;AACF;AAEA,MAAM,4CAAsB,CAAC;IAC3B,OAAO,IAAI,SAAS,CACjB,OAAO,CAAC,OAAO,UACf,OAAO,CAAC,MAAM,aACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,sCAAgB,KAAoB;IAC3C,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,oBAAY;IACnC,MAAM,QACJ,IAAI,iBACJ,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,KAAK,WACjB,GAAG,MACJ,GAAG;IAEJ,MAAM,SAAE,KAAK,EAAE,GAAG;IAElB,MAAM,sBAAsB,CAAA,GAAA,kBAAU,EACpC,CAAC;QACC,IAAI,iBAAiB,GAAG,OAAO;QAC/B,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM;QACxD,OAAO,KAAK;IACd,GACA;QAAC;QAAO;KAAc;IAGxB,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM,QAAoB,UACvB,MAAM,CAAC,kBACP,GAAG,CAAC,CAAC,IAAa,0CAAgB,GAAG;YAAE,UAAU,IAAI,QAAQ;QAAC,IAC9D,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpC,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAQ3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,gBAAgB,CAAC;QACrB,MAAM,QAAE,IAAI,EAAE,GAAG;QACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;IACxD;IAEA,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;QACvB,eAAe,iBAAiB;QAChC,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useContext, useCallback } from \"react\";\nimport {\n ColumnContext,\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit, transformAxisType } from \"./types\";\nimport React from \"react\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n}\n\ntype UnitNote = {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n};\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType }\n): UnitNote {\n const { axisType } = opts;\n\n const key = transformAxisType(axisType);\n return {\n height: div[`b_${key}`],\n top_height: div[`t_${key}`],\n data: div,\n id: div.unit_id,\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const ctx = useContext(ColumnContext);\n const {\n left,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n minimumHeight = 0,\n divisions = ctx?.divisions,\n ...rest\n } = props;\n\n const { scale } = ctx;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight]\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType: ctx.axisType }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left || 0})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const NoteComponent = (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n };\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? NoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"names.f6a4e9a4.js.map"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import $axBsV$macrostrathyper from "@macrostrat/hyper";
|
|
2
|
-
import {ColumnProvider as $axBsV$ColumnProvider, ColumnAxisType as $axBsV$ColumnAxisType} from "@macrostrat/column-components";
|
|
3
|
-
import {APIProvider as $axBsV$APIProvider} from "@macrostrat/ui-components";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function $29bf41d89292aad4$export$9e42f9b6e0d67c7d(props) {
|
|
9
|
-
// A column provider specialized the Macrostrat API
|
|
10
|
-
return (0, $axBsV$macrostrathyper)((0, $axBsV$ColumnProvider), {
|
|
11
|
-
axisType: (0, $axBsV$ColumnAxisType).AGE,
|
|
12
|
-
...props
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
function $29bf41d89292aad4$export$3098013bc6cc316d({ children: children, useDev: useDev = false, baseURL: baseURL }) {
|
|
16
|
-
baseURL ??= useDev ? "https://dev2.macrostrat.org/api/v2" : "https://macrostrat.org/api/v2";
|
|
17
|
-
return (0, $axBsV$macrostrathyper)((0, $axBsV$APIProvider), {
|
|
18
|
-
baseURL: baseURL,
|
|
19
|
-
unwrapResponse: (res)=>res.success.data
|
|
20
|
-
}, children);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export {$29bf41d89292aad4$export$9e42f9b6e0d67c7d as MacrostratColumnProvider, $29bf41d89292aad4$export$3098013bc6cc316d as MacrostratAPIProvider};
|
|
25
|
-
//# sourceMappingURL=providers.cd1e652f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":";;;;;;;AAKO,SAAS,0CAAyB,KAAK;IAC5C,mDAAmD;IACnD,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,qBAAa,GAAG;QAAE,UAAU,CAAA,GAAA,qBAAa,EAAE,GAAG;QAAE,GAAG,KAAK;IAAC;AACpE;AAQO,SAAS,0CAAsB,YACpC,QAAQ,UACR,SAAS,gBACT,OAAO,EACU;IACjB,YAAY,SACR,uCACA;IAEJ,OAAO,CAAA,GAAA,sBAAA,EACL,CAAA,GAAA,kBAAU,GACV;iBACE;QACA,gBAAgB,CAAC,MAAQ,IAAI,OAAO,CAAC,IAAI;IAC3C,GACA;AAEJ","sources":["packages/column-views/src/providers.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { ColumnProvider, ColumnAxisType } from \"@macrostrat/column-components\";\nimport { APIProvider } from \"@macrostrat/ui-components\";\nimport { ReactNode } from \"react\";\n\nexport function MacrostratColumnProvider(props) {\n // A column provider specialized the Macrostrat API\n return h(ColumnProvider, { axisType: ColumnAxisType.AGE, ...props });\n}\n\ntype APIProviderProps = {\n children: ReactNode;\n useDev?: boolean;\n baseURL?: string;\n};\n\nexport function MacrostratAPIProvider({\n children,\n useDev = false,\n baseURL,\n}: APIProviderProps) {\n baseURL ??= useDev\n ? \"https://dev2.macrostrat.org/api/v2\"\n : \"https://macrostrat.org/api/v2\";\n\n return h(\n APIProvider,\n {\n baseURL,\n unwrapResponse: (res) => res.success.data,\n },\n children\n );\n}\n"],"names":[],"version":3,"file":"providers.cd1e652f.js.map"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"AAAA,MAAM,oCAAc;IAClB,sBAAsB;IACtB,eAAe;IACf,WAAW;IACX,kBAAkB;IAClB,aAAa;IACb,MAAM;IACN,WAAW;IACX,MAAM;IACN,uBAAuB;IACvB,OAAO;IACP,WAAW;IACX,UAAU;IACV,cAAc;IACd,WAAW;IACX,qBAAqB;IACrB,WAAW;IACX,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,MAAM;IACN,OAAO;IACP,mBAAmB;IACnB,OAAO;IACP,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;IACN,SAAS;IACT,MAAM;IACN,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,WAAW;IACX,QAAQ;IACR,UAAU;IACV,cAAc;IACd,WAAW;IACX,WAAW;AACb;AAEA,MAAM,4CAAY,CAAC;IACjB,IAAI,QAAQ,EAAE,IAAI;IAClB,IAAI,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAM,EAAE,IAAI,EAAE,IAAI,CAAC;IACjD,MAAM,IAAI,CAAC,CAAC,GAAG,IAAM,EAAE,IAAI,GAAG,EAAE,IAAI;IAEpC,+DAA+D;IAE/D,IAAI,MAAM;IAEV,6BAA6B;IAC7B,IAAI,EAAE,SAAS,IAAI,QACjB,OAAO;IAET,IAAI,EAAE,SAAS,IAAI,mBACjB,OAAO;IAGT,KAAK,MAAM,KAAK,MAAO;QACrB,IAAI,EAAE,IAAI,IAAI,aAAa;YACzB,8BAA8B;YAC9B,IAAI,SAAS,QAAQ,CAAC,SACpB,OAAO;YAET,IAAI,SAAS,QAAQ,CAAC,WACpB,OAAO;YAET,IAAI,SAAS,QAAQ,CAAC,UACpB,OAAO;YAET,IAAI,SAAS,QAAQ,CAAC,UACpB,OAAO;QAEX;QAEA,IAAI,EAAE,IAAI,IAAI,gBAAgB;YAC5B,8BAA8B;YAC9B,IAAI,SAAS,QAAQ,CAAC,YACpB,OAAO;QAEX;QAEA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAClB,OAAO;QAET,MAAM,iCAAW,CAAC,EAAE,IAAI,CAAC;QACzB,IAAI,OAAO,MACT,OAAO;QAGT,IAAI,EAAE,IAAI,IAAI,YACZ,OAAO;IAEX;IACA,OAAO;AACT;AAEA,MAAM,qCAAe;IACnB,OAAO;IACP,OAAO;AACT;AAEA,MAAM,4CAAe,CAAC;IACpB,OAAO,kCAAY,CAAC,GAAG,IAAI,CAAC,IAAI;AAClC","sources":["packages/column-views/src/units/resolvers.ts"],"sourcesContent":["const symbolIndex = {\n \"dolomite-limestone\": 641,\n lime_mudstone: 627,\n sandstone: 607,\n \"quartz arenite\": 607,\n litharenite: 608,\n sand: 608,\n siltstone: 616,\n silt: 616,\n \"dolomitic siltstone\": 616,\n shale: 620,\n limestone: 627,\n dolomite: 642,\n conglomerate: 602,\n carbonate: 627,\n \"dolomite-mudstone\": 642,\n dolostone: 642,\n mudstone: 620,\n \"sandy-dolomite\": 645,\n quartzite: 702,\n halite: 668,\n basalt: 717,\n rhyolite: 722,\n andesite: 723,\n till: 681,\n loess: 684,\n \"calcareous ooze\": 653,\n chalk: 626,\n gravel: 601,\n plutonic: 721,\n granite: 719,\n clay: 660,\n syenite: 722,\n tuff: 711,\n volcanic: 725,\n metamorphic: 707,\n volcaniclastic: 714,\n migmatite: 709,\n gneiss: 708,\n tonalite: 727,\n granodiorite: 725,\n monzonite: 723,\n argillite: 624,\n};\n\nconst resolveID = (d: any) => {\n let liths = d.lith;\n let environs = d.environ.map((d) => d.name).join(\" \");\n liths.sort((a, b) => b.prop - a.prop);\n\n //console.log(d, d.unit_name, liths.map(d => d.name), environs)\n\n let sym = null;\n\n // overrides for IODP columns\n if (d.unit_name == \"clay\") {\n return \"650\";\n }\n if (d.unit_name == \"calcareous clay\") {\n return \"651\";\n }\n\n for (const k of liths) {\n if (k.name == \"sandstone\") {\n // Special cases for sandstone\n if (environs.includes(\"dune\")) {\n return \"609\";\n }\n if (environs.includes(\"marine\")) {\n return \"608\";\n }\n if (environs.includes(\"shore\")) {\n return \"611\";\n }\n if (environs.includes(\"loess\")) {\n return \"686\";\n }\n }\n\n if (k.name == \"conglomerate\") {\n // Special cases for sandstone\n if (environs.includes(\"fluvial\")) {\n return \"603\";\n }\n }\n\n if (k.name.includes(\"tuff\")) {\n return \"711\";\n }\n sym = symbolIndex[k.name];\n if (sym != null) {\n return sym;\n }\n\n if (k.type == \"volcanic\") {\n return \"725\";\n }\n }\n return sym;\n};\n\nconst patternScale = {\n \"609\": 1.5,\n \"603\": 1.5,\n};\n\nconst scalePattern = (id) => {\n return patternScale[`${id}`] ?? 1;\n};\n\nexport { resolveID, scalePattern };\n"],"names":[],"version":3,"file":"resolvers.b5c82b78.js.map"}
|