@macrostrat/column-views 2.1.4 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/esm/{column-views.77b49a43.js → column-views.0265cf7f.js} +52 -23
- package/dist/esm/column-views.0265cf7f.js.map +1 -0
- package/dist/esm/{column-views.4ab0ec82.js → column-views.073c42da.js} +142 -76
- package/dist/esm/column-views.073c42da.js.map +1 -0
- package/dist/esm/column-views.079119f4.js +17 -0
- package/dist/esm/column-views.079119f4.js.map +1 -0
- package/dist/esm/{column-views.5e2dc19d.js → column-views.0ce9b697.js} +3 -3
- package/dist/esm/{column-views.5e2dc19d.js.map → column-views.0ce9b697.js.map} +1 -1
- package/dist/esm/{column-views.448c0687.css → column-views.1151416d.css} +5 -5
- package/dist/esm/column-views.1151416d.css.map +1 -0
- package/dist/esm/{column-views.686d21ad.js → column-views.22ec902b.js} +4 -1
- package/dist/esm/column-views.22ec902b.js.map +1 -0
- package/dist/esm/{column-views.42b89c52.js → column-views.29a551f6.js} +60 -27
- package/dist/esm/column-views.29a551f6.js.map +1 -0
- package/dist/esm/{column-views.fbc7401f.js → column-views.2aef5df8.js} +5 -5
- package/dist/esm/{column-views.fbc7401f.js.map → column-views.2aef5df8.js.map} +1 -1
- package/dist/esm/{column-views.ab0380ed.js → column-views.2e854496.js} +3 -3
- package/dist/esm/{column-views.ab0380ed.js.map → column-views.2e854496.js.map} +1 -1
- package/dist/esm/{column-views.7ca9e1cd.js → column-views.2eceafb5.js} +19 -21
- package/dist/esm/column-views.2eceafb5.js.map +1 -0
- package/dist/esm/{column-views.b17f793f.css → column-views.321af3ae.css} +7 -1
- package/dist/esm/{column-views.686d21ad.js.map → column-views.321af3ae.css.map} +1 -1
- package/dist/esm/{column-views.75ea6dbe.js → column-views.382c486d.js} +11 -6
- package/dist/esm/column-views.382c486d.js.map +1 -0
- package/dist/esm/column-views.3a7179c4.js +137 -0
- package/dist/esm/column-views.3a7179c4.js.map +1 -0
- package/dist/esm/{column-views.8e3dec90.js → column-views.413217dc.js} +2 -2
- package/dist/esm/column-views.413217dc.js.map +1 -0
- package/dist/esm/column-views.418f948f.js +15 -0
- package/dist/esm/{column-views.38a305a0.js.map → column-views.418f948f.js.map} +1 -1
- package/dist/esm/{column-views.4d22c21c.js → column-views.41e5f0dc.js} +22 -4
- package/dist/esm/column-views.41e5f0dc.js.map +1 -0
- package/dist/esm/{column-views.676cb1d3.js → column-views.469a4952.js} +3 -3
- package/dist/esm/{column-views.676cb1d3.js.map → column-views.469a4952.js.map} +1 -1
- package/dist/esm/column-views.4ed90896.js +105 -0
- package/dist/esm/column-views.4ed90896.js.map +1 -0
- package/dist/esm/{column-views.547b2730.js → column-views.53722d0a.js} +19 -15
- package/dist/esm/column-views.53722d0a.js.map +1 -0
- package/dist/esm/{column-views.39657bbf.js → column-views.54f8b909.js} +7 -2
- package/dist/esm/column-views.54f8b909.js.map +1 -0
- package/dist/esm/{column-views.b72918ce.css → column-views.562db43a.css} +10 -2
- package/dist/esm/column-views.562db43a.css.map +1 -0
- package/dist/esm/{column-views.9e1c82fe.js → column-views.58b891df.js} +2 -2
- package/dist/esm/{column-views.9e1c82fe.js.map → column-views.58b891df.js.map} +1 -1
- package/dist/esm/{column-views.86619334.js → column-views.60365cdb.js} +2 -2
- package/dist/esm/{column-views.86619334.js.map → column-views.60365cdb.js.map} +1 -1
- package/dist/esm/column-views.6698b95a.js +108 -0
- package/dist/esm/column-views.6698b95a.js.map +1 -0
- package/dist/esm/column-views.6e7082db.js +16 -0
- package/dist/esm/column-views.6e7082db.js.map +1 -0
- package/dist/esm/column-views.70164236.js +206 -0
- package/dist/esm/column-views.70164236.js.map +1 -0
- package/dist/esm/{column-views.2ff3dd8b.js → column-views.748dce47.js} +31 -60
- package/dist/esm/column-views.748dce47.js.map +1 -0
- package/dist/esm/{column-views.775846c9.js → column-views.7683bb52.js} +9 -40
- package/dist/esm/column-views.7683bb52.js.map +1 -0
- package/dist/esm/{column-views.e7ab5af0.js → column-views.787d7696.js} +3 -3
- package/dist/esm/{column-views.e7ab5af0.js.map → column-views.787d7696.js.map} +1 -1
- package/dist/esm/{column-views.f20eb583.js → column-views.81bddbee.js} +6 -8
- package/dist/esm/column-views.81bddbee.js.map +1 -0
- package/dist/esm/{column-views.cc5244c4.js → column-views.8284c3a9.js} +91 -55
- package/dist/esm/column-views.8284c3a9.js.map +1 -0
- package/dist/esm/{column-views.f08929e2.js → column-views.88d63dd0.js} +5 -3
- package/dist/esm/column-views.88d63dd0.js.map +1 -0
- package/dist/esm/{column-views.935ef6f7.js → column-views.8b623b27.js} +2 -2
- package/dist/esm/{column-views.935ef6f7.js.map → column-views.8b623b27.js.map} +1 -1
- package/dist/esm/{column-views.3f246167.js → column-views.8c296309.js} +5 -5
- package/dist/esm/column-views.8c296309.js.map +1 -0
- package/dist/esm/{column-views.64a84c43.js → column-views.a3fabf0f.js} +38 -30
- package/dist/esm/column-views.a3fabf0f.js.map +1 -0
- package/dist/esm/column-views.abeab9aa.js +184 -0
- package/dist/esm/column-views.abeab9aa.js.map +1 -0
- package/dist/esm/{column-views.02f3732a.js → column-views.adec2e4c.js} +40 -20
- package/dist/esm/column-views.adec2e4c.js.map +1 -0
- package/dist/esm/{column-views.9892f825.js → column-views.aecf25bc.js} +75 -42
- package/dist/esm/column-views.aecf25bc.js.map +1 -0
- package/dist/esm/{column-views.1f7fb650.js → column-views.b08d82e6.js} +3 -3
- package/dist/esm/{column-views.1f7fb650.js.map → column-views.b08d82e6.js.map} +1 -1
- package/dist/esm/{column-views.769fa0ee.js → column-views.b29f8718.js} +2 -2
- package/dist/esm/{column-views.769fa0ee.js.map → column-views.b29f8718.js.map} +1 -1
- package/dist/esm/column-views.b7016f82.css +54 -0
- package/dist/esm/column-views.b7016f82.css.map +1 -0
- package/dist/esm/{column-views.0732894f.js → column-views.bbc77227.js} +2 -2
- package/dist/esm/{column-views.0732894f.js.map → column-views.bbc77227.js.map} +1 -1
- package/dist/esm/column-views.c2fbcba8.js +15 -0
- package/dist/esm/{column-views.0a159282.js.map → column-views.c2fbcba8.js.map} +1 -1
- package/dist/esm/{column-views.e3b9a317.js → column-views.c3495702.js} +2 -2
- package/dist/esm/{column-views.e3b9a317.js.map → column-views.c3495702.js.map} +1 -1
- package/dist/esm/{column-views.f7523c1d.js → column-views.c92a359e.js} +2 -2
- package/dist/esm/{column-views.f7523c1d.js.map → column-views.c92a359e.js.map} +1 -1
- package/dist/esm/{column-views.243da806.js → column-views.cae1a6a1.js} +3 -3
- package/dist/esm/{column-views.243da806.js.map → column-views.cae1a6a1.js.map} +1 -1
- package/dist/esm/{column-views.cdadc5c2.js → column-views.cc733361.js} +7 -1
- package/dist/esm/column-views.cc733361.js.map +1 -0
- package/dist/esm/{column-views.a195109e.js → column-views.d86555b0.js} +2 -2
- package/dist/esm/{column-views.a195109e.js.map → column-views.d86555b0.js.map} +1 -1
- package/dist/esm/{column-views.a6301a41.js → column-views.df34441c.js} +6 -8
- package/dist/esm/column-views.df34441c.js.map +1 -0
- package/dist/esm/{column-views.97d542eb.js → column-views.e17f00d3.js} +4 -4
- package/dist/esm/column-views.e17f00d3.js.map +1 -0
- package/dist/esm/{column-views.7715e35e.js → column-views.e1bc3cfa.js} +3 -3
- package/dist/esm/{column-views.7715e35e.js.map → column-views.e1bc3cfa.js.map} +1 -1
- package/dist/esm/{column-views.8d4ce558.css → column-views.e33ac5c9.css} +26 -9
- package/dist/esm/column-views.e33ac5c9.css.map +1 -0
- package/dist/esm/column-views.ea4ebbb7.js +31 -0
- package/dist/esm/column-views.ea4ebbb7.js.map +1 -0
- package/dist/esm/{column-views.78bd3f09.js → column-views.f0b0fc56.js} +2 -2
- package/dist/esm/{column-views.78bd3f09.js.map → column-views.f0b0fc56.js.map} +1 -1
- package/dist/esm/column-views.faacfc3c.js +92 -0
- package/dist/esm/column-views.faacfc3c.js.map +1 -0
- package/dist/esm/{column-views.d48cb0d8.js → column-views.fcf25ec6.js} +7 -1
- package/dist/esm/column-views.fcf25ec6.js.map +1 -0
- package/dist/esm/index.d.ts +264 -441
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +12 -12
- package/dist/node/column-views.0201566d.js +2 -0
- package/dist/node/column-views.0201566d.js.map +1 -0
- package/dist/node/column-views.07c503d3.js +2 -0
- package/dist/node/column-views.07c503d3.js.map +1 -0
- package/dist/node/{column-views.3a55ecd7.css → column-views.0840b115.css} +2 -2
- package/dist/node/column-views.0840b115.css.map +1 -0
- package/dist/node/column-views.0b3a384e.js +2 -0
- package/dist/node/column-views.0b3a384e.js.map +1 -0
- package/dist/node/column-views.0bd15ee4.js +2 -0
- package/dist/node/column-views.0bd15ee4.js.map +1 -0
- package/dist/node/{column-views.2a6b842d.js → column-views.0e7ac946.js} +2 -2
- package/dist/node/column-views.0e7ac946.js.map +1 -0
- package/dist/node/column-views.108db52e.js +2 -0
- package/dist/node/column-views.108db52e.js.map +1 -0
- package/dist/node/column-views.1261be59.js +2 -0
- package/dist/node/column-views.1261be59.js.map +1 -0
- package/dist/node/column-views.16f336ee.js +2 -0
- package/dist/node/column-views.16f336ee.js.map +1 -0
- package/dist/node/column-views.18d54bbb.js +2 -0
- package/dist/node/column-views.18d54bbb.js.map +1 -0
- package/dist/node/column-views.19a84c01.js +2 -0
- package/dist/node/column-views.19a84c01.js.map +1 -0
- package/dist/node/column-views.1a3c399e.js +2 -0
- package/dist/node/column-views.1a3c399e.js.map +1 -0
- package/dist/node/column-views.29483479.js +2 -0
- package/dist/node/column-views.29483479.js.map +1 -0
- package/dist/node/column-views.29eb25bd.css +2 -0
- package/dist/node/column-views.29eb25bd.css.map +1 -0
- package/dist/node/column-views.312db572.js +2 -0
- package/dist/node/column-views.312db572.js.map +1 -0
- package/dist/node/{column-views.2ca669bc.js → column-views.32344397.js} +2 -2
- package/dist/node/{column-views.2ca669bc.js.map → column-views.32344397.js.map} +1 -1
- package/dist/node/column-views.44952ae6.js +2 -0
- package/dist/node/column-views.44952ae6.js.map +1 -0
- package/dist/node/{column-views.a372c943.js → column-views.45a03acc.js} +2 -2
- package/dist/node/{column-views.a372c943.js.map → column-views.45a03acc.js.map} +1 -1
- package/dist/node/{column-views.0cbd4a3f.js → column-views.48a3cfa3.js} +2 -2
- package/dist/node/{column-views.0cbd4a3f.js.map → column-views.48a3cfa3.js.map} +1 -1
- package/dist/node/{column-views.42db0bb8.js → column-views.4b4c214a.js} +2 -2
- package/dist/node/{column-views.42db0bb8.js.map → column-views.4b4c214a.js.map} +1 -1
- package/dist/node/column-views.50a992d3.css +2 -0
- package/dist/node/column-views.50a992d3.css.map +1 -0
- package/dist/node/{column-views.65f091ea.js → column-views.54363c13.js} +2 -2
- package/dist/node/{column-views.65f091ea.js.map → column-views.54363c13.js.map} +1 -1
- package/dist/node/{column-views.858b5cf4.js → column-views.554d44a7.js} +2 -2
- package/dist/node/{column-views.858b5cf4.js.map → column-views.554d44a7.js.map} +1 -1
- package/dist/node/column-views.573cb29d.js +2 -0
- package/dist/node/column-views.573cb29d.js.map +1 -0
- package/dist/node/{column-views.492b4917.js → column-views.57dd069c.js} +2 -2
- package/dist/node/{column-views.492b4917.js.map → column-views.57dd069c.js.map} +1 -1
- package/dist/node/{column-views.2e4e357d.js → column-views.588b02a1.js} +2 -2
- package/dist/node/{column-views.2e4e357d.js.map → column-views.588b02a1.js.map} +1 -1
- package/dist/node/column-views.5a8bc8e3.js +2 -0
- package/dist/node/column-views.5a8bc8e3.js.map +1 -0
- package/dist/node/column-views.5f3b0b04.js +2 -0
- package/dist/node/column-views.5f3b0b04.js.map +1 -0
- package/dist/node/column-views.6099a3a9.js +2 -0
- package/dist/node/column-views.6099a3a9.js.map +1 -0
- package/dist/node/column-views.6919fd2a.js +2 -0
- package/dist/node/column-views.6919fd2a.js.map +1 -0
- package/dist/node/{column-views.45fab61b.js → column-views.6b8424fd.js} +2 -2
- package/dist/node/{column-views.45fab61b.js.map → column-views.6b8424fd.js.map} +1 -1
- package/dist/node/column-views.7425d37b.js +2 -0
- package/dist/node/column-views.7425d37b.js.map +1 -0
- package/dist/node/column-views.77ace3a2.js +2 -0
- package/dist/node/column-views.77ace3a2.js.map +1 -0
- package/dist/node/column-views.7f9c7448.js +2 -0
- package/dist/node/column-views.7f9c7448.js.map +1 -0
- package/dist/node/column-views.92e29010.js +2 -0
- package/dist/node/column-views.92e29010.js.map +1 -0
- package/dist/node/{column-views.7010a03b.js → column-views.93febe9b.js} +2 -2
- package/dist/node/{column-views.7010a03b.js.map → column-views.93febe9b.js.map} +1 -1
- package/dist/node/{column-views.51bc87ca.js → column-views.94c84716.js} +2 -2
- package/dist/node/{column-views.51bc87ca.js.map → column-views.94c84716.js.map} +1 -1
- package/dist/node/column-views.a16cd1f2.js +2 -0
- package/dist/node/column-views.a16cd1f2.js.map +1 -0
- package/dist/node/{column-views.eeca917f.js → column-views.a1e29a15.js} +2 -2
- package/dist/node/{column-views.eeca917f.js.map → column-views.a1e29a15.js.map} +1 -1
- package/dist/node/column-views.aae09aca.js +2 -0
- package/dist/node/column-views.aae09aca.js.map +1 -0
- package/dist/node/column-views.abe0a664.js +2 -0
- package/dist/node/column-views.abe0a664.js.map +1 -0
- package/dist/node/{column-views.a2274834.js → column-views.ae9536b3.js} +2 -2
- package/dist/node/{column-views.a2274834.js.map → column-views.ae9536b3.js.map} +1 -1
- package/dist/node/column-views.aef76eee.js +2 -0
- package/dist/node/column-views.aef76eee.js.map +1 -0
- package/dist/node/column-views.cd7b223b.css +2 -0
- package/dist/node/column-views.cd7b223b.css.map +1 -0
- package/dist/node/{column-views.df97f28e.js → column-views.ce5904a6.js} +2 -2
- package/dist/node/{column-views.df97f28e.js.map → column-views.ce5904a6.js.map} +1 -1
- package/dist/node/column-views.d4545f9f.js +2 -0
- package/dist/node/column-views.d4545f9f.js.map +1 -0
- package/dist/node/{column-views.c7f6fc0a.js → column-views.d529d3aa.js} +2 -2
- package/dist/node/{column-views.c7f6fc0a.js.map → column-views.d529d3aa.js.map} +1 -1
- package/dist/node/{column-views.2d957a97.js → column-views.db4ccacc.js} +2 -2
- package/dist/node/column-views.db4ccacc.js.map +1 -0
- package/dist/node/column-views.e2562224.js +2 -0
- package/dist/node/column-views.e2562224.js.map +1 -0
- package/dist/node/column-views.e803e4ae.css +2 -0
- package/dist/node/column-views.e803e4ae.css.map +1 -0
- package/dist/node/column-views.ebe61439.js +2 -0
- package/dist/node/column-views.ebe61439.js.map +1 -0
- package/dist/node/column-views.edb4ba54.js +2 -0
- package/dist/node/column-views.edb4ba54.js.map +1 -0
- package/dist/node/column-views.f0f5cefd.js +2 -0
- package/dist/node/column-views.f0f5cefd.js.map +1 -0
- package/dist/node/column-views.f1ad131a.js +2 -0
- package/dist/node/column-views.f1ad131a.js.map +1 -0
- package/dist/node/{column-views.58d2f993.js → column-views.f7d72702.js} +2 -2
- package/dist/node/{column-views.58d2f993.js.map → column-views.f7d72702.js.map} +1 -1
- package/dist/node/{column-views.e3ba0594.js → column-views.fcdc74c4.js} +2 -2
- package/dist/node/{column-views.e3ba0594.js.map → column-views.fcdc74c4.js.map} +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +15 -13
- package/src/age-axis.module.sass +4 -2
- package/src/age-axis.ts +49 -15
- package/src/age-model-overlay.ts +22 -1
- package/src/column.module.sass +29 -9
- package/src/column.ts +99 -24
- package/src/correlation-chart/main.ts +11 -3
- package/src/correlation-chart/prepare-data.ts +7 -4
- package/src/correlation-chart/stories/correlation-chart.stories.ts +26 -1
- package/src/data-provider/base.ts +32 -24
- package/src/data-provider/fetch.ts +10 -3
- package/src/data-provider/index.ts +1 -0
- package/src/data-provider/store.ts +74 -13
- package/src/{units/selection.ts → data-provider/unit-selection.ts} +22 -8
- package/src/facets/base-sample-column.module.sass +14 -0
- package/src/facets/base-sample-column.ts +114 -0
- package/src/facets/detrital-zircon/index.ts +31 -63
- package/src/facets/fossils/index.module.sass +43 -13
- package/src/facets/fossils/index.ts +232 -158
- package/src/facets/fossils/provider.ts +121 -25
- package/src/facets/index.ts +1 -0
- package/src/facets/measurements/index.ts +1 -2
- package/src/maps/column-correlation/state.ts +0 -1
- package/src/prepare-units/composite-scale.ts +183 -155
- package/src/prepare-units/dynamic-scales.ts +298 -0
- package/src/prepare-units/helpers.ts +99 -87
- package/src/prepare-units/index.ts +77 -51
- package/src/prepare-units/types.ts +138 -0
- package/src/prepare-units/utils.ts +29 -1
- package/src/section.ts +46 -9
- package/src/unit-details/panel.module.sass +8 -1
- package/src/unit-details/panel.ts +123 -53
- package/src/unit-details/popover.ts +6 -1
- package/src/units/boxes.ts +2 -7
- package/src/units/composite.ts +7 -50
- package/src/units/index.ts +0 -1
- package/dist/esm/column-views.02f3732a.js.map +0 -1
- package/dist/esm/column-views.0a159282.js +0 -13
- package/dist/esm/column-views.1e055ed5.js +0 -53
- package/dist/esm/column-views.1e055ed5.js.map +0 -1
- package/dist/esm/column-views.2ff3dd8b.js.map +0 -1
- package/dist/esm/column-views.3048acc1.js +0 -66
- package/dist/esm/column-views.3048acc1.js.map +0 -1
- package/dist/esm/column-views.38a305a0.js +0 -13
- package/dist/esm/column-views.39657bbf.js.map +0 -1
- package/dist/esm/column-views.3f246167.js.map +0 -1
- package/dist/esm/column-views.42b89c52.js.map +0 -1
- package/dist/esm/column-views.448c0687.css.map +0 -1
- package/dist/esm/column-views.4ab0ec82.js.map +0 -1
- package/dist/esm/column-views.4d22c21c.js.map +0 -1
- package/dist/esm/column-views.547b2730.js.map +0 -1
- package/dist/esm/column-views.64a84c43.js.map +0 -1
- package/dist/esm/column-views.75ea6dbe.js.map +0 -1
- package/dist/esm/column-views.775846c9.js.map +0 -1
- package/dist/esm/column-views.77b49a43.js.map +0 -1
- package/dist/esm/column-views.7ca9e1cd.js.map +0 -1
- package/dist/esm/column-views.8703a35b.js +0 -163
- package/dist/esm/column-views.8703a35b.js.map +0 -1
- package/dist/esm/column-views.8d4ce558.css.map +0 -1
- package/dist/esm/column-views.8e3dec90.js.map +0 -1
- package/dist/esm/column-views.97d542eb.js.map +0 -1
- package/dist/esm/column-views.9892f825.js.map +0 -1
- package/dist/esm/column-views.a6301a41.js.map +0 -1
- package/dist/esm/column-views.b17f793f.css.map +0 -1
- package/dist/esm/column-views.b3c1eb9e.js +0 -16
- package/dist/esm/column-views.b3c1eb9e.js.map +0 -1
- package/dist/esm/column-views.b72918ce.css.map +0 -1
- package/dist/esm/column-views.c71c321c.js +0 -104
- package/dist/esm/column-views.c71c321c.js.map +0 -1
- package/dist/esm/column-views.cc5244c4.js.map +0 -1
- package/dist/esm/column-views.cdadc5c2.js.map +0 -1
- package/dist/esm/column-views.d48cb0d8.js.map +0 -1
- package/dist/esm/column-views.f08929e2.js.map +0 -1
- package/dist/esm/column-views.f20eb583.js.map +0 -1
- package/dist/node/column-views.085f4a51.js +0 -2
- package/dist/node/column-views.085f4a51.js.map +0 -1
- package/dist/node/column-views.0dfc7ef7.js +0 -2
- package/dist/node/column-views.0dfc7ef7.js.map +0 -1
- package/dist/node/column-views.1a0b56fc.js +0 -2
- package/dist/node/column-views.1a0b56fc.js.map +0 -1
- package/dist/node/column-views.2926f656.css +0 -2
- package/dist/node/column-views.2926f656.css.map +0 -1
- package/dist/node/column-views.2a6b842d.js.map +0 -1
- package/dist/node/column-views.2d957a97.js.map +0 -1
- package/dist/node/column-views.307661d1.css +0 -2
- package/dist/node/column-views.307661d1.css.map +0 -1
- package/dist/node/column-views.33752461.js +0 -2
- package/dist/node/column-views.33752461.js.map +0 -1
- package/dist/node/column-views.38357d4a.js +0 -2
- package/dist/node/column-views.38357d4a.js.map +0 -1
- package/dist/node/column-views.3a55ecd7.css.map +0 -1
- package/dist/node/column-views.3eeac38d.js +0 -2
- package/dist/node/column-views.3eeac38d.js.map +0 -1
- package/dist/node/column-views.45168c80.js +0 -2
- package/dist/node/column-views.45168c80.js.map +0 -1
- package/dist/node/column-views.4ca62e5d.js +0 -2
- package/dist/node/column-views.4ca62e5d.js.map +0 -1
- package/dist/node/column-views.6ae7bb69.js +0 -2
- package/dist/node/column-views.6ae7bb69.js.map +0 -1
- package/dist/node/column-views.6f7a432f.js +0 -2
- package/dist/node/column-views.6f7a432f.js.map +0 -1
- package/dist/node/column-views.755f726e.js +0 -2
- package/dist/node/column-views.755f726e.js.map +0 -1
- package/dist/node/column-views.758b9bc1.js +0 -2
- package/dist/node/column-views.758b9bc1.js.map +0 -1
- package/dist/node/column-views.78d3f3c5.js +0 -2
- package/dist/node/column-views.78d3f3c5.js.map +0 -1
- package/dist/node/column-views.80fcf105.js +0 -2
- package/dist/node/column-views.80fcf105.js.map +0 -1
- package/dist/node/column-views.8cfed88b.js +0 -2
- package/dist/node/column-views.8cfed88b.js.map +0 -1
- package/dist/node/column-views.91043465.js +0 -2
- package/dist/node/column-views.91043465.js.map +0 -1
- package/dist/node/column-views.976a829b.js +0 -2
- package/dist/node/column-views.976a829b.js.map +0 -1
- package/dist/node/column-views.99fb74c0.js +0 -2
- package/dist/node/column-views.99fb74c0.js.map +0 -1
- package/dist/node/column-views.9b7a9ae1.js +0 -2
- package/dist/node/column-views.9b7a9ae1.js.map +0 -1
- package/dist/node/column-views.9de31cdb.js +0 -2
- package/dist/node/column-views.9de31cdb.js.map +0 -1
- package/dist/node/column-views.a4e6d4ad.js +0 -2
- package/dist/node/column-views.a4e6d4ad.js.map +0 -1
- package/dist/node/column-views.a501cea0.js +0 -2
- package/dist/node/column-views.a501cea0.js.map +0 -1
- package/dist/node/column-views.a7256aa7.js +0 -2
- package/dist/node/column-views.a7256aa7.js.map +0 -1
- package/dist/node/column-views.c4b409e1.css +0 -2
- package/dist/node/column-views.c4b409e1.css.map +0 -1
- package/dist/node/column-views.cef1b814.js +0 -2
- package/dist/node/column-views.cef1b814.js.map +0 -1
- package/dist/node/column-views.d6708353.js +0 -2
- package/dist/node/column-views.d6708353.js.map +0 -1
- package/dist/node/column-views.d9add589.js +0 -2
- package/dist/node/column-views.d9add589.js.map +0 -1
- package/dist/node/column-views.dfb2361a.js +0 -2
- package/dist/node/column-views.dfb2361a.js.map +0 -1
- package/dist/node/column-views.e9515ec1.js +0 -2
- package/dist/node/column-views.e9515ec1.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A,M,6C,A,O,6C,A,Q,M,mB,A,Q,G,e,C,C,W,C,K,O,A,Q,e,C,K,+B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,E,SC+BA,SAAS,EACP,CAAU,CACV,CAAkC,EAElC,GAAM,CAAA,SAAE,CAAQ,CAAE,CAAG,EAEf,CAAC,EAAQ,EAAW,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAK,GAErD,MAAO,CACL,OAAA,EACA,WAAA,EACA,KAAM,EACN,GAAI,EAAI,OAAO,AACjB,CACF,CAEA,IAAM,EAAsB,AAAC,GACpB,EAAI,SAAS,CACjB,OAAO,CAAC,MAAO,UACf,OAAO,CAAC,KAAM,aACd,OAAO,CAAC,KAAM,SA0Cb,EAAiB,AAAA,EAAM,IAAI,CAvCjC,SAAyB,CAAoB,EAC3C,GAAM,CAAA,SAAE,CAAQ,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IACtB,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IACR,CAAA,KACJ,EAAO,CAAA,CAAA,cACP,CAAa,CAAA,iBACb,EAAmB,CAAC,EAA8B,IAAc,CAAA,CAAA,CAAA,cAChE,EAAgB,CAAA,CAAA,UAChB,EAAY,CAAA,CACZ,GAAG,EACJ,CAAG,EAEE,EAAsB,AAAA,EAC1B,AAAC,GACC,AAAqB,GAAjB,GAEG,AADI,KAAK,GAAG,CAAC,EAAM,EAAE,UAAU,EAAI,EAAM,EAAE,MAAM,GAC5C,EAEd,CAAC,EAAO,EAAc,SAGxB,AAAI,AAAa,MAAb,EAA0B,KAMvB,AAAA,EAAE,EAAa,CACpB,UAAW,CAAC,UAAU,EAAE,EAAK,CAAC,CAAC,CAC/B,SAAU,CAAA,EACV,cAAA,EACA,MATwB,EACvB,MAAM,CAAC,GACP,GAAG,CAAC,AAAC,GAAa,EAAgB,EAAG,CAAE,SAAA,CAAS,IAChD,MAAM,CAAC,GAOR,aAAc,CACZ,YAAa,CACf,EACA,GAAG,CAAI,AACT,EACF,GAWO,SAAS,EAAgB,CAAqB,EACnD,GAAM,CAAA,gBACJ,EAAkB,CAAA,CAAA,cAClB,CAAa,CACb,GAAG,EACJ,CAAG,EAEE,EAAuB,AAAA,EAC3B,IAAM,AAAC,IACL,GAAM,CAAA,KAAE,CAAI,CAAE,CAAG,EACjB,OAAO,AAAA,EAAE,mBAAoB,EAAgB,EAAK,IAAI,EACxD,EACA,CAAC,EAAgB,EAGnB,OAAO,AAAA,EAAE,EAAgB,CACvB,cAAe,GAAiB,EAChC,GAAG,CAAI,AACT,EACF,Q,K,e,C,K,mB,C,K,c,C,K,e","sources":["<anon>","packages/column-views/src/units/names.ts"],"sourcesContent":["import \"./column-views.8cfed88b.js\";\nimport \"./column-views.78d3f3c5.js\";\nimport $eWQbS$macrostrathyper from \"@macrostrat/hyper\";\nimport $eWQbS$react, {useCallback as $eWQbS$useCallback, useMemo as $eWQbS$useMemo} from \"react\";\nimport {NotesColumn as $eWQbS$NotesColumn} from \"@macrostrat/column-components\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nfunction $e80be54614c93c14$export$2f2e65a797f8fc1e(div, opts) {\n const { axisType: axisType } = opts;\n const [height, top_height] = (0, $iWhRv.getUnitHeightRange)(div, axisType);\n return {\n height: height,\n top_height: top_height,\n data: div,\n id: div.unit_id\n };\n}\nconst $e80be54614c93c14$export$c9757aeb43a67df0 = (div)=>{\n return div.unit_name.replace(\"Mbr\", \"Member\").replace(\"Fm\", \"Formation\").replace(\"Gp\", \"Group\");\n};\nfunction $e80be54614c93c14$var$UnitDataColumn_(props) {\n const { axisType: axisType, units: units } = (0, $wtIgl.useMacrostratColumnData)();\n const scale = (0, $wtIgl.useCompositeScale)();\n const { left: left = 0, noteComponent: noteComponent, shouldRenderNote: shouldRenderNote = (note, i)=>true, minimumHeight: minimumHeight = 0, divisions: divisions = units, ...rest } = props;\n const minimumHeightFilter = (0, $eWQbS$useCallback)((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,\n minimumHeight\n ]);\n if (divisions == null) return null;\n const notes = divisions.filter(shouldRenderNote).map((d)=>$e80be54614c93c14$export$2f2e65a797f8fc1e(d, {\n axisType: axisType\n })).filter(minimumHeightFilter);\n return (0, $eWQbS$macrostrathyper)((0, $eWQbS$NotesColumn), {\n transform: `translate(${left})`,\n editable: false,\n noteComponent: noteComponent,\n notes: notes,\n forceOptions: {\n nodeSpacing: 1\n },\n ...rest\n });\n}\nconst $e80be54614c93c14$export$6316e673796ccb55 = (0, $eWQbS$react).memo($e80be54614c93c14$var$UnitDataColumn_);\nfunction $e80be54614c93c14$export$594d19cdd88f8c16(props) {\n const { nameForDivision: nameForDivision = $e80be54614c93c14$export$c9757aeb43a67df0, noteComponent: noteComponent, ...rest } = props;\n const defaultNoteComponent = (0, $eWQbS$useMemo)(()=>(props)=>{\n const { note: note } = props;\n return (0, $eWQbS$macrostrathyper)(\"p.col-note-label\", nameForDivision(note.data));\n }, [\n nameForDivision\n ]);\n return (0, $eWQbS$macrostrathyper)($e80be54614c93c14$export$6316e673796ccb55, {\n noteComponent: noteComponent ?? defaultNoteComponent,\n ...rest\n });\n}\n\n\nexport {$e80be54614c93c14$export$2f2e65a797f8fc1e as noteForDivision, $e80be54614c93c14$export$c9757aeb43a67df0 as defaultNameFunction, $e80be54614c93c14$export$6316e673796ccb55 as UnitDataColumn, $e80be54614c93c14$export$594d19cdd88f8c16 as UnitNamesColumn};\n//# sourceMappingURL=column-views.2e4e357d.js.map\n","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":["$eWQbS$macrostrathyper","$eWQbS$react","useCallback","$eWQbS$useCallback","useMemo","$eWQbS$useMemo","NotesColumn","$eWQbS$NotesColumn","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$iWhRv","$wtIgl","$e80be54614c93c14$export$2f2e65a797f8fc1e","div","opts","axisType","height","top_height","getUnitHeightRange","data","unit_id","$e80be54614c93c14$export$c9757aeb43a67df0","unit_name","replace","$e80be54614c93c14$export$6316e673796ccb55","memo","props","units","useMacrostratColumnData","scale","useCompositeScale","left","noteComponent","shouldRenderNote","note","i","minimumHeight","divisions","rest","minimumHeightFilter","d","dy","Math","abs","transform","editable","notes","filter","map","forceOptions","nodeSpacing","$e80be54614c93c14$export$594d19cdd88f8c16","nameForDivision","defaultNoteComponent","noteForDivision","defaultNameFunction","UnitDataColumn","UnitNamesColumn"],"version":3,"file":"column-views.2e4e357d.js.map","sourceRoot":"../../../../"}
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,Q,M,mB,A,Q,G,e,C,C,W,C,K,O,A,Q,e,C,K,+B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,E,SC+BA,SAAS,EACP,CAAU,CACV,CAAkC,EAElC,GAAM,CAAA,SAAE,CAAQ,CAAE,CAAG,EAEf,CAAC,EAAQ,EAAW,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAK,GAErD,MAAO,CACL,OAAA,EACA,WAAA,EACA,KAAM,EACN,GAAI,EAAI,OAAO,AACjB,CACF,CAEA,IAAM,EAAsB,AAAC,GACpB,EAAI,SAAS,CACjB,OAAO,CAAC,MAAO,UACf,OAAO,CAAC,KAAM,aACd,OAAO,CAAC,KAAM,SA0Cb,EAAiB,AAAA,EAAM,IAAI,CAvCjC,SAAyB,CAAoB,EAC3C,GAAM,CAAA,SAAE,CAAQ,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IACtB,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IACR,CAAA,KACJ,EAAO,CAAA,CAAA,cACP,CAAa,CAAA,iBACb,EAAmB,CAAC,EAA8B,IAAc,CAAA,CAAA,CAAA,cAChE,EAAgB,CAAA,CAAA,UAChB,EAAY,CAAA,CACZ,GAAG,EACJ,CAAG,EAEE,EAAsB,AAAA,EAC1B,AAAC,GACC,AAAqB,GAAjB,GAEG,AADI,KAAK,GAAG,CAAC,EAAM,EAAE,UAAU,EAAI,EAAM,EAAE,MAAM,GAC5C,EAEd,CAAC,EAAO,EAAc,SAGxB,AAAI,AAAa,MAAb,EAA0B,KAMvB,AAAA,EAAE,EAAa,CACpB,UAAW,CAAC,UAAU,EAAE,EAAK,CAAC,CAAC,CAC/B,SAAU,CAAA,EACV,cAAA,EACA,MATwB,EACvB,MAAM,CAAC,GACP,GAAG,CAAC,AAAC,GAAa,EAAgB,EAAG,CAAE,SAAA,CAAS,IAChD,MAAM,CAAC,GAOR,aAAc,CACZ,YAAa,CACf,EACA,GAAG,CAAI,AACT,EACF,GAWO,SAAS,EAAgB,CAAqB,EACnD,GAAM,CAAA,gBACJ,EAAkB,CAAA,CAAA,cAClB,CAAa,CACb,GAAG,EACJ,CAAG,EAEE,EAAuB,AAAA,EAC3B,IAAM,AAAC,IACL,GAAM,CAAA,KAAE,CAAI,CAAE,CAAG,EACjB,OAAO,AAAA,EAAE,mBAAoB,EAAgB,EAAK,IAAI,EACxD,EACA,CAAC,EAAgB,EAGnB,OAAO,AAAA,EAAE,EAAgB,CACvB,cAAe,GAAiB,EAChC,GAAG,CAAI,AACT,EACF,Q,K,e,C,K,mB,C,K,c,C,K,e","sources":["<anon>","packages/column-views/src/units/names.ts"],"sourcesContent":["import \"./column-views.5f3b0b04.js\";\nimport \"./column-views.92e29010.js\";\nimport $eWQbS$macrostrathyper from \"@macrostrat/hyper\";\nimport $eWQbS$react, {useCallback as $eWQbS$useCallback, useMemo as $eWQbS$useMemo} from \"react\";\nimport {NotesColumn as $eWQbS$NotesColumn} from \"@macrostrat/column-components\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nfunction $e80be54614c93c14$export$2f2e65a797f8fc1e(div, opts) {\n const { axisType: axisType } = opts;\n const [height, top_height] = (0, $iWhRv.getUnitHeightRange)(div, axisType);\n return {\n height: height,\n top_height: top_height,\n data: div,\n id: div.unit_id\n };\n}\nconst $e80be54614c93c14$export$c9757aeb43a67df0 = (div)=>{\n return div.unit_name.replace(\"Mbr\", \"Member\").replace(\"Fm\", \"Formation\").replace(\"Gp\", \"Group\");\n};\nfunction $e80be54614c93c14$var$UnitDataColumn_(props) {\n const { axisType: axisType, units: units } = (0, $wtIgl.useMacrostratColumnData)();\n const scale = (0, $wtIgl.useCompositeScale)();\n const { left: left = 0, noteComponent: noteComponent, shouldRenderNote: shouldRenderNote = (note, i)=>true, minimumHeight: minimumHeight = 0, divisions: divisions = units, ...rest } = props;\n const minimumHeightFilter = (0, $eWQbS$useCallback)((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,\n minimumHeight\n ]);\n if (divisions == null) return null;\n const notes = divisions.filter(shouldRenderNote).map((d)=>$e80be54614c93c14$export$2f2e65a797f8fc1e(d, {\n axisType: axisType\n })).filter(minimumHeightFilter);\n return (0, $eWQbS$macrostrathyper)((0, $eWQbS$NotesColumn), {\n transform: `translate(${left})`,\n editable: false,\n noteComponent: noteComponent,\n notes: notes,\n forceOptions: {\n nodeSpacing: 1\n },\n ...rest\n });\n}\nconst $e80be54614c93c14$export$6316e673796ccb55 = (0, $eWQbS$react).memo($e80be54614c93c14$var$UnitDataColumn_);\nfunction $e80be54614c93c14$export$594d19cdd88f8c16(props) {\n const { nameForDivision: nameForDivision = $e80be54614c93c14$export$c9757aeb43a67df0, noteComponent: noteComponent, ...rest } = props;\n const defaultNoteComponent = (0, $eWQbS$useMemo)(()=>(props)=>{\n const { note: note } = props;\n return (0, $eWQbS$macrostrathyper)(\"p.col-note-label\", nameForDivision(note.data));\n }, [\n nameForDivision\n ]);\n return (0, $eWQbS$macrostrathyper)($e80be54614c93c14$export$6316e673796ccb55, {\n noteComponent: noteComponent ?? defaultNoteComponent,\n ...rest\n });\n}\n\n\nexport {$e80be54614c93c14$export$2f2e65a797f8fc1e as noteForDivision, $e80be54614c93c14$export$c9757aeb43a67df0 as defaultNameFunction, $e80be54614c93c14$export$6316e673796ccb55 as UnitDataColumn, $e80be54614c93c14$export$594d19cdd88f8c16 as UnitNamesColumn};\n//# sourceMappingURL=column-views.588b02a1.js.map\n","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":["$eWQbS$macrostrathyper","$eWQbS$react","useCallback","$eWQbS$useCallback","useMemo","$eWQbS$useMemo","NotesColumn","$eWQbS$NotesColumn","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$iWhRv","$wtIgl","$e80be54614c93c14$export$2f2e65a797f8fc1e","div","opts","axisType","height","top_height","getUnitHeightRange","data","unit_id","$e80be54614c93c14$export$c9757aeb43a67df0","unit_name","replace","$e80be54614c93c14$export$6316e673796ccb55","memo","props","units","useMacrostratColumnData","scale","useCompositeScale","left","noteComponent","shouldRenderNote","note","i","minimumHeight","divisions","rest","minimumHeightFilter","d","dy","Math","abs","transform","editable","notes","filter","map","forceOptions","nodeSpacing","$e80be54614c93c14$export$594d19cdd88f8c16","nameForDivision","defaultNoteComponent","noteForDivision","defaultNameFunction","UnitDataColumn","UnitNamesColumn"],"version":3,"file":"column-views.588b02a1.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./column-views.77ace3a2.js";import"./column-views.19a84c01.js";import"./column-views.92e29010.js";import"./column-views.16f336ee.js";import e from"@macrostrat/hyper";import{Box as t,useElementSize as a}from"@macrostrat/ui-components";import{ColumnSVG as n,ColumnAxisType as o}from"@macrostrat/column-components";import{useRef as r}from"react";function s(e,t,a,n){Object.defineProperty(e,t,{get:a,set:n,enumerable:!0,configurable:!0})}var l=globalThis,i={},c={},u=l.parcelRequirea149;null==u&&((u=function(e){if(e in i)return i[e].exports;if(e in c){var t=c[e];delete c[e];var a={id:e,exports:{}};return i[e]=a,t.call(a.exports,a,a.exports),a.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,t){c[e]=t},l.parcelRequirea149=u),u.register;var p={};s(p,"PBDBFossilsColumn",()=>D),s(p,"PBDBOccurrencesMatrix",()=>y),s(p,"FossilDataType",()=>u("dx7no").FossilDataType);var m=u("dx7no"),f=u("fIqIn"),d=u("wtIgl"),x=u("jDygK");let g=e.styled(x&&x.__esModule?x.default:x);function _(e){let{note:t,spacing:a}=e,{data:n,unit:o}=t;return g(f.TruncatedList,{data:n,className:"fossil-collections",itemRenderer:b})}function b({data:e}){return g("a.link-id",{href:`https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${e.cltn_id}`},e.best_name??e.cltn_name)}let h=e=>t=>t.unit_id==e[0].unit_id;function D({columnID:e,type:t=m.FossilDataType.Collections}){let a=(0,m.useFossilData)(e,t);return g(f.BaseMeasurementsColumn,{data:a,noteComponent:_,className:"fossil-collections",matchingUnit:h})}function y({columnID:e}){let a=new Map((0,m.useFossilData)(e,m.FossilDataType.Occurrences)),r=(0,d.useMacrostratColumnData)(),s=function(e,t,a=o.AGE){let n=new Map,r=new Map;for(let[e,a]of t.entries())for(let t of a){let a=t.best_name??t.taxon_name;n.has(a)||(n.set(a,new Set),r.set(a,[])),n.get(a).add(e),r.get(a).push(t)}let s=Array.from(n.entries()).sort((e,t)=>t[0].localeCompare(e[0])),l=new Map;for(let[t,r]of n.entries())l.set(t,function(e,t,a){let n=[],r=null;for(let s of e)t.has(s.unit_id)?null==r?r=a==o.DEPTH||a==o.HEIGHT?[s.t_pos,s.b_pos]:[s.t_age,s.b_age]:a==o.DEPTH||a==o.HEIGHT?r[1]=s.b_pos:r[1]=s.b_age:null!=r&&(n.push(r),r=null);return null!=r&&n.push(r),n}(e,r,a));return{occurrenceMap:t,taxonUnitMap:new Map(s),taxonOccurrenceMap:r,taxonRanges:l}}(r.units,a,r.axisType),l=(0,d.useCompositeScale)(),{taxonRanges:i}=s,c=Array.from(i.entries());return g(t,{className:"taxon-ranges",width:32+16*c.length,height:r.totalHeight},[g(w,{taxonEntries:c,padding:16,spacing:16,scale:l}),g(n,{width:32+16*c.length},g("g.taxa-occurrences-matrix",c.map(([e,t],a)=>g("g",{transform:`translate(${16+16*a})`},[t.map(([e,t])=>g("line",{y1:l(e),y2:l(t)}))]))))])}function w({taxonEntries:e,padding:t,spacing:a,scale:n}){return g("div.taxon-labels",[e.map(([e,o],r)=>{let s=n(o[0]?.[0]??0)-20;return s<200&&(s=0),g(H,{top:s,left:t+r*a,taxonName:e})})])}function H({top:e,left:t,taxonName:n}){let o=r(),s=a(o),l=s?.height??200;return g("div.taxon-label",{style:{top:`${e}px`,marginLeft:`${t}px`,"--label-width":`${l}px`}},g("div.taxon-label-inner",g("div.taxon-label-text",{ref:o},n)))}export{D as PBDBFossilsColumn,y as PBDBOccurrencesMatrix,$8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType};
|
|
2
|
+
//# sourceMappingURL=column-views.5a8bc8e3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,O,C,C,kB,C,K,2B,A,Q,a,C,C,kB,C,K,+B,A,Q,U,C,K,O,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,oB,I,G,E,E,wB,I,G,E,E,iB,I,A,E,S,c,E,I,E,E,S,E,E,S,E,E,S,E,E,SCoBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAkBvB,SAAS,EAAW,CAAsB,EACxC,GAAM,CAAA,KAAE,CAAI,CAAA,QAAE,CAAO,CAAE,CAAG,EACpB,CAAA,KAAE,CAAI,CAAA,KAAE,CAAI,CAAE,CAAG,EAEvB,OAAO,EAAE,EAAA,aAAY,CAAG,CACtB,KAAA,EACA,UAAW,qBACX,aAAc,CAChB,EACF,CAEA,SAAS,EAAmB,CAAA,KAC1B,CAAI,CAGL,EAEC,OAAO,EACL,YACA,CACE,KAAM,CAAC,mEAAmE,EAAE,EAAK,OAAO,CAAA,CAAE,AAC5F,EACA,EAAK,SAAS,EAAI,EAAK,SAAS,CAEpC,CAEA,IAAM,EAAe,AAAC,GAAO,AAAC,GAAM,EAAE,OAAO,EAAI,CAAE,CAAC,EAAE,CAAC,OAAO,CAEvD,SAAS,EAAkB,CAAA,SAChC,CAAQ,CAAA,KACR,EAAO,AAAA,EAAA,cAAa,CAAE,WAAW,CAIlC,EACC,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,EAAU,GAErC,OAAO,EAAE,EAAA,sBAAqB,CAAG,CAC/B,KAAA,EACA,cAAe,EACf,UAAW,qBACX,aAAA,CACF,EACF,CAEO,SAAS,EAAsB,CAAA,SAAE,CAAQ,CAAE,EAUhD,IAAM,EAAgB,IAAI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","sources":["<anon>","packages/column-views/src/facets/fossils/index.ts"],"sourcesContent":["import \"./column-views.77ace3a2.js\";\nimport \"./column-views.19a84c01.js\";\nimport \"./column-views.92e29010.js\";\nimport \"./column-views.16f336ee.js\";\nimport $2jHE4$macrostrathyper from \"@macrostrat/hyper\";\nimport {Box as $2jHE4$Box, useElementSize as $2jHE4$useElementSize} from \"@macrostrat/ui-components\";\nimport {ColumnSVG as $2jHE4$ColumnSVG, ColumnAxisType as $2jHE4$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {useRef as $2jHE4$useRef} from \"react\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $ea2f112131e22f14$exports = {};\n\n$parcel$export($ea2f112131e22f14$exports, \"PBDBFossilsColumn\", () => $ea2f112131e22f14$export$554267114407ef68);\n$parcel$export($ea2f112131e22f14$exports, \"PBDBOccurrencesMatrix\", () => $ea2f112131e22f14$export$652730986cccff7a);\n$parcel$export($ea2f112131e22f14$exports, \"FossilDataType\", () => (parcelRequire(\"dx7no\")).FossilDataType);\n\n\nvar $dx7no = parcelRequire(\"dx7no\");\n\nvar $fIqIn = parcelRequire(\"fIqIn\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $jDygK = parcelRequire(\"jDygK\");\n\nconst $ea2f112131e22f14$var$h = (0, $2jHE4$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($jDygK))));\nfunction $ea2f112131e22f14$var$FossilInfo(props) {\n const { note: note, spacing: spacing } = props;\n const { data: data, unit: unit } = note;\n return $ea2f112131e22f14$var$h((0, $fIqIn.TruncatedList), {\n data: data,\n className: \"fossil-collections\",\n itemRenderer: $ea2f112131e22f14$var$PBDBCollectionLink\n });\n}\nfunction $ea2f112131e22f14$var$PBDBCollectionLink({ data: data }) {\n /** A link to a PBDB collection that handles either an occurrence or collection object */ return $ea2f112131e22f14$var$h(\"a.link-id\", {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${data.cltn_id}`\n }, data.best_name ?? data.cltn_name);\n}\nconst $ea2f112131e22f14$var$matchingUnit = (dz)=>(d)=>d.unit_id == dz[0].unit_id;\nfunction $ea2f112131e22f14$export$554267114407ef68({ columnID: columnID, type: type = (0, $dx7no.FossilDataType).Collections }) {\n const data = (0, $dx7no.useFossilData)(columnID, type);\n return $ea2f112131e22f14$var$h((0, $fIqIn.BaseMeasurementsColumn), {\n data: data,\n noteComponent: $ea2f112131e22f14$var$FossilInfo,\n className: \"fossil-collections\",\n matchingUnit: $ea2f112131e22f14$var$matchingUnit\n });\n}\nfunction $ea2f112131e22f14$export$652730986cccff7a({ columnID: columnID }) {\n /* A column for a matrix of taxon occurrences displayed as a table beside the main column. This will\n eventually be extended with first/last occurrence markers and range bars.\n */ const data = (0, $dx7no.useFossilData)(columnID, (0, $dx7no.FossilDataType).Occurrences);\n // convert the data to a map\n const occurrenceMap = new Map(data);\n const col = (0, $wtIgl.useMacrostratColumnData)();\n const matrix = $ea2f112131e22f14$var$createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n const scale = (0, $wtIgl.useCompositeScale)();\n const { taxonRanges: taxonRanges } = matrix;\n const padding = 16;\n const spacing = 16;\n const taxonEntries = Array.from(taxonRanges.entries());\n //const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa\n const width = padding * 2 + spacing * taxonEntries.length;\n return $ea2f112131e22f14$var$h((0, $2jHE4$Box), {\n className: \"taxon-ranges\",\n width: width,\n height: col.totalHeight\n }, [\n $ea2f112131e22f14$var$h($ea2f112131e22f14$var$TaxonOccurrenceLabels, {\n taxonEntries: taxonEntries,\n padding: padding,\n spacing: spacing,\n scale: scale\n }),\n $ea2f112131e22f14$var$h((0, $2jHE4$ColumnSVG), {\n width: padding * 2 + spacing * taxonEntries.length\n }, $ea2f112131e22f14$var$h(\"g.taxa-occurrences-matrix\", taxonEntries.map(([taxonName, ranges], rowIndex)=>{\n const xPosition = padding + rowIndex * spacing;\n return $ea2f112131e22f14$var$h(\"g\", {\n transform: `translate(${xPosition})`\n }, [\n ranges.map(([top, bottom])=>{\n return $ea2f112131e22f14$var$h(\"line\", {\n y1: scale(top),\n y2: scale(bottom)\n });\n })\n ]);\n })))\n ]);\n}\nfunction $ea2f112131e22f14$var$TaxonOccurrenceLabels({ taxonEntries: taxonEntries, padding: padding, spacing: spacing, scale: scale }) {\n return $ea2f112131e22f14$var$h(\"div.taxon-labels\", [\n taxonEntries.map(([taxonName, ranges], rowIndex)=>{\n const top = ranges[0]?.[0] ?? 0;\n let topPx = scale(top) - 20;\n if (topPx < 200) topPx = 0;\n return $ea2f112131e22f14$var$h($ea2f112131e22f14$var$TaxonLabel, {\n top: topPx,\n left: padding + rowIndex * spacing,\n taxonName: taxonName\n });\n })\n ]);\n}\nfunction $ea2f112131e22f14$var$TaxonLabel({ top: top, left: left, taxonName: taxonName }) {\n const ref = (0, $2jHE4$useRef)();\n const textSize = (0, $2jHE4$useElementSize)(ref);\n const labelWidth = textSize?.height ?? 200;\n return $ea2f112131e22f14$var$h(\"div.taxon-label\", {\n style: {\n top: `${top}px`,\n marginLeft: `${left}px`,\n \"--label-width\": `${labelWidth}px`\n }\n }, $ea2f112131e22f14$var$h(\"div.taxon-label-inner\", $ea2f112131e22f14$var$h(\"div.taxon-label-text\", {\n ref: ref\n }, taxonName)));\n}\nfunction $ea2f112131e22f14$var$TaxonOccurrenceEntry({ xPosition: xPosition, ranges: ranges, scale: scale, name: name }) {\n return $ea2f112131e22f14$var$h(\"g\", {\n transform: `translate(${xPosition})`\n }, [\n ranges.map(([top, bottom])=>{\n return $ea2f112131e22f14$var$h(\"line\", {\n y1: scale(top),\n y2: scale(bottom)\n });\n })\n ]);\n}\nfunction $ea2f112131e22f14$var$createOccurrenceMatrix(units, data, axisType = (0, $2jHE4$ColumnAxisType).AGE) {\n const taxonUnitMap = new Map();\n const taxonOccurrenceMap = new Map();\n for (const [unit_id, occurrences] of data.entries())for (const occ of occurrences){\n const taxonName = occ.best_name ?? occ.taxon_name;\n if (!taxonUnitMap.has(taxonName)) {\n taxonUnitMap.set(taxonName, new Set());\n taxonOccurrenceMap.set(taxonName, []);\n }\n taxonUnitMap.get(taxonName).add(unit_id);\n taxonOccurrenceMap.get(taxonName).push(occ);\n }\n // sort the taxon occurrence map by number of occurrences\n const sortedTaxa = Array.from(taxonUnitMap.entries()).sort((a, b)=>{\n // Sort alphabetically by taxon name\n return b[0].localeCompare(a[0]);\n });\n const taxonRanges = new Map();\n for (const [taxonName, unitSet] of taxonUnitMap.entries())taxonRanges.set(taxonName, $ea2f112131e22f14$var$accumulatePresenceDomains(units, unitSet, axisType));\n return {\n occurrenceMap: data,\n taxonUnitMap: new Map(sortedTaxa),\n taxonOccurrenceMap: taxonOccurrenceMap,\n taxonRanges: taxonRanges\n };\n}\nfunction $ea2f112131e22f14$var$accumulatePresenceDomains(unit, presenceUnits, axisType) {\n const domains = [];\n let currentDomain = null;\n for (const u of unit){\n if (presenceUnits.has(u.unit_id)) {\n if (currentDomain == null) {\n if (axisType == (0, $2jHE4$ColumnAxisType).DEPTH || axisType == (0, $2jHE4$ColumnAxisType).HEIGHT) currentDomain = [\n u.t_pos,\n u.b_pos\n ];\n else currentDomain = [\n u.t_age,\n u.b_age\n ];\n } else if (axisType == (0, $2jHE4$ColumnAxisType).DEPTH || axisType == (0, $2jHE4$ColumnAxisType).HEIGHT) currentDomain[1] = u.b_pos;\n else currentDomain[1] = u.b_age;\n } else if (currentDomain != null) {\n domains.push(currentDomain);\n currentDomain = null;\n }\n }\n if (currentDomain != null) domains.push(currentDomain);\n return domains;\n}\n\n\nexport {$ea2f112131e22f14$export$554267114407ef68 as PBDBFossilsColumn, $ea2f112131e22f14$export$652730986cccff7a as PBDBOccurrencesMatrix, $8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType};\n//# sourceMappingURL=column-views.5a8bc8e3.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport {\n FossilDataType,\n PBDBCollection,\n PBDBOccurrence,\n useFossilData,\n} from \"./provider\";\nimport type { IUnit } from \"../../units\";\nimport { BaseMeasurementsColumn, TruncatedList } from \"../base-sample-column\";\nimport { Box, useElementSize } from \"@macrostrat/ui-components\";\nimport { InternMap } from \"d3-array\";\nimport { ColumnAxisType, ColumnSVG } from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useCompositeScale,\n} from \"../../data-provider\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport styles from \"./index.module.sass\";\nimport { useRef } from \"react\";\n\nconst h = hyper.styled(styles);\n\nexport { FossilDataType };\n\ninterface FossilItemProps {\n note: {\n data: PBDBCollection[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\nfunction FossilInfo(props: FossilItemProps) {\n const { note, spacing } = props;\n const { data, unit } = note;\n\n return h(TruncatedList, {\n data,\n className: \"fossil-collections\",\n itemRenderer: PBDBCollectionLink,\n });\n}\n\nfunction PBDBCollectionLink({\n data,\n}: {\n data: PBDBCollection | PBDBOccurrence;\n}) {\n /** A link to a PBDB collection that handles either an occurrence or collection object */\n return h(\n \"a.link-id\",\n {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${data.cltn_id}`,\n },\n data.best_name ?? data.cltn_name,\n );\n}\n\nconst matchingUnit = (dz) => (d) => d.unit_id == dz[0].unit_id;\n\nexport function PBDBFossilsColumn({\n columnID,\n type = FossilDataType.Collections,\n}: {\n columnID: number;\n type: FossilDataType;\n}) {\n const data = useFossilData(columnID, type);\n\n return h(BaseMeasurementsColumn, {\n data,\n noteComponent: FossilInfo,\n className: \"fossil-collections\",\n matchingUnit,\n });\n}\n\nexport function PBDBOccurrencesMatrix({ columnID }) {\n /* A column for a matrix of taxon occurrences displayed as a table beside the main column. This will\n eventually be extended with first/last occurrence markers and range bars.\n */\n const data = useFossilData(columnID, FossilDataType.Occurrences) as InternMap<\n number,\n PBDBOccurrence[]\n >;\n\n // convert the data to a map\n const occurrenceMap = new Map(data);\n\n const col = useMacrostratColumnData();\n const matrix = createOccurrenceMatrix(col.units, occurrenceMap, col.axisType);\n\n const scale = useCompositeScale();\n\n const { taxonRanges } = matrix;\n\n const padding = 16;\n const spacing = 16;\n\n const taxonEntries = Array.from(taxonRanges.entries());\n //const taxon = taxonEntries.slice(0, 50); // limit to top 50 taxa\n\n const width = padding * 2 + spacing * taxonEntries.length;\n\n return h(Box, { className: \"taxon-ranges\", width, height: col.totalHeight }, [\n h(TaxonOccurrenceLabels, {\n taxonEntries,\n padding,\n spacing,\n scale,\n }),\n h(\n ColumnSVG,\n {\n width: padding * 2 + spacing * taxonEntries.length,\n },\n h(\n \"g.taxa-occurrences-matrix\",\n taxonEntries.map(([taxonName, ranges], rowIndex) => {\n const xPosition = padding + rowIndex * spacing;\n return h(\"g\", { transform: `translate(${xPosition})` }, [\n ranges.map(([top, bottom]) => {\n return h(\"line\", {\n y1: scale(top),\n y2: scale(bottom),\n });\n }),\n ]);\n }),\n ),\n ),\n ]);\n}\n\nfunction TaxonOccurrenceLabels({ taxonEntries, padding, spacing, scale }) {\n return h(\"div.taxon-labels\", [\n taxonEntries.map(([taxonName, ranges], rowIndex) => {\n const top = ranges[0]?.[0] ?? 0;\n let topPx = scale(top) - 20;\n if (topPx < 200) topPx = 0;\n\n return h(TaxonLabel, {\n top: topPx,\n left: padding + rowIndex * spacing,\n taxonName,\n });\n }),\n ]);\n}\n\nfunction TaxonLabel({ top, left, taxonName }) {\n const ref = useRef();\n const textSize = useElementSize(ref);\n const labelWidth = textSize?.height ?? 200;\n return h(\n \"div.taxon-label\",\n {\n style: {\n top: `${top}px`,\n marginLeft: `${left}px`,\n \"--label-width\": `${labelWidth}px`,\n },\n },\n h(\"div.taxon-label-inner\", h(\"div.taxon-label-text\", { ref }, taxonName)),\n );\n}\n\ntype TaxonUnitMap = Map<string, Set<number>>;\n\ninterface OccurrenceMatrixData {\n occurrenceMap: Map<number, PBDBOccurrence[]>; // Map of unit IDs to occurrences (original data)\n taxonUnitMap: TaxonUnitMap; // Map of taxon names to sets of unit IDs\n taxonOccurrenceMap: Map<string, PBDBOccurrence[]>; // Map of taxon names to occurrences\n taxonRanges: Map<string, [number, number][]>; // Map of taxon names to [top, bottom] pixel ranges\n}\n\nfunction TaxonOccurrenceEntry({\n xPosition,\n ranges,\n scale,\n name,\n}: {\n xPosition: number;\n units: Set<number>;\n}) {\n return h(\"g\", { transform: `translate(${xPosition})` }, [\n ranges.map(([top, bottom]) => {\n return h(\"line\", {\n y1: scale(top),\n y2: scale(bottom),\n });\n }),\n ]);\n}\n\nfunction createOccurrenceMatrix(\n units: UnitLong[],\n data: Map<number, PBDBOccurrence[]>,\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n): OccurrenceMatrixData {\n const taxonUnitMap = new Map<string, Set<number>>();\n const taxonOccurrenceMap = new Map<string, PBDBOccurrence[]>();\n\n for (const [unit_id, occurrences] of data.entries()) {\n for (const occ of occurrences) {\n const taxonName = occ.best_name ?? occ.taxon_name;\n if (!taxonUnitMap.has(taxonName)) {\n taxonUnitMap.set(taxonName, new Set());\n taxonOccurrenceMap.set(taxonName, []);\n }\n taxonUnitMap.get(taxonName).add(unit_id);\n taxonOccurrenceMap.get(taxonName).push(occ);\n }\n }\n\n // sort the taxon occurrence map by number of occurrences\n const sortedTaxa = Array.from(taxonUnitMap.entries()).sort((a, b) => {\n // Sort alphabetically by taxon name\n return b[0].localeCompare(a[0]);\n });\n\n const taxonRanges = new Map<string, [number, number][]>();\n for (const [taxonName, unitSet] of taxonUnitMap.entries()) {\n taxonRanges.set(\n taxonName,\n accumulatePresenceDomains(units, unitSet, axisType),\n );\n }\n\n return {\n occurrenceMap: data,\n taxonUnitMap: new Map(sortedTaxa),\n taxonOccurrenceMap: taxonOccurrenceMap,\n taxonRanges,\n };\n}\n\nfunction accumulatePresenceDomains(\n unit: UnitLong[],\n presenceUnits: Set<number>,\n axisType: ColumnAxisType,\n): Array<[number, number]> {\n const domains: Array<[number, number]> = [];\n let currentDomain: [number, number] | null = null;\n\n for (const u of unit) {\n if (presenceUnits.has(u.unit_id)) {\n if (currentDomain == null) {\n if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.HEIGHT\n ) {\n currentDomain = [u.t_pos, u.b_pos];\n } else {\n currentDomain = [u.t_age, u.b_age];\n }\n } else {\n if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.HEIGHT\n ) {\n currentDomain[1] = u.b_pos;\n } else {\n currentDomain[1] = u.b_age;\n }\n }\n } else {\n if (currentDomain != null) {\n domains.push(currentDomain);\n currentDomain = null;\n }\n }\n }\n\n if (currentDomain != null) {\n domains.push(currentDomain);\n }\n\n return domains;\n}\n"],"names":["$2jHE4$macrostrathyper","Box","$2jHE4$Box","useElementSize","$2jHE4$useElementSize","ColumnSVG","$2jHE4$ColumnSVG","ColumnAxisType","$2jHE4$ColumnAxisType","useRef","$2jHE4$useRef","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$ea2f112131e22f14$exports","$ea2f112131e22f14$export$554267114407ef68","$ea2f112131e22f14$export$652730986cccff7a","FossilDataType","$dx7no","$fIqIn","$wtIgl","$jDygK","$ea2f112131e22f14$var$h","styled","a","__esModule","default","$ea2f112131e22f14$var$FossilInfo","props","note","spacing","data","unit","TruncatedList","className","itemRenderer","$ea2f112131e22f14$var$PBDBCollectionLink","href","cltn_id","best_name","cltn_name","$ea2f112131e22f14$var$matchingUnit","dz","d","unit_id","columnID","type","Collections","useFossilData","BaseMeasurementsColumn","noteComponent","matchingUnit","occurrenceMap","Map","Occurrences","col","useMacrostratColumnData","matrix","$ea2f112131e22f14$var$createOccurrenceMatrix","units","axisType","AGE","taxonUnitMap","taxonOccurrenceMap","occurrences","entries","occ","taxonName","taxon_name","has","Set","add","push","sortedTaxa","Array","from","sort","b","localeCompare","taxonRanges","unitSet","$ea2f112131e22f14$var$accumulatePresenceDomains","presenceUnits","domains","currentDomain","u","DEPTH","HEIGHT","t_pos","b_pos","t_age","b_age","scale","useCompositeScale","taxonEntries","width","padding","length","height","totalHeight","$ea2f112131e22f14$var$TaxonOccurrenceLabels","map","ranges","rowIndex","transform","top","bottom","y1","y2","topPx","$ea2f112131e22f14$var$TaxonLabel","left","ref","textSize","labelWidth","style","marginLeft","PBDBFossilsColumn","PBDBOccurrencesMatrix","$8e174c7ae24a4598$export$a990c76b38782f57"],"version":3,"file":"column-views.5a8bc8e3.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{compareAgeRanges as e,AgeRangeRelationship as r}from"@macrostrat/stratigraphy-utils";import{ColumnAxisType as t}from"@macrostrat/column-components";function a(e,r,t,a){Object.defineProperty(e,r,{get:t,set:a,enumerable:!0,configurable:!0})}var n,o={};a(o,"MergeSectionsMode",()=>s),a(o,"unitsOverlap",()=>i),a(o,"getUnitHeightRange",()=>p),a(o,"agesOverlap",()=>c),a(o,"createUnitSorter",()=>f),a(o,"ensureArray",()=>l),a(o,"ensureRealFloat",()=>u);var s=((n={}).ALL="all",n.OVERLAPPING="overlapping",n);let i=function(a,n,o=t.AGE,s=.001){return e(p(a,o),p(n,o),s)!=r.Disjoint};function c(e,r,a=.001){return i(e,r,t.AGE,a)}function p(e,r){switch(r){case t.AGE:return[e.b_clip_pos??e.b_age,e.t_clip_pos??e.t_age];case t.DEPTH:case t.ORDINAL:case t.HEIGHT:return[e.b_clip_pos??e.b_pos,e.t_clip_pos??e.t_pos];default:throw Error(`Unknown axis type: ${r}`)}}let f=e=>(r,t)=>{let a=p(r,e),n=p(t,e),o=a[1]-n[1];return 0!=o?o:a[0]-n[0]};function l(e){return Array.isArray(e)?e:[e]}function u(e){return("string"==typeof e&&(e=parseFloat(e)),isNaN(e))?null:e}export{s as MergeSectionsMode,i as unitsOverlap,p as getUnitHeightRange,c as agesOverlap,f as createUnitSorter,l as ensureArray,u as ensureRealFloat};
|
|
2
|
+
//# sourceMappingURL=column-views.5f3b0b04.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,O,oB,C,C,wB,C,K,gC,A,Q,kB,C,K,+B,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,IC4BY,E,E,C,E,E,E,oB,I,G,E,E,e,I,G,E,E,qB,I,G,E,E,c,I,G,E,E,mB,I,G,E,E,c,I,G,E,E,kB,I,GAAL,IAAK,G,CAAA,E,C,G,G,C,M,E,W,C,cAAA,GAyBL,IAAM,EAA6B,SACxC,CAAC,CACD,CAAC,CACD,EAA2B,AAAA,EAAe,GAAG,CAC7C,EAAoB,IAAK,EAOzB,OAAO,AALK,AAAA,EACV,EAAmB,EAAG,GACtB,EAAmB,EAAG,GACtB,IAEY,AAAA,EAAqB,QAAQ,AAC7C,EAGO,SAAS,EACd,CAAuB,CACvB,CAAuB,CACvB,EAxDS,IAwDa,EAEtB,OAAO,EAAa,EAAG,EAAG,AAAA,EAAe,GAAG,CAAE,EAChD,CAQO,SAAS,EACd,CAAyB,CACzB,CAAwB,EAExB,OAAQ,GACN,KAAK,AAAA,EAAe,GAAG,CACrB,MAAO,CAAC,EAAK,UAAU,EAAI,EAAK,KAAK,CAAE,EAAK,UAAU,EAAI,EAAK,KAAK,CAAC,AACvE,MAAK,AAAA,EAAe,KAAK,CACzB,KAAK,AAAA,EAAe,OAAO,CAC3B,KAAK,AAAA,EAAe,MAAM,CACxB,MAAO,CAAC,EAAK,UAAU,EAAI,EAAK,KAAK,CAAE,EAAK,UAAU,EAAI,EAAK,KAAK,CAAC,AACvE,SACE,MAAM,AAAI,MAAM,CAAC,mBAAmB,EAAE,EAAA,CAAU,CACpD,CACF,CAEO,IAAM,EAAmB,AAAC,GACxB,CAAC,EAAa,KACnB,IAAM,EAAQ,EAAmB,EAAG,GAC9B,EAAQ,EAAmB,EAAG,GAC9B,EAAQ,CAAK,CAAC,EAAE,CAAG,CAAK,CAAC,EAAE,QACjC,AAAI,AAAS,GAAT,EACK,EAEF,CAAK,CAAC,EAAE,CAAG,CAAK,CAAC,EAAE,AAC5B,EAGK,SAAS,EAAe,CAAU,SACvC,AAAI,MAAM,OAAO,CAAC,GACT,EAEF,CAAC,EAAE,AACZ,CAEO,SAAS,EAAgB,CAAyB,QAIvD,CAHI,AAAY,UAAZ,OAAO,GACT,CAAA,EAAI,WAAW,EADjB,EAGI,MAAM,IACD,KAEF,CACT,Q,K,iB,C,K,Y,C,K,kB,C,K,W,C,K,gB,C,K,W,C,K,e","sources":["<anon>","packages/column-views/src/prepare-units/utils.ts"],"sourcesContent":["import {compareAgeRanges as $6wq4o$compareAgeRanges, AgeRangeRelationship as $6wq4o$AgeRangeRelationship} from \"@macrostrat/stratigraphy-utils\";\nimport {ColumnAxisType as $6wq4o$ColumnAxisType} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $f811753598b339f3$exports = {};\n\n$parcel$export($f811753598b339f3$exports, \"MergeSectionsMode\", () => $f811753598b339f3$export$e1644389ce074058);\n$parcel$export($f811753598b339f3$exports, \"unitsOverlap\", () => $f811753598b339f3$export$f1a15f539858307);\n$parcel$export($f811753598b339f3$exports, \"getUnitHeightRange\", () => $f811753598b339f3$export$70e712e2ac0237a);\n$parcel$export($f811753598b339f3$exports, \"agesOverlap\", () => $f811753598b339f3$export$d92a67740c050efb);\n$parcel$export($f811753598b339f3$exports, \"createUnitSorter\", () => $f811753598b339f3$export$ab14c04795685c55);\n$parcel$export($f811753598b339f3$exports, \"ensureArray\", () => $f811753598b339f3$export$d0c8ecbd4ed8940c);\n$parcel$export($f811753598b339f3$exports, \"ensureRealFloat\", () => $f811753598b339f3$export$97de5b0a6b4e4dac);\n\n\nconst $f811753598b339f3$var$dt = 0.001;\nvar $f811753598b339f3$export$e1644389ce074058 = /*#__PURE__*/ function(MergeSectionsMode) {\n MergeSectionsMode[\"ALL\"] = \"all\";\n MergeSectionsMode[\"OVERLAPPING\"] = \"overlapping\";\n return MergeSectionsMode;\n}({});\nconst $f811753598b339f3$export$f1a15f539858307 = function(a, b, axisType = (0, $6wq4o$ColumnAxisType).AGE, tolerance = 0.001) {\n const rel = (0, $6wq4o$compareAgeRanges)($f811753598b339f3$export$70e712e2ac0237a(a, axisType), $f811753598b339f3$export$70e712e2ac0237a(b, axisType), tolerance);\n return rel != (0, $6wq4o$AgeRangeRelationship).Disjoint;\n};\nfunction $f811753598b339f3$export$d92a67740c050efb(a, b, tolerance = $f811753598b339f3$var$dt) {\n return $f811753598b339f3$export$f1a15f539858307(a, b, (0, $6wq4o$ColumnAxisType).AGE, tolerance);\n}\nfunction $f811753598b339f3$export$70e712e2ac0237a(unit, axisType) {\n switch(axisType){\n case (0, $6wq4o$ColumnAxisType).AGE:\n return [\n unit.b_clip_pos ?? unit.b_age,\n unit.t_clip_pos ?? unit.t_age\n ];\n case (0, $6wq4o$ColumnAxisType).DEPTH:\n case (0, $6wq4o$ColumnAxisType).ORDINAL:\n case (0, $6wq4o$ColumnAxisType).HEIGHT:\n return [\n unit.b_clip_pos ?? unit.b_pos,\n unit.t_clip_pos ?? unit.t_pos\n ];\n default:\n throw new Error(`Unknown axis type: ${axisType}`);\n }\n}\nconst $f811753598b339f3$export$ab14c04795685c55 = (axisType)=>{\n return (a, b)=>{\n const a_pos = $f811753598b339f3$export$70e712e2ac0237a(a, axisType);\n const b_pos = $f811753598b339f3$export$70e712e2ac0237a(b, axisType);\n const d_top = a_pos[1] - b_pos[1];\n if (d_top != 0) return d_top;\n return a_pos[0] - b_pos[0];\n };\n};\nfunction $f811753598b339f3$export$d0c8ecbd4ed8940c(x) {\n if (Array.isArray(x)) return x;\n return [\n x\n ];\n}\nfunction $f811753598b339f3$export$97de5b0a6b4e4dac(x) {\n if (typeof x == \"string\") x = parseFloat(x);\n if (isNaN(x)) return null;\n return x;\n}\n\n\nexport {$f811753598b339f3$export$e1644389ce074058 as MergeSectionsMode, $f811753598b339f3$export$f1a15f539858307 as unitsOverlap, $f811753598b339f3$export$70e712e2ac0237a as getUnitHeightRange, $f811753598b339f3$export$d92a67740c050efb as agesOverlap, $f811753598b339f3$export$ab14c04795685c55 as createUnitSorter, $f811753598b339f3$export$d0c8ecbd4ed8940c as ensureArray, $f811753598b339f3$export$97de5b0a6b4e4dac as ensureRealFloat};\n//# sourceMappingURL=column-views.5f3b0b04.js.map\n","import type { BaseUnit } from \"@macrostrat/api-types\";\nimport {\n AgeRangeRelationship,\n compareAgeRanges,\n} from \"@macrostrat/stratigraphy-utils\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { ScaleContinuousNumeric } from \"d3-scale\";\nimport type {\n ColumnScaleOptions,\n CompositeColumnData,\n ExtUnit,\n PackageLayoutData,\n StratigraphicPackage,\n} from \"./types\";\n\nconst dt = 0.001;\n\nexport interface PrepareColumnOptions extends ColumnScaleOptions {\n axisType: ColumnAxisType;\n t_age?: number;\n b_age?: number;\n t_pos?: number;\n b_pos?: number;\n mergeSections?: MergeSectionsMode;\n collapseSmallUnconformities?: boolean | number;\n scale?: ScaleContinuousNumeric<any, any>;\n}\n\nexport enum MergeSectionsMode {\n ALL = \"all\",\n OVERLAPPING = \"overlapping\",\n}\n\nexport interface PreparedColumnData extends CompositeColumnData {\n sections: PackageLayoutData[];\n units: ExtUnit[];\n}\n\ninterface UnitsOverlap {\n (\n a: StratigraphicPackage,\n b: StratigraphicPackage,\n axisType?: ColumnAxisType.AGE,\n tolerance?: number,\n ): boolean;\n (\n a: BaseUnit,\n b: BaseUnit,\n axisType: ColumnAxisType,\n tolerance?: number,\n ): boolean;\n}\n\nexport const unitsOverlap: UnitsOverlap = function (\n a,\n b,\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n tolerance: number = 0.001,\n): boolean {\n const rel = compareAgeRanges(\n getUnitHeightRange(a, axisType),\n getUnitHeightRange(b, axisType),\n tolerance,\n );\n return rel != AgeRangeRelationship.Disjoint;\n};\n\n/** A more permissive overlap function in the age space */\nexport function agesOverlap(\n a: StratigraphicPackage,\n b: StratigraphicPackage,\n tolerance: number = dt,\n): boolean {\n return unitsOverlap(a, b, ColumnAxisType.AGE, tolerance);\n}\n\nexport interface PossiblyClippedUnit extends BaseUnit {\n // Internally created clipped positions\n t_clip_pos?: number;\n b_clip_pos?: number;\n}\n\nexport function getUnitHeightRange(\n unit: PossiblyClippedUnit,\n axisType: ColumnAxisType,\n): [number, number] {\n switch (axisType) {\n case ColumnAxisType.AGE:\n return [unit.b_clip_pos ?? unit.b_age, unit.t_clip_pos ?? unit.t_age];\n case ColumnAxisType.DEPTH:\n case ColumnAxisType.ORDINAL:\n case ColumnAxisType.HEIGHT:\n return [unit.b_clip_pos ?? unit.b_pos, unit.t_clip_pos ?? unit.t_pos];\n default:\n throw new Error(`Unknown axis type: ${axisType}`);\n }\n}\n\nexport const createUnitSorter = (axisType: ColumnAxisType) => {\n return (a: BaseUnit, b: BaseUnit) => {\n const a_pos = getUnitHeightRange(a, axisType);\n const b_pos = getUnitHeightRange(b, axisType);\n const d_top = a_pos[1] - b_pos[1];\n if (d_top != 0) {\n return d_top;\n }\n return a_pos[0] - b_pos[0];\n };\n};\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n if (Array.isArray(x)) {\n return x;\n }\n return [x];\n}\n\nexport function ensureRealFloat(x: number | string | null): number | null {\n if (typeof x == \"string\") {\n x = parseFloat(x);\n }\n if (isNaN(x)) {\n return null;\n }\n return x;\n}\n"],"names":["compareAgeRanges","$6wq4o$compareAgeRanges","AgeRangeRelationship","$6wq4o$AgeRangeRelationship","ColumnAxisType","$6wq4o$ColumnAxisType","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","MergeSectionsMode","$f811753598b339f3$exports","$f811753598b339f3$export$e1644389ce074058","$f811753598b339f3$export$f1a15f539858307","$f811753598b339f3$export$70e712e2ac0237a","$f811753598b339f3$export$d92a67740c050efb","$f811753598b339f3$export$ab14c04795685c55","$f811753598b339f3$export$d0c8ecbd4ed8940c","$f811753598b339f3$export$97de5b0a6b4e4dac","a","b","axisType","AGE","tolerance","rel","Disjoint","unit","b_clip_pos","b_age","t_clip_pos","t_age","DEPTH","ORDINAL","HEIGHT","b_pos","t_pos","Error","a_pos","d_top","x","Array","isArray","parseFloat","isNaN","unitsOverlap","getUnitHeightRange","agesOverlap","createUnitSorter","ensureArray","ensureRealFloat"],"version":3,"file":"column-views.5f3b0b04.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./column-views.7425d37b.js";import"./column-views.92e29010.js";import e from"cross-fetch";import{useContext as t,useEffect as r,useMemo as a,useState as s,createContext as n}from"react";import o from"@macrostrat/hyper";import{create as l,useStore as i}from"zustand";import{APIProvider as u}from"@macrostrat/ui-components";import{ColumnProvider as c}from"@macrostrat/column-components";function f(e,t,r,a){Object.defineProperty(e,t,{get:r,set:a,enumerable:!0,configurable:!0})}var m=globalThis,p={},d={},v=m.parcelRequirea149;null==v&&((v=function(e){if(e in p)return p[e].exports;if(e in d){var t=d[e];delete d[e];var r={id:e,exports:{}};return p[e]=r,t.call(r.exports,r,r.exports),r.exports}var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){d[e]=t},m.parcelRequirea149=v),v.register;var h={};f(h,"useMacrostratStore",()=>M),f(h,"useMacrostratBaseURL",()=>w),f(h,"useMacrostratDefs",()=>x),f(h,"useMacrostratColumns",()=>R),f(h,"useMacrostratData",()=>L),f(h,"MacrostratDataProvider",()=>y),f(h,"MacrostratAPIProvider",()=>C),f(h,"MacrostratColumnProvider",()=>D),f(h,"LithologiesProvider",()=>E),f(h,"useLithologies",()=>S),f(h,"useEnvironments",()=>U);var g=v("Piirt"),b=v("wtIgl");function $(t="https://macrostrat.org/api/v2"){return l((r,a)=>{var s,n,o,l,i,u,c,f,m,p,d,v;return{baseURL:t,inFlightRequests:new Set,async fetch(r,s){let n=t+r,{inFlightRequests:o}=a();if(o.has(n))return null;o.add(n);let l=await e(n,s);return o.delete(n),l},...(s=r,n=a,{lithologies:null,async getLithologies(e){let{lithologies:t,fetch:r}=n(),a=t;if(null==a){let e=await (0,g.fetchLithologies)(r);if(null==e)return;s({lithologies:a=new Map(e.map(e=>[e.lith_id,e]))})}return null==e?a.values():e.map(e=>a.get(e))}}),...(o=r,l=a,{intervals:null,async getIntervals(e,t){var r,a;let{intervals:s,fetch:n}=l(),i=s;if(null==s||(r=s,a=t,!(null!=r&&(null==a||Array.from(r.values()).some(e=>e.timescale_id==a))))){let e=await (0,g.fetchIntervals)(t,n);if(null==e)return[];let r=s??new Map;for(let t of e)r.set(t.int_id,t);o({intervals:i=r})}return null==e&&null==t?Array.from(i.values()):null!=t?Array.from(i.values()).filter(e=>e.timescale_id==t):e.map(e=>s.get(e))}}),...(i=r,u=a,{environments:null,async getEnvironments(e){let{environments:t,fetch:r}=u(),a=t;if(null==a){let e=await (0,g.fetchEnvironments)(r);if(null==e)return[];i({environments:a=new Map(e.map(e=>[e.environ_id,e]))})}return null==e?a.values():e.map(e=>a.get(e))}}),...(c=r,f=a,{columnFootprints:new Map,async getColumns(e,t){let{columnFootprints:r,baseURL:a,fetch:s}=f(),n=e??-1,o=r.get(n);if(null==o||o.inProcess!=t){let a=["active"];t&&a.push("in process");let l=await (0,g.fetchAllColumns)({projectID:e,statusCode:a,fetch:s});if(null==l)return;o={project_id:e,inProcess:t,columns:l};let i=new Map(r);i.set(n,o),c({columnFootprints:i})}return o.columns}}),...(m=r,p=a,{refs:new Map,async getRefs(e){let{refs:t,fetch:r}=p(),a=e.filter(e=>!t.has(e));if(0==a.length)return e.map(e=>t.get(e));let s=await (0,g.fetchRefs)(a,r);if(null==s)return[];for(let e of s)t.set(e.ref_id,e);return m({refs:t}),e.map(e=>t.get(e))}}),...(d=r,v=a,{stratNames:null,async getStratNames(e){let{stratNames:t,fetch:r}=v(),a=t??new Map,s=[],n=[];for(let t of e)a.has(t)?s.push(a.get(t)):n.push(t);if(n.length>0){let e=await (0,g.fetchStratNames)(n,r);if(null==e)return s;for(let t of e)a.set(t.strat_name_id,t);d({stratNames:a})}return e.map(e=>a.get(e))}})}})}function M(e){let r=t(_);if(null==r)throw Error("Missing MacrostratDataProvider");return"api"===e?r:i(r,e)}function w(e="https://macrostrat.org/api/v2"){let r=t(_);return null==r?e:r.getState().baseURL}let P={lithologies:e=>e.getLithologies,intervals:e=>e.getIntervals,columns:e=>e.getColumns,environments:e=>e.getEnvironments,refs:e=>e.getRefs,strat_names:e=>e.getStratNames};function x(e){if("columns"==e)throw Error("Columns are not provided as a map");let t=M(P[e]);return r(()=>{t()},[]),M(t=>t[e])}function R(e,t){let s=M(e=>e.getColumns),n=M(e=>e.columnFootprints),o=n?.get(e??-1);return r(()=>{(null==o||t&&!o.inProcess)&&s(e,t)},[o,t,s]),a(()=>{if(null==o)return null;let e=o.columns;return!t&&o.inProcess&&(e.features=e.features?.filter(e=>"in process"!=e.properties.status)),e},[o,t])}function L(e,...t){let a=M(P[e]),[n,o]=s(null);return r(()=>{try{a(...t).then(o)}catch(e){console.error(e)}},[a,...t]),n}let _=n($());function y(e){let{baseURL:t="https://dev.macrostrat.org/api/v2",children:r}=e,[a]=s(()=>$(t));return o(C,{baseURL:t},o(_.Provider,{value:a},r))}function C({children:e,useDev:t=!1,baseURL:r}){return r??(r=t?"https://dev.macrostrat.org/api/v2":"https://macrostrat.org/api/v2"),o(u,{baseURL:r,unwrapResponse:e=>e.success.data},e)}function D(e){let{axisType:t}=(0,b.useMacrostratColumnData)(),{units:r,domain:a,pixelScale:s,scale:n,children:l}=e;return o(c,{axisType:t,divisions:r,range:a,pixelsPerMeter:s,scale:n},l)}function E({children:e}){return r(()=>{console.warn("LithologiesProvider is deprecated. Replace with MacrostratDataProvider")},[]),e}function S(){let e=M(e=>e.getLithologies),t=M(e=>e.lithologies);return r(()=>{null==t&&e()},[t,e]),t}function U(){let e=M(e=>e.getEnvironments),t=M(e=>e.environments);return r(()=>{null==t&&e()},[t,e]),t}export{M as useMacrostratStore,w as useMacrostratBaseURL,x as useMacrostratDefs,R as useMacrostratColumns,L as useMacrostratData,y as MacrostratDataProvider,C as MacrostratAPIProvider,D as MacrostratColumnProvider,E as LithologiesProvider,S as useLithologies,U as useEnvironments};
|
|
2
|
+
//# sourceMappingURL=column-views.6099a3a9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,Q,M,a,A,Q,c,C,C,a,C,C,W,C,C,Y,C,C,iB,C,K,O,A,Q,M,mB,A,Q,U,C,C,Y,C,K,S,A,Q,e,C,K,2B,A,Q,kB,C,K,+B,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,qB,I,G,E,E,uB,I,G,E,E,oB,I,G,E,E,uB,I,G,E,E,oB,I,G,E,E,yB,I,G,E,E,wB,I,G,E,E,2B,I,G,E,E,sB,I,G,E,E,iB,I,G,E,E,kB,I,G,I,E,E,S,E,E,SCoEA,SAAS,EACP,EAAkB,+BAA+B,EAEjD,OAAO,AAAA,EAAwB,CAAC,EAAK,SAwFP,EAAK,EAsCP,EAAK,EAnBF,EAAK,EA3DV,EAAK,EApBR,EAAK,EAiIC,EAAK,QA5JzB,CACL,QAAA,EACA,iBAAkB,IAAI,IACtB,MAAM,MAAM,CAAW,CAAE,CAAqB,EAC5C,IAAM,EAAO,EAAU,EAEjB,CAAA,iBAAE,CAAgB,CAAE,CAAG,IAC7B,GAAI,EAAiB,GAAG,CAAC,GACvB,OAAO,KAET,EAAiB,GAAG,CAAC,GAErB,IAAM,EAAM,MAAM,AAAA,EAAU,EAAM,GAGlC,OAFA,EAAiB,MAAM,CAAC,GAEjB,CACT,MAuE0B,EAtEA,EAsEK,EAtEA,EAuE5B,CACL,YAAa,KACb,MAAM,eAAe,CAAoB,EACvC,GAAM,CAAA,YAAE,CAAW,CAAA,MAAE,CAAK,CAAE,CAAG,IAC3B,EAAU,EACd,GAAI,AAAW,MAAX,EAAiB,CACnB,IAAM,EAAO,MAAM,AAAA,CAAA,EAAA,EAAA,gBAAe,AAAf,EAAiB,GACpC,GAAI,AAAQ,MAAR,EAAc,OAElB,EAAI,CAAE,YADN,EAAU,IAAI,IAAI,EAAK,GAAG,CAA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","sources":["<anon>","packages/column-views/src/data-provider/base.ts"],"sourcesContent":["import \"./column-views.7425d37b.js\";\nimport \"./column-views.92e29010.js\";\nimport $fUENy$crossfetch from \"cross-fetch\";\nimport {useContext as $fUENy$useContext, useEffect as $fUENy$useEffect, useMemo as $fUENy$useMemo, useState as $fUENy$useState, createContext as $fUENy$createContext} from \"react\";\nimport $fUENy$macrostrathyper from \"@macrostrat/hyper\";\nimport {create as $fUENy$create, useStore as $fUENy$useStore} from \"zustand\";\nimport {APIProvider as $fUENy$APIProvider} from \"@macrostrat/ui-components\";\nimport {ColumnProvider as $fUENy$ColumnProvider} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $8750144f23b92eb9$exports = {};\n\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratStore\", () => $8750144f23b92eb9$export$fb98d5bae3a6800);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratBaseURL\", () => $8750144f23b92eb9$export$33b1392d23dde04);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratDefs\", () => $8750144f23b92eb9$export$89dd4e5ae4a82373);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratColumns\", () => $8750144f23b92eb9$export$81eaae0b474404fd);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratData\", () => $8750144f23b92eb9$export$b9c9fc603d74a555);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratDataProvider\", () => $8750144f23b92eb9$export$690613f93cdc5576);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratAPIProvider\", () => $8750144f23b92eb9$export$3098013bc6cc316d);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratColumnProvider\", () => $8750144f23b92eb9$export$9e42f9b6e0d67c7d);\n$parcel$export($8750144f23b92eb9$exports, \"LithologiesProvider\", () => $8750144f23b92eb9$export$8492a5cae82b6a70);\n$parcel$export($8750144f23b92eb9$exports, \"useLithologies\", () => $8750144f23b92eb9$export$4d18a90c945d129f);\n$parcel$export($8750144f23b92eb9$exports, \"useEnvironments\", () => $8750144f23b92eb9$export$c6b216bf4c71b61f);\n/** Data provider for information that needs to be loaded in bulk for frontend views */ \n\n\n\n\nvar $Piirt = parcelRequire(\"Piirt\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nfunction $8750144f23b92eb9$var$createMacrostratStore(baseURL = \"https://macrostrat.org/api/v2\") {\n return (0, $fUENy$create)((set, get)=>{\n return {\n baseURL: baseURL,\n inFlightRequests: new Set(),\n async fetch (url, options) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests: inFlightRequests } = get();\n if (inFlightRequests.has(url1)) return null; // Return null if already in flight\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await (0, $fUENy$crossfetch)(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...$8750144f23b92eb9$var$createLithologiesSlice(set, get),\n ...$8750144f23b92eb9$var$createIntervalsSlice(set, get),\n ...$8750144f23b92eb9$var$createEnvironmentsSlice(set, get),\n ...$8750144f23b92eb9$var$createColumnsSlice(set, get),\n ...$8750144f23b92eb9$var$createRefsSlice(set, get),\n ...$8750144f23b92eb9$var$createStratNamesSlice(set, get)\n };\n });\n}\nfunction $8750144f23b92eb9$var$createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs (ids) {\n const { refs: refs, fetch: fetch } = get();\n const missing = ids.filter((id)=>!refs.has(id));\n if (missing.length == 0) return ids.map((id)=>refs.get(id));\n const data = await (0, $Piirt.fetchRefs)(missing, fetch);\n if (data == null) return [];\n for (const d of data)refs.set(d.ref_id, d);\n set({\n refs: refs\n });\n return ids.map((id)=>refs.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns (projectID, inProcess) {\n const { columnFootprints: columnFootprints, baseURL: baseURL, fetch: fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode = [\n \"active\"\n ];\n if (_inProcess) statusCode.push(\"in process\");\n const columns = await (0, $Piirt.fetchAllColumns)({\n projectID: projectID,\n statusCode: statusCode,\n fetch: fetch\n });\n if (columns == null) return;\n footprints = {\n project_id: projectID,\n inProcess: inProcess,\n columns: columns\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({\n columnFootprints: columnFootprints2\n });\n }\n return footprints.columns;\n }\n };\n}\nfunction $8750144f23b92eb9$var$createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies (ids) {\n const { lithologies: lithologies, fetch: fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await (0, $Piirt.fetchLithologies)(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d)=>[\n d.lith_id,\n d\n ]));\n set({\n lithologies: lithMap\n });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id)=>lithMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments (ids) {\n const { environments: environments, fetch: fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await (0, $Piirt.fetchEnvironments)(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d)=>[\n d.environ_id,\n d\n ]));\n set({\n environments: envMap\n });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id)=>envMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals (ids, timescaleID) {\n const { intervals: intervals, fetch: fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !$8750144f23b92eb9$var$includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await (0, $Piirt.fetchIntervals)(timescaleID, fetch);\n if (data == null) return [];\n const intervalMap = intervals ?? new Map();\n for (const d of data)intervalMap.set(d.int_id, d);\n _intervals = intervalMap;\n set({\n intervals: _intervals\n });\n }\n if (ids == null && timescaleID == null) return Array.from(_intervals.values());\n if (timescaleID != null) return Array.from(_intervals.values()).filter((d)=>d.timescale_id == timescaleID);\n return ids.map((id)=>intervals.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createStratNamesSlice(set, get) {\n return {\n stratNames: null,\n async getStratNames (ids) {\n const { stratNames: stratNames, fetch: fetch } = get();\n let nameMap = stratNames ?? new Map();\n let stratNamesAlreadyLoaded = [];\n let stratNamesToLoad = [];\n for (const id of ids)if (nameMap.has(id)) stratNamesAlreadyLoaded.push(nameMap.get(id));\n else stratNamesToLoad.push(id);\n if (stratNamesToLoad.length > 0) {\n const data = await (0, $Piirt.fetchStratNames)(stratNamesToLoad, fetch);\n if (data == null) return stratNamesAlreadyLoaded;\n for (const d of data)nameMap.set(d.strat_name_id, d);\n set({\n stratNames: nameMap\n });\n }\n return ids.map((id)=>nameMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$includesTimescale(intervals, timescaleID) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some((d)=>d.timescale_id == timescaleID);\n}\nfunction $8750144f23b92eb9$export$fb98d5bae3a6800(selector) {\n const ctx = (0, $fUENy$useContext)($8750144f23b92eb9$var$MacrostratDataProviderContext);\n if (ctx == null) throw new Error(\"Missing MacrostratDataProvider\");\n if (selector === \"api\") return ctx;\n return (0, $fUENy$useStore)(ctx, selector);\n}\nfunction $8750144f23b92eb9$export$33b1392d23dde04(defaultURL = \"https://macrostrat.org/api/v2\") {\n /** Get the Macrostrat base URL from the store if set, otherwise return a default value */ const ctx = (0, $fUENy$useContext)($8750144f23b92eb9$var$MacrostratDataProviderContext);\n if (ctx == null) // Return default URL if no provider is present\n return defaultURL;\n return ctx.getState().baseURL;\n}\nconst $8750144f23b92eb9$var$dataTypeMapping = {\n lithologies: (store)=>store.getLithologies,\n intervals: (store)=>store.getIntervals,\n columns: (store)=>store.getColumns,\n environments: (store)=>store.getEnvironments,\n refs: (store)=>store.getRefs,\n strat_names: (store)=>store.getStratNames\n};\nfunction $8750144f23b92eb9$export$89dd4e5ae4a82373(dataType) {\n if (dataType == \"columns\") throw new Error(\"Columns are not provided as a map\");\n const operator = $8750144f23b92eb9$export$fb98d5bae3a6800($8750144f23b92eb9$var$dataTypeMapping[dataType]);\n (0, $fUENy$useEffect)(()=>{\n operator();\n }, []);\n return $8750144f23b92eb9$export$fb98d5bae3a6800((state)=>state[dataType]);\n}\nfunction $8750144f23b92eb9$export$81eaae0b474404fd(projectID, inProcess) {\n const getColumns = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getColumns);\n const columnsMap = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n (0, $fUENy$useEffect)(()=>{\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || inProcess && !colData.inProcess) getColumns(projectID, inProcess);\n // If we've already fetched the columns there's nothing to do...\n }, [\n colData,\n inProcess,\n getColumns\n ]);\n return (0, $fUENy$useMemo)(()=>{\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter((d)=>d.properties.status != \"in process\");\n return columns;\n }, [\n colData,\n inProcess\n ]);\n}\nfunction $8750144f23b92eb9$export$b9c9fc603d74a555(dataType, ...args) {\n const selector = $8750144f23b92eb9$var$dataTypeMapping[dataType];\n const operator = $8750144f23b92eb9$export$fb98d5bae3a6800(selector);\n const [value, setValue] = (0, $fUENy$useState)(null);\n (0, $fUENy$useEffect)(()=>{\n try {\n operator(...args).then(setValue);\n } catch (e) {\n console.error(e);\n }\n }, [\n operator,\n ...args\n ]);\n return value;\n}\n/** By default, we provide a store linked to the production API */ const $8750144f23b92eb9$var$MacrostratDataProviderContext = (0, $fUENy$createContext)($8750144f23b92eb9$var$createMacrostratStore());\nfunction $8750144f23b92eb9$export$690613f93cdc5576(props) {\n const { baseURL: baseURL = \"https://dev.macrostrat.org/api/v2\", children: children } = props;\n const [store] = (0, $fUENy$useState)(()=>$8750144f23b92eb9$var$createMacrostratStore(baseURL));\n return (0, $fUENy$macrostrathyper)($8750144f23b92eb9$export$3098013bc6cc316d, {\n baseURL: baseURL\n }, (0, $fUENy$macrostrathyper)($8750144f23b92eb9$var$MacrostratDataProviderContext.Provider, {\n value: store\n }, children));\n}\nfunction $8750144f23b92eb9$export$3098013bc6cc316d({ children: children, useDev: useDev = false, baseURL: baseURL }) {\n baseURL ?? (baseURL = useDev ? \"https://dev.macrostrat.org/api/v2\" : \"https://macrostrat.org/api/v2\");\n return (0, $fUENy$macrostrathyper)((0, $fUENy$APIProvider), {\n baseURL: baseURL,\n unwrapResponse: (res)=>res.success.data\n }, children);\n}\nfunction $8750144f23b92eb9$export$9e42f9b6e0d67c7d(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */ const { axisType: axisType } = (0, $wtIgl.useMacrostratColumnData)();\n const { units: units, domain: domain, pixelScale: pixelScale, scale: scale, children: children } = props;\n return (0, $fUENy$macrostrathyper)((0, $fUENy$ColumnProvider), {\n axisType: axisType,\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n scale: scale\n }, children);\n}\nfunction $8750144f23b92eb9$export$8492a5cae82b6a70({ children: children }) {\n (0, $fUENy$useEffect)(()=>{\n console.warn(\"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\");\n }, []);\n return children;\n}\nfunction $8750144f23b92eb9$export$4d18a90c945d129f() {\n const getLithologies = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getLithologies);\n const lithologies = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.lithologies);\n (0, $fUENy$useEffect)(()=>{\n if (lithologies == null) getLithologies();\n }, [\n lithologies,\n getLithologies\n ]);\n return lithologies;\n}\nfunction $8750144f23b92eb9$export$c6b216bf4c71b61f() {\n const getEnvironments = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getEnvironments);\n const environments = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.environments);\n (0, $fUENy$useEffect)(()=>{\n if (environments == null) getEnvironments();\n }, [\n environments,\n getEnvironments\n ]);\n return environments;\n}\n\n\nexport {$8750144f23b92eb9$export$fb98d5bae3a6800 as useMacrostratStore, $8750144f23b92eb9$export$33b1392d23dde04 as useMacrostratBaseURL, $8750144f23b92eb9$export$89dd4e5ae4a82373 as useMacrostratDefs, $8750144f23b92eb9$export$81eaae0b474404fd as useMacrostratColumns, $8750144f23b92eb9$export$b9c9fc603d74a555 as useMacrostratData, $8750144f23b92eb9$export$690613f93cdc5576 as MacrostratDataProvider, $8750144f23b92eb9$export$3098013bc6cc316d as MacrostratAPIProvider, $8750144f23b92eb9$export$9e42f9b6e0d67c7d as MacrostratColumnProvider, $8750144f23b92eb9$export$8492a5cae82b6a70 as LithologiesProvider, $8750144f23b92eb9$export$4d18a90c945d129f as useLithologies, $8750144f23b92eb9$export$c6b216bf4c71b61f as useEnvironments};\n//# sourceMappingURL=column-views.6099a3a9.js.map\n","/** Data provider for information that needs to be loaded in bulk for frontend views */\nimport baseFetch from \"cross-fetch\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { create, useStore } from \"zustand\";\nimport {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n Environment,\n MacrostratRef,\n StratName,\n Interval,\n} from \"@macrostrat/api-types\";\nimport {\n fetchAllColumns,\n fetchEnvironments,\n fetchIntervals,\n fetchLithologies,\n fetchRefs,\n fetchStratNames,\n} from \"./fetch\";\nimport { APIProvider } from \"@macrostrat/ui-components\";\nimport { ColumnProvider } from \"@macrostrat/column-components\";\n\nimport { ReactNode } from \"react\";\nimport { useMacrostratColumnData } from \"./store\";\n\nexport interface MacrostratDataProviderProps {\n baseURL: string;\n children: React.ReactNode;\n}\n\ninterface ColumnFootprintsStorage {\n project_id: number;\n // Whether the \"in process\" flag was used\n inProcess: boolean;\n // The column footprints\n columns: ColumnGeoJSONRecordWithID[];\n}\n\ninterface RefsSlice {\n refs: Map<number, MacrostratRef>;\n inFlightRequests: Set<string>; // Track requests to avoid duplicates\n getRefs(ids: number[]): Promise<MacrostratRef[]>;\n}\n\ninterface MacrostratStore extends RefsSlice {\n baseURL: string;\n fetch: any;\n lithologies: Map<number, any> | null;\n getLithologies(ids: number[] | null): Promise<any>;\n intervals: Map<number, any> | null;\n getIntervals(\n ids: number[] | null,\n timescaleID: number | null,\n ): Promise<Interval[]>;\n environments: Map<number, Environment> | null;\n getEnvironments(ids: number[] | null): Promise<Environment[]>;\n columnFootprints: Map<number, ColumnFootprintsStorage>;\n getColumns(\n projectID: number | null,\n inProcess: boolean,\n ): Promise<ColumnGeoJSONRecord[]>;\n // Strat names unify both \"strat names\" and \"concepts\"\n stratNames: Map<number, StratName> | null;\n getStratNames(ids: number[] | null): Promise<StratName[]>;\n}\n\nfunction createMacrostratStore(\n baseURL: string = \"https://macrostrat.org/api/v2\",\n) {\n return create<MacrostratStore>((set, get): MacrostratStore => {\n return {\n baseURL,\n inFlightRequests: new Set(),\n async fetch(url: string, options?: RequestInit) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests } = get();\n if (inFlightRequests.has(url1)) {\n return null; // Return null if already in flight\n }\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await baseFetch(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...createLithologiesSlice(set, get),\n ...createIntervalsSlice(set, get),\n ...createEnvironmentsSlice(set, get),\n ...createColumnsSlice(set, get),\n ...createRefsSlice(set, get),\n ...createStratNamesSlice(set, get),\n };\n });\n}\n\nfunction createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs(ids: number[]): Promise<MacrostratRef[]> {\n const { refs, fetch } = get();\n const missing = ids.filter((id) => !refs.has(id));\n if (missing.length == 0) {\n return ids.map((id) => refs.get(id));\n }\n const data = await fetchRefs(missing, fetch);\n if (data == null) return [];\n for (const d of data) {\n refs.set(d.ref_id, d);\n }\n set({ refs });\n return ids.map((id) => refs.get(id));\n },\n };\n}\n\nfunction createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns(projectID: number | null, inProcess: boolean) {\n const { columnFootprints, baseURL, fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode: ColumnStatusCode[] = [\"active\"];\n if (_inProcess) {\n statusCode.push(\"in process\");\n }\n const columns = await fetchAllColumns({\n projectID,\n statusCode,\n fetch,\n });\n if (columns == null) {\n return;\n }\n footprints = {\n project_id: projectID,\n inProcess,\n columns,\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({ columnFootprints: columnFootprints2 });\n }\n return footprints.columns;\n },\n };\n}\n\nfunction createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies(ids: number[] | null) {\n const { lithologies, fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await fetchLithologies(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d) => [d.lith_id, d]));\n set({ lithologies: lithMap });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id) => lithMap.get(id));\n },\n };\n}\n\nfunction createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments(ids: number[] | null): Promise<Environment[]> {\n const { environments, fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await fetchEnvironments(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d) => [d.environ_id, d]));\n set({ environments: envMap });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id) => envMap.get(id));\n },\n };\n}\n\nfunction createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals(ids: number[] | null, timescaleID: number | null) {\n const { intervals, fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await fetchIntervals(timescaleID, fetch);\n if (data == null) {\n return [];\n }\n const intervalMap = intervals ?? new Map();\n for (const d of data) {\n intervalMap.set(d.int_id, d);\n }\n _intervals = intervalMap;\n set({ intervals: _intervals });\n }\n if (ids == null && timescaleID == null)\n return Array.from(_intervals.values());\n if (timescaleID != null) {\n return Array.from(_intervals.values() as any[]).filter(\n (d) => d.timescale_id == timescaleID,\n );\n }\n return ids.map((id) => intervals.get(id));\n },\n };\n}\n\nfunction createStratNamesSlice(set, get) {\n return {\n stratNames: null,\n async getStratNames(ids: number[] | null): Promise<StratName[]> {\n const { stratNames, fetch } = get();\n let nameMap = stratNames ?? new Map();\n let stratNamesAlreadyLoaded = [];\n let stratNamesToLoad = [];\n for (const id of ids) {\n if (nameMap.has(id)) {\n stratNamesAlreadyLoaded.push(nameMap.get(id));\n } else {\n stratNamesToLoad.push(id);\n }\n }\n if (stratNamesToLoad.length > 0) {\n const data = await fetchStratNames(stratNamesToLoad, fetch);\n if (data == null) return stratNamesAlreadyLoaded;\n for (const d of data) {\n nameMap.set(d.strat_name_id, d);\n }\n set({ stratNames: nameMap });\n }\n return ids.map((id) => nameMap.get(id));\n },\n };\n}\n\nfunction includesTimescale(intervals: Map<number, any>, timescaleID: number) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some(\n (d) => d.timescale_id == timescaleID,\n );\n}\n\ntype MacrostratSelector = (store: MacrostratStore) => any;\n\nexport function useMacrostratStore(selector: MacrostratSelector | \"api\") {\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n throw new Error(\"Missing MacrostratDataProvider\");\n }\n if (selector === \"api\") {\n return ctx;\n }\n return useStore(ctx, selector);\n}\n\nexport function useMacrostratBaseURL(\n defaultURL = \"https://macrostrat.org/api/v2\",\n): string {\n /** Get the Macrostrat base URL from the store if set, otherwise return a default value */\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n // Return default URL if no provider is present\n return defaultURL;\n }\n return ctx.getState().baseURL;\n}\n\ntype DataTypeKey =\n | \"lithologies\"\n | \"intervals\"\n | \"columns\"\n | \"environments\"\n | \"refs\"\n | \"strat_names\";\n\nconst dataTypeMapping = {\n lithologies: (store) => store.getLithologies,\n intervals: (store) => store.getIntervals,\n columns: (store) => store.getColumns,\n environments: (store) => store.getEnvironments,\n refs: (store) => store.getRefs,\n strat_names: (store) => store.getStratNames,\n};\n\nexport function useMacrostratDefs(dataType: string): Map<number, any> | null {\n if (dataType == \"columns\") {\n throw new Error(\"Columns are not provided as a map\");\n }\n const operator = useMacrostratStore(dataTypeMapping[dataType]);\n useEffect(() => {\n operator();\n }, []);\n return useMacrostratStore((state) => state[dataType]);\n}\n\nexport function useMacrostratColumns(\n projectID: number | null,\n inProcess: boolean,\n) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n const columnsMap = useMacrostratStore((s) => s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n useEffect(() => {\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || (inProcess && !colData.inProcess)) {\n getColumns(projectID, inProcess);\n }\n // If we've already fetched the columns there's nothing to do...\n }, [colData, inProcess, getColumns]);\n\n return useMemo(() => {\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) {\n // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter(\n (d) => d.properties.status != \"in process\",\n );\n }\n return columns;\n }, [colData, inProcess]);\n}\n\nexport function useMacrostratData(dataType: DataTypeKey, ...args: any[]) {\n const selector = dataTypeMapping[dataType];\n const operator = useMacrostratStore(selector);\n\n const [value, setValue] = useState(null);\n\n useEffect(() => {\n try {\n operator(...args).then(setValue);\n } catch (e) {\n console.error(e);\n }\n }, [operator, ...args]);\n\n return value;\n}\n\n/** By default, we provide a store linked to the production API */\nconst MacrostratDataProviderContext = createContext(createMacrostratStore());\n\nexport function MacrostratDataProvider(props: MacrostratDataProviderProps) {\n const { baseURL = \"https://dev.macrostrat.org/api/v2\", children } = props;\n\n const [store] = useState(() => createMacrostratStore(baseURL));\n\n return h(\n MacrostratAPIProvider,\n { baseURL },\n h(MacrostratDataProviderContext.Provider, { value: store }, children),\n );\n}\n\n/** Legacy API provider so useAPIResult can work */\n\ntype APIProviderProps = {\n children: ReactNode;\n useDev?: boolean;\n baseURL?: string;\n};\n\nexport function MacrostratAPIProvider({\n children,\n useDev = false,\n baseURL,\n}: APIProviderProps) {\n baseURL ??= useDev\n ? \"https://dev.macrostrat.org/api/v2\"\n : \"https://macrostrat.org/api/v2\";\n\n return h(\n APIProvider,\n {\n baseURL,\n unwrapResponse: (res) => res.success.data,\n },\n children,\n );\n}\n\nexport function MacrostratColumnProvider(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */\n\n const { axisType } = useMacrostratColumnData();\n const { units, domain, pixelScale, scale, children } = props;\n return h(\n ColumnProvider,\n {\n axisType,\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n scale,\n },\n children,\n );\n}\n\n/** This is now a legacy provider */\nexport function LithologiesProvider({ children }) {\n useEffect(() => {\n console.warn(\n \"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\",\n );\n }, []);\n return children;\n}\n\nexport function useLithologies() {\n const getLithologies = useMacrostratStore((s) => s.getLithologies);\n const lithologies = useMacrostratStore((s) => s.lithologies);\n useEffect(() => {\n if (lithologies == null) getLithologies();\n }, [lithologies, getLithologies]);\n return lithologies;\n}\n\nexport function useEnvironments() {\n const getEnvironments = useMacrostratStore((s) => s.getEnvironments);\n const environments = useMacrostratStore((s) => s.environments);\n useEffect(() => {\n if (environments == null) getEnvironments();\n }, [environments, getEnvironments]);\n return environments;\n}\n"],"names":["$fUENy$crossfetch","useContext","$fUENy$useContext","useEffect","$fUENy$useEffect","useMemo","$fUENy$useMemo","useState","$fUENy$useState","createContext","$fUENy$createContext","$fUENy$macrostrathyper","create","$fUENy$create","useStore","$fUENy$useStore","APIProvider","$fUENy$APIProvider","ColumnProvider","$fUENy$ColumnProvider","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$8750144f23b92eb9$exports","$8750144f23b92eb9$export$fb98d5bae3a6800","$8750144f23b92eb9$export$33b1392d23dde04","$8750144f23b92eb9$export$89dd4e5ae4a82373","$8750144f23b92eb9$export$81eaae0b474404fd","$8750144f23b92eb9$export$b9c9fc603d74a555","$8750144f23b92eb9$export$690613f93cdc5576","$8750144f23b92eb9$export$3098013bc6cc316d","$8750144f23b92eb9$export$9e42f9b6e0d67c7d","$8750144f23b92eb9$export$8492a5cae82b6a70","$8750144f23b92eb9$export$4d18a90c945d129f","$8750144f23b92eb9$export$c6b216bf4c71b61f","$Piirt","$wtIgl","$8750144f23b92eb9$var$createMacrostratStore","baseURL","inFlightRequests","Set","fetch","url","options","url1","has","add","res","delete","lithologies","getLithologies","ids","lithMap","data","fetchLithologies","Map","map","d","lith_id","values","intervals","getIntervals","timescaleID","_intervals","Array","from","some","timescale_id","fetchIntervals","intervalMap","int_id","filter","environments","getEnvironments","envMap","fetchEnvironments","environ_id","columnFootprints","getColumns","projectID","inProcess","key","footprints","statusCode","_inProcess","push","columns","fetchAllColumns","project_id","columnFootprints2","refs","getRefs","missing","length","fetchRefs","ref_id","stratNames","getStratNames","nameMap","stratNamesAlreadyLoaded","stratNamesToLoad","fetchStratNames","strat_name_id","selector","ctx","$8750144f23b92eb9$var$MacrostratDataProviderContext","defaultURL","getState","$8750144f23b92eb9$var$dataTypeMapping","store","strat_names","dataType","operator","state","columnsMap","colData","features","properties","status","args","value","setValue","then","console","error","props","children","Provider","useDev","unwrapResponse","success","axisType","useMacrostratColumnData","units","domain","pixelScale","scale","divisions","range","pixelsPerMeter","warn","useMacrostratStore","useMacrostratBaseURL","useMacrostratDefs","useMacrostratColumns","useMacrostratData","MacrostratDataProvider","MacrostratAPIProvider","MacrostratColumnProvider","LithologiesProvider","useLithologies","useEnvironments"],"version":3,"file":"column-views.6099a3a9.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./column-views.588b02a1.js";import"./column-views.db4ccacc.js";import"./column-views.6bba8c57.js";import"./column-views.f0f5cefd.js";import"./column-views.6099a3a9.js";import"./column-views.e7e26765.js";import"./column-views.e6720522.js";import e from"@macrostrat/hyper";import{LithologyColumn as o,useColumnLayout as n,useGeologicPattern as t}from"@macrostrat/column-components";import{useInDarkMode as i}from"@macrostrat/ui-components";import{useMemo as r}from"react";function a(e,o){return Object.keys(o).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return o[n]}})}),e}function d(e,o,n,t){Object.defineProperty(e,o,{get:n,set:t,enumerable:!0,configurable:!0})}var l=globalThis,s={},c={},u=l.parcelRequirea149;null==u&&((u=function(e){if(e in s)return s[e].exports;if(e in c){var o=c[e];delete c[e];var n={id:e,exports:{}};return s[e]=n,o.call(n.exports,n,n.exports),n.exports}var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}).register=function(e,o){c[e]=o},l.parcelRequirea149=u),u.register;var m={};d(m,"UnitsColumn",()=>x),d(m,"SimpleUnitsColumn",()=>g),d(m,"BasicUnitComponent",()=>_),d(m,"UnitComponent",()=>h),d(m,"useUnitColor",()=>w),d(m,"ColoredUnitComponent",()=>E),d(m,"useUnitColorByEnvironment",()=>H),d(m,"EnvironmentColoredUnitComponent",()=>y);var f=u("jiUaC"),p=u("1n4Pb"),b=u("bfmPX"),$=u("4Abge"),C=u("lgTAP"),v=u("5VyZI"),U=u("lI6Sf");function x({width:n=100}){return e(o,{width:n},e(p.UnitBoxes))}function g(o){let{columnWidth:n,width:t,gutterWidth:i=0,labelOffset:r=30}=o;return e([e(x,{width:n}),e(f.UnitNamesColumn,{transform:`translate(${n+i})`,paddingLeft:r,width:t-n-i})])}function _({division:o,...n}){return e(h,{division:o,...n,backgroundColor:o.color,patternID:o.patternID})}function h({division:o,nColumns:t=2,...i}){let r=i.width??n()?.width,a=0==(o.overlappingUnits?.length??0)?1:t,d=(o.column??0)%a;return e($.TrackedLabeledUnit,{division:o,...i,width:r/a,x:d*r/a})}function w(e,o={}){let n=(0,C.useLithologies)(),t=i(),{asBackground:a=!0}=o;return r(()=>null==e||null==n?null:(0,b.getMixedUnitColor)(e,n,t,a),[e?.unit_id,n,t,a])}function E(o){let n=w(o.division);return e(h,{fill:t(r(()=>(0,v.resolveID)(o.division),[o.division?.unit_id])),backgroundColor:n,...o})}function H(e,o={}){let n=(0,C.useEnvironments)(),t=(0,C.useLithologies)(),a=i(),{asBackground:d=!0}=o;return r(()=>{if(null==e||null==n)return null;let o=(0,b.getMixedUnitColor)(e,n,a,d,{key:"environ",id_key:"environ_id"});return null!=o?o:(0,b.getMixedUnitColor)(e,t,a,d)},[e?.unit_id,n,t,a,d])}function y(o){let n=H(o.division);return e(h,{fill:t(r(()=>(0,v.resolveID)(o.division),[o.division?.unit_id])),backgroundColor:n,...o})}a(m,b),a(m,$),a(m,U);export{x as UnitsColumn,g as SimpleUnitsColumn,_ as BasicUnitComponent,h as UnitComponent,w as useUnitColor,E as ColoredUnitComponent,H as useUnitColorByEnvironment,y as EnvironmentColoredUnitComponent,$0557c7dbdd54c055$export$175d3e927f1a9860 as getMixedUnitColor,$6b7af672ec278734$export$e4e89ab6c86ac513 as LabelTrackerProvider,$6b7af672ec278734$export$f613830566442374 as TrackedLabeledUnit,$6b7af672ec278734$export$1dfa200d57964eee as CompositeUnitComponent,$6b7af672ec278734$export$a6684360fef0406e as CompositeUnitsColumn,$6b7af672ec278734$export$d8c3f2fdd653a082 as AnnotatedUnitsColumn,$6b7af672ec278734$export$13984e34afdbb040 as SectionLabelsColumn,$6b7af672ec278734$export$6cc7a9df4edde18 as ColumnNotesProvider};
|
|
2
|
+
//# sourceMappingURL=column-views.6919fd2a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,mB,C,C,mB,C,C,sB,C,K,+B,A,Q,iB,C,K,2B,A,Q,W,C,K,O,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,c,I,G,E,E,oB,I,G,E,E,qB,I,G,E,E,gB,I,G,E,E,e,I,G,E,E,uB,I,G,E,E,4B,I,G,E,E,kC,I,G,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCqBO,SAAS,EAAY,CAAA,MAAE,EAAQ,GAAA,CAAK,EAIzC,OAAO,AAAA,EAAE,EAAiB,CAAE,MAAA,CAAM,EAAG,AAAA,EAAE,EAAA,SAAQ,EACjD,CAEO,SAAS,EAAkB,CAA0B,EAK1D,GAAM,CAAA,YAAE,CAAW,CAAA,MAAE,CAAK,CAAA,YAAE,EAAc,CAAA,CAAA,YAAG,EAAc,EAAA,CAAI,CAAG,EAElE,OAAO,AAAA,EAAE,CACP,AAAA,EAAE,EAAa,CACb,MAAO,CACT,GACA,AAAA,EAAE,EAAA,eAAc,CAAG,CACjB,UAAW,CAAC,UAAU,EAAE,EAAc,EAAY,CAAC,CAAC,CACpD,YAAa,EACb,MAAO,EAAQ,EAAc,CAC/B,GACD,CACH,CAEO,SAAS,EAAmB,CAAA,SAAE,CAAQ,CAAE,GAAG,EAAM,EAGtD,OAAO,AAAA,EAAE,EAAe,CACtB,SAAA,EACA,GAAG,CAAI,CACP,gBAAiB,EAAS,KAAK,CAC/B,UAAW,EAAS,SAAS,AAC/B,EACF,CAEO,SAAS,EAAc,CAAA,SAAE,CAAQ,CAAA,SAAE,EAAW,CAAA,CAAG,GAAG,EAAM,EAC/D,IAAM,EAAQ,EAAK,KAAK,EAAI,AAAA,KAAmB,MAGzC,EAAY,AAAqB,GADb,CAAA,EAAS,gBAAgB,EAAE,QAAU,CAAA,EACpB,EAAI,EACzC,EAAW,AAAC,CAAA,EAAS,MAAM,EAAI,CAAA,EAAK,EAI1C,OAAO,AAAA,EAAE,EAAA,kBAAiB,CAAG,CAC3B,SAAA,EACA,GAAG,CAAI,CACP,MANmB,EAAQ,EAO3B,EANS,EAAW,EAAS,CAO/B,EACF,CAMO,SAAS,EAAa,CAAI,CAAE,EAAyB,CAAC,CAAC,EAE5D,IAAM,EAAU,AAAA,CAAA,EAAA,EAAA,cAAa,AAAb,IACV,EAAa,AAAA,IACb,CAAA,aAAE,EAAe,CAAA,CAAA,CAAM,CAAG,EAEhC,OAAO,AAAA,EAAQ,IACb,AAAI,AAAQ,MAAR,GAAgB,AAAW,MAAX,EAAwB,KACrC,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,EAAM,EAAS,EAAY,GACnD,CAAC,GAAM,QAAS,EAAS,EAAY,EAAa,CACvD,CAEO,SAAS,EAAqB,CAAK,EAGxC,IAAM,EAAkB,EAAa,EAAM,QAAQ,EAQnD,OAAO,AAAA,EAAE,EAAe,CACtB,KAHW,AAAA,EAJK,AAAA,EAAQ,IACjB,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EAAM,QAAQ,EAC9B,CAAC,EAAM,QAAQ,EAAE,QAAQ,GAM1B,gBAAA,EACA,GAAG,CAAK,AACV,EACF,CAEO,SAAS,EACd,CAAI,CACJ,EAAyB,CAAC,CAAC,EAG3B,IAAM,EAAiB,AAAA,CAAA,EAAA,EAAA,eAAc,AAAd,IACjB,EAAU,AAAA,CAAA,EAAA,EAAA,cAAa,AAAb,IACV,EAAa,AAAA,IACb,CAAA,aAAE,EAAe,CAAA,CAAA,CAAM,CAAG,EAEhC,OAAO,AAAA,EAAQ,KACb,GAAI,AAAQ,MAAR,GAAgB,AAAkB,MAAlB,EAAwB,OAAO,KACnD,IAAI,EAAI,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,EAAM,EAAgB,EAAY,EAAc,CACxE,IAAK,UACL,OAAQ,YACV,UACA,AAAI,AAAK,MAAL,EACK,EAGF,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,EAAM,EAAS,EAAY,EACtD,EAAG,CAAC,GAAM,QAAS,EAAgB,EAAS,EAAY,EAAa,CACvE,CAEO,SAAS,EAAgC,CAAK,EAGnD,IAAM,EAAkB,EAA0B,EAAM,QAAQ,EAQhE,OAAO,AAAA,EAAE,EAAe,CACtB,KAHW,AAAA,EAJK,AAAA,EAAQ,IACjB,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EAAM,QAAQ,EAC9B,CAAC,EAAM,QAAQ,EAAE,QAAQ,GAM1B,gBAAA,EACA,GAAG,CAAK,AACV,EACF,C,E,E,G,E,E,G,E,E,U,K,W,C,K,iB,C,K,kB,C,K,a,C,K,Y,C,K,oB,C,K,yB,C,K,+B,C,6C,iB,C,6C,oB,C,6C,kB,C,6C,sB,C,6C,oB,C,6C,oB,C,6C,mB,C,4C,mB","sources":["<anon>","packages/column-views/src/units/index.ts"],"sourcesContent":["import \"./column-views.588b02a1.js\";\nimport \"./column-views.db4ccacc.js\";\nimport \"./column-views.6bba8c57.js\";\nimport \"./column-views.f0f5cefd.js\";\nimport \"./column-views.6099a3a9.js\";\nimport \"./column-views.e7e26765.js\";\nimport \"./column-views.e6720522.js\";\nimport $6u7Ut$macrostrathyper from \"@macrostrat/hyper\";\nimport {LithologyColumn as $6u7Ut$LithologyColumn, useColumnLayout as $6u7Ut$useColumnLayout, useGeologicPattern as $6u7Ut$useGeologicPattern} from \"@macrostrat/column-components\";\nimport {useInDarkMode as $6u7Ut$useInDarkMode} from \"@macrostrat/ui-components\";\nimport {useMemo as $6u7Ut$useMemo} from \"react\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $1da06db49d2262cb$exports = {};\n\n$parcel$export($1da06db49d2262cb$exports, \"UnitsColumn\", () => $1da06db49d2262cb$export$3750278673318c9a);\n$parcel$export($1da06db49d2262cb$exports, \"SimpleUnitsColumn\", () => $1da06db49d2262cb$export$2006342ddaa547c6);\n$parcel$export($1da06db49d2262cb$exports, \"BasicUnitComponent\", () => $1da06db49d2262cb$export$600691a8e9d13a7);\n$parcel$export($1da06db49d2262cb$exports, \"UnitComponent\", () => $1da06db49d2262cb$export$48a4cacf2b7a4441);\n$parcel$export($1da06db49d2262cb$exports, \"useUnitColor\", () => $1da06db49d2262cb$export$62c7735c72801c19);\n$parcel$export($1da06db49d2262cb$exports, \"ColoredUnitComponent\", () => $1da06db49d2262cb$export$6012fd1584b5d0c0);\n$parcel$export($1da06db49d2262cb$exports, \"useUnitColorByEnvironment\", () => $1da06db49d2262cb$export$4830e703a903113);\n$parcel$export($1da06db49d2262cb$exports, \"EnvironmentColoredUnitComponent\", () => $1da06db49d2262cb$export$c2fe8a14da82d570);\n\n\n\nvar $jiUaC = parcelRequire(\"jiUaC\");\n\nvar $1n4Pb = parcelRequire(\"1n4Pb\");\n\n\nvar $bfmPX = parcelRequire(\"bfmPX\");\n\nvar $4Abge = parcelRequire(\"4Abge\");\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\n\n\nvar $5VyZI = parcelRequire(\"5VyZI\");\n\nvar $lI6Sf = parcelRequire(\"lI6Sf\");\nfunction $1da06db49d2262cb$export$3750278673318c9a({ width: width = 100 }) {\n /*\n A column showing units with USGS color fill\n */ return (0, $6u7Ut$macrostrathyper)((0, $6u7Ut$LithologyColumn), {\n width: width\n }, (0, $6u7Ut$macrostrathyper)((0, $1n4Pb.UnitBoxes)));\n}\nfunction $1da06db49d2262cb$export$2006342ddaa547c6(props) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */ const { columnWidth: columnWidth, width: width, gutterWidth: gutterWidth = 0, labelOffset: labelOffset = 30 } = props;\n return (0, $6u7Ut$macrostrathyper)([\n (0, $6u7Ut$macrostrathyper)($1da06db49d2262cb$export$3750278673318c9a, {\n width: columnWidth\n }),\n (0, $6u7Ut$macrostrathyper)((0, $jiUaC.UnitNamesColumn), {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth\n })\n ]);\n}\nfunction $1da06db49d2262cb$export$600691a8e9d13a7({ division: division, ...rest }) {\n /** A unit that allows directly setting colors and patterns. */ return (0, $6u7Ut$macrostrathyper)($1da06db49d2262cb$export$48a4cacf2b7a4441, {\n division: division,\n ...rest,\n backgroundColor: division.color,\n patternID: division.patternID\n });\n}\nfunction $1da06db49d2262cb$export$48a4cacf2b7a4441({ division: division, nColumns: nColumns = 2, ...rest }) {\n const width = rest.width ?? (0, $6u7Ut$useColumnLayout)()?.width;\n const nOverlappingUnits = division.overlappingUnits?.length ?? 0;\n const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;\n const columnIx = (division.column ?? 0) % _nColumns;\n const reducedWidth = width / _nColumns;\n const x = columnIx * width / _nColumns;\n return (0, $6u7Ut$macrostrathyper)((0, $4Abge.TrackedLabeledUnit), {\n division: division,\n ...rest,\n width: reducedWidth,\n x: x\n });\n}\nfunction $1da06db49d2262cb$export$62c7735c72801c19(unit, opts = {}) {\n /** Get the color for a unit based on its lithology */ const lithMap = (0, $lgTAP.useLithologies)();\n const inDarkMode = (0, $6u7Ut$useInDarkMode)();\n const { asBackground: asBackground = true } = opts;\n return (0, $6u7Ut$useMemo)(()=>{\n if (unit == null || lithMap == null) return null;\n return (0, $bfmPX.getMixedUnitColor)(unit, lithMap, inDarkMode, asBackground);\n }, [\n unit?.unit_id,\n lithMap,\n inDarkMode,\n asBackground\n ]);\n}\nfunction $1da06db49d2262cb$export$6012fd1584b5d0c0(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */ const backgroundColor = $1da06db49d2262cb$export$62c7735c72801c19(props.division);\n const patternID = (0, $6u7Ut$useMemo)(()=>{\n return (0, $5VyZI.resolveID)(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [\n props.division?.unit_id\n ]);\n const fill = (0, $6u7Ut$useGeologicPattern)(patternID);\n return (0, $6u7Ut$macrostrathyper)($1da06db49d2262cb$export$48a4cacf2b7a4441, {\n fill: fill,\n backgroundColor: backgroundColor,\n ...props\n });\n}\nfunction $1da06db49d2262cb$export$4830e703a903113(unit, opts = {}) {\n /** Get the color for a unit based on its lithology */ const environmentMap = (0, $lgTAP.useEnvironments)();\n const lithMap = (0, $lgTAP.useLithologies)();\n const inDarkMode = (0, $6u7Ut$useInDarkMode)();\n const { asBackground: asBackground = true } = opts;\n return (0, $6u7Ut$useMemo)(()=>{\n if (unit == null || environmentMap == null) return null;\n let c = (0, $bfmPX.getMixedUnitColor)(unit, environmentMap, inDarkMode, asBackground, {\n key: \"environ\",\n id_key: \"environ_id\"\n });\n if (c != null) return c;\n // Fallback to lithology color if no environment color is found\n return (0, $bfmPX.getMixedUnitColor)(unit, lithMap, inDarkMode, asBackground);\n }, [\n unit?.unit_id,\n environmentMap,\n lithMap,\n inDarkMode,\n asBackground\n ]);\n}\nfunction $1da06db49d2262cb$export$c2fe8a14da82d570(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */ const backgroundColor = $1da06db49d2262cb$export$4830e703a903113(props.division);\n const patternID = (0, $6u7Ut$useMemo)(()=>{\n return (0, $5VyZI.resolveID)(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [\n props.division?.unit_id\n ]);\n const fill = (0, $6u7Ut$useGeologicPattern)(patternID);\n return (0, $6u7Ut$macrostrathyper)($1da06db49d2262cb$export$48a4cacf2b7a4441, {\n fill: fill,\n backgroundColor: backgroundColor,\n ...props\n });\n}\nfunction $1da06db49d2262cb$var$getPatternID(liths, lithMap) {\n if (lithMap == null || liths == null || liths.length == 0) return null;\n const patternIDs = new Set();\n for (const lith of liths){\n const lithData = lithMap.get(lith.lith_id);\n if (lithData) patternIDs.add(`${lithData.fill}`);\n }\n let id = patternIDs.values()[0];\n if (id == \"0\") return null;\n return id;\n}\n$parcel$exportWildcard($1da06db49d2262cb$exports, $bfmPX);\n$parcel$exportWildcard($1da06db49d2262cb$exports, $4Abge);\n$parcel$exportWildcard($1da06db49d2262cb$exports, $lI6Sf);\n\n\nexport {$1da06db49d2262cb$export$3750278673318c9a as UnitsColumn, $1da06db49d2262cb$export$2006342ddaa547c6 as SimpleUnitsColumn, $1da06db49d2262cb$export$600691a8e9d13a7 as BasicUnitComponent, $1da06db49d2262cb$export$48a4cacf2b7a4441 as UnitComponent, $1da06db49d2262cb$export$62c7735c72801c19 as useUnitColor, $1da06db49d2262cb$export$6012fd1584b5d0c0 as ColoredUnitComponent, $1da06db49d2262cb$export$4830e703a903113 as useUnitColorByEnvironment, $1da06db49d2262cb$export$c2fe8a14da82d570 as EnvironmentColoredUnitComponent, $0557c7dbdd54c055$export$175d3e927f1a9860 as getMixedUnitColor, $6b7af672ec278734$export$e4e89ab6c86ac513 as LabelTrackerProvider, $6b7af672ec278734$export$f613830566442374 as TrackedLabeledUnit, $6b7af672ec278734$export$1dfa200d57964eee as CompositeUnitComponent, $6b7af672ec278734$export$a6684360fef0406e as CompositeUnitsColumn, $6b7af672ec278734$export$d8c3f2fdd653a082 as AnnotatedUnitsColumn, $6b7af672ec278734$export$13984e34afdbb040 as SectionLabelsColumn, $6b7af672ec278734$export$6cc7a9df4edde18 as ColumnNotesProvider};\n//# sourceMappingURL=column-views.6919fd2a.js.map\n","import h from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { UnitNamesColumn } from \"./names\";\nimport { ICompositeUnitProps } from \"./composite\";\nimport { UnitBoxes, UnitProps } from \"./boxes\";\nimport { useColumnLayout } from \"@macrostrat/column-components\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { TrackedLabeledUnit } from \"./composite\";\nimport { useEnvironments, useLithologies } from \"../data-provider\";\nimport { useMemo } from \"react\";\nimport { resolveID } from \"./resolvers\";\nimport { Lithology } from \"@macrostrat/api-types\";\n\nexport * from \"./composite\";\nexport * from \"./types\";\nexport * from \"./colors\";\n\nexport function UnitsColumn({ width = 100 }) {\n /*\n A column showing units with USGS color fill\n */\n return h(LithologyColumn, { width }, h(UnitBoxes));\n}\n\nexport function SimpleUnitsColumn(props: ICompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;\n\n return h([\n h(UnitsColumn, {\n width: columnWidth,\n }),\n h(UnitNamesColumn, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n }),\n ]);\n}\n\nexport function BasicUnitComponent({ division, ...rest }) {\n /** A unit that allows directly setting colors and patterns. */\n\n return h(UnitComponent, {\n division,\n ...rest,\n backgroundColor: division.color,\n patternID: division.patternID,\n });\n}\n\nexport function UnitComponent({ division, nColumns = 2, ...rest }) {\n const width = rest.width ?? useColumnLayout()?.width;\n\n const nOverlappingUnits = division.overlappingUnits?.length ?? 0;\n const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;\n const columnIx = (division.column ?? 0) % _nColumns;\n const reducedWidth = width / _nColumns;\n const x = (columnIx * width) / _nColumns;\n\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: reducedWidth,\n x,\n });\n}\n\ninterface UnitColorOptions {\n asBackground?: boolean;\n}\n\nexport function useUnitColor(unit, opts: UnitColorOptions = {}): string | null {\n /** Get the color for a unit based on its lithology */\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || lithMap == null) return null;\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);\n}\n\nexport function ColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColor(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nexport function useUnitColorByEnvironment(\n unit,\n opts: UnitColorOptions = {},\n): string | null {\n /** Get the color for a unit based on its lithology */\n const environmentMap = useEnvironments();\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || environmentMap == null) return null;\n let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {\n key: \"environ\",\n id_key: \"environ_id\",\n });\n if (c != null) {\n return c;\n }\n // Fallback to lithology color if no environment color is found\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);\n}\n\nexport function EnvironmentColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColorByEnvironment(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nfunction getPatternID(\n liths: Array<Lithology>,\n lithMap: Map<number, Lithology>,\n): string | null {\n if (lithMap == null || liths == null || liths.length == 0) {\n return null;\n }\n const patternIDs = new Set<string>();\n for (const lith of liths) {\n const lithData = lithMap.get(lith.lith_id);\n if (lithData) {\n patternIDs.add(`${lithData.fill}`);\n }\n }\n let id = patternIDs.values()[0];\n if (id == \"0\") return null;\n return id;\n}\n"],"names":["$6u7Ut$macrostrathyper","LithologyColumn","$6u7Ut$LithologyColumn","useColumnLayout","$6u7Ut$useColumnLayout","useGeologicPattern","$6u7Ut$useGeologicPattern","useInDarkMode","$6u7Ut$useInDarkMode","useMemo","$6u7Ut$useMemo","$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$export","e","n","v","s","set","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$1da06db49d2262cb$exports","$1da06db49d2262cb$export$3750278673318c9a","$1da06db49d2262cb$export$2006342ddaa547c6","$1da06db49d2262cb$export$600691a8e9d13a7","$1da06db49d2262cb$export$48a4cacf2b7a4441","$1da06db49d2262cb$export$62c7735c72801c19","$1da06db49d2262cb$export$6012fd1584b5d0c0","$1da06db49d2262cb$export$4830e703a903113","$1da06db49d2262cb$export$c2fe8a14da82d570","$jiUaC","$1n4Pb","$bfmPX","$4Abge","$lgTAP","$5VyZI","$lI6Sf","width","UnitBoxes","props","columnWidth","gutterWidth","labelOffset","UnitNamesColumn","transform","paddingLeft","division","rest","backgroundColor","color","patternID","nColumns","_nColumns","nOverlappingUnits","overlappingUnits","length","columnIx","column","TrackedLabeledUnit","x","unit","opts","lithMap","useLithologies","inDarkMode","asBackground","getMixedUnitColor","unit_id","fill","resolveID","environmentMap","useEnvironments","c","id_key","UnitsColumn","SimpleUnitsColumn","BasicUnitComponent","UnitComponent","useUnitColor","ColoredUnitComponent","useUnitColorByEnvironment","EnvironmentColoredUnitComponent","$0557c7dbdd54c055$export$175d3e927f1a9860","$6b7af672ec278734$export$e4e89ab6c86ac513","LabelTrackerProvider","$6b7af672ec278734$export$f613830566442374","$6b7af672ec278734$export$1dfa200d57964eee","CompositeUnitComponent","$6b7af672ec278734$export$a6684360fef0406e","CompositeUnitsColumn","$6b7af672ec278734$export$d8c3f2fdd653a082","AnnotatedUnitsColumn","$6b7af672ec278734$export$13984e34afdbb040","SectionLabelsColumn","$6b7af672ec278734$export$6cc7a9df4edde18","ColumnNotesProvider"],"version":3,"file":"column-views.6919fd2a.js.map","sourceRoot":"../../../../"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./column-views.
|
|
2
|
-
//# sourceMappingURL=column-views.
|
|
1
|
+
import"./column-views.32344397.js";import"./column-views.7d45bbeb.js";import{useMemo as e,useCallback as r,useEffect as t}from"react";import{setGeoJSON as n,buildGeoJSONSource as l}from"@macrostrat/mapbox-utils";import{useMapRef as o,useMapStyleOperator as i}from"@macrostrat/mapbox-react";var a=globalThis,u={},s={},c=a.parcelRequirea149;null==c&&((c=function(e){if(e in u)return u[e].exports;if(e in s){var r=s[e];delete s[e];var t={id:e,exports:{}};return u[e]=t,r.call(t.exports,t,t.exports),t.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,r){s[e]=r},a.parcelRequirea149=c),c.register;var p=c("c4zVj"),d=c("iVYEX");function f(l){let{showTriangulation:a=!1}=l,u=(0,p.useColumnNavigationStore)(e=>e.columns),s=(0,p.useColumnNavigationStore)(e=>e.selectedColumn),c=(0,p.useColumnNavigationStore)(e=>e.selectColumn),f=e(()=>u&&0!=u.length?(0,d.buildTriangulation)(u):null,[u]),m=o().current,v=e(()=>{if(null==u||null==f||null==m)return null;let e=u.findIndex(e=>e.properties.col_id==s),r=f.tri.delaunay.neighbors[e];return(0,d.buildKeyMapping)(r,f.centroids,e,e=>{let r=m.project(e);return[r.x,r.y]})},[s,u,f,m]),b=r(e=>{if(null==v)return;let r=v[e.which];if(null!=r)return e.preventDefault(),e.stopPropagation(),c(u[r].id),!1},[v,c]);return t(()=>{if(null==m)return;let e=m.getCanvas();return e.addEventListener("keydown",b),()=>{e.removeEventListener("keydown",b)}},[m,b]),i(e=>{if(null==f||!a)return;let{features:r}=f.tri.links();n(e,"column-links",{type:"FeatureCollection",features:r})},[f,a]),null}function m(e="purple"){return{sources:{"column-links":l()},layers:[{id:"column-links",type:"line",source:"column-links",paint:{"line-color":e,"line-width":1.5}},{id:"column-centers",type:"circle",source:"column-links",paint:{"circle-radius":2,"circle-color":e}}]}}export{f as ColumnKeyboardNavigation,m as buildKeyboardNavigationStyle};
|
|
2
|
+
//# sourceMappingURL=column-views.6b8424fd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["<anon>","packages/column-views/src/maps/column-navigation/mapbox/keyboard-navigation.ts"],"sourcesContent":["import \"./column-views.2ca669bc.js\";\nimport \"./column-views.7d45bbeb.js\";\nimport {useMemo as $6HCEc$useMemo, useCallback as $6HCEc$useCallback, useEffect as $6HCEc$useEffect} from \"react\";\nimport {setGeoJSON as $6HCEc$setGeoJSON, buildGeoJSONSource as $6HCEc$buildGeoJSONSource} from \"@macrostrat/mapbox-utils\";\nimport {useMapRef as $6HCEc$useMapRef, useMapStyleOperator as $6HCEc$useMapStyleOperator} from \"@macrostrat/mapbox-react\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\nvar $c4zVj = parcelRequire(\"c4zVj\");\n\nvar $iVYEX = parcelRequire(\"iVYEX\");\nfunction $ee9901df79ff88e8$export$8c41dd563753848(props) {\n /** Keyboard navigation of columns using a Delaunay triangulation */ const { showTriangulation: showTriangulation = false } = props;\n const columns = (0, $c4zVj.useColumnNavigationStore)((state)=>state.columns);\n const col_id = (0, $c4zVj.useColumnNavigationStore)((state)=>state.selectedColumn);\n const selectColumn = (0, $c4zVj.useColumnNavigationStore)((state)=>state.selectColumn);\n const voronoi = (0, $6HCEc$useMemo)(()=>{\n if (!columns || columns.length == 0) return null;\n return (0, $iVYEX.buildTriangulation)(columns);\n }, [\n columns\n ]);\n const mapRef = (0, $6HCEc$useMapRef)();\n const map = mapRef.current;\n const keyMapping = (0, $6HCEc$useMemo)(()=>{\n if (columns == null || voronoi == null || map == null) return null;\n const projection = (d)=>{\n const pt = map.project(d);\n return [\n pt.x,\n pt.y\n ];\n };\n const currentIndex = columns.findIndex((d)=>d.properties.col_id == col_id);\n const neighbors = voronoi.tri.delaunay.neighbors[currentIndex];\n return (0, $iVYEX.buildKeyMapping)(neighbors, voronoi.centroids, currentIndex, projection);\n }, [\n col_id,\n columns,\n voronoi,\n map\n ]);\n const onKeyDown = (0, $6HCEc$useCallback)((event)=>{\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,\n selectColumn\n ]);\n (0, $6HCEc$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 }, [\n map,\n onKeyDown\n ]);\n (0, $6HCEc$useMapStyleOperator)((map)=>{\n if (voronoi == null || !showTriangulation) return;\n const { features: features } = voronoi.tri.links();\n (0, $6HCEc$setGeoJSON)(map, \"column-links\", {\n type: \"FeatureCollection\",\n features: features\n });\n }, [\n voronoi,\n showTriangulation\n ]);\n //if (neighbors == null) return null;\n //const neighborFeatures = neighbors.map((d) => features[d]);\n return null;\n}\nfunction $ee9901df79ff88e8$export$c613fba0aabeee13(color = \"purple\") {\n return {\n sources: {\n \"column-links\": (0, $6HCEc$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\n\nexport {$ee9901df79ff88e8$export$8c41dd563753848 as ColumnKeyboardNavigation, $ee9901df79ff88e8$export$c613fba0aabeee13 as buildKeyboardNavigationStyle};\n//# sourceMappingURL=column-views.45fab61b.js.map\n","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":["useMemo","$6HCEc$useMemo","useCallback","$6HCEc$useCallback","useEffect","$6HCEc$useEffect","setGeoJSON","$6HCEc$setGeoJSON","buildGeoJSONSource","$6HCEc$buildGeoJSONSource","useMapRef","$6HCEc$useMapRef","useMapStyleOperator","$6HCEc$useMapStyleOperator","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$c4zVj","$iVYEX","$ee9901df79ff88e8$export$8c41dd563753848","props","showTriangulation","columns","useColumnNavigationStore","state","col_id","selectedColumn","selectColumn","voronoi","length","buildTriangulation","map","mapRef","current","keyMapping","currentIndex","findIndex","d","properties","neighbors","tri","delaunay","buildKeyMapping","centroids","pt","project","x","y","onKeyDown","event","nextColumnIx","which","preventDefault","stopPropagation","canvas","getCanvas","addEventListener","removeEventListener","features","links","type","$ee9901df79ff88e8$export$c613fba0aabeee13","color","sources","layers","source","paint","ColumnKeyboardNavigation","buildKeyboardNavigationStyle"],"version":3,"file":"column-views.45fab61b.js.map","sourceRoot":"../../../../"}
|
|
1
|
+
{"mappings":"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","sources":["<anon>","packages/column-views/src/maps/column-navigation/mapbox/keyboard-navigation.ts"],"sourcesContent":["import \"./column-views.32344397.js\";\nimport \"./column-views.7d45bbeb.js\";\nimport {useMemo as $6HCEc$useMemo, useCallback as $6HCEc$useCallback, useEffect as $6HCEc$useEffect} from \"react\";\nimport {setGeoJSON as $6HCEc$setGeoJSON, buildGeoJSONSource as $6HCEc$buildGeoJSONSource} from \"@macrostrat/mapbox-utils\";\nimport {useMapRef as $6HCEc$useMapRef, useMapStyleOperator as $6HCEc$useMapStyleOperator} from \"@macrostrat/mapbox-react\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\nvar $c4zVj = parcelRequire(\"c4zVj\");\n\nvar $iVYEX = parcelRequire(\"iVYEX\");\nfunction $ee9901df79ff88e8$export$8c41dd563753848(props) {\n /** Keyboard navigation of columns using a Delaunay triangulation */ const { showTriangulation: showTriangulation = false } = props;\n const columns = (0, $c4zVj.useColumnNavigationStore)((state)=>state.columns);\n const col_id = (0, $c4zVj.useColumnNavigationStore)((state)=>state.selectedColumn);\n const selectColumn = (0, $c4zVj.useColumnNavigationStore)((state)=>state.selectColumn);\n const voronoi = (0, $6HCEc$useMemo)(()=>{\n if (!columns || columns.length == 0) return null;\n return (0, $iVYEX.buildTriangulation)(columns);\n }, [\n columns\n ]);\n const mapRef = (0, $6HCEc$useMapRef)();\n const map = mapRef.current;\n const keyMapping = (0, $6HCEc$useMemo)(()=>{\n if (columns == null || voronoi == null || map == null) return null;\n const projection = (d)=>{\n const pt = map.project(d);\n return [\n pt.x,\n pt.y\n ];\n };\n const currentIndex = columns.findIndex((d)=>d.properties.col_id == col_id);\n const neighbors = voronoi.tri.delaunay.neighbors[currentIndex];\n return (0, $iVYEX.buildKeyMapping)(neighbors, voronoi.centroids, currentIndex, projection);\n }, [\n col_id,\n columns,\n voronoi,\n map\n ]);\n const onKeyDown = (0, $6HCEc$useCallback)((event)=>{\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,\n selectColumn\n ]);\n (0, $6HCEc$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 }, [\n map,\n onKeyDown\n ]);\n (0, $6HCEc$useMapStyleOperator)((map)=>{\n if (voronoi == null || !showTriangulation) return;\n const { features: features } = voronoi.tri.links();\n (0, $6HCEc$setGeoJSON)(map, \"column-links\", {\n type: \"FeatureCollection\",\n features: features\n });\n }, [\n voronoi,\n showTriangulation\n ]);\n //if (neighbors == null) return null;\n //const neighborFeatures = neighbors.map((d) => features[d]);\n return null;\n}\nfunction $ee9901df79ff88e8$export$c613fba0aabeee13(color = \"purple\") {\n return {\n sources: {\n \"column-links\": (0, $6HCEc$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\n\nexport {$ee9901df79ff88e8$export$8c41dd563753848 as ColumnKeyboardNavigation, $ee9901df79ff88e8$export$c613fba0aabeee13 as buildKeyboardNavigationStyle};\n//# sourceMappingURL=column-views.6b8424fd.js.map\n","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":["useMemo","$6HCEc$useMemo","useCallback","$6HCEc$useCallback","useEffect","$6HCEc$useEffect","setGeoJSON","$6HCEc$setGeoJSON","buildGeoJSONSource","$6HCEc$buildGeoJSONSource","useMapRef","$6HCEc$useMapRef","useMapStyleOperator","$6HCEc$useMapStyleOperator","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$c4zVj","$iVYEX","$ee9901df79ff88e8$export$8c41dd563753848","props","showTriangulation","columns","useColumnNavigationStore","state","col_id","selectedColumn","selectColumn","voronoi","length","buildTriangulation","map","mapRef","current","keyMapping","currentIndex","findIndex","d","properties","neighbors","tri","delaunay","buildKeyMapping","centroids","pt","project","x","y","onKeyDown","event","nextColumnIx","which","preventDefault","stopPropagation","canvas","getCanvas","addEventListener","removeEventListener","features","links","type","$ee9901df79ff88e8$export$c613fba0aabeee13","color","sources","layers","source","paint","ColumnKeyboardNavigation","buildKeyboardNavigationStyle"],"version":3,"file":"column-views.6b8424fd.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{joinURL as t,addQueryString as e,useAPIResult as a}from"@macrostrat/ui-components";import n from"cross-fetch";import{feature as o}from"topojson-client";import{geoArea as r}from"d3-geo";function s(t,e,a,n){Object.defineProperty(t,e,{get:a,set:n,enumerable:!0,configurable:!0})}var i={};function l(t,e){return n("https://macrostrat.org/api/v2"+t,e)}async function c(a={}){let o,{apiBaseURL:s,projectID:i,format:l="topojson",statusCode:u,fetch:f=n}=a,m={format:l};null!=i&&(m={...m,project_id:i}),Array.isArray(u)?o=u.join(","):null!=u&&(o=u),m.statusCode=o,null==i&&(m={...m,all:!0});let p="/columns";null!=s&&(p=t(s,p)),p=e(p,m);let h=await f(p,{method:"GET",headers:{"Content-Type":"application/json"}});if(null==h)return null;let $=await h.json();return d[l]($).filter(t=>null!=t.geometry).map(t=>{if(1e-8>r(t.geometry)){let e=t.geometry.coordinates[0][0];t.geometry={type:"Point",coordinates:e}}return t}).map((t,e)=>({id:t.properties?.col_id,...t}))}function u({apiRoute:t="/columns",status_code:e,project_id:n,format:o="geojson"}){let r;null==e&&null==n&&(r=!0);let s=d[o];return a(t,{format:o,all:r,status_code:e,project_id:n},s)}function f(t){return t?.features}s(i,"fetchAllColumns",()=>c),s(i,"useColumnFeatures",()=>u),s(i,"fetchLithologies",()=>p),s(i,"fetchIntervals",()=>h),s(i,"fetchEnvironments",()=>$),s(i,"fetchRefs",()=>g),s(i,"fetchStratNames",()=>j),s(i,"fetchUnits",()=>y),s(i,"fetchColumnUnits",()=>w);let d={topojson:function(t){try{let{data:e}=t.success,{features:a}=o(e,e.objects.output);return a}catch(t){return console.error(t),[]}},geojson:function(t){return f(t?.success?.data)},geojson_bare:f};async function m(t){return null==t?null:(await t.json()).success.data}async function p(t=l){let e=await t("/defs/lithologies?all");return await m(e)}async function h(t,e=l){let a="/defs/intervals";null!=t?a+=`?timescale_id=${t}`:a+="?all";let n=await e(a);return await m(n)}async function $(t=l){let e=await t("/defs/environments?all");return await m(e)}async function g(t,e=l){let a="/defs/refs";if(0==t.length)return[];a+="?ref_id="+t.join(",");let n=await e(a);return await m(n)}async function j(t,e=l){let a="/defs/strat_names";if(0==t.length)return[];a+="?strat_name_id="+t.join(",");let n=await e(a);return await m(n)}async function y(t,e=l){let a=t.map(t=>w(t,e));return await Promise.all(a)}async function w(t,e=l){let a=new URLSearchParams;a.append("response","long"),a.append("col_id",t.toString());let n=await e("/units?"+a.toString()),o=await n.json();if(!o.success)throw Error("Failed to fetch column units");return{columnID:t,units:o.success.data}}export{c as fetchAllColumns,u as useColumnFeatures,p as fetchLithologies,h as fetchIntervals,$ as fetchEnvironments,g as fetchRefs,j as fetchStratNames,y as fetchUnits,w as fetchColumnUnits};
|
|
2
|
+
//# sourceMappingURL=column-views.7425d37b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["<anon>","packages/column-views/src/data-provider/fetch.ts"],"sourcesContent":["import {joinURL as $iGnPX$joinURL, addQueryString as $iGnPX$addQueryString, useAPIResult as $iGnPX$useAPIResult} from \"@macrostrat/ui-components\";\nimport $iGnPX$crossfetch from \"cross-fetch\";\nimport {feature as $iGnPX$feature} from \"topojson-client\";\nimport {geoArea as $iGnPX$geoArea} from \"d3-geo\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $482a09479937d1e2$exports = {};\n\n$parcel$export($482a09479937d1e2$exports, \"fetchAllColumns\", () => $482a09479937d1e2$export$45bd78cd093090fa);\n$parcel$export($482a09479937d1e2$exports, \"useColumnFeatures\", () => $482a09479937d1e2$export$e3270a4e30e40ff9);\n$parcel$export($482a09479937d1e2$exports, \"fetchLithologies\", () => $482a09479937d1e2$export$1aa679bd5e605f82);\n$parcel$export($482a09479937d1e2$exports, \"fetchIntervals\", () => $482a09479937d1e2$export$5d2ec2e733dfe6c7);\n$parcel$export($482a09479937d1e2$exports, \"fetchEnvironments\", () => $482a09479937d1e2$export$780b4b253712916c);\n$parcel$export($482a09479937d1e2$exports, \"fetchRefs\", () => $482a09479937d1e2$export$cd7bfa0860f58b96);\n$parcel$export($482a09479937d1e2$exports, \"fetchStratNames\", () => $482a09479937d1e2$export$8ea8f45a7ffe4183);\n$parcel$export($482a09479937d1e2$exports, \"fetchUnits\", () => $482a09479937d1e2$export$b97b9bdd6a521298);\n$parcel$export($482a09479937d1e2$exports, \"fetchColumnUnits\", () => $482a09479937d1e2$export$d3d8b0fabcc76c5d);\n\n\n\n\nfunction $482a09479937d1e2$var$defaultFetch(url, options) {\n const baseURL = \"https://macrostrat.org/api/v2\";\n return (0, $iGnPX$crossfetch)(baseURL + url, options);\n}\nasync function $482a09479937d1e2$export$45bd78cd093090fa(options = {}) {\n const { apiBaseURL: apiBaseURL, projectID: projectID, format: format = \"topojson\", statusCode: statusCode, fetch: fetch = (0, $iGnPX$crossfetch) } = options;\n let args = {\n format: format\n };\n if (projectID != null) args = {\n ...args,\n project_id: projectID\n };\n let _statusCode = undefined;\n if (Array.isArray(statusCode)) _statusCode = statusCode.join(\",\");\n else if (statusCode != null) _statusCode = statusCode;\n args.statusCode = _statusCode;\n if (projectID == null) args = {\n ...args,\n all: true\n };\n let url = \"/columns\";\n if (apiBaseURL != null) url = (0, $iGnPX$joinURL)(apiBaseURL, url);\n // Try with fetch\n url = (0, $iGnPX$addQueryString)(url, args);\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n if (res == null) return null;\n // Get JSON\n const data = await res.json();\n return $482a09479937d1e2$var$postProcessColumns($482a09479937d1e2$var$columnProcessors[format](data));\n}\nfunction $482a09479937d1e2$export$e3270a4e30e40ff9({ apiRoute: apiRoute = \"/columns\", status_code: status_code, project_id: project_id, format: format = \"geojson\" }) {\n let all = undefined;\n if (status_code == null && project_id == null) all = true;\n const processor = $482a09479937d1e2$var$columnProcessors[format];\n return (0, $iGnPX$useAPIResult)(apiRoute, {\n format: format,\n all: all,\n status_code: status_code,\n project_id: project_id\n }, processor);\n}\nfunction $482a09479937d1e2$var$processGeoJSON(res) {\n return $482a09479937d1e2$var$processGeoJSONBare(res?.success?.data);\n}\nfunction $482a09479937d1e2$var$processGeoJSONBare(res) {\n return res?.features;\n}\nfunction $482a09479937d1e2$var$processTopoJSON(res) {\n try {\n const { data: data } = res.success;\n const { features: f } = (0, $iGnPX$feature)(data, data.objects.output);\n return f;\n } catch (err) {\n console.error(err);\n return [];\n }\n}\nfunction $482a09479937d1e2$var$postProcessColumns(columns) {\n return $482a09479937d1e2$var$promoteColumnIDs($482a09479937d1e2$var$convertSmallAreasToPoints($482a09479937d1e2$var$removeFeaturesWithoutGeometry(columns)));\n}\nfunction $482a09479937d1e2$var$promoteColumnIDs(features) {\n return features.map((f, i)=>{\n return {\n id: f.properties?.col_id,\n ...f\n };\n });\n}\nfunction $482a09479937d1e2$var$removeFeaturesWithoutGeometry(features) {\n return features.filter((f)=>f.geometry != null);\n}\nfunction $482a09479937d1e2$var$convertSmallAreasToPoints(features) {\n return features.map((f)=>{\n // GeoArea takes a long time to run. We are really more worried about points that are zero-area\n if ((0, $iGnPX$geoArea)(f.geometry) < 1e-8) {\n const centroid = f.geometry.coordinates[0][0];\n f.geometry = {\n type: \"Point\",\n coordinates: centroid\n };\n }\n return f;\n });\n}\nconst $482a09479937d1e2$var$columnProcessors = {\n topojson: $482a09479937d1e2$var$processTopoJSON,\n geojson: $482a09479937d1e2$var$processGeoJSON,\n geojson_bare: $482a09479937d1e2$var$processGeoJSONBare\n};\nasync function $482a09479937d1e2$var$unwrapResponse(res) {\n if (res == null) return null;\n const resData = await res.json();\n return resData[\"success\"][\"data\"];\n}\nasync function $482a09479937d1e2$export$1aa679bd5e605f82(fetch = $482a09479937d1e2$var$defaultFetch) {\n const res = await fetch(\"/defs/lithologies?all\");\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$5d2ec2e733dfe6c7(timescaleID, fetch = $482a09479937d1e2$var$defaultFetch) {\n let url = `/defs/intervals`;\n if (timescaleID != null) url += `?timescale_id=${timescaleID}`;\n else url += \"?all\";\n const res = await fetch(url);\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$780b4b253712916c(fetch = $482a09479937d1e2$var$defaultFetch) {\n const res = await fetch(\"/defs/environments?all\");\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$cd7bfa0860f58b96(refs, fetch = $482a09479937d1e2$var$defaultFetch) {\n let url = `/defs/refs`;\n if (refs.length == 0) return [];\n url += \"?ref_id=\" + refs.join(\",\");\n const res = await fetch(url);\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$8ea8f45a7ffe4183(names, fetch = $482a09479937d1e2$var$defaultFetch) {\n let url = `/defs/strat_names`;\n if (names.length == 0) return [];\n url += \"?strat_name_id=\" + names.join(\",\");\n const res = await fetch(url);\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$b97b9bdd6a521298(columns, fetch = $482a09479937d1e2$var$defaultFetch) {\n const promises = columns.map((col_id)=>$482a09479937d1e2$export$d3d8b0fabcc76c5d(col_id, fetch));\n return await Promise.all(promises);\n}\nasync function $482a09479937d1e2$export$d3d8b0fabcc76c5d(col_id, fetch = $482a09479937d1e2$var$defaultFetch) {\n const params = new URLSearchParams();\n params.append(\"response\", \"long\");\n params.append(\"col_id\", col_id.toString());\n const res = await fetch(\"/units?\" + params.toString());\n const data = await res.json();\n if (!data.success) throw new Error(\"Failed to fetch column units\");\n const units = data.success.data;\n return {\n columnID: col_id,\n units: units\n };\n}\n\n\nexport {$482a09479937d1e2$export$45bd78cd093090fa as fetchAllColumns, $482a09479937d1e2$export$e3270a4e30e40ff9 as useColumnFeatures, $482a09479937d1e2$export$1aa679bd5e605f82 as fetchLithologies, $482a09479937d1e2$export$5d2ec2e733dfe6c7 as fetchIntervals, $482a09479937d1e2$export$780b4b253712916c as fetchEnvironments, $482a09479937d1e2$export$cd7bfa0860f58b96 as fetchRefs, $482a09479937d1e2$export$8ea8f45a7ffe4183 as fetchStratNames, $482a09479937d1e2$export$b97b9bdd6a521298 as fetchUnits, $482a09479937d1e2$export$d3d8b0fabcc76c5d as fetchColumnUnits};\n//# sourceMappingURL=column-views.7425d37b.js.map\n","import {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n MacrostratRef,\n StratName,\n StratUnit,\n UnitLong,\n} from \"@macrostrat/api-types\";\nimport {\n addQueryString,\n joinURL,\n useAPIResult,\n} from \"@macrostrat/ui-components\";\nimport crossFetch from \"cross-fetch\";\nimport { feature } from \"topojson-client\";\nimport { geoArea } from \"d3-geo\";\nimport _ from \"underscore\";\n\nfunction defaultFetch(\n url: string,\n options: RequestInit | undefined = undefined,\n) {\n const baseURL = \"https://macrostrat.org/api/v2\";\n return crossFetch(baseURL + url, options);\n}\n\nexport type ColumnStatusCode = \"in process\" | \"active\" | \"obsolete\";\n\nexport interface ColumnFetchOptions {\n apiBaseURL?: string;\n projectID?: number;\n statusCode?: ColumnStatusCode | ColumnStatusCode[];\n format?: \"geojson\" | \"topojson\" | \"geojson_bare\";\n fetch?: any;\n}\n\nexport async function fetchAllColumns(\n options: ColumnFetchOptions = {},\n): Promise<ColumnGeoJSONRecord[]> {\n const {\n apiBaseURL,\n projectID,\n format = \"topojson\",\n statusCode,\n fetch = crossFetch,\n } = options;\n\n let args: any = { format };\n if (projectID != null) {\n args = { ...args, project_id: projectID };\n }\n let _statusCode: string | undefined = undefined;\n if (Array.isArray(statusCode)) {\n _statusCode = statusCode.join(\",\");\n } else if (statusCode != null) {\n _statusCode = statusCode;\n }\n args.statusCode = _statusCode;\n\n if (projectID == null) {\n args = { ...args, all: true };\n }\n\n let url = \"/columns\";\n if (apiBaseURL != null) {\n url = joinURL(apiBaseURL, url);\n }\n\n // Try with fetch\n url = addQueryString(url, args);\n\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (res == null) {\n return null;\n }\n\n // Get JSON\n const data = await res.json();\n return postProcessColumns(columnProcessors[format](data));\n}\n\nexport function useColumnFeatures({\n apiRoute = \"/columns\",\n status_code,\n project_id,\n format = \"geojson\",\n}) {\n let all: boolean = undefined;\n if (status_code == null && project_id == null) {\n all = true;\n }\n\n const processor = columnProcessors[format];\n\n return useAPIResult(\n apiRoute,\n { format, all, status_code, project_id },\n processor,\n );\n}\n\nfunction processGeoJSON(res) {\n return processGeoJSONBare(res?.success?.data);\n}\n\nfunction processGeoJSONBare(res) {\n return res?.features;\n}\n\nfunction processTopoJSON(res) {\n try {\n const { data } = res.success;\n const { features: f } = feature(data, data.objects.output) as any;\n return f;\n } catch (err) {\n console.error(err);\n return [];\n }\n}\n\nfunction postProcessColumns(columns) {\n return promoteColumnIDs(\n convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns)),\n );\n}\n\nfunction promoteColumnIDs(\n features: ColumnGeoJSONRecord[],\n): ColumnGeoJSONRecordWithID[] {\n return features.map((f, i) => {\n return {\n id: f.properties?.col_id,\n ...f,\n };\n });\n}\n\nfunction removeFeaturesWithoutGeometry(features) {\n return features.filter((f) => f.geometry != null);\n}\n\nfunction convertSmallAreasToPoints(features) {\n return features.map((f) => {\n // GeoArea takes a long time to run. We are really more worried about points that are zero-area\n if (geoArea(f.geometry) < 1e-8) {\n const centroid = f.geometry.coordinates[0][0];\n f.geometry = {\n type: \"Point\",\n coordinates: centroid,\n };\n }\n return f;\n });\n}\n\nconst columnProcessors = {\n topojson: processTopoJSON,\n geojson: processGeoJSON,\n geojson_bare: processGeoJSONBare,\n};\n\nasync function unwrapResponse(res) {\n if (res == null) {\n return null;\n }\n const resData = await res.json();\n return resData[\"success\"][\"data\"];\n}\n\nexport async function fetchLithologies(fetch = defaultFetch) {\n const res = await fetch(\"/defs/lithologies?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchIntervals(\n timescaleID: number | null,\n fetch = defaultFetch,\n) {\n let url = `/defs/intervals`;\n if (timescaleID != null) {\n url += `?timescale_id=${timescaleID}`;\n } else {\n url += \"?all\";\n }\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport async function fetchEnvironments(fetch = defaultFetch) {\n const res = await fetch(\"/defs/environments?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchRefs(\n refs: number[],\n fetch = defaultFetch,\n): Promise<MacrostratRef[]> {\n let url = `/defs/refs`;\n if (refs.length == 0) {\n return [];\n }\n url += \"?ref_id=\" + refs.join(\",\");\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport async function fetchStratNames(\n names: number[],\n fetch = defaultFetch,\n): Promise<StratName[]> {\n let url = `/defs/strat_names`;\n if (names.length == 0) {\n return [];\n }\n url += \"?strat_name_id=\" + names.join(\",\");\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport type ColumnData = {\n units: UnitLong[];\n columnID: number;\n};\n\nexport async function fetchUnits(\n columns: number[],\n fetch = defaultFetch,\n): Promise<ColumnData[]> {\n const promises = columns.map((col_id) => fetchColumnUnits(col_id, fetch));\n return await Promise.all(promises);\n}\n\nexport async function fetchColumnUnits(\n col_id: number,\n fetch = defaultFetch,\n): Promise<ColumnData> {\n const params = new URLSearchParams();\n params.append(\"response\", \"long\");\n params.append(\"col_id\", col_id.toString());\n const res = await fetch(\"/units\" + \"?\" + params.toString());\n const data = await res.json();\n if (!data.success) {\n throw new Error(\"Failed to fetch column units\");\n }\n const units = data.success.data;\n return { columnID: col_id, units };\n}\n"],"names":["joinURL","$iGnPX$joinURL","addQueryString","$iGnPX$addQueryString","useAPIResult","$iGnPX$useAPIResult","$iGnPX$crossfetch","feature","$iGnPX$feature","geoArea","$iGnPX$geoArea","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$482a09479937d1e2$exports","$482a09479937d1e2$var$defaultFetch","url","options","baseURL","$482a09479937d1e2$export$45bd78cd093090fa","_statusCode","apiBaseURL","projectID","format","statusCode","fetch","args","project_id","Array","isArray","join","all","res","method","headers","data","json","features","$482a09479937d1e2$var$columnProcessors","filter","f","geometry","map","centroid","coordinates","type","i","id","properties","col_id","$482a09479937d1e2$export$e3270a4e30e40ff9","apiRoute","status_code","processor","$482a09479937d1e2$var$processGeoJSONBare","$482a09479937d1e2$export$1aa679bd5e605f82","$482a09479937d1e2$export$5d2ec2e733dfe6c7","$482a09479937d1e2$export$780b4b253712916c","$482a09479937d1e2$export$cd7bfa0860f58b96","$482a09479937d1e2$export$8ea8f45a7ffe4183","$482a09479937d1e2$export$b97b9bdd6a521298","$482a09479937d1e2$export$d3d8b0fabcc76c5d","topojson","success","objects","output","err","console","error","geojson","geojson_bare","$482a09479937d1e2$var$unwrapResponse","resData","timescaleID","refs","length","names","columns","promises","Promise","params","URLSearchParams","append","toString","Error","columnID","units","fetchAllColumns","useColumnFeatures","fetchLithologies","fetchIntervals","fetchEnvironments","fetchRefs","fetchStratNames","fetchUnits","fetchColumnUnits"],"version":3,"file":"column-views.7425d37b.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{group as t}from"d3-array";import{createAPIContext as a,useAPIResult as e,useAsyncMemo as n}from"@macrostrat/ui-components";let l=a({baseURL:"https://paleobiodb.org/data1.2",unwrapResponse:t=>t.records});var s,c=((s={}).Occurrences="occs",s.Collections="colls",s);function o(t,{col_id:a}){return e(`/${t}/list.json`,{ms_column:a,show:"full,mslink"},{context:l})}function r(t,a="colls"){return n(async()=>null==t?null:await d(t,a),[t,a])}async function i(t,a){if("colls"!==a)return[];let e=await fetch(`https://macrostrat.org/api/fossils?col_id=${t}`);return(await e.json()).success.data}async function u(t,a){let e=await fetch(`https://paleobiodb.org/data1.2/${a}/list.json?ms_column=${t}&show=mslink,full`);return(await e.json()).records.map("colls"==a?m:p)}async function d(a,e){let[n,l]=await Promise.all([i(a,e),u(a,e)]);return t([...n,...l],t=>t.unit_id)}function p(t){let a=parseInt(t.msu.replace(/^\w+:/,"")),e=parseInt(t.msc.replace(/^\w+:/,"")),n=parseInt(t.oid.replace(/^occ:/,"")),l=parseInt(t.cid.replace(/^col:/,""));return{...t,unit_id:a,col_id:e,taxon_name:t.tna,best_name:t.idn??t.tna,occ_id:n,cltn_id:l,cltn_name:t.nam}}function m(t){let a=null,e=null;null!=t.msu&&(a=parseInt(t.msu.replace(/^\w+:/,""))),null!=t.msc&&(e=parseInt(t.msc.replace(/^\w+:/,"")));let n=t.tna,l=null;null!=t.oid&&t.oid.startsWith("occ:")&&(l=parseInt(t.oid.replace(/^occ:/,""))),null!=t.idn&&(n=t.idn);let s=t.cltn_id;return null!=t.oid&&t.oid.startsWith("col:")?s=parseInt(t.oid.replace(/^col:/,"")):null!=t.cid&&t.cid.startsWith("col:")&&(s=parseInt(t.cid.replace(/^col:/,""))),{...t,unit_id:a,col_id:e,taxon_name:n,occ_id:l,cltn_id:s,cltn_name:t.nam,t_age:t.t_age,b_age:t.b_age}}export{c as FossilDataType,o as usePBDBFossilData,r as useFossilData};
|
|
2
|
+
//# sourceMappingURL=column-views.77ace3a2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["<anon>","packages/column-views/src/facets/fossils/provider.ts"],"sourcesContent":["import {group as $lb6L3$group} from \"d3-array\";\nimport {createAPIContext as $lb6L3$createAPIContext, useAPIResult as $lb6L3$useAPIResult, useAsyncMemo as $lb6L3$useAsyncMemo} from \"@macrostrat/ui-components\";\n\n\n\nconst $8e174c7ae24a4598$var$responseUnwrapper = (d)=>d.records;\nconst $8e174c7ae24a4598$var$pbdbAPIContext = (0, $lb6L3$createAPIContext)({\n baseURL: \"https://paleobiodb.org/data1.2\",\n unwrapResponse: $8e174c7ae24a4598$var$responseUnwrapper\n});\nvar $8e174c7ae24a4598$export$a990c76b38782f57 = /*#__PURE__*/ function(FossilDataType) {\n FossilDataType[\"Occurrences\"] = \"occs\";\n FossilDataType[\"Collections\"] = \"colls\";\n return FossilDataType;\n}({});\nfunction $8e174c7ae24a4598$export$c4ed16553d869511(type, { col_id: col_id }) {\n const params = {\n ms_column: col_id,\n show: \"full,mslink\"\n };\n return (0, $lb6L3$useAPIResult)(`/${type}/list.json`, params, {\n context: $8e174c7ae24a4598$var$pbdbAPIContext\n });\n}\nfunction $8e174c7ae24a4598$export$e6af757fa9780077(col_id, type = \"colls\") {\n // Fossil links are stored in both Macrostrat and PBDB, depending on how the link was assembled. Here\n // we create a unified view of data over both sources.\n return (0, $lb6L3$useAsyncMemo)(async ()=>{\n if (col_id == null) return null;\n return await $8e174c7ae24a4598$var$fetchFossilData(col_id, type);\n }, [\n col_id,\n type\n ]);\n}\nasync function $8e174c7ae24a4598$var$fetchMacrostratFossilData(col_id, type) {\n if (type !== \"colls\") // Macrostrat API only supports collections\n return [];\n // Fetch fossil collections linked to columns from the Macrostrat API\n const resp = await fetch(`https://macrostrat.org/api/fossils?col_id=${col_id}`);\n const res = await resp.json();\n // Create collections from Macrostrat data\n return res.success.data;\n}\nasync function $8e174c7ae24a4598$var$fetchPDBDFossilData(col_id, type) {\n const resp = await fetch(`https://paleobiodb.org/data1.2/${type}/list.json?ms_column=${col_id}&show=mslink,full`);\n const res = await resp.json();\n return res.records.map(type == \"colls\" ? $8e174c7ae24a4598$var$createMacrostratCollection : $8e174c7ae24a4598$var$preprocessOccurrence);\n}\nasync function $8e174c7ae24a4598$var$fetchFossilData(colID, type) {\n const [macrostratData, pbdbData] = await Promise.all([\n $8e174c7ae24a4598$var$fetchMacrostratFossilData(colID, type),\n $8e174c7ae24a4598$var$fetchPDBDFossilData(colID, type)\n ]);\n const data = [\n ...macrostratData,\n ...pbdbData\n ];\n return (0, $lb6L3$group)(data, (d)=>d.unit_id);\n}\nfunction $8e174c7ae24a4598$var$preprocessOccurrence(d) {\n /* Preprocess data for an occurrence into a Macrostrat-like format */ // Standardize names of Macrostrat units and columns\n const unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n const col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n // taxon names may be stored in different fields\n const occ_id = parseInt(d.oid.replace(/^occ:/, \"\"));\n const cltn_id = parseInt(d.cid.replace(/^col:/, \"\"));\n return {\n ...d,\n unit_id: unit_id,\n col_id: col_id,\n taxon_name: d.tna,\n best_name: d.idn ?? d.tna,\n occ_id: occ_id,\n cltn_id: cltn_id,\n cltn_name: d.nam\n };\n}\nfunction $8e174c7ae24a4598$var$createMacrostratCollection(d) {\n /* Preprocess data for a collection into a Macrostrat-like format */ let unit_id = null;\n let col_id = null;\n // Standardize names of Macrostrat units and columns\n if (d.msu != null) unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n if (d.msc != null) col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n // taxon names may be stored in different fields\n let taxon_name = d.tna;\n let occ_id = null;\n if (d.oid != null && d.oid.startsWith(\"occ:\")) occ_id = parseInt(d.oid.replace(/^occ:/, \"\"));\n if (d.idn != null) taxon_name = d.idn;\n let cltn_id = d.cltn_id;\n if (d.oid != null && d.oid.startsWith(\"col:\")) cltn_id = parseInt(d.oid.replace(/^col:/, \"\"));\n else if (d.cid != null && d.cid.startsWith(\"col:\")) cltn_id = parseInt(d.cid.replace(/^col:/, \"\"));\n return {\n ...d,\n unit_id: unit_id,\n col_id: col_id,\n taxon_name: taxon_name,\n occ_id: occ_id,\n cltn_id: cltn_id,\n cltn_name: d.nam,\n t_age: d.t_age,\n b_age: d.b_age\n };\n}\n\n\nexport {$8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType, $8e174c7ae24a4598$export$c4ed16553d869511 as usePBDBFossilData, $8e174c7ae24a4598$export$e6af757fa9780077 as useFossilData};\n//# sourceMappingURL=column-views.77ace3a2.js.map\n","import { group, InternMap } from \"d3-array\";\nimport {\n createAPIContext,\n useAPIResult,\n useAsyncMemo,\n} from \"@macrostrat/ui-components\";\n\nconst responseUnwrapper = (d) => d.records;\n\nconst pbdbAPIContext = createAPIContext({\n baseURL: \"https://paleobiodb.org/data1.2\",\n unwrapResponse: responseUnwrapper,\n});\n\nexport enum FossilDataType {\n Occurrences = \"occs\",\n Collections = \"colls\",\n}\n\nexport function usePBDBFossilData(\n type: FossilDataType,\n { col_id },\n): any[] | null {\n const params = {\n ms_column: col_id,\n show: \"full,mslink\",\n };\n return useAPIResult(`/${type}/list.json`, params, {\n context: pbdbAPIContext,\n });\n}\n\nexport interface PBDBIdentifier {\n unit_id: number;\n col_id: number;\n cltn_id: number;\n}\n\nexport interface PBDBCollection extends PBDBIdentifier {\n cltn_name: string;\n pbdb_occs: number;\n t_age: number;\n b_age: number;\n [key: string]: any; // Allow for additional properties\n}\n\nexport interface PBDBOccurrence extends PBDBIdentifier {\n occ_id: number;\n cltn_id: number;\n taxon_name: string;\n best_name: string;\n [key: string]: any; // Allow for additional properties\n}\n\nexport function useFossilData(\n col_id: number,\n type = FossilDataType.Collections,\n) {\n // Fossil links are stored in both Macrostrat and PBDB, depending on how the link was assembled. Here\n // we create a unified view of data over both sources.\n return useAsyncMemo(async () => {\n if (col_id == null) return null;\n return await fetchFossilData(col_id, type);\n }, [col_id, type]);\n}\n\nasync function fetchMacrostratFossilData(\n col_id: number,\n type: FossilDataType,\n): Promise<PBDBCollection[]> {\n if (type !== FossilDataType.Collections) {\n // Macrostrat API only supports collections\n return [];\n }\n\n // Fetch fossil collections linked to columns from the Macrostrat API\n const resp = await fetch(\n `https://macrostrat.org/api/fossils?col_id=${col_id}`,\n );\n const res = await resp.json();\n // Create collections from Macrostrat data\n return res.success.data;\n}\n\nasync function fetchPDBDFossilData(\n col_id: number,\n type: FossilDataType,\n): Promise<PBDBCollection[]> {\n const resp = await fetch(\n `https://paleobiodb.org/data1.2/${type}/list.json?ms_column=${col_id}&show=mslink,full`,\n );\n const res = await resp.json();\n return res.records.map(\n type == FossilDataType.Collections\n ? createMacrostratCollection\n : preprocessOccurrence,\n );\n}\n\nasync function fetchFossilData(\n colID: number,\n type: FossilDataType,\n): Promise<InternMap<number, PBDBOccurrence[] | PBDBCollection[]>> {\n const [macrostratData, pbdbData] = await Promise.all([\n fetchMacrostratFossilData(colID, type),\n fetchPDBDFossilData(colID, type),\n ]);\n\n const data = [...macrostratData, ...pbdbData];\n\n return group(data, (d) => d.unit_id);\n}\n\nfunction preprocessOccurrence(d): PBDBOccurrence {\n /* Preprocess data for an occurrence into a Macrostrat-like format */\n // Standardize names of Macrostrat units and columns\n const unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n const col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n\n // taxon names may be stored in different fields\n const occ_id = parseInt(d.oid.replace(/^occ:/, \"\"));\n const cltn_id = parseInt(d.cid.replace(/^col:/, \"\"));\n\n return {\n ...d,\n unit_id,\n col_id,\n taxon_name: d.tna,\n best_name: d.idn ?? d.tna,\n occ_id,\n cltn_id,\n cltn_name: d.nam,\n };\n}\n\nfunction createMacrostratCollection(d): PBDBCollection {\n /* Preprocess data for a collection into a Macrostrat-like format */\n let unit_id = null;\n let col_id = null;\n // Standardize names of Macrostrat units and columns\n if (d.msu != null) {\n unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n }\n if (d.msc != null) {\n col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n }\n\n // taxon names may be stored in different fields\n let taxon_name = d.tna;\n let occ_id = null;\n if (d.oid != null && d.oid.startsWith(\"occ:\")) {\n occ_id = parseInt(d.oid.replace(/^occ:/, \"\"));\n }\n if (d.idn != null) {\n taxon_name = d.idn;\n }\n\n let cltn_id = d.cltn_id;\n if (d.oid != null && d.oid.startsWith(\"col:\")) {\n cltn_id = parseInt(d.oid.replace(/^col:/, \"\"));\n } else if (d.cid != null && d.cid.startsWith(\"col:\")) {\n cltn_id = parseInt(d.cid.replace(/^col:/, \"\"));\n }\n\n return {\n ...d,\n unit_id,\n col_id,\n taxon_name,\n occ_id,\n cltn_id,\n cltn_name: d.nam,\n t_age: d.t_age,\n b_age: d.b_age,\n };\n}\n"],"names":["group","$lb6L3$group","createAPIContext","$lb6L3$createAPIContext","useAPIResult","$lb6L3$useAPIResult","useAsyncMemo","$lb6L3$useAsyncMemo","$8e174c7ae24a4598$var$pbdbAPIContext","baseURL","unwrapResponse","d","records","FossilDataType","$8e174c7ae24a4598$export$a990c76b38782f57","$8e174c7ae24a4598$export$c4ed16553d869511","type","col_id","ms_column","show","context","$8e174c7ae24a4598$export$e6af757fa9780077","$8e174c7ae24a4598$var$fetchFossilData","$8e174c7ae24a4598$var$fetchMacrostratFossilData","resp","fetch","res","json","success","data","$8e174c7ae24a4598$var$fetchPDBDFossilData","map","$8e174c7ae24a4598$var$createMacrostratCollection","$8e174c7ae24a4598$var$preprocessOccurrence","colID","macrostratData","pbdbData","Promise","all","unit_id","parseInt","msu","replace","msc","occ_id","oid","cltn_id","cid","taxon_name","tna","best_name","idn","cltn_name","nam","startsWith","t_age","b_age","usePBDBFossilData","useFossilData"],"version":3,"file":"column-views.77ace3a2.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function e(e,a,i,t){Object.defineProperty(e,a,{get:i,set:t,enumerable:!0,configurable:!0})}var a,i,t={};e(t,"HybridScaleType",()=>r),e(t,"HeightMethod",()=>m);var r=((a={}).EquidistantSurfaces="equidistant-surfaces",a.ApproximateHeight="approximate-height",a),m=((i={}).Minimum="minimum",i.Average="average",i.Maximum="maximum",i);export{r as HybridScaleType,m as HeightMethod};
|
|
2
|
+
//# sourceMappingURL=column-views.7f9c7448.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,IC8BY,EAOA,E,E,C,E,E,E,kB,I,G,E,E,e,I,GAPL,IAAK,G,CAAA,E,C,G,mB,C,uB,E,iB,C,qBAAA,GAOA,G,CAAA,E,C,G,O,C,U,E,O,C,U,E,O,C,UAAA,U,K,e,C,K,Y","sources":["<anon>","packages/column-views/src/prepare-units/types.ts"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $6a8fb6360a4f5dac$exports = {};\n\n$parcel$export($6a8fb6360a4f5dac$exports, \"HybridScaleType\", () => $6a8fb6360a4f5dac$export$45e8e2d7a1794c23);\n$parcel$export($6a8fb6360a4f5dac$exports, \"HeightMethod\", () => $6a8fb6360a4f5dac$export$e40aae6f0de9bb95);\nvar $6a8fb6360a4f5dac$export$45e8e2d7a1794c23 = /*#__PURE__*/ function(HybridScaleType) {\n // An age-domain scale that puts equal vertical space between surfaces\n HybridScaleType[\"EquidistantSurfaces\"] = \"equidistant-surfaces\";\n // A height-domain scale that is based on the average height of units between surfaces\n HybridScaleType[\"ApproximateHeight\"] = \"approximate-height\";\n return HybridScaleType;\n}({});\nvar $6a8fb6360a4f5dac$export$e40aae6f0de9bb95 = /*#__PURE__*/ function(HeightMethod) {\n HeightMethod[\"Minimum\"] = \"minimum\";\n HeightMethod[\"Average\"] = \"average\";\n HeightMethod[\"Maximum\"] = \"maximum\";\n return HeightMethod;\n}({});\n\n\nexport {$6a8fb6360a4f5dac$export$45e8e2d7a1794c23 as HybridScaleType, $6a8fb6360a4f5dac$export$e40aae6f0de9bb95 as HeightMethod};\n//# sourceMappingURL=column-views.7f9c7448.js.map\n","import type { UnitLong } from \"@macrostrat/api-types\";\nimport type { ColumnAxisType } from \"@macrostrat/column-components\";\nimport type { ScaleContinuousNumeric } from \"d3-scale\";\n\nexport interface ColumnHeightScaleOptions {\n /** A fixed pixel scale to use for the section (pixels per Myr) */\n pixelScale?: number;\n /** The target height of a constituent unit in pixels, for dynamic\n * scale generation */\n targetUnitHeight?: number;\n /** Min height of a section in pixels. Will override minPixelScale in some cases. */\n minSectionHeight?: number;\n /** The minimum pixel scale to use for the section (pixels per Myr). This is mostly\n * needed because small sections (<1-2 units) don't necessarily have space to comfortably\n * render two axis labels */\n minPixelScale?: number;\n // Axis scale type\n axisType?: ColumnAxisType;\n // Unconformity height in pixels\n unconformityHeight?: number;\n // Whether to collapse unconformities that are less than a height threshold\n collapseSmallUnconformities?: boolean | number;\n // A continuous scale to use instead of generating one\n // TODO: discontinuous scales are not yet supported\n scale?: ScaleContinuousNumeric<number, number>;\n // Hybrid scale type.\n // This overrides parameters such as the axis type\n hybridScale?: HybridScaleDefinition;\n}\n\nexport enum HybridScaleType {\n // An age-domain scale that puts equal vertical space between surfaces\n EquidistantSurfaces = \"equidistant-surfaces\",\n // A height-domain scale that is based on the average height of units between surfaces\n ApproximateHeight = \"approximate-height\",\n}\n\nexport enum HeightMethod {\n Minimum = \"minimum\",\n Average = \"average\",\n Maximum = \"maximum\",\n}\n\nexport interface HybridScaleOptions {\n pixelOffset?: number;\n pixelScale?: number;\n}\n\nexport type ApproxHeightScaleOptions = {\n minHeight?: number;\n defaultHeight?: number;\n heightMethod?: HeightMethod;\n};\n\nexport type HybridScaleDefinition =\n | ({\n type: HybridScaleType.ApproximateHeight;\n } & ApproxHeightScaleOptions)\n | {\n type: HybridScaleType.EquidistantSurfaces;\n };\n\nexport interface SectionScaleOptions extends ColumnHeightScaleOptions {\n axisType: ColumnAxisType;\n domain: [number, number];\n}\n\n/** Output of a section scale. For now, this assumes that the\n * mapping is linear, but it could be extended to support arbitrary\n * scale functions.\n */\nexport interface PackageScaleInfo {\n domain: [number, number];\n pixelHeight: number;\n // TODO: add a function\n scale: ScaleContinuousNumeric<number, number>;\n pixelScale?: number; // if it's a linear scale, this could be defined\n // Subsidiary scale for height mapping (for hybrid scales)\n heightScale?: ScaleContinuousNumeric<number, number>;\n}\n\nexport type PackageScaleLayoutData = PackageScaleInfo & {\n // A unique key for the section to use in React\n key: string;\n offset: number;\n // How much to\n paddingTop: number;\n};\nexport interface StratigraphicPackage {\n /** A collection of stratigraphic information organized in time, corresponding\n * to single or multiple columns. */\n t_age: number;\n b_age: number;\n}\n\nexport interface SectionInfo<\n T extends UnitLong = ExtUnit,\n> extends StratigraphicPackage {\n /** A time-bounded part of a single stratigraphic column. */\n section_id: number | number[];\n units: T[];\n b_pos?: number;\n t_pos?: number;\n}\n\nexport interface ExtUnit extends UnitLong {\n bottomOverlap: boolean;\n overlappingUnits: number[];\n column?: number;\n /* Positions (ages or heights) where the unit is clipped to its containing section.\n * This is relevant if we are filtering by age/height/depth range.\n */\n t_clip_pos?: number;\n b_clip_pos?: number;\n}\n\nexport type PackageLayoutData<T extends UnitLong = ExtUnit> = SectionInfo<T> & {\n scaleInfo: PackageScaleLayoutData;\n // A unique key for the section to use in React\n key: string;\n};\n\nexport interface CompositeScaleData {\n totalHeight: number;\n sections: PackageScaleLayoutData[];\n}\n\nexport interface ColumnScaleOptions extends ColumnHeightScaleOptions {\n axisType: ColumnAxisType;\n unconformityHeight: number;\n}\n\nexport interface CompositeColumnData<T extends UnitLong = ExtUnit> extends Omit<\n CompositeScaleData,\n \"sections\"\n> {\n sections: PackageLayoutData<T>[];\n}\n"],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","HybridScaleType","HeightMethod","$6a8fb6360a4f5dac$exports","$6a8fb6360a4f5dac$export$45e8e2d7a1794c23","$6a8fb6360a4f5dac$export$e40aae6f0de9bb95"],"version":3,"file":"column-views.7f9c7448.js.map","sourceRoot":"../../../../"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./column-views.aef76eee.js";import{createContext as t,useMemo as e,useContext as r}from"react";import a from"@macrostrat/hyper";import{createIsolation as o}from"jotai-scope";import{atom as n}from"jotai";function s(t,e,r,a){Object.defineProperty(t,e,{get:r,set:a,enumerable:!0,configurable:!0})}var i=globalThis,u={},c={},l=i.parcelRequirea149;null==l&&((l=function(t){if(t in u)return u[t].exports;if(t in c){var e=c[t];delete c[t];var r={id:t,exports:{}};return u[t]=r,e.call(r.exports,r,r.exports),r.exports}var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(t,e){c[t]=e},i.parcelRequirea149=l),l.register;var f={};s(f,"MacrostratColumnStateProvider",()=>M),s(f,"MacrostratColumnDataProvider",()=>D),s(f,"useMacrostratColumnData",()=>P),s(f,"useMacrostratUnits",()=>g),s(f,"useColumnUnitsMap",()=>S),s(f,"useCompositeScale",()=>y);var m=l("bBAza");let{Provider:d,useAtom:p,useAtomValue:b,useStore:$}=o(),x=n(),C=n(t=>{let e=t(x);if(!e)return null;let r=new Map;return e.forEach(t=>{r.set(t.unit_id,t)}),r});function v({children:t,...e}){let r=null;try{r=$()}catch{r=null}return a(d,{store:r,...e},t)}function M({children:t,units:e}){return a(v,{initialValues:[[x,e]]},t)}let h=t(null);function D({children:t,units:r,sections:o,totalHeight:n,axisType:s}){let i=e(()=>({units:r,sections:o,totalHeight:n,axisType:s}),[r,o,n,s]);return a(M,{units:r},a(h.Provider,{value:i},t))}function P(){let t=r(h);if(!t)throw Error("useMacrostratColumnData must be used within a MacrostratColumnDataProvider");return t}function g(){return b(x)}function S(){try{return b(C)}catch{return null}}function y(){let t=P();return e(()=>(0,m.createCompositeScale)(t.sections,!0),[t.sections])}export{M as MacrostratColumnStateProvider,D as MacrostratColumnDataProvider,P as useMacrostratColumnData,g as useMacrostratUnits,S as useColumnUnitsMap,y as useCompositeScale};
|
|
2
|
+
//# sourceMappingURL=column-views.92e29010.js.map
|