@macrostrat/column-views 2.4.3 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +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/facets/measurements/sgp.ts +10 -3
- 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.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.905ddea0.js +0 -9
- package/dist/esm/column-views.905ddea0.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.b2142cd8.js +0 -13
- package/dist/esm/column-views.b2142cd8.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.b88d4bbe.js +0 -61
- package/dist/esm/column-views.b88d4bbe.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.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.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.0619e2da.js +0 -2
- package/dist/node/column-views.0619e2da.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.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.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.aff55599.js +0 -2
- package/dist/node/column-views.aff55599.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.f2e82230.js +0 -2
- package/dist/node/column-views.f2e82230.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.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,157 @@
|
|
|
1
|
+
import { hyperStyled } from "@macrostrat/hyper";
|
|
2
|
+
import { ColumnContext, LithologyColumn, SVG } from "@macrostrat/column-components";
|
|
3
|
+
import { defaultNameFunction, UnitNamesColumn } from "./names.js";
|
|
4
|
+
import { useEffect, useContext, useState, useRef, useCallback, createContext } from "react";
|
|
5
|
+
import { LabeledUnit, UnitBoxes } from "./boxes.js";
|
|
6
|
+
import styles from "./composite.module.sass.js";
|
|
7
|
+
import { useUnitSelectionDispatch } from "../data-provider/unit-selection.js";
|
|
8
|
+
import { useMacrostratColumnData, useCompositeScale } from "../data-provider/store.js";
|
|
9
|
+
const h = hyperStyled(styles);
|
|
10
|
+
const LabelTrackerContext = createContext(null);
|
|
11
|
+
const UnlabeledDivisionsContext = createContext(null);
|
|
12
|
+
const findMacrostratUnitID = (u) => u.unit_id;
|
|
13
|
+
function LabelTrackerProvider(props) {
|
|
14
|
+
const { children, units, findUnitID = findMacrostratUnitID } = props;
|
|
15
|
+
const [unlabeledDivisions, setUnlabeledDivisions] = useState(null);
|
|
16
|
+
const labelTrackerRef = useRef({});
|
|
17
|
+
const trackLabelVisibility = useCallback(
|
|
18
|
+
(div, visible) => {
|
|
19
|
+
const id = findUnitID(div);
|
|
20
|
+
labelTrackerRef.current[id] = visible;
|
|
21
|
+
if (Object.keys(labelTrackerRef.current).length == units.length) {
|
|
22
|
+
setUnlabeledDivisions(
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
units.filter((d) => {
|
|
25
|
+
const id2 = findUnitID(d);
|
|
26
|
+
return labelTrackerRef.current[id2] == false;
|
|
27
|
+
})
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
[labelTrackerRef, units, findUnitID]
|
|
32
|
+
);
|
|
33
|
+
const value = trackLabelVisibility;
|
|
34
|
+
return h(
|
|
35
|
+
LabelTrackerContext.Provider,
|
|
36
|
+
{ value },
|
|
37
|
+
h(
|
|
38
|
+
UnlabeledDivisionsContext.Provider,
|
|
39
|
+
{ value: unlabeledDivisions },
|
|
40
|
+
children
|
|
41
|
+
)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
function TrackedLabeledUnit({
|
|
45
|
+
division,
|
|
46
|
+
nameForDivision = defaultNameFunction,
|
|
47
|
+
...rest
|
|
48
|
+
}) {
|
|
49
|
+
const trackLabelVisibility = useContext(LabelTrackerContext);
|
|
50
|
+
return h(LabeledUnit, {
|
|
51
|
+
division,
|
|
52
|
+
label: nameForDivision(division),
|
|
53
|
+
onLabelUpdated(label, visible) {
|
|
54
|
+
trackLabelVisibility?.(division, visible);
|
|
55
|
+
},
|
|
56
|
+
...rest
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
const CompositeUnitComponent = TrackedLabeledUnit;
|
|
60
|
+
function CompositeUnitsColumn(props) {
|
|
61
|
+
const {
|
|
62
|
+
width,
|
|
63
|
+
unitComponent = TrackedLabeledUnit,
|
|
64
|
+
unitComponentProps,
|
|
65
|
+
clipToFrame,
|
|
66
|
+
...rest
|
|
67
|
+
} = props;
|
|
68
|
+
return h(LithologyColumn, { width, clipToFrame }, [
|
|
69
|
+
h(UnitBoxes, {
|
|
70
|
+
unitComponent,
|
|
71
|
+
unitComponentProps,
|
|
72
|
+
...rest
|
|
73
|
+
})
|
|
74
|
+
]);
|
|
75
|
+
}
|
|
76
|
+
function AnnotatedUnitsColumn(props) {
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
console.warn(
|
|
79
|
+
"AnnotatedUnitsColumn is deprecated and currently renders a no-op for transition purposes"
|
|
80
|
+
);
|
|
81
|
+
}, []);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
function SectionLabelsColumn(props) {
|
|
85
|
+
const {
|
|
86
|
+
width = 300,
|
|
87
|
+
noteMode = "unlabeled",
|
|
88
|
+
labelOffset = 30,
|
|
89
|
+
noteComponent,
|
|
90
|
+
shouldRenderNote
|
|
91
|
+
} = props;
|
|
92
|
+
const { totalHeight, axisType } = useMacrostratColumnData();
|
|
93
|
+
const _compositeScale = useCompositeScale();
|
|
94
|
+
const unlabeledUnits = useContext(UnlabeledDivisionsContext);
|
|
95
|
+
const unitsToLabel = noteMode == "unlabeled" ? unlabeledUnits : void 0;
|
|
96
|
+
const selectUnit = useUnitSelectionDispatch();
|
|
97
|
+
return h("div.section-labels-column", [
|
|
98
|
+
h(
|
|
99
|
+
ColumnNotesProvider,
|
|
100
|
+
{
|
|
101
|
+
units: [],
|
|
102
|
+
scale: _compositeScale,
|
|
103
|
+
totalHeight,
|
|
104
|
+
axisType
|
|
105
|
+
},
|
|
106
|
+
h(
|
|
107
|
+
SVG,
|
|
108
|
+
{
|
|
109
|
+
height: totalHeight,
|
|
110
|
+
innerWidth: width - 4,
|
|
111
|
+
paddingH: 1,
|
|
112
|
+
paddingLeft: 3
|
|
113
|
+
},
|
|
114
|
+
h(UnitNamesColumn, {
|
|
115
|
+
divisions: unitsToLabel,
|
|
116
|
+
paddingLeft: labelOffset,
|
|
117
|
+
width,
|
|
118
|
+
noteComponent,
|
|
119
|
+
shouldRenderNote,
|
|
120
|
+
scale: _compositeScale,
|
|
121
|
+
onClickNote(note) {
|
|
122
|
+
selectUnit(note.data, null, null);
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
)
|
|
126
|
+
)
|
|
127
|
+
]);
|
|
128
|
+
}
|
|
129
|
+
function ColumnNotesProvider(props) {
|
|
130
|
+
const { children, scale, totalHeight, pixelScale } = props;
|
|
131
|
+
const { axisType } = useMacrostratColumnData();
|
|
132
|
+
return h(
|
|
133
|
+
ColumnContext.Provider,
|
|
134
|
+
{
|
|
135
|
+
value: {
|
|
136
|
+
divisions: [],
|
|
137
|
+
scale,
|
|
138
|
+
scaleClamped: scale,
|
|
139
|
+
pixelHeight: totalHeight,
|
|
140
|
+
pixelsPerMeter: pixelScale,
|
|
141
|
+
axisType,
|
|
142
|
+
zoom: 1
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
children
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
export {
|
|
149
|
+
AnnotatedUnitsColumn,
|
|
150
|
+
ColumnNotesProvider,
|
|
151
|
+
CompositeUnitComponent,
|
|
152
|
+
CompositeUnitsColumn,
|
|
153
|
+
LabelTrackerProvider,
|
|
154
|
+
SectionLabelsColumn,
|
|
155
|
+
TrackedLabeledUnit
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=composite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.js","sources":["../../src/units/composite.ts"],"sourcesContent":["import { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n ColumnContext,\n LithologyColumn,\n SVG,\n} from \"@macrostrat/column-components\";\nimport { defaultNameFunction, UnitNamesColumn } from \"./names\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\nimport { LabeledUnit, UnitBoxes } from \"./boxes\";\nimport styles from \"./composite.module.sass\";\nimport {\n useCompositeScale,\n useMacrostratColumnData,\n useUnitSelectionDispatch,\n} from \"../data-provider\";\n\nconst h = hyperStyled(styles);\n\ninterface LabelTracker {\n [key: number]: boolean;\n}\n\nconst LabelTrackerContext = createContext(null);\nconst UnlabeledDivisionsContext = createContext(null);\n\nconst findMacrostratUnitID = (u) => u.unit_id;\n\nexport function LabelTrackerProvider(props) {\n /** Tracker for units to handle state for whether their labels fit inline or not.\n * Designed to work for single or composite columns.\n */\n const { children, units, findUnitID = findMacrostratUnitID } = props;\n const [unlabeledDivisions, setUnlabeledDivisions] = useState<\n BaseUnit[] | null\n >(null);\n const labelTrackerRef = useRef<LabelTracker>({});\n const trackLabelVisibility = useCallback(\n (div, visible) => {\n const id = findUnitID(div);\n labelTrackerRef.current[id] = visible;\n if (Object.keys(labelTrackerRef.current).length == units.length) {\n setUnlabeledDivisions(\n // @ts-ignore\n units.filter((d) => {\n const id = findUnitID(d);\n return labelTrackerRef.current[id] == false;\n }),\n );\n }\n },\n [labelTrackerRef, units, findUnitID],\n );\n\n const value = trackLabelVisibility;\n return h(\n LabelTrackerContext.Provider,\n { value },\n h(\n UnlabeledDivisionsContext.Provider,\n { value: unlabeledDivisions },\n children,\n ),\n );\n}\n\nfunction TrackedLabeledUnit({\n division,\n nameForDivision = defaultNameFunction,\n ...rest\n}) {\n const trackLabelVisibility = useContext(LabelTrackerContext);\n return h(LabeledUnit, {\n division,\n label: nameForDivision(division),\n onLabelUpdated(label, visible) {\n // If there is al LabelTrackerContext, update the label visibility\n trackLabelVisibility?.(division, visible);\n },\n ...rest,\n });\n}\n\nexport const CompositeUnitComponent = TrackedLabeledUnit;\n\ntype BaseUnitProps = {\n width: number;\n showLabels?: boolean;\n columnWidth?: number;\n clipToFrame?: boolean;\n};\n\ntype ICompositeUnitProps = BaseUnitProps & {\n gutterWidth?: number;\n labelOffset?: number;\n paddingLeft?: number;\n nameForDivision?: (division: BaseUnit) => string;\n children?: React.ReactNode;\n unitComponent?: React.FC<any>;\n unitComponentProps?: any;\n noteMode?: \"labeled\" | \"unlabeled\";\n showLabelColumn?: boolean;\n noteComponent?: React.FC<any>;\n shouldRenderNote?: (d: any) => boolean;\n};\n\ninterface CompositeUnitProps {\n unitComponent: React.FC<any>;\n unitComponentProps?: any;\n width: number;\n showLabels?: boolean;\n clipToFrame?: boolean;\n}\n\nexport function CompositeUnitsColumn(props: CompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const {\n width,\n unitComponent = TrackedLabeledUnit,\n unitComponentProps,\n clipToFrame,\n ...rest\n } = props;\n\n return h(LithologyColumn, { width, clipToFrame }, [\n h(UnitBoxes, {\n unitComponent,\n unitComponentProps,\n ...rest,\n }),\n ]);\n}\n\nexport function AnnotatedUnitsColumn(props: ICompositeUnitProps) {\n useEffect(() => {\n console.warn(\n \"AnnotatedUnitsColumn is deprecated and currently renders a no-op for transition purposes\",\n );\n }, []);\n return null;\n}\n\nexport function SectionLabelsColumn(props: ICompositeUnitProps) {\n // Section with \"squishy\" time scale\n const {\n width = 300,\n noteMode = \"unlabeled\",\n labelOffset = 30,\n noteComponent,\n shouldRenderNote,\n } = props;\n\n const { totalHeight, axisType } = useMacrostratColumnData();\n const _compositeScale = useCompositeScale();\n\n const unlabeledUnits = useContext(UnlabeledDivisionsContext);\n const unitsToLabel = noteMode == \"unlabeled\" ? unlabeledUnits : undefined;\n\n const selectUnit = useUnitSelectionDispatch();\n\n return h(\"div.section-labels-column\", [\n h(\n ColumnNotesProvider,\n {\n units: [],\n scale: _compositeScale,\n totalHeight,\n axisType,\n },\n h(\n SVG,\n {\n height: totalHeight,\n innerWidth: width - 4,\n paddingH: 1,\n paddingLeft: 3,\n },\n h(UnitNamesColumn, {\n divisions: unitsToLabel,\n paddingLeft: labelOffset,\n width,\n noteComponent,\n shouldRenderNote,\n scale: _compositeScale,\n onClickNote(note) {\n selectUnit(note.data, null, null);\n },\n }),\n ),\n ),\n ]);\n}\n\nexport function ColumnNotesProvider(props) {\n // A fake column axis provider that allows scales to cross\n const { children, scale, totalHeight, pixelScale } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n return h(\n ColumnContext.Provider,\n {\n value: {\n divisions: [],\n scale,\n scaleClamped: scale,\n pixelHeight: totalHeight,\n pixelsPerMeter: pixelScale,\n axisType,\n zoom: 1,\n },\n },\n children,\n );\n}\n\nexport { TrackedLabeledUnit, ICompositeUnitProps };\n"],"names":["id"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const styles = {
|
|
4
|
+
"unit-label": "_unit-label_tidbs_1"
|
|
5
|
+
};
|
|
6
|
+
exports.default = styles;
|
|
7
|
+
//# sourceMappingURL=composite.module.sass.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.module.sass.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite.module.sass.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const h = require("@macrostrat/hyper");
|
|
4
|
+
const columnComponents = require("@macrostrat/column-components");
|
|
5
|
+
const names = require("./names.cjs");
|
|
6
|
+
const boxes = require("./boxes.cjs");
|
|
7
|
+
const uiComponents = require("@macrostrat/ui-components");
|
|
8
|
+
const colors = require("./colors.cjs");
|
|
9
|
+
const composite = require("./composite.cjs");
|
|
10
|
+
const React = require("react");
|
|
11
|
+
const resolvers = require("./resolvers.cjs");
|
|
12
|
+
const base = require("../data-provider/base.cjs");
|
|
13
|
+
function UnitsColumn({ width = 100 }) {
|
|
14
|
+
return h(columnComponents.LithologyColumn, { width }, h(boxes.UnitBoxes));
|
|
15
|
+
}
|
|
16
|
+
function SimpleUnitsColumn(props) {
|
|
17
|
+
const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;
|
|
18
|
+
return h([
|
|
19
|
+
h(UnitsColumn, {
|
|
20
|
+
width: columnWidth
|
|
21
|
+
}),
|
|
22
|
+
h(names.UnitNamesColumn, {
|
|
23
|
+
transform: `translate(${columnWidth + gutterWidth})`,
|
|
24
|
+
paddingLeft: labelOffset,
|
|
25
|
+
width: width - columnWidth - gutterWidth
|
|
26
|
+
})
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
function BasicUnitComponent({ division, ...rest }) {
|
|
30
|
+
return h(UnitComponent, {
|
|
31
|
+
division,
|
|
32
|
+
...rest,
|
|
33
|
+
backgroundColor: division.color,
|
|
34
|
+
patternID: division.patternID
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function UnitComponent({ division, nColumns = 2, ...rest }) {
|
|
38
|
+
const width = rest.width ?? columnComponents.useColumnLayout()?.width;
|
|
39
|
+
const nOverlappingUnits = division.overlappingUnits?.length ?? 0;
|
|
40
|
+
const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;
|
|
41
|
+
const columnIx = (division.column ?? 0) % _nColumns;
|
|
42
|
+
const reducedWidth = width / _nColumns;
|
|
43
|
+
const x = columnIx * width / _nColumns;
|
|
44
|
+
return h(composite.TrackedLabeledUnit, {
|
|
45
|
+
division,
|
|
46
|
+
...rest,
|
|
47
|
+
width: reducedWidth,
|
|
48
|
+
x
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function useUnitColor(unit, opts = {}) {
|
|
52
|
+
const lithMap = base.useLithologies();
|
|
53
|
+
const inDarkMode = uiComponents.useInDarkMode();
|
|
54
|
+
const { asBackground = true } = opts;
|
|
55
|
+
return React.useMemo(() => {
|
|
56
|
+
if (unit == null || lithMap == null) return null;
|
|
57
|
+
return colors.getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);
|
|
58
|
+
}, [unit?.unit_id, lithMap, inDarkMode, asBackground]);
|
|
59
|
+
}
|
|
60
|
+
function ColoredUnitComponent(props) {
|
|
61
|
+
const backgroundColor = useUnitColor(props.division);
|
|
62
|
+
const patternID = React.useMemo(() => {
|
|
63
|
+
return resolvers.resolveID(props.division);
|
|
64
|
+
}, [props.division?.unit_id]);
|
|
65
|
+
const fill = columnComponents.useGeologicPattern(patternID);
|
|
66
|
+
return h(UnitComponent, {
|
|
67
|
+
fill,
|
|
68
|
+
backgroundColor,
|
|
69
|
+
...props
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function useUnitColorByEnvironment(unit, opts = {}) {
|
|
73
|
+
const environmentMap = base.useEnvironments();
|
|
74
|
+
const lithMap = base.useLithologies();
|
|
75
|
+
const inDarkMode = uiComponents.useInDarkMode();
|
|
76
|
+
const { asBackground = true } = opts;
|
|
77
|
+
return React.useMemo(() => {
|
|
78
|
+
if (unit == null || environmentMap == null) return null;
|
|
79
|
+
let c = colors.getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {
|
|
80
|
+
key: "environ",
|
|
81
|
+
id_key: "environ_id"
|
|
82
|
+
});
|
|
83
|
+
if (c != null) {
|
|
84
|
+
return c;
|
|
85
|
+
}
|
|
86
|
+
return colors.getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);
|
|
87
|
+
}, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);
|
|
88
|
+
}
|
|
89
|
+
function EnvironmentColoredUnitComponent(props) {
|
|
90
|
+
const backgroundColor = useUnitColorByEnvironment(props.division);
|
|
91
|
+
const patternID = React.useMemo(() => {
|
|
92
|
+
return resolvers.resolveID(props.division);
|
|
93
|
+
}, [props.division?.unit_id]);
|
|
94
|
+
const fill = columnComponents.useGeologicPattern(patternID);
|
|
95
|
+
return h(UnitComponent, {
|
|
96
|
+
fill,
|
|
97
|
+
backgroundColor,
|
|
98
|
+
...props
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
exports.getMixedUnitColor = colors.getMixedUnitColor;
|
|
102
|
+
exports.AnnotatedUnitsColumn = composite.AnnotatedUnitsColumn;
|
|
103
|
+
exports.ColumnNotesProvider = composite.ColumnNotesProvider;
|
|
104
|
+
exports.CompositeUnitComponent = composite.CompositeUnitComponent;
|
|
105
|
+
exports.CompositeUnitsColumn = composite.CompositeUnitsColumn;
|
|
106
|
+
exports.LabelTrackerProvider = composite.LabelTrackerProvider;
|
|
107
|
+
exports.SectionLabelsColumn = composite.SectionLabelsColumn;
|
|
108
|
+
exports.TrackedLabeledUnit = composite.TrackedLabeledUnit;
|
|
109
|
+
exports.BasicUnitComponent = BasicUnitComponent;
|
|
110
|
+
exports.ColoredUnitComponent = ColoredUnitComponent;
|
|
111
|
+
exports.EnvironmentColoredUnitComponent = EnvironmentColoredUnitComponent;
|
|
112
|
+
exports.SimpleUnitsColumn = SimpleUnitsColumn;
|
|
113
|
+
exports.UnitComponent = UnitComponent;
|
|
114
|
+
exports.UnitsColumn = UnitsColumn;
|
|
115
|
+
exports.useUnitColor = useUnitColor;
|
|
116
|
+
exports.useUnitColorByEnvironment = useUnitColorByEnvironment;
|
|
117
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/units/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { UnitNamesColumn } from \"./names\";\nimport { ICompositeUnitProps } from \"./composite\";\nimport { UnitBoxes, UnitProps } from \"./boxes\";\nimport { useColumnLayout } from \"@macrostrat/column-components\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { TrackedLabeledUnit } from \"./composite\";\nimport { useEnvironments, useLithologies } from \"../data-provider\";\nimport { useMemo } from \"react\";\nimport { resolveID } from \"./resolvers\";\nimport { Lithology } from \"@macrostrat/api-types\";\n\nexport * from \"./composite\";\nexport * from \"./types\";\nexport * from \"./colors\";\n\nexport function UnitsColumn({ width = 100 }) {\n /*\n A column showing units with USGS color fill\n */\n return h(LithologyColumn, { width }, h(UnitBoxes));\n}\n\nexport function SimpleUnitsColumn(props: ICompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;\n\n return h([\n h(UnitsColumn, {\n width: columnWidth,\n }),\n h(UnitNamesColumn, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n }),\n ]);\n}\n\nexport function BasicUnitComponent({ division, ...rest }) {\n /** A unit that allows directly setting colors and patterns. */\n\n return h(UnitComponent, {\n division,\n ...rest,\n backgroundColor: division.color,\n patternID: division.patternID,\n });\n}\n\nexport function UnitComponent({ division, nColumns = 2, ...rest }) {\n const width = rest.width ?? useColumnLayout()?.width;\n\n const nOverlappingUnits = division.overlappingUnits?.length ?? 0;\n const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;\n const columnIx = (division.column ?? 0) % _nColumns;\n const reducedWidth = width / _nColumns;\n const x = (columnIx * width) / _nColumns;\n\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: reducedWidth,\n x,\n });\n}\n\ninterface UnitColorOptions {\n asBackground?: boolean;\n}\n\nexport function useUnitColor(unit, opts: UnitColorOptions = {}): string | null {\n /** Get the color for a unit based on its lithology */\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || lithMap == null) return null;\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);\n}\n\nexport function ColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColor(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nexport function useUnitColorByEnvironment(\n unit,\n opts: UnitColorOptions = {},\n): string | null {\n /** Get the color for a unit based on its lithology */\n const environmentMap = useEnvironments();\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || environmentMap == null) return null;\n let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {\n key: \"environ\",\n id_key: \"environ_id\",\n });\n if (c != null) {\n return c;\n }\n // Fallback to lithology color if no environment color is found\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);\n}\n\nexport function EnvironmentColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColorByEnvironment(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nfunction getPatternID(\n liths: Array<Lithology>,\n lithMap: Map<number, Lithology>,\n): string | null {\n if (lithMap == null || liths == null || liths.length == 0) {\n return null;\n }\n const patternIDs = new Set<string>();\n for (const lith of liths) {\n const lithData = lithMap.get(lith.lith_id);\n if (lithData) {\n patternIDs.add(`${lithData.fill}`);\n }\n }\n let id = patternIDs.values()[0];\n if (id == \"0\") return null;\n return id;\n}\n"],"names":["LithologyColumn","UnitBoxes","UnitNamesColumn","useColumnLayout","TrackedLabeledUnit","useLithologies","useInDarkMode","useMemo","getMixedUnitColor","resolveID","useGeologicPattern","useEnvironments"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ICompositeUnitProps } from './composite';
|
|
2
|
+
export * from './composite';
|
|
3
|
+
export * from './types';
|
|
4
|
+
export * from './colors';
|
|
5
|
+
export declare function UnitsColumn({ width }: {
|
|
6
|
+
width?: number;
|
|
7
|
+
}): import('react').FunctionComponentElement<import('@macrostrat/column-components').LithologyColumnProps>;
|
|
8
|
+
export declare function SimpleUnitsColumn(props: ICompositeUnitProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
|
|
9
|
+
export declare function BasicUnitComponent({ division, ...rest }: {
|
|
10
|
+
[x: string]: any;
|
|
11
|
+
division: any;
|
|
12
|
+
}): import('react').FunctionComponentElement<{
|
|
13
|
+
[x: string]: any;
|
|
14
|
+
division: any;
|
|
15
|
+
nColumns?: number;
|
|
16
|
+
}>;
|
|
17
|
+
export declare function UnitComponent({ division, nColumns, ...rest }: {
|
|
18
|
+
[x: string]: any;
|
|
19
|
+
division: any;
|
|
20
|
+
nColumns?: number;
|
|
21
|
+
}): import('react').FunctionComponentElement<{
|
|
22
|
+
[x: string]: any;
|
|
23
|
+
division: any;
|
|
24
|
+
nameForDivision?: (div: any) => any;
|
|
25
|
+
}>;
|
|
26
|
+
interface UnitColorOptions {
|
|
27
|
+
asBackground?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare function useUnitColor(unit: any, opts?: UnitColorOptions): string | null;
|
|
30
|
+
export declare function ColoredUnitComponent(props: any): import('react').FunctionComponentElement<{
|
|
31
|
+
[x: string]: any;
|
|
32
|
+
division: any;
|
|
33
|
+
nColumns?: number;
|
|
34
|
+
}>;
|
|
35
|
+
export declare function useUnitColorByEnvironment(unit: any, opts?: UnitColorOptions): string | null;
|
|
36
|
+
export declare function EnvironmentColoredUnitComponent(props: any): import('react').FunctionComponentElement<{
|
|
37
|
+
[x: string]: any;
|
|
38
|
+
division: any;
|
|
39
|
+
nColumns?: number;
|
|
40
|
+
}>;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import h from "@macrostrat/hyper";
|
|
2
|
+
import { useGeologicPattern, useColumnLayout, LithologyColumn } from "@macrostrat/column-components";
|
|
3
|
+
import { UnitNamesColumn } from "./names.js";
|
|
4
|
+
import { UnitBoxes } from "./boxes.js";
|
|
5
|
+
import { useInDarkMode } from "@macrostrat/ui-components";
|
|
6
|
+
import { getMixedUnitColor } from "./colors.js";
|
|
7
|
+
import { TrackedLabeledUnit } from "./composite.js";
|
|
8
|
+
import { AnnotatedUnitsColumn, ColumnNotesProvider, CompositeUnitComponent, CompositeUnitsColumn, LabelTrackerProvider, SectionLabelsColumn } from "./composite.js";
|
|
9
|
+
import { useMemo } from "react";
|
|
10
|
+
import { resolveID } from "./resolvers.js";
|
|
11
|
+
import { useLithologies, useEnvironments } from "../data-provider/base.js";
|
|
12
|
+
function UnitsColumn({ width = 100 }) {
|
|
13
|
+
return h(LithologyColumn, { width }, h(UnitBoxes));
|
|
14
|
+
}
|
|
15
|
+
function SimpleUnitsColumn(props) {
|
|
16
|
+
const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;
|
|
17
|
+
return h([
|
|
18
|
+
h(UnitsColumn, {
|
|
19
|
+
width: columnWidth
|
|
20
|
+
}),
|
|
21
|
+
h(UnitNamesColumn, {
|
|
22
|
+
transform: `translate(${columnWidth + gutterWidth})`,
|
|
23
|
+
paddingLeft: labelOffset,
|
|
24
|
+
width: width - columnWidth - gutterWidth
|
|
25
|
+
})
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
function BasicUnitComponent({ division, ...rest }) {
|
|
29
|
+
return h(UnitComponent, {
|
|
30
|
+
division,
|
|
31
|
+
...rest,
|
|
32
|
+
backgroundColor: division.color,
|
|
33
|
+
patternID: division.patternID
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function UnitComponent({ division, nColumns = 2, ...rest }) {
|
|
37
|
+
const width = rest.width ?? useColumnLayout()?.width;
|
|
38
|
+
const nOverlappingUnits = division.overlappingUnits?.length ?? 0;
|
|
39
|
+
const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;
|
|
40
|
+
const columnIx = (division.column ?? 0) % _nColumns;
|
|
41
|
+
const reducedWidth = width / _nColumns;
|
|
42
|
+
const x = columnIx * width / _nColumns;
|
|
43
|
+
return h(TrackedLabeledUnit, {
|
|
44
|
+
division,
|
|
45
|
+
...rest,
|
|
46
|
+
width: reducedWidth,
|
|
47
|
+
x
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function useUnitColor(unit, opts = {}) {
|
|
51
|
+
const lithMap = useLithologies();
|
|
52
|
+
const inDarkMode = useInDarkMode();
|
|
53
|
+
const { asBackground = true } = opts;
|
|
54
|
+
return useMemo(() => {
|
|
55
|
+
if (unit == null || lithMap == null) return null;
|
|
56
|
+
return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);
|
|
57
|
+
}, [unit?.unit_id, lithMap, inDarkMode, asBackground]);
|
|
58
|
+
}
|
|
59
|
+
function ColoredUnitComponent(props) {
|
|
60
|
+
const backgroundColor = useUnitColor(props.division);
|
|
61
|
+
const patternID = useMemo(() => {
|
|
62
|
+
return resolveID(props.division);
|
|
63
|
+
}, [props.division?.unit_id]);
|
|
64
|
+
const fill = useGeologicPattern(patternID);
|
|
65
|
+
return h(UnitComponent, {
|
|
66
|
+
fill,
|
|
67
|
+
backgroundColor,
|
|
68
|
+
...props
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function useUnitColorByEnvironment(unit, opts = {}) {
|
|
72
|
+
const environmentMap = useEnvironments();
|
|
73
|
+
const lithMap = useLithologies();
|
|
74
|
+
const inDarkMode = useInDarkMode();
|
|
75
|
+
const { asBackground = true } = opts;
|
|
76
|
+
return useMemo(() => {
|
|
77
|
+
if (unit == null || environmentMap == null) return null;
|
|
78
|
+
let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {
|
|
79
|
+
key: "environ",
|
|
80
|
+
id_key: "environ_id"
|
|
81
|
+
});
|
|
82
|
+
if (c != null) {
|
|
83
|
+
return c;
|
|
84
|
+
}
|
|
85
|
+
return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);
|
|
86
|
+
}, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);
|
|
87
|
+
}
|
|
88
|
+
function EnvironmentColoredUnitComponent(props) {
|
|
89
|
+
const backgroundColor = useUnitColorByEnvironment(props.division);
|
|
90
|
+
const patternID = useMemo(() => {
|
|
91
|
+
return resolveID(props.division);
|
|
92
|
+
}, [props.division?.unit_id]);
|
|
93
|
+
const fill = useGeologicPattern(patternID);
|
|
94
|
+
return h(UnitComponent, {
|
|
95
|
+
fill,
|
|
96
|
+
backgroundColor,
|
|
97
|
+
...props
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
export {
|
|
101
|
+
AnnotatedUnitsColumn,
|
|
102
|
+
BasicUnitComponent,
|
|
103
|
+
ColoredUnitComponent,
|
|
104
|
+
ColumnNotesProvider,
|
|
105
|
+
CompositeUnitComponent,
|
|
106
|
+
CompositeUnitsColumn,
|
|
107
|
+
EnvironmentColoredUnitComponent,
|
|
108
|
+
LabelTrackerProvider,
|
|
109
|
+
SectionLabelsColumn,
|
|
110
|
+
SimpleUnitsColumn,
|
|
111
|
+
TrackedLabeledUnit,
|
|
112
|
+
UnitComponent,
|
|
113
|
+
UnitsColumn,
|
|
114
|
+
getMixedUnitColor,
|
|
115
|
+
useUnitColor,
|
|
116
|
+
useUnitColorByEnvironment
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/units/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { UnitNamesColumn } from \"./names\";\nimport { ICompositeUnitProps } from \"./composite\";\nimport { UnitBoxes, UnitProps } from \"./boxes\";\nimport { useColumnLayout } from \"@macrostrat/column-components\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { TrackedLabeledUnit } from \"./composite\";\nimport { useEnvironments, useLithologies } from \"../data-provider\";\nimport { useMemo } from \"react\";\nimport { resolveID } from \"./resolvers\";\nimport { Lithology } from \"@macrostrat/api-types\";\n\nexport * from \"./composite\";\nexport * from \"./types\";\nexport * from \"./colors\";\n\nexport function UnitsColumn({ width = 100 }) {\n /*\n A column showing units with USGS color fill\n */\n return h(LithologyColumn, { width }, h(UnitBoxes));\n}\n\nexport function SimpleUnitsColumn(props: ICompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;\n\n return h([\n h(UnitsColumn, {\n width: columnWidth,\n }),\n h(UnitNamesColumn, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n }),\n ]);\n}\n\nexport function BasicUnitComponent({ division, ...rest }) {\n /** A unit that allows directly setting colors and patterns. */\n\n return h(UnitComponent, {\n division,\n ...rest,\n backgroundColor: division.color,\n patternID: division.patternID,\n });\n}\n\nexport function UnitComponent({ division, nColumns = 2, ...rest }) {\n const width = rest.width ?? useColumnLayout()?.width;\n\n const nOverlappingUnits = division.overlappingUnits?.length ?? 0;\n const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;\n const columnIx = (division.column ?? 0) % _nColumns;\n const reducedWidth = width / _nColumns;\n const x = (columnIx * width) / _nColumns;\n\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: reducedWidth,\n x,\n });\n}\n\ninterface UnitColorOptions {\n asBackground?: boolean;\n}\n\nexport function useUnitColor(unit, opts: UnitColorOptions = {}): string | null {\n /** Get the color for a unit based on its lithology */\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || lithMap == null) return null;\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);\n}\n\nexport function ColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColor(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nexport function useUnitColorByEnvironment(\n unit,\n opts: UnitColorOptions = {},\n): string | null {\n /** Get the color for a unit based on its lithology */\n const environmentMap = useEnvironments();\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || environmentMap == null) return null;\n let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {\n key: \"environ\",\n id_key: \"environ_id\",\n });\n if (c != null) {\n return c;\n }\n // Fallback to lithology color if no environment color is found\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);\n}\n\nexport function EnvironmentColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColorByEnvironment(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nfunction getPatternID(\n liths: Array<Lithology>,\n lithMap: Map<number, Lithology>,\n): string | null {\n if (lithMap == null || liths == null || liths.length == 0) {\n return null;\n }\n const patternIDs = new Set<string>();\n for (const lith of liths) {\n const lithData = lithMap.get(lith.lith_id);\n if (lithData) {\n patternIDs.add(`${lithData.fill}`);\n }\n }\n let id = patternIDs.values()[0];\n if (id == \"0\") return null;\n return id;\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAqBO,SAAS,YAAY,EAAE,QAAQ,OAAO;AAI3C,SAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC;AACnD;AAEO,SAAS,kBAAkB,OAA4B;AAK5D,QAAM,EAAE,aAAa,OAAO,cAAc,GAAG,cAAc,OAAO;AAElE,SAAO,EAAE;AAAA,IACP,EAAE,aAAa;AAAA,MACb,OAAO;AAAA,IAAA,CACR;AAAA,IACD,EAAE,iBAAiB;AAAA,MACjB,WAAW,aAAa,cAAc,WAAW;AAAA,MACjD,aAAa;AAAA,MACb,OAAO,QAAQ,cAAc;AAAA,IAAA,CAC9B;AAAA,EAAA,CACF;AACH;AAEO,SAAS,mBAAmB,EAAE,UAAU,GAAG,QAAQ;AAGxD,SAAO,EAAE,eAAe;AAAA,IACtB;AAAA,IACA,GAAG;AAAA,IACH,iBAAiB,SAAS;AAAA,IAC1B,WAAW,SAAS;AAAA,EAAA,CACrB;AACH;AAEO,SAAS,cAAc,EAAE,UAAU,WAAW,GAAG,GAAG,QAAQ;AACjE,QAAM,QAAQ,KAAK,SAAS,gBAAA,GAAmB;AAE/C,QAAM,oBAAoB,SAAS,kBAAkB,UAAU;AAC/D,QAAM,YAAY,qBAAqB,IAAI,IAAI;AAC/C,QAAM,YAAY,SAAS,UAAU,KAAK;AAC1C,QAAM,eAAe,QAAQ;AAC7B,QAAM,IAAK,WAAW,QAAS;AAE/B,SAAO,EAAE,oBAAoB;AAAA,IAC3B;AAAA,IACA,GAAG;AAAA,IACH,OAAO;AAAA,IACP;AAAA,EAAA,CACD;AACH;AAMO,SAAS,aAAa,MAAM,OAAyB,IAAmB;AAE7E,QAAM,UAAU,eAAA;AAChB,QAAM,aAAa,cAAA;AACnB,QAAM,EAAE,eAAe,KAAA,IAAS;AAEhC,SAAO,QAAQ,MAAM;AACnB,QAAI,QAAQ,QAAQ,WAAW,KAAM,QAAO;AAC5C,WAAO,kBAAkB,MAAM,SAAS,YAAY,YAAY;AAAA,EAClE,GAAG,CAAC,MAAM,SAAS,SAAS,YAAY,YAAY,CAAC;AACvD;AAEO,SAAS,qBAAqB,OAAO;AAG1C,QAAM,kBAAkB,aAAa,MAAM,QAAQ;AAEnD,QAAM,YAAY,QAAQ,MAAM;AAC9B,WAAO,UAAU,MAAM,QAAQ;AAAA,EACjC,GAAG,CAAC,MAAM,UAAU,OAAO,CAAC;AAE5B,QAAM,OAAO,mBAAmB,SAAS;AAEzC,SAAO,EAAE,eAAe;AAAA,IACtB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,CACJ;AACH;AAEO,SAAS,0BACd,MACA,OAAyB,IACV;AAEf,QAAM,iBAAiB,gBAAA;AACvB,QAAM,UAAU,eAAA;AAChB,QAAM,aAAa,cAAA;AACnB,QAAM,EAAE,eAAe,KAAA,IAAS;AAEhC,SAAO,QAAQ,MAAM;AACnB,QAAI,QAAQ,QAAQ,kBAAkB,KAAM,QAAO;AACnD,QAAI,IAAI,kBAAkB,MAAM,gBAAgB,YAAY,cAAc;AAAA,MACxE,KAAK;AAAA,MACL,QAAQ;AAAA,IAAA,CACT;AACD,QAAI,KAAK,MAAM;AACb,aAAO;AAAA,IACT;AAEA,WAAO,kBAAkB,MAAM,SAAS,YAAY,YAAY;AAAA,EAClE,GAAG,CAAC,MAAM,SAAS,gBAAgB,SAAS,YAAY,YAAY,CAAC;AACvE;AAEO,SAAS,gCAAgC,OAAO;AAGrD,QAAM,kBAAkB,0BAA0B,MAAM,QAAQ;AAEhE,QAAM,YAAY,QAAQ,MAAM;AAC9B,WAAO,UAAU,MAAM,QAAQ;AAAA,EACjC,GAAG,CAAC,MAAM,UAAU,OAAO,CAAC;AAE5B,QAAM,OAAO,mBAAmB,SAAS;AAEzC,SAAO,EAAE,eAAe;AAAA,IACtB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,CACJ;AACH;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const h = require("@macrostrat/hyper");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const columnComponents = require("@macrostrat/column-components");
|
|
6
|
+
const store = require("../data-provider/store.cjs");
|
|
7
|
+
const utils = require("../prepare-units/utils.cjs");
|
|
8
|
+
function noteForDivision(div, opts) {
|
|
9
|
+
const { axisType } = opts;
|
|
10
|
+
const [height, top_height] = utils.getUnitHeightRange(div, axisType);
|
|
11
|
+
const nameForDivision = opts.nameForDivision ?? defaultNameFunction;
|
|
12
|
+
return {
|
|
13
|
+
height,
|
|
14
|
+
top_height,
|
|
15
|
+
data: div,
|
|
16
|
+
id: div.unit_id,
|
|
17
|
+
note: nameForDivision(div)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const defaultNameFunction = (div) => {
|
|
21
|
+
return div.unit_name.replace("Mbr", "Member").replace("Fm", "Formation").replace("Gp", "Group");
|
|
22
|
+
};
|
|
23
|
+
function UnitDataColumn_(props) {
|
|
24
|
+
const { axisType, units } = store.useMacrostratColumnData();
|
|
25
|
+
const scale = store.useCompositeScale();
|
|
26
|
+
const {
|
|
27
|
+
left = 0,
|
|
28
|
+
noteComponent,
|
|
29
|
+
shouldRenderNote = (note, i) => true,
|
|
30
|
+
nameForDivision,
|
|
31
|
+
minimumHeight = 0,
|
|
32
|
+
divisions = units,
|
|
33
|
+
...rest
|
|
34
|
+
} = props;
|
|
35
|
+
const minimumHeightFilter = React.useCallback(
|
|
36
|
+
(d) => {
|
|
37
|
+
if (minimumHeight == 0) return true;
|
|
38
|
+
const dy = Math.abs(scale(d.top_height) - scale(d.height));
|
|
39
|
+
return dy > minimumHeight;
|
|
40
|
+
},
|
|
41
|
+
[scale, minimumHeight]
|
|
42
|
+
);
|
|
43
|
+
if (divisions == null) return null;
|
|
44
|
+
const notes = divisions.filter(shouldRenderNote).map((d) => noteForDivision(d, { axisType, nameForDivision })).filter(minimumHeightFilter);
|
|
45
|
+
return h(columnComponents.NotesColumn, {
|
|
46
|
+
transform: `translate(${left})`,
|
|
47
|
+
editable: false,
|
|
48
|
+
noteComponent,
|
|
49
|
+
notes,
|
|
50
|
+
forceOptions: {
|
|
51
|
+
nodeSpacing: 1
|
|
52
|
+
},
|
|
53
|
+
...rest
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const UnitDataColumn = React.memo(UnitDataColumn_);
|
|
57
|
+
function UnitNameNote(props) {
|
|
58
|
+
const { note } = props;
|
|
59
|
+
return h("p.col-note-label", note.note);
|
|
60
|
+
}
|
|
61
|
+
function UnitNamesColumn(props) {
|
|
62
|
+
const { noteComponent = UnitNameNote, ...rest } = props;
|
|
63
|
+
return h(UnitDataColumn, {
|
|
64
|
+
noteComponent,
|
|
65
|
+
...rest
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
exports.UnitDataColumn = UnitDataColumn;
|
|
69
|
+
exports.UnitNamesColumn = UnitNamesColumn;
|
|
70
|
+
exports.defaultNameFunction = defaultNameFunction;
|
|
71
|
+
exports.noteForDivision = noteForDivision;
|
|
72
|
+
//# sourceMappingURL=names.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.cjs","sources":["../../src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useCallback } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n type ColumnDivision,\n type NoteData,\n type NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { IUnit } from \"./types\";\nimport React from \"react\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\nimport {\n type CompositeColumnScale,\n getUnitHeightRange,\n} from \"../prepare-units\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n nameForDivision?(obj: IUnit): string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n scale?: CompositeColumnScale;\n}\n\ninterface UnitNote extends NoteData {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n}\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType; nameForDivision?: (obj: IUnit) => string },\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n const nameForDivision = opts.nameForDivision ?? defaultNameFunction;\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n note: nameForDivision(div),\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n nameForDivision,\n minimumHeight = 0,\n divisions = units,\n ...rest\n } = props;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight],\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType, nameForDivision }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\nexport interface UnitNamesProps extends UnitDataProps {\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nfunction UnitNameNote(props: { note: UnitNote }) {\n const { note } = props;\n return h(\"p.col-note-label\", note.note);\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const { noteComponent = UnitNameNote, ...rest } = props;\n return h(UnitDataColumn, {\n noteComponent,\n ...rest,\n });\n}\n\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":["getUnitHeightRange","useMacrostratColumnData","useCompositeScale","useCallback","NotesColumn"],"mappings":";;;;;;;AAmCA,SAAS,gBACP,KACA,MACU;AACV,QAAM,EAAE,aAAa;AAErB,QAAM,CAAC,QAAQ,UAAU,IAAIA,MAAAA,mBAAmB,KAAK,QAAQ;AAE7D,QAAM,kBAAkB,KAAK,mBAAmB;AAEhD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,IAAI,IAAI;AAAA,IACR,MAAM,gBAAgB,GAAG;AAAA,EAAA;AAE7B;AAEA,MAAM,sBAAsB,CAAC,QAAQ;AACnC,SAAO,IAAI,UACR,QAAQ,OAAO,QAAQ,EACvB,QAAQ,MAAM,WAAW,EACzB,QAAQ,MAAM,OAAO;AAC1B;AAEA,SAAS,gBAAgB,OAAsB;AAC7C,QAAM,EAAE,UAAU,MAAA,IAAUC,8BAAA;AAC5B,QAAM,QAAQC,MAAAA,kBAAA;AACd,QAAM;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,IACA,mBAAmB,CAAC,MAA8B,MAAc;AAAA,IAChE;AAAA,IACA,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,GAAG;AAAA,EAAA,IACD;AAEJ,QAAM,sBAAsBC,MAAAA;AAAAA,IAC1B,CAAC,MAAM;AACL,UAAI,iBAAiB,EAAG,QAAO;AAC/B,YAAM,KAAK,KAAK,IAAI,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,CAAC;AACzD,aAAO,KAAK;AAAA,IACd;AAAA,IACA,CAAC,OAAO,aAAa;AAAA,EAAA;AAGvB,MAAI,aAAa,KAAM,QAAO;AAC9B,QAAM,QAAoB,UACvB,OAAO,gBAAgB,EACvB,IAAI,CAAC,MAAa,gBAAgB,GAAG,EAAE,UAAU,gBAAA,CAAiB,CAAC,EACnE,OAAO,mBAAmB;AAE7B,SAAO,EAAEC,iBAAAA,aAAa;AAAA,IACpB,WAAW,aAAa,IAAI;AAAA,IAC5B,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,cAAc;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,IAEf,GAAG;AAAA,EAAA,CACJ;AACH;AAEA,MAAM,iBAAiB,MAAM,KAAK,eAAe;AAQjD,SAAS,aAAa,OAA2B;AAC/C,QAAM,EAAE,SAAS;AACjB,SAAO,EAAE,oBAAoB,KAAK,IAAI;AACxC;AAEO,SAAS,gBAAgB,OAAuB;AACrD,QAAM,EAAE,gBAAgB,cAAc,GAAG,SAAS;AAClD,SAAO,EAAE,gBAAgB;AAAA,IACvB;AAAA,IACA,GAAG;AAAA,EAAA,CACJ;AACH;;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ColumnAxisType, ColumnDivision, NoteData, NotesColumnProps } from '@macrostrat/column-components';
|
|
2
|
+
import { IUnit } from './types';
|
|
3
|
+
import { default as React } from 'react';
|
|
4
|
+
import { CompositeColumnScale } from '../prepare-units';
|
|
5
|
+
interface UnitDataProps extends NotesColumnProps {
|
|
6
|
+
left?: number;
|
|
7
|
+
transform?: string;
|
|
8
|
+
nameForDivision?(obj: IUnit): string;
|
|
9
|
+
noteComponent?: React.ComponentType<any>;
|
|
10
|
+
shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;
|
|
11
|
+
divisions?: IUnit[];
|
|
12
|
+
minimumHeight?: number;
|
|
13
|
+
scale?: CompositeColumnScale;
|
|
14
|
+
}
|
|
15
|
+
interface UnitNote extends NoteData {
|
|
16
|
+
height: number;
|
|
17
|
+
top_height: number;
|
|
18
|
+
data: IUnit;
|
|
19
|
+
id: number;
|
|
20
|
+
}
|
|
21
|
+
declare function noteForDivision(div: IUnit, opts: {
|
|
22
|
+
axisType: ColumnAxisType;
|
|
23
|
+
nameForDivision?: (obj: IUnit) => string;
|
|
24
|
+
}): UnitNote;
|
|
25
|
+
declare const defaultNameFunction: (div: any) => any;
|
|
26
|
+
declare const UnitDataColumn: React.NamedExoticComponent<UnitDataProps>;
|
|
27
|
+
export interface UnitNamesProps extends UnitDataProps {
|
|
28
|
+
paddingLeft?: number;
|
|
29
|
+
width: number;
|
|
30
|
+
onClickNote?: (note: any) => void;
|
|
31
|
+
}
|
|
32
|
+
export declare function UnitNamesColumn(props: UnitNamesProps): import('react').FunctionComponentElement<UnitDataProps>;
|
|
33
|
+
export { defaultNameFunction, noteForDivision, UnitDataColumn };
|