@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 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;AAKO,SAAS,0CAA+B,KAAK;IAClD,MAAM,YAAE,QAAQ,aAAE,SAAS,gBAAE,YAAY,gBAAE,YAAY,YAAE,QAAQ,EAAE,GAAG,MAAM,GAC1E;IAEF,MAAM,KAAK,UAAU,UACnB,CAAC,OAAS,KAAK,OAAO,KAAK,cAAc;IAG3C,MAAM,SAAS;QACb,IAAI,KAAK;QACT,IAAI,KAAK;IACX;IAEA,CAAA,GAAA,oBAAY,EACV,CAAC;QACC,MAAM,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,SAAS,MAAM,EAAE;QAC/D,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO;QACrC,MAAM,eAAe;IACvB,GACA;QAAC;QAAU;KAAG;IAGhB,IAAI,gBAAgB,MAAM,OAAO;IAEjC,MAAM,UAAU,CAAA,GAAA,sBAAA,EAAE;QAChB,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO;YACjB;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO,SAAS,MAAM,GAAG;YACnC;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;KACD;IAED,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAe,GAAG;QACzB,MAAM;QACN,SAAQ,KAAK;YACX,aAAa;QACf;mBACA;iBACA;QACA,0BAA0B;QAC1B,YAAY;QACZ,aAAa;kBACb;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/unit-details/modal-panel.ts"],"sourcesContent":["import { Button } from \"@blueprintjs/core\";\nimport { UnitDetailsPanel } from \"./panel\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nexport function UnitDetailsPanelWithNavigation(props) {\n const { unitData, className, selectedUnit, onSelectUnit, features, ...rest } =\n props;\n\n const ix = unitData?.findIndex(\n (unit) => unit.unit_id === selectedUnit?.unit_id,\n );\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= unitData.length) return;\n onSelectUnit(unitData[nextIx].unit_id);\n event.stopPropagation();\n },\n [unitData, ix],\n );\n\n if (selectedUnit == null) return null;\n\n const actions = h([\n h(Button, {\n icon: \"arrow-up\",\n disabled: ix === 0,\n onClick() {\n onSelectUnit(unitData[ix - 1]?.unit_id);\n },\n }),\n h(Button, {\n icon: \"arrow-down\",\n disabled: ix === unitData.length - 1,\n onClick() {\n onSelectUnit(unitData[ix + 1]?.unit_id);\n },\n }),\n ]);\n\n return h(UnitDetailsPanel, {\n unit: selectedUnit,\n onClose(event) {\n onSelectUnit(null);\n },\n className,\n actions,\n showLithologyProportions: true,\n selectUnit: onSelectUnit,\n columnUnits: unitData,\n features,\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;AAKO,SAAS,0CAA+B,KAAK;IAClD,MAAM,YAAE,QAAQ,aAAE,SAAS,gBAAE,YAAY,gBAAE,YAAY,YAAE,QAAQ,EAAE,GAAG,MAAM,GAC1E;IAEF,MAAM,KAAK,UAAU,UACnB,CAAC,OAAS,KAAK,OAAO,KAAK,cAAc;IAG3C,MAAM,SAAS;QACb,IAAI,KAAK;QACT,IAAI,KAAK;IACX;IAEA,CAAA,GAAA,oBAAY,EACV,CAAC;QACC,MAAM,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,SAAS,MAAM,EAAE;QAC/D,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO;QACrC,MAAM,eAAe;IACvB,GACA;QAAC;QAAU;KAAG;IAGhB,IAAI,gBAAgB,MAAM,OAAO;IAEjC,MAAM,UAAU,CAAA,GAAA,sBAAA,EAAE;QAChB,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO;YACjB;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO,SAAS,MAAM,GAAG;YACnC;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;KACD;IAED,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAe,GAAG;QACzB,MAAM;QACN,SAAQ,KAAK;YACX,aAAa;QACf;mBACA;iBACA;QACA,0BAA0B;QAC1B,YAAY;QACZ,aAAa;kBACb;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/unit-details/modal-panel.ts"],"sourcesContent":["import { Button } from \"@blueprintjs/core\";\nimport { UnitDetailsPanel } from \"./panel\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nexport function UnitDetailsPanelWithNavigation(props) {\n const { unitData, className, selectedUnit, onSelectUnit, features, ...rest } =\n props;\n\n const ix = unitData?.findIndex(\n (unit) => unit.unit_id === selectedUnit?.unit_id,\n );\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= unitData.length) return;\n onSelectUnit(unitData[nextIx].unit_id);\n event.stopPropagation();\n },\n [unitData, ix],\n );\n\n if (selectedUnit == null) return null;\n\n const actions = h([\n h(Button, {\n icon: \"arrow-up\",\n disabled: ix === 0,\n onClick() {\n onSelectUnit(unitData[ix - 1]?.unit_id);\n },\n }),\n h(Button, {\n icon: \"arrow-down\",\n disabled: ix === unitData.length - 1,\n onClick() {\n onSelectUnit(unitData[ix + 1]?.unit_id);\n },\n }),\n ]);\n\n return h(UnitDetailsPanel, {\n unit: selectedUnit,\n onClose(event) {\n onSelectUnit(null);\n },\n className,\n actions,\n showLithologyProportions: true,\n selectUnit: onSelectUnit,\n columnUnits: unitData,\n features,\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.2bac03a2.js.map"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import {FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57, useFossilData as $a3ff7da576c02df0$export$e6af757fa9780077} from "./column-views.343fc926.js";
|
|
2
|
+
import {BaseMeasurementsColumn as $50d219504625a431$export$ce5c4f2fdf4e644d, groupNotesByPixelDistance as $50d219504625a431$export$4e649f790614b299, standardizeMeasurementHeight as $50d219504625a431$export$9d101e1fcb2166a6, TruncatedList as $50d219504625a431$export$653e47a7a0da0f0d} from "./column-views.de433f18.js";
|
|
3
|
+
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
4
|
+
import "./column-views.cb6fc808.css";
|
|
5
|
+
import $6u76g$columnviewsd5e788e8js from "./column-views.d5e788e8.js";
|
|
6
|
+
import {getPositionWithinUnit as $b6657fba8924a702$export$441710fb21b4ae09, getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.052498a6.js";
|
|
7
|
+
import {PBDBOccurrencesMatrix as $d419340b86dbd2ea$export$652730986cccff7a, FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57} from "./column-views.6c9e5069.js";
|
|
8
|
+
import $6u76g$macrostrathyper from "@macrostrat/hyper";
|
|
9
|
+
import {ColumnAxisType as $6u76g$ColumnAxisType} from "@macrostrat/column-components";
|
|
10
|
+
import {scaleLinear as $6u76g$scaleLinear} from "d3-scale";
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
function $parcel$interopDefault(a) {
|
|
14
|
+
return a && a.__esModule ? a.default : a;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
const $b9286605a04210d4$var$h = (0, $6u76g$macrostrathyper).styled((0, ($parcel$interopDefault($6u76g$columnviewsd5e788e8js))));
|
|
26
|
+
function $b9286605a04210d4$export$554267114407ef68({ columnID: columnID, type: type = (0, $a3ff7da576c02df0$export$a990c76b38782f57).Collections }) {
|
|
27
|
+
const data = (0, $a3ff7da576c02df0$export$e6af757fa9780077)(columnID, type);
|
|
28
|
+
const { axisType: axisType, units: units } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
|
|
29
|
+
const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
|
|
30
|
+
if (data == null || units == null || scale == null) return null;
|
|
31
|
+
const data1 = $b9286605a04210d4$var$preparePBDBData(data, units, scale, axisType);
|
|
32
|
+
return $b9286605a04210d4$var$h((0, $50d219504625a431$export$ce5c4f2fdf4e644d), {
|
|
33
|
+
data: data1,
|
|
34
|
+
noteComponent: $b9286605a04210d4$var$FossilInfo,
|
|
35
|
+
focusedNoteComponent: $b9286605a04210d4$var$FossilInfo,
|
|
36
|
+
className: "fossil-collections"
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function $b9286605a04210d4$var$FossilInfo(props) {
|
|
40
|
+
const { note: note, maxItems: maxItems, focused: focused = false } = props;
|
|
41
|
+
const { data: data } = note;
|
|
42
|
+
// Sort collections by name
|
|
43
|
+
data.sort((a, b)=>{
|
|
44
|
+
const nameA = a.best_name ?? a.cltn_name ?? "";
|
|
45
|
+
const nameB = b.best_name ?? b.cltn_name ?? "";
|
|
46
|
+
return nameA.localeCompare(nameB);
|
|
47
|
+
});
|
|
48
|
+
return $b9286605a04210d4$var$h((0, $50d219504625a431$export$653e47a7a0da0f0d), {
|
|
49
|
+
data: data,
|
|
50
|
+
className: "fossil-collections",
|
|
51
|
+
itemRenderer: $b9286605a04210d4$var$PBDBCollectionLink,
|
|
52
|
+
maxItems: focused ? Infinity : maxItems ?? 5
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const $b9286605a04210d4$var$FocusedFossilInfo = (props)=>$b9286605a04210d4$var$h($b9286605a04210d4$var$FossilInfo, {
|
|
56
|
+
...props,
|
|
57
|
+
maxItems: Infinity
|
|
58
|
+
});
|
|
59
|
+
function $b9286605a04210d4$var$PBDBCollectionLink({ data: data }) {
|
|
60
|
+
/** A link to a PBDB collection that handles either an occurrence or collection object */ return $b9286605a04210d4$var$h("a.link-id", {
|
|
61
|
+
href: `https://paleobiodb.org/app/collections#display=col:${data.cltn_id}`,
|
|
62
|
+
target: "_blank",
|
|
63
|
+
onClick (e) {
|
|
64
|
+
e.stopPropagation();
|
|
65
|
+
}
|
|
66
|
+
}, data.best_name ?? data.cltn_name);
|
|
67
|
+
}
|
|
68
|
+
function $b9286605a04210d4$var$preparePBDBData(data, units, scale, axisType, options) {
|
|
69
|
+
/** Prepare PBDB fossil data for display in a measurements column */ const { groupCloseNotes: groupCloseNotes = true } = options ?? {};
|
|
70
|
+
const groupDistance = typeof groupCloseNotes === "number" ? groupCloseNotes : 10;
|
|
71
|
+
// Map of data to its defined height ranges
|
|
72
|
+
const dataMap = new Map();
|
|
73
|
+
// Todo: if we wanted, we could add a step where we group notes that are too close together here...
|
|
74
|
+
for (const d of data){
|
|
75
|
+
const range = $b9286605a04210d4$var$getHeightRangeForPBDBEntity(d, units, axisType);
|
|
76
|
+
if (range == null) continue;
|
|
77
|
+
const { height: height, top_height: top_height } = range;
|
|
78
|
+
// compose the key based on height info
|
|
79
|
+
let key = `${height}`;
|
|
80
|
+
if (top_height != null) key += `-${top_height}`;
|
|
81
|
+
// Group by height key
|
|
82
|
+
if (!dataMap.has(key)) dataMap.set(key, {
|
|
83
|
+
height: height,
|
|
84
|
+
top_height: top_height ?? height,
|
|
85
|
+
data: [],
|
|
86
|
+
id: key
|
|
87
|
+
});
|
|
88
|
+
dataMap.get(key).data.push(d);
|
|
89
|
+
}
|
|
90
|
+
return (0, $50d219504625a431$export$4e649f790614b299)(Array.from(dataMap.values()), scale, axisType, groupDistance);
|
|
91
|
+
}
|
|
92
|
+
function $b9286605a04210d4$var$getHeightRangeForPBDBEntity(d, units, axisType) {
|
|
93
|
+
let height = null;
|
|
94
|
+
if (d.slb != null && d.slu == "mbsf") {
|
|
95
|
+
// Meters below sea floor - special case for eODP where we have
|
|
96
|
+
// specific depth data referenced
|
|
97
|
+
height = Number(d.slb);
|
|
98
|
+
if (axisType === (0, $6u76g$ColumnAxisType).DEPTH) // Data is already in depth units
|
|
99
|
+
return {
|
|
100
|
+
height: height
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
if (d.unit_id == null) return null;
|
|
104
|
+
if (height != null) {
|
|
105
|
+
// If we have both height and unit info, we need to adjust the height
|
|
106
|
+
// to fit whatever scale type we're using.
|
|
107
|
+
// TODO: we could improve how this works by having concurrent age and
|
|
108
|
+
// height scales, which would allow us to do this without having to
|
|
109
|
+
// reference to a specific unit.
|
|
110
|
+
const unit = units.find((u)=>u.unit_id === d.unit_id);
|
|
111
|
+
if (unit == null) return null;
|
|
112
|
+
const relHeight = $b9286605a04210d4$var$getRelativePositionInUnit(height, unit, (0, $6u76g$ColumnAxisType).DEPTH);
|
|
113
|
+
if (relHeight == null) return null;
|
|
114
|
+
height = (0, $b6657fba8924a702$export$441710fb21b4ae09)(relHeight, unit, axisType);
|
|
115
|
+
return {
|
|
116
|
+
height: height
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// We can just get the height within the unit, clipped to the unit boundaries
|
|
120
|
+
return (0, $50d219504625a431$export$9d101e1fcb2166a6)({
|
|
121
|
+
unit_id: d.unit_id
|
|
122
|
+
}, units, axisType);
|
|
123
|
+
}
|
|
124
|
+
function $b9286605a04210d4$var$getRelativePositionInUnit(pos, unit, axisType) {
|
|
125
|
+
// This is the inverse of getPositionWithinUnit
|
|
126
|
+
const heights = (0, $b6657fba8924a702$export$70e712e2ac0237a)(unit, axisType, false);
|
|
127
|
+
const scale = (0, $6u76g$scaleLinear)(heights).domain([
|
|
128
|
+
0,
|
|
129
|
+
1
|
|
130
|
+
]);
|
|
131
|
+
const relPos = scale.invert(pos);
|
|
132
|
+
if (relPos < 0 || relPos > 1) return null;
|
|
133
|
+
return relPos;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
export {$b9286605a04210d4$export$554267114407ef68 as PBDBFossilsColumn, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $d419340b86dbd2ea$export$652730986cccff7a as PBDBOccurrencesMatrix};
|
|
138
|
+
//# sourceMappingURL=column-views.322790f3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/facets/fossils/index.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n FossilDataType,\n PBDBCollection,\n PBDBEntity,\n PBDBOccurrence,\n useFossilData,\n} from \"./provider\";\nimport type { CompositeColumnScale, IUnit } from \"../../units\";\nimport {\n BaseMeasurementsColumn,\n ColumnMeasurementData,\n MeasurementHeightData,\n standardizeMeasurementHeight,\n groupNotesByPixelDistance,\n TruncatedList,\n} from \"../measurements\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport {\n useCompositeScale,\n useMacrostratColumnData,\n} from \"../../data-provider\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport styles from \"./taxon-ranges.module.sass\";\nimport { getPositionWithinUnit, getUnitHeightRange } from \"../../prepare-units\";\nimport { scaleLinear } from \"d3-scale\";\n\nexport * from \"./taxon-ranges\";\n\nconst h = hyper.styled(styles);\n\nexport { FossilDataType };\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 const { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n\n if (data == null || units == null || scale == null) return null;\n\n const data1 = preparePBDBData(data, units, scale, axisType);\n\n return h(BaseMeasurementsColumn, {\n data: data1,\n noteComponent: FossilInfo,\n focusedNoteComponent: FossilInfo,\n className: \"fossil-collections\",\n });\n}\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 focused?: boolean;\n}\n\nfunction FossilInfo(props: FossilItemProps) {\n const { note, maxItems, focused = false } = props;\n const { data } = note;\n // Sort collections by name\n data.sort((a, b) => {\n const nameA = a.best_name ?? a.cltn_name ?? \"\";\n const nameB = b.best_name ?? b.cltn_name ?? \"\";\n return nameA.localeCompare(nameB);\n });\n\n return h(TruncatedList, {\n data,\n className: \"fossil-collections\",\n itemRenderer: PBDBCollectionLink,\n maxItems: focused ? Infinity : (maxItems ?? 5),\n });\n}\n\nconst FocusedFossilInfo = (props: FossilItemProps) =>\n h(FossilInfo, { ...props, maxItems: Infinity });\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/app/collections#display=col:${data.cltn_id}`,\n target: \"_blank\",\n onClick(e) {\n e.stopPropagation();\n },\n },\n data.best_name ?? data.cltn_name,\n );\n}\n\ninterface PreparePBDBDataOptions {\n /** If set, group close notes within this distance (in pixels in display space)\n * into a single note. If a number is provided, that number is used as the distance,\n * otherwise a default of 5 pixels is used.\n */\n groupCloseNotes?: boolean | number;\n}\n\nfunction preparePBDBData<T extends PBDBEntity>(\n data: T[],\n units: UnitLong[],\n scale: CompositeColumnScale,\n axisType: ColumnAxisType,\n options?: { groupCloseNotes?: boolean | number },\n) {\n /** Prepare PBDB fossil data for display in a measurements column */\n const { groupCloseNotes = true } = options ?? {};\n const groupDistance =\n typeof groupCloseNotes === \"number\" ? groupCloseNotes : 10;\n\n // Map of data to its defined height ranges\n const dataMap = new Map<string, ColumnMeasurementData<T[]>>();\n\n // Todo: if we wanted, we could add a step where we group notes that are too close together here...\n\n for (const d of data) {\n const range = getHeightRangeForPBDBEntity(d, units, axisType);\n\n if (range == null) continue;\n const { height, top_height } = range;\n // compose the key based on height info\n let key = `${height}`;\n if (top_height != null) {\n key += `-${top_height}`;\n }\n\n // Group by height key\n if (!dataMap.has(key)) {\n dataMap.set(key, {\n height,\n top_height: top_height ?? height,\n data: [],\n id: key,\n });\n }\n dataMap.get(key)!.data.push(d);\n }\n\n return groupNotesByPixelDistance(\n Array.from(dataMap.values()),\n scale,\n axisType,\n groupDistance,\n );\n}\n\nfunction getHeightRangeForPBDBEntity<T extends PBDBEntity>(\n d: T,\n units: UnitLong[],\n axisType: ColumnAxisType,\n): MeasurementHeightData | null {\n let height: number | null = null;\n if (d.slb != null && d.slu == \"mbsf\") {\n // Meters below sea floor - special case for eODP where we have\n // specific depth data referenced\n height = Number(d.slb);\n if (axisType === ColumnAxisType.DEPTH) {\n // Data is already in depth units\n return { height };\n }\n }\n if (d.unit_id == null) return null;\n if (height != null) {\n // If we have both height and unit info, we need to adjust the height\n // to fit whatever scale type we're using.\n // TODO: we could improve how this works by having concurrent age and\n // height scales, which would allow us to do this without having to\n // reference to a specific unit.\n const unit = units.find((u) => u.unit_id === d.unit_id);\n if (unit == null) return null;\n const relHeight = getRelativePositionInUnit(\n height,\n unit,\n ColumnAxisType.DEPTH,\n );\n if (relHeight == null) return null;\n height = getPositionWithinUnit(relHeight, unit, axisType);\n return { height };\n }\n // We can just get the height within the unit, clipped to the unit boundaries\n return standardizeMeasurementHeight({ unit_id: d.unit_id }, units, axisType);\n}\n\nfunction getRelativePositionInUnit<T extends PBDBEntity>(\n pos: number,\n unit: UnitLong,\n axisType: ColumnAxisType,\n): number | null {\n // This is the inverse of getPositionWithinUnit\n const heights = getUnitHeightRange(unit, axisType, false);\n const scale = scaleLinear(heights).domain([0, 1]);\n const relPos = scale.invert(pos);\n if (relPos < 0 || relPos > 1) return null;\n return relPos;\n}\n"],"names":[],"version":3,"file":"column-views.322790f3.js.map"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {createAPIContext as $7EBVZ$createAPIContext, useAPIResult as $7EBVZ$useAPIResult, useAsyncMemo as $7EBVZ$useAsyncMemo} from "@macrostrat/ui-components";
|
|
3
|
-
|
|
1
|
+
import {createAPIContext as $7EBVZ$createAPIContext, useAsyncMemo as $7EBVZ$useAsyncMemo} from "@macrostrat/ui-components";
|
|
4
2
|
|
|
5
3
|
|
|
6
4
|
const $a3ff7da576c02df0$var$responseUnwrapper = (d)=>d.records;
|
|
5
|
+
const $a3ff7da576c02df0$var$pbdbAPIBase = "https://paleobiodb.org/data1.2";
|
|
7
6
|
const $a3ff7da576c02df0$var$pbdbAPIContext = (0, $7EBVZ$createAPIContext)({
|
|
8
|
-
baseURL:
|
|
7
|
+
baseURL: $a3ff7da576c02df0$var$pbdbAPIBase,
|
|
9
8
|
unwrapResponse: $a3ff7da576c02df0$var$responseUnwrapper
|
|
10
9
|
});
|
|
11
10
|
var $a3ff7da576c02df0$export$a990c76b38782f57 = /*#__PURE__*/ function(FossilDataType) {
|
|
@@ -13,15 +12,6 @@ var $a3ff7da576c02df0$export$a990c76b38782f57 = /*#__PURE__*/ function(FossilDat
|
|
|
13
12
|
FossilDataType["Collections"] = "colls";
|
|
14
13
|
return FossilDataType;
|
|
15
14
|
}({});
|
|
16
|
-
function $a3ff7da576c02df0$export$c4ed16553d869511(type, { col_id: col_id }) {
|
|
17
|
-
const params = {
|
|
18
|
-
ms_column: col_id,
|
|
19
|
-
show: "full,mslink"
|
|
20
|
-
};
|
|
21
|
-
return (0, $7EBVZ$useAPIResult)(`/${type}/list.json`, params, {
|
|
22
|
-
context: $a3ff7da576c02df0$var$pbdbAPIContext
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
15
|
function $a3ff7da576c02df0$export$e6af757fa9780077(col_id, type = "colls") {
|
|
26
16
|
// Fossil links are stored in both Macrostrat and PBDB, depending on how the link was assembled. Here
|
|
27
17
|
// we create a unified view of data over both sources.
|
|
@@ -43,7 +33,8 @@ async function $a3ff7da576c02df0$var$fetchMacrostratFossilData(col_id, type) {
|
|
|
43
33
|
return res.success.data;
|
|
44
34
|
}
|
|
45
35
|
async function $a3ff7da576c02df0$var$fetchPDBDFossilData(col_id, type) {
|
|
46
|
-
|
|
36
|
+
// Note: show=rank does not work on training PBDB server
|
|
37
|
+
const resp = await fetch($a3ff7da576c02df0$var$pbdbAPIBase + `/${type}/list.json?ms_column=${col_id}&show=mslink,stratext`);
|
|
47
38
|
const res = await resp.json();
|
|
48
39
|
return res.records.map(type == "colls" ? $a3ff7da576c02df0$var$createMacrostratCollection : $a3ff7da576c02df0$var$preprocessOccurrence);
|
|
49
40
|
}
|
|
@@ -52,13 +43,13 @@ async function $a3ff7da576c02df0$var$fetchFossilData(colID, type) {
|
|
|
52
43
|
$a3ff7da576c02df0$var$fetchMacrostratFossilData(colID, type),
|
|
53
44
|
$a3ff7da576c02df0$var$fetchPDBDFossilData(colID, type)
|
|
54
45
|
]);
|
|
55
|
-
|
|
46
|
+
return [
|
|
56
47
|
...macrostratData,
|
|
57
48
|
...pbdbData
|
|
58
49
|
];
|
|
59
|
-
return (0, $7EBVZ$group)(data, (d)=>d.unit_id);
|
|
60
50
|
}
|
|
61
51
|
function $a3ff7da576c02df0$var$preprocessOccurrence(d) {
|
|
52
|
+
if (d.msu == null || d.msc == null) return d;
|
|
62
53
|
/* Preprocess data for an occurrence into a Macrostrat-like format */ // Standardize names of Macrostrat units and columns
|
|
63
54
|
const unit_id = parseInt(d.msu.replace(/^\w+:/, ""));
|
|
64
55
|
const col_id = parseInt(d.msc.replace(/^\w+:/, ""));
|
|
@@ -104,5 +95,5 @@ function $a3ff7da576c02df0$var$createMacrostratCollection(d) {
|
|
|
104
95
|
}
|
|
105
96
|
|
|
106
97
|
|
|
107
|
-
export {$a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $a3ff7da576c02df0$export$
|
|
108
|
-
//# sourceMappingURL=column-views.
|
|
98
|
+
export {$a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $a3ff7da576c02df0$export$e6af757fa9780077 as useFossilData};
|
|
99
|
+
//# sourceMappingURL=column-views.343fc926.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/facets/fossils/provider.ts"],"sourcesContent":["import {\n createAPIContext,\n useAPIResult,\n useAsyncMemo,\n} from \"@macrostrat/ui-components\";\n\nconst responseUnwrapper = (d) => d.records;\n\nconst pbdbAPIBase = \"https://paleobiodb.org/data1.2\";\n\nconst pbdbAPIContext = createAPIContext({\n baseURL: pbdbAPIBase,\n unwrapResponse: responseUnwrapper,\n});\n\nexport enum FossilDataType {\n Occurrences = \"occs\",\n Collections = \"colls\",\n}\n\nexport interface PBDBEntity {\n unit_id: number;\n col_id: number;\n cltn_id: number;\n // For eODP, slb/slu are used to store the heights of fossil locations found in measured sections.\n // They may have a more general set of uses as well but these are not currently explored.\n slb?: string; // The local bed in which the fossil was found\n slu?: string; // The unit of measurement used to designate the local bed\n}\n\nexport interface PBDBCollection extends PBDBEntity {\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 PBDBEntity {\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 // Note: show=rank does not work on training PBDB server\n const resp = await fetch(\n pbdbAPIBase + `/${type}/list.json?ms_column=${col_id}&show=mslink,stratext`,\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<T extends PBDBEntity>(\n colID: number,\n type: FossilDataType,\n): Promise<T[]> {\n const [macrostratData, pbdbData] = await Promise.all([\n fetchMacrostratFossilData(colID, type),\n fetchPDBDFossilData(colID, type),\n ]);\n return [...macrostratData, ...pbdbData];\n}\n\nfunction preprocessOccurrence(d): PBDBOccurrence {\n if (d.msu == null || d.msc == null) {\n return d;\n }\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":[],"version":3,"file":"column-views.343fc926.js.map"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {PBDBFossilsColumn as $b9286605a04210d4$export$554267114407ef68, FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57, PBDBOccurrencesMatrix as $d419340b86dbd2ea$export$652730986cccff7a} from "./column-views.322790f3.js";
|
|
2
|
+
import {DetritalColumn as $715dd5fedd79146a$export$f176396e104db8d5, DetritalGroup as $715dd5fedd79146a$export$1b3047373cd1c8c7} from "./column-views.c3c7901a.js";
|
|
3
|
+
import {IsotopesDataset as $d71d096cfe00860f$export$c69bd0285aa5d775, IsotopesColumn as $d71d096cfe00860f$export$5d8aa8022c284748, MeasurementDataContext as $5dbb619f2c7bef60$export$c644ef985ce7a4c4, MeasurementDataProvider as $5dbb619f2c7bef60$export$5f01d5b342a89841, useMeasurementData as $5dbb619f2c7bef60$export$8a0335fd9ff72150} from "./column-views.0da4503a.js";
|
|
4
|
+
import {standardizeMeasurementHeight as $50d219504625a431$export$9d101e1fcb2166a6, mergeHeightRanges as $50d219504625a431$export$8f2afa8ddee7317e, BaseMeasurementsColumn as $50d219504625a431$export$ce5c4f2fdf4e644d, TruncatedList as $50d219504625a431$export$653e47a7a0da0f0d, groupNotesByPixelDistance as $50d219504625a431$export$4e649f790614b299, SGPMeasurementsColumn as $c8e156b0b9c785ec$export$c49cf57576706bab} from "./column-views.6df65dab.js";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
export {$b9286605a04210d4$export$554267114407ef68 as PBDBFossilsColumn, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $d419340b86dbd2ea$export$652730986cccff7a as PBDBOccurrencesMatrix, $715dd5fedd79146a$export$f176396e104db8d5 as DetritalColumn, $715dd5fedd79146a$export$1b3047373cd1c8c7 as DetritalGroup, $d71d096cfe00860f$export$c69bd0285aa5d775 as IsotopesDataset, $d71d096cfe00860f$export$5d8aa8022c284748 as IsotopesColumn, $5dbb619f2c7bef60$export$c644ef985ce7a4c4 as MeasurementDataContext, $5dbb619f2c7bef60$export$5f01d5b342a89841 as MeasurementDataProvider, $5dbb619f2c7bef60$export$8a0335fd9ff72150 as useMeasurementData, $50d219504625a431$export$9d101e1fcb2166a6 as standardizeMeasurementHeight, $50d219504625a431$export$8f2afa8ddee7317e as mergeHeightRanges, $50d219504625a431$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $50d219504625a431$export$653e47a7a0da0f0d as TruncatedList, $50d219504625a431$export$4e649f790614b299 as groupNotesByPixelDistance, $c8e156b0b9c785ec$export$c49cf57576706bab as SGPMeasurementsColumn};
|
|
13
|
+
//# sourceMappingURL=column-views.3c9cba65.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"","sources":["packages/column-views/src/facets/index.ts"],"sourcesContent":["export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\
|
|
1
|
+
{"mappings":"","sources":["packages/column-views/src/facets/index.ts"],"sourcesContent":["export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\n"],"names":[],"version":3,"file":"column-views.3c9cba65.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {useMacrostratColumns as $774a5efa27d1c77b$export$81eaae0b474404fd, useMacrostratStore as $774a5efa27d1c77b$export$fb98d5bae3a6800} from "./column-views.
|
|
1
|
+
import {useMacrostratColumns as $774a5efa27d1c77b$export$81eaae0b474404fd, useMacrostratStore as $774a5efa27d1c77b$export$fb98d5bae3a6800} from "./column-views.e075af15.js";
|
|
2
2
|
import {create as $g0ikq$create, useStore as $g0ikq$useStore} from "zustand";
|
|
3
3
|
import {createContext as $g0ikq$createContext, useState as $g0ikq$useState, useMemo as $g0ikq$useMemo, useEffect as $g0ikq$useEffect, useContext as $g0ikq$useContext} from "react";
|
|
4
4
|
import $g0ikq$macrostrathyper from "@macrostrat/hyper";
|
|
@@ -78,4 +78,4 @@ function $09486427d129f589$export$642c2b57c47ea41(selector) {
|
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
export {$09486427d129f589$export$8da3b11f62ebf019 as ColumnNavigationProvider, $09486427d129f589$export$642c2b57c47ea41 as useColumnNavigationStore};
|
|
81
|
-
//# sourceMappingURL=column-views.
|
|
81
|
+
//# sourceMappingURL=column-views.3d3e00be.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;AAoCA,MAAM,+CAAyB,CAAA,GAAA,oBAAY,EACzC;AAGK,SAAS,0CAAyB,YACvC,QAAQ,WACR,OAAO,aACP,SAAS,kBACT,cAAc,aACd,SAAS,aACT,SAAS,kBACT,cAAc,iBACd,aAAa,EACW;IACxB,MAAM,aAAa,CAAA,GAAA,wCAAiB,EAAE,CAAC,IAAM,EAAE,UAAU;IAEzD,MAAM,CAAC,MAAM,GAAG,CAAA,GAAA,eAAO,EAAE;QACvB,OAAO,CAAA,GAAA,aAAK,EAAmB,CAAC,KAAK;YACnC,OAAO;gBACL,SAAS;gBACT,gBAAgB;gBAChB,eAAe;gBACf,cAAa,QAAuB;oBAClC,IAAI;wBAAE,gBAAgB;wBAAU,eAAe;oBAAK;oBACpD,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,iBAAiB,UAAU;gBAC7B;gBACA,kBAAiB,QAAuB;oBACtC,IAAI;wBAAE,eAAe;oBAAS;oBAC9B,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,gBAAgB,UAAU;gBAC5B;YACF;QACF;IACF;IAEA,mBAAmB;IACnB,iEAAiE,GACjE,+BAA+B;IAC/B,wEAAwE;IACxE,2DAA2D;IAC3D,mDAAmD;IAEnD,IAAI,WAAW,WAAW,CAAA,GAAA,yCAAmB,EAAE,WAAW;IAE1D,8BAA8B;IAC9B,IAAI,WAAW,SAAS,GACtB,WAAW,CAAA,GAAA,cAAM,EAAE;QACjB,OAAO,UAAU,OAAO,CAAC,IAAM,UAAU,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM;IACvE,GAAG;QAAC;QAAW;KAAS;IAG1B,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,UAAU,SAAS,GACrB,MAAM,QAAQ,CAAC;YAAE,SAAS;4BAAU;QAAe;IAEvD,GAAG;QAAC;KAAS;IACb,qDAAqD;IAErD,6EAA6E;IAC7E,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,gBAAE,YAAY,EAAE,gBAAgB,uBAAuB,EAAE,GAC7D,MAAM,QAAQ;QAChB,IAAI,kBAAkB,yBACpB;QAEF,aAAa;IACf,GAAG;QAAC;KAAe;IAEnB,OAAO,CAAA,GAAA,sBAAA,EAAE,6CAAuB,QAAQ,EAAE;QAAE,OAAO;IAAM,GAAG;AAC9D;AAEO,SAAS,yCACd,QAAyC;IAEzC,MAAM,WAAW,CAAA,GAAA,iBAAS,EAAE;IAC5B,IAAI,YAAY,MACd,MAAM,IAAI,MAAM;IAElB,OAAO,CAAA,GAAA,eAAO,EAAE,UAAU;AAC5B","sources":["packages/column-views/src/maps/column-navigation/mapbox/state.ts"],"sourcesContent":["import { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecordWithID } from \"@macrostrat/api-types\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n useMemo,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n useMacrostratColumns,\n useMacrostratStore,\n} from \"../../../data-provider\";\n\nexport interface NavigationStore {\n columns: ColumnGeoJSONRecordWithID[];\n selectedColumn: number | null;\n hoveredColumn: number | null;\n selectColumn: (columnID: number | null) => void;\n setHoveredColumn: (columnID: number | null) => void;\n}\n\nexport interface NavigationProviderProps {\n projectID?: number;\n inProcess?: boolean;\n selectedColumn?: number | null;\n hoveredColumn?: number | null;\n columns?: ColumnGeoJSONRecordWithID[] | null;\n columnIDs?: number[] | null;\n children: ReactNode;\n onSelectColumn?: (col_id: number | null, column: any) => void;\n onHoverColumn?: (col_id: number | null, column: any) => void;\n}\n\nconst NavigationStoreContext = createContext<StoreApi<NavigationStore> | null>(\n null,\n);\n\nexport function ColumnNavigationProvider({\n children,\n columns,\n columnIDs,\n selectedColumn,\n projectID,\n inProcess,\n onSelectColumn,\n onHoverColumn,\n}: NavigationProviderProps) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n\n const [store] = useState(() => {\n return create<NavigationStore>((set, get): NavigationStore => {\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn(columnID: number | null) {\n set({ selectedColumn: columnID, hoveredColumn: null });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn(columnID: number | null) {\n set({ hoveredColumn: columnID });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onHoverColumn?.(columnID, column);\n },\n };\n });\n });\n\n // Set up the store\n /** TODO: unify handling of columns between parts of application */\n // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n\n let _columns = columns ?? useMacrostratColumns(projectID, inProcess);\n\n // filter columns if specified\n if (columnIDs?.length > 0) {\n _columns = useMemo(() => {\n return _columns?.filter((d) => columnIDs.includes(d.properties.col_id));\n }, [columnIDs, _columns]);\n }\n\n useEffect(() => {\n if (_columns?.length > 0) {\n store.setState({ columns: _columns, selectedColumn });\n }\n }, [_columns]);\n // Update selected column if it is changed externally\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n useEffect(() => {\n const { selectColumn, selectedColumn: _internalSelectedColumn } =\n store.getState();\n if (selectedColumn == _internalSelectedColumn) {\n return;\n }\n selectColumn(selectedColumn);\n }, [selectedColumn]);\n\n return h(NavigationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useColumnNavigationStore(\n selector: (state: NavigationStore) => any,\n) {\n const storeApi = useContext(NavigationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing ColumnNavigationProvider\");\n }\n return useStore(storeApi, selector);\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;AAoCA,MAAM,+CAAyB,CAAA,GAAA,oBAAY,EACzC;AAGK,SAAS,0CAAyB,YACvC,QAAQ,WACR,OAAO,aACP,SAAS,kBACT,cAAc,aACd,SAAS,aACT,SAAS,kBACT,cAAc,iBACd,aAAa,EACW;IACxB,MAAM,aAAa,CAAA,GAAA,wCAAiB,EAAE,CAAC,IAAM,EAAE,UAAU;IAEzD,MAAM,CAAC,MAAM,GAAG,CAAA,GAAA,eAAO,EAAE;QACvB,OAAO,CAAA,GAAA,aAAK,EAAmB,CAAC,KAAK;YACnC,OAAO;gBACL,SAAS;gBACT,gBAAgB;gBAChB,eAAe;gBACf,cAAa,QAAuB;oBAClC,IAAI;wBAAE,gBAAgB;wBAAU,eAAe;oBAAK;oBACpD,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,iBAAiB,UAAU;gBAC7B;gBACA,kBAAiB,QAAuB;oBACtC,IAAI;wBAAE,eAAe;oBAAS;oBAC9B,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,gBAAgB,UAAU;gBAC5B;YACF;QACF;IACF;IAEA,mBAAmB;IACnB,iEAAiE,GACjE,+BAA+B;IAC/B,wEAAwE;IACxE,2DAA2D;IAC3D,mDAAmD;IAEnD,IAAI,WAAW,WAAW,CAAA,GAAA,yCAAmB,EAAE,WAAW;IAE1D,8BAA8B;IAC9B,IAAI,WAAW,SAAS,GACtB,WAAW,CAAA,GAAA,cAAM,EAAE;QACjB,OAAO,UAAU,OAAO,CAAC,IAAM,UAAU,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM;IACvE,GAAG;QAAC;QAAW;KAAS;IAG1B,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,UAAU,SAAS,GACrB,MAAM,QAAQ,CAAC;YAAE,SAAS;4BAAU;QAAe;IAEvD,GAAG;QAAC;KAAS;IACb,qDAAqD;IAErD,6EAA6E;IAC7E,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,gBAAE,YAAY,EAAE,gBAAgB,uBAAuB,EAAE,GAC7D,MAAM,QAAQ;QAChB,IAAI,kBAAkB,yBACpB;QAEF,aAAa;IACf,GAAG;QAAC;KAAe;IAEnB,OAAO,CAAA,GAAA,sBAAA,EAAE,6CAAuB,QAAQ,EAAE;QAAE,OAAO;IAAM,GAAG;AAC9D;AAEO,SAAS,yCACd,QAAyC;IAEzC,MAAM,WAAW,CAAA,GAAA,iBAAS,EAAE;IAC5B,IAAI,YAAY,MACd,MAAM,IAAI,MAAM;IAElB,OAAO,CAAA,GAAA,eAAO,EAAE,UAAU;AAC5B","sources":["packages/column-views/src/maps/column-navigation/mapbox/state.ts"],"sourcesContent":["import { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecordWithID } from \"@macrostrat/api-types\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n useMemo,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n useMacrostratColumns,\n useMacrostratStore,\n} from \"../../../data-provider\";\n\nexport interface NavigationStore {\n columns: ColumnGeoJSONRecordWithID[];\n selectedColumn: number | null;\n hoveredColumn: number | null;\n selectColumn: (columnID: number | null) => void;\n setHoveredColumn: (columnID: number | null) => void;\n}\n\nexport interface NavigationProviderProps {\n projectID?: number;\n inProcess?: boolean;\n selectedColumn?: number | null;\n hoveredColumn?: number | null;\n columns?: ColumnGeoJSONRecordWithID[] | null;\n columnIDs?: number[] | null;\n children: ReactNode;\n onSelectColumn?: (col_id: number | null, column: any) => void;\n onHoverColumn?: (col_id: number | null, column: any) => void;\n}\n\nconst NavigationStoreContext = createContext<StoreApi<NavigationStore> | null>(\n null,\n);\n\nexport function ColumnNavigationProvider({\n children,\n columns,\n columnIDs,\n selectedColumn,\n projectID,\n inProcess,\n onSelectColumn,\n onHoverColumn,\n}: NavigationProviderProps) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n\n const [store] = useState(() => {\n return create<NavigationStore>((set, get): NavigationStore => {\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn(columnID: number | null) {\n set({ selectedColumn: columnID, hoveredColumn: null });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn(columnID: number | null) {\n set({ hoveredColumn: columnID });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onHoverColumn?.(columnID, column);\n },\n };\n });\n });\n\n // Set up the store\n /** TODO: unify handling of columns between parts of application */\n // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n\n let _columns = columns ?? useMacrostratColumns(projectID, inProcess);\n\n // filter columns if specified\n if (columnIDs?.length > 0) {\n _columns = useMemo(() => {\n return _columns?.filter((d) => columnIDs.includes(d.properties.col_id));\n }, [columnIDs, _columns]);\n }\n\n useEffect(() => {\n if (_columns?.length > 0) {\n store.setState({ columns: _columns, selectedColumn });\n }\n }, [_columns]);\n // Update selected column if it is changed externally\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n useEffect(() => {\n const { selectColumn, selectedColumn: _internalSelectedColumn } =\n store.getState();\n if (selectedColumn == _internalSelectedColumn) {\n return;\n }\n selectColumn(selectedColumn);\n }, [selectedColumn]);\n\n return h(NavigationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useColumnNavigationStore(\n selector: (state: NavigationStore) => any,\n) {\n const storeApi = useContext(NavigationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing ColumnNavigationProvider\");\n }\n return useStore(storeApi, selector);\n}\n"],"names":[],"version":3,"file":"column-views.3d3e00be.js.map"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.
|
|
2
|
-
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.
|
|
1
|
+
import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.052498a6.js";
|
|
2
|
+
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
3
3
|
import $5ZBll$macrostrathyper from "@macrostrat/hyper";
|
|
4
4
|
import $5ZBll$react, {useCallback as $5ZBll$useCallback, useMemo as $5ZBll$useMemo} from "react";
|
|
5
5
|
import {NotesColumn as $5ZBll$NotesColumn} from "@macrostrat/column-components";
|
|
@@ -66,4 +66,4 @@ function $bc17276da4abb183$export$594d19cdd88f8c16(props) {
|
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
export {$bc17276da4abb183$export$2f2e65a797f8fc1e as noteForDivision, $bc17276da4abb183$export$c9757aeb43a67df0 as defaultNameFunction, $bc17276da4abb183$export$6316e673796ccb55 as UnitDataColumn, $bc17276da4abb183$export$594d19cdd88f8c16 as UnitNamesColumn};
|
|
69
|
-
//# sourceMappingURL=column-views.
|
|
69
|
+
//# sourceMappingURL=column-views.40094dd9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;AA+BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,OAAO;gBACL;oBACA;QACA,MAAM;QACN,IAAI,IAAI,OAAO;IACjB;AACF;AAEA,MAAM,4CAAsB,CAAC;IAC3B,OAAO,IAAI,SAAS,CACjB,OAAO,CAAC,OAAO,UACf,OAAO,CAAC,MAAM,aACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,sCAAgB,KAAoB;IAC3C,MAAM,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAClD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAC9B,MAAM,QACJ,OAAO,kBACP,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,OACZ,GAAG,MACJ,GAAG;IAEJ,MAAM,sBAAsB,CAAA,GAAA,kBAAU,EACpC,CAAC;QACC,IAAI,iBAAiB,GAAG,OAAO;QAC/B,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM;QACxD,OAAO,KAAK;IACd,GACA;QAAC;QAAO;KAAc;IAGxB,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM,QAAoB,UACvB,MAAM,CAAC,kBACP,GAAG,CAAC,CAAC,IAAa,0CAAgB,GAAG;sBAAE;QAAS,IAChD,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAS3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,uBAAuB,CAAA,GAAA,cAAM,EACjC,IAAM,CAAC;YACL,MAAM,QAAE,IAAI,EAAE,GAAG;YACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;QACxD,GACA;QAAC;KAAgB;IAGnB,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;QACvB,eAAe,iBAAiB;QAChC,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useCallback, useMemo } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit } from \"./types\";\nimport React from \"react\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { CompositeColumnScale } from \"./composite\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n scale?: CompositeColumnScale;\n}\n\ntype UnitNote = {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n};\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType },\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n minimumHeight = 0,\n divisions = units,\n ...rest\n } = props;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight],\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const defaultNoteComponent = useMemo(\n () => (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n },\n [nameForDivision],\n );\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? defaultNoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;;;AA+BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,OAAO;gBACL;oBACA;QACA,MAAM;QACN,IAAI,IAAI,OAAO;IACjB;AACF;AAEA,MAAM,4CAAsB,CAAC;IAC3B,OAAO,IAAI,SAAS,CACjB,OAAO,CAAC,OAAO,UACf,OAAO,CAAC,MAAM,aACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,sCAAgB,KAAoB;IAC3C,MAAM,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAClD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAC9B,MAAM,QACJ,OAAO,kBACP,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,OACZ,GAAG,MACJ,GAAG;IAEJ,MAAM,sBAAsB,CAAA,GAAA,kBAAU,EACpC,CAAC;QACC,IAAI,iBAAiB,GAAG,OAAO;QAC/B,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM;QACxD,OAAO,KAAK;IACd,GACA;QAAC;QAAO;KAAc;IAGxB,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM,QAAoB,UACvB,MAAM,CAAC,kBACP,GAAG,CAAC,CAAC,IAAa,0CAAgB,GAAG;sBAAE;QAAS,IAChD,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAS3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,uBAAuB,CAAA,GAAA,cAAM,EACjC,IAAM,CAAC;YACL,MAAM,QAAE,IAAI,EAAE,GAAG;YACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;QACxD,GACA;QAAC;KAAgB;IAGnB,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;QACvB,eAAe,iBAAiB;QAChC,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useCallback, useMemo } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit } from \"./types\";\nimport React from \"react\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { CompositeColumnScale } from \"./composite\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n scale?: CompositeColumnScale;\n}\n\ntype UnitNote = {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n};\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType },\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n minimumHeight = 0,\n divisions = units,\n ...rest\n } = props;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight],\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const defaultNoteComponent = useMemo(\n () => (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n },\n [nameForDivision],\n );\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? defaultNoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"column-views.40094dd9.js.map"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {ColumnNotesProvider as $8c8238faa5cde49c$export$6cc7a9df4edde18} from "./column-views.
|
|
2
|
-
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.
|
|
1
|
+
import {ColumnNotesProvider as $8c8238faa5cde49c$export$6cc7a9df4edde18} from "./column-views.63d40878.js";
|
|
2
|
+
import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4b259f9e.js";
|
|
3
3
|
import $aB7pQ$macrostrathyper from "@macrostrat/hyper";
|
|
4
|
-
import {SVG as $aB7pQ$SVG,
|
|
4
|
+
import {SVG as $aB7pQ$SVG, NotesColumn as $aB7pQ$NotesColumn} from "@macrostrat/column-components";
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
function $9e52fe4012c88296$export$fc5babae10f3f77d({ notes: notes, width: width = 200, noteComponent: noteComponent, paddingLeft: paddingLeft = 60, deltaConnectorAttachment: deltaConnectorAttachment, children: children }) {
|
|
10
|
+
function $9e52fe4012c88296$export$fc5babae10f3f77d({ notes: notes, width: width = 200, noteComponent: noteComponent, paddingLeft: paddingLeft = 60, deltaConnectorAttachment: deltaConnectorAttachment, focusedNoteComponent: focusedNoteComponent, children: children }) {
|
|
11
11
|
const { totalHeight: totalHeight } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
|
|
12
12
|
const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
|
|
13
13
|
return (0, $aB7pQ$macrostrathyper)((0, $8c8238faa5cde49c$export$6cc7a9df4edde18), {
|
|
@@ -20,12 +20,13 @@ function $9e52fe4012c88296$export$fc5babae10f3f77d({ notes: notes, width: width
|
|
|
20
20
|
height: totalHeight,
|
|
21
21
|
paddingH: 4
|
|
22
22
|
}, [
|
|
23
|
-
(0, $aB7pQ$macrostrathyper)((0, $aB7pQ$
|
|
23
|
+
(0, $aB7pQ$macrostrathyper)((0, $aB7pQ$NotesColumn), {
|
|
24
24
|
width: width,
|
|
25
25
|
notes: notes,
|
|
26
26
|
noteComponent: noteComponent,
|
|
27
27
|
paddingLeft: paddingLeft,
|
|
28
|
-
deltaConnectorAttachment: deltaConnectorAttachment
|
|
28
|
+
deltaConnectorAttachment: deltaConnectorAttachment,
|
|
29
|
+
focusedNoteComponent: focusedNoteComponent
|
|
29
30
|
})
|
|
30
31
|
]),
|
|
31
32
|
children
|
|
@@ -34,4 +35,4 @@ function $9e52fe4012c88296$export$fc5babae10f3f77d({ notes: notes, width: width
|
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
export {$9e52fe4012c88296$export$fc5babae10f3f77d as ColumnNotes};
|
|
37
|
-
//# sourceMappingURL=column-views.
|
|
38
|
+
//# sourceMappingURL=column-views.44373a90.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;AAkBO,SAAS,0CAAY,SAC1B,KAAK,SACL,QAAQ,oBACR,aAAa,eACb,cAAc,8BACd,wBAAwB,wBACxB,oBAAoB,YACpB,QAAQ,EACS;IACjB,MAAM,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAC9C,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,OAAO,CAAA,GAAA,sBAAA,EACL,CAAA,GAAA,wCAAkB,GAClB;eACE;qBACA;QACA,YAAY;IACd,GACA;QACE,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,UAAE,GAAG;mBAAE;YAAO,QAAQ;YAAa,UAAU;QAAE,GAAG;YAClD,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;uBACb;uBACA;+BACA;6BACA;0CACA;sCACA;YACF;SACD;QACD;KACD;AAEL","sources":["packages/column-views/src/notes.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\n\nimport { ColumnNotesProvider } from \"./units\";\n\nimport { NotesColumn, SVG } from \"@macrostrat/column-components\";\nimport { useCompositeScale, useMacrostratColumnData } from \"./data-provider\";\nimport type { ComponentType, 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 focusedNoteComponent?: ComponentType<any> | null;\n}\n\nexport function ColumnNotes({\n notes,\n width = 200,\n noteComponent,\n paddingLeft = 60,\n deltaConnectorAttachment,\n focusedNoteComponent,\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(NotesColumn, {\n width,\n notes,\n noteComponent,\n paddingLeft,\n deltaConnectorAttachment,\n focusedNoteComponent,\n }),\n ]),\n children,\n ],\n );\n}\n"],"names":[],"version":3,"file":"column-views.44373a90.js.map"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {useColumnNavigationStore as $09486427d129f589$export$642c2b57c47ea41} from "./column-views.
|
|
1
|
+
import {useColumnNavigationStore as $09486427d129f589$export$642c2b57c47ea41} from "./column-views.3d3e00be.js";
|
|
2
2
|
import {buildKeyMapping as $40b71acee908f16d$export$b3975a0f05980d25, buildTriangulation as $40b71acee908f16d$export$39cd73f2cb8dc4f7} from "./column-views.dc42f5d0.js";
|
|
3
3
|
import {useMemo as $1DDgQ$useMemo, useCallback as $1DDgQ$useCallback, useEffect as $1DDgQ$useEffect} from "react";
|
|
4
4
|
import {setGeoJSON as $1DDgQ$setGeoJSON, buildGeoJSONSource as $1DDgQ$buildGeoJSONSource} from "@macrostrat/mapbox-utils";
|
|
@@ -109,4 +109,4 @@ function $ab1043903d5406ef$export$c613fba0aabeee13(color = "purple") {
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
export {$ab1043903d5406ef$export$8c41dd563753848 as ColumnKeyboardNavigation, $ab1043903d5406ef$export$c613fba0aabeee13 as buildKeyboardNavigationStyle};
|
|
112
|
-
//# sourceMappingURL=column-views.
|
|
112
|
+
//# sourceMappingURL=column-views.488f24b6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;AAaO,SAAS,yCAAyB,KAAuB;IAC9D,kEAAkE,GAClE,MAAM,qBAAE,oBAAoB,OAAO,GAAG;IACtC,MAAM,UAAU,CAAA,GAAA,wCAAuB,EAAE,CAAC,QAAU,MAAM,OAAO;IACjE,MAAM,SAAS,CAAA,GAAA,wCAAuB,EAAE,CAAC,QAAU,MAAM,cAAc;IACvE,MAAM,eAAe,CAAA,GAAA,wCAAuB,EAAE,CAAC,QAAU,MAAM,YAAY;IAE3E,MAAM,UAAU,CAAA,GAAA,cAAM,EAAE;QACtB,IAAI,CAAC,WAAW,QAAQ,MAAM,IAAI,GAAG,OAAO;QAC5C,OAAO,CAAA,GAAA,yCAAiB,EAAE;IAC5B,GAAG;QAAC;KAAQ;IAEZ,MAAM,SAAS,CAAA,GAAA,gBAAQ;IACvB,MAAM,MAAM,OAAO,OAAO;IAE1B,MAAM,aAAa,CAAA,GAAA,cAAM,EAAE;QACzB,IAAI,WAAW,QAAQ,WAAW,QAAQ,OAAO,MAAM,OAAO;QAE9D,MAAM,aAAa,CAAC;YAClB,MAAM,KAAK,IAAI,OAAO,CAAC;YACvB,OAAO;gBAAC,GAAG,CAAC;gBAAE,GAAG,CAAC;aAAC;QACrB;QAEA,MAAM,eAAe,QAAQ,SAAS,CACpC,CAAC,IAAM,EAAE,UAAU,CAAC,MAAM,IAAI;QAGhC,MAAM,YAAY,QAAQ,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa;QAC9D,OAAO,CAAA,GAAA,yCAAc,EACnB,WACA,QAAQ,SAAS,EACjB,cACA;IAEJ,GAAG;QAAC;QAAQ;QAAS;QAAS;KAAI;IAElC,MAAM,YAAY,CAAA,GAAA,kBAAU,EAC1B,CAAC;QACC,IAAI,cAAc,MAAM;QACxB,MAAM,eAAe,UAAU,CAAC,MAAM,KAAK,CAAC;QAC5C,IAAI,gBAAgB,MAAM;QAC1B,MAAM,cAAc;QACpB,MAAM,eAAe;QACrB,aAAa;QACb,aAAa,OAAO,CAAC,aAAa,CAAC,EAAE;QACrC,OAAO;IACT,GACA;QAAC;QAAY;KAAa;IAG5B,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,OAAO,MAAM;QACjB,MAAM,SAAS,IAAI,SAAS;QAC5B,OAAO,gBAAgB,CAAC,WAAW;QACnC,OAAO;YACL,OAAO,mBAAmB,CAAC,WAAW;QACxC;IACF,GAAG;QAAC;QAAK;KAAU;IAEnB,CAAA,GAAA,0BAAkB,EAChB,CAAC;QACC,IAAI,WAAW,QAAQ,CAAC,mBAAmB;QAC3C,MAAM,YAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,CAAC,KAAK;QAEtC,CAAA,GAAA,iBAAS,EAAE,KAAK,gBAAgB;YAC9B,MAAM;sBACN;QACF;IACF,GACA;QAAC;QAAS;KAAkB;IAG9B,qCAAqC;IACrC,6DAA6D;IAE7D,OAAO;AACT;AAEO,SAAS,0CAA6B,QAAgB,QAAQ;IACnE,OAAO;QACL,SAAS;YACP,gBAAgB,CAAA,GAAA,yBAAiB;QAEnC;QACA,QAAQ;YACN;gBACE,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,OAAO;oBACL,cAAc;oBACd,cAAc;gBAChB;YACF;YACA;gBACE,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,OAAO;oBACL,iBAAiB;oBACjB,gBAAgB;gBAClB;YACF;SACD;IACH;AACF","sources":["packages/column-views/src/maps/column-navigation/mapbox/keyboard-navigation.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from \"react\";\nimport { buildGeoJSONSource, setGeoJSON } from \"@macrostrat/mapbox-utils\";\nimport { useMapRef, useMapStyleOperator } from \"@macrostrat/mapbox-react\";\nimport { useColumnNavigationStore } from \"./state\";\nimport {\n buildTriangulation,\n buildKeyMapping,\n} from \"../utils/keyboard-navigation\";\n\ninterface KeyboardNavProps {\n showTriangulation: boolean;\n}\n\nexport function ColumnKeyboardNavigation(props: KeyboardNavProps) {\n /** Keyboard navigation of columns using a Delaunay triangulation */\n const { showTriangulation = false } = props;\n const columns = useColumnNavigationStore((state) => state.columns);\n const col_id = useColumnNavigationStore((state) => state.selectedColumn);\n const selectColumn = useColumnNavigationStore((state) => state.selectColumn);\n\n const voronoi = useMemo(() => {\n if (!columns || columns.length == 0) return null;\n return buildTriangulation(columns);\n }, [columns]);\n\n const mapRef = useMapRef();\n const map = mapRef.current;\n\n const keyMapping = useMemo(() => {\n if (columns == null || voronoi == null || map == null) return null;\n\n const projection = (d) => {\n const pt = map.project(d);\n return [pt.x, pt.y];\n };\n\n const currentIndex = columns.findIndex(\n (d) => d.properties.col_id == col_id,\n );\n\n const neighbors = voronoi.tri.delaunay.neighbors[currentIndex];\n return buildKeyMapping(\n neighbors,\n voronoi.centroids,\n currentIndex,\n projection,\n );\n }, [col_id, columns, voronoi, map]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (keyMapping == null) return;\n const nextColumnIx = keyMapping[event.which];\n if (nextColumnIx == null) return;\n event.preventDefault();\n event.stopPropagation();\n // @ts-ignore\n selectColumn(columns[nextColumnIx].id);\n return false;\n },\n [keyMapping, selectColumn],\n );\n\n useEffect(() => {\n if (map == null) return;\n const canvas = map.getCanvas();\n canvas.addEventListener(\"keydown\", onKeyDown);\n return () => {\n canvas.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [map, onKeyDown]);\n\n useMapStyleOperator(\n (map) => {\n if (voronoi == null || !showTriangulation) return;\n const { features } = voronoi.tri.links();\n\n setGeoJSON(map, \"column-links\", {\n type: \"FeatureCollection\",\n features,\n });\n },\n [voronoi, showTriangulation],\n );\n\n //if (neighbors == null) return null;\n //const neighborFeatures = neighbors.map((d) => features[d]);\n\n return null;\n}\n\nexport function buildKeyboardNavigationStyle(color: string = \"purple\") {\n return {\n sources: {\n \"column-links\": buildGeoJSONSource(),\n //neighbors: buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"column-links\",\n type: \"line\",\n source: \"column-links\",\n paint: {\n \"line-color\": color,\n \"line-width\": 1.5,\n },\n },\n {\n id: \"column-centers\",\n type: \"circle\",\n source: \"column-links\",\n paint: {\n \"circle-radius\": 2,\n \"circle-color\": color,\n },\n },\n ],\n };\n}\n"],"names":[],"version":3,"file":"column-views.
|
|
1
|
+
{"mappings":";;;;;;;;;;;AAaO,SAAS,yCAAyB,KAAuB;IAC9D,kEAAkE,GAClE,MAAM,qBAAE,oBAAoB,OAAO,GAAG;IACtC,MAAM,UAAU,CAAA,GAAA,wCAAuB,EAAE,CAAC,QAAU,MAAM,OAAO;IACjE,MAAM,SAAS,CAAA,GAAA,wCAAuB,EAAE,CAAC,QAAU,MAAM,cAAc;IACvE,MAAM,eAAe,CAAA,GAAA,wCAAuB,EAAE,CAAC,QAAU,MAAM,YAAY;IAE3E,MAAM,UAAU,CAAA,GAAA,cAAM,EAAE;QACtB,IAAI,CAAC,WAAW,QAAQ,MAAM,IAAI,GAAG,OAAO;QAC5C,OAAO,CAAA,GAAA,yCAAiB,EAAE;IAC5B,GAAG;QAAC;KAAQ;IAEZ,MAAM,SAAS,CAAA,GAAA,gBAAQ;IACvB,MAAM,MAAM,OAAO,OAAO;IAE1B,MAAM,aAAa,CAAA,GAAA,cAAM,EAAE;QACzB,IAAI,WAAW,QAAQ,WAAW,QAAQ,OAAO,MAAM,OAAO;QAE9D,MAAM,aAAa,CAAC;YAClB,MAAM,KAAK,IAAI,OAAO,CAAC;YACvB,OAAO;gBAAC,GAAG,CAAC;gBAAE,GAAG,CAAC;aAAC;QACrB;QAEA,MAAM,eAAe,QAAQ,SAAS,CACpC,CAAC,IAAM,EAAE,UAAU,CAAC,MAAM,IAAI;QAGhC,MAAM,YAAY,QAAQ,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa;QAC9D,OAAO,CAAA,GAAA,yCAAc,EACnB,WACA,QAAQ,SAAS,EACjB,cACA;IAEJ,GAAG;QAAC;QAAQ;QAAS;QAAS;KAAI;IAElC,MAAM,YAAY,CAAA,GAAA,kBAAU,EAC1B,CAAC;QACC,IAAI,cAAc,MAAM;QACxB,MAAM,eAAe,UAAU,CAAC,MAAM,KAAK,CAAC;QAC5C,IAAI,gBAAgB,MAAM;QAC1B,MAAM,cAAc;QACpB,MAAM,eAAe;QACrB,aAAa;QACb,aAAa,OAAO,CAAC,aAAa,CAAC,EAAE;QACrC,OAAO;IACT,GACA;QAAC;QAAY;KAAa;IAG5B,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,OAAO,MAAM;QACjB,MAAM,SAAS,IAAI,SAAS;QAC5B,OAAO,gBAAgB,CAAC,WAAW;QACnC,OAAO;YACL,OAAO,mBAAmB,CAAC,WAAW;QACxC;IACF,GAAG;QAAC;QAAK;KAAU;IAEnB,CAAA,GAAA,0BAAkB,EAChB,CAAC;QACC,IAAI,WAAW,QAAQ,CAAC,mBAAmB;QAC3C,MAAM,YAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,CAAC,KAAK;QAEtC,CAAA,GAAA,iBAAS,EAAE,KAAK,gBAAgB;YAC9B,MAAM;sBACN;QACF;IACF,GACA;QAAC;QAAS;KAAkB;IAG9B,qCAAqC;IACrC,6DAA6D;IAE7D,OAAO;AACT;AAEO,SAAS,0CAA6B,QAAgB,QAAQ;IACnE,OAAO;QACL,SAAS;YACP,gBAAgB,CAAA,GAAA,yBAAiB;QAEnC;QACA,QAAQ;YACN;gBACE,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,OAAO;oBACL,cAAc;oBACd,cAAc;gBAChB;YACF;YACA;gBACE,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,OAAO;oBACL,iBAAiB;oBACjB,gBAAgB;gBAClB;YACF;SACD;IACH;AACF","sources":["packages/column-views/src/maps/column-navigation/mapbox/keyboard-navigation.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from \"react\";\nimport { buildGeoJSONSource, setGeoJSON } from \"@macrostrat/mapbox-utils\";\nimport { useMapRef, useMapStyleOperator } from \"@macrostrat/mapbox-react\";\nimport { useColumnNavigationStore } from \"./state\";\nimport {\n buildTriangulation,\n buildKeyMapping,\n} from \"../utils/keyboard-navigation\";\n\ninterface KeyboardNavProps {\n showTriangulation: boolean;\n}\n\nexport function ColumnKeyboardNavigation(props: KeyboardNavProps) {\n /** Keyboard navigation of columns using a Delaunay triangulation */\n const { showTriangulation = false } = props;\n const columns = useColumnNavigationStore((state) => state.columns);\n const col_id = useColumnNavigationStore((state) => state.selectedColumn);\n const selectColumn = useColumnNavigationStore((state) => state.selectColumn);\n\n const voronoi = useMemo(() => {\n if (!columns || columns.length == 0) return null;\n return buildTriangulation(columns);\n }, [columns]);\n\n const mapRef = useMapRef();\n const map = mapRef.current;\n\n const keyMapping = useMemo(() => {\n if (columns == null || voronoi == null || map == null) return null;\n\n const projection = (d) => {\n const pt = map.project(d);\n return [pt.x, pt.y];\n };\n\n const currentIndex = columns.findIndex(\n (d) => d.properties.col_id == col_id,\n );\n\n const neighbors = voronoi.tri.delaunay.neighbors[currentIndex];\n return buildKeyMapping(\n neighbors,\n voronoi.centroids,\n currentIndex,\n projection,\n );\n }, [col_id, columns, voronoi, map]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (keyMapping == null) return;\n const nextColumnIx = keyMapping[event.which];\n if (nextColumnIx == null) return;\n event.preventDefault();\n event.stopPropagation();\n // @ts-ignore\n selectColumn(columns[nextColumnIx].id);\n return false;\n },\n [keyMapping, selectColumn],\n );\n\n useEffect(() => {\n if (map == null) return;\n const canvas = map.getCanvas();\n canvas.addEventListener(\"keydown\", onKeyDown);\n return () => {\n canvas.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [map, onKeyDown]);\n\n useMapStyleOperator(\n (map) => {\n if (voronoi == null || !showTriangulation) return;\n const { features } = voronoi.tri.links();\n\n setGeoJSON(map, \"column-links\", {\n type: \"FeatureCollection\",\n features,\n });\n },\n [voronoi, showTriangulation],\n );\n\n //if (neighbors == null) return null;\n //const neighborFeatures = neighbors.map((d) => features[d]);\n\n return null;\n}\n\nexport function buildKeyboardNavigationStyle(color: string = \"purple\") {\n return {\n sources: {\n \"column-links\": buildGeoJSONSource(),\n //neighbors: buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"column-links\",\n type: \"line\",\n source: \"column-links\",\n paint: {\n \"line-color\": color,\n \"line-width\": 1.5,\n },\n },\n {\n id: \"column-centers\",\n type: \"circle\",\n source: \"column-links\",\n paint: {\n \"circle-radius\": 2,\n \"circle-color\": color,\n },\n },\n ],\n };\n}\n"],"names":[],"version":3,"file":"column-views.488f24b6.js.map"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {createCompositeScale as $728f6cf6c12cd490$export$3ada7641926a616d} from "./column-views.
|
|
2
|
-
import {createContext as $a90Ta$createContext, useMemo as $a90Ta$useMemo, useContext as $a90Ta$useContext} from "react";
|
|
1
|
+
import {createCompositeScale as $728f6cf6c12cd490$export$3ada7641926a616d} from "./column-views.1b5bf0c6.js";
|
|
2
|
+
import {createContext as $a90Ta$createContext, useMemo as $a90Ta$useMemo, useContext as $a90Ta$useContext, useRef as $a90Ta$useRef, useEffect as $a90Ta$useEffect} from "react";
|
|
3
3
|
import $a90Ta$macrostrathyper from "@macrostrat/hyper";
|
|
4
4
|
import {createIsolation as $a90Ta$createIsolation} from "jotai-scope";
|
|
5
5
|
import {atom as $a90Ta$atom} from "jotai";
|
|
@@ -9,7 +9,7 @@ import {atom as $a90Ta$atom} from "jotai";
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
const { Provider: $d5074f164411387e$var$Provider,
|
|
12
|
+
const { Provider: $d5074f164411387e$var$Provider, useSetAtom: $d5074f164411387e$var$useSetAtom, useAtomValue: $d5074f164411387e$var$useAtomValue, useStore: $d5074f164411387e$var$useStore } = (0, $a90Ta$createIsolation)();
|
|
13
13
|
const $d5074f164411387e$var$columnUnitsAtom = (0, $a90Ta$atom)();
|
|
14
14
|
const $d5074f164411387e$var$columnUnitsMapAtom = (0, $a90Ta$atom)((get)=>{
|
|
15
15
|
const units = get($d5074f164411387e$var$columnUnitsAtom);
|
|
@@ -38,14 +38,20 @@ function $d5074f164411387e$export$ef5395089200109b({ children: children, units:
|
|
|
38
38
|
/** Top-level provider for Macrostrat column data.
|
|
39
39
|
* It is either provided by the Column component itself, or
|
|
40
40
|
* can be hoisted higher in the tree to provide a common data context
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
units
|
|
46
|
-
]
|
|
41
|
+
*/ const atomMap = [
|
|
42
|
+
[
|
|
43
|
+
$d5074f164411387e$var$columnUnitsAtom,
|
|
44
|
+
units
|
|
47
45
|
]
|
|
48
|
-
|
|
46
|
+
];
|
|
47
|
+
return (0, $a90Ta$macrostrathyper)($d5074f164411387e$var$ScopedProvider, {
|
|
48
|
+
initialValues: atomMap
|
|
49
|
+
}, [
|
|
50
|
+
(0, $a90Ta$macrostrathyper)($d5074f164411387e$var$AtomUpdater, {
|
|
51
|
+
atoms: atomMap
|
|
52
|
+
}),
|
|
53
|
+
children
|
|
54
|
+
]);
|
|
49
55
|
}
|
|
50
56
|
const $d5074f164411387e$var$MacrostratColumnDataContext = (0, $a90Ta$createContext)(null);
|
|
51
57
|
function $d5074f164411387e$export$7fec7bd80ff9c10e({ children: children, units: units, sections: sections, totalHeight: totalHeight, axisType: axisType }) {
|
|
@@ -99,7 +105,32 @@ function $d5074f164411387e$export$a7fc62995ec4f76() {
|
|
|
99
105
|
ctx.sections
|
|
100
106
|
]);
|
|
101
107
|
}
|
|
108
|
+
function $d5074f164411387e$var$AtomUpdater({ atoms: atoms }) {
|
|
109
|
+
/**
|
|
110
|
+
* A generic updater to sync Jotai atoms with state passed as props.
|
|
111
|
+
* Useful for scoped providers where state needs to be synced outside
|
|
112
|
+
* of the current context.
|
|
113
|
+
*/ /** TODO: this is an awkward way to keep atoms updated */ // The scoped store
|
|
114
|
+
const store = $d5074f164411387e$var$useStore();
|
|
115
|
+
// Warn on atoms changing length
|
|
116
|
+
const prevLengthRef = (0, $a90Ta$useRef)(atoms.length);
|
|
117
|
+
(0, $a90Ta$useEffect)(()=>{
|
|
118
|
+
if (prevLengthRef.current !== atoms.length) {
|
|
119
|
+
console.error("Error: number of atoms in ScopedAtomUpdater has changed.");
|
|
120
|
+
prevLengthRef.current = atoms.length;
|
|
121
|
+
}
|
|
122
|
+
}, [
|
|
123
|
+
atoms.length
|
|
124
|
+
]);
|
|
125
|
+
for (const [atom, value] of atoms)(0, $a90Ta$useEffect)(()=>{
|
|
126
|
+
store.set(atom, value);
|
|
127
|
+
}, [
|
|
128
|
+
store,
|
|
129
|
+
value
|
|
130
|
+
]);
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
102
133
|
|
|
103
134
|
|
|
104
135
|
export {$d5074f164411387e$export$ef5395089200109b as MacrostratColumnStateProvider, $d5074f164411387e$export$7fec7bd80ff9c10e as MacrostratColumnDataProvider, $d5074f164411387e$export$f8509b7cce386c7d as useMacrostratColumnData, $d5074f164411387e$export$6fb40844db555b2 as useMacrostratUnits, $d5074f164411387e$export$7513be0cfd10d9cc as useColumnUnitsMap, $d5074f164411387e$export$a7fc62995ec4f76 as useCompositeScale};
|
|
105
|
-
//# sourceMappingURL=column-views.
|
|
136
|
+
//# sourceMappingURL=column-views.4b259f9e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;AAoBA,MAAM,YAAE,8BAAQ,cAAE,gCAAU,gBAAE,kCAAY,YAAE,8BAAQ,EAAE,GAAG,CAAA,GAAA,sBAAc;AAOvE,MAAM,wCAAkB,CAAA,GAAA,WAAG;AAE3B,MAAM,2CAAqB,CAAA,GAAA,WAAG,EAA+B,CAAC;IAC5D,MAAM,QAAQ,IAAI;IAClB,IAAI,CAAC,OAAO,OAAO;IACnB,MAAM,UAAU,IAAI;IACpB,MAAM,OAAO,CAAC,CAAC;QACb,QAAQ,GAAG,CAAC,KAAK,OAAO,EAAE;IAC5B;IACA,OAAO;AACT;AAEA,SAAS,qCAAe,YAAE,QAAQ,EAAE,GAAG,MAAqB;IAC1D,kDAAkD;IAClD,IAAI,MAAM;IACV,IAAI;QACF,MAAM;IACR,EAAE,OAAM;QACN,mCAAmC;QACnC,MAAM;IACR;IACA,OAAO,CAAA,GAAA,sBAAA,EAAE,gCAAU;QAAE,OAAO;QAAK,GAAG,IAAI;IAAC,GAAG;AAC9C;AAEO,SAAS,0CAA8B,YAC5C,QAAQ,SACR,KAAK,EAIN;IACC;;;GAGC,GAED,MAAM,UAAmD;QACvD;YAAC;YAAiB;SAAM;KACzB;IAED,OAAO,CAAA,GAAA,sBAAA,EACL,sCACA;QACE,eAAe;IACjB,GACA;QAAC,CAAA,GAAA,sBAAA,EAAE,mCAAa;YAAE,OAAO;QAAQ;QAAI;KAAS;AAElD;AASA,MAAM,oDACJ,CAAA,GAAA,oBAAY,EAA+B;AAEtC,SAAS,0CAA6B,YAC3C,QAAQ,SACR,KAAK,YACL,QAAQ,eACR,WAAW,YACX,QAAQ,EAC8C;IACtD;;;;;;;;;KASG,GAEH,MAAM,QAAQ,CAAA,GAAA,cAAM,EAAE;QACpB,uDAAuD;QACvD,OAAO;mBACL;sBACA;yBACA;sBACA;QACF;IACF,GAAG;QAAC;QAAO;QAAU;QAAa;KAAS;IAE3C,OAAO,CAAA,GAAA,sBAAA,EACL,2CACA;eAAE;IAAM,GACR,CAAA,GAAA,sBAAA,EAAE,kDAA4B,QAAQ,EAAE;eAAE;IAAM,GAAG;AAEvD;AAEO,SAAS;IACd,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE;IACvB,IAAI,CAAC,KACH,MAAM,IAAI,MACR;IAGJ,OAAO;AACT;AAEO,SAAS;IACd,OAAO,mCAAa;AACtB;AAEO,SAAS;IACd,IAAI;QACF,OAAO,mCAAa;IACtB,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEO,SAAS;IACd,MAAM,MAAM;IACZ,OAAO,CAAA,GAAA,cAAM,EACX,IAAM,CAAA,GAAA,yCAAmB,EAAE,IAAI,QAAQ,EAAE,OACzC;QAAC,IAAI,QAAQ;KAAC;AAElB;AAEA,SAAS,kCAAY,SACnB,KAAK,EAGN;IACC;;;;GAIC,GACD,uDAAuD,GACvD,mBAAmB;IACnB,MAAM,QAAQ;IAEd,gCAAgC;IAChC,MAAM,gBAAgB,CAAA,GAAA,aAAK,EAAE,MAAM,MAAM;IACzC,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,cAAc,OAAO,KAAK,MAAM,MAAM,EAAE;YAC1C,QAAQ,KAAK,CAAC;YACd,cAAc,OAAO,GAAG,MAAM,MAAM;QACtC;IACF,GAAG;QAAC,MAAM,MAAM;KAAC;IAEjB,KAAK,MAAM,CAAC,MAAM,MAAM,IAAI,MAC1B,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,GAAG,CAAC,MAAM;IAClB,GAAG;QAAC;QAAO;KAAM;IAEnB,OAAO;AACT","sources":["packages/column-views/src/data-provider/store.ts"],"sourcesContent":["import {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} 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, PrimitiveAtom, type WritableAtom } from \"jotai\";\n\nconst { Provider, useSetAtom, 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\n const atomMap: [[PrimitiveAtom<ExtUnit[]>, ExtUnit[]]] = [\n [columnUnitsAtom, units],\n ];\n\n return h(\n ScopedProvider,\n {\n initialValues: atomMap,\n },\n [h(AtomUpdater, { atoms: atomMap }), 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\nfunction AtomUpdater({\n atoms,\n}: {\n atoms: [WritableAtom<any, any, any>, any][];\n}) {\n /**\n * A generic updater to sync Jotai atoms with state passed as props.\n * Useful for scoped providers where state needs to be synced outside\n * of the current context.\n */\n /** TODO: this is an awkward way to keep atoms updated */\n // The scoped store\n const store = useStore();\n\n // Warn on atoms changing length\n const prevLengthRef = useRef(atoms.length);\n useEffect(() => {\n if (prevLengthRef.current !== atoms.length) {\n console.error(\"Error: number of atoms in ScopedAtomUpdater has changed.\");\n prevLengthRef.current = atoms.length;\n }\n }, [atoms.length]);\n\n for (const [atom, value] of atoms) {\n useEffect(() => {\n store.set(atom, value);\n }, [store, value]);\n }\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.4b259f9e.js.map"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
.
|
|
1
|
+
._2-5Cia_truncated-list {
|
|
2
2
|
border-left: 1px solid var(--column-stroke-color);
|
|
3
|
+
background-color: var(--column-background-color);
|
|
3
4
|
margin: 1px 0;
|
|
4
5
|
padding-left: .2em;
|
|
5
6
|
font-size: .9em;
|
|
6
7
|
list-style: none;
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
.
|
|
10
|
+
._2-5Cia_truncated-list li {
|
|
10
11
|
display: inline;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
.
|
|
14
|
+
._2-5Cia_truncated-list li:not(:last-child):after {
|
|
14
15
|
content: ", ";
|
|
15
16
|
color: var(--secondary-color);
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
.
|
|
19
|
+
._2-5Cia_truncated-list li._2-5Cia_too-many {
|
|
19
20
|
color: var(--secondary-color);
|
|
20
21
|
font-style: italic;
|
|
21
22
|
}
|
|
22
|
-
/*# sourceMappingURL=column-views.
|
|
23
|
+
/*# sourceMappingURL=column-views.54c1f382.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAAA;;;;;;;;;AAOE;;;;AAEE;;;;;AAGF","sources":["packages/column-views/src/facets/measurements/base.module.sass"],"sourcesContent":[".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 background-color: var(--column-background-color)\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.54c1f382.css.map"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./column-views.16cc7a58.css";
|
|
2
2
|
import $bBNCV$columnviewsedf77621js from "./column-views.edf77621.js";
|
|
3
|
-
import {useSelectedUnit as $61771df184788970$export$f0dd93f90aa8e5da, useUnitSelectionStore as $61771df184788970$export$b220b1d3591dc9e5} from "./column-views.
|
|
4
|
-
import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.
|
|
3
|
+
import {useSelectedUnit as $61771df184788970$export$f0dd93f90aa8e5da, useUnitSelectionStore as $61771df184788970$export$b220b1d3591dc9e5} from "./column-views.c44febd0.js";
|
|
4
|
+
import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.5eb4e6ff.js";
|
|
5
5
|
import $bBNCV$macrostrathyper from "@macrostrat/hyper";
|
|
6
6
|
import {Popover as $bBNCV$Popover} from "@blueprintjs/core";
|
|
7
7
|
|
|
@@ -68,4 +68,4 @@ function $a9bcb536274d1bf9$export$db1115efab13710d() {
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
export {$a9bcb536274d1bf9$export$6716aecc2c9afbe2 as UnitDetailsPopover, $a9bcb536274d1bf9$export$db1115efab13710d as UnitSelectionPopover};
|
|
71
|
-
//# sourceMappingURL=column-views.
|
|
71
|
+
//# sourceMappingURL=column-views.565b193a.js.map
|