@macrostrat/column-views 2.0.1 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/esm/{column-views.8dd877af.js → column-views.006d5180.js} +2 -1
- package/dist/esm/column-views.006d5180.js.map +1 -0
- package/dist/esm/column-views.05586d1f.js +22 -0
- package/dist/esm/column-views.05586d1f.js.map +1 -0
- package/dist/esm/column-views.0732894f.js +86 -0
- package/dist/esm/column-views.0732894f.js.map +1 -0
- package/dist/esm/{column-views.134b2e2a.js → column-views.08440694.js} +2 -2
- package/dist/esm/{column-views.134b2e2a.js.map → column-views.08440694.js.map} +1 -1
- package/dist/esm/{column-views.aa9fcdba.js → column-views.0c14e18e.js} +18 -15
- package/dist/esm/column-views.0c14e18e.js.map +1 -0
- package/dist/esm/column-views.10eba967.js +11 -0
- package/dist/esm/column-views.10eba967.js.map +1 -0
- package/dist/esm/{column-views.8e51206e.js → column-views.1af9761e.js} +19 -3
- package/dist/esm/column-views.1af9761e.js.map +1 -0
- package/dist/esm/column-views.1c92b88f.js +16 -0
- package/dist/esm/column-views.1c92b88f.js.map +1 -0
- package/dist/esm/{column-views.ea237aa8.js → column-views.1e055ed5.js} +6 -5
- package/dist/esm/column-views.1e055ed5.js.map +1 -0
- package/dist/esm/{column-views.1ece326b.js → column-views.1f123354.js} +60 -11
- package/dist/esm/column-views.1f123354.js.map +1 -0
- package/dist/esm/{column-views.240ef158.css → column-views.217078ab.css} +4 -3
- package/dist/esm/column-views.217078ab.css.map +1 -0
- package/dist/esm/column-views.2c45a7b5.js +25 -0
- package/dist/esm/column-views.2c45a7b5.js.map +1 -0
- package/dist/esm/column-views.2ca34210.js +151 -0
- package/dist/esm/column-views.2ca34210.js.map +1 -0
- package/dist/esm/{column-views.3bec70d6.js → column-views.2d8e0e0f.js} +9 -8
- package/dist/esm/column-views.2d8e0e0f.js.map +1 -0
- package/dist/esm/column-views.3048acc1.js +66 -0
- package/dist/esm/column-views.3048acc1.js.map +1 -0
- package/dist/esm/column-views.39657bbf.js.map +1 -1
- package/dist/esm/{column-views.28ee5f43.js → column-views.3ba9213d.js} +16 -5
- package/dist/esm/column-views.3ba9213d.js.map +1 -0
- package/dist/esm/column-views.3de4dc43.js.map +1 -1
- package/dist/esm/column-views.403a7b48.css +24 -0
- package/dist/esm/column-views.403a7b48.css.map +1 -0
- package/dist/esm/column-views.4637f4ce.js.map +1 -1
- package/dist/esm/{column-views.86c4b36f.js → column-views.4ab0ec82.js} +44 -13
- package/dist/esm/column-views.4ab0ec82.js.map +1 -0
- package/dist/esm/{column-views.9bdd477a.js → column-views.4d22c21c.js} +2 -2
- package/dist/esm/{column-views.9bdd477a.js.map → column-views.4d22c21c.js.map} +1 -1
- package/dist/esm/{column-views.fa6f3292.js → column-views.4df0b803.js} +7 -8
- package/dist/esm/column-views.4df0b803.js.map +1 -0
- package/dist/esm/{column-views.b775c0a3.js → column-views.52a6eb47.js} +3 -3
- package/dist/esm/{column-views.b775c0a3.js.map → column-views.52a6eb47.js.map} +1 -1
- package/dist/esm/column-views.57636733.css +22 -0
- package/dist/esm/column-views.57636733.css.map +1 -0
- package/dist/esm/{column-views.68409161.js → column-views.59bb0cba.js} +2 -3
- package/dist/esm/column-views.59bb0cba.js.map +1 -0
- package/dist/esm/column-views.5cc09c1d.js.map +1 -1
- package/dist/esm/column-views.5e2dc19d.js +187 -0
- package/dist/esm/column-views.5e2dc19d.js.map +1 -0
- package/dist/esm/{column-views.33dbc778.js → column-views.633c42a3.js} +2 -1
- package/dist/esm/column-views.633c42a3.js.map +1 -0
- package/dist/esm/{column-views.e77b9d6b.js → column-views.6549388a.js} +4 -5
- package/dist/esm/column-views.6549388a.js.map +1 -0
- package/dist/esm/{column-views.dff52504.js → column-views.686d21ad.js} +10 -1
- package/dist/esm/column-views.686d21ad.js.map +1 -0
- package/dist/esm/column-views.6992ca88.js +25 -0
- package/dist/esm/column-views.6992ca88.js.map +1 -0
- package/dist/esm/column-views.6d6b73b4.js.map +1 -1
- package/dist/esm/column-views.708140ab.css +36 -0
- package/dist/esm/column-views.708140ab.css.map +1 -0
- package/dist/esm/{column-views.650bd9f5.js → column-views.7715e35e.js} +17 -13
- package/dist/esm/column-views.7715e35e.js.map +1 -0
- package/dist/esm/{column-views.a98214b2.js → column-views.7e350ae2.js} +3 -3
- package/dist/esm/{column-views.a98214b2.js.map → column-views.7e350ae2.js.map} +1 -1
- package/dist/esm/{column-views.30646469.js → column-views.85c6a716.js} +2 -2
- package/dist/esm/column-views.85c6a716.js.map +1 -0
- package/dist/esm/column-views.86619334.js +9 -0
- package/dist/esm/column-views.86619334.js.map +1 -0
- package/dist/esm/{column-views.40c1f361.js → column-views.89b9e542.js} +11 -18
- package/dist/esm/column-views.89b9e542.js.map +1 -0
- package/dist/esm/{column-views.1c589cc4.js → column-views.9892f825.js} +55 -4
- package/dist/esm/column-views.9892f825.js.map +1 -0
- package/dist/esm/{column-views.1edc7300.js → column-views.9b77388d.js} +6 -5
- package/dist/esm/column-views.9b77388d.js.map +1 -0
- package/dist/esm/column-views.a7c5ae16.js +25 -0
- package/dist/esm/column-views.a7c5ae16.js.map +1 -0
- package/dist/esm/{column-views.5c02fee2.js → column-views.a91dde4a.js} +10 -9
- package/dist/esm/column-views.a91dde4a.js.map +1 -0
- package/dist/esm/{column-views.fc2b4611.js → column-views.a94e99a2.js} +2 -2
- package/dist/esm/{column-views.fc2b4611.js.map → column-views.a94e99a2.js.map} +1 -1
- package/dist/esm/{column-views.e2b9c23c.css → column-views.b17f793f.css} +21 -1
- package/dist/esm/column-views.b17f793f.css.map +1 -0
- package/dist/esm/{column-views.9804efda.js → column-views.b9fe5176.js} +14 -8
- package/dist/esm/column-views.b9fe5176.js.map +1 -0
- package/dist/esm/{column-views.b2e5f1d9.js → column-views.bcffe6e5.js} +4 -4
- package/dist/esm/{column-views.b2e5f1d9.js.map → column-views.bcffe6e5.js.map} +1 -1
- package/dist/esm/{column-views.f1efcc2c.js → column-views.c25e8b32.js} +3 -3
- package/dist/esm/{column-views.f1efcc2c.js.map → column-views.c25e8b32.js.map} +1 -1
- package/dist/esm/{column-views.9ced149e.js → column-views.c32d6ad0.js} +25 -6
- package/dist/esm/column-views.c32d6ad0.js.map +1 -0
- package/dist/esm/{column-views.34636ec7.js → column-views.c71c321c.js} +11 -11
- package/dist/esm/column-views.c71c321c.js.map +1 -0
- package/dist/esm/{column-views.f2e5a72f.js → column-views.c8cc249a.js} +3 -3
- package/dist/esm/{column-views.f2e5a72f.js.map → column-views.c8cc249a.js.map} +1 -1
- package/dist/esm/{column-views.5b2635fd.js → column-views.c8e2983a.js} +4 -4
- package/dist/esm/{column-views.5b2635fd.js.map → column-views.c8e2983a.js.map} +1 -1
- package/dist/esm/{column-views.88de2cee.js → column-views.cfcf6096.js} +4 -4
- package/dist/esm/{column-views.88de2cee.js.map → column-views.cfcf6096.js.map} +1 -1
- package/dist/esm/{column-views.4c4c5bac.js → column-views.d2037465.js} +14 -8
- package/dist/esm/column-views.d2037465.js.map +1 -0
- package/dist/esm/column-views.dc42f5d0.js.map +1 -1
- package/dist/esm/column-views.e20f6a4b.js +124 -0
- package/dist/esm/column-views.e20f6a4b.js.map +1 -0
- package/dist/esm/{column-views.57c4ddf3.js → column-views.f08929e2.js} +2 -2
- package/dist/esm/column-views.f08929e2.js.map +1 -0
- package/dist/esm/column-views.f13a1d6e.js +37 -0
- package/dist/esm/column-views.f13a1d6e.js.map +1 -0
- package/dist/esm/column-views.f9dab157.js.map +1 -1
- package/dist/esm/column-views.fa19cea0.js +108 -0
- package/dist/esm/column-views.fa19cea0.js.map +1 -0
- package/dist/esm/{column-views.f71ec4b4.js → column-views.fdb0e9ec.js} +67 -30
- package/dist/esm/column-views.fdb0e9ec.js.map +1 -0
- package/dist/esm/index.d.ts +325 -296
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +13 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/node/column-views.04407342.js +2 -0
- package/dist/node/column-views.04407342.js.map +1 -0
- package/dist/node/column-views.06951a55.js +2 -0
- package/dist/node/column-views.06951a55.js.map +1 -0
- package/dist/node/column-views.06b0534e.js +2 -0
- package/dist/node/column-views.06b0534e.js.map +1 -0
- package/dist/node/column-views.0859f5d2.js +2 -0
- package/dist/node/column-views.0859f5d2.js.map +1 -0
- package/dist/node/column-views.10a2bad6.js +2 -0
- package/dist/node/column-views.10a2bad6.js.map +1 -0
- package/dist/node/column-views.12a70e9d.js +2 -0
- package/dist/node/column-views.12a70e9d.js.map +1 -0
- package/dist/node/column-views.139b0855.js +2 -0
- package/dist/node/column-views.139b0855.js.map +1 -0
- package/dist/node/column-views.1a0b56fc.js +2 -0
- package/dist/node/column-views.1a0b56fc.js.map +1 -0
- package/dist/node/column-views.1de87649.js +2 -0
- package/dist/node/column-views.1de87649.js.map +1 -0
- package/dist/node/column-views.1e94d562.js +2 -0
- package/dist/node/column-views.1e94d562.js.map +1 -0
- package/dist/node/column-views.28609db2.css +2 -0
- package/dist/node/column-views.28609db2.css.map +1 -0
- package/dist/node/column-views.286d444d.js +2 -0
- package/dist/node/column-views.286d444d.js.map +1 -0
- package/dist/node/column-views.2877f398.js +2 -0
- package/dist/node/column-views.2877f398.js.map +1 -0
- package/dist/node/column-views.2a70b9a2.js +2 -0
- package/dist/node/column-views.2a70b9a2.js.map +1 -0
- package/dist/node/column-views.2e4e357d.js +2 -0
- package/dist/node/column-views.2e4e357d.js.map +1 -0
- package/dist/node/column-views.3345cd7a.js +2 -0
- package/dist/node/column-views.3345cd7a.js.map +1 -0
- package/dist/node/column-views.33752461.js +2 -0
- package/dist/node/column-views.33752461.js.map +1 -0
- package/dist/node/column-views.39d3a0be.js +2 -0
- package/dist/node/column-views.39d3a0be.js.map +1 -0
- package/dist/node/column-views.3a55ecd7.css +2 -0
- package/dist/node/column-views.3a55ecd7.css.map +1 -0
- package/dist/node/column-views.3bd09ad6.js +2 -0
- package/dist/node/column-views.3bd09ad6.js.map +1 -0
- package/dist/node/column-views.3cb3345e.js +2 -0
- package/dist/node/column-views.3cb3345e.js.map +1 -0
- package/dist/node/column-views.41876859.js +2 -0
- package/dist/node/column-views.41876859.js.map +1 -0
- package/dist/node/column-views.45168c80.js +2 -0
- package/dist/node/column-views.45168c80.js.map +1 -0
- package/dist/node/column-views.4e2bdf9b.js +2 -0
- package/dist/node/column-views.4e2bdf9b.js.map +1 -0
- package/dist/node/column-views.51fbed89.js +2 -0
- package/dist/node/column-views.51fbed89.js.map +1 -0
- package/dist/node/column-views.536dc54e.js +2 -0
- package/dist/node/column-views.536dc54e.js.map +1 -0
- package/dist/node/column-views.5b6833f0.js +2 -0
- package/dist/node/column-views.5b6833f0.js.map +1 -0
- package/dist/node/column-views.5c1b0eeb.css +2 -0
- package/dist/node/column-views.5c1b0eeb.css.map +1 -0
- package/dist/node/column-views.664dc6c9.js +2 -0
- package/dist/node/column-views.664dc6c9.js.map +1 -0
- package/dist/node/column-views.6a0a35e7.js +2 -0
- package/dist/node/column-views.6a0a35e7.js.map +1 -0
- package/dist/node/column-views.6a4c2100.css +2 -0
- package/dist/node/column-views.6a4c2100.css.map +1 -0
- package/dist/node/column-views.6a9da051.js +2 -0
- package/dist/node/column-views.6a9da051.js.map +1 -0
- package/dist/node/column-views.6b441349.js +2 -0
- package/dist/node/column-views.6b441349.js.map +1 -0
- package/dist/node/column-views.6b6b756b.js +2 -0
- package/dist/node/column-views.6b6b756b.js.map +1 -0
- package/dist/node/column-views.6bba8c57.js +2 -0
- package/dist/node/column-views.6bba8c57.js.map +1 -0
- package/dist/node/column-views.6da49480.js +2 -0
- package/dist/node/column-views.6da49480.js.map +1 -0
- package/dist/node/column-views.7350ac73.js +2 -0
- package/dist/node/column-views.7350ac73.js.map +1 -0
- package/dist/node/column-views.755f726e.js +2 -0
- package/dist/node/column-views.755f726e.js.map +1 -0
- package/dist/node/column-views.770d2c95.js +2 -0
- package/dist/node/column-views.770d2c95.js.map +1 -0
- package/dist/node/column-views.78d3f3c5.js +2 -0
- package/dist/node/column-views.78d3f3c5.js.map +1 -0
- package/dist/node/column-views.7b9bd06e.css +2 -0
- package/dist/node/column-views.7b9bd06e.css.map +1 -0
- package/dist/node/column-views.7d45bbeb.js +2 -0
- package/dist/node/column-views.7d45bbeb.js.map +1 -0
- package/dist/node/column-views.82cf7c0d.js +2 -0
- package/dist/node/column-views.82cf7c0d.js.map +1 -0
- package/dist/node/column-views.869c7199.js +2 -0
- package/dist/node/column-views.869c7199.js.map +1 -0
- package/dist/node/column-views.8c00beb4.js +2 -0
- package/dist/node/column-views.8c00beb4.js.map +1 -0
- package/dist/node/column-views.8cfed88b.js +2 -0
- package/dist/node/column-views.8cfed88b.js.map +1 -0
- package/dist/node/column-views.8f54691f.js +2 -0
- package/dist/node/column-views.8f54691f.js.map +1 -0
- package/dist/node/column-views.95411f1b.js +2 -0
- package/dist/node/column-views.95411f1b.js.map +1 -0
- package/dist/node/column-views.9cb13e51.css +2 -0
- package/dist/node/column-views.9cb13e51.css.map +1 -0
- package/dist/node/column-views.a025fbe3.js +2 -0
- package/dist/node/column-views.a025fbe3.js.map +1 -0
- package/dist/node/column-views.a0aac838.js +2 -0
- package/dist/node/column-views.a0aac838.js.map +1 -0
- package/dist/node/column-views.a501cea0.js +2 -0
- package/dist/node/column-views.a501cea0.js.map +1 -0
- package/dist/node/column-views.a8ffe072.js +2 -0
- package/dist/node/column-views.a8ffe072.js.map +1 -0
- package/dist/node/column-views.aff245a8.js +2 -0
- package/dist/node/column-views.aff245a8.js.map +1 -0
- package/dist/node/column-views.b169b4b5.css +2 -0
- package/dist/node/column-views.b169b4b5.css.map +1 -0
- package/dist/node/column-views.b773edb8.js +2 -0
- package/dist/node/column-views.b773edb8.js.map +1 -0
- package/dist/node/column-views.c968a185.css +2 -0
- package/dist/node/column-views.c968a185.css.map +1 -0
- package/dist/node/column-views.cd3c430b.js +2 -0
- package/dist/node/column-views.cd3c430b.js.map +1 -0
- package/dist/node/column-views.cd468adb.css +2 -0
- package/dist/node/column-views.cd468adb.css.map +1 -0
- package/dist/node/column-views.cdcce702.js +2 -0
- package/dist/node/column-views.cdcce702.js.map +1 -0
- package/dist/node/column-views.ce6808fe.js +2 -0
- package/dist/node/column-views.ce6808fe.js.map +1 -0
- package/dist/node/column-views.cf90f63d.js +2 -0
- package/dist/node/column-views.cf90f63d.js.map +1 -0
- package/dist/node/column-views.d6708353.js +2 -0
- package/dist/node/column-views.d6708353.js.map +1 -0
- package/dist/node/column-views.d9bbd6fb.css +2 -0
- package/dist/node/column-views.d9bbd6fb.css.map +1 -0
- package/dist/node/column-views.e6720522.js +2 -0
- package/dist/node/column-views.e6720522.js.map +1 -0
- package/dist/node/column-views.e7e26765.js +2 -0
- package/dist/node/column-views.e7e26765.js.map +1 -0
- package/dist/node/column-views.e9515ec1.js +2 -0
- package/dist/node/column-views.e9515ec1.js.map +1 -0
- package/dist/node/column-views.ebb44b7d.js +2 -0
- package/dist/node/column-views.ebb44b7d.js.map +1 -0
- package/dist/node/column-views.ecc2394a.js +2 -0
- package/dist/node/column-views.ecc2394a.js.map +1 -0
- package/dist/node/column-views.eea80478.js +2 -0
- package/dist/node/column-views.eea80478.js.map +1 -0
- package/dist/node/column-views.f7315cbc.css +2 -0
- package/dist/node/column-views.f7315cbc.css.map +1 -0
- package/dist/node/column-views.f76ba19f.js +2 -0
- package/dist/node/column-views.f76ba19f.js.map +1 -0
- package/dist/node/column-views.fdaa2963.js +2 -0
- package/dist/node/column-views.fdaa2963.js.map +1 -0
- package/dist/node/column-views.fea32686.js +2 -0
- package/dist/node/column-views.fea32686.js.map +1 -0
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +16 -15
- package/src/age-axis.module.sass +20 -0
- package/src/age-axis.ts +25 -3
- package/src/age-model-overlay.ts +2 -2
- package/src/column.module.sass +3 -3
- package/src/column.ts +92 -19
- package/src/correlation-chart/main.ts +25 -12
- package/src/correlation-chart/prepare-data.ts +6 -6
- package/src/correlation-chart/stories/correlation-chart.stories.ts +12 -6
- package/src/data-provider/base.ts +20 -11
- package/src/data-provider/column-nav.ts +2 -2
- package/src/data-provider/fetch.ts +9 -9
- package/src/data-provider/store.ts +15 -10
- package/src/{carbon-isotopes → facets/carbon-isotopes}/data-area.ts +5 -4
- package/src/{carbon-isotopes → facets/carbon-isotopes}/index.ts +0 -1
- package/src/facets/carbon-isotopes/isotopes-column.module.sass +31 -0
- package/src/{carbon-isotopes → facets/carbon-isotopes}/isotopes-column.ts +119 -87
- package/src/facets/detrital-zircon/index.module.sass +22 -0
- package/src/facets/detrital-zircon/index.ts +132 -0
- package/src/facets/detrital-zircon/provider.ts +51 -0
- package/src/facets/fossils/index.module.sass +14 -0
- package/src/facets/fossils/index.ts +120 -0
- package/src/facets/fossils/provider.ts +80 -0
- package/src/facets/index.ts +3 -0
- package/src/index.ts +2 -1
- package/src/maps/_shared/inset-map.stories.ts +1 -1
- package/src/maps/_shared/inset-map.ts +2 -2
- package/src/maps/_shared/styles.ts +3 -1
- package/src/maps/column-correlation/column-correlation-map.stories.ts +3 -3
- package/src/maps/column-correlation/core.ts +17 -26
- package/src/maps/column-correlation/state.ts +9 -9
- package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +177 -1
- package/src/maps/column-navigation/mapbox/index.ts +18 -15
- package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +4 -4
- package/src/maps/column-navigation/mapbox/state.ts +16 -6
- package/src/maps/column-navigation/svg/animated.ts +2 -2
- package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +2 -2
- package/src/maps/column-navigation/svg/index.ts +2 -4
- package/src/maps/column-navigation/svg/layers.ts +5 -7
- package/src/maps/column-navigation/utils/keyboard-navigation.ts +1 -1
- package/src/notes.ts +49 -0
- package/src/prepare-units/composite-scale.ts +73 -25
- package/src/prepare-units/helpers.ts +78 -13
- package/src/prepare-units/index.ts +17 -17
- package/src/prepare-units/utils.ts +7 -7
- package/src/section.ts +8 -8
- package/src/unit-details/panel.ts +100 -17
- package/src/unit-details/popover.ts +5 -5
- package/src/units/boxes.ts +20 -10
- package/src/units/colors.ts +12 -5
- package/src/units/composite.ts +16 -11
- package/src/units/index.ts +77 -10
- package/src/units/names.ts +19 -16
- package/src/units/resolvers.ts +3 -0
- package/src/units/selection.ts +44 -11
- package/src/units/types.ts +2 -0
- package/dist/esm/column-views.062d164a.js +0 -86
- package/dist/esm/column-views.062d164a.js.map +0 -1
- package/dist/esm/column-views.07521ce6.js +0 -25
- package/dist/esm/column-views.07521ce6.js.map +0 -1
- package/dist/esm/column-views.1c589cc4.js.map +0 -1
- package/dist/esm/column-views.1ece326b.js.map +0 -1
- package/dist/esm/column-views.1edc7300.js.map +0 -1
- package/dist/esm/column-views.240ef158.css.map +0 -1
- package/dist/esm/column-views.28ee5f43.js.map +0 -1
- package/dist/esm/column-views.30646469.js.map +0 -1
- package/dist/esm/column-views.33dbc778.js.map +0 -1
- package/dist/esm/column-views.343b5aa2.js +0 -98
- package/dist/esm/column-views.343b5aa2.js.map +0 -1
- package/dist/esm/column-views.34636ec7.js.map +0 -1
- package/dist/esm/column-views.3bec70d6.js.map +0 -1
- package/dist/esm/column-views.3f4db8cb.js +0 -117
- package/dist/esm/column-views.3f4db8cb.js.map +0 -1
- package/dist/esm/column-views.40c1f361.js.map +0 -1
- package/dist/esm/column-views.4c4c5bac.js.map +0 -1
- package/dist/esm/column-views.57c4ddf3.js.map +0 -1
- package/dist/esm/column-views.5c02fee2.js.map +0 -1
- package/dist/esm/column-views.650bd9f5.js.map +0 -1
- package/dist/esm/column-views.68409161.js.map +0 -1
- package/dist/esm/column-views.86c4b36f.js.map +0 -1
- package/dist/esm/column-views.8dd877af.js.map +0 -1
- package/dist/esm/column-views.8e51206e.js.map +0 -1
- package/dist/esm/column-views.94b5cca1.js +0 -34
- package/dist/esm/column-views.94b5cca1.js.map +0 -1
- package/dist/esm/column-views.9804efda.js.map +0 -1
- package/dist/esm/column-views.9ced149e.js.map +0 -1
- package/dist/esm/column-views.a7be0a4a.css +0 -157
- package/dist/esm/column-views.a7be0a4a.css.map +0 -1
- package/dist/esm/column-views.aa9fcdba.js.map +0 -1
- package/dist/esm/column-views.ac9fb5e1.js +0 -163
- package/dist/esm/column-views.ac9fb5e1.js.map +0 -1
- package/dist/esm/column-views.c58aad3f.js +0 -88
- package/dist/esm/column-views.c58aad3f.js.map +0 -1
- package/dist/esm/column-views.d1ad48eb.js +0 -11
- package/dist/esm/column-views.d1ad48eb.js.map +0 -1
- package/dist/esm/column-views.dff52504.js.map +0 -1
- package/dist/esm/column-views.e2b9c23c.css.map +0 -1
- package/dist/esm/column-views.e77b9d6b.js.map +0 -1
- package/dist/esm/column-views.ea237aa8.js.map +0 -1
- package/dist/esm/column-views.f71ec4b4.js.map +0 -1
- package/dist/esm/column-views.fa6f3292.js.map +0 -1
- package/src/carbon-isotopes/column.module.sass +0 -136
- package/src/carbon-isotopes/column.ts +0 -133
- package/src/carbon-isotopes/core.ts +0 -81
- /package/src/{carbon-isotopes → facets/carbon-isotopes}/data-provider.ts +0 -0
package/src/column.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ColumnAxisType } from "@macrostrat/column-components";
|
|
|
2
2
|
import { hyperStyled } from "@macrostrat/hyper";
|
|
3
3
|
import { useDarkMode } from "@macrostrat/ui-components";
|
|
4
4
|
import classNames from "classnames";
|
|
5
|
-
import { RefObject, useRef, HTMLAttributes } from "react";
|
|
5
|
+
import { RefObject, useRef, HTMLAttributes, useCallback } from "react";
|
|
6
6
|
import styles from "./column.module.sass";
|
|
7
7
|
import {
|
|
8
8
|
UnitSelectionProvider,
|
|
@@ -15,6 +15,7 @@ import { ColumnHeightScaleOptions } from "./prepare-units/composite-scale";
|
|
|
15
15
|
import { UnitSelectionPopover } from "./unit-details";
|
|
16
16
|
import {
|
|
17
17
|
MacrostratColumnDataProvider,
|
|
18
|
+
useCompositeScale,
|
|
18
19
|
useMacrostratColumnData,
|
|
19
20
|
} from "./data-provider";
|
|
20
21
|
import {
|
|
@@ -38,6 +39,11 @@ interface BaseColumnProps extends SectionSharedProps {
|
|
|
38
39
|
// Timescale properties
|
|
39
40
|
showTimescale?: boolean;
|
|
40
41
|
timescaleLevels?: number | [number, number];
|
|
42
|
+
onMouseOver?: (
|
|
43
|
+
unit: UnitLong | null,
|
|
44
|
+
height: number | null,
|
|
45
|
+
evt: MouseEvent,
|
|
46
|
+
) => void;
|
|
41
47
|
}
|
|
42
48
|
|
|
43
49
|
export interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {
|
|
@@ -47,6 +53,7 @@ export interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {
|
|
|
47
53
|
b_age?: number;
|
|
48
54
|
mergeSections?: MergeSectionsMode;
|
|
49
55
|
showUnitPopover?: boolean;
|
|
56
|
+
allowUnitSelection?: boolean;
|
|
50
57
|
selectedUnit?: number | null;
|
|
51
58
|
onUnitSelected?: (unitID: number | null, unit: any) => void;
|
|
52
59
|
// Unconformity height in pixels
|
|
@@ -71,6 +78,7 @@ export function Column(props: ColumnProps) {
|
|
|
71
78
|
minPixelScale = 0.2,
|
|
72
79
|
minSectionHeight = 50,
|
|
73
80
|
collapseSmallUnconformities = true,
|
|
81
|
+
allowUnitSelection,
|
|
74
82
|
...rest
|
|
75
83
|
} = props;
|
|
76
84
|
const ref = useRef<HTMLElement>();
|
|
@@ -96,22 +104,41 @@ export function Column(props: ColumnProps) {
|
|
|
96
104
|
title: "Empty column",
|
|
97
105
|
description: "No sections found in this column.",
|
|
98
106
|
icon: "warning-sign",
|
|
99
|
-
})
|
|
107
|
+
}),
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
let main: any = h(ColumnInner, { columnRef: ref, ...rest }, [
|
|
112
|
+
children,
|
|
113
|
+
h.if(showUnitPopover)(UnitSelectionPopover),
|
|
114
|
+
h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),
|
|
115
|
+
]);
|
|
116
|
+
|
|
117
|
+
/* By default, unit selection is disabled. However, if any related props are passed,
|
|
118
|
+
we enable it.
|
|
119
|
+
*/
|
|
120
|
+
let _allowUnitSelection = allowUnitSelection ?? false;
|
|
121
|
+
if (showUnitPopover || selectedUnit != null || onUnitSelected != null) {
|
|
122
|
+
_allowUnitSelection = true;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (_allowUnitSelection) {
|
|
126
|
+
main = h(
|
|
127
|
+
UnitSelectionProvider,
|
|
128
|
+
{
|
|
129
|
+
columnRef: ref,
|
|
130
|
+
onUnitSelected,
|
|
131
|
+
selectedUnit,
|
|
132
|
+
units,
|
|
133
|
+
},
|
|
134
|
+
main,
|
|
100
135
|
);
|
|
101
136
|
}
|
|
102
137
|
|
|
103
138
|
return h(
|
|
104
139
|
MacrostratColumnDataProvider,
|
|
105
140
|
{ units, sections, totalHeight, axisType },
|
|
106
|
-
|
|
107
|
-
UnitSelectionProvider,
|
|
108
|
-
{ columnRef: ref, onUnitSelected, selectedUnit, units },
|
|
109
|
-
h(ColumnInner, { columnRef: ref, ...rest }, [
|
|
110
|
-
children,
|
|
111
|
-
h.if(showUnitPopover)(UnitSelectionPopover),
|
|
112
|
-
h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),
|
|
113
|
-
])
|
|
114
|
-
)
|
|
141
|
+
main,
|
|
115
142
|
);
|
|
116
143
|
}
|
|
117
144
|
|
|
@@ -134,12 +161,11 @@ function ColumnInner(props: ColumnInnerProps) {
|
|
|
134
161
|
showTimescale,
|
|
135
162
|
timescaleLevels,
|
|
136
163
|
maxInternalColumns,
|
|
164
|
+
onMouseOver,
|
|
137
165
|
} = props;
|
|
138
166
|
|
|
139
167
|
const { axisType } = useMacrostratColumnData();
|
|
140
168
|
|
|
141
|
-
const dispatch = useUnitSelectionDispatch();
|
|
142
|
-
|
|
143
169
|
let width = _width;
|
|
144
170
|
let columnWidth = _columnWidth;
|
|
145
171
|
if (columnWidth > width) {
|
|
@@ -150,8 +176,8 @@ function ColumnInner(props: ColumnInnerProps) {
|
|
|
150
176
|
showLabelColumn = false;
|
|
151
177
|
}
|
|
152
178
|
|
|
153
|
-
let _showTimescale = showTimescale;
|
|
154
|
-
if (timescaleLevels
|
|
179
|
+
let _showTimescale = showTimescale ?? true;
|
|
180
|
+
if (timescaleLevels != null) {
|
|
155
181
|
_showTimescale = true;
|
|
156
182
|
}
|
|
157
183
|
_showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;
|
|
@@ -159,9 +185,7 @@ function ColumnInner(props: ColumnInnerProps) {
|
|
|
159
185
|
return h(
|
|
160
186
|
ColumnContainer,
|
|
161
187
|
{
|
|
162
|
-
|
|
163
|
-
dispatch?.(null, null, evt as any);
|
|
164
|
-
},
|
|
188
|
+
...useMouseEventHandlers(onMouseOver),
|
|
165
189
|
className,
|
|
166
190
|
},
|
|
167
191
|
h("div.column", { ref: columnRef }, [
|
|
@@ -178,10 +202,59 @@ function ColumnInner(props: ColumnInnerProps) {
|
|
|
178
202
|
maxInternalColumns,
|
|
179
203
|
}),
|
|
180
204
|
children,
|
|
181
|
-
])
|
|
205
|
+
]),
|
|
182
206
|
);
|
|
183
207
|
}
|
|
184
208
|
|
|
209
|
+
type ColumnMouseOverHandler = (
|
|
210
|
+
unit: UnitLong | null,
|
|
211
|
+
height: number | null,
|
|
212
|
+
evt: MouseEvent,
|
|
213
|
+
) => void;
|
|
214
|
+
|
|
215
|
+
function useMouseEventHandlers(
|
|
216
|
+
_onMouseOver: ColumnMouseOverHandler | null = null,
|
|
217
|
+
) {
|
|
218
|
+
/** Click event handler */
|
|
219
|
+
|
|
220
|
+
// Click handler for unit selection
|
|
221
|
+
const dispatch = useUnitSelectionDispatch();
|
|
222
|
+
const onClick = useCallback(
|
|
223
|
+
(evt) => {
|
|
224
|
+
dispatch?.(null, null, evt as any);
|
|
225
|
+
},
|
|
226
|
+
[dispatch],
|
|
227
|
+
);
|
|
228
|
+
|
|
229
|
+
/** Hover event handlers */
|
|
230
|
+
const scale = useCompositeScale();
|
|
231
|
+
|
|
232
|
+
const onMouseOver = useCallback(
|
|
233
|
+
(evt) => {
|
|
234
|
+
const height = scale.invert(
|
|
235
|
+
evt.clientY - evt.currentTarget.getBoundingClientRect().top,
|
|
236
|
+
);
|
|
237
|
+
_onMouseOver?.(null, height, evt);
|
|
238
|
+
},
|
|
239
|
+
[scale, _onMouseOver],
|
|
240
|
+
);
|
|
241
|
+
|
|
242
|
+
const onMouseOut = useCallback(() => {
|
|
243
|
+
_onMouseOver?.(null, null, null);
|
|
244
|
+
}, [_onMouseOver]);
|
|
245
|
+
|
|
246
|
+
if (_onMouseOver == null) {
|
|
247
|
+
return {
|
|
248
|
+
onClick,
|
|
249
|
+
onMouseOver: undefined,
|
|
250
|
+
onMouseMove: undefined,
|
|
251
|
+
onMouseOut: undefined,
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
return { onMouseOver, onMouseMove: onMouseOver, onMouseOut, onClick };
|
|
256
|
+
}
|
|
257
|
+
|
|
185
258
|
export interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {
|
|
186
259
|
className?: string;
|
|
187
260
|
}
|
|
@@ -44,6 +44,7 @@ export interface CorrelationChartProps extends CorrelationChartSettings {
|
|
|
44
44
|
unconformityLabels?: boolean;
|
|
45
45
|
selectedUnit?: number | null;
|
|
46
46
|
showUnitPopover?: boolean;
|
|
47
|
+
unitComponent?: any;
|
|
47
48
|
onUnitSelected?: (unitID: number | null, unit: BaseUnit | null) => void;
|
|
48
49
|
}
|
|
49
50
|
|
|
@@ -55,6 +56,7 @@ export function CorrelationChart({
|
|
|
55
56
|
showUnitPopover = true,
|
|
56
57
|
selectedUnit,
|
|
57
58
|
onUnitSelected,
|
|
59
|
+
unitComponent,
|
|
58
60
|
...scaleProps
|
|
59
61
|
}: CorrelationChartProps) {
|
|
60
62
|
const defaultScaleProps = {
|
|
@@ -124,15 +126,16 @@ export function CorrelationChart({
|
|
|
124
126
|
offset,
|
|
125
127
|
domain,
|
|
126
128
|
pixelScale,
|
|
129
|
+
unitComponent,
|
|
127
130
|
});
|
|
128
|
-
})
|
|
131
|
+
}),
|
|
129
132
|
),
|
|
130
133
|
h.if(showUnitPopover)(UnitSelectionPopover),
|
|
131
134
|
// Navigation only works within a column for now...
|
|
132
135
|
h(UnitKeyboardNavigation, { units }),
|
|
133
136
|
]),
|
|
134
|
-
])
|
|
135
|
-
)
|
|
137
|
+
]),
|
|
138
|
+
),
|
|
136
139
|
);
|
|
137
140
|
}
|
|
138
141
|
|
|
@@ -140,6 +143,7 @@ function Package({
|
|
|
140
143
|
columnData,
|
|
141
144
|
columnSpacing,
|
|
142
145
|
columnWidth,
|
|
146
|
+
unitComponent,
|
|
143
147
|
offset,
|
|
144
148
|
domain,
|
|
145
149
|
pixelScale,
|
|
@@ -151,6 +155,7 @@ function Package({
|
|
|
151
155
|
columnData.map((data, i) => {
|
|
152
156
|
return h(Column, {
|
|
153
157
|
units: data.units,
|
|
158
|
+
unitComponent,
|
|
154
159
|
width: columnWidth,
|
|
155
160
|
key: i,
|
|
156
161
|
domain,
|
|
@@ -177,7 +182,14 @@ interface ColumnProps {
|
|
|
177
182
|
}
|
|
178
183
|
|
|
179
184
|
function Column(props: ColumnProps) {
|
|
180
|
-
const {
|
|
185
|
+
const {
|
|
186
|
+
units,
|
|
187
|
+
width = 150,
|
|
188
|
+
offsetLeft,
|
|
189
|
+
domain,
|
|
190
|
+
pixelScale,
|
|
191
|
+
unitComponent = ColoredUnitComponent,
|
|
192
|
+
} = props;
|
|
181
193
|
|
|
182
194
|
const columnWidth = width;
|
|
183
195
|
|
|
@@ -200,13 +212,14 @@ function Column(props: ColumnProps) {
|
|
|
200
212
|
axisType: ColumnAxisType.AGE,
|
|
201
213
|
},
|
|
202
214
|
h(UnitBoxes, {
|
|
203
|
-
unitComponent
|
|
215
|
+
unitComponent,
|
|
204
216
|
unitComponentProps: {
|
|
205
217
|
nColumns: 2,
|
|
206
218
|
width: columnWidth,
|
|
219
|
+
showLabel: false,
|
|
207
220
|
},
|
|
208
|
-
})
|
|
209
|
-
)
|
|
221
|
+
}),
|
|
222
|
+
),
|
|
210
223
|
);
|
|
211
224
|
}
|
|
212
225
|
|
|
@@ -232,7 +245,7 @@ function PackageSVGOverlay({ data, columnWidth = 100, columnSpacing = 0 }) {
|
|
|
232
245
|
pixelScale: bestPixelScale,
|
|
233
246
|
columnSpacing,
|
|
234
247
|
});
|
|
235
|
-
})
|
|
248
|
+
}),
|
|
236
249
|
);
|
|
237
250
|
}
|
|
238
251
|
|
|
@@ -251,7 +264,7 @@ function LaterallyExtensiveUnit({ data, scale, pixelScale, columnSpacing }) {
|
|
|
251
264
|
key: i,
|
|
252
265
|
columnSpacing,
|
|
253
266
|
});
|
|
254
|
-
})
|
|
267
|
+
}),
|
|
255
268
|
);
|
|
256
269
|
}
|
|
257
270
|
|
|
@@ -270,13 +283,13 @@ function StratColSpan({
|
|
|
270
283
|
return h(
|
|
271
284
|
"div.strat-col-span",
|
|
272
285
|
{ style: { top, height, width, left } },
|
|
273
|
-
strat_name_long
|
|
286
|
+
strat_name_long,
|
|
274
287
|
);
|
|
275
288
|
}
|
|
276
289
|
|
|
277
290
|
function ChartArea({ children }) {
|
|
278
291
|
const setSelectedUnit = useUnitSelectionStore(
|
|
279
|
-
(state) => state.setSelectedUnit
|
|
292
|
+
(state) => state.setSelectedUnit,
|
|
280
293
|
);
|
|
281
294
|
|
|
282
295
|
return h(
|
|
@@ -286,7 +299,7 @@ function ChartArea({ children }) {
|
|
|
286
299
|
setSelectedUnit(null);
|
|
287
300
|
},
|
|
288
301
|
},
|
|
289
|
-
children
|
|
302
|
+
children,
|
|
290
303
|
);
|
|
291
304
|
}
|
|
292
305
|
|
|
@@ -40,7 +40,7 @@ export interface ColumnIdentifier {
|
|
|
40
40
|
|
|
41
41
|
export function buildCorrelationChartData(
|
|
42
42
|
columns: ColumnData[],
|
|
43
|
-
settings: CorrelationChartSettings
|
|
43
|
+
settings: CorrelationChartSettings,
|
|
44
44
|
): CorrelationChartData {
|
|
45
45
|
console.log(settings);
|
|
46
46
|
const {
|
|
@@ -108,7 +108,7 @@ interface MultiColumnPackageData {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
export function findLaterallyExtensiveUnits(
|
|
111
|
-
pkg: MultiColumnPackageData
|
|
111
|
+
pkg: MultiColumnPackageData,
|
|
112
112
|
): UnitGroup[] {
|
|
113
113
|
const { columnData, b_age, t_age } = pkg;
|
|
114
114
|
// Group units by strat_name_id
|
|
@@ -130,7 +130,7 @@ export function findLaterallyExtensiveUnits(
|
|
|
130
130
|
const units = columnData.map((d) => unitIndex0.get(d.columnID) ?? null);
|
|
131
131
|
const filteredUnits = units.filter((d) => d != null);
|
|
132
132
|
const [t_age, b_age] = mergeAgeRanges(
|
|
133
|
-
filteredUnits.map((d) => [d.t_age, d.b_age])
|
|
133
|
+
filteredUnits.map((d) => [d.t_age, d.b_age]),
|
|
134
134
|
);
|
|
135
135
|
if (filteredUnits.length <= 1) continue;
|
|
136
136
|
|
|
@@ -179,7 +179,7 @@ export function splitStratIntoBoxes(pkg: UnitGroup): UnitGroupBox[] {
|
|
|
179
179
|
|
|
180
180
|
function separateColumns(
|
|
181
181
|
pkg: PackageLayoutData,
|
|
182
|
-
columnIDs: number[]
|
|
182
|
+
columnIDs: number[],
|
|
183
183
|
): MultiColumnPackageData {
|
|
184
184
|
/** Separate columns by col_id */
|
|
185
185
|
const { units, t_age, b_age } = pkg;
|
|
@@ -196,7 +196,7 @@ function separateColumns(
|
|
|
196
196
|
...pkg,
|
|
197
197
|
units: u1,
|
|
198
198
|
},
|
|
199
|
-
ColumnAxisType.AGE
|
|
199
|
+
ColumnAxisType.AGE,
|
|
200
200
|
),
|
|
201
201
|
};
|
|
202
202
|
}),
|
|
@@ -207,7 +207,7 @@ function separateColumns(
|
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
export function columnGeoJSONRecordToColumnIdentifier(
|
|
210
|
-
col: ColumnGeoJSONRecord
|
|
210
|
+
col: ColumnGeoJSONRecord,
|
|
211
211
|
): ColumnIdentifier {
|
|
212
212
|
return {
|
|
213
213
|
col_id: col.properties.col_id,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Meta } from "@storybook/react";
|
|
1
|
+
import { Meta } from "@storybook/react-vite";
|
|
2
2
|
import "@macrostrat/style-system";
|
|
3
|
-
import { useArgs } from "
|
|
3
|
+
import { useArgs } from "storybook/preview-api";
|
|
4
4
|
import { useCallback } from "react";
|
|
5
5
|
import {
|
|
6
6
|
ColumnCorrelationMap,
|
|
@@ -15,6 +15,7 @@ import { CorrelationChart, CorrelationChartProps } from "../main";
|
|
|
15
15
|
import { ErrorBoundary, useAsyncMemo } from "@macrostrat/ui-components";
|
|
16
16
|
import { OverlaysProvider } from "@blueprintjs/core";
|
|
17
17
|
import { parseLineFromString, stringifyLine } from "../hash-string";
|
|
18
|
+
import { EnvironmentColoredUnitComponent } from "../../units";
|
|
18
19
|
|
|
19
20
|
const mapboxToken = import.meta.env.VITE_MAPBOX_API_TOKEN;
|
|
20
21
|
|
|
@@ -49,7 +50,7 @@ function CorrelationStoryUI({
|
|
|
49
50
|
//showLogo: false,
|
|
50
51
|
}),
|
|
51
52
|
]),
|
|
52
|
-
])
|
|
53
|
+
]),
|
|
53
54
|
);
|
|
54
55
|
}
|
|
55
56
|
|
|
@@ -58,7 +59,7 @@ function CorrelationDiagramWrapper(props: Omit<CorrelationChartProps, "data">) {
|
|
|
58
59
|
|
|
59
60
|
// Sync focused columns with map
|
|
60
61
|
const focusedColumns = useCorrelationMapStore(
|
|
61
|
-
(state) => state.focusedColumns
|
|
62
|
+
(state) => state.focusedColumns,
|
|
62
63
|
);
|
|
63
64
|
|
|
64
65
|
const columnUnits = useAsyncMemo(async () => {
|
|
@@ -71,7 +72,7 @@ function CorrelationDiagramWrapper(props: Omit<CorrelationChartProps, "data">) {
|
|
|
71
72
|
ErrorBoundary,
|
|
72
73
|
h(OverlaysProvider, [
|
|
73
74
|
h(CorrelationChart, { data: columnUnits, ...props }),
|
|
74
|
-
])
|
|
75
|
+
]),
|
|
75
76
|
),
|
|
76
77
|
]);
|
|
77
78
|
}
|
|
@@ -171,7 +172,7 @@ function useCorrelationLine() {
|
|
|
171
172
|
(selectedUnit) => {
|
|
172
173
|
updateArgs({ selectedUnit });
|
|
173
174
|
},
|
|
174
|
-
[updateArgs]
|
|
175
|
+
[updateArgs],
|
|
175
176
|
);
|
|
176
177
|
|
|
177
178
|
return {
|
|
@@ -190,3 +191,8 @@ function Template(args) {
|
|
|
190
191
|
}
|
|
191
192
|
|
|
192
193
|
export const Primary = Template.bind({});
|
|
194
|
+
|
|
195
|
+
export const ColoredByEnvironment = Template.bind({});
|
|
196
|
+
ColoredByEnvironment.args = {
|
|
197
|
+
unitComponent: EnvironmentColoredUnitComponent,
|
|
198
|
+
};
|
|
@@ -53,12 +53,12 @@ interface MacrostratStore extends RefsSlice {
|
|
|
53
53
|
columnFootprints: Map<number, ColumnFootprintsStorage>;
|
|
54
54
|
getColumns(
|
|
55
55
|
projectID: number | null,
|
|
56
|
-
inProcess: boolean
|
|
56
|
+
inProcess: boolean,
|
|
57
57
|
): Promise<ColumnGeoJSONRecord[]>;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
function createMacrostratStore(
|
|
61
|
-
baseURL: string = "https://macrostrat.org/api/v2"
|
|
61
|
+
baseURL: string = "https://macrostrat.org/api/v2",
|
|
62
62
|
) {
|
|
63
63
|
return create<MacrostratStore>((set, get): MacrostratStore => {
|
|
64
64
|
return {
|
|
@@ -221,7 +221,7 @@ function createIntervalsSlice(set, get) {
|
|
|
221
221
|
return Array.from(_intervals.values());
|
|
222
222
|
if (timescaleID != null) {
|
|
223
223
|
return Array.from(_intervals.values() as any[]).filter(
|
|
224
|
-
(d) => d.timescale_id == timescaleID
|
|
224
|
+
(d) => d.timescale_id == timescaleID,
|
|
225
225
|
);
|
|
226
226
|
}
|
|
227
227
|
return ids.map((id) => intervals.get(id));
|
|
@@ -233,7 +233,7 @@ function includesTimescale(intervals: Map<number, any>, timescaleID: number) {
|
|
|
233
233
|
if (intervals == null) return false;
|
|
234
234
|
if (timescaleID == null) return true;
|
|
235
235
|
return Array.from(intervals.values()).some(
|
|
236
|
-
(d) => d.timescale_id == timescaleID
|
|
236
|
+
(d) => d.timescale_id == timescaleID,
|
|
237
237
|
);
|
|
238
238
|
}
|
|
239
239
|
|
|
@@ -272,7 +272,7 @@ export function useMacrostratDefs(dataType: string): Map<number, any> | null {
|
|
|
272
272
|
|
|
273
273
|
export function useMacrostratColumns(
|
|
274
274
|
projectID: number | null,
|
|
275
|
-
inProcess: boolean
|
|
275
|
+
inProcess: boolean,
|
|
276
276
|
) {
|
|
277
277
|
const getColumns = useMacrostratStore((s) => s.getColumns);
|
|
278
278
|
const columnsMap = useMacrostratStore((s) => s.columnFootprints);
|
|
@@ -292,7 +292,7 @@ export function useMacrostratColumns(
|
|
|
292
292
|
if (!inProcess && colData.inProcess) {
|
|
293
293
|
// Our available set of columns includes 'in process' columns, but we don't want them
|
|
294
294
|
columns.features = columns.features?.filter(
|
|
295
|
-
(d) => d.properties.status != "in process"
|
|
295
|
+
(d) => d.properties.status != "in process",
|
|
296
296
|
);
|
|
297
297
|
}
|
|
298
298
|
return columns;
|
|
@@ -323,7 +323,7 @@ export function MacrostratDataProvider(props: MacrostratDataProviderProps) {
|
|
|
323
323
|
return h(
|
|
324
324
|
MacrostratAPIProvider,
|
|
325
325
|
{ baseURL },
|
|
326
|
-
h(MacrostratDataProviderContext.Provider, { value: store }, children)
|
|
326
|
+
h(MacrostratDataProviderContext.Provider, { value: store }, children),
|
|
327
327
|
);
|
|
328
328
|
}
|
|
329
329
|
|
|
@@ -341,7 +341,7 @@ export function MacrostratAPIProvider({
|
|
|
341
341
|
baseURL,
|
|
342
342
|
}: APIProviderProps) {
|
|
343
343
|
baseURL ??= useDev
|
|
344
|
-
? "https://
|
|
344
|
+
? "https://dev.macrostrat.org/api/v2"
|
|
345
345
|
: "https://macrostrat.org/api/v2";
|
|
346
346
|
|
|
347
347
|
return h(
|
|
@@ -350,7 +350,7 @@ export function MacrostratAPIProvider({
|
|
|
350
350
|
baseURL,
|
|
351
351
|
unwrapResponse: (res) => res.success.data,
|
|
352
352
|
},
|
|
353
|
-
children
|
|
353
|
+
children,
|
|
354
354
|
);
|
|
355
355
|
}
|
|
356
356
|
|
|
@@ -364,7 +364,7 @@ export function MacrostratColumnProvider(props) {
|
|
|
364
364
|
return h(
|
|
365
365
|
ColumnProvider,
|
|
366
366
|
{ axisType, divisions: units, range: domain, pixelsPerMeter: pixelScale },
|
|
367
|
-
children
|
|
367
|
+
children,
|
|
368
368
|
);
|
|
369
369
|
}
|
|
370
370
|
|
|
@@ -372,7 +372,7 @@ export function MacrostratColumnProvider(props) {
|
|
|
372
372
|
export function LithologiesProvider({ children }) {
|
|
373
373
|
useEffect(() => {
|
|
374
374
|
console.warn(
|
|
375
|
-
"LithologiesProvider is deprecated. Replace with MacrostratDataProvider"
|
|
375
|
+
"LithologiesProvider is deprecated. Replace with MacrostratDataProvider",
|
|
376
376
|
);
|
|
377
377
|
}, []);
|
|
378
378
|
return children;
|
|
@@ -386,3 +386,12 @@ export function useLithologies() {
|
|
|
386
386
|
}, [lithologies, getLithologies]);
|
|
387
387
|
return lithologies;
|
|
388
388
|
}
|
|
389
|
+
|
|
390
|
+
export function useEnvironments() {
|
|
391
|
+
const getEnvironments = useMacrostratStore((s) => s.getEnvironments);
|
|
392
|
+
const environments = useMacrostratStore((s) => s.environments);
|
|
393
|
+
useEffect(() => {
|
|
394
|
+
if (environments == null) getEnvironments();
|
|
395
|
+
}, [environments, getEnvironments]);
|
|
396
|
+
return environments;
|
|
397
|
+
}
|
|
@@ -14,13 +14,13 @@ type ColumnManagerData = [ColumnArgs, (c: ColumnArgs) => void];
|
|
|
14
14
|
const ColumnNavCtx = createContext<ColumnManagerData | null>(null);
|
|
15
15
|
|
|
16
16
|
export function useColumnNav(
|
|
17
|
-
defaultArgs: ColumnArgs = { col_id: 495, unit_id: null }
|
|
17
|
+
defaultArgs: ColumnArgs = { col_id: 495, unit_id: null },
|
|
18
18
|
): ColumnManagerData {
|
|
19
19
|
const ctx = useContext(ColumnNavCtx);
|
|
20
20
|
if (ctx != null) return ctx;
|
|
21
21
|
|
|
22
22
|
const [columnArgs, setColumnArgs] = useState<ColumnArgs>(
|
|
23
|
-
extractColumnArgs(getQueryString(window.location.search)) ?? defaultArgs
|
|
23
|
+
extractColumnArgs(getQueryString(window.location.search)) ?? defaultArgs,
|
|
24
24
|
);
|
|
25
25
|
|
|
26
26
|
useEffect(() => setQueryString(columnArgs), [columnArgs]);
|
|
@@ -15,7 +15,7 @@ import { geoArea } from "d3-geo";
|
|
|
15
15
|
|
|
16
16
|
function defaultFetch(
|
|
17
17
|
url: string,
|
|
18
|
-
options: RequestInit | undefined = undefined
|
|
18
|
+
options: RequestInit | undefined = undefined,
|
|
19
19
|
) {
|
|
20
20
|
const baseURL = "https://macrostrat.org/api/v2";
|
|
21
21
|
return crossFetch(baseURL + url, options);
|
|
@@ -30,7 +30,7 @@ export interface ColumnFetchOptions {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export async function fetchAllColumns(
|
|
33
|
-
options: ColumnFetchOptions = {}
|
|
33
|
+
options: ColumnFetchOptions = {},
|
|
34
34
|
): Promise<ColumnGeoJSONRecord[]> {
|
|
35
35
|
const {
|
|
36
36
|
apiBaseURL,
|
|
@@ -92,7 +92,7 @@ export function useColumnFeatures({
|
|
|
92
92
|
return useAPIResult(
|
|
93
93
|
apiRoute,
|
|
94
94
|
{ format, all, status_code, project_id },
|
|
95
|
-
processor
|
|
95
|
+
processor,
|
|
96
96
|
);
|
|
97
97
|
}
|
|
98
98
|
|
|
@@ -117,12 +117,12 @@ function processTopoJSON(res) {
|
|
|
117
117
|
|
|
118
118
|
function postProcessColumns(columns) {
|
|
119
119
|
return promoteColumnIDs(
|
|
120
|
-
convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns))
|
|
120
|
+
convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns)),
|
|
121
121
|
);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
function promoteColumnIDs(
|
|
125
|
-
features: ColumnGeoJSONRecord[]
|
|
125
|
+
features: ColumnGeoJSONRecord[],
|
|
126
126
|
): ColumnGeoJSONRecordWithID[] {
|
|
127
127
|
return features.map((f, i) => {
|
|
128
128
|
return {
|
|
@@ -171,7 +171,7 @@ export async function fetchLithologies(fetch = defaultFetch) {
|
|
|
171
171
|
|
|
172
172
|
export async function fetchIntervals(
|
|
173
173
|
timescaleID: number | null,
|
|
174
|
-
fetch = defaultFetch
|
|
174
|
+
fetch = defaultFetch,
|
|
175
175
|
) {
|
|
176
176
|
let url = `/defs/intervals`;
|
|
177
177
|
if (timescaleID != null) {
|
|
@@ -190,7 +190,7 @@ export async function fetchEnvironments(fetch = defaultFetch) {
|
|
|
190
190
|
|
|
191
191
|
export async function fetchRefs(
|
|
192
192
|
refs: number[],
|
|
193
|
-
fetch = defaultFetch
|
|
193
|
+
fetch = defaultFetch,
|
|
194
194
|
): Promise<MacrostratRef[]> {
|
|
195
195
|
let url = `/defs/refs`;
|
|
196
196
|
if (refs.length == 0) {
|
|
@@ -208,7 +208,7 @@ export type ColumnData = {
|
|
|
208
208
|
|
|
209
209
|
export async function fetchUnits(
|
|
210
210
|
columns: number[],
|
|
211
|
-
fetch = defaultFetch
|
|
211
|
+
fetch = defaultFetch,
|
|
212
212
|
): Promise<ColumnData[]> {
|
|
213
213
|
const promises = columns.map((col_id) => fetchColumnUnits(col_id, fetch));
|
|
214
214
|
return await Promise.all(promises);
|
|
@@ -216,7 +216,7 @@ export async function fetchUnits(
|
|
|
216
216
|
|
|
217
217
|
export async function fetchColumnUnits(
|
|
218
218
|
col_id: number,
|
|
219
|
-
fetch = defaultFetch
|
|
219
|
+
fetch = defaultFetch,
|
|
220
220
|
): Promise<ColumnData> {
|
|
221
221
|
const params = new URLSearchParams();
|
|
222
222
|
params.append("response", "long");
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
createContext,
|
|
3
|
+
useContext,
|
|
4
|
+
ReactNode,
|
|
5
|
+
useMemo,
|
|
6
|
+
useEffect,
|
|
7
|
+
} from "react";
|
|
2
8
|
import h from "@macrostrat/hyper";
|
|
3
9
|
import {
|
|
4
10
|
createCompositeScale,
|
|
5
11
|
PackageLayoutData,
|
|
12
|
+
CompositeColumnScale,
|
|
6
13
|
} from "../prepare-units/composite-scale";
|
|
7
14
|
import { ExtUnit } from "../prepare-units/helpers";
|
|
8
15
|
import { ColumnAxisType } from "@macrostrat/column-components";
|
|
@@ -51,7 +58,7 @@ export function useMacrostratColumnData() {
|
|
|
51
58
|
const ctx = useContext(MacrostratColumnDataContext);
|
|
52
59
|
if (!ctx) {
|
|
53
60
|
throw new Error(
|
|
54
|
-
"useMacrostratColumnData must be used within a MacrostratColumnDataProvider"
|
|
61
|
+
"useMacrostratColumnData must be used within a MacrostratColumnDataProvider",
|
|
55
62
|
);
|
|
56
63
|
}
|
|
57
64
|
return ctx;
|
|
@@ -61,12 +68,10 @@ export function useMacrostratUnits() {
|
|
|
61
68
|
return useMacrostratColumnData().units;
|
|
62
69
|
}
|
|
63
70
|
|
|
64
|
-
export function useCompositeScale() {
|
|
65
|
-
const ctx =
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
return createCompositeScale(ctx.sections, true);
|
|
71
|
+
export function useCompositeScale(): CompositeColumnScale {
|
|
72
|
+
const ctx = useMacrostratColumnData();
|
|
73
|
+
return useMemo(
|
|
74
|
+
() => createCompositeScale(ctx.sections, true),
|
|
75
|
+
[ctx.sections],
|
|
76
|
+
);
|
|
72
77
|
}
|
|
@@ -2,6 +2,7 @@ import { line } from "d3-shape";
|
|
|
2
2
|
import { createContext, useContext } from "react";
|
|
3
3
|
import h from "@macrostrat/hyper";
|
|
4
4
|
import { ColumnLayoutContext } from "@macrostrat/column-components";
|
|
5
|
+
import { useCompositeScale } from "../../data-provider";
|
|
5
6
|
|
|
6
7
|
const inDomain = (scale, num) => {
|
|
7
8
|
const domain = scale.domain();
|
|
@@ -29,9 +30,11 @@ export interface DataAreaProps {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
const IsotopesDataArea = function (props: DataAreaProps) {
|
|
32
|
-
const
|
|
33
|
+
const xScale = useContext(ColumnLayoutContext)?.xScale;
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
const scale = useCompositeScale();
|
|
36
|
+
|
|
37
|
+
let { corrected, system, children, getHeight, clipY = false } = props;
|
|
35
38
|
if (getHeight == null) {
|
|
36
39
|
getHeight = function (d) {
|
|
37
40
|
if (d.height == null) {
|
|
@@ -63,8 +66,6 @@ const IsotopesDataArea = function (props: DataAreaProps) {
|
|
|
63
66
|
return h(IsotopesDataContext.Provider, { value }, h("g.data", children));
|
|
64
67
|
};
|
|
65
68
|
|
|
66
|
-
IsotopesDataArea.defaultProps = { clipY: false };
|
|
67
|
-
|
|
68
69
|
const IsotopeDataPoint = function (props) {
|
|
69
70
|
const { pointLocator } = useContext(IsotopesDataContext);
|
|
70
71
|
const { datum, strokeWidth, ...rest } = props;
|