@macrostrat/column-views 2.2.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/esm/{column-views.c2fbcba8.js → column-views.04636815.js} +4 -4
- package/dist/esm/{column-views.c2fbcba8.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.60365cdb.js → column-views.0da4503a.js} +2 -2
- package/dist/esm/{column-views.60365cdb.js.map → column-views.0da4503a.js.map} +1 -1
- package/dist/esm/{column-views.53722d0a.js → column-views.107b47b4.js} +9 -9
- package/dist/esm/{column-views.53722d0a.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.29a551f6.js → column-views.2708e176.js} +22 -16
- 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.d86555b0.js → column-views.2bac03a2.js} +2 -2
- package/dist/esm/{column-views.d86555b0.js.map → column-views.2bac03a2.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.3c9cba65.js +13 -0
- package/dist/esm/{column-views.418f948f.js.map → column-views.3c9cba65.js.map} +1 -1
- package/dist/esm/{column-views.c3495702.js → column-views.3d3e00be.js} +2 -2
- package/dist/esm/{column-views.c3495702.js.map → column-views.3d3e00be.js.map} +1 -1
- package/dist/esm/{column-views.e1bc3cfa.js → column-views.40094dd9.js} +3 -3
- package/dist/esm/{column-views.e1bc3cfa.js.map → column-views.40094dd9.js.map} +1 -1
- package/dist/esm/{column-views.787d7696.js → column-views.44373a90.js} +8 -7
- package/dist/esm/column-views.44373a90.js.map +1 -0
- package/dist/esm/{column-views.8b623b27.js → column-views.488f24b6.js} +2 -2
- package/dist/esm/{column-views.8b623b27.js.map → column-views.488f24b6.js.map} +1 -1
- package/dist/esm/{column-views.4ed90896.js → column-views.4b259f9e.js} +42 -11
- package/dist/esm/column-views.4b259f9e.js.map +1 -0
- 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.382c486d.js → column-views.565b193a.js} +3 -3
- package/dist/esm/{column-views.382c486d.js.map → column-views.565b193a.js.map} +1 -1
- package/dist/esm/{column-views.df34441c.js → column-views.5ca2b219.js} +5 -5
- package/dist/esm/{column-views.df34441c.js.map → column-views.5ca2b219.js.map} +1 -1
- package/dist/esm/{column-views.8284c3a9.js → column-views.5eb4e6ff.js} +5 -5
- package/dist/esm/{column-views.8284c3a9.js.map → column-views.5eb4e6ff.js.map} +1 -1
- package/dist/esm/{column-views.2e854496.js → column-views.5fff0716.js} +3 -3
- package/dist/esm/{column-views.2e854496.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.7683bb52.js → column-views.63d40878.js} +5 -5
- package/dist/esm/{column-views.7683bb52.js.map → column-views.63d40878.js.map} +1 -1
- package/dist/esm/{column-views.abeab9aa.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.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.adec2e4c.js → column-views.92575b87.js} +3 -3
- package/dist/esm/column-views.92575b87.js.map +1 -0
- package/dist/esm/{column-views.41e5f0dc.js → column-views.9d51a5ab.js} +3 -3
- package/dist/esm/{column-views.41e5f0dc.js.map → column-views.9d51a5ab.js.map} +1 -1
- package/dist/esm/{column-views.0ce9b697.js → column-views.9ffc089b.js} +3 -3
- package/dist/esm/{column-views.0ce9b697.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.413217dc.js → column-views.ad2fe46c.js} +2 -2
- package/dist/esm/{column-views.413217dc.js.map → column-views.ad2fe46c.js.map} +1 -1
- package/dist/esm/{column-views.0265cf7f.js → column-views.afe0bb48.js} +15 -10
- package/dist/esm/column-views.afe0bb48.js.map +1 -0
- 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.469a4952.js → column-views.c149f7a5.js} +3 -3
- package/dist/esm/{column-views.469a4952.js.map → column-views.c149f7a5.js.map} +1 -1
- package/dist/esm/column-views.c3c7901a.js +149 -0
- package/dist/esm/column-views.c3c7901a.js.map +1 -0
- 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.b7016f82.css → column-views.cb6fc808.css} +10 -10
- package/dist/esm/column-views.cb6fc808.css.map +1 -0
- package/dist/esm/column-views.cc733361.js.map +1 -1
- package/dist/esm/{column-views.f0b0fc56.js → column-views.ce3a3ac8.js} +2 -2
- package/dist/esm/{column-views.f0b0fc56.js.map → column-views.ce3a3ac8.js.map} +1 -1
- package/dist/esm/{column-views.b08d82e6.js → column-views.d1b49f5c.js} +2 -2
- package/dist/esm/{column-views.b08d82e6.js.map → column-views.d1b49f5c.js.map} +1 -1
- package/dist/esm/{column-views.2aef5df8.js → column-views.d524075b.js} +4 -4
- package/dist/esm/{column-views.2aef5df8.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.bbc77227.js → column-views.d6c0b7bc.js} +2 -2
- package/dist/esm/{column-views.bbc77227.js.map → column-views.d6c0b7bc.js.map} +1 -1
- package/dist/esm/{column-views.b29f8718.js → column-views.dc195174.js} +2 -2
- package/dist/esm/{column-views.b29f8718.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.2eceafb5.js → column-views.e075af15.js} +2 -2
- package/dist/esm/{column-views.2eceafb5.js.map → column-views.e075af15.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.cae1a6a1.js → column-views.f7cdf6be.js} +3 -3
- package/dist/esm/{column-views.cae1a6a1.js.map → column-views.f7cdf6be.js.map} +1 -1
- package/dist/esm/{column-views.81bddbee.js → column-views.faa7e52e.js} +4 -4
- package/dist/esm/{column-views.81bddbee.js.map → column-views.faa7e52e.js.map} +1 -1
- package/dist/esm/index.d.ts +43 -20
- 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.f1ad131a.js → column-views.08bef1f6.js} +2 -2
- package/dist/node/{column-views.f1ad131a.js.map → column-views.08bef1f6.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.6b8424fd.js → column-views.0f401891.js} +2 -2
- package/dist/node/{column-views.6b8424fd.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.ce5904a6.js → column-views.2577dec0.js} +2 -2
- package/dist/node/{column-views.ce5904a6.js.map → column-views.2577dec0.js.map} +1 -1
- package/dist/node/{column-views.45a03acc.js → column-views.2fe8feb9.js} +2 -2
- package/dist/node/{column-views.45a03acc.js.map → column-views.2fe8feb9.js.map} +1 -1
- package/dist/node/{column-views.ebe61439.js → column-views.42bc66a8.js} +2 -2
- package/dist/node/{column-views.ebe61439.js.map → column-views.42bc66a8.js.map} +1 -1
- package/dist/node/{column-views.ae9536b3.js → column-views.465e593b.js} +2 -2
- package/dist/node/{column-views.ae9536b3.js.map → column-views.465e593b.js.map} +1 -1
- package/dist/node/column-views.46efb749.js +2 -0
- package/dist/node/column-views.46efb749.js.map +1 -0
- package/dist/node/{column-views.554d44a7.js → column-views.47440961.js} +2 -2
- package/dist/node/{column-views.554d44a7.js.map → column-views.47440961.js.map} +1 -1
- package/dist/node/column-views.5361f0e2.js +2 -0
- package/dist/node/column-views.5361f0e2.js.map +1 -0
- package/dist/node/{column-views.f0f5cefd.js → column-views.5559de6a.js} +2 -2
- package/dist/node/{column-views.f0f5cefd.js.map → column-views.5559de6a.js.map} +1 -1
- package/dist/node/column-views.56f88b8c.js +2 -0
- package/dist/node/column-views.56f88b8c.js.map +1 -0
- 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.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.07c503d3.js → column-views.6c7f9245.js} +2 -2
- package/dist/node/column-views.6c7f9245.js.map +1 -0
- package/dist/node/{column-views.4b4c214a.js → column-views.75456275.js} +2 -2
- package/dist/node/{column-views.4b4c214a.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.777b9bb6.js +2 -0
- package/dist/node/column-views.777b9bb6.js.map +1 -0
- package/dist/node/{column-views.93febe9b.js → column-views.7c322202.js} +2 -2
- package/dist/node/{column-views.93febe9b.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.fcdc74c4.js → column-views.8e846c57.js} +2 -2
- package/dist/node/{column-views.fcdc74c4.js.map → column-views.8e846c57.js.map} +1 -1
- package/dist/node/{column-views.6919fd2a.js → column-views.8ee8469d.js} +2 -2
- package/dist/node/{column-views.6919fd2a.js.map → column-views.8ee8469d.js.map} +1 -1
- package/dist/node/{column-views.588b02a1.js → column-views.93bde6c1.js} +2 -2
- package/dist/node/{column-views.588b02a1.js.map → column-views.93bde6c1.js.map} +1 -1
- package/dist/node/{column-views.94c84716.js → column-views.a14f0134.js} +2 -2
- package/dist/node/{column-views.94c84716.js.map → column-views.a14f0134.js.map} +1 -1
- 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.b40c1b9c.js +2 -0
- package/dist/node/column-views.b40c1b9c.js.map +1 -0
- package/dist/node/column-views.b6e86cf0.js +2 -0
- package/dist/node/column-views.b6e86cf0.js.map +1 -0
- package/dist/node/{column-views.6099a3a9.js → column-views.c007152b.js} +2 -2
- package/dist/node/{column-views.6099a3a9.js.map → column-views.c007152b.js.map} +1 -1
- package/dist/node/{column-views.db4ccacc.js → column-views.c921fa1a.js} +2 -2
- package/dist/node/{column-views.db4ccacc.js.map → column-views.c921fa1a.js.map} +1 -1
- package/dist/node/{column-views.a1e29a15.js → column-views.c9880a4d.js} +2 -2
- package/dist/node/{column-views.a1e29a15.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.32344397.js → column-views.cd54f1b1.js} +2 -2
- package/dist/node/{column-views.32344397.js.map → column-views.cd54f1b1.js.map} +1 -1
- package/dist/node/{column-views.0201566d.js → column-views.d77d260b.js} +2 -2
- package/dist/node/{column-views.0201566d.js.map → column-views.d77d260b.js.map} +1 -1
- package/dist/node/{column-views.54363c13.js → column-views.d818b387.js} +2 -2
- package/dist/node/{column-views.54363c13.js.map → column-views.d818b387.js.map} +1 -1
- package/dist/node/{column-views.29483479.js → column-views.d8821a96.js} +2 -2
- package/dist/node/{column-views.29483479.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.e803e4ae.css → column-views.ddc6184e.css} +2 -2
- package/dist/node/column-views.ddc6184e.css.map +1 -0
- package/dist/node/{column-views.44952ae6.js → column-views.e264a767.js} +2 -2
- package/dist/node/{column-views.44952ae6.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.57dd069c.js → column-views.ec691859.js} +2 -2
- package/dist/node/{column-views.57dd069c.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.108db52e.js → column-views.f577d065.js} +2 -2
- package/dist/node/{column-views.108db52e.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.module.sass +7 -5
- package/src/column.ts +29 -7
- package/src/correlation-chart/stories/correlation-chart.stories.ts +1 -1
- package/src/data-provider/store.ts +48 -5
- package/src/data-provider/unit-selection.ts +1 -0
- package/src/facets/detrital-zircon/index.ts +78 -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/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.05586d1f.js.map +0 -1
- package/dist/esm/column-views.1151416d.css.map +0 -1
- package/dist/esm/column-views.29a551f6.js.map +0 -1
- package/dist/esm/column-views.3a7179c4.js.map +0 -1
- package/dist/esm/column-views.418f948f.js +0 -15
- package/dist/esm/column-views.4ed90896.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.748dce47.js +0 -95
- package/dist/esm/column-views.748dce47.js.map +0 -1
- package/dist/esm/column-views.787d7696.js.map +0 -1
- package/dist/esm/column-views.a3fabf0f.js.map +0 -1
- package/dist/esm/column-views.abeab9aa.js.map +0 -1
- package/dist/esm/column-views.adec2e4c.js.map +0 -1
- package/dist/esm/column-views.b7016f82.css.map +0 -1
- package/dist/esm/column-views.e17f00d3.js +0 -37
- package/dist/esm/column-views.e17f00d3.js.map +0 -1
- package/dist/esm/column-views.e33ac5c9.css.map +0 -1
- package/dist/esm/column-views.ea4ebbb7.js +0 -31
- package/dist/esm/column-views.ea4ebbb7.js.map +0 -1
- package/dist/esm/column-views.faacfc3c.js +0 -92
- package/dist/esm/column-views.faacfc3c.js.map +0 -1
- package/dist/node/column-views.07c503d3.js.map +0 -1
- package/dist/node/column-views.0e7ac946.js +0 -2
- package/dist/node/column-views.0e7ac946.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.18d54bbb.js +0 -2
- package/dist/node/column-views.18d54bbb.js.map +0 -1
- package/dist/node/column-views.19a84c01.js +0 -2
- package/dist/node/column-views.19a84c01.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.29eb25bd.css +0 -2
- package/dist/node/column-views.29eb25bd.css.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.573cb29d.js +0 -2
- package/dist/node/column-views.573cb29d.js.map +0 -1
- package/dist/node/column-views.5a8bc8e3.js +0 -2
- package/dist/node/column-views.5a8bc8e3.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.92e29010.js +0 -2
- package/dist/node/column-views.92e29010.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.abe0a664.js +0 -2
- package/dist/node/column-views.abe0a664.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.d4545f9f.js +0 -2
- package/dist/node/column-views.d4545f9f.js.map +0 -1
- package/dist/node/column-views.e803e4ae.css.map +0 -1
- package/dist/node/column-views.f7d72702.js +0 -2
- package/dist/node/column-views.f7d72702.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 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,W,C,K,O,A,Q,0B,C,C,a,C,C,wB,C,K,uB,A,Q,O,C,C,kB,C,K,+B,A,Q,M,mB,A,Q,S,C,K,6B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCwBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAyBhB,SAAS,EAAe,CAAyB,EACtD,GAAM,CAAA,mBACJ,EAAqB,CAAA,CAAA,CAAA,cACrB,CAAa,CAAA,mBACb,CAAkB,CAAA,WAClB,EAAa,CAAA,CAAA,CAAA,MACb,EAAQ,GAAA,CAAA,YACR,EAAc,GAAA,CAAA,gBACd,EAAkB,CAAA,CAAA,CAAA,UAClB,EAAY,CAAA,CAAA,CAAA,mBACZ,CAAkB,CACnB,CAAG,EAEE,EAAQ,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,IAGR,EAAM,CAAK,CAAC,EAAE,EAAE,QAEtB,OAAO,EAAE,EAAA,oBAAmB,CAAG,CAAE,MAAA,EAAO,IAAA,CAAI,EAAG,CAC7C,EAAE,EAAoB,CACpB,MAAO,EACP,cAAA,EACA,mBAAA,EACA,WAAA,EACA,UAAA,EACA,mBAAA,EACA,mBAAA,CACF,GACA,EAAE,EAAE,CAAC,GAAiB,EAAA,mBAAkB,CAAG,CACzC,MAAO,EAAQ,CACjB,GACD,CACH,CAEA,SAAS,EAAmB,CAAyB,EACnD,GAAM,CAAA,MACJ,CAAK,CAAA,WACL,CAAU,CAAA,cACV,CAAa,CAAA,mBACb,CAAkB,CAAA,UAClB,CAAS,CAAA,mBACT,CAAkB,CAAA,SAClB,CAAQ,CAAA,mBACR,EAAqB,CAAA,CAAA,CACtB,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAA,YAAE,CAA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","sources":["<anon>","packages/column-views/src/section.ts"],"sourcesContent":["import \"./column-views.f0f5cefd.js\";\nimport \"./column-views.1261be59.js\";\nimport \"./column-views.6099a3a9.js\";\nimport \"./column-views.92e29010.js\";\nimport \"./column-views.07c503d3.js\";\nimport {useMemo as $dA1GT$useMemo} from \"react\";\nimport {useMacrostratIntervals as $dA1GT$useMacrostratIntervals, Timescale as $dA1GT$Timescale, TimescaleOrientation as $dA1GT$TimescaleOrientation} from \"@macrostrat/timescale\";\nimport {SVG as $dA1GT$SVG, ColumnAxisType as $dA1GT$ColumnAxisType} from \"@macrostrat/column-components\";\nimport $dA1GT$macrostrathyper from \"@macrostrat/hyper\";\nimport {Value as $dA1GT$Value} from \"@macrostrat/data-components\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\nvar $4Abge = parcelRequire(\"4Abge\");\n\n\n\n\n\nvar $7YHvf = parcelRequire(\"7YHvf\");\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\n\nconst $69e10b1ec4ac73f6$var$h = (0, $dA1GT$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($7YHvf))));\nfunction $69e10b1ec4ac73f6$export$38cb0ab5af8f50d7(props) {\n const { unconformityLabels: unconformityLabels = true, unitComponent: unitComponent, unitComponentProps: unitComponentProps, showLabels: showLabels = true, width: width = 300, columnWidth: columnWidth = 150, showLabelColumn: showLabelColumn = true, clipUnits: clipUnits = true, maxInternalColumns: maxInternalColumns } = props;\n const units = (0, $wtIgl.useMacrostratUnits)();\n // Get a unique key for the column\n const key = units[0]?.unit_id;\n return $69e10b1ec4ac73f6$var$h((0, $4Abge.LabelTrackerProvider), {\n units: units,\n key: key\n }, [\n $69e10b1ec4ac73f6$var$h($69e10b1ec4ac73f6$var$SectionUnitsColumn, {\n width: columnWidth,\n unitComponent: unitComponent,\n unitComponentProps: unitComponentProps,\n showLabels: showLabels,\n clipUnits: clipUnits,\n maxInternalColumns: maxInternalColumns,\n unconformityLabels: unconformityLabels\n }),\n $69e10b1ec4ac73f6$var$h.if(showLabelColumn)((0, $4Abge.SectionLabelsColumn), {\n width: width - columnWidth\n })\n ]);\n}\nfunction $69e10b1ec4ac73f6$var$SectionUnitsColumn(props) {\n const { width: width, showLabels: showLabels, unitComponent: unitComponent, unitComponentProps: unitComponentProps, clipUnits: clipUnits, maxInternalColumns: maxInternalColumns, axisType: axisType, unconformityLabels: unconformityLabels = true } = props;\n const { sections: sections, totalHeight: totalHeight } = (0, $wtIgl.useMacrostratColumnData)();\n const scaleData = sections.map((section)=>{\n return section.scaleInfo;\n });\n const innerWidth = width - 2;\n return $69e10b1ec4ac73f6$var$h(\"div.section-units-container\", {\n style: {\n width: width\n }\n }, [\n $69e10b1ec4ac73f6$var$h((0, $dA1GT$SVG), {\n className: \"sections\",\n height: totalHeight,\n innerWidth: innerWidth,\n paddingH: 1\n }, sections.map((group)=>{\n const { units: units, scaleInfo: scaleInfo, section_id: section_id } = group;\n const key = `section-${section_id}`;\n return $69e10b1ec4ac73f6$var$h($69e10b1ec4ac73f6$var$SectionUnits, {\n units: units,\n scaleInfo: scaleInfo,\n key: key,\n unitComponent: unitComponent,\n unitComponentProps: unitComponentProps,\n showLabels: showLabels,\n width: innerWidth,\n clipUnits: clipUnits,\n maxInternalColumns: maxInternalColumns\n });\n })),\n $69e10b1ec4ac73f6$var$h.if(unconformityLabels)($69e10b1ec4ac73f6$export$e12e53eeee198b99, {\n width: width,\n sections: scaleData,\n verbose: false\n })\n ]);\n}\nfunction $69e10b1ec4ac73f6$var$SectionUnits(props) {\n // Section with \"squishy\" timescale\n const { units: units, scaleInfo: scaleInfo, unitComponent: unitComponent, showLabels: showLabels = true, width: width = 300, unitComponentProps: unitComponentProps, className: className, clipUnits: clipUnits = true, maxInternalColumns: maxInternalColumns } = props;\n const { domain: domain, pixelScale: pixelScale, pixelHeight: pixelHeight, scale: scale } = scaleInfo;\n /** Ensure that we can arrange units into the maximum number\n * of columns defined by unitComponentProps, but that we don't\n * use more than necessary.\n */ const _unitComponentProps = (0, $dA1GT$useMemo)(()=>{\n return {\n ...unitComponentProps,\n nColumns: Math.min(maxInternalColumns ?? Math.floor(width / 10), unitComponentProps?.nColumns ?? Infinity, Math.max(...units.map((d)=>d.column)) + 1)\n };\n }, [\n units,\n unitComponentProps,\n maxInternalColumns,\n width\n ]);\n const style = {\n \"--section-height\": `${pixelHeight}px`,\n \"--section-width\": `${width}px`\n };\n return $69e10b1ec4ac73f6$var$h(\"g.section\", {\n className: className,\n style: style,\n transform: `translate(0 ${scaleInfo.offset})`\n }, $69e10b1ec4ac73f6$var$h((0, $lgTAP.MacrostratColumnProvider), {\n units: units,\n domain: domain,\n pixelScale: pixelScale,\n scale: scale\n }, $69e10b1ec4ac73f6$var$h((0, $4Abge.CompositeUnitsColumn), {\n width: width,\n showLabels: showLabels,\n unitComponent: unitComponent,\n unitComponentProps: _unitComponentProps,\n clipToFrame: clipUnits\n })));\n}\nfunction $69e10b1ec4ac73f6$export$db2df5a73a6fbe10(props) {\n const { sections: sections } = (0, $wtIgl.useMacrostratColumnData)();\n const sectionScales = sections.map((section)=>{\n return section.scaleInfo;\n });\n return $69e10b1ec4ac73f6$var$h($69e10b1ec4ac73f6$export$463f46772c64d403, {\n packages: sectionScales,\n ...props\n });\n}\nfunction $69e10b1ec4ac73f6$export$463f46772c64d403(props) {\n const { levels: levels = 3, packages: packages, unconformityLabels: unconformityLabels = false } = props;\n // Use intervals from Macrostrat API\n const baseURL = (0, $lgTAP.useMacrostratBaseURL)();\n const intervals = (0, $dA1GT$useMacrostratIntervals)(baseURL);\n let _levels;\n if (typeof levels === \"number\") // If levels is a number, use the most common starting level\n _levels = [\n 2,\n Math.max(2 + Math.min(levels, 5) - 1, 1)\n ];\n else _levels = levels;\n const nCols = _levels[1] - _levels[0] + 1;\n return $69e10b1ec4ac73f6$var$h(\"div.timescale-column\", [\n $69e10b1ec4ac73f6$var$h(\"div.timescales\", packages.map((group)=>{\n const { pixelHeight: pixelHeight, paddingTop: paddingTop, key: key, scale: scale } = group;\n return $69e10b1ec4ac73f6$var$h(\"div.timescale-container\", {\n style: {\n paddingTop: paddingTop,\n \"--timescale-level-count\": nCols\n },\n key: key\n }, [\n $69e10b1ec4ac73f6$var$h((0, $dA1GT$Timescale), {\n orientation: (0, $dA1GT$TimescaleOrientation).VERTICAL,\n length: pixelHeight,\n levels: _levels,\n absoluteAgeScale: true,\n showAgeAxis: false,\n scale: scale,\n intervals: intervals\n })\n ]);\n })),\n $69e10b1ec4ac73f6$var$h.if(unconformityLabels)($69e10b1ec4ac73f6$export$e12e53eeee198b99, {\n width: \"100%\",\n sections: packages,\n className: \"unconformity-labels\",\n axisType: (0, $dA1GT$ColumnAxisType).AGE\n })\n ]);\n}\nfunction $69e10b1ec4ac73f6$export$e12e53eeee198b99(props) {\n const { width: width, sections: sections, className: className, axisType: axisType, verbose: verbose } = props;\n return $69e10b1ec4ac73f6$var$h(\"div.unconformity-labels\", {\n style: {\n width: width\n },\n className: className\n }, sections.map((scaleInfo, i)=>{\n const lastGroup = sections[i - 1];\n const top = scaleInfo.offset - scaleInfo.paddingTop;\n const upperAge = lastGroup?.domain[0];\n const lowerAge = scaleInfo.domain[1];\n return $69e10b1ec4ac73f6$var$h($69e10b1ec4ac73f6$var$Unconformity, {\n axisType: axisType,\n upperAge: upperAge,\n lowerAge: lowerAge,\n style: {\n width: width,\n height: scaleInfo.paddingTop,\n top: top\n },\n verbose: verbose\n });\n }));\n}\nfunction $69e10b1ec4ac73f6$var$Unconformity({ upperAge: upperAge, lowerAge: lowerAge, style: style, axisType: axisType, verbose: verbose = false }) {\n if (upperAge == null || lowerAge == null) return null;\n const ageGap = Math.abs(upperAge - lowerAge);\n let className = null;\n if (ageGap > 1000) className = \"giga\";\n else if (ageGap > 100) className = \"mega\";\n else if (ageGap > 10) className = \"large\";\n else if (ageGap < 1) className = \"small\";\n let val;\n if (axisType === (0, $dA1GT$ColumnAxisType).DEPTH || axisType === (0, $dA1GT$ColumnAxisType).HEIGHT) {\n const _txt = ageGap.toLocaleString(\"en-US\", {\n maximumFractionDigits: 2\n });\n val = $69e10b1ec4ac73f6$var$h((0, $dA1GT$Value), {\n value: _txt,\n unit: \"m\"\n });\n } else val = $69e10b1ec4ac73f6$var$h((0, $iYfAq.Duration), {\n value: ageGap\n });\n let prefix = null;\n if (verbose) prefix = $69e10b1ec4ac73f6$var$h([\n \" \",\n $69e10b1ec4ac73f6$var$h(\"span.prefix\", \" gap\")\n ]);\n return $69e10b1ec4ac73f6$var$h(\"div.unconformity\", {\n style: style,\n className: className\n }, [\n $69e10b1ec4ac73f6$var$h(\"div.unconformity-inner\", $69e10b1ec4ac73f6$var$h(\"div.unconformity-text\", [\n val,\n prefix\n ]))\n ]);\n}\n\n\nexport {$69e10b1ec4ac73f6$export$38cb0ab5af8f50d7 as SectionsColumn, $69e10b1ec4ac73f6$export$e12e53eeee198b99 as UnconformityLabels, $69e10b1ec4ac73f6$export$db2df5a73a6fbe10 as CompositeTimescale, $69e10b1ec4ac73f6$export$463f46772c64d403 as CompositeTimescaleCore};\n//# sourceMappingURL=column-views.312db572.js.map\n","import {\n CompositeUnitsColumn,\n LabelTrackerProvider,\n SectionLabelsColumn,\n} from \"./units\";\nimport { ReactNode, FunctionComponent, useMemo } from \"react\";\nimport {\n Timescale,\n TimescaleOrientation,\n useMacrostratIntervals,\n} from \"@macrostrat/timescale\";\nimport { ColumnAxisType, SVG } from \"@macrostrat/column-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./column.module.sass\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n MacrostratColumnProvider,\n useMacrostratBaseURL,\n} from \"./data-provider\";\nimport { Duration } from \"./unit-details\";\nimport { Value } from \"@macrostrat/data-components\";\nimport type { ExtUnit, PackageScaleLayoutData } from \"./prepare-units/types\";\n\nconst h = hyper.styled(styles);\n\nexport interface SectionSharedProps {\n unitComponent?: FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n children?: ReactNode;\n showLabelColumn?: boolean;\n axisType?: ColumnAxisType;\n className?: string;\n clipUnits?: boolean;\n maxInternalColumns?: number;\n // Space between sections\n verticalSpacing?: number;\n // Whether to render unconformity labels\n unconformityLabels?: boolean;\n}\n\nexport interface SectionProps extends SectionSharedProps {\n units: ExtUnit[];\n scaleInfo: PackageScaleLayoutData;\n}\n\nexport function SectionsColumn(props: SectionSharedProps) {\n const {\n unconformityLabels = true,\n unitComponent,\n unitComponentProps,\n showLabels = true,\n width = 300,\n columnWidth = 150,\n showLabelColumn = true,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const units = useMacrostratUnits();\n\n // Get a unique key for the column\n const key = units[0]?.unit_id;\n\n return h(LabelTrackerProvider, { units, key }, [\n h(SectionUnitsColumn, {\n width: columnWidth,\n unitComponent,\n unitComponentProps,\n showLabels,\n clipUnits,\n maxInternalColumns,\n unconformityLabels,\n }),\n h.if(showLabelColumn)(SectionLabelsColumn, {\n width: width - columnWidth,\n }),\n ]);\n}\n\nfunction SectionUnitsColumn(props: SectionSharedProps) {\n const {\n width,\n showLabels,\n unitComponent,\n unitComponentProps,\n clipUnits,\n maxInternalColumns,\n axisType,\n unconformityLabels = true,\n } = props;\n\n const { sections, totalHeight } = useMacrostratColumnData();\n\n const scaleData: PackageScaleLayoutData[] = sections.map((section) => {\n return section.scaleInfo;\n });\n\n const innerWidth = width - 2;\n\n return h(\"div.section-units-container\", { style: { width } }, [\n h(\n SVG,\n {\n className: \"sections\",\n height: totalHeight,\n innerWidth,\n paddingH: 1,\n },\n sections.map((group) => {\n const { units, scaleInfo, section_id } = group;\n\n const key = `section-${section_id}`;\n return h(\n SectionUnits,\n {\n units,\n scaleInfo,\n key,\n unitComponent,\n unitComponentProps,\n showLabels,\n width: innerWidth,\n clipUnits,\n maxInternalColumns,\n }, // This unconformity is with the section _above_\n );\n }),\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width,\n sections: scaleData,\n verbose: false,\n }),\n ]);\n}\n\nfunction SectionUnits(props: SectionProps) {\n // Section with \"squishy\" timescale\n const {\n units,\n scaleInfo,\n unitComponent,\n showLabels = true,\n width = 300,\n unitComponentProps,\n className,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const { domain, pixelScale, pixelHeight, scale } = scaleInfo;\n\n /** Ensure that we can arrange units into the maximum number\n * of columns defined by unitComponentProps, but that we don't\n * use more than necessary.\n */\n const _unitComponentProps = useMemo(() => {\n return {\n ...unitComponentProps,\n nColumns: Math.min(\n maxInternalColumns ?? Math.floor(width / 10),\n unitComponentProps?.nColumns ?? Infinity,\n Math.max(...units.map((d) => d.column)) + 1,\n ),\n //axisType,\n };\n }, [units, unitComponentProps, maxInternalColumns, width]);\n\n const style = {\n \"--section-height\": `${pixelHeight}px`,\n \"--section-width\": `${width}px`,\n };\n\n return h(\n \"g.section\",\n { className, style, transform: `translate(0 ${scaleInfo.offset})` },\n h(\n MacrostratColumnProvider,\n {\n units,\n domain,\n pixelScale, // Actually pixels per myr,\n scale,\n },\n h(CompositeUnitsColumn, {\n width,\n showLabels,\n unitComponent,\n unitComponentProps: _unitComponentProps,\n clipToFrame: clipUnits,\n }),\n ),\n );\n}\n\ninterface CompositeTimescaleProps {\n levels?: [number, number] | number;\n}\n\nexport function CompositeTimescale(props: CompositeTimescaleProps) {\n const { sections } = useMacrostratColumnData();\n const sectionScales = sections.map((section) => {\n return section.scaleInfo;\n });\n\n return h(CompositeTimescaleCore, {\n packages: sectionScales,\n ...props,\n });\n}\n\ntype CompositeTimescaleCoreProps = CompositeTimescaleProps & {\n packages: PackageScaleLayoutData[];\n unconformityLabels?: boolean;\n};\n\nexport function CompositeTimescaleCore(props: CompositeTimescaleCoreProps) {\n const { levels = 3, packages, unconformityLabels = false } = props;\n\n // Use intervals from Macrostrat API\n const baseURL = useMacrostratBaseURL();\n const intervals = useMacrostratIntervals(baseURL);\n\n let _levels: [number, number];\n if (typeof levels === \"number\") {\n // If levels is a number, use the most common starting level\n _levels = [2, Math.max(2 + Math.min(levels, 5) - 1, 1)];\n } else {\n _levels = levels;\n }\n\n const nCols = _levels[1] - _levels[0] + 1;\n\n return h(\"div.timescale-column\", [\n h(\n \"div.timescales\",\n packages.map((group) => {\n const { pixelHeight, paddingTop, key, scale } = group;\n return h(\n \"div.timescale-container\",\n { style: { paddingTop, \"--timescale-level-count\": nCols }, key },\n [\n h(Timescale, {\n orientation: TimescaleOrientation.VERTICAL,\n length: pixelHeight,\n levels: _levels,\n absoluteAgeScale: true,\n showAgeAxis: false,\n scale,\n intervals,\n }),\n ],\n );\n }),\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width: \"100%\",\n sections: packages,\n className: \"unconformity-labels\",\n axisType: ColumnAxisType.AGE,\n }),\n ]);\n}\n\nexport function UnconformityLabels(props: {\n width: string | number;\n sections: PackageScaleLayoutData[];\n axisType?: ColumnAxisType;\n className?: string;\n verbose?: boolean;\n}) {\n const { width, sections, className, axisType, verbose } = props;\n\n return h(\n \"div.unconformity-labels\",\n {\n style: {\n width,\n },\n className,\n },\n sections.map((scaleInfo, i) => {\n const lastGroup = sections[i - 1];\n const top = scaleInfo.offset - scaleInfo.paddingTop;\n const upperAge = lastGroup?.domain[0];\n const lowerAge = scaleInfo.domain[1];\n return h(Unconformity, {\n axisType,\n upperAge,\n lowerAge,\n style: {\n width,\n height: scaleInfo.paddingTop,\n top,\n },\n verbose,\n });\n }),\n );\n}\n\nfunction Unconformity({\n upperAge,\n lowerAge,\n style,\n axisType,\n verbose = false,\n}) {\n if (upperAge == null || lowerAge == null) {\n return null;\n }\n\n const ageGap = Math.abs(upperAge - lowerAge);\n\n let className: string = null;\n if (ageGap > 1000) {\n className = \"giga\";\n } else if (ageGap > 100) {\n className = \"mega\";\n } else if (ageGap > 10) {\n className = \"large\";\n } else if (ageGap < 1) {\n className = \"small\";\n }\n\n let val: ReactNode;\n if (axisType === ColumnAxisType.DEPTH || axisType === ColumnAxisType.HEIGHT) {\n const _txt = ageGap.toLocaleString(\"en-US\", { maximumFractionDigits: 2 });\n val = h(Value, { value: _txt, unit: \"m\" });\n } else {\n val = h(Duration, { value: ageGap });\n }\n\n let prefix: ReactNode = null;\n if (verbose) {\n prefix = h([\" \", h(\"span.prefix\", \" gap\")]);\n }\n\n return h(\"div.unconformity\", { style, className }, [\n h(\"div.unconformity-inner\", h(\"div.unconformity-text\", [val, prefix])),\n ]);\n}\n"],"names":["useMemo","$dA1GT$useMemo","useMacrostratIntervals","$dA1GT$useMacrostratIntervals","Timescale","$dA1GT$Timescale","TimescaleOrientation","$dA1GT$TimescaleOrientation","SVG","$dA1GT$SVG","ColumnAxisType","$dA1GT$ColumnAxisType","$dA1GT$macrostrathyper","Value","$dA1GT$Value","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$4Abge","$7YHvf","$lgTAP","$wtIgl","$iYfAq","$69e10b1ec4ac73f6$var$h","styled","a","__esModule","default","$69e10b1ec4ac73f6$export$38cb0ab5af8f50d7","props","unconformityLabels","unitComponent","unitComponentProps","showLabels","width","columnWidth","showLabelColumn","clipUnits","maxInternalColumns","units","useMacrostratUnits","key","unit_id","LabelTrackerProvider","$69e10b1ec4ac73f6$var$SectionUnitsColumn","if","SectionLabelsColumn","axisType","sections","totalHeight","useMacrostratColumnData","scaleData","map","section","scaleInfo","innerWidth","style","className","height","paddingH","group","section_id","$69e10b1ec4ac73f6$var$SectionUnits","$69e10b1ec4ac73f6$export$e12e53eeee198b99","verbose","domain","pixelScale","pixelHeight","scale","_unitComponentProps","nColumns","Math","min","floor","Infinity","max","d","column","transform","offset","MacrostratColumnProvider","CompositeUnitsColumn","clipToFrame","$69e10b1ec4ac73f6$export$db2df5a73a6fbe10","$69e10b1ec4ac73f6$export$463f46772c64d403","packages","_levels","levels","intervals","useMacrostratBaseURL","nCols","paddingTop","orientation","VERTICAL","length","absoluteAgeScale","showAgeAxis","AGE","i","lastGroup","top","$69e10b1ec4ac73f6$var$Unconformity","upperAge","lowerAge","val","ageGap","abs","DEPTH","HEIGHT","value","toLocaleString","maximumFractionDigits","unit","Duration","prefix","SectionsColumn","UnconformityLabels","CompositeTimescale","CompositeTimescaleCore"],"version":3,"file":"column-views.312db572.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function t(t,e,a,n){Object.defineProperty(t,e,{get:a,set:n,enumerable:!0,configurable:!0})}var e,a,n={};t(n,"too-many",()=>e,t=>e=t),t(n,"truncated-list",()=>a,t=>a=t),e="sf_8dq_too-many",a="sf_8dq_truncated-list";export{n as default};
|
|
2
|
-
//# sourceMappingURL=column-views.573cb29d.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICAA,EACA,E,E,C,E,E,E,W,I,E,A,G,E,G,E,E,iB,I,E,A,G,E,GADA,EAA6B,kBAC7B,EAAmC,+B,K,O","sources":["<anon>","packages/column-views/src/facets/base-sample-column.module.sass"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $076393f77ad0c0f1$exports = {};\n\n$parcel$export($076393f77ad0c0f1$exports, \"too-many\", () => $076393f77ad0c0f1$export$76144d85d033d82a, (v) => $076393f77ad0c0f1$export$76144d85d033d82a = v);\n$parcel$export($076393f77ad0c0f1$exports, \"truncated-list\", () => $076393f77ad0c0f1$export$12f42f335e4f5e49, (v) => $076393f77ad0c0f1$export$12f42f335e4f5e49 = v);\nvar $076393f77ad0c0f1$export$76144d85d033d82a;\nvar $076393f77ad0c0f1$export$12f42f335e4f5e49;\n$076393f77ad0c0f1$export$76144d85d033d82a = `sf_8dq_too-many`;\n$076393f77ad0c0f1$export$12f42f335e4f5e49 = `sf_8dq_truncated-list`;\n\n\nexport {$076393f77ad0c0f1$exports as default};\n//# sourceMappingURL=column-views.573cb29d.js.map\n",null],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$076393f77ad0c0f1$export$76144d85d033d82a","$076393f77ad0c0f1$export$12f42f335e4f5e49","$076393f77ad0c0f1$exports","default"],"version":3,"file":"column-views.573cb29d.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./column-views.77ace3a2.js";import"./column-views.19a84c01.js";import"./column-views.92e29010.js";import"./column-views.16f336ee.js";import e from"@macrostrat/hyper";import{Box as t,useElementSize as a}from"@macrostrat/ui-components";import{ColumnSVG as n,ColumnAxisType as o}from"@macrostrat/column-components";import{useRef as r}from"react";function s(e,t,a,n){Object.defineProperty(e,t,{get:a,set:n,enumerable:!0,configurable:!0})}var l=globalThis,i={},c={},u=l.parcelRequirea149;null==u&&((u=function(e){if(e in i)return i[e].exports;if(e in c){var t=c[e];delete c[e];var a={id:e,exports:{}};return i[e]=a,t.call(a.exports,a,a.exports),a.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,t){c[e]=t},l.parcelRequirea149=u),u.register;var p={};s(p,"PBDBFossilsColumn",()=>D),s(p,"PBDBOccurrencesMatrix",()=>y),s(p,"FossilDataType",()=>u("dx7no").FossilDataType);var m=u("dx7no"),f=u("fIqIn"),d=u("wtIgl"),x=u("jDygK");let g=e.styled(x&&x.__esModule?x.default:x);function _(e){let{note:t,spacing:a}=e,{data:n,unit:o}=t;return g(f.TruncatedList,{data:n,className:"fossil-collections",itemRenderer:b})}function b({data:e}){return g("a.link-id",{href:`https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${e.cltn_id}`},e.best_name??e.cltn_name)}let h=e=>t=>t.unit_id==e[0].unit_id;function D({columnID:e,type:t=m.FossilDataType.Collections}){let a=(0,m.useFossilData)(e,t);return g(f.BaseMeasurementsColumn,{data:a,noteComponent:_,className:"fossil-collections",matchingUnit:h})}function y({columnID:e}){let a=new Map((0,m.useFossilData)(e,m.FossilDataType.Occurrences)),r=(0,d.useMacrostratColumnData)(),s=function(e,t,a=o.AGE){let n=new Map,r=new Map;for(let[e,a]of t.entries())for(let t of a){let a=t.best_name??t.taxon_name;n.has(a)||(n.set(a,new Set),r.set(a,[])),n.get(a).add(e),r.get(a).push(t)}let s=Array.from(n.entries()).sort((e,t)=>t[0].localeCompare(e[0])),l=new Map;for(let[t,r]of n.entries())l.set(t,function(e,t,a){let n=[],r=null;for(let s of e)t.has(s.unit_id)?null==r?r=a==o.DEPTH||a==o.HEIGHT?[s.t_pos,s.b_pos]:[s.t_age,s.b_age]:a==o.DEPTH||a==o.HEIGHT?r[1]=s.b_pos:r[1]=s.b_age:null!=r&&(n.push(r),r=null);return null!=r&&n.push(r),n}(e,r,a));return{occurrenceMap:t,taxonUnitMap:new Map(s),taxonOccurrenceMap:r,taxonRanges:l}}(r.units,a,r.axisType),l=(0,d.useCompositeScale)(),{taxonRanges:i}=s,c=Array.from(i.entries());return g(t,{className:"taxon-ranges",width:32+16*c.length,height:r.totalHeight},[g(w,{taxonEntries:c,padding:16,spacing:16,scale:l}),g(n,{width:32+16*c.length},g("g.taxa-occurrences-matrix",c.map(([e,t],a)=>g("g",{transform:`translate(${16+16*a})`},[t.map(([e,t])=>g("line",{y1:l(e),y2:l(t)}))]))))])}function w({taxonEntries:e,padding:t,spacing:a,scale:n}){return g("div.taxon-labels",[e.map(([e,o],r)=>{let s=n(o[0]?.[0]??0)-20;return s<200&&(s=0),g(H,{top:s,left:t+r*a,taxonName:e})})])}function H({top:e,left:t,taxonName:n}){let o=r(),s=a(o),l=s?.height??200;return g("div.taxon-label",{style:{top:`${e}px`,marginLeft:`${t}px`,"--label-width":`${l}px`}},g("div.taxon-label-inner",g("div.taxon-label-text",{ref:o},n)))}export{D as PBDBFossilsColumn,y as PBDBOccurrencesMatrix,$8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType};
|
|
2
|
-
//# sourceMappingURL=column-views.5a8bc8e3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,O,C,C,kB,C,K,2B,A,Q,a,C,C,kB,C,K,+B,A,Q,U,C,K,O,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,oB,I,G,E,E,wB,I,G,E,E,iB,I,A,E,S,c,E,I,E,E,S,E,E,S,E,E,S,E,E,SCoBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAkBvB,SAAS,EAAW,CAAsB,EACxC,GAAM,CAAA,KAAE,CAAI,CAAA,QAAE,CAAO,CAAE,CAAG,EACpB,CAAA,KAAE,CAAI,CAAA,KAAE,CAAI,CAAE,CAAG,EAEvB,OAAO,EAAE,EAAA,aAAY,CAAG,CACtB,KAAA,EACA,UAAW,qBACX,aAAc,CAChB,EACF,CAEA,SAAS,EAAmB,CAAA,KAC1B,CAAI,CAGL,EAEC,OAAO,EACL,YACA,CACE,KAAM,CAAC,mEAAmE,EAAE,EAAK,OAAO,CAAA,CAAE,AAC5F,EACA,EAAK,SAAS,EAAI,EAAK,SAAS,CAEpC,CAEA,IAAM,EAAe,AAAC,GAAO,AAAC,GAAM,EAAE,OAAO,EAAI,CAAE,CAAC,EAAE,CAAC,OAAO,CAEvD,SAAS,EAAkB,CAAA,SAChC,CAAQ,CAAA,KACR,EAAO,AAAA,EAAA,cAAa,CAAE,WAAW,CAIlC,EACC,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,EAAU,GAErC,OAAO,EAAE,EAAA,sBAAqB,CAAG,CAC/B,KAAA,EACA,cAAe,EACf,UAAW,qBACX,aAAA,CACF,EACF,CAEO,SAAS,EAAsB,CAAA,SAAE,CAAQ,CAAE,EAUhD,IAAM,EAAgB,IAAI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","sources":["<anon>","packages/column-views/src/facets/fossils/index.ts"],"sourcesContent":["import \"./column-views.77ace3a2.js\";\nimport \"./column-views.19a84c01.js\";\nimport \"./column-views.92e29010.js\";\nimport \"./column-views.16f336ee.js\";\nimport $2jHE4$macrostrathyper from \"@macrostrat/hyper\";\nimport {Box as $2jHE4$Box, useElementSize as $2jHE4$useElementSize} from \"@macrostrat/ui-components\";\nimport {ColumnSVG as $2jHE4$ColumnSVG, ColumnAxisType as $2jHE4$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {useRef as $2jHE4$useRef} from \"react\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $ea2f112131e22f14$exports = {};\n\n$parcel$export($ea2f112131e22f14$exports, \"PBDBFossilsColumn\", () => $ea2f112131e22f14$export$554267114407ef68);\n$parcel$export($ea2f112131e22f14$exports, \"PBDBOccurrencesMatrix\", () => $ea2f112131e22f14$export$652730986cccff7a);\n$parcel$export($ea2f112131e22f14$exports, \"FossilDataType\", () => (parcelRequire(\"dx7no\")).FossilDataType);\n\n\nvar $dx7no = parcelRequire(\"dx7no\");\n\nvar $fIqIn = parcelRequire(\"fIqIn\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $jDygK = parcelRequire(\"jDygK\");\n\nconst $ea2f112131e22f14$var$h = (0, $2jHE4$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($jDygK))));\nfunction $ea2f112131e22f14$var$FossilInfo(props) {\n const { note: note, spacing: spacing } = props;\n const { data: data, unit: unit } = note;\n return $ea2f112131e22f14$var$h((0, $fIqIn.TruncatedList), {\n data: data,\n className: \"fossil-collections\",\n itemRenderer: $ea2f112131e22f14$var$PBDBCollectionLink\n });\n}\nfunction $ea2f112131e22f14$var$PBDBCollectionLink({ data: data }) {\n /** A link to a PBDB collection that handles either an occurrence or collection object */ return $ea2f112131e22f14$var$h(\"a.link-id\", {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${data.cltn_id}`\n }, data.best_name ?? data.cltn_name);\n}\nconst $ea2f112131e22f14$var$matchingUnit = (dz)=>(d)=>d.unit_id == dz[0].unit_id;\nfunction $ea2f112131e22f14$export$554267114407ef68({ columnID: columnID, type: type = (0, $dx7no.FossilDataType).Collections }) {\n const data = (0, $dx7no.useFossilData)(columnID, type);\n return $ea2f112131e22f14$var$h((0, $fIqIn.BaseMeasurementsColumn), {\n data: data,\n noteComponent: $ea2f112131e22f14$var$FossilInfo,\n className: \"fossil-collections\",\n matchingUnit: $ea2f112131e22f14$var$matchingUnit\n });\n}\nfunction $ea2f112131e22f14$export$652730986cccff7a({ columnID: 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 */ const data = (0, $dx7no.useFossilData)(columnID, (0, $dx7no.FossilDataType).Occurrences);\n // convert the data to a map\n const occurrenceMap = new Map(data);\n const col = (0, $wtIgl.useMacrostratColumnData)();\n const matrix = $ea2f112131e22f14$var$createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n const scale = (0, $wtIgl.useCompositeScale)();\n const { taxonRanges: taxonRanges } = matrix;\n const padding = 16;\n const spacing = 16;\n const taxonEntries = Array.from(taxonRanges.entries());\n //const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa\n const width = padding * 2 + spacing * taxonEntries.length;\n return $ea2f112131e22f14$var$h((0, $2jHE4$Box), {\n className: \"taxon-ranges\",\n width: width,\n height: col.totalHeight\n }, [\n $ea2f112131e22f14$var$h($ea2f112131e22f14$var$TaxonOccurrenceLabels, {\n taxonEntries: taxonEntries,\n padding: padding,\n spacing: spacing,\n scale: scale\n }),\n $ea2f112131e22f14$var$h((0, $2jHE4$ColumnSVG), {\n width: padding * 2 + spacing * taxonEntries.length\n }, $ea2f112131e22f14$var$h(\"g.taxa-occurrences-matrix\", taxonEntries.map(([taxonName, ranges], rowIndex)=>{\n const xPosition = padding + rowIndex * spacing;\n return $ea2f112131e22f14$var$h(\"g\", {\n transform: `translate(${xPosition})`\n }, [\n ranges.map(([top, bottom])=>{\n return $ea2f112131e22f14$var$h(\"line\", {\n y1: scale(top),\n y2: scale(bottom)\n });\n })\n ]);\n })))\n ]);\n}\nfunction $ea2f112131e22f14$var$TaxonOccurrenceLabels({ taxonEntries: taxonEntries, padding: padding, spacing: spacing, scale: scale }) {\n return $ea2f112131e22f14$var$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 return $ea2f112131e22f14$var$h($ea2f112131e22f14$var$TaxonLabel, {\n top: topPx,\n left: padding + rowIndex * spacing,\n taxonName: taxonName\n });\n })\n ]);\n}\nfunction $ea2f112131e22f14$var$TaxonLabel({ top: top, left: left, taxonName: taxonName }) {\n const ref = (0, $2jHE4$useRef)();\n const textSize = (0, $2jHE4$useElementSize)(ref);\n const labelWidth = textSize?.height ?? 200;\n return $ea2f112131e22f14$var$h(\"div.taxon-label\", {\n style: {\n top: `${top}px`,\n marginLeft: `${left}px`,\n \"--label-width\": `${labelWidth}px`\n }\n }, $ea2f112131e22f14$var$h(\"div.taxon-label-inner\", $ea2f112131e22f14$var$h(\"div.taxon-label-text\", {\n ref: ref\n }, taxonName)));\n}\nfunction $ea2f112131e22f14$var$TaxonOccurrenceEntry({ xPosition: xPosition, ranges: ranges, scale: scale, name: name }) {\n return $ea2f112131e22f14$var$h(\"g\", {\n transform: `translate(${xPosition})`\n }, [\n ranges.map(([top, bottom])=>{\n return $ea2f112131e22f14$var$h(\"line\", {\n y1: scale(top),\n y2: scale(bottom)\n });\n })\n ]);\n}\nfunction $ea2f112131e22f14$var$createOccurrenceMatrix(units, data, axisType = (0, $2jHE4$ColumnAxisType).AGE) {\n const taxonUnitMap = new Map();\n const taxonOccurrenceMap = new Map();\n for (const [unit_id, occurrences] of data.entries())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 // 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 const taxonRanges = new Map();\n for (const [taxonName, unitSet] of taxonUnitMap.entries())taxonRanges.set(taxonName, $ea2f112131e22f14$var$accumulatePresenceDomains(units, unitSet, axisType));\n return {\n occurrenceMap: data,\n taxonUnitMap: new Map(sortedTaxa),\n taxonOccurrenceMap: taxonOccurrenceMap,\n taxonRanges: taxonRanges\n };\n}\nfunction $ea2f112131e22f14$var$accumulatePresenceDomains(unit, presenceUnits, axisType) {\n const domains = [];\n let currentDomain = null;\n for (const u of unit){\n if (presenceUnits.has(u.unit_id)) {\n if (currentDomain == null) {\n if (axisType == (0, $2jHE4$ColumnAxisType).DEPTH || axisType == (0, $2jHE4$ColumnAxisType).HEIGHT) currentDomain = [\n u.t_pos,\n u.b_pos\n ];\n else currentDomain = [\n u.t_age,\n u.b_age\n ];\n } else if (axisType == (0, $2jHE4$ColumnAxisType).DEPTH || axisType == (0, $2jHE4$ColumnAxisType).HEIGHT) currentDomain[1] = u.b_pos;\n else currentDomain[1] = u.b_age;\n } else if (currentDomain != null) {\n domains.push(currentDomain);\n currentDomain = null;\n }\n }\n if (currentDomain != null) domains.push(currentDomain);\n return domains;\n}\n\n\nexport {$ea2f112131e22f14$export$554267114407ef68 as PBDBFossilsColumn, $ea2f112131e22f14$export$652730986cccff7a as PBDBOccurrencesMatrix, $8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType};\n//# sourceMappingURL=column-views.5a8bc8e3.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport {\n FossilDataType,\n PBDBCollection,\n PBDBOccurrence,\n useFossilData,\n} from \"./provider\";\nimport type { IUnit } from \"../../units\";\nimport { BaseMeasurementsColumn, TruncatedList } from \"../base-sample-column\";\nimport { Box, useElementSize } from \"@macrostrat/ui-components\";\nimport { InternMap } 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 \"./index.module.sass\";\nimport { useRef } from \"react\";\n\nconst h = hyper.styled(styles);\n\nexport { FossilDataType };\n\ninterface FossilItemProps {\n note: {\n data: PBDBCollection[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\nfunction FossilInfo(props: FossilItemProps) {\n const { note, spacing } = props;\n const { data, unit } = note;\n\n return h(TruncatedList, {\n data,\n className: \"fossil-collections\",\n itemRenderer: PBDBCollectionLink,\n });\n}\n\nfunction PBDBCollectionLink({\n data,\n}: {\n data: PBDBCollection | PBDBOccurrence;\n}) {\n /** A link to a PBDB collection that handles either an occurrence or collection object */\n return h(\n \"a.link-id\",\n {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${data.cltn_id}`,\n },\n data.best_name ?? data.cltn_name,\n );\n}\n\nconst matchingUnit = (dz) => (d) => d.unit_id == dz[0].unit_id;\n\nexport function PBDBFossilsColumn({\n columnID,\n type = FossilDataType.Collections,\n}: {\n columnID: number;\n type: FossilDataType;\n}) {\n const data = useFossilData(columnID, type);\n\n return h(BaseMeasurementsColumn, {\n data,\n noteComponent: FossilInfo,\n className: \"fossil-collections\",\n matchingUnit,\n });\n}\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) as InternMap<\n number,\n PBDBOccurrence[]\n >;\n\n // convert the data to a map\n const occurrenceMap = new Map(data);\n\n const col = useMacrostratColumnData();\n const matrix = createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n\n const scale = useCompositeScale();\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":["$2jHE4$macrostrathyper","Box","$2jHE4$Box","useElementSize","$2jHE4$useElementSize","ColumnSVG","$2jHE4$ColumnSVG","ColumnAxisType","$2jHE4$ColumnAxisType","useRef","$2jHE4$useRef","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$ea2f112131e22f14$exports","$ea2f112131e22f14$export$554267114407ef68","$ea2f112131e22f14$export$652730986cccff7a","FossilDataType","$dx7no","$fIqIn","$wtIgl","$jDygK","$ea2f112131e22f14$var$h","styled","a","__esModule","default","$ea2f112131e22f14$var$FossilInfo","props","note","spacing","data","unit","TruncatedList","className","itemRenderer","$ea2f112131e22f14$var$PBDBCollectionLink","href","cltn_id","best_name","cltn_name","$ea2f112131e22f14$var$matchingUnit","dz","d","unit_id","columnID","type","Collections","useFossilData","BaseMeasurementsColumn","noteComponent","matchingUnit","occurrenceMap","Map","Occurrences","col","useMacrostratColumnData","matrix","$ea2f112131e22f14$var$createOccurrenceMatrix","units","axisType","AGE","taxonUnitMap","taxonOccurrenceMap","occurrences","entries","occ","taxonName","taxon_name","has","Set","add","push","sortedTaxa","Array","from","sort","b","localeCompare","taxonRanges","unitSet","$ea2f112131e22f14$var$accumulatePresenceDomains","presenceUnits","domains","currentDomain","u","DEPTH","HEIGHT","t_pos","b_pos","t_age","b_age","scale","useCompositeScale","taxonEntries","width","padding","length","height","totalHeight","$ea2f112131e22f14$var$TaxonOccurrenceLabels","map","ranges","rowIndex","transform","top","bottom","y1","y2","topPx","$ea2f112131e22f14$var$TaxonLabel","left","ref","textSize","labelWidth","style","marginLeft","PBDBFossilsColumn","PBDBOccurrencesMatrix","$8e174c7ae24a4598$export$a990c76b38782f57"],"version":3,"file":"column-views.5a8bc8e3.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{compareAgeRanges as e,AgeRangeRelationship as r}from"@macrostrat/stratigraphy-utils";import{ColumnAxisType as t}from"@macrostrat/column-components";function a(e,r,t,a){Object.defineProperty(e,r,{get:t,set:a,enumerable:!0,configurable:!0})}var n,o={};a(o,"MergeSectionsMode",()=>s),a(o,"unitsOverlap",()=>i),a(o,"getUnitHeightRange",()=>p),a(o,"agesOverlap",()=>c),a(o,"createUnitSorter",()=>f),a(o,"ensureArray",()=>l),a(o,"ensureRealFloat",()=>u);var s=((n={}).ALL="all",n.OVERLAPPING="overlapping",n);let i=function(a,n,o=t.AGE,s=.001){return e(p(a,o),p(n,o),s)!=r.Disjoint};function c(e,r,a=.001){return i(e,r,t.AGE,a)}function p(e,r){switch(r){case t.AGE:return[e.b_clip_pos??e.b_age,e.t_clip_pos??e.t_age];case t.DEPTH:case t.ORDINAL:case t.HEIGHT:return[e.b_clip_pos??e.b_pos,e.t_clip_pos??e.t_pos];default:throw Error(`Unknown axis type: ${r}`)}}let f=e=>(r,t)=>{let a=p(r,e),n=p(t,e),o=a[1]-n[1];return 0!=o?o:a[0]-n[0]};function l(e){return Array.isArray(e)?e:[e]}function u(e){return("string"==typeof e&&(e=parseFloat(e)),isNaN(e))?null:e}export{s as MergeSectionsMode,i as unitsOverlap,p as getUnitHeightRange,c as agesOverlap,f as createUnitSorter,l as ensureArray,u as ensureRealFloat};
|
|
2
|
-
//# sourceMappingURL=column-views.5f3b0b04.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,O,oB,C,C,wB,C,K,gC,A,Q,kB,C,K,+B,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,IC4BY,E,E,C,E,E,E,oB,I,G,E,E,e,I,G,E,E,qB,I,G,E,E,c,I,G,E,E,mB,I,G,E,E,c,I,G,E,E,kB,I,GAAL,IAAK,G,CAAA,E,C,G,G,C,M,E,W,C,cAAA,GAyBL,IAAM,EAA6B,SACxC,CAAC,CACD,CAAC,CACD,EAA2B,AAAA,EAAe,GAAG,CAC7C,EAAoB,IAAK,EAOzB,OAAO,AALK,AAAA,EACV,EAAmB,EAAG,GACtB,EAAmB,EAAG,GACtB,IAEY,AAAA,EAAqB,QAAQ,AAC7C,EAGO,SAAS,EACd,CAAuB,CACvB,CAAuB,CACvB,EAxDS,IAwDa,EAEtB,OAAO,EAAa,EAAG,EAAG,AAAA,EAAe,GAAG,CAAE,EAChD,CAQO,SAAS,EACd,CAAyB,CACzB,CAAwB,EAExB,OAAQ,GACN,KAAK,AAAA,EAAe,GAAG,CACrB,MAAO,CAAC,EAAK,UAAU,EAAI,EAAK,KAAK,CAAE,EAAK,UAAU,EAAI,EAAK,KAAK,CAAC,AACvE,MAAK,AAAA,EAAe,KAAK,CACzB,KAAK,AAAA,EAAe,OAAO,CAC3B,KAAK,AAAA,EAAe,MAAM,CACxB,MAAO,CAAC,EAAK,UAAU,EAAI,EAAK,KAAK,CAAE,EAAK,UAAU,EAAI,EAAK,KAAK,CAAC,AACvE,SACE,MAAM,AAAI,MAAM,CAAC,mBAAmB,EAAE,EAAA,CAAU,CACpD,CACF,CAEO,IAAM,EAAmB,AAAC,GACxB,CAAC,EAAa,KACnB,IAAM,EAAQ,EAAmB,EAAG,GAC9B,EAAQ,EAAmB,EAAG,GAC9B,EAAQ,CAAK,CAAC,EAAE,CAAG,CAAK,CAAC,EAAE,QACjC,AAAI,AAAS,GAAT,EACK,EAEF,CAAK,CAAC,EAAE,CAAG,CAAK,CAAC,EAAE,AAC5B,EAGK,SAAS,EAAe,CAAU,SACvC,AAAI,MAAM,OAAO,CAAC,GACT,EAEF,CAAC,EAAE,AACZ,CAEO,SAAS,EAAgB,CAAyB,QAIvD,CAHI,AAAY,UAAZ,OAAO,GACT,CAAA,EAAI,WAAW,EADjB,EAGI,MAAM,IACD,KAEF,CACT,Q,K,iB,C,K,Y,C,K,kB,C,K,W,C,K,gB,C,K,W,C,K,e","sources":["<anon>","packages/column-views/src/prepare-units/utils.ts"],"sourcesContent":["import {compareAgeRanges as $6wq4o$compareAgeRanges, AgeRangeRelationship as $6wq4o$AgeRangeRelationship} from \"@macrostrat/stratigraphy-utils\";\nimport {ColumnAxisType as $6wq4o$ColumnAxisType} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $f811753598b339f3$exports = {};\n\n$parcel$export($f811753598b339f3$exports, \"MergeSectionsMode\", () => $f811753598b339f3$export$e1644389ce074058);\n$parcel$export($f811753598b339f3$exports, \"unitsOverlap\", () => $f811753598b339f3$export$f1a15f539858307);\n$parcel$export($f811753598b339f3$exports, \"getUnitHeightRange\", () => $f811753598b339f3$export$70e712e2ac0237a);\n$parcel$export($f811753598b339f3$exports, \"agesOverlap\", () => $f811753598b339f3$export$d92a67740c050efb);\n$parcel$export($f811753598b339f3$exports, \"createUnitSorter\", () => $f811753598b339f3$export$ab14c04795685c55);\n$parcel$export($f811753598b339f3$exports, \"ensureArray\", () => $f811753598b339f3$export$d0c8ecbd4ed8940c);\n$parcel$export($f811753598b339f3$exports, \"ensureRealFloat\", () => $f811753598b339f3$export$97de5b0a6b4e4dac);\n\n\nconst $f811753598b339f3$var$dt = 0.001;\nvar $f811753598b339f3$export$e1644389ce074058 = /*#__PURE__*/ function(MergeSectionsMode) {\n MergeSectionsMode[\"ALL\"] = \"all\";\n MergeSectionsMode[\"OVERLAPPING\"] = \"overlapping\";\n return MergeSectionsMode;\n}({});\nconst $f811753598b339f3$export$f1a15f539858307 = function(a, b, axisType = (0, $6wq4o$ColumnAxisType).AGE, tolerance = 0.001) {\n const rel = (0, $6wq4o$compareAgeRanges)($f811753598b339f3$export$70e712e2ac0237a(a, axisType), $f811753598b339f3$export$70e712e2ac0237a(b, axisType), tolerance);\n return rel != (0, $6wq4o$AgeRangeRelationship).Disjoint;\n};\nfunction $f811753598b339f3$export$d92a67740c050efb(a, b, tolerance = $f811753598b339f3$var$dt) {\n return $f811753598b339f3$export$f1a15f539858307(a, b, (0, $6wq4o$ColumnAxisType).AGE, tolerance);\n}\nfunction $f811753598b339f3$export$70e712e2ac0237a(unit, axisType) {\n switch(axisType){\n case (0, $6wq4o$ColumnAxisType).AGE:\n return [\n unit.b_clip_pos ?? unit.b_age,\n unit.t_clip_pos ?? unit.t_age\n ];\n case (0, $6wq4o$ColumnAxisType).DEPTH:\n case (0, $6wq4o$ColumnAxisType).ORDINAL:\n case (0, $6wq4o$ColumnAxisType).HEIGHT:\n return [\n unit.b_clip_pos ?? unit.b_pos,\n unit.t_clip_pos ?? unit.t_pos\n ];\n default:\n throw new Error(`Unknown axis type: ${axisType}`);\n }\n}\nconst $f811753598b339f3$export$ab14c04795685c55 = (axisType)=>{\n return (a, b)=>{\n const a_pos = $f811753598b339f3$export$70e712e2ac0237a(a, axisType);\n const b_pos = $f811753598b339f3$export$70e712e2ac0237a(b, axisType);\n const d_top = a_pos[1] - b_pos[1];\n if (d_top != 0) return d_top;\n return a_pos[0] - b_pos[0];\n };\n};\nfunction $f811753598b339f3$export$d0c8ecbd4ed8940c(x) {\n if (Array.isArray(x)) return x;\n return [\n x\n ];\n}\nfunction $f811753598b339f3$export$97de5b0a6b4e4dac(x) {\n if (typeof x == \"string\") x = parseFloat(x);\n if (isNaN(x)) return null;\n return x;\n}\n\n\nexport {$f811753598b339f3$export$e1644389ce074058 as MergeSectionsMode, $f811753598b339f3$export$f1a15f539858307 as unitsOverlap, $f811753598b339f3$export$70e712e2ac0237a as getUnitHeightRange, $f811753598b339f3$export$d92a67740c050efb as agesOverlap, $f811753598b339f3$export$ab14c04795685c55 as createUnitSorter, $f811753598b339f3$export$d0c8ecbd4ed8940c as ensureArray, $f811753598b339f3$export$97de5b0a6b4e4dac as ensureRealFloat};\n//# sourceMappingURL=column-views.5f3b0b04.js.map\n","import type { BaseUnit } from \"@macrostrat/api-types\";\nimport {\n AgeRangeRelationship,\n compareAgeRanges,\n} from \"@macrostrat/stratigraphy-utils\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { ScaleContinuousNumeric } from \"d3-scale\";\nimport type {\n ColumnScaleOptions,\n CompositeColumnData,\n ExtUnit,\n PackageLayoutData,\n StratigraphicPackage,\n} from \"./types\";\n\nconst dt = 0.001;\n\nexport interface PrepareColumnOptions extends ColumnScaleOptions {\n axisType: ColumnAxisType;\n t_age?: number;\n b_age?: number;\n t_pos?: number;\n b_pos?: number;\n mergeSections?: MergeSectionsMode;\n collapseSmallUnconformities?: boolean | number;\n scale?: ScaleContinuousNumeric<any, any>;\n}\n\nexport enum MergeSectionsMode {\n ALL = \"all\",\n OVERLAPPING = \"overlapping\",\n}\n\nexport interface PreparedColumnData extends CompositeColumnData {\n sections: PackageLayoutData[];\n units: ExtUnit[];\n}\n\ninterface UnitsOverlap {\n (\n a: StratigraphicPackage,\n b: StratigraphicPackage,\n axisType?: ColumnAxisType.AGE,\n tolerance?: number,\n ): boolean;\n (\n a: BaseUnit,\n b: BaseUnit,\n axisType: ColumnAxisType,\n tolerance?: number,\n ): boolean;\n}\n\nexport const unitsOverlap: UnitsOverlap = function (\n a,\n b,\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n tolerance: number = 0.001,\n): boolean {\n const rel = compareAgeRanges(\n getUnitHeightRange(a, axisType),\n getUnitHeightRange(b, axisType),\n tolerance,\n );\n return rel != AgeRangeRelationship.Disjoint;\n};\n\n/** A more permissive overlap function in the age space */\nexport function agesOverlap(\n a: StratigraphicPackage,\n b: StratigraphicPackage,\n tolerance: number = dt,\n): boolean {\n return unitsOverlap(a, b, ColumnAxisType.AGE, tolerance);\n}\n\nexport interface PossiblyClippedUnit extends BaseUnit {\n // Internally created clipped positions\n t_clip_pos?: number;\n b_clip_pos?: number;\n}\n\nexport function getUnitHeightRange(\n unit: PossiblyClippedUnit,\n axisType: ColumnAxisType,\n): [number, number] {\n switch (axisType) {\n case ColumnAxisType.AGE:\n return [unit.b_clip_pos ?? unit.b_age, unit.t_clip_pos ?? unit.t_age];\n case ColumnAxisType.DEPTH:\n case ColumnAxisType.ORDINAL:\n case ColumnAxisType.HEIGHT:\n return [unit.b_clip_pos ?? unit.b_pos, unit.t_clip_pos ?? unit.t_pos];\n default:\n throw new Error(`Unknown axis type: ${axisType}`);\n }\n}\n\nexport const createUnitSorter = (axisType: ColumnAxisType) => {\n return (a: BaseUnit, b: BaseUnit) => {\n const a_pos = getUnitHeightRange(a, axisType);\n const b_pos = getUnitHeightRange(b, axisType);\n const d_top = a_pos[1] - b_pos[1];\n if (d_top != 0) {\n return d_top;\n }\n return a_pos[0] - b_pos[0];\n };\n};\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n if (Array.isArray(x)) {\n return x;\n }\n return [x];\n}\n\nexport function ensureRealFloat(x: number | string | null): number | null {\n if (typeof x == \"string\") {\n x = parseFloat(x);\n }\n if (isNaN(x)) {\n return null;\n }\n return x;\n}\n"],"names":["compareAgeRanges","$6wq4o$compareAgeRanges","AgeRangeRelationship","$6wq4o$AgeRangeRelationship","ColumnAxisType","$6wq4o$ColumnAxisType","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","MergeSectionsMode","$f811753598b339f3$exports","$f811753598b339f3$export$e1644389ce074058","$f811753598b339f3$export$f1a15f539858307","$f811753598b339f3$export$70e712e2ac0237a","$f811753598b339f3$export$d92a67740c050efb","$f811753598b339f3$export$ab14c04795685c55","$f811753598b339f3$export$d0c8ecbd4ed8940c","$f811753598b339f3$export$97de5b0a6b4e4dac","a","b","axisType","AGE","tolerance","rel","Disjoint","unit","b_clip_pos","b_age","t_clip_pos","t_age","DEPTH","ORDINAL","HEIGHT","b_pos","t_pos","Error","a_pos","d_top","x","Array","isArray","parseFloat","isNaN","unitsOverlap","getUnitHeightRange","agesOverlap","createUnitSorter","ensureArray","ensureRealFloat"],"version":3,"file":"column-views.5f3b0b04.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{group as t}from"d3-array";import{createAPIContext as a,useAPIResult as e,useAsyncMemo as n}from"@macrostrat/ui-components";let l=a({baseURL:"https://paleobiodb.org/data1.2",unwrapResponse:t=>t.records});var s,c=((s={}).Occurrences="occs",s.Collections="colls",s);function o(t,{col_id:a}){return e(`/${t}/list.json`,{ms_column:a,show:"full,mslink"},{context:l})}function r(t,a="colls"){return n(async()=>null==t?null:await d(t,a),[t,a])}async function i(t,a){if("colls"!==a)return[];let e=await fetch(`https://macrostrat.org/api/fossils?col_id=${t}`);return(await e.json()).success.data}async function u(t,a){let e=await fetch(`https://paleobiodb.org/data1.2/${a}/list.json?ms_column=${t}&show=mslink,full`);return(await e.json()).records.map("colls"==a?m:p)}async function d(a,e){let[n,l]=await Promise.all([i(a,e),u(a,e)]);return t([...n,...l],t=>t.unit_id)}function p(t){let a=parseInt(t.msu.replace(/^\w+:/,"")),e=parseInt(t.msc.replace(/^\w+:/,"")),n=parseInt(t.oid.replace(/^occ:/,"")),l=parseInt(t.cid.replace(/^col:/,""));return{...t,unit_id:a,col_id:e,taxon_name:t.tna,best_name:t.idn??t.tna,occ_id:n,cltn_id:l,cltn_name:t.nam}}function m(t){let a=null,e=null;null!=t.msu&&(a=parseInt(t.msu.replace(/^\w+:/,""))),null!=t.msc&&(e=parseInt(t.msc.replace(/^\w+:/,"")));let n=t.tna,l=null;null!=t.oid&&t.oid.startsWith("occ:")&&(l=parseInt(t.oid.replace(/^occ:/,""))),null!=t.idn&&(n=t.idn);let s=t.cltn_id;return null!=t.oid&&t.oid.startsWith("col:")?s=parseInt(t.oid.replace(/^col:/,"")):null!=t.cid&&t.cid.startsWith("col:")&&(s=parseInt(t.cid.replace(/^col:/,""))),{...t,unit_id:a,col_id:e,taxon_name:n,occ_id:l,cltn_id:s,cltn_name:t.nam,t_age:t.t_age,b_age:t.b_age}}export{c as FossilDataType,o as usePBDBFossilData,r as useFossilData};
|
|
2
|
-
//# sourceMappingURL=column-views.77ace3a2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["<anon>","packages/column-views/src/facets/fossils/provider.ts"],"sourcesContent":["import {group as $lb6L3$group} from \"d3-array\";\nimport {createAPIContext as $lb6L3$createAPIContext, useAPIResult as $lb6L3$useAPIResult, useAsyncMemo as $lb6L3$useAsyncMemo} from \"@macrostrat/ui-components\";\n\n\n\nconst $8e174c7ae24a4598$var$responseUnwrapper = (d)=>d.records;\nconst $8e174c7ae24a4598$var$pbdbAPIContext = (0, $lb6L3$createAPIContext)({\n baseURL: \"https://paleobiodb.org/data1.2\",\n unwrapResponse: $8e174c7ae24a4598$var$responseUnwrapper\n});\nvar $8e174c7ae24a4598$export$a990c76b38782f57 = /*#__PURE__*/ function(FossilDataType) {\n FossilDataType[\"Occurrences\"] = \"occs\";\n FossilDataType[\"Collections\"] = \"colls\";\n return FossilDataType;\n}({});\nfunction $8e174c7ae24a4598$export$c4ed16553d869511(type, { col_id: col_id }) {\n const params = {\n ms_column: col_id,\n show: \"full,mslink\"\n };\n return (0, $lb6L3$useAPIResult)(`/${type}/list.json`, params, {\n context: $8e174c7ae24a4598$var$pbdbAPIContext\n });\n}\nfunction $8e174c7ae24a4598$export$e6af757fa9780077(col_id, type = \"colls\") {\n // Fossil links are stored in both Macrostrat and PBDB, depending on how the link was assembled. Here\n // we create a unified view of data over both sources.\n return (0, $lb6L3$useAsyncMemo)(async ()=>{\n if (col_id == null) return null;\n return await $8e174c7ae24a4598$var$fetchFossilData(col_id, type);\n }, [\n col_id,\n type\n ]);\n}\nasync function $8e174c7ae24a4598$var$fetchMacrostratFossilData(col_id, type) {\n if (type !== \"colls\") // Macrostrat API only supports collections\n return [];\n // Fetch fossil collections linked to columns from the Macrostrat API\n const resp = await fetch(`https://macrostrat.org/api/fossils?col_id=${col_id}`);\n const res = await resp.json();\n // Create collections from Macrostrat data\n return res.success.data;\n}\nasync function $8e174c7ae24a4598$var$fetchPDBDFossilData(col_id, type) {\n const resp = await fetch(`https://paleobiodb.org/data1.2/${type}/list.json?ms_column=${col_id}&show=mslink,full`);\n const res = await resp.json();\n return res.records.map(type == \"colls\" ? $8e174c7ae24a4598$var$createMacrostratCollection : $8e174c7ae24a4598$var$preprocessOccurrence);\n}\nasync function $8e174c7ae24a4598$var$fetchFossilData(colID, type) {\n const [macrostratData, pbdbData] = await Promise.all([\n $8e174c7ae24a4598$var$fetchMacrostratFossilData(colID, type),\n $8e174c7ae24a4598$var$fetchPDBDFossilData(colID, type)\n ]);\n const data = [\n ...macrostratData,\n ...pbdbData\n ];\n return (0, $lb6L3$group)(data, (d)=>d.unit_id);\n}\nfunction $8e174c7ae24a4598$var$preprocessOccurrence(d) {\n /* Preprocess data for an occurrence into a Macrostrat-like format */ // Standardize names of Macrostrat units and columns\n const unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n const col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n // taxon names may be stored in different fields\n const occ_id = parseInt(d.oid.replace(/^occ:/, \"\"));\n const cltn_id = parseInt(d.cid.replace(/^col:/, \"\"));\n return {\n ...d,\n unit_id: unit_id,\n col_id: col_id,\n taxon_name: d.tna,\n best_name: d.idn ?? d.tna,\n occ_id: occ_id,\n cltn_id: cltn_id,\n cltn_name: d.nam\n };\n}\nfunction $8e174c7ae24a4598$var$createMacrostratCollection(d) {\n /* Preprocess data for a collection into a Macrostrat-like format */ let unit_id = null;\n let col_id = null;\n // Standardize names of Macrostrat units and columns\n if (d.msu != null) unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n if (d.msc != null) col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n // taxon names may be stored in different fields\n let taxon_name = d.tna;\n let occ_id = null;\n if (d.oid != null && d.oid.startsWith(\"occ:\")) occ_id = parseInt(d.oid.replace(/^occ:/, \"\"));\n if (d.idn != null) taxon_name = d.idn;\n let cltn_id = d.cltn_id;\n if (d.oid != null && d.oid.startsWith(\"col:\")) cltn_id = parseInt(d.oid.replace(/^col:/, \"\"));\n else if (d.cid != null && d.cid.startsWith(\"col:\")) cltn_id = parseInt(d.cid.replace(/^col:/, \"\"));\n return {\n ...d,\n unit_id: unit_id,\n col_id: col_id,\n taxon_name: taxon_name,\n occ_id: occ_id,\n cltn_id: cltn_id,\n cltn_name: d.nam,\n t_age: d.t_age,\n b_age: d.b_age\n };\n}\n\n\nexport {$8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType, $8e174c7ae24a4598$export$c4ed16553d869511 as usePBDBFossilData, $8e174c7ae24a4598$export$e6af757fa9780077 as useFossilData};\n//# sourceMappingURL=column-views.77ace3a2.js.map\n","import { group, InternMap } from \"d3-array\";\nimport {\n createAPIContext,\n useAPIResult,\n useAsyncMemo,\n} from \"@macrostrat/ui-components\";\n\nconst responseUnwrapper = (d) => d.records;\n\nconst pbdbAPIContext = createAPIContext({\n baseURL: \"https://paleobiodb.org/data1.2\",\n unwrapResponse: responseUnwrapper,\n});\n\nexport enum FossilDataType {\n Occurrences = \"occs\",\n Collections = \"colls\",\n}\n\nexport function usePBDBFossilData(\n type: FossilDataType,\n { col_id },\n): any[] | null {\n const params = {\n ms_column: col_id,\n show: \"full,mslink\",\n };\n return useAPIResult(`/${type}/list.json`, params, {\n context: pbdbAPIContext,\n });\n}\n\nexport interface PBDBIdentifier {\n unit_id: number;\n col_id: number;\n cltn_id: number;\n}\n\nexport interface PBDBCollection extends PBDBIdentifier {\n cltn_name: string;\n pbdb_occs: number;\n t_age: number;\n b_age: number;\n [key: string]: any; // Allow for additional properties\n}\n\nexport interface PBDBOccurrence extends PBDBIdentifier {\n occ_id: number;\n cltn_id: number;\n taxon_name: string;\n best_name: string;\n [key: string]: any; // Allow for additional properties\n}\n\nexport function useFossilData(\n col_id: number,\n type = FossilDataType.Collections,\n) {\n // Fossil links are stored in both Macrostrat and PBDB, depending on how the link was assembled. Here\n // we create a unified view of data over both sources.\n return useAsyncMemo(async () => {\n if (col_id == null) return null;\n return await fetchFossilData(col_id, type);\n }, [col_id, type]);\n}\n\nasync function fetchMacrostratFossilData(\n col_id: number,\n type: FossilDataType,\n): Promise<PBDBCollection[]> {\n if (type !== FossilDataType.Collections) {\n // Macrostrat API only supports collections\n return [];\n }\n\n // Fetch fossil collections linked to columns from the Macrostrat API\n const resp = await fetch(\n `https://macrostrat.org/api/fossils?col_id=${col_id}`,\n );\n const res = await resp.json();\n // Create collections from Macrostrat data\n return res.success.data;\n}\n\nasync function fetchPDBDFossilData(\n col_id: number,\n type: FossilDataType,\n): Promise<PBDBCollection[]> {\n const resp = await fetch(\n `https://paleobiodb.org/data1.2/${type}/list.json?ms_column=${col_id}&show=mslink,full`,\n );\n const res = await resp.json();\n return res.records.map(\n type == FossilDataType.Collections\n ? createMacrostratCollection\n : preprocessOccurrence,\n );\n}\n\nasync function fetchFossilData(\n colID: number,\n type: FossilDataType,\n): Promise<InternMap<number, PBDBOccurrence[] | PBDBCollection[]>> {\n const [macrostratData, pbdbData] = await Promise.all([\n fetchMacrostratFossilData(colID, type),\n fetchPDBDFossilData(colID, type),\n ]);\n\n const data = [...macrostratData, ...pbdbData];\n\n return group(data, (d) => d.unit_id);\n}\n\nfunction preprocessOccurrence(d): PBDBOccurrence {\n /* Preprocess data for an occurrence into a Macrostrat-like format */\n // Standardize names of Macrostrat units and columns\n const unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n const col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n\n // taxon names may be stored in different fields\n const occ_id = parseInt(d.oid.replace(/^occ:/, \"\"));\n const cltn_id = parseInt(d.cid.replace(/^col:/, \"\"));\n\n return {\n ...d,\n unit_id,\n col_id,\n taxon_name: d.tna,\n best_name: d.idn ?? d.tna,\n occ_id,\n cltn_id,\n cltn_name: d.nam,\n };\n}\n\nfunction createMacrostratCollection(d): PBDBCollection {\n /* Preprocess data for a collection into a Macrostrat-like format */\n let unit_id = null;\n let col_id = null;\n // Standardize names of Macrostrat units and columns\n if (d.msu != null) {\n unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n }\n if (d.msc != null) {\n col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n }\n\n // taxon names may be stored in different fields\n let taxon_name = d.tna;\n let occ_id = null;\n if (d.oid != null && d.oid.startsWith(\"occ:\")) {\n occ_id = parseInt(d.oid.replace(/^occ:/, \"\"));\n }\n if (d.idn != null) {\n taxon_name = d.idn;\n }\n\n let cltn_id = d.cltn_id;\n if (d.oid != null && d.oid.startsWith(\"col:\")) {\n cltn_id = parseInt(d.oid.replace(/^col:/, \"\"));\n } else if (d.cid != null && d.cid.startsWith(\"col:\")) {\n cltn_id = parseInt(d.cid.replace(/^col:/, \"\"));\n }\n\n return {\n ...d,\n unit_id,\n col_id,\n taxon_name,\n occ_id,\n cltn_id,\n cltn_name: d.nam,\n t_age: d.t_age,\n b_age: d.b_age,\n };\n}\n"],"names":["group","$lb6L3$group","createAPIContext","$lb6L3$createAPIContext","useAPIResult","$lb6L3$useAPIResult","useAsyncMemo","$lb6L3$useAsyncMemo","$8e174c7ae24a4598$var$pbdbAPIContext","baseURL","unwrapResponse","d","records","FossilDataType","$8e174c7ae24a4598$export$a990c76b38782f57","$8e174c7ae24a4598$export$c4ed16553d869511","type","col_id","ms_column","show","context","$8e174c7ae24a4598$export$e6af757fa9780077","$8e174c7ae24a4598$var$fetchFossilData","$8e174c7ae24a4598$var$fetchMacrostratFossilData","resp","fetch","res","json","success","data","$8e174c7ae24a4598$var$fetchPDBDFossilData","map","$8e174c7ae24a4598$var$createMacrostratCollection","$8e174c7ae24a4598$var$preprocessOccurrence","colID","macrostratData","pbdbData","Promise","all","unit_id","parseInt","msu","replace","msc","occ_id","oid","cltn_id","cid","taxon_name","tna","best_name","idn","cltn_name","nam","startsWith","t_age","b_age","usePBDBFossilData","useFossilData"],"version":3,"file":"column-views.77ace3a2.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{group as e}from"d3-array";import{useAPIResult as r}from"@macrostrat/ui-components";function s(s){let t=r("/measurements",{...s,measure_phase:"zircon",response:"long",show_values:!0,measurement:"207Pb-206Pb"},s);return null==t?null:e(t,e=>e.unit_id)}export{s as useDetritalMeasurements};
|
|
2
|
-
//# sourceMappingURL=column-views.8f54691f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,O,S,C,K,U,A,Q,gB,C,K,2B,CCkCO,SAAS,EAAwB,CAAU,EAShD,IAAM,EAAyB,AAAA,EAC7B,gBATa,CACb,GAAG,CAAU,CACb,cAAe,SACf,SAAU,OACV,YAAa,CAAA,EAEb,YAAa,aACf,EAIE,UAEF,AAAI,AAAO,MAAP,EAAoB,KACjB,AAAA,EAAM,EAAK,AAAC,GAAM,EAAE,OAAO,CACpC,Q,K,uB","sources":["<anon>","packages/column-views/src/facets/detrital-zircon/provider.ts"],"sourcesContent":["import {group as $6xKzt$group} from \"d3-array\";\nimport {useAPIResult as $6xKzt$useAPIResult} from \"@macrostrat/ui-components\";\n\n\n\nfunction $5fbd0235ca2c694c$export$1b0cf9c36f060135(columnArgs) {\n const params = {\n ...columnArgs,\n measure_phase: \"zircon\",\n response: \"long\",\n show_values: true,\n // Other isotope systems are organized separately\n measurement: \"207Pb-206Pb\"\n };\n const res = (0, $6xKzt$useAPIResult)(\"/measurements\", params, columnArgs);\n if (res == null) return null;\n return (0, $6xKzt$group)(res, (d)=>d.unit_id);\n}\n\n\nexport {$5fbd0235ca2c694c$export$1b0cf9c36f060135 as useDetritalMeasurements};\n//# sourceMappingURL=column-views.8f54691f.js.map\n","import { group } from \"d3-array\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\n\nexport interface MeasurementInfo {\n measurement_id: number;\n measuremeta_id: number;\n measurement: string;\n measure_units: string;\n measure_phase: string;\n method: string;\n n: number;\n ref_id: number;\n sample_name: string;\n geo_unit: string;\n samp_lith: string;\n samp_lith_id: number;\n samp_desc: string;\n samp_age: string;\n lat: number;\n lng: number;\n unit_id: number;\n unit_rel_pos?: any;\n col_id: number;\n strat_name_id: number;\n match_basis: string;\n ref: string;\n measure_value: number[];\n measure_error: number[];\n measure_position: any[];\n measure_n: number[];\n sample_no: string[];\n error_units: string;\n}\n\nexport function useDetritalMeasurements(columnArgs) {\n const params = {\n ...columnArgs,\n measure_phase: \"zircon\",\n response: \"long\",\n show_values: true,\n // Other isotope systems are organized separately\n measurement: \"207Pb-206Pb\",\n };\n const res: MeasurementInfo[] = useAPIResult(\n \"/measurements\",\n params,\n columnArgs,\n );\n if (res == null) return null;\n return group(res, (d) => d.unit_id);\n}\n"],"names":["group","$6xKzt$group","useAPIResult","$6xKzt$useAPIResult","$5fbd0235ca2c694c$export$1b0cf9c36f060135","columnArgs","res","measure_phase","response","show_values","measurement","d","unit_id","useDetritalMeasurements"],"version":3,"file":"column-views.8f54691f.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./column-views.aef76eee.js";import{createContext as t,useMemo as e,useContext as r}from"react";import a from"@macrostrat/hyper";import{createIsolation as o}from"jotai-scope";import{atom as n}from"jotai";function s(t,e,r,a){Object.defineProperty(t,e,{get:r,set:a,enumerable:!0,configurable:!0})}var i=globalThis,u={},c={},l=i.parcelRequirea149;null==l&&((l=function(t){if(t in u)return u[t].exports;if(t in c){var e=c[t];delete c[t];var r={id:t,exports:{}};return u[t]=r,e.call(r.exports,r,r.exports),r.exports}var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(t,e){c[t]=e},i.parcelRequirea149=l),l.register;var f={};s(f,"MacrostratColumnStateProvider",()=>M),s(f,"MacrostratColumnDataProvider",()=>D),s(f,"useMacrostratColumnData",()=>P),s(f,"useMacrostratUnits",()=>g),s(f,"useColumnUnitsMap",()=>S),s(f,"useCompositeScale",()=>y);var m=l("bBAza");let{Provider:d,useAtom:p,useAtomValue:b,useStore:$}=o(),x=n(),C=n(t=>{let e=t(x);if(!e)return null;let r=new Map;return e.forEach(t=>{r.set(t.unit_id,t)}),r});function v({children:t,...e}){let r=null;try{r=$()}catch{r=null}return a(d,{store:r,...e},t)}function M({children:t,units:e}){return a(v,{initialValues:[[x,e]]},t)}let h=t(null);function D({children:t,units:r,sections:o,totalHeight:n,axisType:s}){let i=e(()=>({units:r,sections:o,totalHeight:n,axisType:s}),[r,o,n,s]);return a(M,{units:r},a(h.Provider,{value:i},t))}function P(){let t=r(h);if(!t)throw Error("useMacrostratColumnData must be used within a MacrostratColumnDataProvider");return t}function g(){return b(x)}function S(){try{return b(C)}catch{return null}}function y(){let t=P();return e(()=>(0,m.createCompositeScale)(t.sections,!0),[t.sections])}export{M as MacrostratColumnStateProvider,D as MacrostratColumnDataProvider,P as useMacrostratColumnData,g as useMacrostratUnits,S as useColumnUnitsMap,y as useCompositeScale};
|
|
2
|
-
//# sourceMappingURL=column-views.92e29010.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,Q,iB,C,C,W,C,C,c,C,K,O,A,Q,M,mB,A,Q,mB,C,K,a,A,Q,Q,C,K,O,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,gC,I,G,E,E,+B,I,G,E,E,0B,I,G,E,E,qB,I,G,E,E,oB,I,G,E,E,oB,I,G,I,E,E,SCaA,GAAM,CAAA,SAAE,CAAQ,CAAA,QAAE,CAAO,CAAA,aAAE,CAAY,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,IAOhD,EAAkB,AAAA,IAElB,EAAqB,AAAA,EAAkC,AAAC,IAC5D,IAAM,EAAQ,EAAI,GAClB,GAAI,CAAC,EAAO,OAAO,KACnB,IAAM,EAAU,IAAI,IAIpB,OAHA,EAAM,OAAO,CAAC,AAAC,IACb,EAAQ,GAAG,CAAC,EAAK,OAAO,CAAE,EAC5B,GACO,CACT,GAEA,SAAS,EAAe,CAAA,SAAE,CAAQ,CAAE,GAAG,EAAqB,EAE1D,IAAI,EAAM,KACV,GAAI,CACF,EAAM,GACR,CAAE,KAAM,CAEN,EAAM,IACR,CACA,OAAO,AAAA,EAAE,EAAU,CAAE,MAAO,EAAK,GAAG,CAAI,AAAC,EAAG,EAC9C,CAEO,SAAS,EAA8B,CAAA,SAC5C,CAAQ,CAAA,MACR,CAAK,CAIN,EAKC,OAAO,AAAA,EACL,EACA,CACE,cAAe,CAAC,CAAC,EAAiB,EAAM,CAAC,AAC3C,EACA,EAEJ,CASA,IAAM,EACJ,AAAA,EAA2C,MAEtC,SAAS,EAA6B,CAAA,SAC3C,CAAQ,CAAA,MACR,CAAK,CAAA,SACL,CAAQ,CAAA,YACR,CAAW,CAAA,SACX,CAAQ,CAC8C,EAYtD,IAAM,EAAQ,AAAA,EAAQ,IAEb,CAAA,CACL,MAAA,EACA,SAAA,EACA,YAAA,EACA,SAAA,CACF,CAAA,EACC,CAAC,EAAO,EAAU,EAAa,EAAS,EAE3C,OAAO,AAAA,EACL,EACA,CAAE,MAAA,CAAM,EACR,AAAA,EAAE,EAA4B,QAAQ,CAAE,CAAE,MAAA,CAAM,EAAG,GAEvD,CAEO,SAAS,IACd,IAAM,EAAM,AAAA,EAAW,GACvB,GAAI,CAAC,EACH,MAAM,AAAI,MACR,8EAGJ,OAAO,CACT,CAEO,SAAS,IACd,OAAO,EAAa,EACtB,CAEO,SAAS,IACd,GAAI,CACF,OAAO,EAAa,EACtB,CAAE,KAAM,CACN,OAAO,IACT,CACF,CAEO,SAAS,IACd,IAAM,EAAM,IACZ,OAAO,AAAA,EACL,IAAM,AAAA,CAAA,EAAA,EAAA,oBAAmB,AAAnB,EAAqB,EAAI,QAAQ,CAAE,CAAA,GACzC,CAAC,EAAI,QAAQ,CAAC,CAElB,Q,K,6B,C,K,4B,C,K,uB,C,K,kB,C,K,iB,C,K,iB","sources":["<anon>","packages/column-views/src/data-provider/store.ts"],"sourcesContent":["import \"./column-views.aef76eee.js\";\nimport {createContext as $eJc70$createContext, useMemo as $eJc70$useMemo, useContext as $eJc70$useContext} from \"react\";\nimport $eJc70$macrostrathyper from \"@macrostrat/hyper\";\nimport {createIsolation as $eJc70$createIsolation} from \"jotai-scope\";\nimport {atom as $eJc70$atom} from \"jotai\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $91525b65c57a1e5d$exports = {};\n\n$parcel$export($91525b65c57a1e5d$exports, \"MacrostratColumnStateProvider\", () => $91525b65c57a1e5d$export$ef5395089200109b);\n$parcel$export($91525b65c57a1e5d$exports, \"MacrostratColumnDataProvider\", () => $91525b65c57a1e5d$export$7fec7bd80ff9c10e);\n$parcel$export($91525b65c57a1e5d$exports, \"useMacrostratColumnData\", () => $91525b65c57a1e5d$export$f8509b7cce386c7d);\n$parcel$export($91525b65c57a1e5d$exports, \"useMacrostratUnits\", () => $91525b65c57a1e5d$export$6fb40844db555b2);\n$parcel$export($91525b65c57a1e5d$exports, \"useColumnUnitsMap\", () => $91525b65c57a1e5d$export$7513be0cfd10d9cc);\n$parcel$export($91525b65c57a1e5d$exports, \"useCompositeScale\", () => $91525b65c57a1e5d$export$a7fc62995ec4f76);\n\n\n\nvar $bBAza = parcelRequire(\"bBAza\");\n\n\nconst { Provider: $91525b65c57a1e5d$var$Provider, useAtom: $91525b65c57a1e5d$var$useAtom, useAtomValue: $91525b65c57a1e5d$var$useAtomValue, useStore: $91525b65c57a1e5d$var$useStore } = (0, $eJc70$createIsolation)();\nconst $91525b65c57a1e5d$var$columnUnitsAtom = (0, $eJc70$atom)();\nconst $91525b65c57a1e5d$var$columnUnitsMapAtom = (0, $eJc70$atom)((get)=>{\n const units = get($91525b65c57a1e5d$var$columnUnitsAtom);\n if (!units) return null;\n const unitMap = new Map();\n units.forEach((unit)=>{\n unitMap.set(unit.unit_id, unit);\n });\n return unitMap;\n});\nfunction $91525b65c57a1e5d$var$ScopedProvider({ children: children, ...rest }) {\n // Always use the same store instance in this tree\n let val = null;\n try {\n val = $91525b65c57a1e5d$var$useStore();\n } catch {\n // No store found, create a new one\n val = null;\n }\n return (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$var$Provider, {\n store: val,\n ...rest\n }, children);\n}\nfunction $91525b65c57a1e5d$export$ef5395089200109b({ children: children, units: units }) {\n /** Top-level provider for Macrostrat column data.\n * It is either provided by the Column component itself, or\n * can be hoisted higher in the tree to provide a common data context\n */ return (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$var$ScopedProvider, {\n initialValues: [\n [\n $91525b65c57a1e5d$var$columnUnitsAtom,\n units\n ]\n ]\n }, children);\n}\nconst $91525b65c57a1e5d$var$MacrostratColumnDataContext = (0, $eJc70$createContext)(null);\nfunction $91525b65c57a1e5d$export$7fec7bd80ff9c10e({ children: children, units: units, sections: sections, totalHeight: totalHeight, axisType: axisType }) {\n /** Internal provider for Macrostrat column data.\n * As a general rule, we want to provide data and column-axis\n * height calculations through the context, since these need to\n * be accessed by any component that lays out information on the\n * column.\n *\n * Cross-axis layout and view configuration (e.g., showing and hiding\n * of different components or labels) should be handled through passing\n * props to the components themselves.\n * */ const value = (0, $eJc70$useMemo)(()=>{\n // For now, change ordinal axis types to age axis types\n return {\n units: units,\n sections: sections,\n totalHeight: totalHeight,\n axisType: axisType\n };\n }, [\n units,\n sections,\n totalHeight,\n axisType\n ]);\n return (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$export$ef5395089200109b, {\n units: units\n }, (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$var$MacrostratColumnDataContext.Provider, {\n value: value\n }, children));\n}\nfunction $91525b65c57a1e5d$export$f8509b7cce386c7d() {\n const ctx = (0, $eJc70$useContext)($91525b65c57a1e5d$var$MacrostratColumnDataContext);\n if (!ctx) throw new Error(\"useMacrostratColumnData must be used within a MacrostratColumnDataProvider\");\n return ctx;\n}\nfunction $91525b65c57a1e5d$export$6fb40844db555b2() {\n return $91525b65c57a1e5d$var$useAtomValue($91525b65c57a1e5d$var$columnUnitsAtom);\n}\nfunction $91525b65c57a1e5d$export$7513be0cfd10d9cc() {\n try {\n return $91525b65c57a1e5d$var$useAtomValue($91525b65c57a1e5d$var$columnUnitsMapAtom);\n } catch {\n return null;\n }\n}\nfunction $91525b65c57a1e5d$export$a7fc62995ec4f76() {\n const ctx = $91525b65c57a1e5d$export$f8509b7cce386c7d();\n return (0, $eJc70$useMemo)(()=>(0, $bBAza.createCompositeScale)(ctx.sections, true), [\n ctx.sections\n ]);\n}\n\n\nexport {$91525b65c57a1e5d$export$ef5395089200109b as MacrostratColumnStateProvider, $91525b65c57a1e5d$export$7fec7bd80ff9c10e as MacrostratColumnDataProvider, $91525b65c57a1e5d$export$f8509b7cce386c7d as useMacrostratColumnData, $91525b65c57a1e5d$export$6fb40844db555b2 as useMacrostratUnits, $91525b65c57a1e5d$export$7513be0cfd10d9cc as useColumnUnitsMap, $91525b65c57a1e5d$export$a7fc62995ec4f76 as useCompositeScale};\n//# sourceMappingURL=column-views.92e29010.js.map\n","import { createContext, ReactNode, useContext, useMemo } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n CompositeColumnScale,\n createCompositeScale,\n} from \"../prepare-units/composite-scale\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport type { ExtUnit, PackageLayoutData } from \"../prepare-units\";\n// An isolated jotai store for Macrostrat column usage\n// TODO: there might be a better way to do this using the MacrostratDataProvider or similar\nimport { createIsolation } from \"jotai-scope\";\nimport { atom, type WritableAtom } from \"jotai\";\n\nconst { Provider, useAtom, useAtomValue, useStore } = createIsolation();\n\ntype ProviderProps = {\n children: ReactNode;\n initialValues?: Iterable<[WritableAtom<any, any, any>, any]>;\n};\n\nconst columnUnitsAtom = atom<ExtUnit[]>();\n\nconst columnUnitsMapAtom = atom<Map<number, ExtUnit> | null>((get) => {\n const units = get(columnUnitsAtom);\n if (!units) return null;\n const unitMap = new Map<number, ExtUnit>();\n units.forEach((unit) => {\n unitMap.set(unit.unit_id, unit);\n });\n return unitMap;\n});\n\nfunction ScopedProvider({ children, ...rest }: ProviderProps) {\n // Always use the same store instance in this tree\n let val = null;\n try {\n val = useStore();\n } catch {\n // No store found, create a new one\n val = null;\n }\n return h(Provider, { store: val, ...rest }, children);\n}\n\nexport function MacrostratColumnStateProvider({\n children,\n units,\n}: {\n children: ReactNode;\n units: ExtUnit[];\n}) {\n /** Top-level provider for Macrostrat column data.\n * It is either provided by the Column component itself, or\n * can be hoisted higher in the tree to provide a common data context\n */\n return h(\n ScopedProvider,\n {\n initialValues: [[columnUnitsAtom, units]],\n },\n children,\n );\n}\n\nexport interface MacrostratColumnDataContext {\n units: ExtUnit[];\n sections: PackageLayoutData[];\n totalHeight?: number;\n axisType?: ColumnAxisType;\n}\n\nconst MacrostratColumnDataContext =\n createContext<MacrostratColumnDataContext>(null);\n\nexport function MacrostratColumnDataProvider({\n children,\n units,\n sections,\n totalHeight,\n axisType,\n}: MacrostratColumnDataContext & { children: ReactNode }) {\n /** Internal provider for Macrostrat column data.\n * As a general rule, we want to provide data and column-axis\n * height calculations through the context, since these need to\n * be accessed by any component that lays out information on the\n * column.\n *\n * Cross-axis layout and view configuration (e.g., showing and hiding\n * of different components or labels) should be handled through passing\n * props to the components themselves.\n * */\n\n const value = useMemo(() => {\n // For now, change ordinal axis types to age axis types\n return {\n units,\n sections,\n totalHeight,\n axisType,\n };\n }, [units, sections, totalHeight, axisType]);\n\n return h(\n MacrostratColumnStateProvider,\n { units },\n h(MacrostratColumnDataContext.Provider, { value }, children),\n );\n}\n\nexport function useMacrostratColumnData() {\n const ctx = useContext(MacrostratColumnDataContext);\n if (!ctx) {\n throw new Error(\n \"useMacrostratColumnData must be used within a MacrostratColumnDataProvider\",\n );\n }\n return ctx;\n}\n\nexport function useMacrostratUnits() {\n return useAtomValue(columnUnitsAtom);\n}\n\nexport function useColumnUnitsMap(): Map<number, ExtUnit> | null {\n try {\n return useAtomValue(columnUnitsMapAtom);\n } catch {\n return null;\n }\n}\n\nexport function useCompositeScale(): CompositeColumnScale {\n const ctx = useMacrostratColumnData();\n return useMemo(\n () => createCompositeScale(ctx.sections, true),\n [ctx.sections],\n );\n}\n"],"names":["createContext","$eJc70$createContext","useMemo","$eJc70$useMemo","useContext","$eJc70$useContext","$eJc70$macrostrathyper","createIsolation","$eJc70$createIsolation","atom","$eJc70$atom","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$91525b65c57a1e5d$exports","$91525b65c57a1e5d$export$ef5395089200109b","$91525b65c57a1e5d$export$7fec7bd80ff9c10e","$91525b65c57a1e5d$export$f8509b7cce386c7d","$91525b65c57a1e5d$export$6fb40844db555b2","$91525b65c57a1e5d$export$7513be0cfd10d9cc","$91525b65c57a1e5d$export$a7fc62995ec4f76","$bBAza","Provider","$91525b65c57a1e5d$var$Provider","useAtom","$91525b65c57a1e5d$var$useAtom","useAtomValue","$91525b65c57a1e5d$var$useAtomValue","useStore","$91525b65c57a1e5d$var$useStore","$91525b65c57a1e5d$var$columnUnitsAtom","$91525b65c57a1e5d$var$columnUnitsMapAtom","units","unitMap","Map","forEach","unit","unit_id","$91525b65c57a1e5d$var$ScopedProvider","children","rest","val","store","initialValues","$91525b65c57a1e5d$var$MacrostratColumnDataContext","sections","totalHeight","axisType","value","ctx","createCompositeScale","MacrostratColumnStateProvider","MacrostratColumnDataProvider","useMacrostratColumnData","useMacrostratUnits","useColumnUnitsMap","useCompositeScale"],"version":3,"file":"column-views.92e29010.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./column-views.edb4ba54.js";import"./column-views.aef76eee.js";import"./column-views.5f3b0b04.js";import"./column-views.7f9c7448.js";import{ColumnAxisType as e}from"@macrostrat/column-components";import{useMemo as t}from"react";function o(e,t){return Object.keys(t).forEach(function(o){"default"===o||"__esModule"===o||Object.prototype.hasOwnProperty.call(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[o]}})}),e}function r(e,t,o,r){Object.defineProperty(e,t,{get:o,set:r,enumerable:!0,configurable:!0})}var a=globalThis,n={},s={},i=a.parcelRequirea149;null==i&&((i=function(e){if(e in n)return n[e].exports;if(e in s){var t=s[e];delete s[e];var o={id:e,exports:{}};return n[e]=o,t.call(o.exports,o,o.exports),o.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){s[e]=t},a.parcelRequirea149=i),i.register;var c={};r(c,"usePreparedColumnUnits",()=>b),r(c,"prepareColumnUnits",()=>m),r(c,"preprocessUnits",()=>i("ickj2").preprocessUnits);var p=i("ickj2"),l=i("bBAza"),f=i("iWhRv"),u=i("76iYI");function b(e,o){return t(()=>m(e,o),[e,...Object.values(o)])}function m(t,o){let r,{t_age:a,b_age:n,t_pos:s,b_pos:i}=o,{mergeSections:c=f.MergeSectionsMode.OVERLAPPING,axisType:u,unconformityHeight:b,collapseSmallUnconformities:m=!1,hybridScale:g,scale:d}=o;if(null!=d){let t=d.domain();u==e.AGE?(null==a&&(a=Math.min(...t)),null==n&&(n=Math.max(...t))):(null==s&&(s=Math.min(...t)),null==i&&(i=Math.max(...t)))}let _=t.map(p.preprocessSectionUnit);if(_=_.filter(t=>u==e.AGE?(0,f.agesOverlap)(t,{t_age:a,b_age:n}):(0,f.unitsOverlap)(t,{t_pos:s,b_pos:i},u)),c==f.MergeSectionsMode.ALL){let[e,t]=(0,p.getSectionPosRange)(_,u),[o,a]=(0,p.getSectionAgeRange)(_);r=[{section_id:0,t_pos:t,b_pos:e,t_age:a,b_age:o,units:_}]}else r=u==e.AGE?(0,p.groupUnitsIntoSectionsBySectionID)(_,u):(0,p.groupUnitsIntoSectionsByOverlap)(_,u);for(let t of r)u==e.AGE?(t.t_age=Math.max(t.t_age,a??-1/0),t.b_age=Math.min(t.b_age,n??1/0)):u==e.DEPTH?(t.t_pos=Math.max(t.t_pos,s??-1/0),t.b_pos=Math.min(t.b_pos,i??1/0)):u==e.HEIGHT&&(t.t_pos=Math.max(t.t_pos,s??-1/0),t.b_pos=Math.min(t.b_pos,i??1/0));let $=r;c==f.MergeSectionsMode.OVERLAPPING&&u==e.AGE&&($=(0,p.mergeOverlappingSections)($)),$=$.filter(e=>null!=e);let h=(0,l.computeSectionHeights)($,o);if(m&&null==g){let e=b??30;"number"==typeof m&&(e=m),h=(0,l.collapseUnconformitiesByPixelHeight)(h,e,o)}let{totalHeight:x,sections:M}=(0,l.finalizeSectionHeights)(h,b),S=M.map(e=>({...e,units:(0,p.preprocessUnits)(e,u)}));return{units:S.reduce((e,t)=>{let{units:o}=t;for(let t of o)e.push(t);return e},[]),totalHeight:x,sections:S}}o(c,f),o(c,u);export{b as usePreparedColumnUnits,m as prepareColumnUnits,$57278f42f24b59e5$export$55543e159517d62d as preprocessUnits,$f811753598b339f3$export$e1644389ce074058 as MergeSectionsMode,$f811753598b339f3$export$f1a15f539858307 as unitsOverlap,$f811753598b339f3$export$70e712e2ac0237a as getUnitHeightRange,$f811753598b339f3$export$d92a67740c050efb as agesOverlap,$f811753598b339f3$export$ab14c04795685c55 as createUnitSorter,$f811753598b339f3$export$d0c8ecbd4ed8940c as ensureArray,$f811753598b339f3$export$97de5b0a6b4e4dac as ensureRealFloat,$6a8fb6360a4f5dac$export$45e8e2d7a1794c23 as HybridScaleType,$6a8fb6360a4f5dac$export$e40aae6f0de9bb95 as HeightMethod};
|
|
2
|
-
//# sourceMappingURL=column-views.a16cd1f2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,kB,C,K,+B,A,Q,W,C,K,O,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,yB,I,G,E,E,qB,I,G,E,E,kB,I,A,E,S,e,E,I,E,E,S,E,E,S,E,E,S,E,E,SC8BO,SAAS,EACd,CAAgB,CAChB,CAA6B,EAK7B,OAAO,AAAA,EAAQ,IACN,EAAmB,EAAM,GAC/B,CAAC,KAAS,OAAO,MAAM,CAAC,GAAS,CACtC,CAEO,SAAS,EACd,CAAiB,CACjB,CAA6B,EAI7B,IA6CI,EA7CA,CAAA,MAAE,CAAK,CAAA,MAAE,CAAK,CAAA,MAAE,CAAK,CAAA,MAAE,CAAK,CAAE,CAAG,EAE/B,CAAA,cACJ,EAAgB,AAAA,EAAA,iBAAgB,CAAE,WAAW,CAAA,SAC7C,CAAQ,CAAA,mBACR,CAAkB,CAAA,4BAClB,EAA8B,CAAA,CAAA,CAAA,YAC9B,CAAW,CAAA,MACX,CAAK,CACN,CAAG,EAEJ,GAAI,AAAS,MAAT,EAAe,CAEjB,IAAM,EAAS,EAAM,MAAM,EACvB,CAAA,GAAY,AAAA,EAAe,GAAG,EAC5B,AAAS,MAAT,GAAe,CAAA,EAAQ,KAAK,GAAG,IAAI,EAAvC,EACI,AAAS,MAAT,GAAe,CAAA,EAAQ,KAAK,GAAG,IAAI,EAAvC,IAEI,AAAS,MAAT,GAAe,CAAA,EAAQ,KAAK,GAAG,IAAI,EAAvC,EACI,AAAS,MAAT,GAAe,CAAA,EAAQ,KAAK,GAAG,IAAI,EAAvC,EAEJ,CAIA,IAAI,EA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","sources":["<anon>","packages/column-views/src/prepare-units/index.ts"],"sourcesContent":["import \"./column-views.edb4ba54.js\";\nimport \"./column-views.aef76eee.js\";\nimport \"./column-views.5f3b0b04.js\";\nimport \"./column-views.7f9c7448.js\";\nimport {ColumnAxisType as $7dPhe$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {useMemo as $7dPhe$useMemo} from \"react\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $031426a894870747$exports = {};\n\n$parcel$export($031426a894870747$exports, \"usePreparedColumnUnits\", () => $031426a894870747$export$206a0cb85295e433);\n$parcel$export($031426a894870747$exports, \"prepareColumnUnits\", () => $031426a894870747$export$be8c5a449df4bde4);\n$parcel$export($031426a894870747$exports, \"preprocessUnits\", () => (parcelRequire(\"ickj2\")).preprocessUnits);\n\nvar $ickj2 = parcelRequire(\"ickj2\");\n\n\n\nvar $bBAza = parcelRequire(\"bBAza\");\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $76iYI = parcelRequire(\"76iYI\");\nfunction $031426a894870747$export$206a0cb85295e433(data, options) {\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 */ return (0, $7dPhe$useMemo)(()=>{\n return $031426a894870747$export$be8c5a449df4bde4(data, options);\n }, [\n data,\n ...Object.values(options)\n ]);\n}\nfunction $031426a894870747$export$be8c5a449df4bde4(units, options) {\n /** 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;\n const { mergeSections: mergeSections = (0, $iWhRv.MergeSectionsMode).OVERLAPPING, axisType: axisType, unconformityHeight: unconformityHeight, collapseSmallUnconformities: collapseSmallUnconformities = false, hybridScale: hybridScale, scale: scale } = options;\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 == (0, $7dPhe$ColumnAxisType).AGE) {\n if (t_age == null) t_age = Math.min(...domain);\n if (b_age == null) b_age = Math.max(...domain);\n } else {\n if (t_pos == null) t_pos = Math.min(...domain);\n if (b_pos == null) b_pos = Math.max(...domain);\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((0, $ickj2.preprocessSectionUnit));\n /** Prototype filtering to age range */ units1 = units1.filter((d)=>{\n // Filter units by t_age and b_age, inclusive\n if (axisType == (0, $7dPhe$ColumnAxisType).AGE) return (0, $iWhRv.agesOverlap)(d, {\n t_age: t_age,\n b_age: b_age\n });\n else return (0, $iWhRv.unitsOverlap)(d, {\n t_pos: t_pos,\n b_pos: b_pos\n }, axisType);\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 let sections0;\n if (mergeMode == (0, $iWhRv.MergeSectionsMode).ALL) {\n // For the \"merge sections\" mode, we need to create a single section\n const [b_unit_pos, t_unit_pos] = (0, $ickj2.getSectionPosRange)(units1, axisType);\n const [b_unit_age, t_unit_age] = (0, $ickj2.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 * */ 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 == (0, $7dPhe$ColumnAxisType).AGE) sections0 = (0, $ickj2.groupUnitsIntoSectionsBySectionID)(units1, axisType);\n else sections0 = (0, $ickj2.groupUnitsIntoSectionsByOverlap)(units1, axisType);\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 == (0, $7dPhe$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 == (0, $7dPhe$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 == (0, $7dPhe$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 /** 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 */ let sections = sections0;\n if (mergeSections == (0, $iWhRv.MergeSectionsMode).OVERLAPPING && axisType == (0, $7dPhe$ColumnAxisType).AGE) sections = (0, $ickj2.mergeOverlappingSections)(sections);\n // Filter out undefined sections just in case\n sections = sections.filter((d)=>d != null);\n // SCALES\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 */ let sectionsWithScales = (0, $bBAza.computeSectionHeights)(sections, options);\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\") threshold = collapseSmallUnconformities;\n sectionsWithScales = (0, $bBAza.collapseUnconformitiesByPixelHeight)(sectionsWithScales, threshold, options);\n }\n /** Prepare section scale information using groups */ let { totalHeight: totalHeight, sections: sections2 } = (0, $bBAza.finalizeSectionHeights)(sectionsWithScales, unconformityHeight);\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 * */ const sectionsOut = sections2.map((section)=>{\n return {\n ...section,\n units: (0, $ickj2.preprocessUnits)(section, axisType)\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 */ const units2 = sectionsOut.reduce((acc, group)=>{\n const { units: units } = group;\n for (const unit of units)acc.push(unit);\n return acc;\n }, []);\n return {\n units: units2,\n totalHeight: totalHeight,\n sections: sectionsOut\n };\n}\n$parcel$exportWildcard($031426a894870747$exports, $iWhRv);\n$parcel$exportWildcard($031426a894870747$exports, $76iYI);\n\n\nexport {$031426a894870747$export$206a0cb85295e433 as usePreparedColumnUnits, $031426a894870747$export$be8c5a449df4bde4 as prepareColumnUnits, $57278f42f24b59e5$export$55543e159517d62d as preprocessUnits, $f811753598b339f3$export$e1644389ce074058 as MergeSectionsMode, $f811753598b339f3$export$f1a15f539858307 as unitsOverlap, $f811753598b339f3$export$70e712e2ac0237a as getUnitHeightRange, $f811753598b339f3$export$d92a67740c050efb as agesOverlap, $f811753598b339f3$export$ab14c04795685c55 as createUnitSorter, $f811753598b339f3$export$d0c8ecbd4ed8940c as ensureArray, $f811753598b339f3$export$97de5b0a6b4e4dac as ensureRealFloat, $6a8fb6360a4f5dac$export$45e8e2d7a1794c23 as HybridScaleType, $6a8fb6360a4f5dac$export$e40aae6f0de9bb95 as HeightMethod};\n//# sourceMappingURL=column-views.a16cd1f2.js.map\n","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 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 } else {\n if (t_pos == null) t_pos = Math.min(...domain);\n if (b_pos == null) b_pos = Math.max(...domain);\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 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,\n sections: sectionsOut,\n };\n}\n"],"names":["ColumnAxisType","$7dPhe$ColumnAxisType","useMemo","$7dPhe$useMemo","$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$export","e","n","v","s","set","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$031426a894870747$exports","$031426a894870747$export$206a0cb85295e433","$031426a894870747$export$be8c5a449df4bde4","preprocessUnits","$ickj2","$bBAza","$iWhRv","$76iYI","data","options","values","units","sections0","t_age","b_age","t_pos","b_pos","mergeSections","MergeSectionsMode","OVERLAPPING","axisType","unconformityHeight","collapseSmallUnconformities","hybridScale","scale","domain","AGE","Math","min","max","units1","map","preprocessSectionUnit","filter","d","agesOverlap","unitsOverlap","mergeMode","ALL","b_unit_pos","t_unit_pos","getSectionPosRange","b_unit_age","t_unit_age","getSectionAgeRange","section_id","groupUnitsIntoSectionsBySectionID","groupUnitsIntoSectionsByOverlap","section","Infinity","DEPTH","HEIGHT","sections","mergeOverlappingSections","sectionsWithScales","computeSectionHeights","threshold","collapseUnconformitiesByPixelHeight","totalHeight","sections2","finalizeSectionHeights","sectionsOut","reduce","acc","group","unit","push","usePreparedColumnUnits","prepareColumnUnits","$57278f42f24b59e5$export$55543e159517d62d","$f811753598b339f3$export$e1644389ce074058","$f811753598b339f3$export$f1a15f539858307","$f811753598b339f3$export$70e712e2ac0237a","getUnitHeightRange","$f811753598b339f3$export$d92a67740c050efb","$f811753598b339f3$export$ab14c04795685c55","createUnitSorter","$f811753598b339f3$export$d0c8ecbd4ed8940c","ensureArray","$f811753598b339f3$export$97de5b0a6b4e4dac","ensureRealFloat","$6a8fb6360a4f5dac$export$45e8e2d7a1794c23","HybridScaleType","$6a8fb6360a4f5dac$export$e40aae6f0de9bb95","HeightMethod"],"version":3,"file":"column-views.a16cd1f2.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./column-views.5a8bc8e3.js";import"./column-views.d4545f9f.js";import"./column-views.93febe9b.js";import"./column-views.0e7ac946.js";import"./column-views.19a84c01.js";function e(e,a){return Object.keys(a).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return a[r]}})}),e}var a=globalThis,r={},t={},o=a.parcelRequirea149;null==o&&((o=function(e){if(e in r)return r[e].exports;if(e in t){var a=t[e];delete t[e];var o={id:e,exports:{}};return r[e]=o,a.call(o.exports,o,o.exports),o.exports}var c=Error("Cannot find module '"+e+"'");throw c.code="MODULE_NOT_FOUND",c}).register=function(e,a){t[e]=a},a.parcelRequirea149=o),o.register;var c={},f=o("3S9SB"),s=o("7kahb"),n=o("28PcI"),$=o("2koQo"),u=o("fIqIn");e(c,f),e(c,s),e(c,n),e(c,$),e(c,u);export{$ea2f112131e22f14$export$554267114407ef68 as PBDBFossilsColumn,$ea2f112131e22f14$export$652730986cccff7a as PBDBOccurrencesMatrix,$8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType,$68f55e74a5c97233$export$f176396e104db8d5 as DetritalColumn,$68f55e74a5c97233$export$1b3047373cd1c8c7 as DetritalGroup,$5ccf8f2b270f7458$export$c69bd0285aa5d775 as IsotopesDataset,$5ccf8f2b270f7458$export$5d8aa8022c284748 as IsotopesColumn,$5cb80f5b33baeaea$export$c644ef985ce7a4c4 as MeasurementDataContext,$5cb80f5b33baeaea$export$5f01d5b342a89841 as MeasurementDataProvider,$5cb80f5b33baeaea$export$8a0335fd9ff72150 as useMeasurementData,$30f674067bcc490b$export$c49cf57576706bab as SGPMeasurementsColumn,$2e4f0c6a68e03928$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn,$2e4f0c6a68e03928$export$653e47a7a0da0f0d as TruncatedList};
|
|
2
|
-
//# sourceMappingURL=column-views.abe0a664.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,G,E,E,G,E,E,G,E,E,G,E,E,U,6C,iB,C,6C,qB,C,6C,c,C,6C,c,C,6C,a,C,6C,e,C,6C,c,C,6C,sB,C,6C,uB,C,6C,kB,C,6C,qB,C,6C,sB,C,6C,a","sources":["<anon>","packages/column-views/src/facets/index.ts"],"sourcesContent":["import \"./column-views.5a8bc8e3.js\";\nimport \"./column-views.d4545f9f.js\";\nimport \"./column-views.93febe9b.js\";\nimport \"./column-views.0e7ac946.js\";\nimport \"./column-views.19a84c01.js\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $a66a583913c03b09$exports = {};\n\nvar $3S9SB = parcelRequire(\"3S9SB\");\n\nvar $7kahb = parcelRequire(\"7kahb\");\n\nvar $28PcI = parcelRequire(\"28PcI\");\n\nvar $2koQo = parcelRequire(\"2koQo\");\n\nvar $fIqIn = parcelRequire(\"fIqIn\");\n$parcel$exportWildcard($a66a583913c03b09$exports, $3S9SB);\n$parcel$exportWildcard($a66a583913c03b09$exports, $7kahb);\n$parcel$exportWildcard($a66a583913c03b09$exports, $28PcI);\n$parcel$exportWildcard($a66a583913c03b09$exports, $2koQo);\n$parcel$exportWildcard($a66a583913c03b09$exports, $fIqIn);\n\n\nexport {$ea2f112131e22f14$export$554267114407ef68 as PBDBFossilsColumn, $ea2f112131e22f14$export$652730986cccff7a as PBDBOccurrencesMatrix, $8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType, $68f55e74a5c97233$export$f176396e104db8d5 as DetritalColumn, $68f55e74a5c97233$export$1b3047373cd1c8c7 as DetritalGroup, $5ccf8f2b270f7458$export$c69bd0285aa5d775 as IsotopesDataset, $5ccf8f2b270f7458$export$5d8aa8022c284748 as IsotopesColumn, $5cb80f5b33baeaea$export$c644ef985ce7a4c4 as MeasurementDataContext, $5cb80f5b33baeaea$export$5f01d5b342a89841 as MeasurementDataProvider, $5cb80f5b33baeaea$export$8a0335fd9ff72150 as useMeasurementData, $30f674067bcc490b$export$c49cf57576706bab as SGPMeasurementsColumn, $2e4f0c6a68e03928$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $2e4f0c6a68e03928$export$653e47a7a0da0f0d as TruncatedList};\n//# sourceMappingURL=column-views.abe0a664.js.map\n","export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\nexport * from \"./base-sample-column\";\n"],"names":["$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$a66a583913c03b09$exports","$3S9SB","$7kahb","$28PcI","$2koQo","$fIqIn","$ea2f112131e22f14$export$554267114407ef68","PBDBFossilsColumn","$ea2f112131e22f14$export$652730986cccff7a","PBDBOccurrencesMatrix","$8e174c7ae24a4598$export$a990c76b38782f57","FossilDataType","$68f55e74a5c97233$export$f176396e104db8d5","DetritalColumn","$68f55e74a5c97233$export$1b3047373cd1c8c7","DetritalGroup","$5ccf8f2b270f7458$export$c69bd0285aa5d775","IsotopesDataset","$5ccf8f2b270f7458$export$5d8aa8022c284748","IsotopesColumn","$5cb80f5b33baeaea$export$c644ef985ce7a4c4","MeasurementDataContext","$5cb80f5b33baeaea$export$5f01d5b342a89841","MeasurementDataProvider","$5cb80f5b33baeaea$export$8a0335fd9ff72150","useMeasurementData","$30f674067bcc490b$export$c49cf57576706bab","SGPMeasurementsColumn","$2e4f0c6a68e03928$export$ce5c4f2fdf4e644d","BaseMeasurementsColumn","$2e4f0c6a68e03928$export$653e47a7a0da0f0d","TruncatedList"],"version":3,"file":"column-views.abe0a664.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.sf_8dq_truncated-list{border-left:1px solid var(--column-stroke-color);margin:1px 0;padding-left:.2em;font-size:.9em;list-style:none}.sf_8dq_truncated-list li{display:inline}.sf_8dq_truncated-list li:not(:last-child):after{content:", ";color:var(--secondary-color)}.sf_8dq_truncated-list li.sf_8dq_too-many{color:var(--secondary-color);font-style:italic}
|
|
2
|
-
/*# sourceMappingURL=column-views.cd7b223b.css.map */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"ACAA,sIAME,yCAEE,2FAGF","sources":["column-views.cd7b223b.css","packages/column-views/src/facets/base-sample-column.module.sass"],"sourcesContent":[".sf_8dq_truncated-list {\n border-left: 1px solid var(--column-stroke-color);\n margin: 1px 0;\n padding-left: .2em;\n font-size: .9em;\n list-style: none;\n}\n\n.sf_8dq_truncated-list li {\n display: inline;\n}\n\n.sf_8dq_truncated-list li:not(:last-child):after {\n content: \", \";\n color: var(--secondary-color);\n}\n\n.sf_8dq_truncated-list li.sf_8dq_too-many {\n color: var(--secondary-color);\n font-style: italic;\n}\n/*# sourceMappingURL=column-views.cd7b223b.css.map */\n",".truncated-list\n padding-left: 0.2em\n font-size: 0.9em\n list-style: none\n border-left: 1px solid var(--column-stroke-color)\n margin: 1px 0\n li\n display: inline\n &:not(:last-child):after\n content: \", \"\n color: var(--secondary-color)\n li.too-many\n color: var(--secondary-color)\n font-style: italic\n"],"names":[],"version":3,"file":"column-views.cd7b223b.css.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./column-views.8f54691f.js";import"./column-views.869c7199.js";import"./column-views.19a84c01.js";import{usePlotArea as e,DetritalSpectrumPlot as t,DetritalSeries as r}from"@macrostrat/data-components";import a from"@macrostrat/hyper";import{useMemo as i}from"react";import o from"classnames";function n(e,t,r,a){Object.defineProperty(e,t,{get:r,set:a,enumerable:!0,configurable:!0})}var l=globalThis,s={},u={},c=l.parcelRequirea149;null==c&&((c=function(e){if(e in s)return s[e].exports;if(e in u){var t=u[e];delete u[e];var r={id:e,exports:{}};return s[e]=r,t.call(r.exports,r,r.exports),r.exports}var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){u[e]=t},l.parcelRequirea149=c),c.register;var d={};n(d,"DetritalColumn",()=>_),n(d,"DetritalGroup",()=>b);var m=c("ehHhC"),p=c("jtfAP"),f=c("fIqIn");let h=a.styled(p&&p.__esModule?p.default:p),g=e=>t=>t.unit_id==e[0].unit_id;function _({columnID:e,color:t="magenta"}){let r=(0,m.useDetritalMeasurements)({col_id:e}),a=i(()=>e=>h(b,{width:360,height:40,color:t,...e}),[400,t]);return h(f.BaseMeasurementsColumn,{data:r,noteComponent:a,getUnitID:e=>e[0].unit_id,matchingUnit:g})}function x({unit:t}){let{xScale:r,height:a}=e(),{t_age:i,b_age:o}=t,n=r(i);return h("rect.depositional-age",{x:n,width:r(o)-n,y:0,height:a})}function b(e){let{note:a,width:i,height:n,color:l,spacing:s}=e,{data:u,unit:c}=a;return h("div.detrital-group",{className:o({"hide-axis":(s?.below??100)<60})},[h(t,{width:i,innerHeight:n,showAxisLabels:!0,paddingBottom:40},[h.if(null!=c)(x,{unit:c}),u.map(e=>h(r,{bandwidth:20,data:e.measure_value,color:l}))])])}export{_ as DetritalColumn,b as DetritalGroup};
|
|
2
|
-
//# sourceMappingURL=column-views.d4545f9f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,e,C,C,wB,C,C,kB,C,K,6B,A,Q,M,mB,A,Q,W,C,K,O,A,Q,M,Y,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,iB,I,G,E,E,gB,I,G,I,E,E,S,E,E,S,E,E,SCaA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAgBjB,EAAe,AAAC,GAAO,AAAC,GAAM,EAAE,OAAO,EAAI,CAAE,CAAC,EAAE,CAAC,OAAO,CAE9D,SAAS,EAAe,CAAA,SAAE,CAAQ,CAAA,MAAE,EAAQ,SAAA,CAAW,EACrD,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,EAAwB,CAAE,OAAQ,CAAS,GAOlD,EAAgB,AAAA,EAAQ,IACrB,AAAC,GACC,EAAE,EAAe,CACtB,MALgB,IAMhB,OAAQ,GACR,MAAA,EACA,GAAG,CAAK,AACV,GAED,CAdW,IAcH,EAAM,EAEjB,OAAO,EAAE,EAAA,sBAAqB,CAAG,CAC/B,KAAA,EACA,cAAA,EACA,UAAW,AAAC,GAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAC9B,aAAA,CACF,EACF,CAEA,SAAS,EAAgB,CAAA,KAAE,CAAI,CAAE,EAC/B,GAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAE,CAAG,AAAA,IAErB,CAAA,MAAE,CAAK,CAAA,MAAE,CAAK,CAAE,CAAG,EACnB,EAAI,EAAO,GAGjB,OAAO,EAAE,wBAAyB,CAAE,EAAA,EAAG,MAAO,AAFnC,EAAO,GAEiC,EAAG,EAAG,EAAG,OAAA,CAAO,EACrE,CAEA,SAAS,EAAc,CAAwB,EAC7C,GAAM,CAAA,KAAE,CAAI,CAAA,MAAE,CAAK,CAAA,OAAE,CAAM,CAAA,MAAE,CAAK,CAAA,QAAE,CAAO,CAAE,CAAG,EAC1C,CAAA,KAAE,CAAI,CAAA,KAAE,CAAI,CAAE,CAAG,EAOvB,OAAO,EACL,qBACA,CAAE,UAAW,AAAA,EAAW,CAAE,YAJL,AADJ,CAAA,GAAS,OAAS,GAArC,EACoC,EAIoB,EAAG,EACzD,CACE,EACE,EACA,CAAE,MAAA,EAAO,YAAa,EAAQ,eAAgB,CAAA,EAAM,cAAe,EAAG,EACtE,CACE,EAAE,EAAE,CAAC,AAAQ,MAAR,GAAc,EAAiB,CAAE,KAAA,CAAK,GAC3C,EAAK,GAAG,CAAC,AAAC,GACD,EAAE,EAAgB,CACvB,UAAW,GACX,KAAM,EAAE,aAAa,CACrB,MAlBG,CAmBL,IAEH,EAEJ,CAEL,Q,K,c,C,K,a","sources":["<anon>","packages/column-views/src/facets/detrital-zircon/index.ts"],"sourcesContent":["import \"./column-views.8f54691f.js\";\nimport \"./column-views.869c7199.js\";\nimport \"./column-views.19a84c01.js\";\nimport {usePlotArea as $9VOFI$usePlotArea, DetritalSpectrumPlot as $9VOFI$DetritalSpectrumPlot, DetritalSeries as $9VOFI$DetritalSeries} from \"@macrostrat/data-components\";\nimport $9VOFI$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $9VOFI$useMemo} from \"react\";\nimport $9VOFI$classnames from \"classnames\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $68f55e74a5c97233$exports = {};\n\n$parcel$export($68f55e74a5c97233$exports, \"DetritalColumn\", () => $68f55e74a5c97233$export$f176396e104db8d5);\n$parcel$export($68f55e74a5c97233$exports, \"DetritalGroup\", () => $68f55e74a5c97233$export$1b3047373cd1c8c7);\n\n\n\nvar $ehHhC = parcelRequire(\"ehHhC\");\n\n\nvar $jtfAP = parcelRequire(\"jtfAP\");\n\n\nvar $fIqIn = parcelRequire(\"fIqIn\");\nconst $68f55e74a5c97233$var$h = (0, $9VOFI$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($jtfAP))));\nconst $68f55e74a5c97233$var$matchingUnit = (dz)=>(d)=>d.unit_id == dz[0].unit_id;\nfunction $68f55e74a5c97233$export$f176396e104db8d5({ columnID: columnID, color: color = \"magenta\" }) {\n const data = (0, $ehHhC.useDetritalMeasurements)({\n col_id: columnID\n });\n const width = 400;\n const paddingLeft = 40;\n const spectrumWidth = width - paddingLeft;\n const noteComponent = (0, $9VOFI$useMemo)(()=>{\n return (props)=>{\n return $68f55e74a5c97233$var$h($68f55e74a5c97233$export$1b3047373cd1c8c7, {\n width: spectrumWidth,\n height: 40,\n color: color,\n ...props\n });\n };\n }, [\n width,\n color\n ]);\n return $68f55e74a5c97233$var$h((0, $fIqIn.BaseMeasurementsColumn), {\n data: data,\n noteComponent: noteComponent,\n getUnitID: (d)=>d[0].unit_id,\n matchingUnit: $68f55e74a5c97233$var$matchingUnit\n });\n}\nfunction $68f55e74a5c97233$var$DepositionalAge({ unit: unit }) {\n const { xScale: xScale, height: height } = (0, $9VOFI$usePlotArea)();\n const { t_age: t_age, b_age: b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n return $68f55e74a5c97233$var$h(\"rect.depositional-age\", {\n x: x,\n width: x1 - x,\n y: 0,\n height: height\n });\n}\nfunction $68f55e74a5c97233$export$1b3047373cd1c8c7(props) {\n const { note: note, width: width, height: height, color: color, spacing: spacing } = props;\n const { data: data, unit: unit } = note;\n const _color = color;\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n return $68f55e74a5c97233$var$h(\"div.detrital-group\", {\n className: (0, $9VOFI$classnames)({\n \"hide-axis\": hideAxisLabels\n })\n }, [\n $68f55e74a5c97233$var$h((0, $9VOFI$DetritalSpectrumPlot), {\n width: width,\n innerHeight: height,\n showAxisLabels: true,\n paddingBottom: 40\n }, [\n $68f55e74a5c97233$var$h.if(unit != null)($68f55e74a5c97233$var$DepositionalAge, {\n unit: unit\n }),\n data.map((d)=>{\n return $68f55e74a5c97233$var$h((0, $9VOFI$DetritalSeries), {\n bandwidth: 20,\n data: d.measure_value,\n color: _color\n });\n })\n ])\n ]);\n}\n\n\nexport {$68f55e74a5c97233$export$f176396e104db8d5 as DetritalColumn, $68f55e74a5c97233$export$1b3047373cd1c8c7 as DetritalGroup};\n//# sourceMappingURL=column-views.d4545f9f.js.map\n","import {\n DetritalSpectrumPlot,\n DetritalSeries,\n usePlotArea,\n} from \"@macrostrat/data-components\";\nimport type { IUnit } from \"../../units/types\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useDetritalMeasurements, MeasurementInfo } from \"./provider\";\nimport { useMemo } from \"react\";\nimport styles from \"./index.module.sass\";\nimport classNames from \"classnames\";\nimport { BaseMeasurementsColumn } from \"../base-sample-column\";\n\nconst h = hyper.styled(styles);\n\ninterface DetritalItemProps {\n note: {\n data: MeasurementInfo[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\nconst matchingUnit = (dz) => (d) => d.unit_id == dz[0].unit_id;\n\nfunction DetritalColumn({ columnID, color = \"magenta\" }) {\n const data = useDetritalMeasurements({ col_id: columnID });\n\n const width = 400;\n const paddingLeft = 40;\n\n const spectrumWidth = width - paddingLeft;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(DetritalGroup, {\n width: spectrumWidth,\n height: 40,\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n return h(BaseMeasurementsColumn, {\n data,\n noteComponent,\n getUnitID: (d) => d[0].unit_id,\n matchingUnit,\n });\n}\n\nfunction DepositionalAge({ unit }) {\n const { xScale, height } = usePlotArea();\n\n const { t_age, b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n\n return h(\"rect.depositional-age\", { x, width: x1 - x, y: 0, height });\n}\n\nfunction DetritalGroup(props: DetritalItemProps) {\n const { note, width, height, color, spacing } = props;\n const { data, unit } = note;\n\n const _color = color;\n\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n\n return h(\n \"div.detrital-group\",\n { className: classNames({ \"hide-axis\": hideAxisLabels }) },\n [\n h(\n DetritalSpectrumPlot,\n { width, innerHeight: height, showAxisLabels: true, paddingBottom: 40 },\n [\n h.if(unit != null)(DepositionalAge, { unit }),\n data.map((d) => {\n return h(DetritalSeries, {\n bandwidth: 20,\n data: d.measure_value,\n color: _color,\n });\n }),\n ],\n ),\n ],\n );\n}\n\nexport { DetritalColumn, DetritalGroup };\n"],"names":["usePlotArea","$9VOFI$usePlotArea","DetritalSpectrumPlot","$9VOFI$DetritalSpectrumPlot","DetritalSeries","$9VOFI$DetritalSeries","$9VOFI$macrostrathyper","useMemo","$9VOFI$useMemo","$9VOFI$classnames","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$68f55e74a5c97233$exports","$68f55e74a5c97233$export$f176396e104db8d5","$68f55e74a5c97233$export$1b3047373cd1c8c7","$ehHhC","$jtfAP","$fIqIn","$68f55e74a5c97233$var$h","styled","a","__esModule","default","$68f55e74a5c97233$var$matchingUnit","dz","d","unit_id","columnID","color","data","useDetritalMeasurements","col_id","noteComponent","props","width","height","BaseMeasurementsColumn","getUnitID","matchingUnit","$68f55e74a5c97233$var$DepositionalAge","unit","xScale","t_age","b_age","x","x1","y","note","spacing","className","spaceBelow","below","innerHeight","showAxisLabels","paddingBottom","if","map","bandwidth","measure_value","DetritalColumn","DetritalGroup"],"version":3,"file":"column-views.d4545f9f.js.map","sourceRoot":"../../../../"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"ACAA,uOAWE,mCACE,qQAOI,qEAEA,kFAIN,8PAOE,8DAGJ,0EAIE,6LAOE,sGAOA,2EAIA,kFAKA,qI,yIASF,uDAGA,gH,qD,6D,gD,oE,qE,kE,4H,2C,0DAqCF,sEAQE,+EAOA,mJAQA,iDAIF,iDAKE,kDAIA,kDAGF,8IAYE,6E,sF","sources":["column-views.e803e4ae.css","packages/column-views/src/column.module.sass"],"sourcesContent":[".column-container_afc440, body.light-mode .column-container_afc440 {\n --column-background-color: var(--background-color, #fff);\n --column-stroke-color: var(--text-emphasized-color, #000);\n --column-text-color: var(--text-emphasized-color, #000);\n}\n\n@media (prefers-color-scheme: dark) {\n body:not(.light-mode) .column-container_afc440 {\n --column-background-color: var(--background-color, #000);\n --column-stroke-color: var(--text-emphasized-color, #fff);\n --column-text-color: var(--text-emphasized-color, #fff);\n color-scheme: dark;\n color: var(--column-text-color);\n }\n\n body:not(.light-mode) .column-container_afc440 .timescale {\n color: #000;\n }\n\n body:not(.light-mode) .column-container_afc440 svg pattern image {\n filter: invert();\n }\n}\n\nbody.dark-mode .column-container_afc440 {\n --column-background-color: var(--background-color, #000);\n --column-stroke-color: var(--text-emphasized-color, #fff);\n --column-text-color: var(--text-emphasized-color, #fff);\n color-scheme: dark;\n color: var(--column-text-color);\n}\n\nbody.dark-mode .column-container_afc440 .timescale {\n color: #000;\n}\n\nbody.dark-mode .column-container_afc440 svg pattern image {\n filter: invert();\n}\n\n.column-container_afc440 {\n padding-top: var(--column-padding-top);\n padding-bottom: var(--column-padding-bottom);\n padding-left: var(--column-padding-left);\n padding-right: var(--column-padding-right);\n}\n\n.column-container_afc440 .column {\n flex-direction: row;\n height: fit-content;\n display: flex;\n position: relative;\n}\n\n.column-container_afc440 g.lithology-column .column-clip-frame {\n stroke: none;\n}\n\n.column-container_afc440 .unit {\n stroke: var(--column-stroke-color);\n stroke-width: 1px;\n}\n\n.column-container_afc440 .selection-overlay {\n fill: var(--selection-overlay-color, red);\n fill-opacity: var(--selection-overlay-opacity, .5);\n}\n\n.column-container_afc440 g.lithology-column use.frame {\n stroke: var(--column-stroke-color);\n pointer-events: none;\n stroke-width: 1.5px !important;\n}\n\n.column-container_afc440 .unit-label {\n text-align: center;\n}\n\n.column-container_afc440 .col-note-label {\n margin: 1px 0;\n font-size: 10px;\n line-height: 9px;\n border-left: none !important;\n}\n\n.column-container_afc440 g.height-range {\n display: none;\n}\n\n.column-container_afc440 .note-inner {\n border: none;\n padding: 1px;\n}\n\n.column-container_afc440 .frame rect {\n fill: #0000;\n}\n\n.column-container_afc440 .default-buttons {\n width: 100%;\n margin: 0 -10px;\n}\n\n.column-container_afc440 div.section {\n flex-direction: row;\n display: flex;\n}\n\n.column-container_afc440 .section .divisions .unit {\n cursor: pointer;\n}\n\n.column-container_afc440 .timescale {\n width: calc((1.5em + 1.5px) * var(--timescale-level-count, 4));\n --timescale-level-size: 1.5em;\n}\n\n.timescale-column_afc440 {\n position: relative;\n}\n\n.section-main_afc440 {\n margin-bottom: -4px;\n position: relative;\n}\n\n.section-units-container_afc440, .main-column_afc440 {\n position: relative;\n}\n\n.unconformity-labels_afc440 {\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.unconformity_afc440 {\n font-family: var(--label-font-family, sans-serif);\n --unit-font-weight: 400;\n font-size: .8em;\n font-weight: 400;\n position: absolute;\n top: 0;\n}\n\n.unconformity_afc440.giga_afc440 {\n font-weight: 800;\n}\n\n.unconformity_afc440.mega_afc440 {\n font-weight: 700;\n}\n\n.unconformity_afc440.large_afc440 {\n font-weight: 500;\n}\n\n.unconformity_afc440.small_afc440 {\n font-weight: 300;\n}\n\n.unconformity-inner_afc440 {\n text-align: center;\n justify-content: center;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 5px -2px 5px -3px;\n}\n\n.unconformity-text_afc440 {\n width: var(--column-width);\n --unit-font-style: normal;\n}\n\n.unconformity-text_afc440 .prefix_afc440 {\n color: var(--secondary-color);\n font-weight: 400;\n}\n\n.column-title-row_afc440 {\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n gap: 1em;\n display: flex;\n}\n/*# sourceMappingURL=column-views.e803e4ae.css.map */\n",".column-container, body:global(.light-mode) .column-container\n --column-background-color: var(--background-color, #fff)\n --column-stroke-color: var(--text-emphasized-color, #000)\n --column-text-color: var(--text-emphasized-color, #000)\n\n/* We have to duplicate the dark mode styles here\n because we want to set them either if the preferred\n color scheme is dark OR if dark mode is explicitly enabled.\n If dark mode is explicitly enabled, we want to override\n the media query. */\n@media (prefers-color-scheme: dark)\n body:not(:global(.light-mode)) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\nbody:global(.dark-mode) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\n.column-container\n padding-top: var(--column-padding-top)\n padding-bottom: var(--column-padding-bottom)\n padding-left: var(--column-padding-left)\n padding-right: var(--column-padding-right)\n\n.column-container :global\n .column\n display: flex\n flex-direction: row\n position: relative\n height: fit-content\n\n g.lithology-column .column-clip-frame\n stroke: none\n\n .unit\n stroke: var(--column-stroke-color)\n stroke-width: 1px\n\n .selection-overlay\n fill: var(--selection-overlay-color, red)\n fill-opacity: var(--selection-overlay-opacity, 0.5)\n\n g.lithology-column use.frame\n stroke: var(--column-stroke-color)\n stroke-width: 1.5px !important\n pointer-events: none\n\n.column-container :global .unit-label\n text-align: center\n\n.column-container :global .col-note-label\n font-size: 10px\n line-height: 9px\n border-left: none !important\n margin: 1px 0\n\n.column-container :global g.height-range\n display: none\n\n.column-container :global .note-inner\n border: none\n padding: 1px\n\n.column-container :global .frame rect\n fill: transparent\n\n.column-container :global .default-buttons\n width: 100%\n margin: 0 -10px\n\n.column-container :global div.section\n display: flex\n flex-direction: row\n\n.column-container :global .section .divisions .unit\n cursor: pointer\n\n.column-container :global(.timescale)\n width: calc(calc(1.5em + 1.5px) * var(--timescale-level-count, 4))\n --timescale-level-size: 1.5em\n\n.timescale-column\n position: relative\n\n.section-main\n position: relative\n margin-bottom: -4px\n\n.section-units-container\n position: relative\n\n.main-column\n position: relative\n\n.unconformity-labels\n position: absolute\n top: 0\n left: 0\n pointer-events: none\n\n\n.unconformity\n position: absolute\n font-family: var(--label-font-family, sans-serif)\n top: 0px\n //font-size: 12px\n font-weight: 400\n\n font-size: 0.8em\n &.giga\n font-weight: 800\n //font-size: 1em\n &.mega\n font-weight: 700\n //font-size: 0.9em\n &.large\n font-weight: 500\n &.small\n font-weight: 300\n --unit-font-weight: 400\n\n.unconformity-inner\n //border-left: 1.5px dotted var(--secondary-color)\n position: absolute\n top: 5px\n bottom: 5px\n left: -3px\n right: -2px\n display: flex\n justify-content: center\n align-items: center\n text-align: center\n\n.unconformity-text\n width: var(--column-width)\n --unit-font-style: normal\n .prefix\n font-weight: 400\n color: var(--secondary-color)\n\n\n\n.column-title-row\n display: flex\n flex-direction: row\n gap: 1em\n justify-content: space-between\n align-items: baseline\n"],"names":[],"version":3,"file":"column-views.e803e4ae.css.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./column-views.f0f5cefd.js";import"./column-views.92e29010.js";import e from"@macrostrat/hyper";import{SVG as t,StaticNotesColumn as o}from"@macrostrat/column-components";var r=globalThis,n={},a={},i=r.parcelRequirea149;null==i&&((i=function(e){if(e in n)return n[e].exports;if(e in a){var t=a[e];delete a[e];var o={id:e,exports:{}};return n[e]=o,t.call(o.exports,o,o.exports),o.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){a[e]=t},r.parcelRequirea149=i),i.register,Object.defineProperty({},"ColumnNotes",{get:()=>s,set:void 0,enumerable:!0,configurable:!0});var c=i("4Abge"),l=i("wtIgl");function s({notes:r,width:n=200,noteComponent:a,paddingLeft:i=60,deltaConnectorAttachment:s,children:d}){let{totalHeight:m}=(0,l.useMacrostratColumnData)(),p=(0,l.useCompositeScale)();return e(c.ColumnNotesProvider,{scale:p,totalHeight:m,pixelScale:-1},[e(t,{width:n,height:m,paddingH:4},[e(o,{width:n,notes:r,noteComponent:a,paddingLeft:i,deltaConnectorAttachment:s})]),d])}export{s as ColumnNotes};
|
|
2
|
-
//# sourceMappingURL=column-views.f7d72702.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,Q,M,mB,A,Q,O,C,C,qB,C,K,+B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,c,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,S,E,E,SCiBO,SAAS,EAAY,CAAA,MAC1B,CAAK,CAAA,MACL,EAAQ,GAAA,CAAA,cACR,CAAa,CAAA,YACb,EAAc,EAAA,CAAA,yBACd,CAAwB,CAAA,SACxB,CAAQ,CACS,EACjB,GAAM,CAAA,YAAE,CAAW,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAClB,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAEd,OAAO,AAAA,EACL,EAAA,mBAAkB,CAClB,CACE,MAAA,EACA,YAAA,EACA,WAAY,EACd,EACA,CACE,AAAA,EAAE,EAAK,CAAE,MAAA,EAAO,OAAQ,EAAa,SAAU,CAAE,EAAG,CAClD,AAAA,EAAE,EAAmB,CACnB,MAAA,EACA,MAAA,EACA,cAAA,EACA,YAAA,EACA,yBAAA,CACF,GACD,EACD,EACD,CAEL,Q,K,W","sources":["<anon>","packages/column-views/src/notes.ts"],"sourcesContent":["import \"./column-views.f0f5cefd.js\";\nimport \"./column-views.92e29010.js\";\nimport $joNTi$macrostrathyper from \"@macrostrat/hyper\";\nimport {SVG as $joNTi$SVG, StaticNotesColumn as $joNTi$StaticNotesColumn} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $d63334d9b5597481$exports = {};\n\n$parcel$export($d63334d9b5597481$exports, \"ColumnNotes\", () => $d63334d9b5597481$export$fc5babae10f3f77d);\n\n\nvar $4Abge = parcelRequire(\"4Abge\");\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nfunction $d63334d9b5597481$export$fc5babae10f3f77d({ notes: notes, width: width = 200, noteComponent: noteComponent, paddingLeft: paddingLeft = 60, deltaConnectorAttachment: deltaConnectorAttachment, children: children }) {\n const { totalHeight: totalHeight } = (0, $wtIgl.useMacrostratColumnData)();\n const scale = (0, $wtIgl.useCompositeScale)();\n return (0, $joNTi$macrostrathyper)((0, $4Abge.ColumnNotesProvider), {\n scale: scale,\n totalHeight: totalHeight,\n pixelScale: -1\n }, [\n (0, $joNTi$macrostrathyper)((0, $joNTi$SVG), {\n width: width,\n height: totalHeight,\n paddingH: 4\n }, [\n (0, $joNTi$macrostrathyper)((0, $joNTi$StaticNotesColumn), {\n width: width,\n notes: notes,\n noteComponent: noteComponent,\n paddingLeft: paddingLeft,\n deltaConnectorAttachment: deltaConnectorAttachment\n })\n ]),\n children\n ]);\n}\n\n\nexport {$d63334d9b5597481$export$fc5babae10f3f77d as ColumnNotes};\n//# sourceMappingURL=column-views.f7d72702.js.map\n","import h from \"@macrostrat/hyper\";\n\nimport { ColumnNotesProvider } from \"./units\";\n\nimport { StaticNotesColumn, SVG } from \"@macrostrat/column-components\";\nimport { useCompositeScale, useMacrostratColumnData } from \"./data-provider\";\nimport type { ReactNode } from \"react\";\n\ninterface ColumnNotesProps {\n notes: any[];\n width?: number;\n noteComponent?: any;\n paddingLeft?: number;\n deltaConnectorAttachment?: number;\n children?: ReactNode;\n}\n\nexport function ColumnNotes({\n notes,\n width = 200,\n noteComponent,\n paddingLeft = 60,\n deltaConnectorAttachment,\n children,\n}: ColumnNotesProps) {\n const { totalHeight } = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n return h(\n ColumnNotesProvider,\n {\n scale,\n totalHeight,\n pixelScale: -1,\n },\n [\n h(SVG, { width, height: totalHeight, paddingH: 4 }, [\n h(StaticNotesColumn, {\n width,\n notes,\n noteComponent,\n paddingLeft,\n deltaConnectorAttachment,\n }),\n ]),\n children,\n ],\n );\n}\n"],"names":["$joNTi$macrostrathyper","SVG","$joNTi$SVG","StaticNotesColumn","$joNTi$StaticNotesColumn","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$d63334d9b5597481$export$fc5babae10f3f77d","set","s","enumerable","configurable","$4Abge","$wtIgl","notes","width","noteComponent","paddingLeft","deltaConnectorAttachment","children","totalHeight","useMacrostratColumnData","scale","useCompositeScale","ColumnNotesProvider","pixelScale","height","paddingH","ColumnNotes"],"version":3,"file":"column-views.f7d72702.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { useMacrostratColumnData } from "../data-provider";
|
|
2
|
-
import { useCallback, useMemo } from "react";
|
|
3
|
-
import hyper from "@macrostrat/hyper";
|
|
4
|
-
import styles from "./base-sample-column.module.sass";
|
|
5
|
-
import { getUnitHeightRange } from "../prepare-units";
|
|
6
|
-
import { ColumnNotes } from "../notes";
|
|
7
|
-
const h = hyper.styled(styles);
|
|
8
|
-
|
|
9
|
-
export interface BaseMeasurementsColumnProps<T> {
|
|
10
|
-
data: T[];
|
|
11
|
-
noteComponent?: any;
|
|
12
|
-
width?: number;
|
|
13
|
-
paddingLeft?: number;
|
|
14
|
-
className?: string;
|
|
15
|
-
// TODO: these props are confusing
|
|
16
|
-
getUnitID?: (d: T) => number | string;
|
|
17
|
-
matchingUnit?: (dz: T) => (d: any) => boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function BaseMeasurementsColumn({
|
|
21
|
-
data,
|
|
22
|
-
noteComponent,
|
|
23
|
-
width = 500,
|
|
24
|
-
paddingLeft = 40,
|
|
25
|
-
className,
|
|
26
|
-
getUnitID = (d) => d.unit_id,
|
|
27
|
-
matchingUnit,
|
|
28
|
-
}: BaseMeasurementsColumnProps<any>) {
|
|
29
|
-
const { axisType, units } = useMacrostratColumnData();
|
|
30
|
-
|
|
31
|
-
const _matchingUnit =
|
|
32
|
-
matchingUnit ??
|
|
33
|
-
useCallback(
|
|
34
|
-
(dz) => {
|
|
35
|
-
return (d) => {
|
|
36
|
-
return getUnitID(d) === dz.unit_id;
|
|
37
|
-
};
|
|
38
|
-
},
|
|
39
|
-
[getUnitID],
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
const notes: any[] = useMemo(() => {
|
|
43
|
-
if (data == null || units == null) return [];
|
|
44
|
-
let unitRefData = Array.from(data.values())
|
|
45
|
-
.map((d) => {
|
|
46
|
-
return {
|
|
47
|
-
data: d,
|
|
48
|
-
unit: units.find(_matchingUnit(d)),
|
|
49
|
-
};
|
|
50
|
-
})
|
|
51
|
-
.filter((d) => d.unit != null);
|
|
52
|
-
|
|
53
|
-
unitRefData.sort((a, b) => {
|
|
54
|
-
const v1 = units.indexOf(a.unit);
|
|
55
|
-
const v2 = units.indexOf(b.unit);
|
|
56
|
-
return v1 - v2;
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
return unitRefData.map((d) => {
|
|
60
|
-
const { unit, data } = d;
|
|
61
|
-
const heightRange = getUnitHeightRange(unit, axisType);
|
|
62
|
-
|
|
63
|
-
return {
|
|
64
|
-
top_height: heightRange[1],
|
|
65
|
-
height: heightRange[0],
|
|
66
|
-
data,
|
|
67
|
-
unit,
|
|
68
|
-
id: unit.unit_id,
|
|
69
|
-
};
|
|
70
|
-
});
|
|
71
|
-
}, [data, units, matchingUnit]);
|
|
72
|
-
|
|
73
|
-
if (data == null || units == null) return null;
|
|
74
|
-
|
|
75
|
-
return h(
|
|
76
|
-
"div",
|
|
77
|
-
{ className },
|
|
78
|
-
h(ColumnNotes, {
|
|
79
|
-
width,
|
|
80
|
-
paddingLeft,
|
|
81
|
-
notes,
|
|
82
|
-
noteComponent,
|
|
83
|
-
}),
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
interface TruncatedListProps {
|
|
88
|
-
data: any[];
|
|
89
|
-
className?: string;
|
|
90
|
-
maxItems?: number;
|
|
91
|
-
itemRenderer?: (props: { data: any }) => any;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export function TruncatedList({
|
|
95
|
-
data,
|
|
96
|
-
className,
|
|
97
|
-
maxItems = 5,
|
|
98
|
-
itemRenderer = (p) => h("span", p.data),
|
|
99
|
-
}: TruncatedListProps) {
|
|
100
|
-
let tooMany = null;
|
|
101
|
-
let d1 = data;
|
|
102
|
-
if (data.length > maxItems) {
|
|
103
|
-
const n = data.length - maxItems;
|
|
104
|
-
d1 = data.slice(0, maxItems);
|
|
105
|
-
tooMany = h("li.too-many", `and ${n} more`);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return h("ul.truncated-list", { className }, [
|
|
109
|
-
d1.map((d, i) => {
|
|
110
|
-
return h("li.element", { key: i }, h(itemRenderer, { data: d }));
|
|
111
|
-
}),
|
|
112
|
-
tooMany,
|
|
113
|
-
]);
|
|
114
|
-
}
|