@macrostrat/column-views 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/esm/{column-views.df34441c.js → column-views.058c0083.js} +5 -5
- package/dist/esm/{column-views.df34441c.js.map → column-views.058c0083.js.map} +1 -1
- package/dist/esm/{column-views.2e854496.js → column-views.11ae78f7.js} +3 -3
- package/dist/esm/{column-views.2e854496.js.map → column-views.11ae78f7.js.map} +1 -1
- package/dist/esm/{column-views.faacfc3c.js → column-views.1e579112.js} +3 -3
- package/dist/esm/{column-views.faacfc3c.js.map → column-views.1e579112.js.map} +1 -1
- package/dist/esm/{column-views.8284c3a9.js → column-views.218e8f5d.js} +5 -5
- package/dist/esm/{column-views.8284c3a9.js.map → column-views.218e8f5d.js.map} +1 -1
- package/dist/esm/{column-views.bbc77227.js → column-views.30950997.js} +2 -2
- package/dist/esm/{column-views.bbc77227.js.map → column-views.30950997.js.map} +1 -1
- package/dist/esm/{column-views.f0b0fc56.js → column-views.35efe006.js} +2 -2
- package/dist/esm/{column-views.f0b0fc56.js.map → column-views.35efe006.js.map} +1 -1
- package/dist/esm/{column-views.418f948f.js → column-views.43beafa3.js} +6 -6
- package/dist/esm/{column-views.418f948f.js.map → column-views.43beafa3.js.map} +1 -1
- package/dist/esm/{column-views.b29f8718.js → column-views.44d3797a.js} +2 -2
- package/dist/esm/{column-views.b29f8718.js.map → column-views.44d3797a.js.map} +1 -1
- package/dist/esm/{column-views.29a551f6.js → column-views.52ad973a.js} +21 -15
- package/dist/esm/column-views.52ad973a.js.map +1 -0
- package/dist/esm/{column-views.60365cdb.js → column-views.5456a1ee.js} +2 -2
- package/dist/esm/{column-views.60365cdb.js.map → column-views.5456a1ee.js.map} +1 -1
- package/dist/esm/{column-views.81bddbee.js → column-views.66ccfc44.js} +3 -3
- package/dist/esm/{column-views.81bddbee.js.map → column-views.66ccfc44.js.map} +1 -1
- package/dist/esm/{column-views.469a4952.js → column-views.6ce8cb61.js} +3 -3
- package/dist/esm/{column-views.469a4952.js.map → column-views.6ce8cb61.js.map} +1 -1
- package/dist/esm/{column-views.413217dc.js → column-views.6d63971b.js} +2 -2
- package/dist/esm/{column-views.413217dc.js.map → column-views.6d63971b.js.map} +1 -1
- package/dist/esm/{column-views.e17f00d3.js → column-views.7243e77d.js} +2 -2
- package/dist/esm/{column-views.e17f00d3.js.map → column-views.7243e77d.js.map} +1 -1
- package/dist/esm/{column-views.382c486d.js → column-views.729a6728.js} +3 -3
- package/dist/esm/{column-views.382c486d.js.map → column-views.729a6728.js.map} +1 -1
- package/dist/esm/{column-views.7683bb52.js → column-views.75e5aebe.js} +5 -5
- package/dist/esm/{column-views.7683bb52.js.map → column-views.75e5aebe.js.map} +1 -1
- package/dist/esm/{column-views.748dce47.js → column-views.76a220c4.js} +2 -2
- package/dist/esm/{column-views.748dce47.js.map → column-views.76a220c4.js.map} +1 -1
- package/dist/esm/{column-views.b08d82e6.js → column-views.77e22590.js} +2 -2
- package/dist/esm/{column-views.b08d82e6.js.map → column-views.77e22590.js.map} +1 -1
- package/dist/esm/{column-views.0265cf7f.js → column-views.7b4a1f15.js} +15 -10
- package/dist/esm/column-views.7b4a1f15.js.map +1 -0
- package/dist/esm/{column-views.d86555b0.js → column-views.7c95c3d7.js} +2 -2
- package/dist/esm/{column-views.d86555b0.js.map → column-views.7c95c3d7.js.map} +1 -1
- package/dist/esm/{column-views.e1bc3cfa.js → column-views.7d69838d.js} +2 -2
- package/dist/esm/{column-views.e1bc3cfa.js.map → column-views.7d69838d.js.map} +1 -1
- package/dist/esm/{column-views.cae1a6a1.js → column-views.7faf00ed.js} +3 -3
- package/dist/esm/{column-views.cae1a6a1.js.map → column-views.7faf00ed.js.map} +1 -1
- package/dist/esm/{column-views.0ce9b697.js → column-views.817752b6.js} +3 -3
- package/dist/esm/{column-views.0ce9b697.js.map → column-views.817752b6.js.map} +1 -1
- package/dist/esm/{column-views.41e5f0dc.js → column-views.833c2b74.js} +2 -2
- package/dist/esm/{column-views.41e5f0dc.js.map → column-views.833c2b74.js.map} +1 -1
- package/dist/esm/{column-views.adec2e4c.js → column-views.9dd25b5b.js} +3 -3
- package/dist/esm/{column-views.adec2e4c.js.map → column-views.9dd25b5b.js.map} +1 -1
- package/dist/esm/{column-views.4ed90896.js → column-views.abf6aedd.js} +41 -10
- package/dist/esm/column-views.abf6aedd.js.map +1 -0
- package/dist/esm/{column-views.8b623b27.js → column-views.ad080c0e.js} +2 -2
- package/dist/esm/{column-views.8b623b27.js.map → column-views.ad080c0e.js.map} +1 -1
- package/dist/esm/{column-views.c3495702.js → column-views.aeb61926.js} +2 -2
- package/dist/esm/{column-views.c3495702.js.map → column-views.aeb61926.js.map} +1 -1
- package/dist/esm/{column-views.c2fbcba8.js → column-views.b0e6c0b3.js} +4 -4
- package/dist/esm/{column-views.c2fbcba8.js.map → column-views.b0e6c0b3.js.map} +1 -1
- package/dist/esm/{column-views.a3fabf0f.js → column-views.c44febd0.js} +9 -6
- package/dist/esm/column-views.c44febd0.js.map +1 -0
- package/dist/esm/column-views.cc733361.js.map +1 -1
- package/dist/esm/{column-views.787d7696.js → column-views.d2214a99.js} +3 -3
- package/dist/esm/{column-views.787d7696.js.map → column-views.d2214a99.js.map} +1 -1
- package/dist/esm/{column-views.abeab9aa.js → column-views.d6d6df77.js} +3 -3
- package/dist/esm/{column-views.abeab9aa.js.map → column-views.d6d6df77.js.map} +1 -1
- package/dist/esm/{column-views.e33ac5c9.css → column-views.e93478c3.css} +7 -2
- package/dist/esm/column-views.e93478c3.css.map +1 -0
- package/dist/esm/{column-views.53722d0a.js → column-views.ee525e88.js} +8 -8
- package/dist/esm/{column-views.53722d0a.js.map → column-views.ee525e88.js.map} +1 -1
- package/dist/esm/{column-views.2eceafb5.js → column-views.ef88c46c.js} +2 -2
- package/dist/esm/{column-views.2eceafb5.js.map → column-views.ef88c46c.js.map} +1 -1
- package/dist/esm/{column-views.2aef5df8.js → column-views.faa4e06d.js} +4 -4
- package/dist/esm/{column-views.2aef5df8.js.map → column-views.faa4e06d.js.map} +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +10 -10
- package/dist/node/{column-views.6919fd2a.js → column-views.003348f6.js} +2 -2
- package/dist/node/{column-views.6919fd2a.js.map → column-views.003348f6.js.map} +1 -1
- package/dist/node/{column-views.a1e29a15.js → column-views.05cfc627.js} +2 -2
- package/dist/node/{column-views.a1e29a15.js.map → column-views.05cfc627.js.map} +1 -1
- package/dist/node/column-views.0beae29d.js +2 -0
- package/dist/node/column-views.0beae29d.js.map +1 -0
- package/dist/node/{column-views.54363c13.js → column-views.105c28fa.js} +2 -2
- package/dist/node/{column-views.54363c13.js.map → column-views.105c28fa.js.map} +1 -1
- package/dist/node/{column-views.45a03acc.js → column-views.1ac9e2ed.js} +2 -2
- package/dist/node/{column-views.45a03acc.js.map → column-views.1ac9e2ed.js.map} +1 -1
- package/dist/node/{column-views.abe0a664.js → column-views.1c567bfd.js} +2 -2
- package/dist/node/{column-views.abe0a664.js.map → column-views.1c567bfd.js.map} +1 -1
- package/dist/node/{column-views.93febe9b.js → column-views.21a73236.js} +2 -2
- package/dist/node/{column-views.93febe9b.js.map → column-views.21a73236.js.map} +1 -1
- package/dist/node/{column-views.6099a3a9.js → column-views.22c2d45b.js} +2 -2
- package/dist/node/{column-views.6099a3a9.js.map → column-views.22c2d45b.js.map} +1 -1
- package/dist/node/{column-views.0e7ac946.js → column-views.2901b649.js} +2 -2
- package/dist/node/{column-views.0e7ac946.js.map → column-views.2901b649.js.map} +1 -1
- package/dist/node/{column-views.29483479.js → column-views.2d00d842.js} +2 -2
- package/dist/node/{column-views.29483479.js.map → column-views.2d00d842.js.map} +1 -1
- package/dist/node/{column-views.f0f5cefd.js → column-views.38835c99.js} +2 -2
- package/dist/node/{column-views.f0f5cefd.js.map → column-views.38835c99.js.map} +1 -1
- package/dist/node/{column-views.57dd069c.js → column-views.3913cd0f.js} +2 -2
- package/dist/node/{column-views.57dd069c.js.map → column-views.3913cd0f.js.map} +1 -1
- package/dist/node/{column-views.f7d72702.js → column-views.39c21f22.js} +2 -2
- package/dist/node/{column-views.f7d72702.js.map → column-views.39c21f22.js.map} +1 -1
- package/dist/node/{column-views.588b02a1.js → column-views.420b60d2.js} +2 -2
- package/dist/node/{column-views.588b02a1.js.map → column-views.420b60d2.js.map} +1 -1
- package/dist/node/{column-views.ae9536b3.js → column-views.4ce5f5e4.js} +2 -2
- package/dist/node/{column-views.ae9536b3.js.map → column-views.4ce5f5e4.js.map} +1 -1
- package/dist/node/column-views.52cc4dd0.js +2 -0
- package/dist/node/column-views.52cc4dd0.js.map +1 -0
- package/dist/node/column-views.60b5663d.js +2 -0
- package/dist/node/column-views.60b5663d.js.map +1 -0
- package/dist/node/{column-views.554d44a7.js → column-views.61dc64bc.js} +2 -2
- package/dist/node/{column-views.554d44a7.js.map → column-views.61dc64bc.js.map} +1 -1
- package/dist/node/{column-views.4b4c214a.js → column-views.67fed1f5.js} +2 -2
- package/dist/node/{column-views.4b4c214a.js.map → column-views.67fed1f5.js.map} +1 -1
- package/dist/node/{column-views.fcdc74c4.js → column-views.7faaf6c8.js} +2 -2
- package/dist/node/{column-views.fcdc74c4.js.map → column-views.7faaf6c8.js.map} +1 -1
- package/dist/node/{column-views.07c503d3.js → column-views.a08b0c9f.js} +2 -2
- package/dist/node/column-views.a08b0c9f.js.map +1 -0
- package/dist/node/{column-views.f1ad131a.js → column-views.a19be00f.js} +2 -2
- package/dist/node/{column-views.f1ad131a.js.map → column-views.a19be00f.js.map} +1 -1
- package/dist/node/{column-views.ebe61439.js → column-views.a281d5bb.js} +2 -2
- package/dist/node/{column-views.ebe61439.js.map → column-views.a281d5bb.js.map} +1 -1
- package/dist/node/{column-views.19a84c01.js → column-views.a9576bac.js} +2 -2
- package/dist/node/{column-views.19a84c01.js.map → column-views.a9576bac.js.map} +1 -1
- package/dist/node/{column-views.6b8424fd.js → column-views.ae22e8b1.js} +2 -2
- package/dist/node/{column-views.6b8424fd.js.map → column-views.ae22e8b1.js.map} +1 -1
- package/dist/node/{column-views.ce5904a6.js → column-views.ae54d3e1.js} +2 -2
- package/dist/node/{column-views.ce5904a6.js.map → column-views.ae54d3e1.js.map} +1 -1
- package/dist/node/{column-views.44952ae6.js → column-views.b12f8c81.js} +2 -2
- package/dist/node/{column-views.44952ae6.js.map → column-views.b12f8c81.js.map} +1 -1
- package/dist/node/{column-views.db4ccacc.js → column-views.b6943236.js} +2 -2
- package/dist/node/{column-views.db4ccacc.js.map → column-views.b6943236.js.map} +1 -1
- package/dist/node/{column-views.32344397.js → column-views.bde2dfa8.js} +2 -2
- package/dist/node/{column-views.32344397.js.map → column-views.bde2dfa8.js.map} +1 -1
- package/dist/node/{column-views.d4545f9f.js → column-views.c3c15cc2.js} +2 -2
- package/dist/node/{column-views.d4545f9f.js.map → column-views.c3c15cc2.js.map} +1 -1
- package/dist/node/{column-views.108db52e.js → column-views.d08e4328.js} +2 -2
- package/dist/node/{column-views.108db52e.js.map → column-views.d08e4328.js.map} +1 -1
- package/dist/node/{column-views.0201566d.js → column-views.db47fe3c.js} +2 -2
- package/dist/node/{column-views.0201566d.js.map → column-views.db47fe3c.js.map} +1 -1
- package/dist/node/{column-views.e803e4ae.css → column-views.ddc6184e.css} +2 -2
- package/dist/node/column-views.ddc6184e.css.map +1 -0
- package/dist/node/column-views.e1813308.js +2 -0
- package/dist/node/column-views.e1813308.js.map +1 -0
- package/dist/node/{column-views.94c84716.js → column-views.f2ee436e.js} +2 -2
- package/dist/node/{column-views.94c84716.js.map → column-views.f2ee436e.js.map} +1 -1
- package/dist/node/{column-views.5a8bc8e3.js → column-views.f6ac1161.js} +2 -2
- package/dist/node/{column-views.5a8bc8e3.js.map → column-views.f6ac1161.js.map} +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +1 -1
- package/src/column.module.sass +7 -5
- package/src/column.ts +25 -6
- package/src/data-provider/store.ts +48 -5
- package/src/data-provider/unit-selection.ts +1 -0
- package/src/section.ts +9 -4
- package/src/unit-details/panel.ts +2 -1
- package/dist/esm/column-views.0265cf7f.js.map +0 -1
- package/dist/esm/column-views.29a551f6.js.map +0 -1
- package/dist/esm/column-views.4ed90896.js.map +0 -1
- package/dist/esm/column-views.a3fabf0f.js.map +0 -1
- package/dist/esm/column-views.e33ac5c9.css.map +0 -1
- package/dist/node/column-views.07c503d3.js.map +0 -1
- package/dist/node/column-views.18d54bbb.js +0 -2
- package/dist/node/column-views.18d54bbb.js.map +0 -1
- package/dist/node/column-views.1a3c399e.js +0 -2
- package/dist/node/column-views.1a3c399e.js.map +0 -1
- package/dist/node/column-views.312db572.js +0 -2
- package/dist/node/column-views.312db572.js.map +0 -1
- package/dist/node/column-views.92e29010.js +0 -2
- package/dist/node/column-views.92e29010.js.map +0 -1
- package/dist/node/column-views.e803e4ae.css.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file. The format
|
|
|
4
4
|
is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this
|
|
5
5
|
project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [2.2.2] - 2025-12-04
|
|
8
|
+
|
|
9
|
+
- Fix a bug with unit deselection
|
|
10
|
+
- Fix missed updates in state management code
|
|
11
|
+
- Add a 'minimal' option to `unconformityLabels`
|
|
12
|
+
- Reduce precision of gap age labels
|
|
13
|
+
- Improvements to stories
|
|
14
|
+
|
|
7
15
|
## [2.2.1] - 2025-11-29
|
|
8
16
|
|
|
9
17
|
- Start unifying state management components
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {UnitNamesColumn as $bc17276da4abb183$export$594d19cdd88f8c16} from "./column-views.
|
|
2
|
-
import {UnitBoxes as $d254716a820e9c85$export$5d1cdfabe8dc8085} from "./column-views.
|
|
1
|
+
import {UnitNamesColumn as $bc17276da4abb183$export$594d19cdd88f8c16} from "./column-views.7d69838d.js";
|
|
2
|
+
import {UnitBoxes as $d254716a820e9c85$export$5d1cdfabe8dc8085} from "./column-views.66ccfc44.js";
|
|
3
3
|
import {getMixedUnitColor as $6698edd2a743bf07$export$175d3e927f1a9860} from "./column-views.9b77388d.js";
|
|
4
|
-
import {TrackedLabeledUnit as $8c8238faa5cde49c$export$f613830566442374, LabelTrackerProvider as $8c8238faa5cde49c$export$e4e89ab6c86ac513, CompositeUnitComponent as $8c8238faa5cde49c$export$1dfa200d57964eee, CompositeUnitsColumn as $8c8238faa5cde49c$export$a6684360fef0406e, AnnotatedUnitsColumn as $8c8238faa5cde49c$export$d8c3f2fdd653a082, SectionLabelsColumn as $8c8238faa5cde49c$export$13984e34afdbb040, ColumnNotesProvider as $8c8238faa5cde49c$export$6cc7a9df4edde18} from "./column-views.
|
|
5
|
-
import {useEnvironments as $774a5efa27d1c77b$export$c6b216bf4c71b61f, useLithologies as $774a5efa27d1c77b$export$4d18a90c945d129f} from "./column-views.
|
|
4
|
+
import {TrackedLabeledUnit as $8c8238faa5cde49c$export$f613830566442374, LabelTrackerProvider as $8c8238faa5cde49c$export$e4e89ab6c86ac513, CompositeUnitComponent as $8c8238faa5cde49c$export$1dfa200d57964eee, CompositeUnitsColumn as $8c8238faa5cde49c$export$a6684360fef0406e, AnnotatedUnitsColumn as $8c8238faa5cde49c$export$d8c3f2fdd653a082, SectionLabelsColumn as $8c8238faa5cde49c$export$13984e34afdbb040, ColumnNotesProvider as $8c8238faa5cde49c$export$6cc7a9df4edde18} from "./column-views.75e5aebe.js";
|
|
5
|
+
import {useEnvironments as $774a5efa27d1c77b$export$c6b216bf4c71b61f, useLithologies as $774a5efa27d1c77b$export$4d18a90c945d129f} from "./column-views.ef88c46c.js";
|
|
6
6
|
import {resolveID as $d3e69bd163d41f63$export$7be7d732f3de9464} from "./column-views.006d5180.js";
|
|
7
7
|
import "./column-views.f9dab157.js";
|
|
8
8
|
import $7H3th$macrostrathyper from "@macrostrat/hyper";
|
|
@@ -146,4 +146,4 @@ function $4c8184c4a7317749$var$getPatternID(liths, lithMap) {
|
|
|
146
146
|
|
|
147
147
|
|
|
148
148
|
export {$4c8184c4a7317749$export$3750278673318c9a as UnitsColumn, $4c8184c4a7317749$export$2006342ddaa547c6 as SimpleUnitsColumn, $4c8184c4a7317749$export$600691a8e9d13a7 as BasicUnitComponent, $4c8184c4a7317749$export$48a4cacf2b7a4441 as UnitComponent, $4c8184c4a7317749$export$62c7735c72801c19 as useUnitColor, $4c8184c4a7317749$export$6012fd1584b5d0c0 as ColoredUnitComponent, $4c8184c4a7317749$export$4830e703a903113 as useUnitColorByEnvironment, $4c8184c4a7317749$export$c2fe8a14da82d570 as EnvironmentColoredUnitComponent, $6698edd2a743bf07$export$175d3e927f1a9860 as getMixedUnitColor, $8c8238faa5cde49c$export$e4e89ab6c86ac513 as LabelTrackerProvider, $8c8238faa5cde49c$export$f613830566442374 as TrackedLabeledUnit, $8c8238faa5cde49c$export$1dfa200d57964eee as CompositeUnitComponent, $8c8238faa5cde49c$export$a6684360fef0406e as CompositeUnitsColumn, $8c8238faa5cde49c$export$d8c3f2fdd653a082 as AnnotatedUnitsColumn, $8c8238faa5cde49c$export$13984e34afdbb040 as SectionLabelsColumn, $8c8238faa5cde49c$export$6cc7a9df4edde18 as ColumnNotesProvider};
|
|
149
|
-
//# sourceMappingURL=column-views.
|
|
149
|
+
//# sourceMappingURL=column-views.058c0083.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/column-views/src/units/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { UnitNamesColumn } from \"./names\";\nimport { ICompositeUnitProps } from \"./composite\";\nimport { UnitBoxes, UnitProps } from \"./boxes\";\nimport { useColumnLayout } from \"@macrostrat/column-components\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { TrackedLabeledUnit } from \"./composite\";\nimport { useEnvironments, useLithologies } from \"../data-provider\";\nimport { useMemo } from \"react\";\nimport { resolveID } from \"./resolvers\";\nimport { Lithology } from \"@macrostrat/api-types\";\n\nexport * from \"./composite\";\nexport * from \"./types\";\nexport * from \"./colors\";\n\nexport function UnitsColumn({ width = 100 }) {\n /*\n A column showing units with USGS color fill\n */\n return h(LithologyColumn, { width }, h(UnitBoxes));\n}\n\nexport function SimpleUnitsColumn(props: ICompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;\n\n return h([\n h(UnitsColumn, {\n width: columnWidth,\n }),\n h(UnitNamesColumn, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n }),\n ]);\n}\n\nexport function BasicUnitComponent({ division, ...rest }) {\n /** A unit that allows directly setting colors and patterns. */\n\n return h(UnitComponent, {\n division,\n ...rest,\n backgroundColor: division.color,\n patternID: division.patternID,\n });\n}\n\nexport function UnitComponent({ division, nColumns = 2, ...rest }) {\n const width = rest.width ?? useColumnLayout()?.width;\n\n const nOverlappingUnits = division.overlappingUnits?.length ?? 0;\n const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;\n const columnIx = (division.column ?? 0) % _nColumns;\n const reducedWidth = width / _nColumns;\n const x = (columnIx * width) / _nColumns;\n\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: reducedWidth,\n x,\n });\n}\n\ninterface UnitColorOptions {\n asBackground?: boolean;\n}\n\nexport function useUnitColor(unit, opts: UnitColorOptions = {}): string | null {\n /** Get the color for a unit based on its lithology */\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || lithMap == null) return null;\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);\n}\n\nexport function ColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColor(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nexport function useUnitColorByEnvironment(\n unit,\n opts: UnitColorOptions = {},\n): string | null {\n /** Get the color for a unit based on its lithology */\n const environmentMap = useEnvironments();\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || environmentMap == null) return null;\n let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {\n key: \"environ\",\n id_key: \"environ_id\",\n });\n if (c != null) {\n return c;\n }\n // Fallback to lithology color if no environment color is found\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);\n}\n\nexport function EnvironmentColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColorByEnvironment(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nfunction getPatternID(\n liths: Array<Lithology>,\n lithMap: Map<number, Lithology>,\n): string | null {\n if (lithMap == null || liths == null || liths.length == 0) {\n return null;\n }\n const patternIDs = new Set<string>();\n for (const lith of liths) {\n const lithData = lithMap.get(lith.lith_id);\n if (lithData) {\n patternIDs.add(`${lithData.fill}`);\n }\n }\n let id = patternIDs.values()[0];\n if (id == \"0\") return null;\n return id;\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/units/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { UnitNamesColumn } from \"./names\";\nimport { ICompositeUnitProps } from \"./composite\";\nimport { UnitBoxes, UnitProps } from \"./boxes\";\nimport { useColumnLayout } from \"@macrostrat/column-components\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { TrackedLabeledUnit } from \"./composite\";\nimport { useEnvironments, useLithologies } from \"../data-provider\";\nimport { useMemo } from \"react\";\nimport { resolveID } from \"./resolvers\";\nimport { Lithology } from \"@macrostrat/api-types\";\n\nexport * from \"./composite\";\nexport * from \"./types\";\nexport * from \"./colors\";\n\nexport function UnitsColumn({ width = 100 }) {\n /*\n A column showing units with USGS color fill\n */\n return h(LithologyColumn, { width }, h(UnitBoxes));\n}\n\nexport function SimpleUnitsColumn(props: ICompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;\n\n return h([\n h(UnitsColumn, {\n width: columnWidth,\n }),\n h(UnitNamesColumn, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n }),\n ]);\n}\n\nexport function BasicUnitComponent({ division, ...rest }) {\n /** A unit that allows directly setting colors and patterns. */\n\n return h(UnitComponent, {\n division,\n ...rest,\n backgroundColor: division.color,\n patternID: division.patternID,\n });\n}\n\nexport function UnitComponent({ division, nColumns = 2, ...rest }) {\n const width = rest.width ?? useColumnLayout()?.width;\n\n const nOverlappingUnits = division.overlappingUnits?.length ?? 0;\n const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;\n const columnIx = (division.column ?? 0) % _nColumns;\n const reducedWidth = width / _nColumns;\n const x = (columnIx * width) / _nColumns;\n\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: reducedWidth,\n x,\n });\n}\n\ninterface UnitColorOptions {\n asBackground?: boolean;\n}\n\nexport function useUnitColor(unit, opts: UnitColorOptions = {}): string | null {\n /** Get the color for a unit based on its lithology */\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || lithMap == null) return null;\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);\n}\n\nexport function ColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColor(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nexport function useUnitColorByEnvironment(\n unit,\n opts: UnitColorOptions = {},\n): string | null {\n /** Get the color for a unit based on its lithology */\n const environmentMap = useEnvironments();\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || environmentMap == null) return null;\n let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {\n key: \"environ\",\n id_key: \"environ_id\",\n });\n if (c != null) {\n return c;\n }\n // Fallback to lithology color if no environment color is found\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);\n}\n\nexport function EnvironmentColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColorByEnvironment(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nfunction getPatternID(\n liths: Array<Lithology>,\n lithMap: Map<number, Lithology>,\n): string | null {\n if (lithMap == null || liths == null || liths.length == 0) {\n return null;\n }\n const patternIDs = new Set<string>();\n for (const lith of liths) {\n const lithData = lithMap.get(lith.lith_id);\n if (lithData) {\n patternIDs.add(`${lithData.fill}`);\n }\n }\n let id = patternIDs.values()[0];\n if (id == \"0\") return null;\n return id;\n}\n"],"names":[],"version":3,"file":"column-views.058c0083.js.map"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {buildColumnsStyle as $1dbfddc9637b572c$export$d2995719c3a4ae17} from "./column-views.633c42a3.js";
|
|
2
2
|
import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0} from "./column-views.3de4dc43.js";
|
|
3
|
-
import {ColumnNavigationProvider as $09486427d129f589$export$8da3b11f62ebf019, useColumnNavigationStore as $09486427d129f589$export$642c2b57c47ea41} from "./column-views.
|
|
4
|
-
import {buildKeyboardNavigationStyle as $ab1043903d5406ef$export$c613fba0aabeee13, ColumnKeyboardNavigation as $ab1043903d5406ef$export$8c41dd563753848} from "./column-views.
|
|
3
|
+
import {ColumnNavigationProvider as $09486427d129f589$export$8da3b11f62ebf019, useColumnNavigationStore as $09486427d129f589$export$642c2b57c47ea41} from "./column-views.aeb61926.js";
|
|
4
|
+
import {buildKeyboardNavigationStyle as $ab1043903d5406ef$export$c613fba0aabeee13, ColumnKeyboardNavigation as $ab1043903d5406ef$export$8c41dd563753848} from "./column-views.ad080c0e.js";
|
|
5
5
|
import {useMapStyleOperator as $lRXWn$useMapStyleOperator} from "@macrostrat/mapbox-react";
|
|
6
6
|
import $lRXWn$macrostrathyper from "@macrostrat/hyper";
|
|
7
7
|
import {useMemo as $lRXWn$useMemo, useRef as $lRXWn$useRef} from "react";
|
|
@@ -165,4 +165,4 @@ function $9d5d216fa2057b5b$var$ColumnsLayer({ enabled: enabled = true }) {
|
|
|
165
165
|
|
|
166
166
|
|
|
167
167
|
export {$9d5d216fa2057b5b$export$821baedf611249f3 as ColumnNavigationMap};
|
|
168
|
-
//# sourceMappingURL=column-views.
|
|
168
|
+
//# sourceMappingURL=column-views.11ae78f7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/column-views/src/maps/column-navigation/mapbox/index.ts"],"sourcesContent":["import { useMapStyleOperator } from \"@macrostrat/mapbox-react\";\nimport h from \"@macrostrat/hyper\";\nimport { FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo, useRef } from \"react\";\nimport { buildColumnsStyle, InsetMapProps } from \"../../_shared\";\nimport { setGeoJSON } from \"@macrostrat/mapbox-utils\";\n\nimport {\n ColumnNavigationProvider,\n NavigationProviderProps,\n useColumnNavigationStore,\n} from \"./state\";\nimport { InsetMap } from \"../../_shared\";\nimport { geoCentroid } from \"d3-geo\";\nimport {\n ColumnKeyboardNavigation,\n buildKeyboardNavigationStyle,\n} from \"./keyboard-navigation\";\n\nexport interface ColumnNavigationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n selectedColumn?: number;\n hoveredColumn?: number;\n onSelectColumn?: (colID: number | null) => void;\n onHoverColumn?: (colID: number | null) => void;\n showTriangulation?: boolean;\n columnColor?: string;\n triangulationColor?: string;\n keyboardNavigation?: boolean;\n}\n\nexport function ColumnNavigationMap(\n props: ColumnNavigationMapProps & NavigationProviderProps,\n) {\n const {\n columns,\n columnIDs,\n onSelectColumn,\n onHoverColumn,\n selectedColumn,\n hoveredColumn,\n projectID,\n children,\n inProcess,\n ...rest\n } = props;\n\n return h(\n ColumnNavigationProvider,\n {\n columns,\n columnIDs,\n onSelectColumn,\n onHoverColumn,\n selectedColumn,\n hoveredColumn,\n projectID,\n inProcess,\n },\n h(_ColumnNavigationMap, props),\n );\n}\n\nfunction _ColumnNavigationMap(props: ColumnNavigationMapProps) {\n const {\n padding = 50,\n children,\n columnColor,\n showTriangulation,\n triangulationColor,\n keyboardNavigation = true,\n ...rest\n } = props;\n\n const overlayStyles = useMemo(() => {\n let styles: any[] = [buildColumnsStyle(columnColor)];\n if (showTriangulation) {\n styles.push(buildKeyboardNavigationStyle(triangulationColor));\n }\n return styles;\n }, [columnColor, showTriangulation, triangulationColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n children,\n h.if(keyboardNavigation)(ColumnKeyboardNavigation, { showTriangulation }),\n ],\n );\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useColumnNavigationStore((state) => state.columns);\n const selectedColumn = useColumnNavigationStore(\n (state) => state.selectedColumn,\n );\n const hoveredColumn = useColumnNavigationStore(\n (state) => state.hoveredColumn,\n );\n const selectColumn = useColumnNavigationStore((state) => state.selectColumn);\n const setHoveredColumn = useColumnNavigationStore(\n (state) => state.setHoveredColumn,\n );\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n setGeoJSON(map, \"columns\", data);\n\n const mouseMove = (event) => {\n if (event.features.length == 0) return;\n const hoveredFeature = event.features[0];\n setHoveredColumn(hoveredFeature.id);\n map.getCanvas().style.cursor = \"pointer\";\n };\n const mouseLeave = () => {\n setHoveredColumn(null);\n map.getCanvas().style.cursor = \"\";\n };\n\n const clickHandler = (event) => {\n if (event.features.length == 0) return;\n const selectedColumn = event.features[0];\n const id = selectedColumn.id;\n selectColumn(id);\n };\n\n // Setup hover styles on map\n const layers = [\"columns-points\", \"columns-fill\"];\n map.on(\"mousemove\", layers, mouseMove);\n map.on(\"mouseleave\", layers, mouseLeave);\n map.on(\"click\", layers, clickHandler);\n\n return () => {\n map.off(\"mouseenter\", layers, mouseMove);\n map.off(\"mouseleave\", layers, mouseLeave);\n map.off(\"click\", layers, clickHandler);\n };\n },\n [columns, enabled],\n );\n\n const hoveredColumnRef = useRef(null);\n useMapStyleOperator(\n (map) => {\n const prevHoveredColumn = hoveredColumnRef.current;\n if (hoveredColumn == prevHoveredColumn) return;\n if (prevHoveredColumn != null) {\n // Deselect previous column\n map.setFeatureState(\n { source: \"columns\", id: prevHoveredColumn },\n { hover: false },\n );\n }\n hoveredColumnRef.current = hoveredColumn;\n // Select the current column\n map.setFeatureState(\n { source: \"columns\", id: hoveredColumn },\n { hover: true },\n );\n },\n [hoveredColumn, columns],\n );\n\n /** Set feature state for selected columns */\n const selectedColumnRef = useRef(null);\n const initialRenderRef = useRef(true);\n useMapStyleOperator(\n (map) => {\n if (columns == null) return;\n const prevSelectedColumn = selectedColumnRef.current;\n if (selectedColumn == prevSelectedColumn) return;\n if (prevSelectedColumn != null) {\n // Deselect previous column\n map.setFeatureState(\n { source: \"columns\", id: prevSelectedColumn },\n { selected: false },\n );\n }\n\n selectedColumnRef.current = selectedColumn;\n\n // Select the current column\n map.setFeatureState(\n { source: \"columns\", id: selectedColumn },\n { selected: true },\n );\n\n // Center the selected column\n const columnGeometry = columns.find(\n (d) => d.id == selectedColumn,\n )?.geometry;\n if (columnGeometry == null) return;\n const center = geoCentroid(columnGeometry);\n\n const isInitialRender = initialRenderRef.current;\n map.easeTo({ center }, { duration: isInitialRender ? 0 : 500 });\n if (isInitialRender) {\n initialRenderRef.current = false;\n }\n },\n [selectedColumn, columns],\n );\n\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/maps/column-navigation/mapbox/index.ts"],"sourcesContent":["import { useMapStyleOperator } from \"@macrostrat/mapbox-react\";\nimport h from \"@macrostrat/hyper\";\nimport { FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo, useRef } from \"react\";\nimport { buildColumnsStyle, InsetMapProps } from \"../../_shared\";\nimport { setGeoJSON } from \"@macrostrat/mapbox-utils\";\n\nimport {\n ColumnNavigationProvider,\n NavigationProviderProps,\n useColumnNavigationStore,\n} from \"./state\";\nimport { InsetMap } from \"../../_shared\";\nimport { geoCentroid } from \"d3-geo\";\nimport {\n ColumnKeyboardNavigation,\n buildKeyboardNavigationStyle,\n} from \"./keyboard-navigation\";\n\nexport interface ColumnNavigationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n selectedColumn?: number;\n hoveredColumn?: number;\n onSelectColumn?: (colID: number | null) => void;\n onHoverColumn?: (colID: number | null) => void;\n showTriangulation?: boolean;\n columnColor?: string;\n triangulationColor?: string;\n keyboardNavigation?: boolean;\n}\n\nexport function ColumnNavigationMap(\n props: ColumnNavigationMapProps & NavigationProviderProps,\n) {\n const {\n columns,\n columnIDs,\n onSelectColumn,\n onHoverColumn,\n selectedColumn,\n hoveredColumn,\n projectID,\n children,\n inProcess,\n ...rest\n } = props;\n\n return h(\n ColumnNavigationProvider,\n {\n columns,\n columnIDs,\n onSelectColumn,\n onHoverColumn,\n selectedColumn,\n hoveredColumn,\n projectID,\n inProcess,\n },\n h(_ColumnNavigationMap, props),\n );\n}\n\nfunction _ColumnNavigationMap(props: ColumnNavigationMapProps) {\n const {\n padding = 50,\n children,\n columnColor,\n showTriangulation,\n triangulationColor,\n keyboardNavigation = true,\n ...rest\n } = props;\n\n const overlayStyles = useMemo(() => {\n let styles: any[] = [buildColumnsStyle(columnColor)];\n if (showTriangulation) {\n styles.push(buildKeyboardNavigationStyle(triangulationColor));\n }\n return styles;\n }, [columnColor, showTriangulation, triangulationColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n children,\n h.if(keyboardNavigation)(ColumnKeyboardNavigation, { showTriangulation }),\n ],\n );\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useColumnNavigationStore((state) => state.columns);\n const selectedColumn = useColumnNavigationStore(\n (state) => state.selectedColumn,\n );\n const hoveredColumn = useColumnNavigationStore(\n (state) => state.hoveredColumn,\n );\n const selectColumn = useColumnNavigationStore((state) => state.selectColumn);\n const setHoveredColumn = useColumnNavigationStore(\n (state) => state.setHoveredColumn,\n );\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n setGeoJSON(map, \"columns\", data);\n\n const mouseMove = (event) => {\n if (event.features.length == 0) return;\n const hoveredFeature = event.features[0];\n setHoveredColumn(hoveredFeature.id);\n map.getCanvas().style.cursor = \"pointer\";\n };\n const mouseLeave = () => {\n setHoveredColumn(null);\n map.getCanvas().style.cursor = \"\";\n };\n\n const clickHandler = (event) => {\n if (event.features.length == 0) return;\n const selectedColumn = event.features[0];\n const id = selectedColumn.id;\n selectColumn(id);\n };\n\n // Setup hover styles on map\n const layers = [\"columns-points\", \"columns-fill\"];\n map.on(\"mousemove\", layers, mouseMove);\n map.on(\"mouseleave\", layers, mouseLeave);\n map.on(\"click\", layers, clickHandler);\n\n return () => {\n map.off(\"mouseenter\", layers, mouseMove);\n map.off(\"mouseleave\", layers, mouseLeave);\n map.off(\"click\", layers, clickHandler);\n };\n },\n [columns, enabled],\n );\n\n const hoveredColumnRef = useRef(null);\n useMapStyleOperator(\n (map) => {\n const prevHoveredColumn = hoveredColumnRef.current;\n if (hoveredColumn == prevHoveredColumn) return;\n if (prevHoveredColumn != null) {\n // Deselect previous column\n map.setFeatureState(\n { source: \"columns\", id: prevHoveredColumn },\n { hover: false },\n );\n }\n hoveredColumnRef.current = hoveredColumn;\n // Select the current column\n map.setFeatureState(\n { source: \"columns\", id: hoveredColumn },\n { hover: true },\n );\n },\n [hoveredColumn, columns],\n );\n\n /** Set feature state for selected columns */\n const selectedColumnRef = useRef(null);\n const initialRenderRef = useRef(true);\n useMapStyleOperator(\n (map) => {\n if (columns == null) return;\n const prevSelectedColumn = selectedColumnRef.current;\n if (selectedColumn == prevSelectedColumn) return;\n if (prevSelectedColumn != null) {\n // Deselect previous column\n map.setFeatureState(\n { source: \"columns\", id: prevSelectedColumn },\n { selected: false },\n );\n }\n\n selectedColumnRef.current = selectedColumn;\n\n // Select the current column\n map.setFeatureState(\n { source: \"columns\", id: selectedColumn },\n { selected: true },\n );\n\n // Center the selected column\n const columnGeometry = columns.find(\n (d) => d.id == selectedColumn,\n )?.geometry;\n if (columnGeometry == null) return;\n const center = geoCentroid(columnGeometry);\n\n const isInitialRender = initialRenderRef.current;\n map.easeTo({ center }, { duration: isInitialRender ? 0 : 500 });\n if (isInitialRender) {\n initialRenderRef.current = false;\n }\n },\n [selectedColumn, columns],\n );\n\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.11ae78f7.js.map"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.
|
|
1
|
+
import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.abf6aedd.js";
|
|
2
2
|
import "./column-views.1151416d.css";
|
|
3
3
|
import $kIqD4$columnviews6e7082dbjs from "./column-views.6e7082db.js";
|
|
4
4
|
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.54f8b909.js";
|
|
5
|
-
import {ColumnNotes as $9e52fe4012c88296$export$fc5babae10f3f77d} from "./column-views.
|
|
5
|
+
import {ColumnNotes as $9e52fe4012c88296$export$fc5babae10f3f77d} from "./column-views.d2214a99.js";
|
|
6
6
|
import {useCallback as $kIqD4$useCallback, useMemo as $kIqD4$useMemo} from "react";
|
|
7
7
|
import $kIqD4$macrostrathyper from "@macrostrat/hyper";
|
|
8
8
|
|
|
@@ -89,4 +89,4 @@ function $c6d9d48b3424a44c$export$653e47a7a0da0f0d({ data: data, className: clas
|
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
export {$c6d9d48b3424a44c$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $c6d9d48b3424a44c$export$653e47a7a0da0f0d as TruncatedList};
|
|
92
|
-
//# sourceMappingURL=column-views.
|
|
92
|
+
//# sourceMappingURL=column-views.1e579112.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;AAMA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAarB,SAAS,0CAAuB,QACrC,IAAI,iBACJ,aAAa,SACb,QAAQ,kBACR,cAAc,eACd,SAAS,aACT,YAAY,CAAC,IAAM,EAAE,OAAO,gBAC5B,YAAY,EACqB;IACjC,MAAM,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAElD,MAAM,gBACJ,gBACA,CAAA,GAAA,kBAAU,EACR,CAAC;QACC,OAAO,CAAC;YACN,OAAO,UAAU,OAAO,GAAG,OAAO;QACpC;IACF,GACA;QAAC;KAAU;IAGf,MAAM,QAAe,CAAA,GAAA,cAAM,EAAE;QAC3B,IAAI,QAAQ,QAAQ,SAAS,MAAM,OAAO,EAAE;QAC5C,IAAI,cAAc,MAAM,IAAI,CAAC,KAAK,MAAM,IACrC,GAAG,CAAC,CAAC;YACJ,OAAO;gBACL,MAAM;gBACN,MAAM,MAAM,IAAI,CAAC,cAAc;YACjC;QACF,GACC,MAAM,CAAC,CAAC,IAAM,EAAE,IAAI,IAAI;QAE3B,YAAY,IAAI,CAAC,CAAC,GAAG;YACnB,MAAM,KAAK,MAAM,OAAO,CAAC,EAAE,IAAI;YAC/B,MAAM,KAAK,MAAM,OAAO,CAAC,EAAE,IAAI;YAC/B,OAAO,KAAK;QACd;QAEA,OAAO,YAAY,GAAG,CAAC,CAAC;YACtB,MAAM,QAAE,IAAI,QAAE,IAAI,EAAE,GAAG;YACvB,MAAM,cAAc,CAAA,GAAA,wCAAiB,EAAE,MAAM;YAE7C,OAAO;gBACL,YAAY,WAAW,CAAC,EAAE;gBAC1B,QAAQ,WAAW,CAAC,EAAE;sBACtB;sBACA;gBACA,IAAI,KAAK,OAAO;YAClB;QACF;IACF,GAAG;QAAC;QAAM;QAAO;KAAa;IAE9B,IAAI,QAAQ,QAAQ,SAAS,MAAM,OAAO;IAE1C,OAAO,wBACL,OACA;mBAAE;IAAU,GACZ,wBAAE,CAAA,GAAA,yCAAU,GAAG;eACb;qBACA;eACA;uBACA;IACF;AAEJ;AASO,SAAS,0CAAc,QAC5B,IAAI,aACJ,SAAS,YACT,WAAW,iBACX,eAAe,CAAC,IAAM,wBAAE,QAAQ,EAAE,IAAI,GACnB;IACnB,IAAI,UAAU;IACd,IAAI,KAAK;IACT,IAAI,KAAK,MAAM,GAAG,UAAU;QAC1B,MAAM,IAAI,KAAK,MAAM,GAAG;QACxB,KAAK,KAAK,KAAK,CAAC,GAAG;QACnB,UAAU,wBAAE,eAAe,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC;IAC5C;IAEA,OAAO,wBAAE,qBAAqB;mBAAE;IAAU,GAAG;QAC3C,GAAG,GAAG,CAAC,CAAC,GAAG;YACT,OAAO,wBAAE,cAAc;gBAAE,KAAK;YAAE,GAAG,wBAAE,cAAc;gBAAE,MAAM;YAAE;QAC/D;QACA;KACD;AACH","sources":["packages/column-views/src/facets/base-sample-column.ts"],"sourcesContent":["import { useMacrostratColumnData } from \"../data-provider\";\nimport { useCallback, useMemo } from \"react\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./base-sample-column.module.sass\";\nimport { getUnitHeightRange } from \"../prepare-units\";\nimport { ColumnNotes } from \"../notes\";\nconst h = hyper.styled(styles);\n\nexport interface BaseMeasurementsColumnProps<T> {\n data: T[];\n noteComponent?: any;\n width?: number;\n paddingLeft?: number;\n className?: string;\n // TODO: these props are confusing\n getUnitID?: (d: T) => number | string;\n matchingUnit?: (dz: T) => (d: any) => boolean;\n}\n\nexport function BaseMeasurementsColumn({\n data,\n noteComponent,\n width = 500,\n paddingLeft = 40,\n className,\n getUnitID = (d) => d.unit_id,\n matchingUnit,\n}: BaseMeasurementsColumnProps<any>) {\n const { axisType, units } = useMacrostratColumnData();\n\n const _matchingUnit =\n matchingUnit ??\n useCallback(\n (dz) => {\n return (d) => {\n return getUnitID(d) === dz.unit_id;\n };\n },\n [getUnitID],\n );\n\n const notes: any[] = useMemo(() => {\n if (data == null || units == null) return [];\n let unitRefData = Array.from(data.values())\n .map((d) => {\n return {\n data: d,\n unit: units.find(_matchingUnit(d)),\n };\n })\n .filter((d) => d.unit != null);\n\n unitRefData.sort((a, b) => {\n const v1 = units.indexOf(a.unit);\n const v2 = units.indexOf(b.unit);\n return v1 - v2;\n });\n\n return unitRefData.map((d) => {\n const { unit, data } = d;\n const heightRange = getUnitHeightRange(unit, axisType);\n\n return {\n top_height: heightRange[1],\n height: heightRange[0],\n data,\n unit,\n id: unit.unit_id,\n };\n });\n }, [data, units, matchingUnit]);\n\n if (data == null || units == null) return null;\n\n return h(\n \"div\",\n { className },\n h(ColumnNotes, {\n width,\n paddingLeft,\n notes,\n noteComponent,\n }),\n );\n}\n\ninterface TruncatedListProps {\n data: any[];\n className?: string;\n maxItems?: number;\n itemRenderer?: (props: { data: any }) => any;\n}\n\nexport function TruncatedList({\n data,\n className,\n maxItems = 5,\n itemRenderer = (p) => h(\"span\", p.data),\n}: TruncatedListProps) {\n let tooMany = null;\n let d1 = data;\n if (data.length > maxItems) {\n const n = data.length - maxItems;\n d1 = data.slice(0, maxItems);\n tooMany = h(\"li.too-many\", `and ${n} more`);\n }\n\n return h(\"ul.truncated-list\", { className }, [\n d1.map((d, i) => {\n return h(\"li.element\", { key: i }, h(itemRenderer, { data: d }));\n }),\n tooMany,\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;AAMA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAarB,SAAS,0CAAuB,QACrC,IAAI,iBACJ,aAAa,SACb,QAAQ,kBACR,cAAc,eACd,SAAS,aACT,YAAY,CAAC,IAAM,EAAE,OAAO,gBAC5B,YAAY,EACqB;IACjC,MAAM,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAElD,MAAM,gBACJ,gBACA,CAAA,GAAA,kBAAU,EACR,CAAC;QACC,OAAO,CAAC;YACN,OAAO,UAAU,OAAO,GAAG,OAAO;QACpC;IACF,GACA;QAAC;KAAU;IAGf,MAAM,QAAe,CAAA,GAAA,cAAM,EAAE;QAC3B,IAAI,QAAQ,QAAQ,SAAS,MAAM,OAAO,EAAE;QAC5C,IAAI,cAAc,MAAM,IAAI,CAAC,KAAK,MAAM,IACrC,GAAG,CAAC,CAAC;YACJ,OAAO;gBACL,MAAM;gBACN,MAAM,MAAM,IAAI,CAAC,cAAc;YACjC;QACF,GACC,MAAM,CAAC,CAAC,IAAM,EAAE,IAAI,IAAI;QAE3B,YAAY,IAAI,CAAC,CAAC,GAAG;YACnB,MAAM,KAAK,MAAM,OAAO,CAAC,EAAE,IAAI;YAC/B,MAAM,KAAK,MAAM,OAAO,CAAC,EAAE,IAAI;YAC/B,OAAO,KAAK;QACd;QAEA,OAAO,YAAY,GAAG,CAAC,CAAC;YACtB,MAAM,QAAE,IAAI,QAAE,IAAI,EAAE,GAAG;YACvB,MAAM,cAAc,CAAA,GAAA,wCAAiB,EAAE,MAAM;YAE7C,OAAO;gBACL,YAAY,WAAW,CAAC,EAAE;gBAC1B,QAAQ,WAAW,CAAC,EAAE;sBACtB;sBACA;gBACA,IAAI,KAAK,OAAO;YAClB;QACF;IACF,GAAG;QAAC;QAAM;QAAO;KAAa;IAE9B,IAAI,QAAQ,QAAQ,SAAS,MAAM,OAAO;IAE1C,OAAO,wBACL,OACA;mBAAE;IAAU,GACZ,wBAAE,CAAA,GAAA,yCAAU,GAAG;eACb;qBACA;eACA;uBACA;IACF;AAEJ;AASO,SAAS,0CAAc,QAC5B,IAAI,aACJ,SAAS,YACT,WAAW,iBACX,eAAe,CAAC,IAAM,wBAAE,QAAQ,EAAE,IAAI,GACnB;IACnB,IAAI,UAAU;IACd,IAAI,KAAK;IACT,IAAI,KAAK,MAAM,GAAG,UAAU;QAC1B,MAAM,IAAI,KAAK,MAAM,GAAG;QACxB,KAAK,KAAK,KAAK,CAAC,GAAG;QACnB,UAAU,wBAAE,eAAe,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC;IAC5C;IAEA,OAAO,wBAAE,qBAAqB;mBAAE;IAAU,GAAG;QAC3C,GAAG,GAAG,CAAC,CAAC,GAAG;YACT,OAAO,wBAAE,cAAc;gBAAE,KAAK;YAAE,GAAG,wBAAE,cAAc;gBAAE,MAAM;YAAE;QAC/D;QACA;KACD;AACH","sources":["packages/column-views/src/facets/base-sample-column.ts"],"sourcesContent":["import { useMacrostratColumnData } from \"../data-provider\";\nimport { useCallback, useMemo } from \"react\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./base-sample-column.module.sass\";\nimport { getUnitHeightRange } from \"../prepare-units\";\nimport { ColumnNotes } from \"../notes\";\nconst h = hyper.styled(styles);\n\nexport interface BaseMeasurementsColumnProps<T> {\n data: T[];\n noteComponent?: any;\n width?: number;\n paddingLeft?: number;\n className?: string;\n // TODO: these props are confusing\n getUnitID?: (d: T) => number | string;\n matchingUnit?: (dz: T) => (d: any) => boolean;\n}\n\nexport function BaseMeasurementsColumn({\n data,\n noteComponent,\n width = 500,\n paddingLeft = 40,\n className,\n getUnitID = (d) => d.unit_id,\n matchingUnit,\n}: BaseMeasurementsColumnProps<any>) {\n const { axisType, units } = useMacrostratColumnData();\n\n const _matchingUnit =\n matchingUnit ??\n useCallback(\n (dz) => {\n return (d) => {\n return getUnitID(d) === dz.unit_id;\n };\n },\n [getUnitID],\n );\n\n const notes: any[] = useMemo(() => {\n if (data == null || units == null) return [];\n let unitRefData = Array.from(data.values())\n .map((d) => {\n return {\n data: d,\n unit: units.find(_matchingUnit(d)),\n };\n })\n .filter((d) => d.unit != null);\n\n unitRefData.sort((a, b) => {\n const v1 = units.indexOf(a.unit);\n const v2 = units.indexOf(b.unit);\n return v1 - v2;\n });\n\n return unitRefData.map((d) => {\n const { unit, data } = d;\n const heightRange = getUnitHeightRange(unit, axisType);\n\n return {\n top_height: heightRange[1],\n height: heightRange[0],\n data,\n unit,\n id: unit.unit_id,\n };\n });\n }, [data, units, matchingUnit]);\n\n if (data == null || units == null) return null;\n\n return h(\n \"div\",\n { className },\n h(ColumnNotes, {\n width,\n paddingLeft,\n notes,\n noteComponent,\n }),\n );\n}\n\ninterface TruncatedListProps {\n data: any[];\n className?: string;\n maxItems?: number;\n itemRenderer?: (props: { data: any }) => any;\n}\n\nexport function TruncatedList({\n data,\n className,\n maxItems = 5,\n itemRenderer = (p) => h(\"span\", p.data),\n}: TruncatedListProps) {\n let tooMany = null;\n let d1 = data;\n if (data.length > maxItems) {\n const n = data.length - maxItems;\n d1 = data.slice(0, maxItems);\n tooMany = h(\"li.too-many\", `and ${n} more`);\n }\n\n return h(\"ul.truncated-list\", { className }, [\n d1.map((d, i) => {\n return h(\"li.element\", { key: i }, h(itemRenderer, { data: d }));\n }),\n tooMany,\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.1e579112.js.map"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "./column-views.562db43a.css";
|
|
2
2
|
import $01tAX$columnviewsfcf25ec6js from "./column-views.fcf25ec6.js";
|
|
3
|
-
import {useColumnUnitsMap as $d5074f164411387e$export$7513be0cfd10d9cc} from "./column-views.
|
|
4
|
-
import {useMacrostratData as $774a5efa27d1c77b$export$b9c9fc603d74a555, useMacrostratDefs as $774a5efa27d1c77b$export$89dd4e5ae4a82373} from "./column-views.
|
|
5
|
-
import {defaultNameFunction as $bc17276da4abb183$export$c9757aeb43a67df0} from "./column-views.
|
|
3
|
+
import {useColumnUnitsMap as $d5074f164411387e$export$7513be0cfd10d9cc} from "./column-views.abf6aedd.js";
|
|
4
|
+
import {useMacrostratData as $774a5efa27d1c77b$export$b9c9fc603d74a555, useMacrostratDefs as $774a5efa27d1c77b$export$89dd4e5ae4a82373} from "./column-views.ef88c46c.js";
|
|
5
|
+
import {defaultNameFunction as $bc17276da4abb183$export$c9757aeb43a67df0} from "./column-views.7d69838d.js";
|
|
6
6
|
import $01tAX$macrostrathyper from "@macrostrat/hyper";
|
|
7
7
|
import {JSONView as $01tAX$JSONView} from "@macrostrat/ui-components";
|
|
8
8
|
import {Button as $01tAX$Button, ButtonGroup as $01tAX$ButtonGroup} from "@blueprintjs/core";
|
|
@@ -218,7 +218,7 @@ function $448b24baeef3b229$var$UnitDetailsContent({ unit: unit, onSelectUnit: on
|
|
|
218
218
|
function $448b24baeef3b229$export$895d4931dd696e25({ refs: refs, className: className = null, ...rest }) {
|
|
219
219
|
if (refs == null || refs.length === 0) return null;
|
|
220
220
|
return $448b24baeef3b229$var$h((0, $01tAX$DataField), {
|
|
221
|
-
label: "
|
|
221
|
+
label: "References",
|
|
222
222
|
className: (0, $01tAX$classnames)("refs-field", className),
|
|
223
223
|
...rest
|
|
224
224
|
}, $448b24baeef3b229$var$h($448b24baeef3b229$var$BibInfo, {
|
|
@@ -550,4 +550,4 @@ function $448b24baeef3b229$var$formatSignificance(value, precision = null) {
|
|
|
550
550
|
|
|
551
551
|
|
|
552
552
|
export {$448b24baeef3b229$export$fbd245232df17557 as UnitDetailsPanel, $448b24baeef3b229$export$fc503c39cc5cff43 as LegendPanelHeader, $448b24baeef3b229$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $448b24baeef3b229$export$3b11bc38611c5941 as Duration, $448b24baeef3b229$export$895d4931dd696e25 as ReferencesField, $448b24baeef3b229$export$989167234458594d as Identifier, $448b24baeef3b229$export$37ebfd237811b1eb as AgeLabel, $448b24baeef3b229$export$b6867fc5221f9f65 as ClickableText};
|
|
553
|
-
//# sourceMappingURL=column-views.
|
|
553
|
+
//# sourceMappingURL=column-views.218e8f5d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/column-views/src/unit-details/panel.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport styles from \"./panel.module.sass\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { Button, ButtonGroup } from \"@blueprintjs/core\";\nimport { ReactNode, useMemo, useState } from \"react\";\nimport {\n DataField,\n EnvironmentsList,\n IntervalShort,\n IntervalTag,\n ItemList,\n LithologyList,\n LithologyTagFeature,\n Parenthetical,\n Value,\n} from \"@macrostrat/data-components\";\nimport {\n useColumnUnitsMap,\n useMacrostratData,\n useMacrostratDefs,\n} from \"../data-provider\";\nimport type {\n Environment,\n UnitLong,\n UnitLongFull,\n Lithology,\n Interval,\n StratUnit,\n} from \"@macrostrat/api-types\";\nimport { defaultNameFunction } from \"../units/names\";\nimport classNames from \"classnames\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPanel({\n unit,\n onClose,\n className,\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n UnitDetailsFeature.JSONToggle,\n UnitDetailsFeature.DepthRange,\n ]),\n lithologyFeatures,\n actions,\n hiddenActions = null,\n onSelectUnit,\n columnUnits,\n onClickItem,\n}: {\n unit: any;\n onClose?: any;\n showLithologyProportions?: boolean;\n className?: string;\n actions?: ReactNode;\n hiddenActions?: ReactNode;\n features?: Set<UnitDetailsFeature>;\n lithologyFeatures?: Set<LithologyTagFeature>;\n columnUnits?: UnitLong[];\n onSelectUnit?: (unitID: number) => void;\n onClickItem?: (item: any) => void;\n}) {\n const [showJSON, setShowJSON] = useState(false);\n\n let content = null;\n if (showJSON) {\n content = h(JSONView, { data: unit, showRoot: false });\n } else {\n content = h(UnitDetailsContent, {\n unit,\n features,\n lithologyFeatures,\n onClickItem,\n onSelectUnit,\n });\n }\n\n let title = defaultNameFunction(unit);\n\n if (features.has(UnitDetailsFeature.JSONToggle)) {\n hiddenActions = h([\n h(Button, {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: classNames(\"json-view-toggle\", { enabled: setShowJSON }),\n onClick(evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n },\n }),\n hiddenActions,\n ]);\n }\n\n return h(\"div.unit-details-panel\", { className }, [\n h(LegendPanelHeader, {\n onClose,\n title,\n id: unit.unit_id,\n actions,\n hiddenActions,\n }),\n h(\"div.unit-details-content-holder\", content),\n ]);\n}\n\nexport function LegendPanelHeader({\n title,\n id,\n onClose,\n actions = null,\n hiddenActions,\n}: {\n title?: string | null;\n id?: number | null;\n onClose?: () => void;\n actions?: ReactNode | null;\n hiddenActions?: ReactNode | null;\n}) {\n return h(\"header.legend-panel-header\", [\n h(\"div.title-container\", [\n h.if(title != null)(\"h3\", title),\n h.if(hiddenActions != null)(\n \"span.hidden-actions-container\",\n h(\"div.hidden-actions\", hiddenActions),\n ),\n ]),\n h(\"div.spacer\"),\n h.if(id != null)(\"code.unit-id\", id),\n h.if(actions != null)(ButtonGroup, { minimal: true }, actions),\n h.if(onClose != null)(Button, {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick() {\n onClose();\n },\n }),\n ]);\n}\n\nexport enum UnitDetailsFeature {\n AdjacentUnits = \"adjacent-units\",\n Color = \"color\",\n OutcropType = \"outcrop-type\",\n JSONToggle = \"json-toggle\",\n DepthRange = \"depth-range\",\n}\n\nfunction UnitDetailsContent({\n unit,\n onSelectUnit,\n columnUnits,\n lithologyFeatures = new Set([\n LithologyTagFeature.Proportion,\n LithologyTagFeature.Attributes,\n ]),\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n ]),\n onClickItem,\n getItemHref,\n}: {\n unit: UnitLong;\n onSelectUnit?: (unitID: number) => void;\n columnUnits?: UnitLong[];\n lithologyFeatures?: Set<LithologyTagFeature>;\n features?: Set<UnitDetailsFeature>;\n onClickItem?: (\n event: MouseEvent,\n item:\n | Lithology\n | Environment\n | UnitLong\n | Interval\n | { strat_name_id: number },\n ) => void;\n getItemHref?: (item: Lithology | Environment | UnitLong) => string | null;\n}) {\n const lithMap = useMacrostratDefs(\"lithologies\");\n const envMap = useMacrostratDefs(\"environments\");\n\n const environments = enhanceEnvironments(unit.environ, envMap);\n const lithologies = enhanceLithologies(unit.lith ?? [], lithMap);\n\n // Create a lookup table of units if provided\n const columnUnitsMap = useMemo(() => {\n const map = new Map<number, UnitLong>();\n for (const colUnit of columnUnits ?? []) {\n map.set(colUnit.unit_id, colUnit);\n }\n return map;\n }, [columnUnits]);\n\n let outcropField = null;\n if (features.has(UnitDetailsFeature.OutcropType)) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") {\n outcrop = \"surface and subsurface\";\n }\n outcropField = h(DataField, {\n label: \"Outcrop\",\n value: outcrop,\n });\n }\n\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (\n features.has(UnitDetailsFeature.DepthRange) &&\n unit.t_pos != null &&\n unit.b_pos != null &&\n unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n\n thicknessOrHeightRange = h(DataField, {\n unit: u1,\n label,\n value: formatRange(unit.b_pos, unit.t_pos),\n children: h(\n Parenthetical,\n h(Value, { value: thickness, unit: thicknessUnit }),\n ),\n });\n }\n thicknessOrHeightRange ??= h(DataField, {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit,\n });\n\n /** We are trying to move away from passing the \"color\" parameter in the API */\n let colorSwatch: ReactNode = null;\n if (\"color\" in unit && features.has(UnitDetailsFeature.Color)) {\n const unit1 = unit as UnitLongFull;\n colorSwatch = h(\"div.color-swatch\", {\n style: { backgroundColor: unit1.color },\n });\n }\n\n return h(\"div.unit-details-content\", [\n thicknessOrHeightRange,\n h(LithologyList, {\n label: \"Lithology\",\n lithologies,\n features: lithologyFeatures,\n getItemHref,\n onClickItem,\n }),\n h(AgeField, { unit }, [\n h(Parenthetical, h(Duration, { value: unit.b_age - unit.t_age })),\n h(IntervalProportions, {\n unit,\n onClickItem,\n }),\n ]),\n h(EnvironmentsList, {\n environments,\n onClickItem,\n getItemHref,\n }),\n h.if(unit.strat_name_id != null)(StratNameField, {\n strat_name_id: unit.strat_name_id,\n }),\n outcropField,\n h.if(features.has(UnitDetailsFeature.AdjacentUnits))([\n h(\n DataField,\n { label: \"Above\" },\n h(UnitIDList, {\n units: unit.units_above,\n onSelectUnit,\n showNames: true,\n }),\n ),\n h(\n DataField,\n { label: \"Below\" },\n h(UnitIDList, {\n units: unit.units_below,\n onSelectUnit,\n showNames: true,\n }),\n ),\n ]),\n colorSwatch,\n h(ReferencesField, { refs: unit.refs, inline: true }),\n ]);\n}\n\nexport function ReferencesField({ refs, className = null, ...rest }) {\n if (refs == null || refs.length === 0) {\n return null;\n }\n return h(\n DataField,\n {\n label: \"Source\",\n className: classNames(\"refs-field\", className),\n ...rest,\n },\n h(BibInfo, { refs }),\n );\n}\n\nfunction StratNameField({\n strat_name_id,\n onClickItem,\n}: {\n strat_name_id: number;\n onClickItem?: (event: MouseEvent, item: { strat_name_id: number }) => void;\n}) {\n const stratNames = useMemo(() => [strat_name_id], [strat_name_id]);\n const data = useMacrostratData(\"strat_names\", stratNames);\n const stratNameData = data?.[0];\n let inner: any = h(Identifier, { id: strat_name_id });\n const name = stratNameData?.strat_name_long;\n if (name != null) {\n inner = h(\"span.strat-name\", name);\n }\n\n const clickable = onClickItem != null;\n\n const className = classNames({\n clickable,\n });\n\n return h(\n DataField,\n {\n label: \"Stratigraphic name\",\n },\n h(\n clickable ? \"a\" : \"span\",\n {\n className,\n onClick: (e) => onClickItem(e, { strat_name_id }),\n },\n inner,\n ),\n );\n}\n\nfunction getThickness(unit): [string, string] {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n\n if (minThickness == 0 && maxThickness == 0) {\n return [\"Unknown\", null];\n }\n\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n\n if (minThickness == maxThickness) {\n return [formatSignificance(minThickness), _unit];\n }\n\n return [formatRange(minThickness, maxThickness), _unit];\n}\n\nfunction ThicknessField({ unit, label = \"Thickness\" }) {\n const [value, thicknessUnit] = getThickness(unit);\n return h(DataField, {\n label,\n value,\n unit: thicknessUnit,\n });\n}\n\nfunction BibInfo({ refs }) {\n const refData = useMacrostratData(\"refs\", refs);\n\n if (refData == null || refData.length === 0) {\n return null;\n }\n\n if (refData.length == 1) {\n return h(Citation, {\n data: refData[0],\n tag: \"span\",\n key: refData[0].ref_id,\n });\n }\n\n return h(\n \"ul.refs\",\n refData.map((data, i) =>\n h(Citation, { data, tag: \"li\", key: data.ref_id }),\n ),\n );\n}\n\nfunction Citation({ data, tag = \"p\" }) {\n return h(tag, { className: \"citation\" }, [\n h(\"span.authors\", data.author),\n \", \",\n h(\"span.year\", data.pub_year),\n \", \",\n h(\"span.title\", data.ref),\n ]);\n}\n\nfunction AgeField({ unit, children }) {\n const [b_age, t_age, _unit] = getAgeRange(unit);\n\n return h(\n DataField,\n {\n label: \"Age\",\n value: formatRange(b_age, t_age),\n unit: _unit,\n },\n children,\n );\n}\n\nfunction getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n\n return [b_age, t_age, unit];\n}\n\nfunction getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */\n let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n\n return [value, unit];\n}\n\nexport function AgeLabel({\n age,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n className,\n}: {\n age: number;\n className?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n}) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */\n const [value, unit] = getAge(age);\n\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit, className });\n}\n\nexport function Duration({\n value,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n}) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit });\n}\n\nfunction enhanceEnvironments(\n environments: Partial<Environment>[],\n envMap: Map<number, Environment>,\n) {\n return environments.map((env) => {\n return {\n ...(envMap?.get(env.environ_id) ?? {}),\n ...env,\n };\n });\n}\n\nfunction enhanceLithologies(\n lithologies: Partial<UnitLong[\"lith\"]>,\n lithMap: Map<number, any>,\n) {\n return lithologies.map((lith) => {\n return {\n ...(lithMap?.get(lith.lith_id) ?? {}), // get lithology details\n ...lith, // override with the unit's specific lithology data\n };\n });\n}\n\nexport function ClickableText({\n onClick,\n className,\n children,\n}: {\n onClick: () => void;\n className?: string;\n children: ReactNode;\n}) {\n /** An optionally clickable text element */\n const tag = onClick != null ? \"a\" : \"span\";\n return h(tag, { onClick, className }, children);\n}\n\nexport function Identifier({\n id,\n onClick,\n className,\n}: {\n id: number | string;\n onClick?: (id: number | string) => void;\n className?: string;\n}) {\n /** An item that displays a numeric identifier, optionally clickable */\n const _onClick = onClick != null ? () => onClick(id) : null;\n\n return h(\n ClickableText,\n {\n onClick: _onClick,\n className: classNames(\"identifier\", className),\n },\n id,\n );\n}\n\ntype UnitInfo = {\n unitID: number;\n colID?: number;\n name?: string;\n};\n\nfunction UnitIDList({ units, onSelectUnit, showNames = false }) {\n const unitsMap = useColumnUnitsMap();\n\n const extUnits: UnitInfo[] = useMemo(() => {\n const u1 = units.filter((d) => d != 0);\n if (showNames) {\n return u1.map((unitID) => {\n const unitData = unitsMap?.get(unitID);\n let name: string = undefined;\n if (unitData != null) {\n name = defaultNameFunction(unitData);\n }\n return {\n unitID,\n colID: unitData?.col_id,\n name,\n };\n });\n } else {\n return u1.map((unitID) => ({ unitID }));\n }\n }, [units, unitsMap]);\n\n if (extUnits.length === 0) {\n return h(\"span.no-units\", \"None\");\n }\n\n return h(\n ItemList,\n { className: \"units-list\" },\n extUnits.map((info) =>\n h(\"span.item\", h(UnitIdentifier, { ...info, onSelectUnit })),\n ),\n );\n}\n\nfunction UnitIdentifier({\n unitID,\n colID,\n name,\n onSelectUnit,\n}: UnitInfo & { onSelectUnit?: (unitID: number) => void }) {\n const onClick = useMemo(() => {\n if (onSelectUnit == null) return null;\n return () => {\n onSelectUnit(unitID);\n };\n }, [onSelectUnit]);\n\n if (name != null) {\n return h(\n ClickableText,\n {\n className: \"unit-name\",\n onClick,\n },\n name,\n );\n }\n\n return h(Identifier, {\n className: \"unit-id\",\n onClick,\n key: unitID,\n id: unitID,\n });\n}\n\nfunction IntervalProportions({ unit, onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n\n const intervalMap = useMacrostratDefs(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n\n const interval0: IntervalShort = {\n ...int0,\n id: i0,\n name: unit.b_int_name,\n };\n\n let p0: ReactNode = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1: ReactNode = h(Proportion, { value: t_prop });\n\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) {\n // We have a single interval with undefined proportions\n p0 = h(Proportion, { value: b_prop });\n }\n\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) {\n p0 = h(\"span.joint-proportion\", [p0, h(\"span.sep\", \"to\"), p1]);\n }\n\n const clickable = onClickItem != null;\n\n const handleClick = (event: MouseEvent) => {\n if (onClickItem) {\n onClickItem(event, interval0);\n }\n };\n\n return h(\"div.interval-proportions\", [\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0,\n }),\n h.if(i0 != i1)(\"span.discourage-break\", [\n h(\"span.sep\", \"to\"),\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name,\n },\n prefix: p1,\n }),\n ]),\n ]);\n}\n\nconst formatProportion = (d) => {\n if (d == null) return null;\n return d.toFixed(1);\n};\n\nfunction Proportion({ value }) {\n let content = null;\n if (value == 0) {\n content = \"base\";\n } else if (value == 1) {\n content = \"top\";\n } else {\n content = formatProportion(value * 100) + \"%\";\n }\n\n return h(\"span.proportion\", content);\n}\n\nfunction formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) {\n return min.toFixed(precision);\n }\n\n return `${formatSignificance(min, precision)}–${formatSignificance(\n max,\n precision,\n )}`;\n}\n\nfunction formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n\n if (precision == null) {\n return value.toLocaleString();\n }\n if (precision >= 0) {\n return value.toFixed(precision);\n }\n if (precision < 0) {\n return (\n (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision)\n );\n }\n}\n"],"names":[],"version":3,"file":"column-views.8284c3a9.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/unit-details/panel.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport styles from \"./panel.module.sass\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { Button, ButtonGroup } from \"@blueprintjs/core\";\nimport { ReactNode, useMemo, useState } from \"react\";\nimport {\n DataField,\n EnvironmentsList,\n IntervalShort,\n IntervalTag,\n ItemList,\n LithologyList,\n LithologyTagFeature,\n Parenthetical,\n Value,\n} from \"@macrostrat/data-components\";\nimport {\n useColumnUnitsMap,\n useMacrostratData,\n useMacrostratDefs,\n} from \"../data-provider\";\nimport type {\n Environment,\n UnitLong,\n UnitLongFull,\n Lithology,\n Interval,\n StratUnit,\n} from \"@macrostrat/api-types\";\nimport { defaultNameFunction } from \"../units/names\";\nimport classNames from \"classnames\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPanel({\n unit,\n onClose,\n className,\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n UnitDetailsFeature.JSONToggle,\n UnitDetailsFeature.DepthRange,\n ]),\n lithologyFeatures,\n actions,\n hiddenActions = null,\n onSelectUnit,\n columnUnits,\n onClickItem,\n}: {\n unit: any;\n onClose?: any;\n showLithologyProportions?: boolean;\n className?: string;\n actions?: ReactNode;\n hiddenActions?: ReactNode;\n features?: Set<UnitDetailsFeature>;\n lithologyFeatures?: Set<LithologyTagFeature>;\n columnUnits?: UnitLong[];\n onSelectUnit?: (unitID: number) => void;\n onClickItem?: (item: any) => void;\n}) {\n const [showJSON, setShowJSON] = useState(false);\n\n let content = null;\n if (showJSON) {\n content = h(JSONView, { data: unit, showRoot: false });\n } else {\n content = h(UnitDetailsContent, {\n unit,\n features,\n lithologyFeatures,\n onClickItem,\n onSelectUnit,\n });\n }\n\n let title = defaultNameFunction(unit);\n\n if (features.has(UnitDetailsFeature.JSONToggle)) {\n hiddenActions = h([\n h(Button, {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: classNames(\"json-view-toggle\", { enabled: setShowJSON }),\n onClick(evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n },\n }),\n hiddenActions,\n ]);\n }\n\n return h(\"div.unit-details-panel\", { className }, [\n h(LegendPanelHeader, {\n onClose,\n title,\n id: unit.unit_id,\n actions,\n hiddenActions,\n }),\n h(\"div.unit-details-content-holder\", content),\n ]);\n}\n\nexport function LegendPanelHeader({\n title,\n id,\n onClose,\n actions = null,\n hiddenActions,\n}: {\n title?: string | null;\n id?: number | null;\n onClose?: () => void;\n actions?: ReactNode | null;\n hiddenActions?: ReactNode | null;\n}) {\n return h(\"header.legend-panel-header\", [\n h(\"div.title-container\", [\n h.if(title != null)(\"h3\", title),\n h.if(hiddenActions != null)(\n \"span.hidden-actions-container\",\n h(\"div.hidden-actions\", hiddenActions),\n ),\n ]),\n h(\"div.spacer\"),\n h.if(id != null)(\"code.unit-id\", id),\n h.if(actions != null)(ButtonGroup, { minimal: true }, actions),\n h.if(onClose != null)(Button, {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick() {\n onClose();\n },\n }),\n ]);\n}\n\nexport enum UnitDetailsFeature {\n AdjacentUnits = \"adjacent-units\",\n Color = \"color\",\n OutcropType = \"outcrop-type\",\n JSONToggle = \"json-toggle\",\n DepthRange = \"depth-range\",\n}\n\nfunction UnitDetailsContent({\n unit,\n onSelectUnit,\n columnUnits,\n lithologyFeatures = new Set([\n LithologyTagFeature.Proportion,\n LithologyTagFeature.Attributes,\n ]),\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n ]),\n onClickItem,\n getItemHref,\n}: {\n unit: UnitLong;\n onSelectUnit?: (unitID: number) => void;\n columnUnits?: UnitLong[];\n lithologyFeatures?: Set<LithologyTagFeature>;\n features?: Set<UnitDetailsFeature>;\n onClickItem?: (\n event: MouseEvent,\n item:\n | Lithology\n | Environment\n | UnitLong\n | Interval\n | { strat_name_id: number },\n ) => void;\n getItemHref?: (item: Lithology | Environment | UnitLong) => string | null;\n}) {\n const lithMap = useMacrostratDefs(\"lithologies\");\n const envMap = useMacrostratDefs(\"environments\");\n\n const environments = enhanceEnvironments(unit.environ, envMap);\n const lithologies = enhanceLithologies(unit.lith ?? [], lithMap);\n\n // Create a lookup table of units if provided\n const columnUnitsMap = useMemo(() => {\n const map = new Map<number, UnitLong>();\n for (const colUnit of columnUnits ?? []) {\n map.set(colUnit.unit_id, colUnit);\n }\n return map;\n }, [columnUnits]);\n\n let outcropField = null;\n if (features.has(UnitDetailsFeature.OutcropType)) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") {\n outcrop = \"surface and subsurface\";\n }\n outcropField = h(DataField, {\n label: \"Outcrop\",\n value: outcrop,\n });\n }\n\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (\n features.has(UnitDetailsFeature.DepthRange) &&\n unit.t_pos != null &&\n unit.b_pos != null &&\n unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n\n thicknessOrHeightRange = h(DataField, {\n unit: u1,\n label,\n value: formatRange(unit.b_pos, unit.t_pos),\n children: h(\n Parenthetical,\n h(Value, { value: thickness, unit: thicknessUnit }),\n ),\n });\n }\n thicknessOrHeightRange ??= h(DataField, {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit,\n });\n\n /** We are trying to move away from passing the \"color\" parameter in the API */\n let colorSwatch: ReactNode = null;\n if (\"color\" in unit && features.has(UnitDetailsFeature.Color)) {\n const unit1 = unit as UnitLongFull;\n colorSwatch = h(\"div.color-swatch\", {\n style: { backgroundColor: unit1.color },\n });\n }\n\n return h(\"div.unit-details-content\", [\n thicknessOrHeightRange,\n h(LithologyList, {\n label: \"Lithology\",\n lithologies,\n features: lithologyFeatures,\n getItemHref,\n onClickItem,\n }),\n h(AgeField, { unit }, [\n h(Parenthetical, h(Duration, { value: unit.b_age - unit.t_age })),\n h(IntervalProportions, {\n unit,\n onClickItem,\n }),\n ]),\n h(EnvironmentsList, {\n environments,\n onClickItem,\n getItemHref,\n }),\n h.if(unit.strat_name_id != null)(StratNameField, {\n strat_name_id: unit.strat_name_id,\n }),\n outcropField,\n h.if(features.has(UnitDetailsFeature.AdjacentUnits))([\n h(\n DataField,\n { label: \"Above\" },\n h(UnitIDList, {\n units: unit.units_above,\n onSelectUnit,\n showNames: true,\n }),\n ),\n h(\n DataField,\n { label: \"Below\" },\n h(UnitIDList, {\n units: unit.units_below,\n onSelectUnit,\n showNames: true,\n }),\n ),\n ]),\n colorSwatch,\n h(ReferencesField, { refs: unit.refs, inline: true }),\n ]);\n}\n\nexport function ReferencesField({ refs, className = null, ...rest }) {\n if (refs == null || refs.length === 0) {\n return null;\n }\n\n return h(\n DataField,\n {\n label: \"References\",\n className: classNames(\"refs-field\", className),\n ...rest,\n },\n h(BibInfo, { refs }),\n );\n}\n\nfunction StratNameField({\n strat_name_id,\n onClickItem,\n}: {\n strat_name_id: number;\n onClickItem?: (event: MouseEvent, item: { strat_name_id: number }) => void;\n}) {\n const stratNames = useMemo(() => [strat_name_id], [strat_name_id]);\n const data = useMacrostratData(\"strat_names\", stratNames);\n const stratNameData = data?.[0];\n let inner: any = h(Identifier, { id: strat_name_id });\n const name = stratNameData?.strat_name_long;\n if (name != null) {\n inner = h(\"span.strat-name\", name);\n }\n\n const clickable = onClickItem != null;\n\n const className = classNames({\n clickable,\n });\n\n return h(\n DataField,\n {\n label: \"Stratigraphic name\",\n },\n h(\n clickable ? \"a\" : \"span\",\n {\n className,\n onClick: (e) => onClickItem(e, { strat_name_id }),\n },\n inner,\n ),\n );\n}\n\nfunction getThickness(unit): [string, string] {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n\n if (minThickness == 0 && maxThickness == 0) {\n return [\"Unknown\", null];\n }\n\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n\n if (minThickness == maxThickness) {\n return [formatSignificance(minThickness), _unit];\n }\n\n return [formatRange(minThickness, maxThickness), _unit];\n}\n\nfunction ThicknessField({ unit, label = \"Thickness\" }) {\n const [value, thicknessUnit] = getThickness(unit);\n return h(DataField, {\n label,\n value,\n unit: thicknessUnit,\n });\n}\n\nfunction BibInfo({ refs }) {\n const refData = useMacrostratData(\"refs\", refs);\n\n if (refData == null || refData.length === 0) {\n return null;\n }\n\n if (refData.length == 1) {\n return h(Citation, {\n data: refData[0],\n tag: \"span\",\n key: refData[0].ref_id,\n });\n }\n\n return h(\n \"ul.refs\",\n refData.map((data, i) =>\n h(Citation, { data, tag: \"li\", key: data.ref_id }),\n ),\n );\n}\n\nfunction Citation({ data, tag = \"p\" }) {\n return h(tag, { className: \"citation\" }, [\n h(\"span.authors\", data.author),\n \", \",\n h(\"span.year\", data.pub_year),\n \", \",\n h(\"span.title\", data.ref),\n ]);\n}\n\nfunction AgeField({ unit, children }) {\n const [b_age, t_age, _unit] = getAgeRange(unit);\n\n return h(\n DataField,\n {\n label: \"Age\",\n value: formatRange(b_age, t_age),\n unit: _unit,\n },\n children,\n );\n}\n\nfunction getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n\n return [b_age, t_age, unit];\n}\n\nfunction getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */\n let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n\n return [value, unit];\n}\n\nexport function AgeLabel({\n age,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n className,\n}: {\n age: number;\n className?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n}) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */\n const [value, unit] = getAge(age);\n\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit, className });\n}\n\nexport function Duration({\n value,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n}) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit });\n}\n\nfunction enhanceEnvironments(\n environments: Partial<Environment>[],\n envMap: Map<number, Environment>,\n) {\n return environments.map((env) => {\n return {\n ...(envMap?.get(env.environ_id) ?? {}),\n ...env,\n };\n });\n}\n\nfunction enhanceLithologies(\n lithologies: Partial<UnitLong[\"lith\"]>,\n lithMap: Map<number, any>,\n) {\n return lithologies.map((lith) => {\n return {\n ...(lithMap?.get(lith.lith_id) ?? {}), // get lithology details\n ...lith, // override with the unit's specific lithology data\n };\n });\n}\n\nexport function ClickableText({\n onClick,\n className,\n children,\n}: {\n onClick: () => void;\n className?: string;\n children: ReactNode;\n}) {\n /** An optionally clickable text element */\n const tag = onClick != null ? \"a\" : \"span\";\n return h(tag, { onClick, className }, children);\n}\n\nexport function Identifier({\n id,\n onClick,\n className,\n}: {\n id: number | string;\n onClick?: (id: number | string) => void;\n className?: string;\n}) {\n /** An item that displays a numeric identifier, optionally clickable */\n const _onClick = onClick != null ? () => onClick(id) : null;\n\n return h(\n ClickableText,\n {\n onClick: _onClick,\n className: classNames(\"identifier\", className),\n },\n id,\n );\n}\n\ntype UnitInfo = {\n unitID: number;\n colID?: number;\n name?: string;\n};\n\nfunction UnitIDList({ units, onSelectUnit, showNames = false }) {\n const unitsMap = useColumnUnitsMap();\n\n const extUnits: UnitInfo[] = useMemo(() => {\n const u1 = units.filter((d) => d != 0);\n if (showNames) {\n return u1.map((unitID) => {\n const unitData = unitsMap?.get(unitID);\n let name: string = undefined;\n if (unitData != null) {\n name = defaultNameFunction(unitData);\n }\n return {\n unitID,\n colID: unitData?.col_id,\n name,\n };\n });\n } else {\n return u1.map((unitID) => ({ unitID }));\n }\n }, [units, unitsMap]);\n\n if (extUnits.length === 0) {\n return h(\"span.no-units\", \"None\");\n }\n\n return h(\n ItemList,\n { className: \"units-list\" },\n extUnits.map((info) =>\n h(\"span.item\", h(UnitIdentifier, { ...info, onSelectUnit })),\n ),\n );\n}\n\nfunction UnitIdentifier({\n unitID,\n colID,\n name,\n onSelectUnit,\n}: UnitInfo & { onSelectUnit?: (unitID: number) => void }) {\n const onClick = useMemo(() => {\n if (onSelectUnit == null) return null;\n return () => {\n onSelectUnit(unitID);\n };\n }, [onSelectUnit]);\n\n if (name != null) {\n return h(\n ClickableText,\n {\n className: \"unit-name\",\n onClick,\n },\n name,\n );\n }\n\n return h(Identifier, {\n className: \"unit-id\",\n onClick,\n key: unitID,\n id: unitID,\n });\n}\n\nfunction IntervalProportions({ unit, onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n\n const intervalMap = useMacrostratDefs(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n\n const interval0: IntervalShort = {\n ...int0,\n id: i0,\n name: unit.b_int_name,\n };\n\n let p0: ReactNode = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1: ReactNode = h(Proportion, { value: t_prop });\n\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) {\n // We have a single interval with undefined proportions\n p0 = h(Proportion, { value: b_prop });\n }\n\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) {\n p0 = h(\"span.joint-proportion\", [p0, h(\"span.sep\", \"to\"), p1]);\n }\n\n const clickable = onClickItem != null;\n\n const handleClick = (event: MouseEvent) => {\n if (onClickItem) {\n onClickItem(event, interval0);\n }\n };\n\n return h(\"div.interval-proportions\", [\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0,\n }),\n h.if(i0 != i1)(\"span.discourage-break\", [\n h(\"span.sep\", \"to\"),\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name,\n },\n prefix: p1,\n }),\n ]),\n ]);\n}\n\nconst formatProportion = (d) => {\n if (d == null) return null;\n return d.toFixed(1);\n};\n\nfunction Proportion({ value }) {\n let content = null;\n if (value == 0) {\n content = \"base\";\n } else if (value == 1) {\n content = \"top\";\n } else {\n content = formatProportion(value * 100) + \"%\";\n }\n\n return h(\"span.proportion\", content);\n}\n\nfunction formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) {\n return min.toFixed(precision);\n }\n\n return `${formatSignificance(min, precision)}–${formatSignificance(\n max,\n precision,\n )}`;\n}\n\nfunction formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n\n if (precision == null) {\n return value.toLocaleString();\n }\n if (precision >= 0) {\n return value.toFixed(precision);\n }\n if (precision < 0) {\n return (\n (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision)\n );\n }\n}\n"],"names":[],"version":3,"file":"column-views.218e8f5d.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76} from "./column-views.
|
|
1
|
+
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76} from "./column-views.abf6aedd.js";
|
|
2
2
|
import {line as $iZTQD$line} from "d3-shape";
|
|
3
3
|
import {createContext as $iZTQD$createContext, useContext as $iZTQD$useContext} from "react";
|
|
4
4
|
import $iZTQD$macrostrathyper from "@macrostrat/hyper";
|
|
@@ -83,4 +83,4 @@ const $5f39f3d52558a1d0$export$919dbb10b6b5b75 = ()=>(0, $iZTQD$useContext)($5f3
|
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
export {$5f39f3d52558a1d0$export$309ef8546e07d921 as IsotopesDataArea, $5f39f3d52558a1d0$export$4cb5d059db4e2bd as IsotopeDataPoint, $5f39f3d52558a1d0$export$628a3ef6eb9c3a89 as IsotopeDataLine, $5f39f3d52558a1d0$export$919dbb10b6b5b75 as useDataLocator};
|
|
86
|
-
//# sourceMappingURL=column-views.
|
|
86
|
+
//# sourceMappingURL=column-views.30950997.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;AAMA,MAAM,iCAAW,CAAC,OAAO;IACvB,MAAM,SAAS,MAAM,MAAM;IAC3B,OAAO,MAAM,CAAC,EAAE,GAAG,MAAM,MAAM,CAAC,EAAE;AACpC;AAEA,MAAM,2CAAqB,SAAU,IAAI;IACvC,MAAM,UAAE,MAAM,SAAE,KAAK,aAAE,SAAS,EAAE,GAAG,MAAM,GAAG;IAC9C,OAAO,SAAU,CAAC,EAAE,IAAI,CAAC;QACvB,MAAM,SAAS,UAAU;QACzB,IAAI,CAAC,+BAAS,OAAO,SAAS,OAAO;QACrC,OAAO;YAAC,OAAO,EAAE,KAAK;YAAG,MAAM;SAAQ;IACzC;AACF;AAEA,MAAM,4CAAsB,CAAA,GAAA,oBAAY,EAAE;AAW1C,MAAM,4CAAmB,SAAU,KAAoB;IACrD,MAAM,SAAS,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,0BAAkB,IAAI;IAEhD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,IAAI,aAAE,SAAS,UAAE,MAAM,YAAE,QAAQ,aAAE,SAAS,SAAE,QAAQ,OAAO,GAAG;IAChE,IAAI,aAAa,MACf,YAAY,SAAU,CAAC;QACrB,IAAI,EAAE,MAAM,IAAI,MACd,QAAQ,GAAG,CAAC;QAEd,OAAO,EAAE,MAAM;IACjB;IAGF,yCAAyC;IACzC,MAAM,eAAe,yCAAmB;gBACtC;eACA;mBACA;gBACA;mBACA;IACF;IAEA,IAAI,SAAS,SAAS;IACtB,IAAI,WACF,UAAU;IAEZ,MAAM,cAAc,CAAA,GAAA,WAAG,IACpB,CAAC,CAAC,CAAC,IAAM,OAAO,CAAC,CAAC,OAAO,EAC1B,aAAa;KACZ,CAAC,CAAC,CAAC,IAAM,MAAM,EAAE,MAAM;IAE1B,MAAM,QAAQ;sBAAE;qBAAc;mBAAa;gBAAW;eAAQ;IAAM;IACpE,OAAO,CAAA,GAAA,sBAAA,EAAE,0CAAoB,QAAQ,EAAE;eAAE;IAAM,GAAG,CAAA,GAAA,sBAAA,EAAE,UAAU;AAChE;AAEA,MAAM,2CAAmB,SAAU,KAAK;IACtC,MAAM,gBAAE,YAAY,EAAE,GAAG,CAAA,GAAA,iBAAS,EAAE;IACpC,MAAM,SAAE,KAAK,eAAE,WAAW,EAAE,GAAG,MAAM,GAAG;IACxC,MAAM,MAAM,aAAa;IACzB,IAAI,OAAO,MAAM,OAAO;IACxB,MAAM,CAAC,IAAI,GAAG,GAAG;IAEjB,OAAO,CAAA,GAAA,sBAAA,EAAE,UAAU;QACjB,KAAK,MAAM,SAAS;YACpB;YACA;QACA,GAAG;QACH,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAkB,SAAU,KAAK;IACrC,MAAM,EAAE,QAAQ,UAAU,EAAE,GAAG,MAAM,GAAG;IACxC,MAAM,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,iBAAS,EAAE;IACnC,OAAO,CAAA,GAAA,sBAAA,EAAE,QAAQ;QACf,GAAG,YAAY;QACf,MAAM;QACN,GAAG,IAAI;IACT;AACF;AAEA,MAAM,2CAAiB,IAAM,CAAA,GAAA,iBAAS,EAAE","sources":["packages/column-views/src/facets/carbon-isotopes/data-area.ts"],"sourcesContent":["import { line } from \"d3-shape\";\nimport { createContext, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { ColumnLayoutContext } from \"@macrostrat/column-components\";\nimport { useCompositeScale } from \"../../data-provider\";\n\nconst inDomain = (scale, num) => {\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\n\nconst createPointLocator = function (opts) {\n const { xScale, scale, getHeight, ...rest } = opts;\n return function (d, s = 0) {\n const height = getHeight(d);\n if (!inDomain(scale, height)) return null;\n return [xScale(d.value), scale(height)];\n };\n};\n\nconst IsotopesDataContext = createContext(null);\n\nexport interface DataAreaProps {\n clipY: boolean;\n parameter: string;\n corrected: boolean;\n system: string;\n children: React.ReactNode;\n getHeight?: Function;\n}\n\nconst IsotopesDataArea = function (props: DataAreaProps) {\n const xScale = useContext(ColumnLayoutContext)?.xScale;\n\n const scale = useCompositeScale();\n\n let { corrected, system, children, getHeight, clipY = false } = props;\n if (getHeight == null) {\n getHeight = function (d) {\n if (d.height == null) {\n console.log(d);\n }\n return d.height;\n };\n }\n\n // Handlers for creating points and lines\n const pointLocator = createPointLocator({\n xScale,\n scale,\n corrected,\n system,\n getHeight,\n });\n\n let column = \"avg_\" + system;\n if (corrected) {\n column += \"_corr\";\n }\n const lineLocator = line()\n .x((d) => xScale(d[column]))\n // @ts-ignore\n .y((d) => scale(d.height));\n\n const value = { pointLocator, lineLocator, corrected, system, clipY };\n return h(IsotopesDataContext.Provider, { value }, h(\"g.data\", children));\n};\n\nconst IsotopeDataPoint = function (props) {\n const { pointLocator } = useContext(IsotopesDataContext);\n const { datum, strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n\n return h(\"circle\", {\n key: datum.sample_id,\n cx,\n cy,\n r: 2,\n ...rest,\n });\n};\n\nconst IsotopeDataLine = function (props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator } = useContext(IsotopesDataContext);\n return h(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest,\n });\n};\n\nconst useDataLocator = () => useContext(IsotopesDataContext);\n\nexport { IsotopesDataArea, IsotopeDataPoint, IsotopeDataLine, useDataLocator };\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;;;AAMA,MAAM,iCAAW,CAAC,OAAO;IACvB,MAAM,SAAS,MAAM,MAAM;IAC3B,OAAO,MAAM,CAAC,EAAE,GAAG,MAAM,MAAM,CAAC,EAAE;AACpC;AAEA,MAAM,2CAAqB,SAAU,IAAI;IACvC,MAAM,UAAE,MAAM,SAAE,KAAK,aAAE,SAAS,EAAE,GAAG,MAAM,GAAG;IAC9C,OAAO,SAAU,CAAC,EAAE,IAAI,CAAC;QACvB,MAAM,SAAS,UAAU;QACzB,IAAI,CAAC,+BAAS,OAAO,SAAS,OAAO;QACrC,OAAO;YAAC,OAAO,EAAE,KAAK;YAAG,MAAM;SAAQ;IACzC;AACF;AAEA,MAAM,4CAAsB,CAAA,GAAA,oBAAY,EAAE;AAW1C,MAAM,4CAAmB,SAAU,KAAoB;IACrD,MAAM,SAAS,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,0BAAkB,IAAI;IAEhD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,IAAI,aAAE,SAAS,UAAE,MAAM,YAAE,QAAQ,aAAE,SAAS,SAAE,QAAQ,OAAO,GAAG;IAChE,IAAI,aAAa,MACf,YAAY,SAAU,CAAC;QACrB,IAAI,EAAE,MAAM,IAAI,MACd,QAAQ,GAAG,CAAC;QAEd,OAAO,EAAE,MAAM;IACjB;IAGF,yCAAyC;IACzC,MAAM,eAAe,yCAAmB;gBACtC;eACA;mBACA;gBACA;mBACA;IACF;IAEA,IAAI,SAAS,SAAS;IACtB,IAAI,WACF,UAAU;IAEZ,MAAM,cAAc,CAAA,GAAA,WAAG,IACpB,CAAC,CAAC,CAAC,IAAM,OAAO,CAAC,CAAC,OAAO,EAC1B,aAAa;KACZ,CAAC,CAAC,CAAC,IAAM,MAAM,EAAE,MAAM;IAE1B,MAAM,QAAQ;sBAAE;qBAAc;mBAAa;gBAAW;eAAQ;IAAM;IACpE,OAAO,CAAA,GAAA,sBAAA,EAAE,0CAAoB,QAAQ,EAAE;eAAE;IAAM,GAAG,CAAA,GAAA,sBAAA,EAAE,UAAU;AAChE;AAEA,MAAM,2CAAmB,SAAU,KAAK;IACtC,MAAM,gBAAE,YAAY,EAAE,GAAG,CAAA,GAAA,iBAAS,EAAE;IACpC,MAAM,SAAE,KAAK,eAAE,WAAW,EAAE,GAAG,MAAM,GAAG;IACxC,MAAM,MAAM,aAAa;IACzB,IAAI,OAAO,MAAM,OAAO;IACxB,MAAM,CAAC,IAAI,GAAG,GAAG;IAEjB,OAAO,CAAA,GAAA,sBAAA,EAAE,UAAU;QACjB,KAAK,MAAM,SAAS;YACpB;YACA;QACA,GAAG;QACH,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAkB,SAAU,KAAK;IACrC,MAAM,EAAE,QAAQ,UAAU,EAAE,GAAG,MAAM,GAAG;IACxC,MAAM,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,iBAAS,EAAE;IACnC,OAAO,CAAA,GAAA,sBAAA,EAAE,QAAQ;QACf,GAAG,YAAY;QACf,MAAM;QACN,GAAG,IAAI;IACT;AACF;AAEA,MAAM,2CAAiB,IAAM,CAAA,GAAA,iBAAS,EAAE","sources":["packages/column-views/src/facets/carbon-isotopes/data-area.ts"],"sourcesContent":["import { line } from \"d3-shape\";\nimport { createContext, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { ColumnLayoutContext } from \"@macrostrat/column-components\";\nimport { useCompositeScale } from \"../../data-provider\";\n\nconst inDomain = (scale, num) => {\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\n\nconst createPointLocator = function (opts) {\n const { xScale, scale, getHeight, ...rest } = opts;\n return function (d, s = 0) {\n const height = getHeight(d);\n if (!inDomain(scale, height)) return null;\n return [xScale(d.value), scale(height)];\n };\n};\n\nconst IsotopesDataContext = createContext(null);\n\nexport interface DataAreaProps {\n clipY: boolean;\n parameter: string;\n corrected: boolean;\n system: string;\n children: React.ReactNode;\n getHeight?: Function;\n}\n\nconst IsotopesDataArea = function (props: DataAreaProps) {\n const xScale = useContext(ColumnLayoutContext)?.xScale;\n\n const scale = useCompositeScale();\n\n let { corrected, system, children, getHeight, clipY = false } = props;\n if (getHeight == null) {\n getHeight = function (d) {\n if (d.height == null) {\n console.log(d);\n }\n return d.height;\n };\n }\n\n // Handlers for creating points and lines\n const pointLocator = createPointLocator({\n xScale,\n scale,\n corrected,\n system,\n getHeight,\n });\n\n let column = \"avg_\" + system;\n if (corrected) {\n column += \"_corr\";\n }\n const lineLocator = line()\n .x((d) => xScale(d[column]))\n // @ts-ignore\n .y((d) => scale(d.height));\n\n const value = { pointLocator, lineLocator, corrected, system, clipY };\n return h(IsotopesDataContext.Provider, { value }, h(\"g.data\", children));\n};\n\nconst IsotopeDataPoint = function (props) {\n const { pointLocator } = useContext(IsotopesDataContext);\n const { datum, strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n\n return h(\"circle\", {\n key: datum.sample_id,\n cx,\n cy,\n r: 2,\n ...rest,\n });\n};\n\nconst IsotopeDataLine = function (props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator } = useContext(IsotopesDataContext);\n return h(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest,\n });\n};\n\nconst useDataLocator = () => useContext(IsotopesDataContext);\n\nexport { IsotopesDataArea, IsotopeDataPoint, IsotopeDataLine, useDataLocator };\n"],"names":[],"version":3,"file":"column-views.30950997.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-views.
|
|
1
|
+
import {useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-views.6d63971b.js";
|
|
2
2
|
import {buildColumnsStyle as $1dbfddc9637b572c$export$d2995719c3a4ae17} from "./column-views.633c42a3.js";
|
|
3
3
|
import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0} from "./column-views.3de4dc43.js";
|
|
4
4
|
import {useMapClickHandler as $6wt91$useMapClickHandler, useMapStyleOperator as $6wt91$useMapStyleOperator, useMapEaseTo as $6wt91$useMapEaseTo} from "@macrostrat/mapbox-react";
|
|
@@ -196,4 +196,4 @@ function $dcd183b733f66144$var$SectionLine({ padding: padding }) {
|
|
|
196
196
|
|
|
197
197
|
|
|
198
198
|
export {$dcd183b733f66144$export$8e7d97509e84cc49 as ColumnCorrelationMap};
|
|
199
|
-
//# sourceMappingURL=column-views.
|
|
199
|
+
//# sourceMappingURL=column-views.35efe006.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/column-views/src/maps/column-correlation/core.ts"],"sourcesContent":["import {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds, Style } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON, buildGeoJSONSource } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport { buildColumnsStyle, InsetMap, InsetMapProps } from \"../_shared\";\nimport { buildCrossSectionLayers } from \"@macrostrat/map-styles\";\n\nexport interface CorrelationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n columnColor?: string;\n}\n\nexport function ColumnCorrelationMap(props: CorrelationMapProps) {\n const { padding = 50, children, columnColor, ...rest } = props;\n\n const overlayStyles: Partial<Style>[] = useMemo(() => {\n return [\n buildColumnsStyle(columnColor) as Style,\n selectedColumnsStyle as Style,\n lineOfSectionStyle as Style,\n ];\n }, [columnColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n h(SelectedColumnsLayer),\n h(MapClickHandler),\n h(SectionLine, { padding }),\n children,\n ],\n );\n}\n\nfunction MapClickHandler() {\n const onClickMap = useCorrelationMapStore((state) => state.onClickMap);\n\n useMapClickHandler(\n (e) => {\n onClickMap(e, { type: \"Point\", coordinates: e.lngLat.toArray() });\n },\n [onClickMap],\n );\n\n return null;\n}\n\nfunction SelectedColumnsLayer() {\n const focusedColumns = useCorrelationMapStore(\n (state) => state.focusedColumns,\n );\n\n useMapStyleOperator(\n (map) => {\n let features = focusedColumns;\n\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features,\n };\n\n const columnCentroidLine: Feature = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map(\n (col) => col.properties.centroid.geometry.coordinates,\n ),\n },\n properties: {},\n };\n\n setGeoJSON(map, \"selected-columns\", data);\n setGeoJSON(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [columnCentroidLine],\n });\n },\n [focusedColumns],\n );\n return null;\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useCorrelationMapStore((state) => state.columns);\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n console.log(\" columns\", data);\n setGeoJSON(map, \"columns\", data);\n },\n [columns, enabled],\n );\n return null;\n}\n\nconst selectedColumnsStyle: Style = {\n version: 8,\n sources: {\n \"selected-columns\": buildGeoJSONSource(),\n \"selected-column-centroids\": buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\",\n },\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [2, 2],\n },\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\",\n },\n },\n ],\n};\n\nconst lineOfSectionStyle: Style = {\n version: 8,\n sources: {\n elevationMarker: buildGeoJSONSource(),\n crossSectionLine: buildGeoJSONSource(),\n crossSectionEndpoints: buildGeoJSONSource(),\n },\n layers: buildCrossSectionLayers(),\n};\n\nfunction SectionLine({ padding }: { padding: number }) {\n const focusedLine = useCorrelationMapStore((state) => state.focusedLine);\n\n // Setup focused line\n useMapStyleOperator(\n (map) => {\n if (focusedLine == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: { id: \"focusedLine\" },\n },\n ],\n };\n\n setGeoJSON(map, \"crossSectionLine\", data);\n setGeoJSON(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord) => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: coord },\n properties: {},\n })),\n });\n },\n [focusedLine],\n );\n\n const bounds = useMemo(() => {\n if (focusedLine == null || focusedLine?.coordinates.length < 2) {\n return null;\n }\n let bounds = new LngLatBounds();\n for (let coord of focusedLine.coordinates) {\n bounds.extend(coord);\n }\n return bounds;\n }, [focusedLine]);\n\n useMapEaseTo({ bounds, padding, trackResize: true });\n\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/maps/column-correlation/core.ts"],"sourcesContent":["import {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds, Style } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON, buildGeoJSONSource } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport { buildColumnsStyle, InsetMap, InsetMapProps } from \"../_shared\";\nimport { buildCrossSectionLayers } from \"@macrostrat/map-styles\";\n\nexport interface CorrelationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n columnColor?: string;\n}\n\nexport function ColumnCorrelationMap(props: CorrelationMapProps) {\n const { padding = 50, children, columnColor, ...rest } = props;\n\n const overlayStyles: Partial<Style>[] = useMemo(() => {\n return [\n buildColumnsStyle(columnColor) as Style,\n selectedColumnsStyle as Style,\n lineOfSectionStyle as Style,\n ];\n }, [columnColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n h(SelectedColumnsLayer),\n h(MapClickHandler),\n h(SectionLine, { padding }),\n children,\n ],\n );\n}\n\nfunction MapClickHandler() {\n const onClickMap = useCorrelationMapStore((state) => state.onClickMap);\n\n useMapClickHandler(\n (e) => {\n onClickMap(e, { type: \"Point\", coordinates: e.lngLat.toArray() });\n },\n [onClickMap],\n );\n\n return null;\n}\n\nfunction SelectedColumnsLayer() {\n const focusedColumns = useCorrelationMapStore(\n (state) => state.focusedColumns,\n );\n\n useMapStyleOperator(\n (map) => {\n let features = focusedColumns;\n\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features,\n };\n\n const columnCentroidLine: Feature = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map(\n (col) => col.properties.centroid.geometry.coordinates,\n ),\n },\n properties: {},\n };\n\n setGeoJSON(map, \"selected-columns\", data);\n setGeoJSON(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [columnCentroidLine],\n });\n },\n [focusedColumns],\n );\n return null;\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useCorrelationMapStore((state) => state.columns);\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n console.log(\" columns\", data);\n setGeoJSON(map, \"columns\", data);\n },\n [columns, enabled],\n );\n return null;\n}\n\nconst selectedColumnsStyle: Style = {\n version: 8,\n sources: {\n \"selected-columns\": buildGeoJSONSource(),\n \"selected-column-centroids\": buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\",\n },\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [2, 2],\n },\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\",\n },\n },\n ],\n};\n\nconst lineOfSectionStyle: Style = {\n version: 8,\n sources: {\n elevationMarker: buildGeoJSONSource(),\n crossSectionLine: buildGeoJSONSource(),\n crossSectionEndpoints: buildGeoJSONSource(),\n },\n layers: buildCrossSectionLayers(),\n};\n\nfunction SectionLine({ padding }: { padding: number }) {\n const focusedLine = useCorrelationMapStore((state) => state.focusedLine);\n\n // Setup focused line\n useMapStyleOperator(\n (map) => {\n if (focusedLine == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: { id: \"focusedLine\" },\n },\n ],\n };\n\n setGeoJSON(map, \"crossSectionLine\", data);\n setGeoJSON(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord) => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: coord },\n properties: {},\n })),\n });\n },\n [focusedLine],\n );\n\n const bounds = useMemo(() => {\n if (focusedLine == null || focusedLine?.coordinates.length < 2) {\n return null;\n }\n let bounds = new LngLatBounds();\n for (let coord of focusedLine.coordinates) {\n bounds.extend(coord);\n }\n return bounds;\n }, [focusedLine]);\n\n useMapEaseTo({ bounds, padding, trackResize: true });\n\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.35efe006.js.map"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {PBDBFossilsColumn as $b9286605a04210d4$export$554267114407ef68, PBDBOccurrencesMatrix as $b9286605a04210d4$export$652730986cccff7a, FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57} from "./column-views.
|
|
2
|
-
import {DetritalColumn as $715dd5fedd79146a$export$f176396e104db8d5, DetritalGroup as $715dd5fedd79146a$export$1b3047373cd1c8c7} from "./column-views.
|
|
3
|
-
import {IsotopesDataset as $d71d096cfe00860f$export$c69bd0285aa5d775, IsotopesColumn as $d71d096cfe00860f$export$5d8aa8022c284748, MeasurementDataContext as $5dbb619f2c7bef60$export$c644ef985ce7a4c4, MeasurementDataProvider as $5dbb619f2c7bef60$export$5f01d5b342a89841, useMeasurementData as $5dbb619f2c7bef60$export$8a0335fd9ff72150} from "./column-views.
|
|
4
|
-
import {SGPMeasurementsColumn as $6ff130029901daab$export$c49cf57576706bab} from "./column-views.
|
|
5
|
-
import {BaseMeasurementsColumn as $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d, TruncatedList as $c6d9d48b3424a44c$export$653e47a7a0da0f0d} from "./column-views.
|
|
1
|
+
import {PBDBFossilsColumn as $b9286605a04210d4$export$554267114407ef68, PBDBOccurrencesMatrix as $b9286605a04210d4$export$652730986cccff7a, FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57} from "./column-views.d6d6df77.js";
|
|
2
|
+
import {DetritalColumn as $715dd5fedd79146a$export$f176396e104db8d5, DetritalGroup as $715dd5fedd79146a$export$1b3047373cd1c8c7} from "./column-views.76a220c4.js";
|
|
3
|
+
import {IsotopesDataset as $d71d096cfe00860f$export$c69bd0285aa5d775, IsotopesColumn as $d71d096cfe00860f$export$5d8aa8022c284748, MeasurementDataContext as $5dbb619f2c7bef60$export$c644ef985ce7a4c4, MeasurementDataProvider as $5dbb619f2c7bef60$export$5f01d5b342a89841, useMeasurementData as $5dbb619f2c7bef60$export$8a0335fd9ff72150} from "./column-views.5456a1ee.js";
|
|
4
|
+
import {SGPMeasurementsColumn as $6ff130029901daab$export$c49cf57576706bab} from "./column-views.7243e77d.js";
|
|
5
|
+
import {BaseMeasurementsColumn as $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d, TruncatedList as $c6d9d48b3424a44c$export$653e47a7a0da0f0d} from "./column-views.1e579112.js";
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -12,4 +12,4 @@ import {BaseMeasurementsColumn as $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d, Tru
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
export {$b9286605a04210d4$export$554267114407ef68 as PBDBFossilsColumn, $b9286605a04210d4$export$652730986cccff7a as PBDBOccurrencesMatrix, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $715dd5fedd79146a$export$f176396e104db8d5 as DetritalColumn, $715dd5fedd79146a$export$1b3047373cd1c8c7 as DetritalGroup, $d71d096cfe00860f$export$c69bd0285aa5d775 as IsotopesDataset, $d71d096cfe00860f$export$5d8aa8022c284748 as IsotopesColumn, $5dbb619f2c7bef60$export$c644ef985ce7a4c4 as MeasurementDataContext, $5dbb619f2c7bef60$export$5f01d5b342a89841 as MeasurementDataProvider, $5dbb619f2c7bef60$export$8a0335fd9ff72150 as useMeasurementData, $6ff130029901daab$export$c49cf57576706bab as SGPMeasurementsColumn, $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $c6d9d48b3424a44c$export$653e47a7a0da0f0d as TruncatedList};
|
|
15
|
-
//# sourceMappingURL=column-views.
|
|
15
|
+
//# sourceMappingURL=column-views.43beafa3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"","sources":["packages/column-views/src/facets/index.ts"],"sourcesContent":["export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\nexport * from \"./base-sample-column\";\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":"","sources":["packages/column-views/src/facets/index.ts"],"sourcesContent":["export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\nexport * from \"./base-sample-column\";\n"],"names":[],"version":3,"file":"column-views.43beafa3.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {CorrelationChart as $ed7dc56184962590$export$9ebf875c09445bec} from "./column-views.
|
|
1
|
+
import {CorrelationChart as $ed7dc56184962590$export$9ebf875c09445bec} from "./column-views.ee525e88.js";
|
|
2
2
|
import {parseLineFromString as $c491b6231216b7f9$export$77c3cc7a57c6db5f, stringifyLine as $c491b6231216b7f9$export$8c53992169ff5301} from "./column-views.beb54e95.js";
|
|
3
3
|
|
|
4
4
|
|
|
@@ -6,4 +6,4 @@ import {parseLineFromString as $c491b6231216b7f9$export$77c3cc7a57c6db5f, string
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
export {$ed7dc56184962590$export$9ebf875c09445bec as CorrelationChart, $c491b6231216b7f9$export$77c3cc7a57c6db5f as parseLineFromString, $c491b6231216b7f9$export$8c53992169ff5301 as stringifyLine};
|
|
9
|
-
//# sourceMappingURL=column-views.
|
|
9
|
+
//# sourceMappingURL=column-views.44d3797a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"","sources":["packages/column-views/src/correlation-chart/index.ts"],"sourcesContent":["export * from \"./main\";\nexport * from \"./hash-string\";\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":"","sources":["packages/column-views/src/correlation-chart/index.ts"],"sourcesContent":["export * from \"./main\";\nexport * from \"./hash-string\";\n"],"names":[],"version":3,"file":"column-views.44d3797a.js.map"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import $bTsJU$columnviewscc733361js from "./column-views.cc733361.js";
|
|
2
|
-
import "./column-views.
|
|
3
|
-
import {UnitComponent as $4c8184c4a7317749$export$48a4cacf2b7a4441} from "./column-views.
|
|
4
|
-
import {MacrostratColumnDataProvider as $d5074f164411387e$export$7fec7bd80ff9c10e, useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.
|
|
5
|
-
import {UnitKeyboardNavigation as $61771df184788970$export$70f5ee19650fc7d1, UnitSelectionProvider as $61771df184788970$export$f19d75b1d4b676a4, useUnitSelectionDispatch as $61771df184788970$export$77a278d5ca56e309} from "./column-views.
|
|
6
|
-
import {Identifier as $448b24baeef3b229$export$989167234458594d, ReferencesField as $448b24baeef3b229$export$895d4931dd696e25} from "./column-views.
|
|
7
|
-
import {UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.
|
|
8
|
-
import {CompositeTimescale as $7d0f52717c0de7e1$export$db2df5a73a6fbe10, SectionsColumn as $7d0f52717c0de7e1$export$38cb0ab5af8f50d7} from "./column-views.
|
|
9
|
-
import {ApproximateHeightAxis as $43794af7643cdf40$export$82731b9607850ca6, CompositeAgeAxis as $43794af7643cdf40$export$40b6b0e4520eeb34} from "./column-views.
|
|
2
|
+
import "./column-views.e93478c3.css";
|
|
3
|
+
import {UnitComponent as $4c8184c4a7317749$export$48a4cacf2b7a4441} from "./column-views.058c0083.js";
|
|
4
|
+
import {MacrostratColumnDataProvider as $d5074f164411387e$export$7fec7bd80ff9c10e, useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.abf6aedd.js";
|
|
5
|
+
import {UnitKeyboardNavigation as $61771df184788970$export$70f5ee19650fc7d1, UnitSelectionProvider as $61771df184788970$export$f19d75b1d4b676a4, useUnitSelectionDispatch as $61771df184788970$export$77a278d5ca56e309} from "./column-views.c44febd0.js";
|
|
6
|
+
import {Identifier as $448b24baeef3b229$export$989167234458594d, ReferencesField as $448b24baeef3b229$export$895d4931dd696e25} from "./column-views.218e8f5d.js";
|
|
7
|
+
import {UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.729a6728.js";
|
|
8
|
+
import {CompositeTimescale as $7d0f52717c0de7e1$export$db2df5a73a6fbe10, SectionsColumn as $7d0f52717c0de7e1$export$38cb0ab5af8f50d7} from "./column-views.7b4a1f15.js";
|
|
9
|
+
import {ApproximateHeightAxis as $43794af7643cdf40$export$82731b9607850ca6, CompositeAgeAxis as $43794af7643cdf40$export$40b6b0e4520eeb34} from "./column-views.9dd25b5b.js";
|
|
10
10
|
import {HybridScaleType as $1254c5929638d7f9$export$45e8e2d7a1794c23} from "./column-views.079119f4.js";
|
|
11
11
|
import {usePreparedColumnUnits as $76e92a964ee11b97$export$206a0cb85295e433} from "./column-views.3a7179c4.js";
|
|
12
12
|
import {ColumnAxisType as $bTsJU$ColumnAxisType} from "@macrostrat/column-components";
|
|
@@ -116,8 +116,13 @@ function $2118f0266dc7e955$var$ColumnInner(props) {
|
|
|
116
116
|
"--column-padding-left": `${padding.paddingLeft}px`,
|
|
117
117
|
"--column-padding-right": `${padding.paddingRight}px`
|
|
118
118
|
};
|
|
119
|
-
const { unitComponent: unitComponent = (0, $4c8184c4a7317749$export$48a4cacf2b7a4441), unconformityLabels: unconformityLabels =
|
|
119
|
+
const { unitComponent: unitComponent = (0, $4c8184c4a7317749$export$48a4cacf2b7a4441), unconformityLabels: unconformityLabels = "minimal", showLabels: showLabels = true, width: _width = 300, columnWidth: _columnWidth = 150, showLabelColumn: _showLabelColumn = true, className: className, columnRef: columnRef, clipUnits: clipUnits = false, children: children, showTimescale: showTimescale, timescaleLevels: timescaleLevels, maxInternalColumns: maxInternalColumns, onMouseOver: onMouseOver, ageAxisComponent: ageAxisComponent = (0, $43794af7643cdf40$export$40b6b0e4520eeb34) } = props;
|
|
120
120
|
const { axisType: axisType } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
|
|
121
|
+
// Coalesce unconformity label setting to a boolean
|
|
122
|
+
let _timescaleUnconformityLabels = false;
|
|
123
|
+
let _sectionUnconformityLabels = false;
|
|
124
|
+
if (unconformityLabels === true || unconformityLabels === "prominent") _sectionUnconformityLabels = true;
|
|
125
|
+
else if (unconformityLabels === "minimal") _timescaleUnconformityLabels = true;
|
|
121
126
|
let width = _width;
|
|
122
127
|
let columnWidth = _columnWidth;
|
|
123
128
|
if (columnWidth > width) columnWidth = width;
|
|
@@ -135,7 +140,8 @@ function $2118f0266dc7e955$var$ColumnInner(props) {
|
|
|
135
140
|
}, [
|
|
136
141
|
$2118f0266dc7e955$var$h(ageAxisComponent),
|
|
137
142
|
$2118f0266dc7e955$var$h.if(_showTimescale)((0, $7d0f52717c0de7e1$export$db2df5a73a6fbe10), {
|
|
138
|
-
levels: timescaleLevels
|
|
143
|
+
levels: timescaleLevels,
|
|
144
|
+
unconformityLabels: _timescaleUnconformityLabels
|
|
139
145
|
}),
|
|
140
146
|
$2118f0266dc7e955$var$h((0, $7d0f52717c0de7e1$export$38cb0ab5af8f50d7), {
|
|
141
147
|
unitComponent: unitComponent,
|
|
@@ -144,7 +150,7 @@ function $2118f0266dc7e955$var$ColumnInner(props) {
|
|
|
144
150
|
columnWidth: columnWidth,
|
|
145
151
|
showLabelColumn: showLabelColumn,
|
|
146
152
|
clipUnits: clipUnits,
|
|
147
|
-
unconformityLabels:
|
|
153
|
+
unconformityLabels: _sectionUnconformityLabels,
|
|
148
154
|
maxInternalColumns: maxInternalColumns
|
|
149
155
|
}),
|
|
150
156
|
children
|
|
@@ -194,7 +200,7 @@ function $2118f0266dc7e955$export$2194471aa3d52446(props) {
|
|
|
194
200
|
...rest
|
|
195
201
|
});
|
|
196
202
|
}
|
|
197
|
-
function $2118f0266dc7e955$export$fcdf79c491a4504f({ data: data, showColumnID: showColumnID = true }) {
|
|
203
|
+
function $2118f0266dc7e955$export$fcdf79c491a4504f({ data: data, showColumnID: showColumnID = true, showReferences: showReferences = true }) {
|
|
198
204
|
if (data == null) return null;
|
|
199
205
|
return $2118f0266dc7e955$var$h("div.column-info", [
|
|
200
206
|
$2118f0266dc7e955$var$h("div.column-title-row", [
|
|
@@ -208,10 +214,10 @@ function $2118f0266dc7e955$export$fcdf79c491a4504f({ data: data, showColumnID: s
|
|
|
208
214
|
label: "Group",
|
|
209
215
|
value: data.col_group
|
|
210
216
|
}),
|
|
211
|
-
$2118f0266dc7e955$var$h((0, $448b24baeef3b229$export$895d4931dd696e25), {
|
|
217
|
+
$2118f0266dc7e955$var$h.if(showReferences)((0, $448b24baeef3b229$export$895d4931dd696e25), {
|
|
212
218
|
refs: data.refs,
|
|
213
219
|
inline: false,
|
|
214
|
-
row:
|
|
220
|
+
row: false,
|
|
215
221
|
className: "column-refs"
|
|
216
222
|
})
|
|
217
223
|
]);
|
|
@@ -219,4 +225,4 @@ function $2118f0266dc7e955$export$fcdf79c491a4504f({ data: data, showColumnID: s
|
|
|
219
225
|
|
|
220
226
|
|
|
221
227
|
export {$2118f0266dc7e955$export$816b5d811295e6bc as Column, $2118f0266dc7e955$export$2194471aa3d52446 as ColumnContainer, $2118f0266dc7e955$export$fcdf79c491a4504f as ColumnBasicInfo};
|
|
222
|
-
//# sourceMappingURL=column-views.
|
|
228
|
+
//# sourceMappingURL=column-views.52ad973a.js.map
|