@macrostrat/column-views 2.2.2 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/esm/{column-views.b0e6c0b3.js → column-views.04636815.js} +3 -3
- package/dist/esm/{column-views.b0e6c0b3.js.map → column-views.04636815.js.map} +1 -1
- package/dist/esm/{column-views.54f8b909.js → column-views.052498a6.js} +37 -4
- package/dist/esm/column-views.052498a6.js.map +1 -0
- package/dist/esm/{column-views.5456a1ee.js → column-views.0da4503a.js} +2 -2
- package/dist/esm/{column-views.5456a1ee.js.map → column-views.0da4503a.js.map} +1 -1
- package/dist/esm/{column-views.ee525e88.js → column-views.107b47b4.js} +8 -8
- package/dist/esm/{column-views.ee525e88.js.map → column-views.107b47b4.js.map} +1 -1
- package/dist/esm/column-views.17a70358.js +16 -0
- package/dist/esm/column-views.17a70358.js.map +1 -0
- package/dist/esm/{column-views.073c42da.js → column-views.1b5bf0c6.js} +3 -3
- package/dist/esm/{column-views.073c42da.js.map → column-views.1b5bf0c6.js.map} +1 -1
- package/dist/esm/{column-views.52ad973a.js → column-views.2708e176.js} +8 -8
- package/dist/esm/column-views.2708e176.js.map +1 -0
- package/dist/esm/{column-views.88d63dd0.js → column-views.275ba52b.js} +3 -3
- package/dist/esm/{column-views.88d63dd0.js.map → column-views.275ba52b.js.map} +1 -1
- package/dist/esm/{column-views.7c95c3d7.js → column-views.2bac03a2.js} +2 -2
- package/dist/esm/{column-views.7c95c3d7.js.map → column-views.2bac03a2.js.map} +1 -1
- package/dist/esm/column-views.2c45a7b5.js.map +1 -1
- package/dist/esm/column-views.322790f3.js +138 -0
- package/dist/esm/column-views.322790f3.js.map +1 -0
- package/dist/esm/{column-views.6698b95a.js → column-views.343fc926.js} +9 -18
- package/dist/esm/column-views.343fc926.js.map +1 -0
- package/dist/esm/{column-views.aeb61926.js → column-views.3d3e00be.js} +2 -2
- package/dist/esm/{column-views.aeb61926.js.map → column-views.3d3e00be.js.map} +1 -1
- package/dist/esm/{column-views.7d69838d.js → column-views.40094dd9.js} +3 -3
- package/dist/esm/{column-views.7d69838d.js.map → column-views.40094dd9.js.map} +1 -1
- package/dist/esm/{column-views.d2214a99.js → column-views.44373a90.js} +8 -7
- package/dist/esm/column-views.44373a90.js.map +1 -0
- package/dist/esm/column-views.479f68bd.js +152 -0
- package/dist/esm/column-views.479f68bd.js.map +1 -0
- package/dist/esm/{column-views.ad080c0e.js → column-views.488f24b6.js} +2 -2
- package/dist/esm/{column-views.ad080c0e.js.map → column-views.488f24b6.js.map} +1 -1
- package/dist/esm/{column-views.abf6aedd.js → column-views.4b259f9e.js} +2 -2
- package/dist/esm/{column-views.abf6aedd.js.map → column-views.4b259f9e.js.map} +1 -1
- package/dist/esm/{column-views.1151416d.css → column-views.54c1f382.css} +6 -5
- package/dist/esm/column-views.54c1f382.css.map +1 -0
- package/dist/esm/{column-views.729a6728.js → column-views.565b193a.js} +2 -2
- package/dist/esm/{column-views.729a6728.js.map → column-views.565b193a.js.map} +1 -1
- package/dist/esm/{column-views.058c0083.js → column-views.5ca2b219.js} +5 -5
- package/dist/esm/{column-views.058c0083.js.map → column-views.5ca2b219.js.map} +1 -1
- package/dist/esm/{column-views.218e8f5d.js → column-views.5eb4e6ff.js} +4 -4
- package/dist/esm/{column-views.218e8f5d.js.map → column-views.5eb4e6ff.js.map} +1 -1
- package/dist/esm/{column-views.11ae78f7.js → column-views.5fff0716.js} +3 -3
- package/dist/esm/{column-views.11ae78f7.js.map → column-views.5fff0716.js.map} +1 -1
- package/dist/esm/{column-views.05586d1f.js → column-views.60e97132.js} +2 -4
- package/dist/esm/column-views.60e97132.js.map +1 -0
- package/dist/esm/{column-views.75e5aebe.js → column-views.63d40878.js} +4 -4
- package/dist/esm/{column-views.75e5aebe.js.map → column-views.63d40878.js.map} +1 -1
- package/dist/esm/{column-views.d6d6df77.js → column-views.6c9e5069.js} +40 -62
- package/dist/esm/column-views.6c9e5069.js.map +1 -0
- package/dist/esm/column-views.6df65dab.js +9 -0
- package/dist/esm/column-views.6df65dab.js.map +1 -0
- package/dist/esm/{column-views.403a7b48.css → column-views.6f9511d1.css} +2 -1
- package/dist/esm/column-views.6f9511d1.css.map +1 -0
- package/dist/esm/column-views.7fa0d026.js +62 -0
- package/dist/esm/column-views.7fa0d026.js.map +1 -0
- package/dist/esm/{column-views.3a7179c4.js → column-views.82eb5026.js} +12 -7
- package/dist/esm/column-views.82eb5026.js.map +1 -0
- package/dist/esm/{column-views.9dd25b5b.js → column-views.92575b87.js} +3 -3
- package/dist/esm/column-views.92575b87.js.map +1 -0
- package/dist/esm/{column-views.833c2b74.js → column-views.9d51a5ab.js} +3 -3
- package/dist/esm/{column-views.833c2b74.js.map → column-views.9d51a5ab.js.map} +1 -1
- package/dist/esm/{column-views.817752b6.js → column-views.9ffc089b.js} +3 -3
- package/dist/esm/{column-views.817752b6.js.map → column-views.9ffc089b.js.map} +1 -1
- package/dist/esm/{column-views.70164236.js → column-views.aa9ede4d.js} +2 -2
- package/dist/esm/{column-views.70164236.js.map → column-views.aa9ede4d.js.map} +1 -1
- package/dist/esm/{column-views.6d63971b.js → column-views.ad2fe46c.js} +2 -2
- package/dist/esm/{column-views.6d63971b.js.map → column-views.ad2fe46c.js.map} +1 -1
- package/dist/esm/{column-views.7b4a1f15.js → column-views.afe0bb48.js} +5 -5
- package/dist/esm/{column-views.7b4a1f15.js.map → column-views.afe0bb48.js.map} +1 -1
- package/dist/esm/{column-views.aecf25bc.js → column-views.b4e1236d.js} +2 -2
- package/dist/esm/{column-views.aecf25bc.js.map → column-views.b4e1236d.js.map} +1 -1
- package/dist/esm/{column-views.6ce8cb61.js → column-views.c149f7a5.js} +3 -3
- package/dist/esm/{column-views.6ce8cb61.js.map → column-views.c149f7a5.js.map} +1 -1
- package/dist/esm/{column-views.b7016f82.css → column-views.cb6fc808.css} +10 -10
- package/dist/esm/column-views.cb6fc808.css.map +1 -0
- package/dist/esm/{column-views.35efe006.js → column-views.ce3a3ac8.js} +2 -2
- package/dist/esm/{column-views.35efe006.js.map → column-views.ce3a3ac8.js.map} +1 -1
- package/dist/esm/{column-views.77e22590.js → column-views.d1b49f5c.js} +2 -2
- package/dist/esm/{column-views.77e22590.js.map → column-views.d1b49f5c.js.map} +1 -1
- package/dist/esm/{column-views.faa4e06d.js → column-views.d524075b.js} +4 -4
- package/dist/esm/{column-views.faa4e06d.js.map → column-views.d524075b.js.map} +1 -1
- package/dist/esm/column-views.d5e788e8.js +31 -0
- package/dist/esm/column-views.d5e788e8.js.map +1 -0
- package/dist/esm/{column-views.30950997.js → column-views.d6c0b7bc.js} +2 -2
- package/dist/esm/{column-views.30950997.js.map → column-views.d6c0b7bc.js.map} +1 -1
- package/dist/esm/{column-views.44d3797a.js → column-views.dc195174.js} +2 -2
- package/dist/esm/{column-views.44d3797a.js.map → column-views.dc195174.js.map} +1 -1
- package/dist/esm/column-views.de433f18.js +139 -0
- package/dist/esm/column-views.de433f18.js.map +1 -0
- package/dist/esm/{column-views.ef88c46c.js → column-views.e075af15.js} +2 -2
- package/dist/esm/{column-views.ef88c46c.js.map → column-views.e075af15.js.map} +1 -1
- package/dist/esm/{column-views.7faf00ed.js → column-views.f7cdf6be.js} +3 -3
- package/dist/esm/{column-views.7faf00ed.js.map → column-views.f7cdf6be.js.map} +1 -1
- package/dist/esm/{column-views.66ccfc44.js → column-views.faa7e52e.js} +3 -3
- package/dist/esm/{column-views.66ccfc44.js.map → column-views.faa7e52e.js.map} +1 -1
- package/dist/esm/column-views.fba36cbb.js +13 -0
- package/dist/esm/{column-views.43beafa3.js.map → column-views.fba36cbb.js.map} +1 -1
- package/dist/esm/index.d.ts +40 -19
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +12 -12
- package/dist/node/column-views.012fa10c.js +2 -0
- package/dist/node/column-views.012fa10c.js.map +1 -0
- package/dist/node/{column-views.edb4ba54.js → column-views.021a6961.js} +2 -2
- package/dist/node/{column-views.edb4ba54.js.map → column-views.021a6961.js.map} +1 -1
- package/dist/node/{column-views.a19be00f.js → column-views.08bef1f6.js} +2 -2
- package/dist/node/{column-views.a19be00f.js.map → column-views.08bef1f6.js.map} +1 -1
- package/dist/node/{column-views.ae22e8b1.js → column-views.0f401891.js} +2 -2
- package/dist/node/{column-views.ae22e8b1.js.map → column-views.0f401891.js.map} +1 -1
- package/dist/node/column-views.1d064426.js +2 -0
- package/dist/node/column-views.1d064426.js.map +1 -0
- package/dist/node/{column-views.ae54d3e1.js → column-views.2577dec0.js} +2 -2
- package/dist/node/{column-views.ae54d3e1.js.map → column-views.2577dec0.js.map} +1 -1
- package/dist/node/{column-views.1ac9e2ed.js → column-views.2fe8feb9.js} +2 -2
- package/dist/node/{column-views.1ac9e2ed.js.map → column-views.2fe8feb9.js.map} +1 -1
- package/dist/node/column-views.3a079e34.css +2 -0
- package/dist/node/column-views.3a079e34.css.map +1 -0
- package/dist/node/{column-views.a281d5bb.js → column-views.42bc66a8.js} +2 -2
- package/dist/node/{column-views.a281d5bb.js.map → column-views.42bc66a8.js.map} +1 -1
- package/dist/node/{column-views.4ce5f5e4.js → column-views.465e593b.js} +2 -2
- package/dist/node/{column-views.4ce5f5e4.js.map → column-views.465e593b.js.map} +1 -1
- package/dist/node/{column-views.e1813308.js → column-views.46efb749.js} +2 -2
- package/dist/node/{column-views.e1813308.js.map → column-views.46efb749.js.map} +1 -1
- package/dist/node/{column-views.61dc64bc.js → column-views.47440961.js} +2 -2
- package/dist/node/{column-views.61dc64bc.js.map → column-views.47440961.js.map} +1 -1
- package/dist/node/{column-views.38835c99.js → column-views.5559de6a.js} +2 -2
- package/dist/node/{column-views.38835c99.js.map → column-views.5559de6a.js.map} +1 -1
- package/dist/node/{column-views.52cc4dd0.js → column-views.56f88b8c.js} +2 -2
- package/dist/node/{column-views.52cc4dd0.js.map → column-views.56f88b8c.js.map} +1 -1
- package/dist/node/{column-views.0b3a384e.js → column-views.5a9331a9.js} +2 -2
- package/dist/node/{column-views.0b3a384e.js.map → column-views.5a9331a9.js.map} +1 -1
- package/dist/node/column-views.5cb51833.js +2 -0
- package/dist/node/column-views.5cb51833.js.map +1 -0
- package/dist/node/column-views.5fd6e11a.js +2 -0
- package/dist/node/column-views.5fd6e11a.js.map +1 -0
- package/dist/node/column-views.672b683c.js +2 -0
- package/dist/node/column-views.672b683c.js.map +1 -0
- package/dist/node/{column-views.a08b0c9f.js → column-views.6c7f9245.js} +2 -2
- package/dist/node/{column-views.a08b0c9f.js.map → column-views.6c7f9245.js.map} +1 -1
- package/dist/node/{column-views.67fed1f5.js → column-views.75456275.js} +2 -2
- package/dist/node/{column-views.67fed1f5.js.map → column-views.75456275.js.map} +1 -1
- package/dist/node/column-views.75ba0464.css +2 -0
- package/dist/node/column-views.75ba0464.css.map +1 -0
- package/dist/node/{column-views.21a73236.js → column-views.7c322202.js} +2 -2
- package/dist/node/{column-views.21a73236.js.map → column-views.7c322202.js.map} +1 -1
- package/dist/node/column-views.7cc1a14f.js +2 -0
- package/dist/node/column-views.7cc1a14f.js.map +1 -0
- package/dist/node/{column-views.7faaf6c8.js → column-views.8e846c57.js} +2 -2
- package/dist/node/{column-views.7faaf6c8.js.map → column-views.8e846c57.js.map} +1 -1
- package/dist/node/{column-views.003348f6.js → column-views.8ee8469d.js} +2 -2
- package/dist/node/{column-views.003348f6.js.map → column-views.8ee8469d.js.map} +1 -1
- package/dist/node/{column-views.420b60d2.js → column-views.93bde6c1.js} +2 -2
- package/dist/node/{column-views.420b60d2.js.map → column-views.93bde6c1.js.map} +1 -1
- package/dist/node/{column-views.f2ee436e.js → column-views.a14f0134.js} +2 -2
- package/dist/node/{column-views.f2ee436e.js.map → column-views.a14f0134.js.map} +1 -1
- package/dist/node/column-views.a230263f.js +2 -0
- package/dist/node/column-views.a230263f.js.map +1 -0
- package/dist/node/{column-views.aef76eee.js → column-views.a596b1f5.js} +2 -2
- package/dist/node/{column-views.aef76eee.js.map → column-views.a596b1f5.js.map} +1 -1
- package/dist/node/column-views.af480651.js +2 -0
- package/dist/node/column-views.af480651.js.map +1 -0
- package/dist/node/column-views.b103acbc.js +2 -0
- package/dist/node/column-views.b103acbc.js.map +1 -0
- package/dist/node/{column-views.60b5663d.js → column-views.b40c1b9c.js} +2 -2
- package/dist/node/{column-views.60b5663d.js.map → column-views.b40c1b9c.js.map} +1 -1
- package/dist/node/column-views.b6e86cf0.js +2 -0
- package/dist/node/column-views.b6e86cf0.js.map +1 -0
- package/dist/node/{column-views.22c2d45b.js → column-views.c007152b.js} +2 -2
- package/dist/node/{column-views.22c2d45b.js.map → column-views.c007152b.js.map} +1 -1
- package/dist/node/{column-views.b6943236.js → column-views.c921fa1a.js} +2 -2
- package/dist/node/{column-views.b6943236.js.map → column-views.c921fa1a.js.map} +1 -1
- package/dist/node/{column-views.05cfc627.js → column-views.c9880a4d.js} +2 -2
- package/dist/node/{column-views.05cfc627.js.map → column-views.c9880a4d.js.map} +1 -1
- package/dist/node/column-views.ccfb9afb.css +2 -0
- package/dist/node/column-views.ccfb9afb.css.map +1 -0
- package/dist/node/{column-views.bde2dfa8.js → column-views.cd54f1b1.js} +2 -2
- package/dist/node/{column-views.bde2dfa8.js.map → column-views.cd54f1b1.js.map} +1 -1
- package/dist/node/{column-views.db47fe3c.js → column-views.d77d260b.js} +2 -2
- package/dist/node/{column-views.db47fe3c.js.map → column-views.d77d260b.js.map} +1 -1
- package/dist/node/{column-views.105c28fa.js → column-views.d818b387.js} +2 -2
- package/dist/node/{column-views.105c28fa.js.map → column-views.d818b387.js.map} +1 -1
- package/dist/node/{column-views.2d00d842.js → column-views.d8821a96.js} +2 -2
- package/dist/node/{column-views.2d00d842.js.map → column-views.d8821a96.js.map} +1 -1
- package/dist/node/column-views.dbb4a46b.js +2 -0
- package/dist/node/column-views.dbb4a46b.js.map +1 -0
- package/dist/node/{column-views.b12f8c81.js → column-views.e264a767.js} +2 -2
- package/dist/node/{column-views.b12f8c81.js.map → column-views.e264a767.js.map} +1 -1
- package/dist/node/column-views.e93b3bdb.js +2 -0
- package/dist/node/column-views.e93b3bdb.js.map +1 -0
- package/dist/node/{column-views.3913cd0f.js → column-views.ec691859.js} +2 -2
- package/dist/node/{column-views.3913cd0f.js.map → column-views.ec691859.js.map} +1 -1
- package/dist/node/column-views.ec7cc7cc.js +2 -0
- package/dist/node/column-views.ec7cc7cc.js.map +1 -0
- package/dist/node/{column-views.aae09aca.js → column-views.eecdc727.js} +2 -2
- package/dist/node/{column-views.aae09aca.js.map → column-views.eecdc727.js.map} +1 -1
- package/dist/node/{column-views.d08e4328.js → column-views.f577d065.js} +2 -2
- package/dist/node/{column-views.d08e4328.js.map → column-views.f577d065.js.map} +1 -1
- package/dist/node/column-views.fac4baff.js +2 -0
- package/dist/node/column-views.fac4baff.js.map +1 -0
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +2 -2
- package/src/age-axis.ts +1 -1
- package/src/column.ts +4 -1
- package/src/correlation-chart/stories/correlation-chart.stories.ts +1 -1
- package/src/facets/detrital-zircon/index.module.sass +2 -3
- package/src/facets/detrital-zircon/index.ts +81 -11
- package/src/facets/detrital-zircon/provider.ts +1 -1
- package/src/facets/fossils/index.ts +145 -215
- package/src/facets/fossils/provider.ts +18 -25
- package/src/facets/fossils/taxon-ranges.ts +220 -0
- package/src/facets/index.ts +0 -1
- package/src/facets/{base-sample-column.module.sass → measurements/base.module.sass} +1 -0
- package/src/facets/measurements/base.ts +215 -0
- package/src/facets/measurements/index.ts +2 -38
- package/src/facets/measurements/sgp.ts +91 -0
- package/src/notes.ts +6 -3
- package/src/prepare-units/index.ts +8 -2
- package/src/prepare-units/utils.ts +55 -9
- package/dist/esm/column-views.05586d1f.js.map +0 -1
- package/dist/esm/column-views.1151416d.css.map +0 -1
- package/dist/esm/column-views.1e579112.js +0 -92
- package/dist/esm/column-views.1e579112.js.map +0 -1
- package/dist/esm/column-views.3a7179c4.js.map +0 -1
- package/dist/esm/column-views.403a7b48.css.map +0 -1
- package/dist/esm/column-views.43beafa3.js +0 -15
- package/dist/esm/column-views.52ad973a.js.map +0 -1
- package/dist/esm/column-views.54f8b909.js.map +0 -1
- package/dist/esm/column-views.6698b95a.js.map +0 -1
- package/dist/esm/column-views.6e7082db.js +0 -16
- package/dist/esm/column-views.6e7082db.js.map +0 -1
- package/dist/esm/column-views.7243e77d.js +0 -37
- package/dist/esm/column-views.7243e77d.js.map +0 -1
- package/dist/esm/column-views.76a220c4.js +0 -95
- package/dist/esm/column-views.76a220c4.js.map +0 -1
- package/dist/esm/column-views.9dd25b5b.js.map +0 -1
- package/dist/esm/column-views.b7016f82.css.map +0 -1
- package/dist/esm/column-views.d2214a99.js.map +0 -1
- package/dist/esm/column-views.d6d6df77.js.map +0 -1
- package/dist/esm/column-views.ea4ebbb7.js +0 -31
- package/dist/esm/column-views.ea4ebbb7.js.map +0 -1
- package/dist/node/column-views.16f336ee.js +0 -2
- package/dist/node/column-views.16f336ee.js.map +0 -1
- package/dist/node/column-views.1c567bfd.js +0 -2
- package/dist/node/column-views.1c567bfd.js.map +0 -1
- package/dist/node/column-views.28609db2.css +0 -2
- package/dist/node/column-views.28609db2.css.map +0 -1
- package/dist/node/column-views.2901b649.js +0 -2
- package/dist/node/column-views.2901b649.js.map +0 -1
- package/dist/node/column-views.29eb25bd.css +0 -2
- package/dist/node/column-views.29eb25bd.css.map +0 -1
- package/dist/node/column-views.39c21f22.js +0 -2
- package/dist/node/column-views.39c21f22.js.map +0 -1
- package/dist/node/column-views.573cb29d.js +0 -2
- package/dist/node/column-views.573cb29d.js.map +0 -1
- package/dist/node/column-views.5f3b0b04.js +0 -2
- package/dist/node/column-views.5f3b0b04.js.map +0 -1
- package/dist/node/column-views.77ace3a2.js +0 -2
- package/dist/node/column-views.77ace3a2.js.map +0 -1
- package/dist/node/column-views.8f54691f.js +0 -2
- package/dist/node/column-views.8f54691f.js.map +0 -1
- package/dist/node/column-views.a16cd1f2.js +0 -2
- package/dist/node/column-views.a16cd1f2.js.map +0 -1
- package/dist/node/column-views.a9576bac.js +0 -2
- package/dist/node/column-views.a9576bac.js.map +0 -1
- package/dist/node/column-views.c3c15cc2.js +0 -2
- package/dist/node/column-views.c3c15cc2.js.map +0 -1
- package/dist/node/column-views.cd7b223b.css +0 -2
- package/dist/node/column-views.cd7b223b.css.map +0 -1
- package/dist/node/column-views.f6ac1161.js +0 -2
- package/dist/node/column-views.f6ac1161.js.map +0 -1
- package/src/facets/base-sample-column.ts +0 -114
- package/src/facets/measurements/provider.ts +0 -80
- /package/src/facets/fossils/{index.module.sass → taxon-ranges.module.sass} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57, useFossilData as $a3ff7da576c02df0$export$e6af757fa9780077} from "./column-views.
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import "./column-views.
|
|
5
|
-
import $
|
|
6
|
-
import $
|
|
7
|
-
import {
|
|
8
|
-
import {ColumnSVG as $
|
|
9
|
-
import {useRef as $
|
|
1
|
+
import {FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57, useFossilData as $a3ff7da576c02df0$export$e6af757fa9780077} from "./column-views.343fc926.js";
|
|
2
|
+
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
3
|
+
import "./column-views.cb6fc808.css";
|
|
4
|
+
import $kg3Dq$columnviewsd5e788e8js from "./column-views.d5e788e8.js";
|
|
5
|
+
import $kg3Dq$macrostrathyper from "@macrostrat/hyper";
|
|
6
|
+
import {Box as $kg3Dq$Box, useElementSize as $kg3Dq$useElementSize} from "@macrostrat/ui-components";
|
|
7
|
+
import {group as $kg3Dq$group} from "d3-array";
|
|
8
|
+
import {ColumnSVG as $kg3Dq$ColumnSVG, ColumnAxisType as $kg3Dq$ColumnAxisType} from "@macrostrat/column-components";
|
|
9
|
+
import {useRef as $kg3Dq$useRef} from "react";
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
function $parcel$interopDefault(a) {
|
|
@@ -20,66 +20,44 @@ function $parcel$interopDefault(a) {
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
const $
|
|
24
|
-
function $
|
|
25
|
-
const { note: note, spacing: spacing } = props;
|
|
26
|
-
const { data: data, unit: unit } = note;
|
|
27
|
-
return $b9286605a04210d4$var$h((0, $c6d9d48b3424a44c$export$653e47a7a0da0f0d), {
|
|
28
|
-
data: data,
|
|
29
|
-
className: "fossil-collections",
|
|
30
|
-
itemRenderer: $b9286605a04210d4$var$PBDBCollectionLink
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
function $b9286605a04210d4$var$PBDBCollectionLink({ data: data }) {
|
|
34
|
-
/** A link to a PBDB collection that handles either an occurrence or collection object */ return $b9286605a04210d4$var$h("a.link-id", {
|
|
35
|
-
href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${data.cltn_id}`
|
|
36
|
-
}, data.best_name ?? data.cltn_name);
|
|
37
|
-
}
|
|
38
|
-
const $b9286605a04210d4$var$matchingUnit = (dz)=>(d)=>d.unit_id == dz[0].unit_id;
|
|
39
|
-
function $b9286605a04210d4$export$554267114407ef68({ columnID: columnID, type: type = (0, $a3ff7da576c02df0$export$a990c76b38782f57).Collections }) {
|
|
40
|
-
const data = (0, $a3ff7da576c02df0$export$e6af757fa9780077)(columnID, type);
|
|
41
|
-
return $b9286605a04210d4$var$h((0, $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d), {
|
|
42
|
-
data: data,
|
|
43
|
-
noteComponent: $b9286605a04210d4$var$FossilInfo,
|
|
44
|
-
className: "fossil-collections",
|
|
45
|
-
matchingUnit: $b9286605a04210d4$var$matchingUnit
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function $b9286605a04210d4$export$652730986cccff7a({ columnID: columnID }) {
|
|
23
|
+
const $d419340b86dbd2ea$var$h = (0, $kg3Dq$macrostrathyper).styled((0, ($parcel$interopDefault($kg3Dq$columnviewsd5e788e8js))));
|
|
24
|
+
function $d419340b86dbd2ea$export$652730986cccff7a({ columnID: columnID }) {
|
|
49
25
|
/* A column for a matrix of taxon occurrences displayed as a table beside the main column. This will
|
|
50
26
|
eventually be extended with first/last occurrence markers and range bars.
|
|
51
27
|
*/ const data = (0, $a3ff7da576c02df0$export$e6af757fa9780077)(columnID, (0, $a3ff7da576c02df0$export$a990c76b38782f57).Occurrences);
|
|
52
|
-
// convert the data to a map
|
|
53
|
-
const occurrenceMap = new Map(data);
|
|
54
28
|
const col = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
|
|
55
|
-
const matrix = $b9286605a04210d4$var$createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);
|
|
56
29
|
const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
|
|
30
|
+
if (data == null) return null;
|
|
31
|
+
const data1 = (0, $kg3Dq$group)(data, (d)=>d.unit_id);
|
|
32
|
+
// convert the data to a map
|
|
33
|
+
const occurrenceMap = new Map(data1);
|
|
34
|
+
const matrix = $d419340b86dbd2ea$var$createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);
|
|
57
35
|
const { taxonRanges: taxonRanges } = matrix;
|
|
58
36
|
const padding = 16;
|
|
59
37
|
const spacing = 16;
|
|
60
38
|
const taxonEntries = Array.from(taxonRanges.entries());
|
|
61
39
|
//const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa
|
|
62
40
|
const width = padding * 2 + spacing * taxonEntries.length;
|
|
63
|
-
return $
|
|
41
|
+
return $d419340b86dbd2ea$var$h((0, $kg3Dq$Box), {
|
|
64
42
|
className: "taxon-ranges",
|
|
65
43
|
width: width,
|
|
66
44
|
height: col.totalHeight
|
|
67
45
|
}, [
|
|
68
|
-
$
|
|
46
|
+
$d419340b86dbd2ea$var$h($d419340b86dbd2ea$var$TaxonOccurrenceLabels, {
|
|
69
47
|
taxonEntries: taxonEntries,
|
|
70
48
|
padding: padding,
|
|
71
49
|
spacing: spacing,
|
|
72
50
|
scale: scale
|
|
73
51
|
}),
|
|
74
|
-
$
|
|
52
|
+
$d419340b86dbd2ea$var$h((0, $kg3Dq$ColumnSVG), {
|
|
75
53
|
width: padding * 2 + spacing * taxonEntries.length
|
|
76
|
-
}, $
|
|
54
|
+
}, $d419340b86dbd2ea$var$h("g.taxa-occurrences-matrix", taxonEntries.map(([taxonName, ranges], rowIndex)=>{
|
|
77
55
|
const xPosition = padding + rowIndex * spacing;
|
|
78
|
-
return $
|
|
56
|
+
return $d419340b86dbd2ea$var$h("g", {
|
|
79
57
|
transform: `translate(${xPosition})`
|
|
80
58
|
}, [
|
|
81
59
|
ranges.map(([top, bottom])=>{
|
|
82
|
-
return $
|
|
60
|
+
return $d419340b86dbd2ea$var$h("line", {
|
|
83
61
|
y1: scale(top),
|
|
84
62
|
y2: scale(bottom)
|
|
85
63
|
});
|
|
@@ -88,13 +66,13 @@ function $b9286605a04210d4$export$652730986cccff7a({ columnID: columnID }) {
|
|
|
88
66
|
})))
|
|
89
67
|
]);
|
|
90
68
|
}
|
|
91
|
-
function $
|
|
92
|
-
return $
|
|
69
|
+
function $d419340b86dbd2ea$var$TaxonOccurrenceLabels({ taxonEntries: taxonEntries, padding: padding, spacing: spacing, scale: scale }) {
|
|
70
|
+
return $d419340b86dbd2ea$var$h("div.taxon-labels", [
|
|
93
71
|
taxonEntries.map(([taxonName, ranges], rowIndex)=>{
|
|
94
72
|
const top = ranges[0]?.[0] ?? 0;
|
|
95
73
|
let topPx = scale(top) - 20;
|
|
96
74
|
if (topPx < 200) topPx = 0;
|
|
97
|
-
return $
|
|
75
|
+
return $d419340b86dbd2ea$var$h($d419340b86dbd2ea$var$TaxonLabel, {
|
|
98
76
|
top: topPx,
|
|
99
77
|
left: padding + rowIndex * spacing,
|
|
100
78
|
taxonName: taxonName
|
|
@@ -102,33 +80,33 @@ function $b9286605a04210d4$var$TaxonOccurrenceLabels({ taxonEntries: taxonEntrie
|
|
|
102
80
|
})
|
|
103
81
|
]);
|
|
104
82
|
}
|
|
105
|
-
function $
|
|
106
|
-
const ref = (0, $
|
|
107
|
-
const textSize = (0, $
|
|
83
|
+
function $d419340b86dbd2ea$var$TaxonLabel({ top: top, left: left, taxonName: taxonName }) {
|
|
84
|
+
const ref = (0, $kg3Dq$useRef)();
|
|
85
|
+
const textSize = (0, $kg3Dq$useElementSize)(ref);
|
|
108
86
|
const labelWidth = textSize?.height ?? 200;
|
|
109
|
-
return $
|
|
87
|
+
return $d419340b86dbd2ea$var$h("div.taxon-label", {
|
|
110
88
|
style: {
|
|
111
89
|
top: `${top}px`,
|
|
112
90
|
marginLeft: `${left}px`,
|
|
113
91
|
"--label-width": `${labelWidth}px`
|
|
114
92
|
}
|
|
115
|
-
}, $
|
|
93
|
+
}, $d419340b86dbd2ea$var$h("div.taxon-label-inner", $d419340b86dbd2ea$var$h("div.taxon-label-text", {
|
|
116
94
|
ref: ref
|
|
117
95
|
}, taxonName)));
|
|
118
96
|
}
|
|
119
|
-
function $
|
|
120
|
-
return $
|
|
97
|
+
function $d419340b86dbd2ea$var$TaxonOccurrenceEntry({ xPosition: xPosition, ranges: ranges, scale: scale, name: name }) {
|
|
98
|
+
return $d419340b86dbd2ea$var$h("g", {
|
|
121
99
|
transform: `translate(${xPosition})`
|
|
122
100
|
}, [
|
|
123
101
|
ranges.map(([top, bottom])=>{
|
|
124
|
-
return $
|
|
102
|
+
return $d419340b86dbd2ea$var$h("line", {
|
|
125
103
|
y1: scale(top),
|
|
126
104
|
y2: scale(bottom)
|
|
127
105
|
});
|
|
128
106
|
})
|
|
129
107
|
]);
|
|
130
108
|
}
|
|
131
|
-
function $
|
|
109
|
+
function $d419340b86dbd2ea$var$createOccurrenceMatrix(units, data, axisType = (0, $kg3Dq$ColumnAxisType).AGE) {
|
|
132
110
|
const taxonUnitMap = new Map();
|
|
133
111
|
const taxonOccurrenceMap = new Map();
|
|
134
112
|
for (const [unit_id, occurrences] of data.entries())for (const occ of occurrences){
|
|
@@ -146,7 +124,7 @@ function $b9286605a04210d4$var$createOccurrenceMatrix(units, data, axisType = (0
|
|
|
146
124
|
return b[0].localeCompare(a[0]);
|
|
147
125
|
});
|
|
148
126
|
const taxonRanges = new Map();
|
|
149
|
-
for (const [taxonName, unitSet] of taxonUnitMap.entries())taxonRanges.set(taxonName, $
|
|
127
|
+
for (const [taxonName, unitSet] of taxonUnitMap.entries())taxonRanges.set(taxonName, $d419340b86dbd2ea$var$accumulatePresenceDomains(units, unitSet, axisType));
|
|
150
128
|
return {
|
|
151
129
|
occurrenceMap: data,
|
|
152
130
|
taxonUnitMap: new Map(sortedTaxa),
|
|
@@ -154,13 +132,13 @@ function $b9286605a04210d4$var$createOccurrenceMatrix(units, data, axisType = (0
|
|
|
154
132
|
taxonRanges: taxonRanges
|
|
155
133
|
};
|
|
156
134
|
}
|
|
157
|
-
function $
|
|
135
|
+
function $d419340b86dbd2ea$var$accumulatePresenceDomains(unit, presenceUnits, axisType) {
|
|
158
136
|
const domains = [];
|
|
159
137
|
let currentDomain = null;
|
|
160
138
|
for (const u of unit){
|
|
161
139
|
if (presenceUnits.has(u.unit_id)) {
|
|
162
140
|
if (currentDomain == null) {
|
|
163
|
-
if (axisType == (0, $
|
|
141
|
+
if (axisType == (0, $kg3Dq$ColumnAxisType).DEPTH || axisType == (0, $kg3Dq$ColumnAxisType).HEIGHT) currentDomain = [
|
|
164
142
|
u.t_pos,
|
|
165
143
|
u.b_pos
|
|
166
144
|
];
|
|
@@ -168,7 +146,7 @@ function $b9286605a04210d4$var$accumulatePresenceDomains(unit, presenceUnits, ax
|
|
|
168
146
|
u.t_age,
|
|
169
147
|
u.b_age
|
|
170
148
|
];
|
|
171
|
-
} else if (axisType == (0, $
|
|
149
|
+
} else if (axisType == (0, $kg3Dq$ColumnAxisType).DEPTH || axisType == (0, $kg3Dq$ColumnAxisType).HEIGHT) currentDomain[1] = u.b_pos;
|
|
172
150
|
else currentDomain[1] = u.b_age;
|
|
173
151
|
} else if (currentDomain != null) {
|
|
174
152
|
domains.push(currentDomain);
|
|
@@ -180,5 +158,5 @@ function $b9286605a04210d4$var$accumulatePresenceDomains(unit, presenceUnits, ax
|
|
|
180
158
|
}
|
|
181
159
|
|
|
182
160
|
|
|
183
|
-
export {$
|
|
184
|
-
//# sourceMappingURL=column-views.
|
|
161
|
+
export {$d419340b86dbd2ea$export$652730986cccff7a as PBDBOccurrencesMatrix, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType};
|
|
162
|
+
//# sourceMappingURL=column-views.6c9e5069.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/facets/fossils/taxon-ranges.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport { FossilDataType, PBDBOccurrence, useFossilData } from \"./provider\";\nimport { Box, useElementSize } from \"@macrostrat/ui-components\";\nimport { group } from \"d3-array\";\nimport { ColumnAxisType, ColumnSVG } from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useCompositeScale,\n} from \"../../data-provider\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport styles from \"./taxon-ranges.module.sass\";\nimport { useRef } from \"react\";\n\nconst h = hyper.styled(styles);\n\nexport { FossilDataType };\n\nexport function PBDBOccurrencesMatrix({ columnID }) {\n /* A column for a matrix of taxon occurrences displayed as a table beside the main column. This will\n eventually be extended with first/last occurrence markers and range bars.\n */\n const data = useFossilData(columnID, FossilDataType.Occurrences);\n const col = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n if (data == null) return null;\n\n const data1 = group(data, (d) => d.unit_id);\n\n // convert the data to a map\n const occurrenceMap = new Map(data1);\n\n const matrix = createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n\n const { taxonRanges } = matrix;\n\n const padding = 16;\n const spacing = 16;\n\n const taxonEntries = Array.from(taxonRanges.entries());\n //const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa\n\n const width = padding * 2 + spacing * taxonEntries.length;\n\n return h(Box, { className: \"taxon-ranges\", width, height: col.totalHeight }, [\n h(TaxonOccurrenceLabels, {\n taxonEntries,\n padding,\n spacing,\n scale,\n }),\n h(\n ColumnSVG,\n {\n width: padding * 2 + spacing * taxonEntries.length,\n },\n h(\n \"g.taxa-occurrences-matrix\",\n taxonEntries.map(([taxonName, ranges], rowIndex) => {\n const xPosition = padding + rowIndex * spacing;\n return h(\"g\", { transform: `translate(${xPosition})` }, [\n ranges.map(([top, bottom]) => {\n return h(\"line\", {\n y1: scale(top),\n y2: scale(bottom),\n });\n }),\n ]);\n }),\n ),\n ),\n ]);\n}\n\nfunction TaxonOccurrenceLabels({ taxonEntries, padding, spacing, scale }) {\n return h(\"div.taxon-labels\", [\n taxonEntries.map(([taxonName, ranges], rowIndex) => {\n const top = ranges[0]?.[0] ?? 0;\n let topPx = scale(top) - 20;\n if (topPx < 200) topPx = 0;\n\n return h(TaxonLabel, {\n top: topPx,\n left: padding + rowIndex * spacing,\n taxonName,\n });\n }),\n ]);\n}\n\nfunction TaxonLabel({ top, left, taxonName }) {\n const ref = useRef();\n const textSize = useElementSize(ref);\n const labelWidth = textSize?.height ?? 200;\n return h(\n \"div.taxon-label\",\n {\n style: {\n top: `${top}px`,\n marginLeft: `${left}px`,\n \"--label-width\": `${labelWidth}px`,\n },\n },\n h(\"div.taxon-label-inner\", h(\"div.taxon-label-text\", { ref }, taxonName)),\n );\n}\n\ntype TaxonUnitMap = Map<string, Set<number>>;\n\ninterface OccurrenceMatrixData {\n occurrenceMap: Map<number, PBDBOccurrence[]>; // Map of unit IDs to occurrences (original data)\n taxonUnitMap: TaxonUnitMap; // Map of taxon names to sets of unit IDs\n taxonOccurrenceMap: Map<string, PBDBOccurrence[]>; // Map of taxon names to occurrences\n taxonRanges: Map<string, [number, number][]>; // Map of taxon names to [top, bottom] pixel ranges\n}\n\nfunction TaxonOccurrenceEntry({\n xPosition,\n ranges,\n scale,\n name,\n}: {\n xPosition: number;\n units: Set<number>;\n}) {\n return h(\"g\", { transform: `translate(${xPosition})` }, [\n ranges.map(([top, bottom]) => {\n return h(\"line\", {\n y1: scale(top),\n y2: scale(bottom),\n });\n }),\n ]);\n}\n\nfunction createOccurrenceMatrix(\n units: UnitLong[],\n data: Map<number, PBDBOccurrence[]>,\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n): OccurrenceMatrixData {\n const taxonUnitMap = new Map<string, Set<number>>();\n const taxonOccurrenceMap = new Map<string, PBDBOccurrence[]>();\n\n for (const [unit_id, occurrences] of data.entries()) {\n for (const occ of occurrences) {\n const taxonName = occ.best_name ?? occ.taxon_name;\n if (!taxonUnitMap.has(taxonName)) {\n taxonUnitMap.set(taxonName, new Set());\n taxonOccurrenceMap.set(taxonName, []);\n }\n taxonUnitMap.get(taxonName).add(unit_id);\n taxonOccurrenceMap.get(taxonName).push(occ);\n }\n }\n\n // sort the taxon occurrence map by number of occurrences\n const sortedTaxa = Array.from(taxonUnitMap.entries()).sort((a, b) => {\n // Sort alphabetically by taxon name\n return b[0].localeCompare(a[0]);\n });\n\n const taxonRanges = new Map<string, [number, number][]>();\n for (const [taxonName, unitSet] of taxonUnitMap.entries()) {\n taxonRanges.set(\n taxonName,\n accumulatePresenceDomains(units, unitSet, axisType),\n );\n }\n\n return {\n occurrenceMap: data,\n taxonUnitMap: new Map(sortedTaxa),\n taxonOccurrenceMap: taxonOccurrenceMap,\n taxonRanges,\n };\n}\n\nfunction accumulatePresenceDomains(\n unit: UnitLong[],\n presenceUnits: Set<number>,\n axisType: ColumnAxisType,\n): Array<[number, number]> {\n const domains: Array<[number, number]> = [];\n let currentDomain: [number, number] | null = null;\n\n for (const u of unit) {\n if (presenceUnits.has(u.unit_id)) {\n if (currentDomain == null) {\n if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.HEIGHT\n ) {\n currentDomain = [u.t_pos, u.b_pos];\n } else {\n currentDomain = [u.t_age, u.b_age];\n }\n } else {\n if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.HEIGHT\n ) {\n currentDomain[1] = u.b_pos;\n } else {\n currentDomain[1] = u.b_age;\n }\n }\n } else {\n if (currentDomain != null) {\n domains.push(currentDomain);\n currentDomain = null;\n }\n }\n }\n\n if (currentDomain != null) {\n domains.push(currentDomain);\n }\n\n return domains;\n}\n"],"names":[],"version":3,"file":"column-views.6c9e5069.js.map"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import {standardizeMeasurementHeight as $50d219504625a431$export$9d101e1fcb2166a6, mergeHeightRanges as $50d219504625a431$export$8f2afa8ddee7317e, BaseMeasurementsColumn as $50d219504625a431$export$ce5c4f2fdf4e644d, TruncatedList as $50d219504625a431$export$653e47a7a0da0f0d, groupNotesByPixelDistance as $50d219504625a431$export$4e649f790614b299} from "./column-views.de433f18.js";
|
|
2
|
+
import {SGPMeasurementsColumn as $c8e156b0b9c785ec$export$c49cf57576706bab} from "./column-views.7fa0d026.js";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
export {$50d219504625a431$export$9d101e1fcb2166a6 as standardizeMeasurementHeight, $50d219504625a431$export$8f2afa8ddee7317e as mergeHeightRanges, $50d219504625a431$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $50d219504625a431$export$653e47a7a0da0f0d as TruncatedList, $50d219504625a431$export$4e649f790614b299 as groupNotesByPixelDistance, $c8e156b0b9c785ec$export$c49cf57576706bab as SGPMeasurementsColumn};
|
|
9
|
+
//# sourceMappingURL=column-views.6df65dab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"","sources":["packages/column-views/src/facets/measurements/index.ts"],"sourcesContent":["export * from \"./base\";\nexport * from \"./sgp\";\n"],"names":[],"version":3,"file":"column-views.6df65dab.js.map"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.detrital-group_977b40 {
|
|
9
|
+
height: 53px;
|
|
9
10
|
margin: -5px -5px -36px -10px;
|
|
10
11
|
}
|
|
11
12
|
|
|
@@ -21,4 +22,4 @@
|
|
|
21
22
|
position: sticky;
|
|
22
23
|
bottom: 0;
|
|
23
24
|
}
|
|
24
|
-
/*# sourceMappingURL=column-views.
|
|
25
|
+
/*# sourceMappingURL=column-views.6f9511d1.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AACA;;;;;;;AAMA;;;;;AAMM;;;;AAGJ;;;;AAGA","sources":["packages/column-views/src/facets/detrital-zircon/index.module.sass"],"sourcesContent":["\n.depositional-age\n fill: var(--column-stroke-color)\n fill-opacity: 0.25\n stroke-width: 1px\n stroke: var(--column-stroke-color)\n\n.detrital-group\n margin: -5px -5px -36px -10px\n height: 53px\n\n &.hide-axis :global .visx-axis\n tspan, text\n display: none\n\n.dz-spectra\n position: relative\n\n.floating-axis\n position: sticky\n bottom: 0\n"],"names":[],"version":3,"file":"column-views.6f9511d1.css.map"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import {BaseMeasurementsColumn as $50d219504625a431$export$ce5c4f2fdf4e644d, groupNotesByPixelDistance as $50d219504625a431$export$4e649f790614b299, standardizeMeasurementHeight as $50d219504625a431$export$9d101e1fcb2166a6, TruncatedList as $50d219504625a431$export$653e47a7a0da0f0d} from "./column-views.de433f18.js";
|
|
2
|
+
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
3
|
+
import $8DpYT$macrostrathyper from "@macrostrat/hyper";
|
|
4
|
+
import {useAPIResult as $8DpYT$useAPIResult} from "@macrostrat/ui-components";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
function $c8e156b0b9c785ec$var$useSGPData({ col_id: col_id }) {
|
|
11
|
+
const res = (0, $8DpYT$useAPIResult)("https://dev.macrostrat.org/api/pg/sgp_unit_matches", {
|
|
12
|
+
col_id: `eq.${col_id}`
|
|
13
|
+
}, (d)=>d);
|
|
14
|
+
return res;
|
|
15
|
+
}
|
|
16
|
+
function $c8e156b0b9c785ec$export$c49cf57576706bab({ columnID: columnID, color: color = "magenta" }) {
|
|
17
|
+
const data = $c8e156b0b9c785ec$var$useSGPData({
|
|
18
|
+
col_id: columnID
|
|
19
|
+
});
|
|
20
|
+
const { axisType: axisType, units: units } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
|
|
21
|
+
const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
|
|
22
|
+
if (data == null || units == null || scale == null) return null;
|
|
23
|
+
const data1 = $c8e156b0b9c785ec$var$prepareSGPData(data, scale, units, axisType);
|
|
24
|
+
return (0, $8DpYT$macrostrathyper)((0, $50d219504625a431$export$ce5c4f2fdf4e644d), {
|
|
25
|
+
data: data1,
|
|
26
|
+
noteComponent: $c8e156b0b9c785ec$var$SGPSamplesNote,
|
|
27
|
+
focusedNoteComponent: $c8e156b0b9c785ec$var$SGPSamplesNote
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function $c8e156b0b9c785ec$var$SGPSamplesNote(props) {
|
|
31
|
+
const { note: note, focused: focused } = props;
|
|
32
|
+
const sgp_samples = note?.data;
|
|
33
|
+
if (sgp_samples == null || sgp_samples.length === 0) return null;
|
|
34
|
+
return (0, $8DpYT$macrostrathyper)((0, $50d219504625a431$export$653e47a7a0da0f0d), {
|
|
35
|
+
className: "sgp-samples",
|
|
36
|
+
data: sgp_samples,
|
|
37
|
+
itemRenderer: (p)=>(0, $8DpYT$macrostrathyper)("span", p.data.name),
|
|
38
|
+
maxItems: focused ? Infinity : 5
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function $c8e156b0b9c785ec$var$prepareSGPData(data, scale, units, axisType) {
|
|
42
|
+
// Find matching units for samples
|
|
43
|
+
const d1 = data.map((sample)=>{
|
|
44
|
+
const data = sample.sgp_samples;
|
|
45
|
+
if (data == null || data.length === 0) return null;
|
|
46
|
+
const heightData = (0, $50d219504625a431$export$9d101e1fcb2166a6)({
|
|
47
|
+
unit_id: sample.unit_id
|
|
48
|
+
}, units, axisType);
|
|
49
|
+
if (heightData == null) return null;
|
|
50
|
+
data.sort((a, b)=>a.id - b.id);
|
|
51
|
+
return {
|
|
52
|
+
...heightData,
|
|
53
|
+
data: data,
|
|
54
|
+
id: sample.unit_id
|
|
55
|
+
};
|
|
56
|
+
}).filter(Boolean);
|
|
57
|
+
return (0, $50d219504625a431$export$4e649f790614b299)(d1, scale, axisType, 5);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
export {$c8e156b0b9c785ec$export$c49cf57576706bab as SGPMeasurementsColumn};
|
|
62
|
+
//# sourceMappingURL=column-views.7fa0d026.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;AAgBA,SAAS,iCAAW,UAAE,MAAM,EAAE;IAC5B,MAAM,MAAM,CAAA,GAAA,mBAAW,EACrB,sDACA;QACE,QAAQ,CAAC,GAAG,EAAE,QAAQ;IACxB,GACA,CAAC,IAAM;IAET,OAAO;AACT;AAQO,SAAS,0CAAsB,YAAE,QAAQ,SAAE,QAAQ,WAAW;IACnE,MAAM,OAA+B,iCAAW;QAAE,QAAQ;IAAS;IACnE,MAAM,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAClD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,IAAI,QAAQ,QAAQ,SAAS,QAAQ,SAAS,MAAM,OAAO;IAE3D,MAAM,QAAQ,qCAAe,MAAM,OAAO,OAAO;IAEjD,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAqB,GAAG;QAC/B,MAAM;QACN,eAAe;QACf,sBAAsB;IACxB;AACF;AAEA,SAAS,qCAAe,KAAK;IAC3B,MAAM,QAAE,IAAI,WAAE,OAAO,EAAE,GAAG;IAC1B,MAAM,cAAc,MAAM;IAE1B,IAAI,eAAe,QAAQ,YAAY,MAAM,KAAK,GAAG,OAAO;IAE5D,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAY,GAAG;QACtB,WAAW;QACX,MAAM;QACN,cAAc,CAAC,IAAM,CAAA,GAAA,sBAAA,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI;QAC1C,UAAU,UAAU,WAAW;IACjC;AACF;AAEA,SAAS,qCACP,IAAqB,EACrB,KAA2B,EAC3B,KAAiB,EACjB,QAAwB;IAExB,kCAAkC;IAClC,MAAM,KAAK,KACR,GAAG,CAAC,CAAC;QACJ,MAAM,OAAO,OAAO,WAAW;QAC/B,IAAI,QAAQ,QAAQ,KAAK,MAAM,KAAK,GAAG,OAAO;QAC9C,MAAM,aAAa,CAAA,GAAA,yCAA2B,EAC5C;YAAE,SAAS,OAAO,OAAO;QAAC,GAC1B,OACA;QAEF,IAAI,cAAc,MAAM,OAAO;QAC/B,KAAK,IAAI,CAAC,CAAC,GAAG,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE;QAC/B,OAAO;YACL,GAAG,UAAU;kBACb;YACA,IAAI,OAAO,OAAO;QACpB;IACF,GACC,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,yCAAwB,EAAE,IAAI,OAAO,UAAU;AACxD","sources":["packages/column-views/src/facets/measurements/sgp.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport {\n BaseMeasurementsColumn,\n groupNotesByPixelDistance,\n standardizeMeasurementHeight,\n TruncatedList,\n} from \"./base\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport {\n useCompositeScale,\n useMacrostratColumnData,\n} from \"../../data-provider\";\nimport { CompositeColumnScale } from \"../../prepare-units/composite-scale\";\n\nfunction useSGPData({ col_id }) {\n const res = useAPIResult(\n \"https://dev.macrostrat.org/api/pg/sgp_unit_matches\",\n {\n col_id: `eq.${col_id}`,\n },\n (d) => d,\n );\n return res;\n}\n\ninterface SGPSampleData {\n col_id: number;\n unit_id: number;\n sgp_samples: { name: string; id: number }[];\n}\n\nexport function SGPMeasurementsColumn({ columnID, color = \"magenta\" }) {\n const data: SGPSampleData[] | null = useSGPData({ col_id: columnID });\n const { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n if (data == null || units == null || scale == null) return null;\n\n const data1 = prepareSGPData(data, scale, units, axisType);\n\n return h(BaseMeasurementsColumn, {\n data: data1,\n noteComponent: SGPSamplesNote,\n focusedNoteComponent: SGPSamplesNote,\n });\n}\n\nfunction SGPSamplesNote(props) {\n const { note, focused } = props;\n const sgp_samples = note?.data;\n\n if (sgp_samples == null || sgp_samples.length === 0) return null;\n\n return h(TruncatedList, {\n className: \"sgp-samples\",\n data: sgp_samples,\n itemRenderer: (p) => h(\"span\", p.data.name),\n maxItems: focused ? Infinity : 5,\n });\n}\n\nfunction prepareSGPData(\n data: SGPSampleData[],\n scale: CompositeColumnScale,\n units: UnitLong[],\n axisType: ColumnAxisType,\n) {\n // Find matching units for samples\n const d1 = data\n .map((sample) => {\n const data = sample.sgp_samples;\n if (data == null || data.length === 0) return null;\n const heightData = standardizeMeasurementHeight(\n { unit_id: sample.unit_id },\n units,\n axisType,\n );\n if (heightData == null) return null;\n data.sort((a, b) => a.id - b.id);\n return {\n ...heightData,\n data,\n id: sample.unit_id,\n };\n })\n .filter(Boolean);\n\n return groupNotesByPixelDistance(d1, scale, axisType, 5);\n}\n"],"names":[],"version":3,"file":"column-views.7fa0d026.js.map"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {getSectionAgeRange as $663a0cdd08b02256$export$8093438ec3e4c6fd, getSectionPosRange as $663a0cdd08b02256$export$483b05c497fd70c6, groupUnitsIntoSectionsByOverlap as $663a0cdd08b02256$export$bb26cdbde9c8c08b, groupUnitsIntoSectionsBySectionID as $663a0cdd08b02256$export$eeade20e3eee4638, mergeOverlappingSections as $663a0cdd08b02256$export$e7bb744b9be37f3d, preprocessSectionUnit as $663a0cdd08b02256$export$47e05aac3f0b77d4, preprocessUnits as $663a0cdd08b02256$export$55543e159517d62d} from "./column-views.
|
|
2
|
-
import {collapseUnconformitiesByPixelHeight as $728f6cf6c12cd490$export$edbf01b435c75274, computeSectionHeights as $728f6cf6c12cd490$export$7d3f3129a1a4b84e, finalizeSectionHeights as $728f6cf6c12cd490$export$67442a0f5bef147b} from "./column-views.
|
|
3
|
-
import {MergeSectionsMode as $b6657fba8924a702$export$e1644389ce074058, agesOverlap as $b6657fba8924a702$export$d92a67740c050efb, unitsOverlap as $b6657fba8924a702$export$f1a15f539858307, getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a, createUnitSorter as $b6657fba8924a702$export$ab14c04795685c55, ensureArray as $b6657fba8924a702$export$d0c8ecbd4ed8940c, ensureRealFloat as $b6657fba8924a702$export$97de5b0a6b4e4dac} from "./column-views.
|
|
1
|
+
import {getSectionAgeRange as $663a0cdd08b02256$export$8093438ec3e4c6fd, getSectionPosRange as $663a0cdd08b02256$export$483b05c497fd70c6, groupUnitsIntoSectionsByOverlap as $663a0cdd08b02256$export$bb26cdbde9c8c08b, groupUnitsIntoSectionsBySectionID as $663a0cdd08b02256$export$eeade20e3eee4638, mergeOverlappingSections as $663a0cdd08b02256$export$e7bb744b9be37f3d, preprocessSectionUnit as $663a0cdd08b02256$export$47e05aac3f0b77d4, preprocessUnits as $663a0cdd08b02256$export$55543e159517d62d} from "./column-views.b4e1236d.js";
|
|
2
|
+
import {collapseUnconformitiesByPixelHeight as $728f6cf6c12cd490$export$edbf01b435c75274, computeSectionHeights as $728f6cf6c12cd490$export$7d3f3129a1a4b84e, finalizeSectionHeights as $728f6cf6c12cd490$export$67442a0f5bef147b} from "./column-views.1b5bf0c6.js";
|
|
3
|
+
import {MergeSectionsMode as $b6657fba8924a702$export$e1644389ce074058, agesOverlap as $b6657fba8924a702$export$d92a67740c050efb, unitsOverlap as $b6657fba8924a702$export$f1a15f539858307, getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a, getPositionWithinUnit as $b6657fba8924a702$export$441710fb21b4ae09, createUnitSorter as $b6657fba8924a702$export$ab14c04795685c55, ensureArray as $b6657fba8924a702$export$d0c8ecbd4ed8940c, ensureRealFloat as $b6657fba8924a702$export$97de5b0a6b4e4dac} from "./column-views.052498a6.js";
|
|
4
4
|
import {HybridScaleType as $1254c5929638d7f9$export$45e8e2d7a1794c23, HeightMethod as $1254c5929638d7f9$export$e40aae6f0de9bb95} from "./column-views.079119f4.js";
|
|
5
5
|
import {ColumnAxisType as $iaXiN$ColumnAxisType} from "@macrostrat/column-components";
|
|
6
6
|
import {useMemo as $iaXiN$useMemo} from "react";
|
|
@@ -24,15 +24,18 @@ function $76e92a964ee11b97$export$206a0cb85295e433(data, options) {
|
|
|
24
24
|
function $76e92a964ee11b97$export$be8c5a449df4bde4(units, options) {
|
|
25
25
|
/** Prepare units for rendering into Macrostrat columns */ let { t_age: t_age, b_age: b_age, t_pos: t_pos, b_pos: b_pos } = options;
|
|
26
26
|
const { mergeSections: mergeSections = (0, $b6657fba8924a702$export$e1644389ce074058).OVERLAPPING, axisType: axisType, unconformityHeight: unconformityHeight, collapseSmallUnconformities: collapseSmallUnconformities = false, hybridScale: hybridScale, scale: scale } = options;
|
|
27
|
+
let _totalHeight = null;
|
|
27
28
|
if (scale != null) {
|
|
28
29
|
// Set t_age and b_age based on scale domain if not already set
|
|
29
30
|
const domain = scale.domain();
|
|
30
31
|
if (axisType == (0, $iaXiN$ColumnAxisType).AGE) {
|
|
31
32
|
if (t_age == null) t_age = Math.min(...domain);
|
|
32
33
|
if (b_age == null) b_age = Math.max(...domain);
|
|
34
|
+
_totalHeight = Math.abs(scale(b_age) - scale(t_age));
|
|
33
35
|
} else {
|
|
34
36
|
if (t_pos == null) t_pos = Math.min(...domain);
|
|
35
37
|
if (b_pos == null) b_pos = Math.max(...domain);
|
|
38
|
+
_totalHeight = Math.abs(scale(b_pos) - scale(t_pos));
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
// Start by ensuring that ages and positions are numbers
|
|
@@ -107,7 +110,9 @@ function $76e92a964ee11b97$export$be8c5a449df4bde4(units, options) {
|
|
|
107
110
|
if (typeof collapseSmallUnconformities == "number") threshold = collapseSmallUnconformities;
|
|
108
111
|
sectionsWithScales = (0, $728f6cf6c12cd490$export$edbf01b435c75274)(sectionsWithScales, threshold, options);
|
|
109
112
|
}
|
|
110
|
-
/** Prepare section scale information using groups
|
|
113
|
+
/** Prepare section scale information using groups.
|
|
114
|
+
* Total height is computed from section scales.
|
|
115
|
+
* */ let { totalHeight: totalHeight, sections: sections2 } = (0, $728f6cf6c12cd490$export$67442a0f5bef147b)(sectionsWithScales, unconformityHeight);
|
|
111
116
|
/** For each section, find units that are overlapping.
|
|
112
117
|
* We do this after merging sections so that we can
|
|
113
118
|
* handle cases where there are overlapping units across sections
|
|
@@ -127,11 +132,11 @@ function $76e92a964ee11b97$export$be8c5a449df4bde4(units, options) {
|
|
|
127
132
|
}, []);
|
|
128
133
|
return {
|
|
129
134
|
units: units2,
|
|
130
|
-
totalHeight: totalHeight,
|
|
135
|
+
totalHeight: _totalHeight ?? totalHeight,
|
|
131
136
|
sections: sectionsOut
|
|
132
137
|
};
|
|
133
138
|
}
|
|
134
139
|
|
|
135
140
|
|
|
136
|
-
export {$76e92a964ee11b97$export$206a0cb85295e433 as usePreparedColumnUnits, $76e92a964ee11b97$export$be8c5a449df4bde4 as prepareColumnUnits, $663a0cdd08b02256$export$55543e159517d62d as preprocessUnits, $b6657fba8924a702$export$e1644389ce074058 as MergeSectionsMode, $b6657fba8924a702$export$f1a15f539858307 as unitsOverlap, $b6657fba8924a702$export$70e712e2ac0237a as getUnitHeightRange, $b6657fba8924a702$export$d92a67740c050efb as agesOverlap, $b6657fba8924a702$export$ab14c04795685c55 as createUnitSorter, $b6657fba8924a702$export$d0c8ecbd4ed8940c as ensureArray, $b6657fba8924a702$export$97de5b0a6b4e4dac as ensureRealFloat, $1254c5929638d7f9$export$45e8e2d7a1794c23 as HybridScaleType, $1254c5929638d7f9$export$e40aae6f0de9bb95 as HeightMethod};
|
|
137
|
-
//# sourceMappingURL=column-views.
|
|
141
|
+
export {$76e92a964ee11b97$export$206a0cb85295e433 as usePreparedColumnUnits, $76e92a964ee11b97$export$be8c5a449df4bde4 as prepareColumnUnits, $663a0cdd08b02256$export$55543e159517d62d as preprocessUnits, $b6657fba8924a702$export$e1644389ce074058 as MergeSectionsMode, $b6657fba8924a702$export$f1a15f539858307 as unitsOverlap, $b6657fba8924a702$export$70e712e2ac0237a as getUnitHeightRange, $b6657fba8924a702$export$d92a67740c050efb as agesOverlap, $b6657fba8924a702$export$441710fb21b4ae09 as getPositionWithinUnit, $b6657fba8924a702$export$ab14c04795685c55 as createUnitSorter, $b6657fba8924a702$export$d0c8ecbd4ed8940c as ensureArray, $b6657fba8924a702$export$97de5b0a6b4e4dac as ensureRealFloat, $1254c5929638d7f9$export$45e8e2d7a1794c23 as HybridScaleType, $1254c5929638d7f9$export$e40aae6f0de9bb95 as HeightMethod};
|
|
142
|
+
//# sourceMappingURL=column-views.82eb5026.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/prepare-units/index.ts"],"sourcesContent":["import {\n getSectionAgeRange,\n getSectionPosRange,\n groupUnitsIntoSectionsByOverlap,\n groupUnitsIntoSectionsBySectionID,\n mergeOverlappingSections,\n preprocessSectionUnit,\n preprocessUnits,\n} from \"./helpers\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { useMemo } from \"react\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport {\n collapseUnconformitiesByPixelHeight,\n computeSectionHeights,\n finalizeSectionHeights,\n} from \"./composite-scale\";\nimport {\n agesOverlap,\n MergeSectionsMode,\n PrepareColumnOptions,\n PreparedColumnData,\n unitsOverlap,\n} from \"./utils\";\nimport { SectionInfo } from \"./types\";\n\nexport * from \"./utils\";\nexport * from \"./types\";\nexport { preprocessUnits };\n\nexport function usePreparedColumnUnits(\n data: UnitLong[],\n options: PrepareColumnOptions,\n): PreparedColumnData {\n /** This function wraps and memoizes all preparation steps for converting\n * an array of units from the /units route to a form ready for usage.\n */\n return useMemo(() => {\n return prepareColumnUnits(data, options);\n }, [data, ...Object.values(options)]);\n}\n\nexport function prepareColumnUnits(\n units: UnitLong[],\n options: PrepareColumnOptions,\n): PreparedColumnData {\n /** Prepare units for rendering into Macrostrat columns */\n\n let { t_age, b_age, t_pos, b_pos } = options;\n\n const {\n mergeSections = MergeSectionsMode.OVERLAPPING,\n axisType,\n unconformityHeight,\n collapseSmallUnconformities = false,\n hybridScale,\n scale,\n } = options;\n\n let _totalHeight = null;\n\n if (scale != null) {\n // Set t_age and b_age based on scale domain if not already set\n const domain = scale.domain();\n if (axisType == ColumnAxisType.AGE) {\n if (t_age == null) t_age = Math.min(...domain);\n if (b_age == null) b_age = Math.max(...domain);\n _totalHeight = Math.abs(scale(b_age) - scale(t_age));\n } else {\n if (t_pos == null) t_pos = Math.min(...domain);\n if (b_pos == null) b_pos = Math.max(...domain);\n _totalHeight = Math.abs(scale(b_pos) - scale(t_pos));\n }\n }\n\n // Start by ensuring that ages and positions are numbers\n // also set up some values for eODP-style columns\n let units1 = units.map(preprocessSectionUnit);\n\n /** Prototype filtering to age range */\n units1 = units1.filter((d) => {\n // Filter units by t_age and b_age, inclusive\n if (axisType == ColumnAxisType.AGE) {\n return agesOverlap(d, { t_age, b_age });\n } else {\n return unitsOverlap(d, { t_pos, b_pos } as any, axisType);\n }\n });\n\n let mergeMode = mergeSections;\n // if (axisType != ColumnAxisType.AGE) {\n // // For non-age columns, we always merge sections.\n // // This is because the \"groupUnitsIntoSections\" function is not well-defined\n // // for non-age columns.\n // mergeMode = MergeSectionsMode.ALL;\n // }\n\n let sections0: SectionInfo<UnitLong>[];\n if (mergeMode == MergeSectionsMode.ALL) {\n // For the \"merge sections\" mode, we need to create a single section\n const [b_unit_pos, t_unit_pos] = getSectionPosRange(units1, axisType);\n const [b_unit_age, t_unit_age] = getSectionAgeRange(units1);\n sections0 = [\n {\n section_id: 0,\n /**\n * If ages limits are directly specified, use them to define the section bounds.\n * */\n t_pos: t_unit_pos,\n b_pos: b_unit_pos,\n t_age: t_unit_age,\n b_age: b_unit_age,\n units: units1,\n },\n ];\n } else if (axisType == ColumnAxisType.AGE) {\n sections0 = groupUnitsIntoSectionsBySectionID(units1, axisType);\n } else {\n sections0 = groupUnitsIntoSectionsByOverlap(units1, axisType);\n }\n\n // Limit sections to the range specified by t_age/b_age or t_pos/b_pos global options\n for (let section of sections0) {\n if (axisType == ColumnAxisType.AGE) {\n section.t_age = Math.max(section.t_age, t_age ?? -Infinity);\n section.b_age = Math.min(section.b_age, b_age ?? Infinity);\n } else if (axisType == ColumnAxisType.DEPTH) {\n section.t_pos = Math.max(section.t_pos, t_pos ?? -Infinity);\n section.b_pos = Math.min(section.b_pos, b_pos ?? Infinity);\n } else if (axisType == ColumnAxisType.HEIGHT) {\n section.t_pos = Math.max(section.t_pos, t_pos ?? -Infinity);\n section.b_pos = Math.min(section.b_pos, b_pos ?? Infinity);\n }\n }\n\n /** Merging overlapping sections really only makes sense for age/height/depth\n * columns. Ordinal columns are numbered by section so merging them\n * results in collisions.\n */\n let sections = sections0;\n if (\n mergeSections == MergeSectionsMode.OVERLAPPING &&\n axisType == ColumnAxisType.AGE\n ) {\n sections = mergeOverlappingSections(sections);\n }\n // Filter out undefined sections just in case\n sections = sections.filter((d) => d != null);\n\n // SCALES\n\n /* Compute pixel scales etc. for sections\n * We need to do this now to determine which unconformities\n * are small enough to collapse.\n */\n let sectionsWithScales = computeSectionHeights(sections, options);\n\n if (collapseSmallUnconformities && hybridScale == null) {\n // Collapse small unconformities in pixel height space\n // TODO: this doesn't seem to work properly for non-age columns?\n let threshold = unconformityHeight ?? 30;\n if (typeof collapseSmallUnconformities == \"number\") {\n threshold = collapseSmallUnconformities;\n }\n\n sectionsWithScales = collapseUnconformitiesByPixelHeight(\n sectionsWithScales,\n threshold,\n options,\n );\n }\n\n /** Prepare section scale information using groups.\n * Total height is computed from section scales.\n * */\n let { totalHeight, sections: sections2 } = finalizeSectionHeights(\n sectionsWithScales,\n unconformityHeight,\n );\n\n /** For each section, find units that are overlapping.\n * We do this after merging sections so that we can\n * handle cases where there are overlapping units across sections\n * */\n const sectionsOut = sections2.map((section) => {\n return {\n ...section,\n units: preprocessUnits(section, axisType),\n };\n });\n\n /** Reconstitute the units so that they are sorted by section and properly enhanced.\n * This is mostly important so that unit keyboard navigation\n * predictably selects adjacent units.\n */\n const units2 = sectionsOut.reduce((acc, group) => {\n const { units } = group;\n for (const unit of units) {\n acc.push(unit);\n }\n return acc;\n }, []);\n\n return {\n units: units2,\n totalHeight: _totalHeight ?? totalHeight,\n sections: sectionsOut,\n };\n}\n"],"names":[],"version":3,"file":"column-views.82eb5026.js.map"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./column-views.321af3ae.css";
|
|
2
2
|
import $lfxOo$columnviews22ec902bjs from "./column-views.22ec902b.js";
|
|
3
|
-
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.
|
|
4
|
-
import {AgeLabel as $448b24baeef3b229$export$37ebfd237811b1eb} from "./column-views.
|
|
3
|
+
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
4
|
+
import {AgeLabel as $448b24baeef3b229$export$37ebfd237811b1eb} from "./column-views.5eb4e6ff.js";
|
|
5
5
|
import $lfxOo$macrostrathyper from "@macrostrat/hyper";
|
|
6
6
|
import {ColumnContext as $lfxOo$ColumnContext, ColumnAxis as $lfxOo$ColumnAxis, ColumnAxisType as $lfxOo$ColumnAxisType, SVG as $lfxOo$SVG, AgeAxis as $lfxOo$AgeAxis} from "@macrostrat/column-components";
|
|
7
7
|
import {useContext as $lfxOo$useContext} from "react";
|
|
@@ -138,4 +138,4 @@ function $43794af7643cdf40$export$20d84abfcfa68dfa({ age: age }) {
|
|
|
138
138
|
|
|
139
139
|
|
|
140
140
|
export {$43794af7643cdf40$export$64204d5cbb3e8227 as VerticalAxisLabel, $43794af7643cdf40$export$40b6b0e4520eeb34 as CompositeAgeAxis, $43794af7643cdf40$export$ac30ca3cf5df959d as CompositeAgeAxisCore, $43794af7643cdf40$export$82731b9607850ca6 as ApproximateHeightAxis, $43794af7643cdf40$export$20d84abfcfa68dfa as AgeCursor};
|
|
141
|
-
//# sourceMappingURL=column-views.
|
|
141
|
+
//# sourceMappingURL=column-views.92575b87.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/age-axis.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n SVG,\n ColumnAxis,\n ColumnContext,\n ColumnAxisType,\n AgeAxis,\n} from \"@macrostrat/column-components\";\nimport { useContext } from \"react\";\nimport styles from \"./age-axis.module.sass\";\nimport { useCompositeScale, useMacrostratColumnData } from \"./data-provider\";\nimport { Parenthetical } from \"@macrostrat/data-components\";\nimport { AgeLabel } from \"./unit-details\";\nimport { PackageScaleLayoutData } from \"./prepare-units\";\n\nconst h = hyper.styled(styles);\n\nconst AgeAxisCore = ({ ticks, tickSpacing = 40, showDomain = false }) => {\n const { pixelHeight } = useContext(ColumnContext);\n // A tick roughly every 40 pixels\n let v = Math.max(Math.round(pixelHeight / tickSpacing), 1);\n\n return h(\"g.axis\", { transform: \"translate(20 0)\" }, [\n h(ColumnAxis, {\n ticks: v,\n showDomain,\n }),\n ]);\n};\n\nexport function VerticalAxisLabel(props) {\n const { label = \"Age\", unit = \"Ma\", className, height } = props;\n return h(\n \"div.column-axis-label.age-axis-label\",\n { className, style: { height } },\n [\n label,\n \" \",\n h.if(unit)(Parenthetical, { className: \"age-axis-unit\" }, unit),\n ],\n );\n}\n\ninterface CompositeAgeAxisProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function CompositeAgeAxis(rest: CompositeAgeAxisProps) {\n const { axisType, sections, totalHeight } = useMacrostratColumnData();\n\n const packages = sections.map((section) => {\n return {\n key: `section-${section.section_id}`,\n ...section.scaleInfo,\n };\n });\n\n return h(CompositeAgeAxisCore, {\n axisType,\n packages,\n totalHeight,\n ...rest,\n });\n}\n\nexport function ApproximateHeightAxis(rest: CompositeAgeAxisProps) {\n /** Axis to show approximate height based on dynamic column scales */\n const { axisType, sections, totalHeight } = useMacrostratColumnData();\n\n const packages = sections.map((section) => {\n const { scaleInfo } = section;\n if (scaleInfo.heightScale == null) {\n throw new Error(\"No height scale available for section\");\n }\n return {\n key: `section-${section.section_id}`,\n ...scaleInfo,\n scale: scaleInfo.heightScale, // Use height scale instead of age scale\n // This only works with dynamic columns\n };\n });\n\n return h(CompositeAgeAxisCore, {\n axisType,\n axisLabel: \"Approx. height\",\n axisUnit: \"m\",\n packages,\n totalHeight,\n ...rest,\n });\n}\n\nexport interface CompositeStratigraphicScaleInfo extends CompositeAgeAxisProps {\n axisType: ColumnAxisType;\n axisLabel?: string;\n axisUnit?: string;\n totalHeight: number;\n packages: PackageScaleLayoutData[];\n}\n\nexport function CompositeAgeAxisCore(props: CompositeStratigraphicScaleInfo) {\n const { axisType, axisLabel, axisUnit, totalHeight, packages, ...rest } =\n props;\n\n if (axisType == ColumnAxisType.ORDINAL) {\n return null;\n }\n\n let _axisLabel: string = axisLabel ?? \"Age\";\n let _axisUnit = axisUnit ?? \"Ma\";\n if (axisType == ColumnAxisType.DEPTH) {\n _axisLabel = \"Depth\";\n _axisUnit = \"m\";\n } else if (axisType == ColumnAxisType.HEIGHT) {\n _axisLabel = \"Height\";\n _axisUnit = \"m\";\n }\n\n return h(\"div.composite-age-axis\", rest, [\n h(VerticalAxisLabel, {\n label: _axisLabel,\n unit: _axisUnit,\n height: totalHeight,\n }),\n h(\n SVG,\n {\n className: \"age-axis-column\",\n style: { width: `22px`, height: `${totalHeight}px` },\n width: 22,\n height: totalHeight,\n },\n packages.map((group, i) => {\n const { key, scale } = group;\n\n return h(AgeAxis, {\n key,\n className: \"age-axis\",\n scale,\n tickSizeOuter: 3,\n });\n }),\n ),\n ]);\n}\n\nexport function AgeCursor({ age }) {\n /** A cursor that shows the age at a specific point on the age axis. */\n const scale = useCompositeScale();\n const heightPx = scale(age);\n\n if (age == null || heightPx == null) {\n return null;\n }\n\n return h(\n \"div.age-cursor\",\n {\n style: {\n top: heightPx,\n },\n },\n [h(\"div.line\"), h(AgeLabel, { age, className: \"label\" })],\n );\n}\n"],"names":[],"version":3,"file":"column-views.92575b87.js.map"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./column-views.e40b8bfb.css";
|
|
2
2
|
import $3vk6I$columnviews3465c8adjs from "./column-views.3465c8ad.js";
|
|
3
|
-
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.
|
|
4
|
-
import {buildColumnSurfaces as $90d6b105908858a7$export$151c207e6887154c} from "./column-views.
|
|
3
|
+
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.4b259f9e.js";
|
|
4
|
+
import {buildColumnSurfaces as $90d6b105908858a7$export$151c207e6887154c} from "./column-views.aa9ede4d.js";
|
|
5
5
|
import $3vk6I$macrostrathyper from "@macrostrat/hyper";
|
|
6
6
|
import {useAPIResult as $3vk6I$useAPIResult} from "@macrostrat/ui-components";
|
|
7
7
|
|
|
@@ -72,4 +72,4 @@ function $1a65c216af27346a$export$ddca1abd3171ec6f() {
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
export {$1a65c216af27346a$export$1d1ebe9df97e8db as BoundaryAgeModelOverlay, $1a65c216af27346a$export$ddca1abd3171ec6f as ComputedSurfacesOverlay};
|
|
75
|
-
//# sourceMappingURL=column-views.
|
|
75
|
+
//# sourceMappingURL=column-views.9d51a5ab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;;AAOH,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAoBrB,SAAS;IACd,MAAM,SAAS,CAAA,GAAA,wCAAiB,KAAK,CAAC,EAAE,EAAE;IAC1C,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,MAAM,WAAW,CAAA,GAAA,mBAAW,EAC1B,+CACA;gBAAE;IAAO,GACT,CAAC,MAAQ,IAAI,OAAO,CAAC,IAAI;IAG3B,IAAI,YAAY,MACd,OAAO;IAGT,OAAO,wBACL,0BACA,SAAS,GAAG,CAAC,CAAC;QACZ,MAAM,SAAS,MAAM,QAAQ,SAAS;QAEtC,OAAO,wBAAE,kCAAkC;YACzC,KAAK,QAAQ,WAAW;YACxB,OAAO;gBAAE,KAAK,GAAG,OAAO,EAAE,CAAC;YAAC;QAC9B;IACF;AAEJ;AAEO,SAAS;IACd;;GAEC,GACD,MAAM,QAAQ,CAAA,GAAA,wCAAiB;IAC/B,MAAM,WAAW,CAAA,GAAA,yCAAkB,EAAE;IACrC,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,OAAO,wBACL,0BACA,SAAS,GAAG,CAAC,CAAC;QACZ,MAAM,SAAS,MAAM,QAAQ,GAAG;QAChC,OAAO,wBAAE,kCAAkC;YACzC,KAAK,QAAQ,KAAK;YAClB,OAAO;gBAAE,KAAK,GAAG,OAAO,EAAE,CAAC;YAAC;QAC9B;IACF;AAEJ","sources":["packages/column-views/src/age-model-overlay.ts"],"sourcesContent":["/** An in-development overlay for a column's age model.\n *\n * Age model info:\n * {\n * \"boundary_id\": 8049,\n * \"col_id\": 432,\n * \"section_id\": 3104,\n * \"interval_id\": 268,\n * \"interval_name\": \"Calymmian\",\n * \"age_bottom\": 1600,\n * \"age_top\": 1400,\n * \"rel_position\": 0.85,\n * \"model_age\": 1430,\n * \"boundary_status\": \"absolute\",\n * \"boundary_type\": \"\",\n * \"boundary_position\": null,\n * \"unit_below\": 11541,\n * \"unit_above\": 0,\n * \"ref_id\": 217\n * },\n *\n * */\n\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./age-model-overlay.module.sass\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport { useCompositeScale, useMacrostratUnits } from \"./data-provider\";\nimport { buildColumnSurfaces } from \"./prepare-units/dynamic-scales\";\nconst h = hyper.styled(styles);\n\ninterface AgeModelSurface {\n boundary_id: number;\n col_id: number;\n section_id: number;\n interval_id: number;\n interval_name: string;\n age_bottom: number;\n age_top: number;\n rel_position: number;\n model_age: number;\n boundary_status: \"absolute\" | \"relative\" | \"modeled\";\n boundary_type: string;\n boundary_position: null | number;\n unit_below: number;\n unit_above: number;\n ref_id: number;\n}\n\nexport function BoundaryAgeModelOverlay() {\n const col_id = useMacrostratUnits()?.[0]?.col_id;\n const scale = useCompositeScale();\n\n const ageModel = useAPIResult(\n \"https://dev.macrostrat.org/api/v2/age_model\",\n { col_id },\n (res) => res.success.data,\n );\n\n if (ageModel == null) {\n return null;\n }\n\n return h(\n \"div.boundary-age-model\",\n ageModel.map((surface) => {\n const height = scale(surface.model_age);\n\n return h(\"div.boundary-age-model-surface\", {\n key: surface.boundary_id,\n style: { top: `${height}px` },\n });\n }),\n );\n}\n\nexport function ComputedSurfacesOverlay() {\n /** Overlay showing age surfaces. This is like the boundary age model overlay but\n * it is computed on the fly from unit tops and bottoms.\n */\n const units = useMacrostratUnits();\n const surfaces = buildColumnSurfaces(units);\n const scale = useCompositeScale();\n\n return h(\n \"div.boundary-age-model\",\n surfaces.map((surface) => {\n const height = scale(surface.age);\n return h(\"div.boundary-age-model-surface\", {\n key: surface.index,\n style: { top: `${height}px` },\n });\n }),\n );\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;;AAOH,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAoBrB,SAAS;IACd,MAAM,SAAS,CAAA,GAAA,wCAAiB,KAAK,CAAC,EAAE,EAAE;IAC1C,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,MAAM,WAAW,CAAA,GAAA,mBAAW,EAC1B,+CACA;gBAAE;IAAO,GACT,CAAC,MAAQ,IAAI,OAAO,CAAC,IAAI;IAG3B,IAAI,YAAY,MACd,OAAO;IAGT,OAAO,wBACL,0BACA,SAAS,GAAG,CAAC,CAAC;QACZ,MAAM,SAAS,MAAM,QAAQ,SAAS;QAEtC,OAAO,wBAAE,kCAAkC;YACzC,KAAK,QAAQ,WAAW;YACxB,OAAO;gBAAE,KAAK,GAAG,OAAO,EAAE,CAAC;YAAC;QAC9B;IACF;AAEJ;AAEO,SAAS;IACd;;GAEC,GACD,MAAM,QAAQ,CAAA,GAAA,wCAAiB;IAC/B,MAAM,WAAW,CAAA,GAAA,yCAAkB,EAAE;IACrC,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,OAAO,wBACL,0BACA,SAAS,GAAG,CAAC,CAAC;QACZ,MAAM,SAAS,MAAM,QAAQ,GAAG;QAChC,OAAO,wBAAE,kCAAkC;YACzC,KAAK,QAAQ,KAAK;YAClB,OAAO;gBAAE,KAAK,GAAG,OAAO,EAAE,CAAC;YAAC;QAC9B;IACF;AAEJ","sources":["packages/column-views/src/age-model-overlay.ts"],"sourcesContent":["/** An in-development overlay for a column's age model.\n *\n * Age model info:\n * {\n * \"boundary_id\": 8049,\n * \"col_id\": 432,\n * \"section_id\": 3104,\n * \"interval_id\": 268,\n * \"interval_name\": \"Calymmian\",\n * \"age_bottom\": 1600,\n * \"age_top\": 1400,\n * \"rel_position\": 0.85,\n * \"model_age\": 1430,\n * \"boundary_status\": \"absolute\",\n * \"boundary_type\": \"\",\n * \"boundary_position\": null,\n * \"unit_below\": 11541,\n * \"unit_above\": 0,\n * \"ref_id\": 217\n * },\n *\n * */\n\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./age-model-overlay.module.sass\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport { useCompositeScale, useMacrostratUnits } from \"./data-provider\";\nimport { buildColumnSurfaces } from \"./prepare-units/dynamic-scales\";\nconst h = hyper.styled(styles);\n\ninterface AgeModelSurface {\n boundary_id: number;\n col_id: number;\n section_id: number;\n interval_id: number;\n interval_name: string;\n age_bottom: number;\n age_top: number;\n rel_position: number;\n model_age: number;\n boundary_status: \"absolute\" | \"relative\" | \"modeled\";\n boundary_type: string;\n boundary_position: null | number;\n unit_below: number;\n unit_above: number;\n ref_id: number;\n}\n\nexport function BoundaryAgeModelOverlay() {\n const col_id = useMacrostratUnits()?.[0]?.col_id;\n const scale = useCompositeScale();\n\n const ageModel = useAPIResult(\n \"https://dev.macrostrat.org/api/v2/age_model\",\n { col_id },\n (res) => res.success.data,\n );\n\n if (ageModel == null) {\n return null;\n }\n\n return h(\n \"div.boundary-age-model\",\n ageModel.map((surface) => {\n const height = scale(surface.model_age);\n\n return h(\"div.boundary-age-model-surface\", {\n key: surface.boundary_id,\n style: { top: `${height}px` },\n });\n }),\n );\n}\n\nexport function ComputedSurfacesOverlay() {\n /** Overlay showing age surfaces. This is like the boundary age model overlay but\n * it is computed on the fly from unit tops and bottoms.\n */\n const units = useMacrostratUnits();\n const surfaces = buildColumnSurfaces(units);\n const scale = useCompositeScale();\n\n return h(\n \"div.boundary-age-model\",\n surfaces.map((surface) => {\n const height = scale(surface.age);\n return h(\"div.boundary-age-model-surface\", {\n key: surface.index,\n style: { top: `${height}px` },\n });\n }),\n );\n}\n"],"names":[],"version":3,"file":"column-views.9d51a5ab.js.map"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {useMeasurementData as $5dbb619f2c7bef60$export$8a0335fd9ff72150} from "./column-views.a7c5ae16.js";
|
|
2
|
-
import {IsotopeDataPoint as $5f39f3d52558a1d0$export$4cb5d059db4e2bd, IsotopesDataArea as $5f39f3d52558a1d0$export$309ef8546e07d921, useDataLocator as $5f39f3d52558a1d0$export$919dbb10b6b5b75} from "./column-views.
|
|
3
|
-
import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.
|
|
2
|
+
import {IsotopeDataPoint as $5f39f3d52558a1d0$export$4cb5d059db4e2bd, IsotopesDataArea as $5f39f3d52558a1d0$export$309ef8546e07d921, useDataLocator as $5f39f3d52558a1d0$export$919dbb10b6b5b75} from "./column-views.d6c0b7bc.js";
|
|
3
|
+
import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.4b259f9e.js";
|
|
4
4
|
import "./column-views.708140ab.css";
|
|
5
5
|
import $0zDA3$columnviews6992ca88js from "./column-views.6992ca88.js";
|
|
6
6
|
import {useMemo as $0zDA3$useMemo} from "react";
|
|
@@ -184,4 +184,4 @@ function $d71d096cfe00860f$var$ColumnScaleLines(props) {
|
|
|
184
184
|
|
|
185
185
|
|
|
186
186
|
export {$d71d096cfe00860f$export$c69bd0285aa5d775 as IsotopesDataset, $d71d096cfe00860f$export$5d8aa8022c284748 as IsotopesColumn};
|
|
187
|
-
//# sourceMappingURL=column-views.
|
|
187
|
+
//# sourceMappingURL=column-views.9ffc089b.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/column-views/src/facets/carbon-isotopes/isotopes-column.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport hyper from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { AxisBottom } from \"@visx/axis\";\nimport { useMeasurementData } from \"./data-provider\";\n\nimport {\n IsotopesDataArea,\n useDataLocator,\n IsotopeDataPoint,\n} from \"./data-area\";\nimport { referenceMeasuresToColumn } from \"@macrostrat/stratigraphy-utils\";\nimport {\n SVG,\n ColumnLayoutProvider,\n useColumnLayout,\n} from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n} from \"../../data-provider\";\nimport styles from \"./isotopes-column.module.sass\";\nimport { scaleLinear } from \"d3-scale\";\n\nconst h = hyper.styled(styles);\n\ntype IsotopesTextProps = {\n datum: any;\n text: string;\n};\n\nfunction IsotopeText({ datum, text, ...rest }: IsotopesTextProps) {\n const { pointLocator } = useDataLocator();\n const [x, y] = pointLocator(datum);\n return h(\n \"text\",\n {\n x,\n y,\n ...rest,\n },\n text,\n );\n}\n\ninterface ScaleLineProps {\n value: number;\n className?: string;\n labelBottom?: boolean;\n labelOffset?: number;\n strokeDasharray?: string;\n stroke?: string | number;\n}\n\nfunction ScaleLine(props: ScaleLineProps) {\n let { value, className, labelBottom, labelOffset, ...rest } = props;\n const { sections } = useMacrostratColumnData();\n\n const { xScale } = useColumnLayout();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = classNames(className, { zero: value === 0 });\n return h(\"g.tick\", { transform, className, key: value }, [\n h(\n \"g.tick-lines\",\n sections.map((d) => {\n const { scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return h(\"line\", {\n y1,\n y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1,\n });\n }),\n ),\n ]);\n}\n\nfunction unnestPoints(measures) {\n let points = [];\n for (const meas of measures) {\n const vals = meas.measure_value.map((d, i) => {\n return {\n value: d,\n age: meas.measure_age[i],\n position: meas.measure_position[i],\n unit_id: meas.unit_id,\n sample_id: meas.sample_no[i],\n measurement: meas.measurement,\n };\n });\n Array.prototype.push.apply(points, vals);\n }\n return points;\n}\n\ninterface IsotopesDatasetProps {\n color: string;\n parameter: string;\n}\n\ninterface IsotopeColumnProps extends IsotopesDatasetProps {\n width: number;\n tickValues?: number[];\n label: string;\n domain: [number, number];\n transform?: string;\n getHeight?: Function;\n nTicks?: number;\n showAxis?: boolean;\n}\n\nfunction IsotopesDataset(props) {\n const { parameter, color = \"dodgerblue\" } = props;\n const units = useMacrostratUnits();\n const measures = useMeasurementData() ?? [];\n\n const points = useMemo(() => {\n const data = measures.filter((d) => d.measurement === parameter);\n const refMeasures = referenceMeasuresToColumn(units, data);\n return unnestPoints(refMeasures);\n }, [measures, parameter, units]);\n\n return h(\n IsotopesDataArea,\n {\n getHeight(d) {\n return d.age;\n },\n } as any,\n h(\n \"g.data-points\",\n points.map((d) => {\n return h(IsotopeDataPoint, {\n datum: d,\n fill: color,\n });\n }),\n ),\n );\n}\n\nfunction IsotopesColumn(\n props: IsotopeColumnProps & { children?: React.ReactNode },\n) {\n const {\n width = 120,\n domain = [-14, 6],\n parameter,\n label,\n color = \"dodgerblue\",\n children = null,\n transform,\n getHeight,\n showAxis = true,\n tickValues: _tickVals,\n nTicks = 6,\n ...rest\n } = props;\n\n const { totalHeight } = useMacrostratColumnData();\n\n let _children: any = children;\n if (children == null && parameter != null) {\n _children = h(IsotopesDataset, { parameter, color, getHeight });\n }\n\n const xScale = useMemo(\n () => scaleLinear().domain(domain).range([0, width]),\n [domain, width],\n );\n\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n\n return h(\"div.isotopes-column\", [\n h(\n SVG,\n {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15,\n },\n h(\n ColumnLayoutProvider,\n { width, xScale },\n h(\"g.isotopes-column\", { className: parameter, transform }, [\n h(ColumnScaleLines, {\n xScale,\n tickValues,\n width,\n ...rest,\n }),\n _children,\n ]),\n ),\n ),\n h.if(showAxis)(ColumnScaleAxis, {\n width,\n label: label ?? parameter,\n xScale,\n tickValues,\n ...rest,\n }),\n ]);\n}\n\nfunction ColumnScaleAxis(props) {\n const { label, xScale, width, showAxis = true, tickValues, ...rest } = props;\n\n return h(\"div.isotopes-scale-axis\", [\n h(\n SVG,\n {\n innerWidth: width,\n height: 45,\n paddingH: 15,\n },\n [\n h(AxisBottom, {\n scale: xScale,\n tickLength: 5,\n tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label,\n }),\n ],\n ),\n ]);\n}\n\nfunction ColumnScaleLines(props) {\n const { tickValues, xScale } = props;\n\n return h(\n \"g.scale-lines\",\n tickValues.map((value) => {\n return h(ScaleLine, { value });\n }),\n );\n}\n\nexport { IsotopesColumn, IsotopesDataset };\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/facets/carbon-isotopes/isotopes-column.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport hyper from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { AxisBottom } from \"@visx/axis\";\nimport { useMeasurementData } from \"./data-provider\";\n\nimport {\n IsotopesDataArea,\n useDataLocator,\n IsotopeDataPoint,\n} from \"./data-area\";\nimport { referenceMeasuresToColumn } from \"@macrostrat/stratigraphy-utils\";\nimport {\n SVG,\n ColumnLayoutProvider,\n useColumnLayout,\n} from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n} from \"../../data-provider\";\nimport styles from \"./isotopes-column.module.sass\";\nimport { scaleLinear } from \"d3-scale\";\n\nconst h = hyper.styled(styles);\n\ntype IsotopesTextProps = {\n datum: any;\n text: string;\n};\n\nfunction IsotopeText({ datum, text, ...rest }: IsotopesTextProps) {\n const { pointLocator } = useDataLocator();\n const [x, y] = pointLocator(datum);\n return h(\n \"text\",\n {\n x,\n y,\n ...rest,\n },\n text,\n );\n}\n\ninterface ScaleLineProps {\n value: number;\n className?: string;\n labelBottom?: boolean;\n labelOffset?: number;\n strokeDasharray?: string;\n stroke?: string | number;\n}\n\nfunction ScaleLine(props: ScaleLineProps) {\n let { value, className, labelBottom, labelOffset, ...rest } = props;\n const { sections } = useMacrostratColumnData();\n\n const { xScale } = useColumnLayout();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = classNames(className, { zero: value === 0 });\n return h(\"g.tick\", { transform, className, key: value }, [\n h(\n \"g.tick-lines\",\n sections.map((d) => {\n const { scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return h(\"line\", {\n y1,\n y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1,\n });\n }),\n ),\n ]);\n}\n\nfunction unnestPoints(measures) {\n let points = [];\n for (const meas of measures) {\n const vals = meas.measure_value.map((d, i) => {\n return {\n value: d,\n age: meas.measure_age[i],\n position: meas.measure_position[i],\n unit_id: meas.unit_id,\n sample_id: meas.sample_no[i],\n measurement: meas.measurement,\n };\n });\n Array.prototype.push.apply(points, vals);\n }\n return points;\n}\n\ninterface IsotopesDatasetProps {\n color: string;\n parameter: string;\n}\n\ninterface IsotopeColumnProps extends IsotopesDatasetProps {\n width: number;\n tickValues?: number[];\n label: string;\n domain: [number, number];\n transform?: string;\n getHeight?: Function;\n nTicks?: number;\n showAxis?: boolean;\n}\n\nfunction IsotopesDataset(props) {\n const { parameter, color = \"dodgerblue\" } = props;\n const units = useMacrostratUnits();\n const measures = useMeasurementData() ?? [];\n\n const points = useMemo(() => {\n const data = measures.filter((d) => d.measurement === parameter);\n const refMeasures = referenceMeasuresToColumn(units, data);\n return unnestPoints(refMeasures);\n }, [measures, parameter, units]);\n\n return h(\n IsotopesDataArea,\n {\n getHeight(d) {\n return d.age;\n },\n } as any,\n h(\n \"g.data-points\",\n points.map((d) => {\n return h(IsotopeDataPoint, {\n datum: d,\n fill: color,\n });\n }),\n ),\n );\n}\n\nfunction IsotopesColumn(\n props: IsotopeColumnProps & { children?: React.ReactNode },\n) {\n const {\n width = 120,\n domain = [-14, 6],\n parameter,\n label,\n color = \"dodgerblue\",\n children = null,\n transform,\n getHeight,\n showAxis = true,\n tickValues: _tickVals,\n nTicks = 6,\n ...rest\n } = props;\n\n const { totalHeight } = useMacrostratColumnData();\n\n let _children: any = children;\n if (children == null && parameter != null) {\n _children = h(IsotopesDataset, { parameter, color, getHeight });\n }\n\n const xScale = useMemo(\n () => scaleLinear().domain(domain).range([0, width]),\n [domain, width],\n );\n\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n\n return h(\"div.isotopes-column\", [\n h(\n SVG,\n {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15,\n },\n h(\n ColumnLayoutProvider,\n { width, xScale },\n h(\"g.isotopes-column\", { className: parameter, transform }, [\n h(ColumnScaleLines, {\n xScale,\n tickValues,\n width,\n ...rest,\n }),\n _children,\n ]),\n ),\n ),\n h.if(showAxis)(ColumnScaleAxis, {\n width,\n label: label ?? parameter,\n xScale,\n tickValues,\n ...rest,\n }),\n ]);\n}\n\nfunction ColumnScaleAxis(props) {\n const { label, xScale, width, showAxis = true, tickValues, ...rest } = props;\n\n return h(\"div.isotopes-scale-axis\", [\n h(\n SVG,\n {\n innerWidth: width,\n height: 45,\n paddingH: 15,\n },\n [\n h(AxisBottom, {\n scale: xScale,\n tickLength: 5,\n tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label,\n }),\n ],\n ),\n ]);\n}\n\nfunction ColumnScaleLines(props) {\n const { tickValues, xScale } = props;\n\n return h(\n \"g.scale-lines\",\n tickValues.map((value) => {\n return h(ScaleLine, { value });\n }),\n );\n}\n\nexport { IsotopesColumn, IsotopesDataset };\n"],"names":[],"version":3,"file":"column-views.9ffc089b.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.
|
|
1
|
+
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.052498a6.js";
|
|
2
2
|
import {HeightMethod as $1254c5929638d7f9$export$e40aae6f0de9bb95, HybridScaleType as $1254c5929638d7f9$export$45e8e2d7a1794c23} from "./column-views.079119f4.js";
|
|
3
3
|
import {scaleLinear as $a4oUv$scaleLinear} from "d3-scale";
|
|
4
4
|
import {ColumnAxisType as $a4oUv$ColumnAxisType} from "@macrostrat/column-components";
|
|
@@ -203,4 +203,4 @@ function $90d6b105908858a7$export$d02d2d708a7b495f(surfaces, options = {}) {
|
|
|
203
203
|
|
|
204
204
|
|
|
205
205
|
export {$90d6b105908858a7$export$151c207e6887154c as buildColumnSurfaces, $90d6b105908858a7$export$6b39f1b6356d94b6 as buildHybridScale, $90d6b105908858a7$export$d02d2d708a7b495f as buildScaleFromSurfacesSimple, $90d6b105908858a7$export$be7a6f1f0a23d12c as buildApproximateHeightScale};
|
|
206
|
-
//# sourceMappingURL=column-views.
|
|
206
|
+
//# sourceMappingURL=column-views.aa9ede4d.js.map
|