@macrostrat/column-views 1.0.3 → 2.0.1
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 +21 -0
- package/dist/esm/{data-area.daff8da0.js → column-views.062d164a.js} +1 -1
- package/dist/esm/{data-area.daff8da0.js.map → column-views.062d164a.js.map} +1 -1
- package/dist/esm/{data-provider.1506eb64.js → column-views.07521ce6.js} +1 -1
- package/dist/esm/column-views.07521ce6.js.map +1 -0
- package/dist/esm/column-views.134b2e2a.js +9 -0
- package/dist/esm/column-views.134b2e2a.js.map +1 -0
- package/dist/esm/{selection-popover.module.0a701258.css → column-views.16cc7a58.css} +11 -8
- package/dist/esm/column-views.16cc7a58.css.map +1 -0
- package/dist/esm/column-views.1c589cc4.js +141 -0
- package/dist/esm/column-views.1c589cc4.js.map +1 -0
- package/dist/esm/column-views.1ece326b.js +420 -0
- package/dist/esm/column-views.1ece326b.js.map +1 -0
- package/dist/esm/column-views.1edc7300.js +40 -0
- package/dist/esm/column-views.1edc7300.js.map +1 -0
- package/dist/esm/column-views.240ef158.css +159 -0
- package/dist/esm/column-views.240ef158.css.map +1 -0
- package/dist/esm/column-views.25471fe0.css +111 -0
- package/dist/esm/column-views.25471fe0.css.map +1 -0
- package/dist/esm/column-views.28ee5f43.js +288 -0
- package/dist/esm/column-views.28ee5f43.js.map +1 -0
- package/dist/esm/column-views.30646469.js +118 -0
- package/dist/esm/column-views.30646469.js.map +1 -0
- package/dist/esm/column-views.338a7a83.css +134 -0
- package/dist/esm/column-views.338a7a83.css.map +1 -0
- package/dist/esm/column-views.33dbc778.js +95 -0
- package/dist/esm/column-views.33dbc778.js.map +1 -0
- package/dist/esm/column-views.343b5aa2.js +98 -0
- package/dist/esm/column-views.343b5aa2.js.map +1 -0
- package/dist/esm/column-views.34636ec7.js +104 -0
- package/dist/esm/column-views.34636ec7.js.map +1 -0
- package/dist/esm/column-views.3465c8ad.js +16 -0
- package/dist/esm/column-views.3465c8ad.js.map +1 -0
- package/dist/esm/column-views.39657bbf.js +55 -0
- package/dist/esm/column-views.39657bbf.js.map +1 -0
- package/dist/esm/column-views.3b972a9b.css +4 -0
- package/dist/esm/{composite.module.69a38fd1.css.map → column-views.3b972a9b.css.map} +1 -1
- package/dist/esm/column-views.3bec70d6.js +167 -0
- package/dist/esm/column-views.3bec70d6.js.map +1 -0
- package/dist/esm/column-views.3de4dc43.js +66 -0
- package/dist/esm/column-views.3de4dc43.js.map +1 -0
- package/dist/esm/{column.db058031.js → column-views.3f4db8cb.js} +8 -8
- package/dist/esm/column-views.3f4db8cb.js.map +1 -0
- package/dist/esm/column-views.40c1f361.js +206 -0
- package/dist/esm/column-views.40c1f361.js.map +1 -0
- package/dist/esm/{composite.module.0638e7ee.js → column-views.40cd59b5.js} +1 -1
- package/dist/esm/{composite.module.0638e7ee.js.map → column-views.40cd59b5.js.map} +1 -1
- package/dist/esm/column-views.4637f4ce.js +46 -0
- package/dist/esm/column-views.4637f4ce.js.map +1 -0
- package/dist/esm/column-views.4c4c5bac.js +163 -0
- package/dist/esm/column-views.4c4c5bac.js.map +1 -0
- package/dist/esm/column-views.4d374a35.js +19 -0
- package/dist/esm/column-views.4d374a35.js.map +1 -0
- package/dist/esm/column-views.57c4ddf3.js +125 -0
- package/dist/esm/column-views.57c4ddf3.js.map +1 -0
- package/dist/esm/column-views.58b82432.js +58 -0
- package/dist/esm/column-views.58b82432.js.map +1 -0
- package/dist/esm/column-views.5b2635fd.js +13 -0
- package/dist/esm/column-views.5b2635fd.js.map +1 -0
- package/dist/esm/column-views.5c02fee2.js +258 -0
- package/dist/esm/column-views.5c02fee2.js.map +1 -0
- package/dist/esm/column-views.5cc09c1d.js +152 -0
- package/dist/esm/column-views.5cc09c1d.js.map +1 -0
- package/dist/esm/{names.f6a4e9a4.js → column-views.650bd9f5.js} +5 -5
- package/dist/esm/column-views.650bd9f5.js.map +1 -0
- package/dist/esm/column-views.68409161.js +89 -0
- package/dist/esm/column-views.68409161.js.map +1 -0
- package/dist/esm/column-views.6a954628.js +70 -0
- package/dist/esm/column-views.6a954628.js.map +1 -0
- package/dist/esm/column-views.6c670c13.css +26 -0
- package/dist/esm/column-views.6c670c13.css.map +1 -0
- package/dist/esm/column-views.6d6b73b4.js +55 -0
- package/dist/esm/column-views.6d6b73b4.js.map +1 -0
- package/dist/esm/column-views.86c4b36f.js +222 -0
- package/dist/esm/column-views.86c4b36f.js.map +1 -0
- package/dist/esm/column-views.88de2cee.js +9 -0
- package/dist/esm/column-views.88de2cee.js.map +1 -0
- package/dist/esm/{resolvers.b5c82b78.js → column-views.8dd877af.js} +16 -3
- package/dist/esm/column-views.8dd877af.js.map +1 -0
- package/dist/esm/column-views.8e51206e.js +143 -0
- package/dist/esm/column-views.8e51206e.js.map +1 -0
- package/dist/esm/{column.module.7f47d25a.js → column-views.94b5cca1.js} +1 -1
- package/dist/esm/{column.module.7f47d25a.js.map → column-views.94b5cca1.js.map} +1 -1
- package/dist/esm/column-views.9804efda.js +75 -0
- package/dist/esm/column-views.9804efda.js.map +1 -0
- package/dist/esm/column-views.9bdd477a.js +57 -0
- package/dist/esm/column-views.9bdd477a.js.map +1 -0
- package/dist/esm/column-views.9ced149e.js +98 -0
- package/dist/esm/column-views.9ced149e.js.map +1 -0
- package/dist/esm/{column.module.cbb072df.css → column-views.a7be0a4a.css} +1 -1
- package/dist/esm/{column.module.cbb072df.css.map → column-views.a7be0a4a.css.map} +1 -1
- package/dist/esm/column-views.a98214b2.js +9 -0
- package/dist/esm/column-views.a98214b2.js.map +1 -0
- package/dist/esm/column-views.aa9fcdba.js +221 -0
- package/dist/esm/column-views.aa9fcdba.js.map +1 -0
- package/dist/esm/{isotopes-column.7cb5cc45.js → column-views.ac9fb5e1.js} +3 -3
- package/dist/esm/{isotopes-column.7cb5cc45.js.map → column-views.ac9fb5e1.js.map} +1 -1
- package/dist/esm/column-views.b2e5f1d9.js +11 -0
- package/dist/esm/column-views.b2e5f1d9.js.map +1 -0
- package/dist/esm/column-views.b775c0a3.js +112 -0
- package/dist/esm/column-views.b775c0a3.js.map +1 -0
- package/dist/esm/column-views.beb54e95.js +39 -0
- package/dist/esm/column-views.beb54e95.js.map +1 -0
- package/dist/esm/{core.4db8e452.js → column-views.c58aad3f.js} +15 -16
- package/dist/esm/column-views.c58aad3f.js.map +1 -0
- package/dist/esm/{carbon-isotopes.3b502a9e.js → column-views.d1ad48eb.js} +4 -4
- package/dist/esm/{carbon-isotopes.3b502a9e.js.map → column-views.d1ad48eb.js.map} +1 -1
- package/dist/esm/column-views.dc42f5d0.js +48 -0
- package/dist/esm/column-views.dc42f5d0.js.map +1 -0
- package/dist/esm/column-views.dff52504.js +22 -0
- package/dist/esm/column-views.dff52504.js.map +1 -0
- package/dist/esm/column-views.e2b9c23c.css +33 -0
- package/dist/esm/column-views.e2b9c23c.css.map +1 -0
- package/dist/esm/column-views.e40b8bfb.css +14 -0
- package/dist/esm/column-views.e40b8bfb.css.map +1 -0
- package/dist/esm/column-views.e77b9d6b.js +170 -0
- package/dist/esm/column-views.e77b9d6b.js.map +1 -0
- package/dist/esm/column-views.ea237aa8.js +52 -0
- package/dist/esm/column-views.ea237aa8.js.map +1 -0
- package/dist/esm/column-views.edf77621.js +22 -0
- package/dist/esm/column-views.edf77621.js.map +1 -0
- package/dist/esm/column-views.f1efcc2c.js +9 -0
- package/dist/esm/column-views.f1efcc2c.js.map +1 -0
- package/dist/esm/column-views.f2e5a72f.js +66 -0
- package/dist/esm/column-views.f2e5a72f.js.map +1 -0
- package/dist/esm/column-views.f71ec4b4.js +127 -0
- package/dist/esm/column-views.f71ec4b4.js.map +1 -0
- package/dist/esm/column-views.f9dab157.js +3 -0
- package/dist/esm/column-views.f9dab157.js.map +1 -0
- package/dist/esm/column-views.fa6f3292.js +215 -0
- package/dist/esm/column-views.fa6f3292.js.map +1 -0
- package/dist/esm/column-views.fc2b4611.js +9 -0
- package/dist/esm/column-views.fc2b4611.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/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +29 -13
- 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 +12 -1
- 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/composite.module.69a38fd1.css +0 -4
- package/dist/esm/core.4db8e452.js.map +0 -1
- package/dist/esm/data-provider.1506eb64.js.map +0 -1
- package/dist/esm/helpers.8a03cfc7.js +0 -94
- package/dist/esm/helpers.8a03cfc7.js.map +0 -1
- package/dist/esm/index.module.0844afd8.css +0 -65
- package/dist/esm/index.module.0844afd8.css.map +0 -1
- package/dist/esm/index.module.24fe3a2e.js +0 -37
- package/dist/esm/index.module.24fe3a2e.js.map +0 -1
- package/dist/esm/layers.ad5fd25d.js +0 -231
- package/dist/esm/layers.ad5fd25d.js.map +0 -1
- package/dist/esm/map.7aa26f17.js +0 -82
- package/dist/esm/map.7aa26f17.js.map +0 -1
- package/dist/esm/names.f6a4e9a4.js.map +0 -1
- package/dist/esm/providers.cd1e652f.js +0 -25
- package/dist/esm/providers.cd1e652f.js.map +0 -1
- package/dist/esm/resolvers.b5c82b78.js.map +0 -1
- package/dist/esm/section.cc1b1100.js +0 -118
- package/dist/esm/section.cc1b1100.js.map +0 -1
- package/dist/esm/selection-popover.17d1bd55.js +0 -60
- package/dist/esm/selection-popover.17d1bd55.js.map +0 -1
- package/dist/esm/selection-popover.module.0a701258.css.map +0 -1
- package/dist/esm/selection-popover.module.e22f5183.js +0 -22
- package/dist/esm/selection-popover.module.e22f5183.js.map +0 -1
- package/dist/esm/selection.bbf26d0e.js +0 -117
- package/dist/esm/selection.bbf26d0e.js.map +0 -1
- package/dist/esm/store.25eaa168.js +0 -18
- package/dist/esm/store.25eaa168.js.map +0 -1
- package/dist/esm/types.f016e032.js +0 -18
- package/dist/esm/types.f016e032.js.map +0 -1
- package/dist/esm/unit-details.56ff8b70.js +0 -209
- package/dist/esm/unit-details.56ff8b70.js.map +0 -1
- package/dist/esm/units.361088d4.js +0 -42
- package/dist/esm/units.361088d4.js.map +0 -1
- package/src/helpers.ts +0 -133
- package/src/providers.ts +0 -34
- package/src/selection-popover.ts +0 -71
- package/src/store.ts +0 -12
- package/src/units/units.scss +0 -16
- /package/src/{map → maps/column-navigation/svg}/animated.ts +0 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import {resolveID as $d3e69bd163d41f63$export$7be7d732f3de9464, scalePattern as $d3e69bd163d41f63$export$e8deec7b02ce51eb} from "./column-views.8dd877af.js";
|
|
2
|
+
import {useUnitSelectionTarget as $4d5d1c15f39f6a14$export$cbbec12b1451fe7d} from "./column-views.8e51206e.js";
|
|
3
|
+
import "./column-views.6c670c13.css";
|
|
4
|
+
import $lClM8$columnviews4d374a35js from "./column-views.4d374a35.js";
|
|
5
|
+
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.39657bbf.js";
|
|
6
|
+
import {useLithologies as $774a5efa27d1c77b$export$4d18a90c945d129f} from "./column-views.28ee5f43.js";
|
|
7
|
+
import {getMixedUnitColor as $6698edd2a743bf07$export$175d3e927f1a9860} from "./column-views.1edc7300.js";
|
|
8
|
+
import {ColumnAxisType as $lClM8$ColumnAxisType, ColumnContext as $lClM8$ColumnContext, ColumnLayoutContext as $lClM8$ColumnLayoutContext, useColumn as $lClM8$useColumn, useGeologicPattern as $lClM8$useGeologicPattern, ForeignObject as $lClM8$ForeignObject, PatternDefsProvider as $lClM8$PatternDefsProvider} from "@macrostrat/column-components";
|
|
9
|
+
import {SizeAwareLabel as $lClM8$SizeAwareLabel} from "@macrostrat/ui-components";
|
|
10
|
+
import $lClM8$macrostrathyper from "@macrostrat/hyper";
|
|
11
|
+
import {useContext as $lClM8$useContext, forwardRef as $lClM8$forwardRef, useMemo as $lClM8$useMemo} from "react";
|
|
12
|
+
import $lClM8$classnames from "classnames";
|
|
13
|
+
import {path as $lClM8$path} from "d3-path";
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
function $parcel$interopDefault(a) {
|
|
17
|
+
return a && a.__esModule ? a.default : a;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
const $d254716a820e9c85$var$h = (0, $lClM8$macrostrathyper).styled((0, ($parcel$interopDefault($lClM8$columnviews4d374a35js))));
|
|
32
|
+
function $d254716a820e9c85$var$useUnitRect(division, options = {}) {
|
|
33
|
+
const { widthFraction: widthFraction = 1, axisType: axisType = (0, $lClM8$ColumnAxisType).AGE, padding: padding = 0 } = options;
|
|
34
|
+
const { scale: scale } = (0, $lClM8$useContext)((0, $lClM8$ColumnContext));
|
|
35
|
+
const { width: width } = (0, $lClM8$useContext)((0, $lClM8$ColumnLayoutContext));
|
|
36
|
+
const [bottomHeight, topHeight] = (0, $b6657fba8924a702$export$70e712e2ac0237a)(division, axisType);
|
|
37
|
+
const y = scale(topHeight);
|
|
38
|
+
const height = Math.abs(scale(bottomHeight) - y);
|
|
39
|
+
return {
|
|
40
|
+
x: width * (1 - widthFraction) - padding,
|
|
41
|
+
y: y - padding,
|
|
42
|
+
height: height + padding * 2,
|
|
43
|
+
width: widthFraction * width + padding * 2
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function $d254716a820e9c85$export$d54fdbabca27e53(props) {
|
|
47
|
+
const { division: d, children: children, className: className, widthFraction: widthFraction = 1, axisType: _, nColumns: __, ...baseBounds } = props;
|
|
48
|
+
const { axisType: axisType } = (0, $lClM8$useColumn)();
|
|
49
|
+
const lithMap = (0, $774a5efa27d1c77b$export$4d18a90c945d129f)();
|
|
50
|
+
const bounds = {
|
|
51
|
+
...$d254716a820e9c85$var$useUnitRect(d, {
|
|
52
|
+
widthFraction: widthFraction,
|
|
53
|
+
axisType: axisType
|
|
54
|
+
}),
|
|
55
|
+
...baseBounds
|
|
56
|
+
};
|
|
57
|
+
const backgroundColor = (0, $6698edd2a743bf07$export$175d3e927f1a9860)(d, lithMap, null, false);
|
|
58
|
+
const [ref, selected, onClick] = (0, $4d5d1c15f39f6a14$export$cbbec12b1451fe7d)(d);
|
|
59
|
+
return $d254716a820e9c85$var$h("g.unit", {
|
|
60
|
+
className: className,
|
|
61
|
+
style: {
|
|
62
|
+
"--column-unit-background-color": backgroundColor,
|
|
63
|
+
"--column-stroke-color": backgroundColor
|
|
64
|
+
}
|
|
65
|
+
}, [
|
|
66
|
+
$d254716a820e9c85$var$h("rect.unit.background", {
|
|
67
|
+
ref: ref,
|
|
68
|
+
...bounds,
|
|
69
|
+
fill: backgroundColor,
|
|
70
|
+
fillOpacity: 0.8,
|
|
71
|
+
stroke: backgroundColor,
|
|
72
|
+
onClick: onClick
|
|
73
|
+
}),
|
|
74
|
+
$d254716a820e9c85$var$h.if(selected)("rect.selection-overlay", bounds)
|
|
75
|
+
]);
|
|
76
|
+
}
|
|
77
|
+
function $d254716a820e9c85$export$1d8b9ae22d404866(props) {
|
|
78
|
+
const { division: d, children: children, fill: fill, defaultFill: defaultFill = "transparent", className: className, widthFraction: widthFraction = 1, backgroundColor: backgroundColor, patternColor: patternColor, axisType: _, ...baseBounds } = props;
|
|
79
|
+
const { axisType: axisType } = (0, $lClM8$useColumn)();
|
|
80
|
+
const hasOverflowTop = d.t_clip_pos != null;
|
|
81
|
+
const hasOverflowBottom = d.b_clip_pos != null;
|
|
82
|
+
const bounds = {
|
|
83
|
+
...$d254716a820e9c85$var$useUnitRect(d, {
|
|
84
|
+
widthFraction: widthFraction,
|
|
85
|
+
axisType: axisType
|
|
86
|
+
}),
|
|
87
|
+
...baseBounds,
|
|
88
|
+
overflowTop: hasOverflowTop,
|
|
89
|
+
overflowBottom: hasOverflowBottom
|
|
90
|
+
};
|
|
91
|
+
const patternID = (0, $d3e69bd163d41f63$export$7be7d732f3de9464)(d);
|
|
92
|
+
let _fill = fill ?? (0, $lClM8$useGeologicPattern)(patternID, defaultFill);
|
|
93
|
+
const hasBackgroundColor = backgroundColor != null;
|
|
94
|
+
const _className = (0, $lClM8$classnames)(className, {
|
|
95
|
+
colored: hasBackgroundColor
|
|
96
|
+
});
|
|
97
|
+
const [ref, selected, onClick] = (0, $4d5d1c15f39f6a14$export$cbbec12b1451fe7d)(d);
|
|
98
|
+
//const key = `unit-${d.unit_id}`;
|
|
99
|
+
return $d254716a820e9c85$var$h("g.unit", {
|
|
100
|
+
className: _className,
|
|
101
|
+
style: {
|
|
102
|
+
"--column-unit-background-color": backgroundColor
|
|
103
|
+
}
|
|
104
|
+
}, [
|
|
105
|
+
$d254716a820e9c85$var$h($d254716a820e9c85$var$UnitRect, {
|
|
106
|
+
...bounds,
|
|
107
|
+
fill: backgroundColor,
|
|
108
|
+
onClick: onClick,
|
|
109
|
+
className: "background"
|
|
110
|
+
}),
|
|
111
|
+
$d254716a820e9c85$var$h($d254716a820e9c85$var$UnitRect, {
|
|
112
|
+
ref: ref,
|
|
113
|
+
...bounds,
|
|
114
|
+
fill: _fill,
|
|
115
|
+
onClick: //mask,
|
|
116
|
+
onClick,
|
|
117
|
+
className: "unit"
|
|
118
|
+
}),
|
|
119
|
+
$d254716a820e9c85$var$h.if(selected)($d254716a820e9c85$var$UnitRect, {
|
|
120
|
+
...bounds,
|
|
121
|
+
className: "selection-overlay"
|
|
122
|
+
}),
|
|
123
|
+
//defs,
|
|
124
|
+
children
|
|
125
|
+
]);
|
|
126
|
+
}
|
|
127
|
+
const $d254716a820e9c85$var$UnitRect = (0, $lClM8$forwardRef)((props, ref)=>{
|
|
128
|
+
const { x: x, y: y, width: width, height: height, overflowTop: overflowTop = false, overflowBottom: overflowBottom = false, ...rest } = props;
|
|
129
|
+
if (!overflowTop && !overflowBottom) return $d254716a820e9c85$var$h("rect", {
|
|
130
|
+
x: x,
|
|
131
|
+
y: y,
|
|
132
|
+
width: width,
|
|
133
|
+
height: height,
|
|
134
|
+
ref: ref,
|
|
135
|
+
...rest
|
|
136
|
+
});
|
|
137
|
+
else {
|
|
138
|
+
const d = $d254716a820e9c85$var$zigZagBoxPath(x, y, width, height, overflowTop, overflowBottom);
|
|
139
|
+
return $d254716a820e9c85$var$h("path", {
|
|
140
|
+
d: d,
|
|
141
|
+
ref: ref,
|
|
142
|
+
...rest
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
function $d254716a820e9c85$var$zigZagBoxPath(x, y, width, height, top, bottom) {
|
|
147
|
+
const zigZagWidth = 10;
|
|
148
|
+
const zigZagHeight = 4;
|
|
149
|
+
const d = (0, $lClM8$path)();
|
|
150
|
+
const nZigZags = Math.floor(width / zigZagWidth - 0.5);
|
|
151
|
+
const _zigZagWidth = width / (nZigZags + 0.5);
|
|
152
|
+
d.moveTo(x, y);
|
|
153
|
+
let dy = zigZagHeight / 2;
|
|
154
|
+
// Each zig-zag consists of a short outward motion
|
|
155
|
+
let dx = _zigZagWidth / 4;
|
|
156
|
+
let cx = x;
|
|
157
|
+
let cy = y;
|
|
158
|
+
const doZigZag = (last = false)=>{
|
|
159
|
+
cx += dx;
|
|
160
|
+
cy -= dy;
|
|
161
|
+
d.lineTo(cx, cy);
|
|
162
|
+
let scalar = last ? 1 : 2;
|
|
163
|
+
cx += dx * scalar;
|
|
164
|
+
cy += dy * scalar;
|
|
165
|
+
d.lineTo(cx, cy);
|
|
166
|
+
cx += dx;
|
|
167
|
+
cy -= dy;
|
|
168
|
+
};
|
|
169
|
+
if (top) {
|
|
170
|
+
// Move to the offset
|
|
171
|
+
//d.lineTo(cx, y);
|
|
172
|
+
// Draw the zig-zags
|
|
173
|
+
for(let i = 0; i < nZigZags; i++)doZigZag();
|
|
174
|
+
// Draw the last half zig-zag
|
|
175
|
+
doZigZag(true);
|
|
176
|
+
}
|
|
177
|
+
// Draw the right edge
|
|
178
|
+
d.lineTo(x + width, y);
|
|
179
|
+
d.lineTo(x + width, y + height);
|
|
180
|
+
if (bottom) {
|
|
181
|
+
dx = -dx;
|
|
182
|
+
dy = -dy;
|
|
183
|
+
cx = x + width;
|
|
184
|
+
cy = y + height;
|
|
185
|
+
for(let i = 0; i < nZigZags; i++)doZigZag();
|
|
186
|
+
doZigZag(true);
|
|
187
|
+
}
|
|
188
|
+
// Draw the last line to the left edge
|
|
189
|
+
d.lineTo(x, y + height);
|
|
190
|
+
// Draw the left edge
|
|
191
|
+
d.closePath();
|
|
192
|
+
// Now render the path;
|
|
193
|
+
return d.toString();
|
|
194
|
+
}
|
|
195
|
+
function $d254716a820e9c85$export$b4f0ca233b98f9af(props) {
|
|
196
|
+
const { division: division, label: label, onLabelUpdated: onLabelUpdated, widthFraction: widthFraction, showLabel: showLabel = true, backgroundColor: backgroundColor, axisType: _, ...baseBounds } = props;
|
|
197
|
+
const { axisType: axisType } = (0, $lClM8$useColumn)();
|
|
198
|
+
const bounds = {
|
|
199
|
+
...$d254716a820e9c85$var$useUnitRect(division, {
|
|
200
|
+
widthFraction: widthFraction,
|
|
201
|
+
axisType: axisType
|
|
202
|
+
}),
|
|
203
|
+
...baseBounds
|
|
204
|
+
};
|
|
205
|
+
const { width: width, height: height } = bounds;
|
|
206
|
+
return $d254716a820e9c85$var$h($d254716a820e9c85$export$1d8b9ae22d404866, {
|
|
207
|
+
className: "labeled-unit",
|
|
208
|
+
division: division,
|
|
209
|
+
backgroundColor: backgroundColor,
|
|
210
|
+
...bounds
|
|
211
|
+
}, [
|
|
212
|
+
$d254716a820e9c85$var$h.if(showLabel)((0, $lClM8$ForeignObject), {
|
|
213
|
+
...bounds,
|
|
214
|
+
className: "unit-label-container"
|
|
215
|
+
}, $d254716a820e9c85$var$h((0, $lClM8$SizeAwareLabel), {
|
|
216
|
+
className: "unit-overlay",
|
|
217
|
+
labelClassName: "unit-label",
|
|
218
|
+
style: {
|
|
219
|
+
width: width,
|
|
220
|
+
height: height
|
|
221
|
+
},
|
|
222
|
+
label: label,
|
|
223
|
+
onVisibilityChanged (viz) {
|
|
224
|
+
onLabelUpdated(label, viz);
|
|
225
|
+
}
|
|
226
|
+
}))
|
|
227
|
+
]);
|
|
228
|
+
}
|
|
229
|
+
function $d254716a820e9c85$export$5d1cdfabe8dc8085(props) {
|
|
230
|
+
const { unitComponent: unitComponent = $d254716a820e9c85$export$1d8b9ae22d404866, unitComponentProps: unitComponentProps = {} } = props;
|
|
231
|
+
const { divisions: divisions } = (0, $lClM8$useContext)((0, $lClM8$ColumnContext));
|
|
232
|
+
if (divisions.length == 0) {
|
|
233
|
+
console.warn("No divisions found in column context");
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
const children = (0, $lClM8$useMemo)(()=>{
|
|
237
|
+
return divisions.map((division, i)=>{
|
|
238
|
+
// @ts-ignore
|
|
239
|
+
return $d254716a820e9c85$var$h(unitComponent, {
|
|
240
|
+
division: division,
|
|
241
|
+
key: division.unit_id,
|
|
242
|
+
...unitComponentProps
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
}, [
|
|
246
|
+
divisions,
|
|
247
|
+
unitComponent,
|
|
248
|
+
unitComponentProps
|
|
249
|
+
]);
|
|
250
|
+
return $d254716a820e9c85$var$h((0, $lClM8$PatternDefsProvider), {
|
|
251
|
+
resolveID: $d3e69bd163d41f63$export$7be7d732f3de9464,
|
|
252
|
+
scalePattern: $d3e69bd163d41f63$export$e8deec7b02ce51eb
|
|
253
|
+
}, $d254716a820e9c85$var$h("g.divisions", children));
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
export {$d254716a820e9c85$export$d54fdbabca27e53 as MinimalUnit, $d254716a820e9c85$export$1d8b9ae22d404866 as Unit, $d254716a820e9c85$export$b4f0ca233b98f9af as LabeledUnit, $d254716a820e9c85$export$5d1cdfabe8dc8085 as UnitBoxes};
|
|
258
|
+
//# sourceMappingURL=column-views.5c02fee2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/units/boxes.ts"],"sourcesContent":["import {\n ColumnAxisType,\n ColumnContext,\n ColumnLayoutContext,\n ForeignObject,\n PatternDefsProvider,\n useColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { SizeAwareLabel, Clickable } from \"@macrostrat/ui-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport { forwardRef, ReactNode, useContext, useMemo } from \"react\";\nimport { resolveID, scalePattern } from \"./resolvers\";\nimport { useUnitSelectionTarget } from \"./selection\";\nimport { IUnit } from \"./types\";\nimport styles from \"./boxes.module.sass\";\nimport classNames from \"classnames\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { useLithologies } from \"../data-provider\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { path } from \"d3-path\";\nimport type { RectBounds } from \"./types\";\n\nconst h = hyper.styled(styles);\n\ninterface UnitRectOptions {\n widthFraction?: number;\n axisType?: ColumnAxisType;\n // Padding to create overflow for zig-zags or other ornamented edges\n padding?: number;\n}\n\ninterface UnitProps extends Clickable, Partial<RectBounds>, UnitRectOptions {\n division: IUnit;\n resolveID?(IUnit): string;\n UUID?: string;\n defaultFill?: string;\n widthFraction?: number;\n children?: ReactNode;\n className?: string;\n fill?: string;\n backgroundColor?: string;\n patternColor?: string;\n}\n\nexport interface LabeledUnitProps\n extends UnitRectOptions,\n Clickable,\n Partial<RectBounds> {\n division: IUnit;\n label: string;\n onLabelUpdated?(label: string, shown: boolean);\n halfWidth?: boolean;\n showLabel?: boolean;\n backgroundColor?: string;\n}\n\nfunction useUnitRect(\n division: IUnit,\n options: UnitRectOptions = {}\n): RectBounds {\n const {\n widthFraction = 1,\n axisType = ColumnAxisType.AGE,\n padding = 0,\n } = options;\n const { scale } = useContext(ColumnContext);\n const { width } = useContext(ColumnLayoutContext);\n\n const [bottomHeight, topHeight] = getUnitHeightRange(division, axisType);\n\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2,\n };\n}\n\nexport function MinimalUnit(props) {\n const {\n division: d,\n children,\n className,\n widthFraction = 1,\n axisType: _, // not sure why this is brought in...\n nColumns: __,\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const lithMap = useLithologies();\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n };\n\n const backgroundColor = getMixedUnitColor(d, lithMap, null, false);\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor,\n },\n },\n [\n h(\"rect.unit.background\", {\n ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick,\n }),\n h.if(selected)(\"rect.selection-overlay\", bounds),\n ]\n );\n}\n\nfunction Unit(props: UnitProps) {\n const {\n division: d,\n children,\n fill,\n defaultFill = \"transparent\",\n className,\n widthFraction = 1,\n backgroundColor,\n patternColor,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom,\n };\n const patternID = resolveID(d);\n let _fill = fill ?? useGeologicPattern(patternID, defaultFill);\n\n const hasBackgroundColor = backgroundColor != null;\n\n const _className = classNames(className, { colored: hasBackgroundColor });\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n //const key = `unit-${d.unit_id}`;\n\n return h(\n \"g.unit\",\n {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n },\n },\n [\n h(UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick,\n className: \"background\",\n }),\n h(UnitRect, {\n ref,\n ...bounds,\n fill: _fill,\n //mask,\n onClick,\n className: \"unit\",\n }),\n h.if(selected)(UnitRect, { ...bounds, className: \"selection-overlay\" }),\n //defs,\n children,\n ]\n );\n}\n\ninterface UnitRectProps {\n x: number;\n y: number;\n width: number;\n height: number;\n className: string;\n // Used to determine if the rect should have a zig-zag edge on the top or bottom\n overflowTop?: boolean;\n overflowBottom?: boolean;\n [key: string]: any;\n}\n\nconst UnitRect = forwardRef((props: UnitRectProps, ref) => {\n const {\n x,\n y,\n width,\n height,\n overflowTop = false,\n overflowBottom = false,\n ...rest\n } = props;\n\n if (!overflowTop && !overflowBottom) {\n return h(\"rect\", {\n x,\n y,\n width,\n height,\n ref,\n ...rest,\n });\n } else {\n const d = zigZagBoxPath(x, y, width, height, overflowTop, overflowBottom);\n return h(\"path\", {\n d,\n ref,\n ...rest,\n });\n }\n});\n\nfunction zigZagBoxPath(x, y, width, height, top: boolean, bottom: boolean) {\n const zigZagWidth = 10;\n const zigZagHeight = 4;\n\n const d = path();\n\n const nZigZags = Math.floor(width / zigZagWidth - 0.5);\n const _zigZagWidth = width / (nZigZags + 0.5);\n\n d.moveTo(x, y);\n let dy = zigZagHeight / 2;\n // Each zig-zag consists of a short outward motion\n let dx = _zigZagWidth / 4;\n\n let cx = x;\n let cy = y;\n\n const doZigZag = (last = false) => {\n cx += dx;\n cy -= dy;\n d.lineTo(cx, cy);\n let scalar = last ? 1 : 2;\n cx += dx * scalar;\n cy += dy * scalar;\n d.lineTo(cx, cy);\n cx += dx;\n cy -= dy;\n };\n\n if (top) {\n // Move to the offset\n //d.lineTo(cx, y);\n // Draw the zig-zags\n for (let i = 0; i < nZigZags; i++) {\n doZigZag();\n }\n // Draw the last half zig-zag\n doZigZag(true);\n }\n // Draw the right edge\n d.lineTo(x + width, y);\n d.lineTo(x + width, y + height);\n\n if (bottom) {\n dx = -dx;\n dy = -dy;\n cx = x + width;\n cy = y + height;\n\n for (let i = 0; i < nZigZags; i++) {\n doZigZag();\n }\n doZigZag(true);\n }\n // Draw the last line to the left edge\n d.lineTo(x, y + height);\n // Draw the left edge\n d.closePath();\n\n // Now render the path;\n return d.toString();\n}\n\nfunction LabeledUnit(props: LabeledUnitProps) {\n const {\n division,\n label,\n onLabelUpdated,\n widthFraction,\n showLabel = true,\n backgroundColor,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const bounds = {\n ...useUnitRect(division, { widthFraction, axisType }),\n ...baseBounds,\n };\n const { width, height } = bounds;\n return h(\n Unit,\n { className: \"labeled-unit\", division, backgroundColor, ...bounds },\n [\n h.if(showLabel)(\n ForeignObject,\n { ...bounds, className: \"unit-label-container\" },\n h(SizeAwareLabel, {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: { width, height },\n label,\n onVisibilityChanged(viz) {\n onLabelUpdated(label, viz);\n },\n })\n ),\n ]\n );\n}\n\nfunction UnitBoxes<T>(props: {\n unitComponent: React.FunctionComponent<{ division: T }>;\n unitComponentProps?: any;\n transformDivisions?(divisions: T[]): T[];\n transformDivision?: (\n division: any,\n index: number,\n divisions: any[]\n ) => T | null;\n}) {\n const { unitComponent = Unit, unitComponentProps = {} } = props;\n const { divisions } = useContext(ColumnContext);\n\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n\n const children = useMemo(() => {\n return divisions.map((division: any, i) => {\n // @ts-ignore\n return h(unitComponent, {\n division,\n key: division.unit_id,\n ...unitComponentProps,\n });\n });\n }, [divisions, unitComponent, unitComponentProps]);\n\n return h(\n PatternDefsProvider,\n { resolveID, scalePattern },\n h(\"g.divisions\", children)\n );\n}\n\nexport { LabeledUnit, Unit, UnitBoxes, UnitProps };\n"],"names":[],"version":3,"file":"column-views.5c02fee2.js.map"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import {joinURL as $Qf46V$joinURL, addQueryString as $Qf46V$addQueryString, useAPIResult as $Qf46V$useAPIResult} from "@macrostrat/ui-components";
|
|
2
|
+
import $Qf46V$crossfetch from "cross-fetch";
|
|
3
|
+
import {feature as $Qf46V$feature} from "topojson-client";
|
|
4
|
+
import {geoArea as $Qf46V$geoArea} from "d3-geo";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
function $33a46f9423c8104a$var$defaultFetch(url, options) {
|
|
11
|
+
const baseURL = "https://macrostrat.org/api/v2";
|
|
12
|
+
return (0, $Qf46V$crossfetch)(baseURL + url, options);
|
|
13
|
+
}
|
|
14
|
+
async function $33a46f9423c8104a$export$45bd78cd093090fa(options = {}) {
|
|
15
|
+
const { apiBaseURL: apiBaseURL, projectID: projectID, format: format = "topojson", statusCode: statusCode, fetch: fetch = (0, $Qf46V$crossfetch) } = options;
|
|
16
|
+
let args = {
|
|
17
|
+
format: format
|
|
18
|
+
};
|
|
19
|
+
if (projectID != null) args = {
|
|
20
|
+
...args,
|
|
21
|
+
project_id: projectID
|
|
22
|
+
};
|
|
23
|
+
if (statusCode != null) args = {
|
|
24
|
+
...args,
|
|
25
|
+
status_code: statusCode
|
|
26
|
+
};
|
|
27
|
+
if (projectID == null) args = {
|
|
28
|
+
...args,
|
|
29
|
+
all: true
|
|
30
|
+
};
|
|
31
|
+
let url = "/columns";
|
|
32
|
+
if (apiBaseURL != null) url = (0, $Qf46V$joinURL)(apiBaseURL, url);
|
|
33
|
+
// Try with fetch
|
|
34
|
+
url = (0, $Qf46V$addQueryString)(url, args);
|
|
35
|
+
const res = await fetch(url, {
|
|
36
|
+
method: "GET",
|
|
37
|
+
headers: {
|
|
38
|
+
"Content-Type": "application/json"
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
if (res == null) return null;
|
|
42
|
+
// Get JSON
|
|
43
|
+
const data = await res.json();
|
|
44
|
+
return $33a46f9423c8104a$var$postProcessColumns($33a46f9423c8104a$var$columnProcessors[format](data));
|
|
45
|
+
}
|
|
46
|
+
function $33a46f9423c8104a$export$e3270a4e30e40ff9({ apiRoute: apiRoute = "/columns", status_code: status_code, project_id: project_id, format: format = "geojson" }) {
|
|
47
|
+
let all = undefined;
|
|
48
|
+
if (status_code == null && project_id == null) all = true;
|
|
49
|
+
const processor = $33a46f9423c8104a$var$columnProcessors[format];
|
|
50
|
+
return (0, $Qf46V$useAPIResult)(apiRoute, {
|
|
51
|
+
format: format,
|
|
52
|
+
all: all,
|
|
53
|
+
status_code: status_code,
|
|
54
|
+
project_id: project_id
|
|
55
|
+
}, processor);
|
|
56
|
+
}
|
|
57
|
+
function $33a46f9423c8104a$var$processGeoJSON(res) {
|
|
58
|
+
return $33a46f9423c8104a$var$processGeoJSONBare(res?.success?.data);
|
|
59
|
+
}
|
|
60
|
+
function $33a46f9423c8104a$var$processGeoJSONBare(res) {
|
|
61
|
+
return res?.features;
|
|
62
|
+
}
|
|
63
|
+
function $33a46f9423c8104a$var$processTopoJSON(res) {
|
|
64
|
+
try {
|
|
65
|
+
const { data: data } = res.success;
|
|
66
|
+
const { features: f } = (0, $Qf46V$feature)(data, data.objects.output);
|
|
67
|
+
return f;
|
|
68
|
+
} catch (err) {
|
|
69
|
+
console.error(err);
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function $33a46f9423c8104a$var$postProcessColumns(columns) {
|
|
74
|
+
return $33a46f9423c8104a$var$promoteColumnIDs($33a46f9423c8104a$var$convertSmallAreasToPoints($33a46f9423c8104a$var$removeFeaturesWithoutGeometry(columns)));
|
|
75
|
+
}
|
|
76
|
+
function $33a46f9423c8104a$var$promoteColumnIDs(features) {
|
|
77
|
+
return features.map((f, i)=>{
|
|
78
|
+
return {
|
|
79
|
+
id: f.properties?.col_id,
|
|
80
|
+
...f
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function $33a46f9423c8104a$var$removeFeaturesWithoutGeometry(features) {
|
|
85
|
+
return features.filter((f)=>f.geometry != null);
|
|
86
|
+
}
|
|
87
|
+
function $33a46f9423c8104a$var$convertSmallAreasToPoints(features) {
|
|
88
|
+
return features.map((f)=>{
|
|
89
|
+
// GeoArea takes a long time to run. We are really more worried about points that are zero-area
|
|
90
|
+
if ((0, $Qf46V$geoArea)(f.geometry) < 1e-8) {
|
|
91
|
+
const centroid = f.geometry.coordinates[0][0];
|
|
92
|
+
f.geometry = {
|
|
93
|
+
type: "Point",
|
|
94
|
+
coordinates: centroid
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return f;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
const $33a46f9423c8104a$var$columnProcessors = {
|
|
101
|
+
topojson: $33a46f9423c8104a$var$processTopoJSON,
|
|
102
|
+
geojson: $33a46f9423c8104a$var$processGeoJSON,
|
|
103
|
+
geojson_bare: $33a46f9423c8104a$var$processGeoJSONBare
|
|
104
|
+
};
|
|
105
|
+
async function $33a46f9423c8104a$var$unwrapResponse(res) {
|
|
106
|
+
if (res == null) return null;
|
|
107
|
+
const resData = await res.json();
|
|
108
|
+
return resData["success"]["data"];
|
|
109
|
+
}
|
|
110
|
+
async function $33a46f9423c8104a$export$1aa679bd5e605f82(fetch = $33a46f9423c8104a$var$defaultFetch) {
|
|
111
|
+
const res = await fetch("/defs/lithologies?all");
|
|
112
|
+
return await $33a46f9423c8104a$var$unwrapResponse(res);
|
|
113
|
+
}
|
|
114
|
+
async function $33a46f9423c8104a$export$5d2ec2e733dfe6c7(timescaleID, fetch = $33a46f9423c8104a$var$defaultFetch) {
|
|
115
|
+
let url = `/defs/intervals`;
|
|
116
|
+
if (timescaleID != null) url += `?timescale_id=${timescaleID}`;
|
|
117
|
+
else url += "?all";
|
|
118
|
+
const res = await fetch(url);
|
|
119
|
+
return await $33a46f9423c8104a$var$unwrapResponse(res);
|
|
120
|
+
}
|
|
121
|
+
async function $33a46f9423c8104a$export$780b4b253712916c(fetch = $33a46f9423c8104a$var$defaultFetch) {
|
|
122
|
+
const res = await fetch("/defs/environments?all");
|
|
123
|
+
return await $33a46f9423c8104a$var$unwrapResponse(res);
|
|
124
|
+
}
|
|
125
|
+
async function $33a46f9423c8104a$export$cd7bfa0860f58b96(refs, fetch = $33a46f9423c8104a$var$defaultFetch) {
|
|
126
|
+
let url = `/defs/refs`;
|
|
127
|
+
if (refs.length == 0) return [];
|
|
128
|
+
url += "?ref_id=" + refs.join(",");
|
|
129
|
+
const res = await fetch(url);
|
|
130
|
+
return await $33a46f9423c8104a$var$unwrapResponse(res);
|
|
131
|
+
}
|
|
132
|
+
async function $33a46f9423c8104a$export$b97b9bdd6a521298(columns, fetch = $33a46f9423c8104a$var$defaultFetch) {
|
|
133
|
+
const promises = columns.map((col_id)=>$33a46f9423c8104a$export$d3d8b0fabcc76c5d(col_id, fetch));
|
|
134
|
+
return await Promise.all(promises);
|
|
135
|
+
}
|
|
136
|
+
async function $33a46f9423c8104a$export$d3d8b0fabcc76c5d(col_id, fetch = $33a46f9423c8104a$var$defaultFetch) {
|
|
137
|
+
const params = new URLSearchParams();
|
|
138
|
+
params.append("response", "long");
|
|
139
|
+
params.append("col_id", col_id.toString());
|
|
140
|
+
const res = await fetch("/units?" + params.toString());
|
|
141
|
+
const data = await res.json();
|
|
142
|
+
if (!data.success) throw new Error("Failed to fetch column units");
|
|
143
|
+
const units = data.success.data;
|
|
144
|
+
return {
|
|
145
|
+
columnID: col_id,
|
|
146
|
+
units: units
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
export {$33a46f9423c8104a$export$45bd78cd093090fa as fetchAllColumns, $33a46f9423c8104a$export$e3270a4e30e40ff9 as useColumnFeatures, $33a46f9423c8104a$export$1aa679bd5e605f82 as fetchLithologies, $33a46f9423c8104a$export$5d2ec2e733dfe6c7 as fetchIntervals, $33a46f9423c8104a$export$780b4b253712916c as fetchEnvironments, $33a46f9423c8104a$export$cd7bfa0860f58b96 as fetchRefs, $33a46f9423c8104a$export$b97b9bdd6a521298 as fetchUnits, $33a46f9423c8104a$export$d3d8b0fabcc76c5d as fetchColumnUnits};
|
|
152
|
+
//# sourceMappingURL=column-views.5cc09c1d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;AAeA,SAAS,mCACP,GAAW,EACX,OAA4C;IAE5C,MAAM,UAAU;IAChB,OAAO,CAAA,GAAA,iBAAS,EAAE,UAAU,KAAK;AACnC;AAUO,eAAe,0CACpB,UAA8B,CAAC,CAAC;IAEhC,MAAM,cACJ,UAAU,aACV,SAAS,UACT,SAAS,wBACT,UAAU,SACV,QAAQ,CAAA,GAAA,iBAAS,GAClB,GAAG;IAEJ,IAAI,OAAY;gBAAE;IAAO;IACzB,IAAI,aAAa,MACf,OAAO;QAAE,GAAG,IAAI;QAAE,YAAY;IAAU;IAE1C,IAAI,cAAc,MAChB,OAAO;QAAE,GAAG,IAAI;QAAE,aAAa;IAAW;IAG5C,IAAI,aAAa,MACf,OAAO;QAAE,GAAG,IAAI;QAAE,KAAK;IAAK;IAG9B,IAAI,MAAM;IACV,IAAI,cAAc,MAChB,MAAM,CAAA,GAAA,cAAM,EAAE,YAAY;IAG5B,iBAAiB;IACjB,MAAM,CAAA,GAAA,qBAAa,EAAE,KAAK;IAE1B,MAAM,MAAM,MAAM,MAAM,KAAK;QAC3B,QAAQ;QACR,SAAS;YACP,gBAAgB;QAClB;IACF;IAEA,IAAI,OAAO,MACT,OAAO;IAGT,WAAW;IACX,MAAM,OAAO,MAAM,IAAI,IAAI;IAC3B,OAAO,yCAAmB,sCAAgB,CAAC,OAAO,CAAC;AACrD;AAEO,SAAS,0CAAkB,YAChC,WAAW,yBACX,WAAW,cACX,UAAU,UACV,SAAS,WACV;IACC,IAAI,MAAe;IACnB,IAAI,eAAe,QAAQ,cAAc,MACvC,MAAM;IAGR,MAAM,YAAY,sCAAgB,CAAC,OAAO;IAE1C,OAAO,CAAA,GAAA,mBAAW,EAChB,UACA;gBAAE;aAAQ;qBAAK;oBAAa;IAAW,GACvC;AAEJ;AAEA,SAAS,qCAAe,GAAG;IACzB,OAAO,yCAAmB,KAAK,SAAS;AAC1C;AAEA,SAAS,yCAAmB,GAAG;IAC7B,OAAO,KAAK;AACd;AAEA,SAAS,sCAAgB,GAAG;IAC1B,IAAI;QACF,MAAM,QAAE,IAAI,EAAE,GAAG,IAAI,OAAO;QAC5B,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,CAAA,GAAA,cAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM;QACzD,OAAO;IACT,EAAE,OAAO,KAAK;QACZ,QAAQ,KAAK,CAAC;QACd,OAAO,EAAE;IACX;AACF;AAEA,SAAS,yCAAmB,OAAO;IACjC,OAAO,uCACL,gDAA0B,oDAA8B;AAE5D;AAEA,SAAS,uCACP,QAA+B;IAE/B,OAAO,SAAS,GAAG,CAAC,CAAC,GAAG;QACtB,OAAO;YACL,IAAI,EAAE,UAAU,EAAE;YAClB,GAAG,CAAC;QACN;IACF;AACF;AAEA,SAAS,oDAA8B,QAAQ;IAC7C,OAAO,SAAS,MAAM,CAAC,CAAC,IAAM,EAAE,QAAQ,IAAI;AAC9C;AAEA,SAAS,gDAA0B,QAAQ;IACzC,OAAO,SAAS,GAAG,CAAC,CAAC;QACnB,+FAA+F;QAC/F,IAAI,CAAA,GAAA,cAAM,EAAE,EAAE,QAAQ,IAAI,MAAM;YAC9B,MAAM,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;YAC7C,EAAE,QAAQ,GAAG;gBACX,MAAM;gBACN,aAAa;YACf;QACF;QACA,OAAO;IACT;AACF;AAEA,MAAM,yCAAmB;IACvB,UAAU;IACV,SAAS;IACT,cAAc;AAChB;AAEA,eAAe,qCAAe,GAAG;IAC/B,IAAI,OAAO,MACT,OAAO;IAET,MAAM,UAAU,MAAM,IAAI,IAAI;IAC9B,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO;AACnC;AAEO,eAAe,0CAAiB,QAAQ,kCAAY;IACzD,MAAM,MAAM,MAAM,MAAM;IACxB,OAAO,MAAM,qCAAe;AAC9B;AAEO,eAAe,0CACpB,WAA0B,EAC1B,QAAQ,kCAAY;IAEpB,IAAI,MAAM,CAAC,eAAe,CAAC;IAC3B,IAAI,eAAe,MACjB,OAAO,CAAC,cAAc,EAAE,aAAa;SAErC,OAAO;IAET,MAAM,MAAM,MAAM,MAAM;IACxB,OAAO,MAAM,qCAAe;AAC9B;AAEO,eAAe,0CAAkB,QAAQ,kCAAY;IAC1D,MAAM,MAAM,MAAM,MAAM;IACxB,OAAO,MAAM,qCAAe;AAC9B;AAEO,eAAe,0CACpB,IAAc,EACd,QAAQ,kCAAY;IAEpB,IAAI,MAAM,CAAC,UAAU,CAAC;IACtB,IAAI,KAAK,MAAM,IAAI,GACjB,OAAO,EAAE;IAEX,OAAO,aAAa,KAAK,IAAI,CAAC;IAC9B,MAAM,MAAM,MAAM,MAAM;IACxB,OAAO,MAAM,qCAAe;AAC9B;AAOO,eAAe,0CACpB,OAAiB,EACjB,QAAQ,kCAAY;IAEpB,MAAM,WAAW,QAAQ,GAAG,CAAC,CAAC,SAAW,0CAAiB,QAAQ;IAClE,OAAO,MAAM,QAAQ,GAAG,CAAC;AAC3B;AAEO,eAAe,0CACpB,MAAc,EACd,QAAQ,kCAAY;IAEpB,MAAM,SAAS,IAAI;IACnB,OAAO,MAAM,CAAC,YAAY;IAC1B,OAAO,MAAM,CAAC,UAAU,OAAO,QAAQ;IACvC,MAAM,MAAM,MAAM,MAAM,YAAiB,OAAO,QAAQ;IACxD,MAAM,OAAO,MAAM,IAAI,IAAI;IAC3B,IAAI,CAAC,KAAK,OAAO,EACf,MAAM,IAAI,MAAM;IAElB,MAAM,QAAQ,KAAK,OAAO,CAAC,IAAI;IAC/B,OAAO;QAAE,UAAU;eAAQ;IAAM;AACnC","sources":["packages/column-views/src/data-provider/fetch.ts"],"sourcesContent":["import {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n MacrostratRef,\n UnitLong,\n} from \"@macrostrat/api-types\";\nimport {\n addQueryString,\n joinURL,\n useAPIResult,\n} from \"@macrostrat/ui-components\";\nimport crossFetch from \"cross-fetch\";\nimport { feature } from \"topojson-client\";\nimport { geoArea } from \"d3-geo\";\n\nfunction defaultFetch(\n url: string,\n options: RequestInit | undefined = undefined\n) {\n const baseURL = \"https://macrostrat.org/api/v2\";\n return crossFetch(baseURL + url, options);\n}\n\nexport interface ColumnFetchOptions {\n apiBaseURL?: string;\n projectID?: number;\n statusCode?: \"in process\";\n format?: \"geojson\" | \"topojson\" | \"geojson_bare\";\n fetch?: any;\n}\n\nexport async function fetchAllColumns(\n options: ColumnFetchOptions = {}\n): Promise<ColumnGeoJSONRecord[]> {\n const {\n apiBaseURL,\n projectID,\n format = \"topojson\",\n statusCode,\n fetch = crossFetch,\n } = options;\n\n let args: any = { format };\n if (projectID != null) {\n args = { ...args, project_id: projectID };\n }\n if (statusCode != null) {\n args = { ...args, status_code: statusCode };\n }\n\n if (projectID == null) {\n args = { ...args, all: true };\n }\n\n let url = \"/columns\";\n if (apiBaseURL != null) {\n url = joinURL(apiBaseURL, url);\n }\n\n // Try with fetch\n url = addQueryString(url, args);\n\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (res == null) {\n return null;\n }\n\n // Get JSON\n const data = await res.json();\n return postProcessColumns(columnProcessors[format](data));\n}\n\nexport function useColumnFeatures({\n apiRoute = \"/columns\",\n status_code,\n project_id,\n format = \"geojson\",\n}) {\n let all: boolean = undefined;\n if (status_code == null && project_id == null) {\n all = true;\n }\n\n const processor = columnProcessors[format];\n\n return useAPIResult(\n apiRoute,\n { format, all, status_code, project_id },\n processor\n );\n}\n\nfunction processGeoJSON(res) {\n return processGeoJSONBare(res?.success?.data);\n}\n\nfunction processGeoJSONBare(res) {\n return res?.features;\n}\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}\n\nfunction postProcessColumns(columns) {\n return promoteColumnIDs(\n convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns))\n );\n}\n\nfunction promoteColumnIDs(\n features: ColumnGeoJSONRecord[]\n): ColumnGeoJSONRecordWithID[] {\n return features.map((f, i) => {\n return {\n id: f.properties?.col_id,\n ...f,\n };\n });\n}\n\nfunction removeFeaturesWithoutGeometry(features) {\n return features.filter((f) => f.geometry != null);\n}\n\nfunction convertSmallAreasToPoints(features) {\n return features.map((f) => {\n // GeoArea takes a long time to run. We are really more worried about points that are zero-area\n if (geoArea(f.geometry) < 1e-8) {\n const centroid = f.geometry.coordinates[0][0];\n f.geometry = {\n type: \"Point\",\n coordinates: centroid,\n };\n }\n return f;\n });\n}\n\nconst columnProcessors = {\n topojson: processTopoJSON,\n geojson: processGeoJSON,\n geojson_bare: processGeoJSONBare,\n};\n\nasync function unwrapResponse(res) {\n if (res == null) {\n return null;\n }\n const resData = await res.json();\n return resData[\"success\"][\"data\"];\n}\n\nexport async function fetchLithologies(fetch = defaultFetch) {\n const res = await fetch(\"/defs/lithologies?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchIntervals(\n timescaleID: number | null,\n fetch = defaultFetch\n) {\n let url = `/defs/intervals`;\n if (timescaleID != null) {\n url += `?timescale_id=${timescaleID}`;\n } else {\n url += \"?all\";\n }\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport async function fetchEnvironments(fetch = defaultFetch) {\n const res = await fetch(\"/defs/environments?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchRefs(\n refs: number[],\n fetch = defaultFetch\n): Promise<MacrostratRef[]> {\n let url = `/defs/refs`;\n if (refs.length == 0) {\n return [];\n }\n url += \"?ref_id=\" + refs.join(\",\");\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport type ColumnData = {\n units: UnitLong[];\n columnID: number;\n};\n\nexport async function fetchUnits(\n columns: number[],\n fetch = defaultFetch\n): Promise<ColumnData[]> {\n const promises = columns.map((col_id) => fetchColumnUnits(col_id, fetch));\n return await Promise.all(promises);\n}\n\nexport async function fetchColumnUnits(\n col_id: number,\n fetch = defaultFetch\n): Promise<ColumnData> {\n const params = new URLSearchParams();\n params.append(\"response\", \"long\");\n params.append(\"col_id\", col_id.toString());\n const res = await fetch(\"/units\" + \"?\" + params.toString());\n const data = await res.json();\n if (!data.success) {\n throw new Error(\"Failed to fetch column units\");\n }\n const units = data.success.data;\n return { columnID: col_id, units };\n}\n"],"names":[],"version":3,"file":"column-views.5cc09c1d.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.39657bbf.js";
|
|
2
2
|
import $5ZBll$macrostrathyper from "@macrostrat/hyper";
|
|
3
3
|
import $5ZBll$react, {useContext as $5ZBll$useContext, useCallback as $5ZBll$useCallback} from "react";
|
|
4
4
|
import {ColumnContext as $5ZBll$ColumnContext, NotesColumn as $5ZBll$NotesColumn} from "@macrostrat/column-components";
|
|
@@ -9,10 +9,10 @@ import {ColumnContext as $5ZBll$ColumnContext, NotesColumn as $5ZBll$NotesColumn
|
|
|
9
9
|
|
|
10
10
|
function $bc17276da4abb183$export$2f2e65a797f8fc1e(div, opts) {
|
|
11
11
|
const { axisType: axisType } = opts;
|
|
12
|
-
const
|
|
12
|
+
const [height, top_height] = (0, $b6657fba8924a702$export$70e712e2ac0237a)(div, axisType);
|
|
13
13
|
return {
|
|
14
|
-
height:
|
|
15
|
-
top_height:
|
|
14
|
+
height: height,
|
|
15
|
+
top_height: top_height,
|
|
16
16
|
data: div,
|
|
17
17
|
id: div.unit_id
|
|
18
18
|
};
|
|
@@ -62,4 +62,4 @@ function $bc17276da4abb183$export$594d19cdd88f8c16(props) {
|
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
export {$bc17276da4abb183$export$2f2e65a797f8fc1e as noteForDivision, $bc17276da4abb183$export$c9757aeb43a67df0 as defaultNameFunction, $bc17276da4abb183$export$6316e673796ccb55 as UnitDataColumn, $bc17276da4abb183$export$594d19cdd88f8c16 as UnitNamesColumn};
|
|
65
|
-
//# sourceMappingURL=
|
|
65
|
+
//# sourceMappingURL=column-views.650bd9f5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;AA+BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,OAAO;gBACL;oBACA;QACA,MAAM;QACN,IAAI,IAAI,OAAO;IACjB;AACF;AAEA,MAAM,4CAAsB,CAAC;IAC3B,OAAO,IAAI,SAAS,CACjB,OAAO,CAAC,OAAO,UACf,OAAO,CAAC,MAAM,aACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,sCAAgB,KAAoB;IAC3C,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,oBAAY;IACnC,MAAM,QACJ,IAAI,iBACJ,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,KAAK,WACjB,GAAG,MACJ,GAAG;IAEJ,MAAM,SAAE,KAAK,EAAE,GAAG;IAElB,MAAM,sBAAsB,CAAA,GAAA,kBAAU,EACpC,CAAC;QACC,IAAI,iBAAiB,GAAG,OAAO;QAC/B,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM;QACxD,OAAO,KAAK;IACd,GACA;QAAC;QAAO;KAAc;IAGxB,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM,QAAoB,UACvB,MAAM,CAAC,kBACP,GAAG,CAAC,CAAC,IAAa,0CAAgB,GAAG;YAAE,UAAU,IAAI,QAAQ;QAAC,IAC9D,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpC,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAQ3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,gBAAgB,CAAC;QACrB,MAAM,QAAE,IAAI,EAAE,GAAG;QACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;IACxD;IAEA,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;QACvB,eAAe,iBAAiB;QAChC,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useContext, useCallback } from \"react\";\nimport {\n ColumnContext,\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit } from \"./types\";\nimport React from \"react\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { CompositeColumnScale } from \"./composite\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n scale?: CompositeColumnScale;\n}\n\ntype UnitNote = {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n};\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType }\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const ctx = useContext(ColumnContext);\n const {\n left,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n minimumHeight = 0,\n divisions = ctx?.divisions,\n ...rest\n } = props;\n\n const { scale } = ctx;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight]\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType: ctx.axisType }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left || 0})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const NoteComponent = (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n };\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? NoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"column-views.650bd9f5.js.map"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import {Columns as $93f116a6493b17c3$export$f02cc02ad0e0bba3, CurrentColumn as $93f116a6493b17c3$export$b9d912252344e099, MeasurementsLayer as $93f116a6493b17c3$export$2254347cd20e6080, ColumnFeatures as $93f116a6493b17c3$export$f177ff57c101017a, ColumnKeyboardNavigation as $93f116a6493b17c3$export$8c41dd563753848, ColumnCenters as $93f116a6493b17c3$export$4d8f6e6df85d9012} from "./column-views.e77b9d6b.js";
|
|
2
|
+
import {useRef as $9RwS3$useRef} from "react";
|
|
3
|
+
import $9RwS3$macrostrathyper from "@macrostrat/hyper";
|
|
4
|
+
import {Globe as $9RwS3$Globe, LandLayer as $9RwS3$LandLayer} from "@macrostrat/svg-map-components";
|
|
5
|
+
import {geoCentroid as $9RwS3$geoCentroid} from "d3-geo";
|
|
6
|
+
import {useElementSize as $9RwS3$useElementSize} from "@macrostrat/ui-components";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
function $e6046e00d2c8a163$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, $9RwS3$useRef)(null);
|
|
18
|
+
const sz = (0, $9RwS3$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, $9RwS3$macrostrathyper)("div.map-area", {
|
|
30
|
+
ref: ref,
|
|
31
|
+
style: style,
|
|
32
|
+
className: className
|
|
33
|
+
}, [
|
|
34
|
+
(0, $9RwS3$macrostrathyper)((0, $9RwS3$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, $9RwS3$macrostrathyper)((0, $9RwS3$LandLayer)),
|
|
47
|
+
children
|
|
48
|
+
])
|
|
49
|
+
]);
|
|
50
|
+
}
|
|
51
|
+
function $e6046e00d2c8a163$export$9595c40c7a4c4f7b(props) {
|
|
52
|
+
const { currentColumn: currentColumn, setCurrentColumn: setCurrentColumn, children: children, style: style, margin: margin = 10, scale: scale, className: className, showInProcessColumns: showInProcessColumns = false, showDebugLayers: showDebugLayers = false, center: center, ...rest } = props;
|
|
53
|
+
let _center = center ?? [
|
|
54
|
+
-100,
|
|
55
|
+
38
|
|
56
|
+
];
|
|
57
|
+
// Override center if currentColumn is set
|
|
58
|
+
if (currentColumn != null) _center = (0, $9RwS3$geoCentroid)(currentColumn);
|
|
59
|
+
console.log(currentColumn);
|
|
60
|
+
return (0, $9RwS3$macrostrathyper)($e6046e00d2c8a163$export$c4313db718750a5a, {
|
|
61
|
+
center: _center,
|
|
62
|
+
style: style,
|
|
63
|
+
margin: margin,
|
|
64
|
+
scale: scale,
|
|
65
|
+
className: className
|
|
66
|
+
}, [
|
|
67
|
+
children,
|
|
68
|
+
(0, $9RwS3$macrostrathyper)((0, $93f116a6493b17c3$export$f02cc02ad0e0bba3), {
|
|
69
|
+
onChange: setCurrentColumn,
|
|
70
|
+
col_id: currentColumn?.properties.col_id,
|
|
71
|
+
showDebugLayers: showDebugLayers,
|
|
72
|
+
...rest
|
|
73
|
+
}),
|
|
74
|
+
(0, $9RwS3$macrostrathyper).if(showInProcessColumns)((0, $93f116a6493b17c3$export$f02cc02ad0e0bba3), {
|
|
75
|
+
onChange: setCurrentColumn,
|
|
76
|
+
col_id: currentColumn?.properties.col_id,
|
|
77
|
+
status_code: "in process",
|
|
78
|
+
color: "rgba(200,150,150, 0.5)",
|
|
79
|
+
...rest
|
|
80
|
+
}),
|
|
81
|
+
(0, $9RwS3$macrostrathyper).if(currentColumn != null)((0, $93f116a6493b17c3$export$b9d912252344e099), {
|
|
82
|
+
feature: currentColumn
|
|
83
|
+
})
|
|
84
|
+
]);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
export {$e6046e00d2c8a163$export$c4313db718750a5a as ResizableMapFrame, $e6046e00d2c8a163$export$9595c40c7a4c4f7b as ColumnNavigationSVGMap, $93f116a6493b17c3$export$2254347cd20e6080 as MeasurementsLayer, $93f116a6493b17c3$export$f177ff57c101017a as ColumnFeatures, $93f116a6493b17c3$export$8c41dd563753848 as ColumnKeyboardNavigation, $93f116a6493b17c3$export$f02cc02ad0e0bba3 as Columns, $93f116a6493b17c3$export$4d8f6e6df85d9012 as ColumnCenters, $93f116a6493b17c3$export$b9d912252344e099 as CurrentColumn};
|
|
89
|
+
//# sourceMappingURL=column-views.68409161.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;AAQO,SAAS,0CAAkB,KAAK;IACrC,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;AAKO,SAAS,0CAAuB,KAAK;IAC1C,MAAM,iBACJ,aAAa,oBACb,gBAAgB,YAChB,QAAQ,SACR,KAAK,UACL,SAAS,WACT,KAAK,aACL,SAAS,wBACT,uBAAuB,wBACvB,kBAAkB,eAClB,MAAM,EACN,GAAG,MACJ,GAAG;IAEJ,IAAI,UAA6B,UAAU;QAAC;QAAM;KAAG;IACrD,0CAA0C;IAC1C,IAAI,iBAAiB,MACnB,UAAU,CAAA,GAAA,kBAAU,EAAE;IAGxB,QAAQ,GAAG,CAAC;IAEZ,OAAO,CAAA,GAAA,sBAAA,EACL,2CACA;QAAE,QAAQ;eAAS;gBAAO;eAAQ;mBAAO;IAAU,GACnD;QACE;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAM,GAAG;YACT,UAAU;YACV,QAAQ,eAAe,WAAW;6BAClC;YACA,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/maps/column-navigation/svg/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\";\nimport type { LngLatLike } from \"mapbox-gl\";\n\nexport function 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\ntype ColumnNavigationSVGMapProps = any;\nexport type { ColumnNavigationSVGMapProps };\n\nexport function ColumnNavigationSVGMap(props) {\n const {\n currentColumn,\n setCurrentColumn,\n children,\n style,\n margin = 10,\n scale,\n className,\n showInProcessColumns = false,\n showDebugLayers = false,\n center,\n ...rest\n } = props;\n\n let _center: LngLatLike | null = center ?? [-100, 38];\n // Override center if currentColumn is set\n if (currentColumn != null) {\n _center = geoCentroid(currentColumn);\n }\n\n console.log(currentColumn);\n\n return h(\n ResizableMapFrame,\n { center: _center, style, margin, scale, className },\n [\n children,\n h(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n showDebugLayers,\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\";\n"],"names":[],"version":3,"file":"column-views.68409161.js.map"}
|