@macrostrat/column-views 2.4.4 → 3.0.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 +9 -0
- package/dist/age-axis.cjs +123 -0
- package/dist/age-axis.cjs.map +1 -0
- package/dist/age-axis.d.ts +33 -0
- package/dist/age-axis.js +123 -0
- package/dist/age-axis.js.map +1 -0
- package/dist/age-axis.module.sass.cjs +18 -0
- package/dist/age-axis.module.sass.cjs.map +1 -0
- package/dist/age-axis.module.sass.js +18 -0
- package/dist/age-axis.module.sass.js.map +1 -0
- package/dist/age-model-overlay.cjs +48 -0
- package/dist/age-model-overlay.cjs.map +1 -0
- package/dist/age-model-overlay.d.ts +24 -0
- package/dist/age-model-overlay.js +48 -0
- package/dist/age-model-overlay.js.map +1 -0
- package/dist/age-model-overlay.module.sass.cjs +8 -0
- package/dist/age-model-overlay.module.sass.cjs.map +1 -0
- package/dist/age-model-overlay.module.sass.js +8 -0
- package/dist/age-model-overlay.module.sass.js.map +1 -0
- package/dist/column-views.css +685 -0
- package/dist/column.cjs +247 -0
- package/dist/column.cjs.map +1 -0
- package/dist/column.d.ts +44 -0
- package/dist/column.js +247 -0
- package/dist/column.js.map +1 -0
- package/dist/column.module.sass.cjs +33 -0
- package/dist/column.module.sass.cjs.map +1 -0
- package/dist/column.module.sass.js +33 -0
- package/dist/column.module.sass.js.map +1 -0
- package/dist/correlation-chart/hash-string.cjs +46 -0
- package/dist/correlation-chart/hash-string.cjs.map +1 -0
- package/dist/correlation-chart/hash-string.d.ts +3 -0
- package/dist/correlation-chart/hash-string.js +46 -0
- package/dist/correlation-chart/hash-string.js.map +1 -0
- package/dist/correlation-chart/index.d.ts +2 -0
- package/dist/correlation-chart/main.cjs +202 -0
- package/dist/correlation-chart/main.cjs.map +1 -0
- package/dist/correlation-chart/main.d.ts +15 -0
- package/dist/correlation-chart/main.js +202 -0
- package/dist/correlation-chart/main.js.map +1 -0
- package/dist/correlation-chart/main.module.sass.cjs +28 -0
- package/dist/correlation-chart/main.module.sass.cjs.map +1 -0
- package/dist/correlation-chart/main.module.sass.js +28 -0
- package/dist/correlation-chart/main.module.sass.js.map +1 -0
- package/dist/correlation-chart/prepare-data.cjs +62 -0
- package/dist/correlation-chart/prepare-data.cjs.map +1 -0
- package/dist/correlation-chart/prepare-data.d.ts +52 -0
- package/dist/correlation-chart/prepare-data.js +62 -0
- package/dist/correlation-chart/prepare-data.js.map +1 -0
- package/dist/correlation-chart/stories/utils.d.ts +6 -0
- package/dist/correlation-chart/unconformity-line.d.ts +3 -0
- package/dist/data-provider/base.cjs +349 -0
- package/dist/data-provider/base.cjs.map +1 -0
- package/dist/data-provider/base.d.ts +65 -0
- package/dist/data-provider/base.js +349 -0
- package/dist/data-provider/base.js.map +1 -0
- package/dist/data-provider/column-nav.cjs +36 -0
- package/dist/data-provider/column-nav.cjs.map +1 -0
- package/dist/data-provider/column-nav.d.ts +13 -0
- package/dist/data-provider/column-nav.js +36 -0
- package/dist/data-provider/column-nav.js.map +1 -0
- package/dist/data-provider/core.cjs +56 -0
- package/dist/data-provider/core.cjs.map +1 -0
- package/dist/data-provider/core.d.ts +31 -0
- package/dist/data-provider/core.js +56 -0
- package/dist/{esm/column-views.67804ce5.js.map → data-provider/core.js.map} +1 -1
- package/dist/data-provider/fetch.cjs +210 -0
- package/dist/data-provider/fetch.cjs.map +1 -0
- package/dist/data-provider/fetch.d.ts +27 -0
- package/dist/data-provider/fetch.js +210 -0
- package/dist/data-provider/fetch.js.map +1 -0
- package/dist/data-provider/index.d.ts +5 -0
- package/dist/data-provider/store.cjs +107 -0
- package/dist/data-provider/store.cjs.map +1 -0
- package/dist/data-provider/store.d.ts +34 -0
- package/dist/data-provider/store.js +107 -0
- package/dist/data-provider/store.js.map +1 -0
- package/dist/data-provider/unit-selection.cjs +225 -0
- package/dist/data-provider/unit-selection.cjs.map +1 -0
- package/dist/data-provider/unit-selection.d.ts +49 -0
- package/dist/data-provider/unit-selection.js +225 -0
- package/dist/data-provider/unit-selection.js.map +1 -0
- package/dist/facets/carbon-isotopes/data-area.cjs +64 -0
- package/dist/facets/carbon-isotopes/data-area.cjs.map +1 -0
- package/dist/facets/carbon-isotopes/data-area.d.ts +13 -0
- package/dist/facets/carbon-isotopes/data-area.js +64 -0
- package/dist/facets/carbon-isotopes/data-area.js.map +1 -0
- package/dist/facets/carbon-isotopes/data-provider.cjs +20 -0
- package/dist/facets/carbon-isotopes/data-provider.cjs.map +1 -0
- package/dist/facets/carbon-isotopes/data-provider.d.ts +4 -0
- package/dist/facets/carbon-isotopes/data-provider.js +20 -0
- package/dist/facets/carbon-isotopes/data-provider.js.map +1 -0
- package/dist/facets/carbon-isotopes/index.d.ts +2 -0
- package/dist/facets/carbon-isotopes/isotopes-column.cjs +174 -0
- package/dist/facets/carbon-isotopes/isotopes-column.cjs.map +1 -0
- package/dist/facets/carbon-isotopes/isotopes-column.d.ts +19 -0
- package/dist/facets/carbon-isotopes/isotopes-column.js +174 -0
- package/dist/facets/carbon-isotopes/isotopes-column.js.map +1 -0
- package/dist/facets/carbon-isotopes/isotopes-column.module.sass.cjs +15 -0
- package/dist/facets/carbon-isotopes/isotopes-column.module.sass.cjs.map +1 -0
- package/dist/facets/carbon-isotopes/isotopes-column.module.sass.js +15 -0
- package/dist/facets/carbon-isotopes/isotopes-column.module.sass.js.map +1 -0
- package/dist/facets/detrital-zircon/index.cjs +108 -0
- package/dist/facets/detrital-zircon/index.cjs.map +1 -0
- package/dist/facets/detrital-zircon/index.d.ts +24 -0
- package/dist/facets/detrital-zircon/index.js +108 -0
- package/dist/facets/detrital-zircon/index.js.map +1 -0
- package/dist/facets/detrital-zircon/index.module.sass.cjs +11 -0
- package/dist/facets/detrital-zircon/index.module.sass.cjs.map +1 -0
- package/dist/facets/detrital-zircon/index.module.sass.js +11 -0
- package/dist/facets/detrital-zircon/index.module.sass.js.map +1 -0
- package/dist/facets/detrital-zircon/provider.cjs +22 -0
- package/dist/facets/detrital-zircon/provider.cjs.map +1 -0
- package/dist/facets/detrital-zircon/provider.d.ts +31 -0
- package/dist/facets/detrital-zircon/provider.js +22 -0
- package/dist/facets/detrital-zircon/provider.js.map +1 -0
- package/dist/facets/fossils/index.cjs +120 -0
- package/dist/facets/fossils/index.cjs.map +1 -0
- package/dist/facets/fossils/index.d.ts +7 -0
- package/dist/facets/fossils/index.js +120 -0
- package/dist/facets/fossils/index.js.map +1 -0
- package/dist/facets/fossils/provider.cjs +99 -0
- package/dist/facets/fossils/provider.cjs.map +1 -0
- package/dist/facets/fossils/provider.d.ts +29 -0
- package/dist/facets/fossils/provider.js +99 -0
- package/dist/facets/fossils/provider.js.map +1 -0
- package/dist/facets/fossils/taxon-ranges.cjs +145 -0
- package/dist/facets/fossils/taxon-ranges.cjs.map +1 -0
- package/dist/facets/fossils/taxon-ranges.d.ts +3 -0
- package/dist/facets/fossils/taxon-ranges.js +145 -0
- package/dist/facets/fossils/taxon-ranges.js.map +1 -0
- package/dist/facets/fossils/taxon-ranges.module.sass.cjs +13 -0
- package/dist/facets/fossils/taxon-ranges.module.sass.cjs.map +1 -0
- package/dist/facets/fossils/taxon-ranges.module.sass.js +13 -0
- package/dist/facets/fossils/taxon-ranges.module.sass.js.map +1 -0
- package/dist/facets/index.d.ts +4 -0
- package/dist/facets/measurements/base.cjs +128 -0
- package/dist/facets/measurements/base.cjs.map +1 -0
- package/dist/facets/measurements/base.d.ts +46 -0
- package/dist/facets/measurements/base.js +128 -0
- package/dist/facets/measurements/base.js.map +1 -0
- package/dist/facets/measurements/base.module.sass.cjs +8 -0
- package/dist/facets/measurements/base.module.sass.cjs.map +1 -0
- package/dist/facets/measurements/base.module.sass.js +8 -0
- package/dist/facets/measurements/base.module.sass.js.map +1 -0
- package/dist/facets/measurements/index.d.ts +2 -0
- package/dist/facets/measurements/sgp.cjs +62 -0
- package/dist/facets/measurements/sgp.cjs.map +1 -0
- package/dist/facets/measurements/sgp.d.ts +3 -0
- package/dist/facets/measurements/sgp.js +62 -0
- package/dist/facets/measurements/sgp.js.map +1 -0
- package/dist/index.cjs +164 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +164 -0
- package/dist/index.js.map +1 -0
- package/dist/maps/_shared/index.d.ts +2 -0
- package/dist/maps/_shared/inset-map.cjs +69 -0
- package/dist/maps/_shared/inset-map.cjs.map +1 -0
- package/dist/maps/_shared/inset-map.d.ts +16 -0
- package/dist/maps/_shared/inset-map.js +69 -0
- package/dist/maps/_shared/inset-map.js.map +1 -0
- package/dist/maps/_shared/styles.cjs +68 -0
- package/dist/maps/_shared/styles.cjs.map +1 -0
- package/dist/maps/_shared/styles.d.ts +2 -0
- package/dist/maps/_shared/styles.js +68 -0
- package/dist/maps/_shared/styles.js.map +1 -0
- package/dist/maps/column-correlation/core.cjs +185 -0
- package/dist/maps/column-correlation/core.cjs.map +1 -0
- package/dist/maps/column-correlation/core.d.ts +9 -0
- package/dist/maps/column-correlation/core.js +185 -0
- package/dist/maps/column-correlation/core.js.map +1 -0
- package/dist/maps/column-correlation/index.d.ts +2 -0
- package/dist/maps/column-correlation/state.cjs +129 -0
- package/dist/maps/column-correlation/state.cjs.map +1 -0
- package/dist/maps/column-correlation/state.d.ts +31 -0
- package/dist/maps/column-correlation/state.js +129 -0
- package/dist/maps/column-correlation/state.js.map +1 -0
- package/dist/maps/column-navigation/index.d.ts +2 -0
- package/dist/maps/column-navigation/mapbox/index.cjs +175 -0
- package/dist/maps/column-navigation/mapbox/index.cjs.map +1 -0
- package/dist/maps/column-navigation/mapbox/index.d.ts +17 -0
- package/dist/maps/column-navigation/mapbox/index.js +175 -0
- package/dist/maps/column-navigation/mapbox/index.js.map +1 -0
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.cjs +99 -0
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.cjs.map +1 -0
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.d.ts +31 -0
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.js +99 -0
- package/dist/maps/column-navigation/mapbox/keyboard-navigation.js.map +1 -0
- package/dist/maps/column-navigation/mapbox/state.cjs +71 -0
- package/dist/maps/column-navigation/mapbox/state.cjs.map +1 -0
- package/dist/maps/column-navigation/mapbox/state.d.ts +23 -0
- package/dist/maps/column-navigation/mapbox/state.js +71 -0
- package/dist/maps/column-navigation/mapbox/state.js.map +1 -0
- package/dist/maps/column-navigation/svg/animated.d.ts +1 -0
- package/dist/maps/column-navigation/svg/index.cjs +92 -0
- package/dist/maps/column-navigation/svg/index.cjs.map +1 -0
- package/dist/maps/column-navigation/svg/index.d.ts +9 -0
- package/dist/maps/column-navigation/svg/index.js +93 -0
- package/dist/maps/column-navigation/svg/index.js.map +1 -0
- package/dist/maps/column-navigation/svg/layers.cjs +175 -0
- package/dist/maps/column-navigation/svg/layers.cjs.map +1 -0
- package/dist/maps/column-navigation/svg/layers.d.ts +54 -0
- package/dist/maps/column-navigation/svg/layers.js +175 -0
- package/dist/maps/column-navigation/svg/layers.js.map +1 -0
- package/dist/maps/column-navigation/utils/keyboard-navigation.cjs +50 -0
- package/dist/maps/column-navigation/utils/keyboard-navigation.cjs.map +1 -0
- package/dist/maps/column-navigation/utils/keyboard-navigation.d.ts +10 -0
- package/dist/maps/column-navigation/utils/keyboard-navigation.js +50 -0
- package/dist/maps/column-navigation/utils/keyboard-navigation.js.map +1 -0
- package/dist/maps/index.d.ts +3 -0
- package/dist/notes.cjs +41 -0
- package/dist/notes.cjs.map +1 -0
- package/dist/notes.d.ts +12 -0
- package/dist/notes.js +41 -0
- package/dist/notes.js.map +1 -0
- package/dist/prepare-units/composite-scale.cjs +284 -0
- package/dist/prepare-units/composite-scale.cjs.map +1 -0
- package/dist/prepare-units/composite-scale.d.ts +19 -0
- package/dist/prepare-units/composite-scale.js +284 -0
- package/dist/prepare-units/composite-scale.js.map +1 -0
- package/dist/prepare-units/dynamic-scales.cjs +190 -0
- package/dist/prepare-units/dynamic-scales.cjs.map +1 -0
- package/dist/prepare-units/dynamic-scales.d.ts +13 -0
- package/dist/prepare-units/dynamic-scales.js +190 -0
- package/dist/prepare-units/dynamic-scales.js.map +1 -0
- package/dist/prepare-units/helpers.cjs +198 -0
- package/dist/prepare-units/helpers.cjs.map +1 -0
- package/dist/prepare-units/helpers.d.ts +10 -0
- package/dist/prepare-units/helpers.js +198 -0
- package/dist/prepare-units/helpers.js.map +1 -0
- package/dist/prepare-units/index.cjs +130 -0
- package/dist/prepare-units/index.cjs.map +1 -0
- package/dist/prepare-units/index.d.ts +10 -0
- package/dist/prepare-units/index.js +131 -0
- package/dist/prepare-units/index.js.map +1 -0
- package/dist/prepare-units/types.cjs +16 -0
- package/dist/prepare-units/types.cjs.map +1 -0
- package/dist/prepare-units/types.d.ts +99 -0
- package/dist/prepare-units/types.js +16 -0
- package/dist/prepare-units/types.js.map +1 -0
- package/dist/prepare-units/utils.cjs +99 -0
- package/dist/prepare-units/utils.cjs.map +1 -0
- package/dist/prepare-units/utils.d.ts +39 -0
- package/dist/prepare-units/utils.js +99 -0
- package/dist/prepare-units/utils.js.map +1 -0
- package/dist/section.cjs +269 -0
- package/dist/section.cjs.map +1 -0
- package/dist/section.d.ts +45 -0
- package/dist/section.js +269 -0
- package/dist/section.js.map +1 -0
- package/dist/unit-details/index.d.ts +3 -0
- package/dist/unit-details/modal-panel.cjs +57 -0
- package/dist/unit-details/modal-panel.cjs.map +1 -0
- package/dist/unit-details/modal-panel.d.ts +1 -0
- package/dist/unit-details/modal-panel.js +57 -0
- package/dist/unit-details/modal-panel.js.map +1 -0
- package/dist/unit-details/panel.cjs +627 -0
- package/dist/unit-details/panel.cjs.map +1 -0
- package/dist/unit-details/panel.d.ts +87 -0
- package/dist/unit-details/panel.js +627 -0
- package/dist/unit-details/panel.js.map +1 -0
- package/dist/unit-details/panel.module.sass.cjs +42 -0
- package/dist/unit-details/panel.module.sass.cjs.map +1 -0
- package/dist/unit-details/panel.module.sass.js +42 -0
- package/dist/unit-details/panel.module.sass.js.map +1 -0
- package/dist/unit-details/popover.cjs +81 -0
- package/dist/unit-details/popover.cjs.map +1 -0
- package/dist/unit-details/popover.d.ts +9 -0
- package/dist/unit-details/popover.js +81 -0
- package/dist/unit-details/popover.js.map +1 -0
- package/dist/unit-details/popover.module.sass.cjs +10 -0
- package/dist/unit-details/popover.module.sass.cjs.map +1 -0
- package/dist/unit-details/popover.module.sass.js +10 -0
- package/dist/unit-details/popover.module.sass.js.map +1 -0
- package/dist/units/boxes.cjs +187 -0
- package/dist/units/boxes.cjs.map +1 -0
- package/dist/units/boxes.d.ts +54 -0
- package/dist/units/boxes.js +187 -0
- package/dist/units/boxes.js.map +1 -0
- package/dist/units/boxes.module.sass.cjs +11 -0
- package/dist/units/boxes.module.sass.cjs.map +1 -0
- package/dist/units/boxes.module.sass.js +11 -0
- package/dist/units/boxes.module.sass.js.map +1 -0
- package/dist/units/colors.cjs +52 -0
- package/dist/units/colors.cjs.map +1 -0
- package/dist/units/colors.d.ts +7 -0
- package/dist/units/colors.js +52 -0
- package/dist/units/colors.js.map +1 -0
- package/dist/units/composite.cjs +157 -0
- package/dist/units/composite.cjs.map +1 -0
- package/dist/units/composite.d.ts +39 -0
- package/dist/units/composite.js +157 -0
- package/dist/units/composite.js.map +1 -0
- package/dist/units/composite.module.sass.cjs +7 -0
- package/dist/units/composite.module.sass.cjs.map +1 -0
- package/dist/units/composite.module.sass.js +7 -0
- package/dist/units/composite.module.sass.js.map +1 -0
- package/dist/units/index.cjs +117 -0
- package/dist/units/index.cjs.map +1 -0
- package/dist/units/index.d.ts +40 -0
- package/dist/units/index.js +118 -0
- package/dist/units/index.js.map +1 -0
- package/dist/units/names.cjs +72 -0
- package/dist/units/names.cjs.map +1 -0
- package/dist/units/names.d.ts +33 -0
- package/dist/units/names.js +72 -0
- package/dist/units/names.js.map +1 -0
- package/dist/units/resolvers.cjs +114 -0
- package/dist/units/resolvers.cjs.map +1 -0
- package/dist/units/resolvers.d.ts +3 -0
- package/dist/units/resolvers.js +114 -0
- package/dist/units/resolvers.js.map +1 -0
- package/dist/units/types.d.ts +16 -0
- package/package.json +52 -55
- package/src/unit-details/popover.module.sass +3 -3
- package/dist/esm/column-views.006d5180.js +0 -97
- package/dist/esm/column-views.006d5180.js.map +0 -1
- package/dist/esm/column-views.052498a6.js +0 -93
- package/dist/esm/column-views.052498a6.js.map +0 -1
- package/dist/esm/column-views.079119f4.js +0 -17
- package/dist/esm/column-views.079119f4.js.map +0 -1
- package/dist/esm/column-views.0abf7e10.js +0 -67
- package/dist/esm/column-views.0abf7e10.js.map +0 -1
- package/dist/esm/column-views.0b3c0d18.js +0 -322
- package/dist/esm/column-views.0b3c0d18.js.map +0 -1
- package/dist/esm/column-views.0ed9da35.js +0 -141
- package/dist/esm/column-views.0ed9da35.js.map +0 -1
- package/dist/esm/column-views.0faf79a9.js +0 -142
- package/dist/esm/column-views.0faf79a9.js.map +0 -1
- package/dist/esm/column-views.16cc7a58.css +0 -37
- package/dist/esm/column-views.16cc7a58.css.map +0 -1
- package/dist/esm/column-views.17a70358.js +0 -16
- package/dist/esm/column-views.17a70358.js.map +0 -1
- package/dist/esm/column-views.19539293.js +0 -86
- package/dist/esm/column-views.19539293.js.map +0 -1
- package/dist/esm/column-views.1af3ec1f.js +0 -139
- package/dist/esm/column-views.1af3ec1f.js.map +0 -1
- package/dist/esm/column-views.1cd55918.js +0 -206
- package/dist/esm/column-views.1cd55918.js.map +0 -1
- package/dist/esm/column-views.22ec902b.js +0 -34
- package/dist/esm/column-views.22ec902b.js.map +0 -1
- package/dist/esm/column-views.2a0010a3.js +0 -15
- package/dist/esm/column-views.2a0010a3.js.map +0 -1
- package/dist/esm/column-views.2c45a7b5.js +0 -25
- package/dist/esm/column-views.2c45a7b5.js.map +0 -1
- package/dist/esm/column-views.321af3ae.css +0 -59
- package/dist/esm/column-views.321af3ae.css.map +0 -1
- package/dist/esm/column-views.334c3947.js +0 -75
- package/dist/esm/column-views.334c3947.js.map +0 -1
- package/dist/esm/column-views.33796541.js +0 -88
- package/dist/esm/column-views.33796541.js.map +0 -1
- package/dist/esm/column-views.337b40a2.js +0 -199
- package/dist/esm/column-views.337b40a2.js.map +0 -1
- package/dist/esm/column-views.338a7a83.css +0 -134
- package/dist/esm/column-views.338a7a83.css.map +0 -1
- package/dist/esm/column-views.33d35a44.js +0 -118
- package/dist/esm/column-views.33d35a44.js.map +0 -1
- package/dist/esm/column-views.3465c8ad.js +0 -16
- package/dist/esm/column-views.3465c8ad.js.map +0 -1
- package/dist/esm/column-views.362aae9a.js +0 -113
- package/dist/esm/column-views.362aae9a.js.map +0 -1
- package/dist/esm/column-views.3b972a9b.css +0 -4
- package/dist/esm/column-views.3b972a9b.css.map +0 -1
- package/dist/esm/column-views.3de4dc43.js +0 -66
- package/dist/esm/column-views.3de4dc43.js.map +0 -1
- package/dist/esm/column-views.40cd59b5.js +0 -13
- package/dist/esm/column-views.40cd59b5.js.map +0 -1
- package/dist/esm/column-views.4252a555.js +0 -248
- package/dist/esm/column-views.4252a555.js.map +0 -1
- package/dist/esm/column-views.45c70ba4.js +0 -38
- package/dist/esm/column-views.45c70ba4.js.map +0 -1
- package/dist/esm/column-views.47b7d9ca.js +0 -206
- package/dist/esm/column-views.47b7d9ca.js.map +0 -1
- package/dist/esm/column-views.47ca059d.js +0 -225
- package/dist/esm/column-views.47ca059d.js.map +0 -1
- package/dist/esm/column-views.4d374a35.js +0 -19
- package/dist/esm/column-views.4d374a35.js.map +0 -1
- package/dist/esm/column-views.54c1f382.css +0 -23
- package/dist/esm/column-views.54c1f382.css.map +0 -1
- package/dist/esm/column-views.562db43a.css +0 -148
- package/dist/esm/column-views.562db43a.css.map +0 -1
- package/dist/esm/column-views.5e1c216f.js +0 -180
- package/dist/esm/column-views.5e1c216f.js.map +0 -1
- package/dist/esm/column-views.60e97132.js +0 -20
- package/dist/esm/column-views.60e97132.js.map +0 -1
- package/dist/esm/column-views.636d6553.js +0 -343
- package/dist/esm/column-views.636d6553.js.map +0 -1
- package/dist/esm/column-views.64f6ddd3.js +0 -9
- package/dist/esm/column-views.64f6ddd3.js.map +0 -1
- package/dist/esm/column-views.6519a353.js +0 -9
- package/dist/esm/column-views.6519a353.js.map +0 -1
- package/dist/esm/column-views.67804ce5.js +0 -68
- package/dist/esm/column-views.6992ca88.js +0 -25
- package/dist/esm/column-views.6992ca88.js.map +0 -1
- package/dist/esm/column-views.6a954628.js +0 -70
- package/dist/esm/column-views.6a954628.js.map +0 -1
- package/dist/esm/column-views.6c670c13.css +0 -26
- package/dist/esm/column-views.6c670c13.css.map +0 -1
- package/dist/esm/column-views.6cff6659.js +0 -11
- package/dist/esm/column-views.6cff6659.js.map +0 -1
- package/dist/esm/column-views.6d6b73b4.js +0 -55
- package/dist/esm/column-views.6d6b73b4.js.map +0 -1
- package/dist/esm/column-views.6f9511d1.css +0 -25
- package/dist/esm/column-views.6f9511d1.css.map +0 -1
- package/dist/esm/column-views.6fff7602.js +0 -94
- package/dist/esm/column-views.6fff7602.js.map +0 -1
- package/dist/esm/column-views.70387120.js +0 -9
- package/dist/esm/column-views.70387120.js.map +0 -1
- package/dist/esm/column-views.708140ab.css +0 -36
- package/dist/esm/column-views.708140ab.css.map +0 -1
- package/dist/esm/column-views.74837922.js +0 -112
- package/dist/esm/column-views.74837922.js.map +0 -1
- package/dist/esm/column-views.76fb9948.js +0 -169
- package/dist/esm/column-views.76fb9948.js.map +0 -1
- package/dist/esm/column-views.7bfb4318.js +0 -161
- package/dist/esm/column-views.7bfb4318.js.map +0 -1
- package/dist/esm/column-views.7dc53f1b.js +0 -168
- package/dist/esm/column-views.7dc53f1b.js.map +0 -1
- package/dist/esm/column-views.85df21ec.js +0 -567
- package/dist/esm/column-views.85df21ec.js.map +0 -1
- package/dist/esm/column-views.87c589b7.js +0 -72
- package/dist/esm/column-views.87c589b7.js.map +0 -1
- package/dist/esm/column-views.8da2b857.js +0 -81
- package/dist/esm/column-views.8da2b857.js.map +0 -1
- package/dist/esm/column-views.8fb37de7.js +0 -9
- package/dist/esm/column-views.8fb37de7.js.map +0 -1
- package/dist/esm/column-views.9512c5d5.js +0 -240
- package/dist/esm/column-views.9512c5d5.js.map +0 -1
- package/dist/esm/column-views.9905b91c.js +0 -11
- package/dist/esm/column-views.9905b91c.js.map +0 -1
- package/dist/esm/column-views.9b77388d.js +0 -41
- package/dist/esm/column-views.9b77388d.js.map +0 -1
- package/dist/esm/column-views.a4f394fe.js +0 -127
- package/dist/esm/column-views.a4f394fe.js.map +0 -1
- package/dist/esm/column-views.a7c5ae16.js +0 -25
- package/dist/esm/column-views.a7c5ae16.js.map +0 -1
- package/dist/esm/column-views.aa9ede4d.js +0 -206
- package/dist/esm/column-views.aa9ede4d.js.map +0 -1
- package/dist/esm/column-views.b7cf0da2.js +0 -60
- package/dist/esm/column-views.b7cf0da2.js.map +0 -1
- package/dist/esm/column-views.beb54e95.js +0 -39
- package/dist/esm/column-views.beb54e95.js.map +0 -1
- package/dist/esm/column-views.c47dba5f.js +0 -9
- package/dist/esm/column-views.c47dba5f.js.map +0 -1
- package/dist/esm/column-views.c750a6df.js +0 -9
- package/dist/esm/column-views.c750a6df.js.map +0 -1
- package/dist/esm/column-views.cb1cc9f2.js +0 -134
- package/dist/esm/column-views.cb1cc9f2.js.map +0 -1
- package/dist/esm/column-views.cb6fc808.css +0 -54
- package/dist/esm/column-views.cb6fc808.css.map +0 -1
- package/dist/esm/column-views.cc733361.js +0 -55
- package/dist/esm/column-views.cc733361.js.map +0 -1
- package/dist/esm/column-views.ce000969.js +0 -187
- package/dist/esm/column-views.ce000969.js.map +0 -1
- package/dist/esm/column-views.d5e788e8.js +0 -31
- package/dist/esm/column-views.d5e788e8.js.map +0 -1
- package/dist/esm/column-views.d7740949.js +0 -152
- package/dist/esm/column-views.d7740949.js.map +0 -1
- package/dist/esm/column-views.d7e6bf67.js +0 -70
- package/dist/esm/column-views.d7e6bf67.js.map +0 -1
- package/dist/esm/column-views.dac0a3bb.js +0 -149
- package/dist/esm/column-views.dac0a3bb.js.map +0 -1
- package/dist/esm/column-views.dc42f5d0.js +0 -48
- package/dist/esm/column-views.dc42f5d0.js.map +0 -1
- package/dist/esm/column-views.e13a0a76.js +0 -138
- package/dist/esm/column-views.e13a0a76.js.map +0 -1
- package/dist/esm/column-views.e40b8bfb.css +0 -14
- package/dist/esm/column-views.e40b8bfb.css.map +0 -1
- package/dist/esm/column-views.e93478c3.css +0 -194
- package/dist/esm/column-views.e93478c3.css.map +0 -1
- package/dist/esm/column-views.ea08f667.js +0 -218
- package/dist/esm/column-views.ea08f667.js.map +0 -1
- package/dist/esm/column-views.ebb5f280.js +0 -13
- package/dist/esm/column-views.ebb5f280.js.map +0 -1
- package/dist/esm/column-views.edf77621.js +0 -22
- package/dist/esm/column-views.edf77621.js.map +0 -1
- package/dist/esm/column-views.f9dab157.js +0 -3
- package/dist/esm/column-views.f9dab157.js.map +0 -1
- package/dist/esm/column-views.fcf25ec6.js +0 -76
- package/dist/esm/column-views.fcf25ec6.js.map +0 -1
- package/dist/esm/column-views.fe42d2fc.js +0 -134
- package/dist/esm/column-views.fe42d2fc.js.map +0 -1
- package/dist/esm/index.d.ts +0 -1008
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -27
- package/dist/esm/index.js.map +0 -1
- package/dist/node/column-views.012fa10c.js +0 -2
- package/dist/node/column-views.012fa10c.js.map +0 -1
- package/dist/node/column-views.048fdcaf.js +0 -2
- package/dist/node/column-views.048fdcaf.js.map +0 -1
- package/dist/node/column-views.04a72b35.js +0 -2
- package/dist/node/column-views.04a72b35.js.map +0 -1
- package/dist/node/column-views.0840b115.css +0 -2
- package/dist/node/column-views.0840b115.css.map +0 -1
- package/dist/node/column-views.0af5912d.js +0 -2
- package/dist/node/column-views.0af5912d.js.map +0 -1
- package/dist/node/column-views.0bd15ee4.js +0 -2
- package/dist/node/column-views.0bd15ee4.js.map +0 -1
- package/dist/node/column-views.0d254fd3.js +0 -2
- package/dist/node/column-views.0d254fd3.js.map +0 -1
- package/dist/node/column-views.109cb0c8.js +0 -2
- package/dist/node/column-views.109cb0c8.js.map +0 -1
- package/dist/node/column-views.1261be59.js +0 -2
- package/dist/node/column-views.1261be59.js.map +0 -1
- package/dist/node/column-views.133855e6.js +0 -2
- package/dist/node/column-views.133855e6.js.map +0 -1
- package/dist/node/column-views.15b5cecc.js +0 -2
- package/dist/node/column-views.15b5cecc.js.map +0 -1
- package/dist/node/column-views.183745c0.js +0 -2
- package/dist/node/column-views.183745c0.js.map +0 -1
- package/dist/node/column-views.2e2158f5.js +0 -2
- package/dist/node/column-views.2e2158f5.js.map +0 -1
- package/dist/node/column-views.306acd3f.js +0 -2
- package/dist/node/column-views.306acd3f.js.map +0 -1
- package/dist/node/column-views.31153f29.js +0 -2
- package/dist/node/column-views.31153f29.js.map +0 -1
- package/dist/node/column-views.31da008b.js +0 -2
- package/dist/node/column-views.31da008b.js.map +0 -1
- package/dist/node/column-views.3a079e34.css +0 -2
- package/dist/node/column-views.3a079e34.css.map +0 -1
- package/dist/node/column-views.40e758b3.js +0 -2
- package/dist/node/column-views.40e758b3.js.map +0 -1
- package/dist/node/column-views.41876859.js +0 -2
- package/dist/node/column-views.41876859.js.map +0 -1
- package/dist/node/column-views.4a28d695.js +0 -2
- package/dist/node/column-views.4a28d695.js.map +0 -1
- package/dist/node/column-views.4ec769a6.js +0 -2
- package/dist/node/column-views.4ec769a6.js.map +0 -1
- package/dist/node/column-views.50a992d3.css +0 -2
- package/dist/node/column-views.50a992d3.css.map +0 -1
- package/dist/node/column-views.51fbed89.js +0 -2
- package/dist/node/column-views.51fbed89.js.map +0 -1
- package/dist/node/column-views.5950c8eb.js +0 -2
- package/dist/node/column-views.5950c8eb.js.map +0 -1
- package/dist/node/column-views.5987bc26.js +0 -2
- package/dist/node/column-views.5987bc26.js.map +0 -1
- package/dist/node/column-views.5a9331a9.js +0 -2
- package/dist/node/column-views.5a9331a9.js.map +0 -1
- package/dist/node/column-views.5bb858c9.js +0 -2
- package/dist/node/column-views.5bb858c9.js.map +0 -1
- package/dist/node/column-views.5c1b0eeb.css +0 -2
- package/dist/node/column-views.5c1b0eeb.css.map +0 -1
- package/dist/node/column-views.5cbada24.js +0 -2
- package/dist/node/column-views.5cbada24.js.map +0 -1
- package/dist/node/column-views.5fcd2be6.js +0 -2
- package/dist/node/column-views.5fcd2be6.js.map +0 -1
- package/dist/node/column-views.672b683c.js +0 -2
- package/dist/node/column-views.672b683c.js.map +0 -1
- package/dist/node/column-views.6a0a35e7.js +0 -2
- package/dist/node/column-views.6a0a35e7.js.map +0 -1
- package/dist/node/column-views.6a4c2100.css +0 -2
- package/dist/node/column-views.6a4c2100.css.map +0 -1
- package/dist/node/column-views.6a9da051.js +0 -2
- package/dist/node/column-views.6a9da051.js.map +0 -1
- package/dist/node/column-views.6bba8c57.js +0 -2
- package/dist/node/column-views.6bba8c57.js.map +0 -1
- package/dist/node/column-views.75ba0464.css +0 -2
- package/dist/node/column-views.75ba0464.css.map +0 -1
- package/dist/node/column-views.78b2d234.js +0 -2
- package/dist/node/column-views.78b2d234.js.map +0 -1
- package/dist/node/column-views.7b6e7d82.js +0 -2
- package/dist/node/column-views.7b6e7d82.js.map +0 -1
- package/dist/node/column-views.7b9bd06e.css +0 -2
- package/dist/node/column-views.7b9bd06e.css.map +0 -1
- package/dist/node/column-views.7d45bbeb.js +0 -2
- package/dist/node/column-views.7d45bbeb.js.map +0 -1
- package/dist/node/column-views.7f9c7448.js +0 -2
- package/dist/node/column-views.7f9c7448.js.map +0 -1
- package/dist/node/column-views.82cf7c0d.js +0 -2
- package/dist/node/column-views.82cf7c0d.js.map +0 -1
- package/dist/node/column-views.869c7199.js +0 -2
- package/dist/node/column-views.869c7199.js.map +0 -1
- package/dist/node/column-views.8bee789c.js +0 -2
- package/dist/node/column-views.8bee789c.js.map +0 -1
- package/dist/node/column-views.90c36c0b.js +0 -2
- package/dist/node/column-views.90c36c0b.js.map +0 -1
- package/dist/node/column-views.951e3e9a.js +0 -2
- package/dist/node/column-views.951e3e9a.js.map +0 -1
- package/dist/node/column-views.95411f1b.js +0 -2
- package/dist/node/column-views.95411f1b.js.map +0 -1
- package/dist/node/column-views.9cb13e51.css +0 -2
- package/dist/node/column-views.9cb13e51.css.map +0 -1
- package/dist/node/column-views.a0969fc8.js +0 -2
- package/dist/node/column-views.a0969fc8.js.map +0 -1
- package/dist/node/column-views.a2476e39.js +0 -2
- package/dist/node/column-views.a2476e39.js.map +0 -1
- package/dist/node/column-views.a8f5ee28.js +0 -2
- package/dist/node/column-views.a8f5ee28.js.map +0 -1
- package/dist/node/column-views.ad60c02f.js +0 -2
- package/dist/node/column-views.ad60c02f.js.map +0 -1
- package/dist/node/column-views.add5e42b.js +0 -2
- package/dist/node/column-views.add5e42b.js.map +0 -1
- package/dist/node/column-views.b169b4b5.css +0 -2
- package/dist/node/column-views.b169b4b5.css.map +0 -1
- package/dist/node/column-views.b2e5f823.js +0 -2
- package/dist/node/column-views.b2e5f823.js.map +0 -1
- package/dist/node/column-views.b57e5e6e.js +0 -2
- package/dist/node/column-views.b57e5e6e.js.map +0 -1
- package/dist/node/column-views.b762c9a8.js +0 -2
- package/dist/node/column-views.b762c9a8.js.map +0 -1
- package/dist/node/column-views.ba9108fe.js +0 -2
- package/dist/node/column-views.ba9108fe.js.map +0 -1
- package/dist/node/column-views.c16a19fb.js +0 -2
- package/dist/node/column-views.c16a19fb.js.map +0 -1
- package/dist/node/column-views.c3097d9a.js +0 -2
- package/dist/node/column-views.c3097d9a.js.map +0 -1
- package/dist/node/column-views.c4c15e2b.js +0 -2
- package/dist/node/column-views.c4c15e2b.js.map +0 -1
- package/dist/node/column-views.c651b684.js +0 -2
- package/dist/node/column-views.c651b684.js.map +0 -1
- package/dist/node/column-views.c968a185.css +0 -2
- package/dist/node/column-views.c968a185.css.map +0 -1
- package/dist/node/column-views.ccfb9afb.css +0 -2
- package/dist/node/column-views.ccfb9afb.css.map +0 -1
- package/dist/node/column-views.cdcce702.js +0 -2
- package/dist/node/column-views.cdcce702.js.map +0 -1
- package/dist/node/column-views.cf41a6d7.js +0 -2
- package/dist/node/column-views.cf41a6d7.js.map +0 -1
- package/dist/node/column-views.d22bf15c.js +0 -2
- package/dist/node/column-views.d22bf15c.js.map +0 -1
- package/dist/node/column-views.d737de1e.js +0 -2
- package/dist/node/column-views.d737de1e.js.map +0 -1
- package/dist/node/column-views.da902c44.js +0 -2
- package/dist/node/column-views.da902c44.js.map +0 -1
- package/dist/node/column-views.db3377d8.js +0 -2
- package/dist/node/column-views.db3377d8.js.map +0 -1
- package/dist/node/column-views.dbb4a46b.js +0 -2
- package/dist/node/column-views.dbb4a46b.js.map +0 -1
- package/dist/node/column-views.ddc6184e.css +0 -2
- package/dist/node/column-views.ddc6184e.css.map +0 -1
- package/dist/node/column-views.e0e20136.js +0 -2
- package/dist/node/column-views.e0e20136.js.map +0 -1
- package/dist/node/column-views.e2562224.js +0 -2
- package/dist/node/column-views.e2562224.js.map +0 -1
- package/dist/node/column-views.e6720522.js +0 -2
- package/dist/node/column-views.e6720522.js.map +0 -1
- package/dist/node/column-views.e7e26765.js +0 -2
- package/dist/node/column-views.e7e26765.js.map +0 -1
- package/dist/node/column-views.e93b3bdb.js +0 -2
- package/dist/node/column-views.e93b3bdb.js.map +0 -1
- package/dist/node/column-views.ebb44b7d.js +0 -2
- package/dist/node/column-views.ebb44b7d.js.map +0 -1
- package/dist/node/column-views.ec0087a2.js +0 -2
- package/dist/node/column-views.ec0087a2.js.map +0 -1
- package/dist/node/column-views.eea80478.js +0 -2
- package/dist/node/column-views.eea80478.js.map +0 -1
- package/dist/node/column-views.fb3ed7cc.js +0 -2
- package/dist/node/column-views.fb3ed7cc.js.map +0 -1
- package/dist/node/column-views.fc4c2c61.js +0 -2
- package/dist/node/column-views.fc4c2c61.js.map +0 -1
- package/dist/node/column-views.fcb243a2.js +0 -2
- package/dist/node/column-views.fcb243a2.js.map +0 -1
- package/dist/node/column-views.fea32686.js +0 -2
- package/dist/node/column-views.fea32686.js.map +0 -1
- package/dist/node/index.js +0 -2
- package/dist/node/index.js.map +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { atom } from "jotai";
|
|
2
|
+
import { createIsolation } from "jotai-scope";
|
|
3
|
+
import { useRef, useEffect } from "react";
|
|
4
|
+
import h from "@macrostrat/hyper";
|
|
5
|
+
const scope = createIsolation();
|
|
6
|
+
function ScopedProvider({
|
|
7
|
+
children,
|
|
8
|
+
atoms,
|
|
9
|
+
shouldUpdateAtoms = true
|
|
10
|
+
}) {
|
|
11
|
+
let val = null;
|
|
12
|
+
try {
|
|
13
|
+
val = scope.useStore();
|
|
14
|
+
return children;
|
|
15
|
+
} catch {
|
|
16
|
+
return h(scope.Provider, { store: null, initialValues: atoms }, [
|
|
17
|
+
h.if(shouldUpdateAtoms)(AtomUpdater, { atoms }),
|
|
18
|
+
children
|
|
19
|
+
]);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function AtomUpdater({
|
|
23
|
+
atoms
|
|
24
|
+
}) {
|
|
25
|
+
const store = scope.useStore();
|
|
26
|
+
const prevLengthRef = useRef(atoms.length);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (prevLengthRef.current !== atoms.length) {
|
|
29
|
+
console.error("Error: number of atoms in ScopedAtomUpdater has changed.");
|
|
30
|
+
prevLengthRef.current = atoms.length;
|
|
31
|
+
}
|
|
32
|
+
}, [atoms.length]);
|
|
33
|
+
for (const [atom2, value] of atoms) {
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
store.set(atom2, value);
|
|
36
|
+
}, [store, value]);
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const columnUnitsAtom = atom();
|
|
41
|
+
const columnUnitsMapAtom = atom((get) => {
|
|
42
|
+
const units = get(columnUnitsAtom);
|
|
43
|
+
if (!units) return null;
|
|
44
|
+
const unitMap = /* @__PURE__ */ new Map();
|
|
45
|
+
units.forEach((unit) => {
|
|
46
|
+
unitMap.set(unit.unit_id, unit);
|
|
47
|
+
});
|
|
48
|
+
return unitMap;
|
|
49
|
+
});
|
|
50
|
+
export {
|
|
51
|
+
ScopedProvider,
|
|
52
|
+
columnUnitsAtom,
|
|
53
|
+
columnUnitsMapAtom,
|
|
54
|
+
scope
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"version":3,"file":"core.js","sources":["../../src/data-provider/core.ts"],"sourcesContent":["import { atom, type WritableAtom } from \"jotai\";\nimport { createIsolation } from \"jotai-scope\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\nimport { ReactNode, useEffect, useRef } from \"react\";\nimport h from \"@macrostrat/hyper\";\n\ninterface StateIsolation {\n Provider: (props: {\n store?: any;\n initialValues?: AtomMap;\n children: ReactNode;\n }) => ReactNode;\n useStore: () => any;\n useAtom: any;\n useAtomValue: any;\n useSetAtom: any;\n}\n\nexport const scope: StateIsolation = createIsolation();\n\nexport type AtomMap = [WritableAtom<any, any, any>, any][];\n\ntype ProviderProps = {\n children: ReactNode;\n atoms?: AtomMap;\n shouldUpdateAtoms?: boolean;\n};\n\nexport function ScopedProvider({\n children,\n atoms,\n shouldUpdateAtoms = true,\n}: ProviderProps) {\n // Always use the same store instance in this tree\n let val = null;\n try {\n val = scope.useStore();\n // This store has already been provided\n return children;\n } catch {\n return h(scope.Provider, { store: null, initialValues: atoms }, [\n h.if(shouldUpdateAtoms)(AtomUpdater, { atoms }),\n children,\n ]);\n }\n}\n\nfunction AtomUpdater({\n atoms,\n}: {\n atoms: [WritableAtom<any, any, any>, any][];\n}) {\n /**\n * A generic updater to sync Jotai atoms with state passed as props.\n * Useful for scoped providers where state needs to be synced outside\n * the current context.\n */\n /** TODO: this is an awkward way to keep atoms updated */\n // The scoped store\n const store = scope.useStore();\n\n // Warn on atoms changing length\n const prevLengthRef = useRef(atoms.length);\n useEffect(() => {\n if (prevLengthRef.current !== atoms.length) {\n console.error(\"Error: number of atoms in ScopedAtomUpdater has changed.\");\n prevLengthRef.current = atoms.length;\n }\n }, [atoms.length]);\n\n for (const [atom, value] of atoms) {\n useEffect(() => {\n store.set(atom, value);\n }, [store, value]);\n }\n return null;\n}\n\nexport const columnUnitsAtom = atom<BaseUnit[]>();\n\nexport const columnUnitsMapAtom = atom<Map<number, BaseUnit> | null>((get) => {\n const units = get(columnUnitsAtom);\n if (!units) return null;\n const unitMap = new Map<number, BaseUnit>();\n units.forEach((unit) => {\n unitMap.set(unit.unit_id, unit);\n });\n return unitMap;\n});\n"],"names":["atom"],"mappings":";;;;AAkBO,MAAM,QAAwB,gBAAA;AAU9B,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,oBAAoB;AACtB,GAAkB;AAEhB,MAAI,MAAM;AACV,MAAI;AACF,UAAM,MAAM,SAAA;AAEZ,WAAO;AAAA,EACT,QAAQ;AACN,WAAO,EAAE,MAAM,UAAU,EAAE,OAAO,MAAM,eAAe,SAAS;AAAA,MAC9D,EAAE,GAAG,iBAAiB,EAAE,aAAa,EAAE,OAAO;AAAA,MAC9C;AAAA,IAAA,CACD;AAAA,EACH;AACF;AAEA,SAAS,YAAY;AAAA,EACnB;AACF,GAEG;AAQD,QAAM,QAAQ,MAAM,SAAA;AAGpB,QAAM,gBAAgB,OAAO,MAAM,MAAM;AACzC,YAAU,MAAM;AACd,QAAI,cAAc,YAAY,MAAM,QAAQ;AAC1C,cAAQ,MAAM,0DAA0D;AACxE,oBAAc,UAAU,MAAM;AAAA,IAChC;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,aAAW,CAACA,OAAM,KAAK,KAAK,OAAO;AACjC,cAAU,MAAM;AACd,YAAM,IAAIA,OAAM,KAAK;AAAA,IACvB,GAAG,CAAC,OAAO,KAAK,CAAC;AAAA,EACnB;AACA,SAAO;AACT;AAEO,MAAM,kBAAkB,KAAA;AAExB,MAAM,qBAAqB,KAAmC,CAAC,QAAQ;AAC5E,QAAM,QAAQ,IAAI,eAAe;AACjC,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,8BAAc,IAAA;AACpB,QAAM,QAAQ,CAAC,SAAS;AACtB,YAAQ,IAAI,KAAK,SAAS,IAAI;AAAA,EAChC,CAAC;AACD,SAAO;AACT,CAAC;"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const uiComponents = require("@macrostrat/ui-components");
|
|
4
|
+
const crossFetch = require("cross-fetch");
|
|
5
|
+
const topojsonClient = require("topojson-client");
|
|
6
|
+
const d3Geo = require("d3-geo");
|
|
7
|
+
function createScopedFetch(baseURL) {
|
|
8
|
+
return function(url, options = void 0) {
|
|
9
|
+
return crossFetch(baseURL + url, options);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
const defaultFetch = createScopedFetch("https://macrostrat.org/api/v2");
|
|
13
|
+
async function fetchAllColumns(options = {}) {
|
|
14
|
+
const {
|
|
15
|
+
apiBaseURL,
|
|
16
|
+
projectID,
|
|
17
|
+
format = "topojson",
|
|
18
|
+
statusCode,
|
|
19
|
+
fetch = crossFetch
|
|
20
|
+
} = options;
|
|
21
|
+
let args = { format };
|
|
22
|
+
if (projectID != null) {
|
|
23
|
+
args = { ...args, project_id: projectID };
|
|
24
|
+
}
|
|
25
|
+
let _statusCode = void 0;
|
|
26
|
+
if (Array.isArray(statusCode)) {
|
|
27
|
+
_statusCode = statusCode.join(",");
|
|
28
|
+
} else if (statusCode != null) {
|
|
29
|
+
_statusCode = statusCode;
|
|
30
|
+
}
|
|
31
|
+
args.statusCode = _statusCode;
|
|
32
|
+
if (projectID == null) {
|
|
33
|
+
args = { ...args, all: true };
|
|
34
|
+
}
|
|
35
|
+
let url = "/columns";
|
|
36
|
+
if (apiBaseURL != null) {
|
|
37
|
+
url = uiComponents.joinURL(apiBaseURL, url);
|
|
38
|
+
}
|
|
39
|
+
url = uiComponents.addQueryString(url, args);
|
|
40
|
+
const res = await fetch(url, {
|
|
41
|
+
method: "GET",
|
|
42
|
+
headers: {
|
|
43
|
+
"Content-Type": "application/json"
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
if (res == null) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const data = await res.json();
|
|
50
|
+
return postProcessColumns(columnProcessors[format](data));
|
|
51
|
+
}
|
|
52
|
+
function useColumnFeatures({
|
|
53
|
+
apiRoute = "/columns",
|
|
54
|
+
status_code,
|
|
55
|
+
project_id,
|
|
56
|
+
format = "geojson"
|
|
57
|
+
}) {
|
|
58
|
+
let all = void 0;
|
|
59
|
+
if (status_code == null && project_id == null) {
|
|
60
|
+
all = true;
|
|
61
|
+
}
|
|
62
|
+
const processor = columnProcessors[format];
|
|
63
|
+
return uiComponents.useAPIResult(
|
|
64
|
+
apiRoute,
|
|
65
|
+
{ format, all, status_code, project_id },
|
|
66
|
+
processor
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
function processGeoJSON(res) {
|
|
70
|
+
return processGeoJSONBare(res?.success?.data);
|
|
71
|
+
}
|
|
72
|
+
function processGeoJSONBare(res) {
|
|
73
|
+
return res?.features;
|
|
74
|
+
}
|
|
75
|
+
function processTopoJSON(res) {
|
|
76
|
+
try {
|
|
77
|
+
const { data } = res.success;
|
|
78
|
+
const { features: f } = topojsonClient.feature(data, data.objects.output);
|
|
79
|
+
return f;
|
|
80
|
+
} catch (err) {
|
|
81
|
+
console.error(err);
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function postProcessColumns(columns) {
|
|
86
|
+
return promoteColumnIDs(
|
|
87
|
+
convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns))
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
function promoteColumnIDs(features) {
|
|
91
|
+
return features.map((f, i) => {
|
|
92
|
+
return {
|
|
93
|
+
id: f.properties?.col_id,
|
|
94
|
+
...f
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function removeFeaturesWithoutGeometry(features) {
|
|
99
|
+
return features.filter((f) => f.geometry != null);
|
|
100
|
+
}
|
|
101
|
+
function convertSmallAreasToPoints(features) {
|
|
102
|
+
return features.map((f) => {
|
|
103
|
+
if (d3Geo.geoArea(f.geometry) < 1e-8) {
|
|
104
|
+
const centroid = f.geometry.coordinates[0][0];
|
|
105
|
+
f.geometry = {
|
|
106
|
+
type: "Point",
|
|
107
|
+
coordinates: centroid
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
return f;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
const columnProcessors = {
|
|
114
|
+
topojson: processTopoJSON,
|
|
115
|
+
geojson: processGeoJSON,
|
|
116
|
+
geojson_bare: processGeoJSONBare
|
|
117
|
+
};
|
|
118
|
+
async function unwrapResponse(res) {
|
|
119
|
+
if (res == null) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
const resData = await res.json();
|
|
123
|
+
return resData["success"]["data"];
|
|
124
|
+
}
|
|
125
|
+
async function fetchLithologies(fetch = defaultFetch) {
|
|
126
|
+
const res = await fetch("/defs/lithologies?all");
|
|
127
|
+
return await unwrapResponse(res);
|
|
128
|
+
}
|
|
129
|
+
async function fetchIntervals(timescaleID, fetch = defaultFetch) {
|
|
130
|
+
let url = `/defs/intervals`;
|
|
131
|
+
if (timescaleID != null) {
|
|
132
|
+
url += `?timescale_id=${timescaleID}`;
|
|
133
|
+
} else {
|
|
134
|
+
url += "?all";
|
|
135
|
+
}
|
|
136
|
+
const res = await fetch(url);
|
|
137
|
+
return await unwrapResponse(res);
|
|
138
|
+
}
|
|
139
|
+
async function fetchEnvironments(fetch = defaultFetch) {
|
|
140
|
+
const res = await fetch("/defs/environments?all");
|
|
141
|
+
return await unwrapResponse(res);
|
|
142
|
+
}
|
|
143
|
+
async function fetchRefs(refs, fetch = defaultFetch) {
|
|
144
|
+
let url = `/defs/refs`;
|
|
145
|
+
if (refs.length == 0) {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
url += "?ref_id=" + refs.join(",");
|
|
149
|
+
const res = await fetch(url);
|
|
150
|
+
return await unwrapResponse(res);
|
|
151
|
+
}
|
|
152
|
+
async function fetchStratNames(names, fetch = defaultFetch) {
|
|
153
|
+
let url = `/defs/strat_names`;
|
|
154
|
+
if (names.length == 0) {
|
|
155
|
+
return [];
|
|
156
|
+
}
|
|
157
|
+
url += "?strat_name_id=" + names.join(",");
|
|
158
|
+
const res = await fetch(url);
|
|
159
|
+
return await unwrapResponse(res);
|
|
160
|
+
}
|
|
161
|
+
async function fetchUnits(columns, fetch = defaultFetch) {
|
|
162
|
+
const params = new URLSearchParams();
|
|
163
|
+
params.append("response", "long");
|
|
164
|
+
if (columns.length == 0) {
|
|
165
|
+
return [];
|
|
166
|
+
}
|
|
167
|
+
const col_string = columns.map((column) => column.toString()).join(",");
|
|
168
|
+
params.append("col_id", col_string);
|
|
169
|
+
const res = await fetch("/units?" + params.toString());
|
|
170
|
+
const data = await res.json();
|
|
171
|
+
if (!data.success) {
|
|
172
|
+
throw new Error("Failed to fetch column units");
|
|
173
|
+
}
|
|
174
|
+
const units = data.success.data;
|
|
175
|
+
const unitsMap = /* @__PURE__ */ new Map();
|
|
176
|
+
for (const unit of units) {
|
|
177
|
+
const colID = unit.col_id;
|
|
178
|
+
if (!unitsMap.has(colID)) {
|
|
179
|
+
unitsMap.set(colID, []);
|
|
180
|
+
}
|
|
181
|
+
unitsMap.get(colID).push(unit);
|
|
182
|
+
}
|
|
183
|
+
const result = [];
|
|
184
|
+
for (const colID of columns) {
|
|
185
|
+
result.push({ columnID: colID, units: unitsMap.get(colID) || [] });
|
|
186
|
+
}
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
async function fetchColumnUnits(col_id, fetch = defaultFetch) {
|
|
190
|
+
const params = new URLSearchParams();
|
|
191
|
+
params.append("response", "long");
|
|
192
|
+
params.append("col_id", col_id.toString());
|
|
193
|
+
const res = await fetch("/units?" + params.toString());
|
|
194
|
+
const data = await res.json();
|
|
195
|
+
if (!data.success) {
|
|
196
|
+
throw new Error("Failed to fetch column units");
|
|
197
|
+
}
|
|
198
|
+
const units = data.success.data;
|
|
199
|
+
return { columnID: col_id, units };
|
|
200
|
+
}
|
|
201
|
+
exports.fetchAllColumns = fetchAllColumns;
|
|
202
|
+
exports.fetchColumnUnits = fetchColumnUnits;
|
|
203
|
+
exports.fetchEnvironments = fetchEnvironments;
|
|
204
|
+
exports.fetchIntervals = fetchIntervals;
|
|
205
|
+
exports.fetchLithologies = fetchLithologies;
|
|
206
|
+
exports.fetchRefs = fetchRefs;
|
|
207
|
+
exports.fetchStratNames = fetchStratNames;
|
|
208
|
+
exports.fetchUnits = fetchUnits;
|
|
209
|
+
exports.useColumnFeatures = useColumnFeatures;
|
|
210
|
+
//# sourceMappingURL=fetch.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.cjs","sources":["../../src/data-provider/fetch.ts"],"sourcesContent":["import {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n MacrostratRef,\n StratName,\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\";\n\nfunction createScopedFetch(baseURL: string) {\n return function (url: string, options: RequestInit | undefined = undefined) {\n return crossFetch(baseURL + url, options);\n };\n}\n\nconst defaultFetch = createScopedFetch(\"https://macrostrat.org/api/v2\");\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 params = new URLSearchParams();\n params.append(\"response\", \"long\");\n\n if (columns.length == 0) {\n return [];\n }\n\n const col_string = columns.map((column) => column.toString()).join(\",\");\n params.append(\"col_id\", col_string);\n\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 const unitsMap = new Map<number, UnitLong[]>();\n for (const unit of units) {\n const colID = unit.col_id;\n if (!unitsMap.has(colID)) {\n unitsMap.set(colID, []);\n }\n unitsMap.get(colID).push(unit);\n }\n const result: ColumnData[] = [];\n for (const colID of columns) {\n result.push({ columnID: colID, units: unitsMap.get(colID) || [] });\n }\n return result;\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","addQueryString","useAPIResult","feature","geoArea"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ColumnGeoJSONRecord, MacrostratRef, StratName, UnitLong } from '@macrostrat/api-types';
|
|
2
|
+
export type ColumnStatusCode = "in process" | "active" | "obsolete";
|
|
3
|
+
export interface ColumnFetchOptions {
|
|
4
|
+
apiBaseURL?: string;
|
|
5
|
+
projectID?: number;
|
|
6
|
+
statusCode?: ColumnStatusCode | ColumnStatusCode[];
|
|
7
|
+
format?: "geojson" | "topojson" | "geojson_bare";
|
|
8
|
+
fetch?: any;
|
|
9
|
+
}
|
|
10
|
+
export declare function fetchAllColumns(options?: ColumnFetchOptions): Promise<ColumnGeoJSONRecord[]>;
|
|
11
|
+
export declare function useColumnFeatures({ apiRoute, status_code, project_id, format, }: {
|
|
12
|
+
apiRoute?: string;
|
|
13
|
+
status_code: any;
|
|
14
|
+
project_id: any;
|
|
15
|
+
format?: string;
|
|
16
|
+
}): unknown;
|
|
17
|
+
export declare function fetchLithologies(fetch?: (url: string, options?: RequestInit | undefined) => Promise<Response>): Promise<any>;
|
|
18
|
+
export declare function fetchIntervals(timescaleID: number | null, fetch?: (url: string, options?: RequestInit | undefined) => Promise<Response>): Promise<any>;
|
|
19
|
+
export declare function fetchEnvironments(fetch?: (url: string, options?: RequestInit | undefined) => Promise<Response>): Promise<any>;
|
|
20
|
+
export declare function fetchRefs(refs: number[], fetch?: (url: string, options?: RequestInit | undefined) => Promise<Response>): Promise<MacrostratRef[]>;
|
|
21
|
+
export declare function fetchStratNames(names: number[], fetch?: (url: string, options?: RequestInit | undefined) => Promise<Response>): Promise<StratName[]>;
|
|
22
|
+
export type ColumnData = {
|
|
23
|
+
units: UnitLong[];
|
|
24
|
+
columnID: number;
|
|
25
|
+
};
|
|
26
|
+
export declare function fetchUnits(columns: number[], fetch?: (url: string, options?: RequestInit | undefined) => Promise<Response>): Promise<ColumnData[]>;
|
|
27
|
+
export declare function fetchColumnUnits(col_id: number, fetch?: (url: string, options?: RequestInit | undefined) => Promise<Response>): Promise<ColumnData>;
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { joinURL, addQueryString, useAPIResult } from "@macrostrat/ui-components";
|
|
2
|
+
import crossFetch from "cross-fetch";
|
|
3
|
+
import { feature } from "topojson-client";
|
|
4
|
+
import { geoArea } from "d3-geo";
|
|
5
|
+
function createScopedFetch(baseURL) {
|
|
6
|
+
return function(url, options = void 0) {
|
|
7
|
+
return crossFetch(baseURL + url, options);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
const defaultFetch = createScopedFetch("https://macrostrat.org/api/v2");
|
|
11
|
+
async function fetchAllColumns(options = {}) {
|
|
12
|
+
const {
|
|
13
|
+
apiBaseURL,
|
|
14
|
+
projectID,
|
|
15
|
+
format = "topojson",
|
|
16
|
+
statusCode,
|
|
17
|
+
fetch = crossFetch
|
|
18
|
+
} = options;
|
|
19
|
+
let args = { format };
|
|
20
|
+
if (projectID != null) {
|
|
21
|
+
args = { ...args, project_id: projectID };
|
|
22
|
+
}
|
|
23
|
+
let _statusCode = void 0;
|
|
24
|
+
if (Array.isArray(statusCode)) {
|
|
25
|
+
_statusCode = statusCode.join(",");
|
|
26
|
+
} else if (statusCode != null) {
|
|
27
|
+
_statusCode = statusCode;
|
|
28
|
+
}
|
|
29
|
+
args.statusCode = _statusCode;
|
|
30
|
+
if (projectID == null) {
|
|
31
|
+
args = { ...args, all: true };
|
|
32
|
+
}
|
|
33
|
+
let url = "/columns";
|
|
34
|
+
if (apiBaseURL != null) {
|
|
35
|
+
url = joinURL(apiBaseURL, url);
|
|
36
|
+
}
|
|
37
|
+
url = addQueryString(url, args);
|
|
38
|
+
const res = await fetch(url, {
|
|
39
|
+
method: "GET",
|
|
40
|
+
headers: {
|
|
41
|
+
"Content-Type": "application/json"
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
if (res == null) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const data = await res.json();
|
|
48
|
+
return postProcessColumns(columnProcessors[format](data));
|
|
49
|
+
}
|
|
50
|
+
function useColumnFeatures({
|
|
51
|
+
apiRoute = "/columns",
|
|
52
|
+
status_code,
|
|
53
|
+
project_id,
|
|
54
|
+
format = "geojson"
|
|
55
|
+
}) {
|
|
56
|
+
let all = void 0;
|
|
57
|
+
if (status_code == null && project_id == null) {
|
|
58
|
+
all = true;
|
|
59
|
+
}
|
|
60
|
+
const processor = columnProcessors[format];
|
|
61
|
+
return useAPIResult(
|
|
62
|
+
apiRoute,
|
|
63
|
+
{ format, all, status_code, project_id },
|
|
64
|
+
processor
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function processGeoJSON(res) {
|
|
68
|
+
return processGeoJSONBare(res?.success?.data);
|
|
69
|
+
}
|
|
70
|
+
function processGeoJSONBare(res) {
|
|
71
|
+
return res?.features;
|
|
72
|
+
}
|
|
73
|
+
function processTopoJSON(res) {
|
|
74
|
+
try {
|
|
75
|
+
const { data } = res.success;
|
|
76
|
+
const { features: f } = feature(data, data.objects.output);
|
|
77
|
+
return f;
|
|
78
|
+
} catch (err) {
|
|
79
|
+
console.error(err);
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function postProcessColumns(columns) {
|
|
84
|
+
return promoteColumnIDs(
|
|
85
|
+
convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns))
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
function promoteColumnIDs(features) {
|
|
89
|
+
return features.map((f, i) => {
|
|
90
|
+
return {
|
|
91
|
+
id: f.properties?.col_id,
|
|
92
|
+
...f
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function removeFeaturesWithoutGeometry(features) {
|
|
97
|
+
return features.filter((f) => f.geometry != null);
|
|
98
|
+
}
|
|
99
|
+
function convertSmallAreasToPoints(features) {
|
|
100
|
+
return features.map((f) => {
|
|
101
|
+
if (geoArea(f.geometry) < 1e-8) {
|
|
102
|
+
const centroid = f.geometry.coordinates[0][0];
|
|
103
|
+
f.geometry = {
|
|
104
|
+
type: "Point",
|
|
105
|
+
coordinates: centroid
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return f;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
const columnProcessors = {
|
|
112
|
+
topojson: processTopoJSON,
|
|
113
|
+
geojson: processGeoJSON,
|
|
114
|
+
geojson_bare: processGeoJSONBare
|
|
115
|
+
};
|
|
116
|
+
async function unwrapResponse(res) {
|
|
117
|
+
if (res == null) {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
const resData = await res.json();
|
|
121
|
+
return resData["success"]["data"];
|
|
122
|
+
}
|
|
123
|
+
async function fetchLithologies(fetch = defaultFetch) {
|
|
124
|
+
const res = await fetch("/defs/lithologies?all");
|
|
125
|
+
return await unwrapResponse(res);
|
|
126
|
+
}
|
|
127
|
+
async function fetchIntervals(timescaleID, fetch = defaultFetch) {
|
|
128
|
+
let url = `/defs/intervals`;
|
|
129
|
+
if (timescaleID != null) {
|
|
130
|
+
url += `?timescale_id=${timescaleID}`;
|
|
131
|
+
} else {
|
|
132
|
+
url += "?all";
|
|
133
|
+
}
|
|
134
|
+
const res = await fetch(url);
|
|
135
|
+
return await unwrapResponse(res);
|
|
136
|
+
}
|
|
137
|
+
async function fetchEnvironments(fetch = defaultFetch) {
|
|
138
|
+
const res = await fetch("/defs/environments?all");
|
|
139
|
+
return await unwrapResponse(res);
|
|
140
|
+
}
|
|
141
|
+
async function fetchRefs(refs, fetch = defaultFetch) {
|
|
142
|
+
let url = `/defs/refs`;
|
|
143
|
+
if (refs.length == 0) {
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
146
|
+
url += "?ref_id=" + refs.join(",");
|
|
147
|
+
const res = await fetch(url);
|
|
148
|
+
return await unwrapResponse(res);
|
|
149
|
+
}
|
|
150
|
+
async function fetchStratNames(names, fetch = defaultFetch) {
|
|
151
|
+
let url = `/defs/strat_names`;
|
|
152
|
+
if (names.length == 0) {
|
|
153
|
+
return [];
|
|
154
|
+
}
|
|
155
|
+
url += "?strat_name_id=" + names.join(",");
|
|
156
|
+
const res = await fetch(url);
|
|
157
|
+
return await unwrapResponse(res);
|
|
158
|
+
}
|
|
159
|
+
async function fetchUnits(columns, fetch = defaultFetch) {
|
|
160
|
+
const params = new URLSearchParams();
|
|
161
|
+
params.append("response", "long");
|
|
162
|
+
if (columns.length == 0) {
|
|
163
|
+
return [];
|
|
164
|
+
}
|
|
165
|
+
const col_string = columns.map((column) => column.toString()).join(",");
|
|
166
|
+
params.append("col_id", col_string);
|
|
167
|
+
const res = await fetch("/units?" + params.toString());
|
|
168
|
+
const data = await res.json();
|
|
169
|
+
if (!data.success) {
|
|
170
|
+
throw new Error("Failed to fetch column units");
|
|
171
|
+
}
|
|
172
|
+
const units = data.success.data;
|
|
173
|
+
const unitsMap = /* @__PURE__ */ new Map();
|
|
174
|
+
for (const unit of units) {
|
|
175
|
+
const colID = unit.col_id;
|
|
176
|
+
if (!unitsMap.has(colID)) {
|
|
177
|
+
unitsMap.set(colID, []);
|
|
178
|
+
}
|
|
179
|
+
unitsMap.get(colID).push(unit);
|
|
180
|
+
}
|
|
181
|
+
const result = [];
|
|
182
|
+
for (const colID of columns) {
|
|
183
|
+
result.push({ columnID: colID, units: unitsMap.get(colID) || [] });
|
|
184
|
+
}
|
|
185
|
+
return result;
|
|
186
|
+
}
|
|
187
|
+
async function fetchColumnUnits(col_id, fetch = defaultFetch) {
|
|
188
|
+
const params = new URLSearchParams();
|
|
189
|
+
params.append("response", "long");
|
|
190
|
+
params.append("col_id", col_id.toString());
|
|
191
|
+
const res = await fetch("/units?" + params.toString());
|
|
192
|
+
const data = await res.json();
|
|
193
|
+
if (!data.success) {
|
|
194
|
+
throw new Error("Failed to fetch column units");
|
|
195
|
+
}
|
|
196
|
+
const units = data.success.data;
|
|
197
|
+
return { columnID: col_id, units };
|
|
198
|
+
}
|
|
199
|
+
export {
|
|
200
|
+
fetchAllColumns,
|
|
201
|
+
fetchColumnUnits,
|
|
202
|
+
fetchEnvironments,
|
|
203
|
+
fetchIntervals,
|
|
204
|
+
fetchLithologies,
|
|
205
|
+
fetchRefs,
|
|
206
|
+
fetchStratNames,
|
|
207
|
+
fetchUnits,
|
|
208
|
+
useColumnFeatures
|
|
209
|
+
};
|
|
210
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sources":["../../src/data-provider/fetch.ts"],"sourcesContent":["import {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n MacrostratRef,\n StratName,\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\";\n\nfunction createScopedFetch(baseURL: string) {\n return function (url: string, options: RequestInit | undefined = undefined) {\n return crossFetch(baseURL + url, options);\n };\n}\n\nconst defaultFetch = createScopedFetch(\"https://macrostrat.org/api/v2\");\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 params = new URLSearchParams();\n params.append(\"response\", \"long\");\n\n if (columns.length == 0) {\n return [];\n }\n\n const col_string = columns.map((column) => column.toString()).join(\",\");\n params.append(\"col_id\", col_string);\n\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 const unitsMap = new Map<number, UnitLong[]>();\n for (const unit of units) {\n const colID = unit.col_id;\n if (!unitsMap.has(colID)) {\n unitsMap.set(colID, []);\n }\n unitsMap.get(colID).push(unit);\n }\n const result: ColumnData[] = [];\n for (const colID of columns) {\n result.push({ columnID: colID, units: unitsMap.get(colID) || [] });\n }\n return result;\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":[],"mappings":"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"}
|