@macrostrat/column-views 1.0.3 → 2.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 +21 -0
- package/dist/esm/{data-area.daff8da0.js → column-views.062d164a.js} +1 -1
- package/dist/esm/{data-area.daff8da0.js.map → column-views.062d164a.js.map} +1 -1
- package/dist/esm/{data-provider.1506eb64.js → column-views.07521ce6.js} +1 -1
- package/dist/esm/column-views.07521ce6.js.map +1 -0
- package/dist/esm/column-views.134b2e2a.js +9 -0
- package/dist/esm/column-views.134b2e2a.js.map +1 -0
- package/dist/esm/{selection-popover.module.0a701258.css → column-views.16cc7a58.css} +11 -8
- package/dist/esm/column-views.16cc7a58.css.map +1 -0
- package/dist/esm/column-views.1c589cc4.js +141 -0
- package/dist/esm/column-views.1c589cc4.js.map +1 -0
- package/dist/esm/column-views.1ece326b.js +420 -0
- package/dist/esm/column-views.1ece326b.js.map +1 -0
- package/dist/esm/column-views.1edc7300.js +40 -0
- package/dist/esm/column-views.1edc7300.js.map +1 -0
- package/dist/esm/column-views.240ef158.css +159 -0
- package/dist/esm/column-views.240ef158.css.map +1 -0
- package/dist/esm/column-views.25471fe0.css +111 -0
- package/dist/esm/column-views.25471fe0.css.map +1 -0
- package/dist/esm/column-views.28ee5f43.js +288 -0
- package/dist/esm/column-views.28ee5f43.js.map +1 -0
- package/dist/esm/column-views.30646469.js +118 -0
- package/dist/esm/column-views.30646469.js.map +1 -0
- package/dist/esm/column-views.338a7a83.css +134 -0
- package/dist/esm/column-views.338a7a83.css.map +1 -0
- package/dist/esm/column-views.33dbc778.js +95 -0
- package/dist/esm/column-views.33dbc778.js.map +1 -0
- package/dist/esm/column-views.343b5aa2.js +98 -0
- package/dist/esm/column-views.343b5aa2.js.map +1 -0
- package/dist/esm/column-views.34636ec7.js +104 -0
- package/dist/esm/column-views.34636ec7.js.map +1 -0
- package/dist/esm/column-views.3465c8ad.js +16 -0
- package/dist/esm/column-views.3465c8ad.js.map +1 -0
- package/dist/esm/column-views.39657bbf.js +55 -0
- package/dist/esm/column-views.39657bbf.js.map +1 -0
- package/dist/esm/column-views.3b972a9b.css +4 -0
- package/dist/esm/{composite.module.69a38fd1.css.map → column-views.3b972a9b.css.map} +1 -1
- package/dist/esm/column-views.3bec70d6.js +167 -0
- package/dist/esm/column-views.3bec70d6.js.map +1 -0
- package/dist/esm/column-views.3de4dc43.js +66 -0
- package/dist/esm/column-views.3de4dc43.js.map +1 -0
- package/dist/esm/{column.db058031.js → column-views.3f4db8cb.js} +8 -8
- package/dist/esm/column-views.3f4db8cb.js.map +1 -0
- package/dist/esm/column-views.40c1f361.js +206 -0
- package/dist/esm/column-views.40c1f361.js.map +1 -0
- package/dist/esm/{composite.module.0638e7ee.js → column-views.40cd59b5.js} +1 -1
- package/dist/esm/{composite.module.0638e7ee.js.map → column-views.40cd59b5.js.map} +1 -1
- package/dist/esm/column-views.4637f4ce.js +46 -0
- package/dist/esm/column-views.4637f4ce.js.map +1 -0
- package/dist/esm/column-views.4c4c5bac.js +163 -0
- package/dist/esm/column-views.4c4c5bac.js.map +1 -0
- package/dist/esm/column-views.4d374a35.js +19 -0
- package/dist/esm/column-views.4d374a35.js.map +1 -0
- package/dist/esm/column-views.57c4ddf3.js +125 -0
- package/dist/esm/column-views.57c4ddf3.js.map +1 -0
- package/dist/esm/column-views.58b82432.js +58 -0
- package/dist/esm/column-views.58b82432.js.map +1 -0
- package/dist/esm/column-views.5b2635fd.js +13 -0
- package/dist/esm/column-views.5b2635fd.js.map +1 -0
- package/dist/esm/column-views.5c02fee2.js +258 -0
- package/dist/esm/column-views.5c02fee2.js.map +1 -0
- package/dist/esm/column-views.5cc09c1d.js +152 -0
- package/dist/esm/column-views.5cc09c1d.js.map +1 -0
- package/dist/esm/{names.f6a4e9a4.js → column-views.650bd9f5.js} +5 -5
- package/dist/esm/column-views.650bd9f5.js.map +1 -0
- package/dist/esm/column-views.68409161.js +89 -0
- package/dist/esm/column-views.68409161.js.map +1 -0
- package/dist/esm/column-views.6a954628.js +70 -0
- package/dist/esm/column-views.6a954628.js.map +1 -0
- package/dist/esm/column-views.6c670c13.css +26 -0
- package/dist/esm/column-views.6c670c13.css.map +1 -0
- package/dist/esm/column-views.6d6b73b4.js +55 -0
- package/dist/esm/column-views.6d6b73b4.js.map +1 -0
- package/dist/esm/column-views.86c4b36f.js +222 -0
- package/dist/esm/column-views.86c4b36f.js.map +1 -0
- package/dist/esm/column-views.88de2cee.js +9 -0
- package/dist/esm/column-views.88de2cee.js.map +1 -0
- package/dist/esm/{resolvers.b5c82b78.js → column-views.8dd877af.js} +16 -3
- package/dist/esm/column-views.8dd877af.js.map +1 -0
- package/dist/esm/column-views.8e51206e.js +143 -0
- package/dist/esm/column-views.8e51206e.js.map +1 -0
- package/dist/esm/{column.module.7f47d25a.js → column-views.94b5cca1.js} +1 -1
- package/dist/esm/{column.module.7f47d25a.js.map → column-views.94b5cca1.js.map} +1 -1
- package/dist/esm/column-views.9804efda.js +75 -0
- package/dist/esm/column-views.9804efda.js.map +1 -0
- package/dist/esm/column-views.9bdd477a.js +57 -0
- package/dist/esm/column-views.9bdd477a.js.map +1 -0
- package/dist/esm/column-views.9ced149e.js +98 -0
- package/dist/esm/column-views.9ced149e.js.map +1 -0
- package/dist/esm/{column.module.cbb072df.css → column-views.a7be0a4a.css} +1 -1
- package/dist/esm/{column.module.cbb072df.css.map → column-views.a7be0a4a.css.map} +1 -1
- package/dist/esm/column-views.a98214b2.js +9 -0
- package/dist/esm/column-views.a98214b2.js.map +1 -0
- package/dist/esm/column-views.aa9fcdba.js +221 -0
- package/dist/esm/column-views.aa9fcdba.js.map +1 -0
- package/dist/esm/{isotopes-column.7cb5cc45.js → column-views.ac9fb5e1.js} +3 -3
- package/dist/esm/{isotopes-column.7cb5cc45.js.map → column-views.ac9fb5e1.js.map} +1 -1
- package/dist/esm/column-views.b2e5f1d9.js +11 -0
- package/dist/esm/column-views.b2e5f1d9.js.map +1 -0
- package/dist/esm/column-views.b775c0a3.js +112 -0
- package/dist/esm/column-views.b775c0a3.js.map +1 -0
- package/dist/esm/column-views.beb54e95.js +39 -0
- package/dist/esm/column-views.beb54e95.js.map +1 -0
- package/dist/esm/{core.4db8e452.js → column-views.c58aad3f.js} +15 -16
- package/dist/esm/column-views.c58aad3f.js.map +1 -0
- package/dist/esm/{carbon-isotopes.3b502a9e.js → column-views.d1ad48eb.js} +4 -4
- package/dist/esm/{carbon-isotopes.3b502a9e.js.map → column-views.d1ad48eb.js.map} +1 -1
- package/dist/esm/column-views.dc42f5d0.js +48 -0
- package/dist/esm/column-views.dc42f5d0.js.map +1 -0
- package/dist/esm/column-views.dff52504.js +22 -0
- package/dist/esm/column-views.dff52504.js.map +1 -0
- package/dist/esm/column-views.e2b9c23c.css +33 -0
- package/dist/esm/column-views.e2b9c23c.css.map +1 -0
- package/dist/esm/column-views.e40b8bfb.css +14 -0
- package/dist/esm/column-views.e40b8bfb.css.map +1 -0
- package/dist/esm/column-views.e77b9d6b.js +170 -0
- package/dist/esm/column-views.e77b9d6b.js.map +1 -0
- package/dist/esm/column-views.ea237aa8.js +52 -0
- package/dist/esm/column-views.ea237aa8.js.map +1 -0
- package/dist/esm/column-views.edf77621.js +22 -0
- package/dist/esm/column-views.edf77621.js.map +1 -0
- package/dist/esm/column-views.f1efcc2c.js +9 -0
- package/dist/esm/column-views.f1efcc2c.js.map +1 -0
- package/dist/esm/column-views.f2e5a72f.js +66 -0
- package/dist/esm/column-views.f2e5a72f.js.map +1 -0
- package/dist/esm/column-views.f71ec4b4.js +127 -0
- package/dist/esm/column-views.f71ec4b4.js.map +1 -0
- package/dist/esm/column-views.f9dab157.js +3 -0
- package/dist/esm/column-views.f9dab157.js.map +1 -0
- package/dist/esm/column-views.fa6f3292.js +215 -0
- package/dist/esm/column-views.fa6f3292.js.map +1 -0
- package/dist/esm/column-views.fc2b4611.js +9 -0
- package/dist/esm/column-views.fc2b4611.js.map +1 -0
- package/dist/esm/index.d.ts +797 -130
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +13 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +29 -13
- package/src/age-axis.module.sass +27 -0
- package/src/age-axis.ts +82 -19
- package/src/age-model-overlay.module.sass +11 -0
- package/src/age-model-overlay.ts +73 -0
- package/src/carbon-isotopes/column.ts +4 -2
- package/src/carbon-isotopes/core.ts +9 -6
- package/src/carbon-isotopes/data-provider.ts +3 -3
- package/src/column.module.sass +58 -49
- package/src/column.ts +149 -135
- package/src/correlation-chart/hash-string.ts +57 -0
- package/src/correlation-chart/index.ts +2 -0
- package/src/correlation-chart/main.module.sass +122 -0
- package/src/correlation-chart/main.ts +305 -0
- package/src/correlation-chart/prepare-data.ts +217 -0
- package/src/correlation-chart/stories/correlation-chart.stories.ts +192 -0
- package/src/correlation-chart/stories/stories.module.sass +18 -0
- package/src/correlation-chart/unconformity-line.module.sass +8 -0
- package/src/correlation-chart/unconformity-line.ts +25 -0
- package/src/data-provider/base.ts +388 -0
- package/src/data-provider/column-nav.ts +53 -0
- package/src/data-provider/fetch.ts +231 -0
- package/src/data-provider/index.ts +4 -0
- package/src/data-provider/store.ts +72 -0
- package/src/index.ts +5 -3
- package/src/maps/_shared/index.ts +2 -0
- package/src/maps/_shared/inset-map.stories.ts +20 -0
- package/src/maps/_shared/inset-map.ts +87 -0
- package/src/maps/_shared/styles.ts +57 -0
- package/src/maps/column-correlation/column-correlation-map.stories.ts +96 -0
- package/src/maps/column-correlation/core.ts +225 -0
- package/src/maps/column-correlation/index.ts +2 -0
- package/src/maps/column-correlation/state.ts +192 -0
- package/src/maps/column-navigation/index.ts +2 -0
- package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +102 -0
- package/src/maps/column-navigation/mapbox/index.ts +219 -0
- package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +119 -0
- package/src/maps/column-navigation/mapbox/state.ts +109 -0
- package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +46 -0
- package/src/{map → maps/column-navigation/svg}/index.ts +18 -6
- package/src/{map → maps/column-navigation/svg}/layers.ts +28 -109
- package/src/maps/column-navigation/utils/keyboard-navigation.ts +58 -0
- package/src/maps/index.ts +3 -0
- package/src/prepare-units/composite-scale.ts +353 -0
- package/src/prepare-units/helpers.ts +226 -0
- package/src/prepare-units/index.ts +177 -0
- package/src/prepare-units/utils.ts +98 -0
- package/src/section.ts +264 -84
- package/src/unit-details/index.ts +2 -215
- package/src/unit-details/{index.module.sass → panel.module.sass} +39 -8
- package/src/unit-details/panel.ts +523 -0
- package/src/{selection-popover.module.sass → unit-details/popover.module.sass} +4 -2
- package/src/unit-details/popover.ts +82 -0
- package/src/units/boxes.module.sass +16 -0
- package/src/units/boxes.ts +243 -90
- package/src/units/colors.ts +64 -0
- package/src/units/composite.ts +157 -152
- package/src/units/index.ts +76 -9
- package/src/units/names.ts +8 -4
- package/src/units/resolvers.ts +12 -1
- package/src/units/selection.ts +115 -101
- package/src/units/types.ts +5 -16
- package/dist/esm/age-axis.64c509ee.js +0 -41
- package/dist/esm/age-axis.64c509ee.js.map +0 -1
- package/dist/esm/boxes.13968b76.js +0 -164
- package/dist/esm/boxes.13968b76.js.map +0 -1
- package/dist/esm/boxes.module.28873d08.css +0 -4
- package/dist/esm/boxes.module.28873d08.css.map +0 -1
- package/dist/esm/boxes.module.605bdcd6.js +0 -13
- package/dist/esm/boxes.module.605bdcd6.js.map +0 -1
- package/dist/esm/column.8dd26e1a.js +0 -149
- package/dist/esm/column.8dd26e1a.js.map +0 -1
- package/dist/esm/column.db058031.js.map +0 -1
- package/dist/esm/column.module.039d872c.css +0 -151
- package/dist/esm/column.module.039d872c.css.map +0 -1
- package/dist/esm/column.module.e632868a.js +0 -19
- package/dist/esm/column.module.e632868a.js.map +0 -1
- package/dist/esm/composite.608a4ca2.js +0 -153
- package/dist/esm/composite.608a4ca2.js.map +0 -1
- package/dist/esm/composite.module.69a38fd1.css +0 -4
- package/dist/esm/core.4db8e452.js.map +0 -1
- package/dist/esm/data-provider.1506eb64.js.map +0 -1
- package/dist/esm/helpers.8a03cfc7.js +0 -94
- package/dist/esm/helpers.8a03cfc7.js.map +0 -1
- package/dist/esm/index.module.0844afd8.css +0 -65
- package/dist/esm/index.module.0844afd8.css.map +0 -1
- package/dist/esm/index.module.24fe3a2e.js +0 -37
- package/dist/esm/index.module.24fe3a2e.js.map +0 -1
- package/dist/esm/layers.ad5fd25d.js +0 -231
- package/dist/esm/layers.ad5fd25d.js.map +0 -1
- package/dist/esm/map.7aa26f17.js +0 -82
- package/dist/esm/map.7aa26f17.js.map +0 -1
- package/dist/esm/names.f6a4e9a4.js.map +0 -1
- package/dist/esm/providers.cd1e652f.js +0 -25
- package/dist/esm/providers.cd1e652f.js.map +0 -1
- package/dist/esm/resolvers.b5c82b78.js.map +0 -1
- package/dist/esm/section.cc1b1100.js +0 -118
- package/dist/esm/section.cc1b1100.js.map +0 -1
- package/dist/esm/selection-popover.17d1bd55.js +0 -60
- package/dist/esm/selection-popover.17d1bd55.js.map +0 -1
- package/dist/esm/selection-popover.module.0a701258.css.map +0 -1
- package/dist/esm/selection-popover.module.e22f5183.js +0 -22
- package/dist/esm/selection-popover.module.e22f5183.js.map +0 -1
- package/dist/esm/selection.bbf26d0e.js +0 -117
- package/dist/esm/selection.bbf26d0e.js.map +0 -1
- package/dist/esm/store.25eaa168.js +0 -18
- package/dist/esm/store.25eaa168.js.map +0 -1
- package/dist/esm/types.f016e032.js +0 -18
- package/dist/esm/types.f016e032.js.map +0 -1
- package/dist/esm/unit-details.56ff8b70.js +0 -209
- package/dist/esm/unit-details.56ff8b70.js.map +0 -1
- package/dist/esm/units.361088d4.js +0 -42
- package/dist/esm/units.361088d4.js.map +0 -1
- package/src/helpers.ts +0 -133
- package/src/providers.ts +0 -34
- package/src/selection-popover.ts +0 -71
- package/src/store.ts +0 -12
- package/src/units/units.scss +0 -16
- /package/src/{map → maps/column-navigation/svg}/animated.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["packages/column-views/src/column.ts"],"sourcesContent":["import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { hyperStyled } from \"@macrostrat/hyper\";\nimport { useDarkMode } from \"@macrostrat/ui-components\";\nimport classNames from \"classnames\";\nimport { RefObject, useRef, HTMLAttributes } from \"react\";\nimport styles from \"./column.module.sass\";\nimport {\n UnitSelectionProvider,\n UnitComponent,\n UnitKeyboardNavigation,\n useUnitSelectionDispatch,\n} from \"./units\";\n\nimport { ColumnHeightScaleOptions } from \"./prepare-units/composite-scale\";\nimport { UnitSelectionPopover } from \"./unit-details\";\nimport {\n MacrostratColumnDataProvider,\n useMacrostratColumnData,\n} from \"./data-provider\";\nimport {\n SectionSharedProps,\n CompositeTimescale,\n SectionsColumn,\n} from \"./section\";\nimport { CompositeAgeAxis } from \"./age-axis\";\nimport { MergeSectionsMode, usePreparedColumnUnits } from \"./prepare-units\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { NonIdealState } from \"@blueprintjs/core\";\n\nconst h = hyperStyled(styles);\n\ninterface BaseColumnProps extends SectionSharedProps {\n className?: string;\n showLabelColumn?: boolean;\n keyboardNavigation?: boolean;\n showLabels?: boolean;\n maxInternalColumns?: number;\n // Timescale properties\n showTimescale?: boolean;\n timescaleLevels?: number | [number, number];\n}\n\nexport interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {\n // Macrostrat units\n units: UnitLong[];\n t_age?: number;\n b_age?: number;\n mergeSections?: MergeSectionsMode;\n showUnitPopover?: boolean;\n selectedUnit?: number | null;\n onUnitSelected?: (unitID: number | null, unit: any) => void;\n // Unconformity height in pixels\n unconformityHeight?: number;\n}\n\nexport function Column(props: ColumnProps) {\n const {\n showUnitPopover = false,\n keyboardNavigation = false,\n mergeSections,\n onUnitSelected,\n selectedUnit,\n children,\n units: rawUnits,\n axisType = ColumnAxisType.AGE,\n t_age,\n b_age,\n unconformityHeight = 30,\n targetUnitHeight = 20,\n pixelScale,\n minPixelScale = 0.2,\n minSectionHeight = 50,\n collapseSmallUnconformities = true,\n ...rest\n } = props;\n const ref = useRef<HTMLElement>();\n // Selected item position\n\n const { sections, units, totalHeight } = usePreparedColumnUnits(rawUnits, {\n axisType,\n t_age,\n b_age,\n mergeSections,\n targetUnitHeight,\n unconformityHeight,\n pixelScale,\n minPixelScale,\n minSectionHeight,\n collapseSmallUnconformities,\n });\n\n if (sections.length === 0) {\n return h(\n \"div.column-container.empty\",\n h(NonIdealState, {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\",\n })\n );\n }\n\n return h(\n MacrostratColumnDataProvider,\n { units, sections, totalHeight, axisType },\n h(\n UnitSelectionProvider,\n { columnRef: ref, onUnitSelected, selectedUnit, units },\n h(ColumnInner, { columnRef: ref, ...rest }, [\n children,\n h.if(showUnitPopover)(UnitSelectionPopover),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),\n ])\n )\n );\n}\n\ninterface ColumnInnerProps extends BaseColumnProps {\n columnRef: RefObject<HTMLElement>;\n}\n\nfunction ColumnInner(props: ColumnInnerProps) {\n const {\n unitComponent = UnitComponent,\n unconformityLabels = true,\n showLabels = true,\n width: _width = 300,\n columnWidth: _columnWidth = 150,\n showLabelColumn: _showLabelColumn = true,\n className,\n columnRef,\n clipUnits = false,\n children,\n showTimescale,\n timescaleLevels,\n maxInternalColumns,\n } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n const dispatch = useUnitSelectionDispatch();\n\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) {\n columnWidth = width;\n }\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) {\n showLabelColumn = false;\n }\n\n let _showTimescale = showTimescale;\n if (timescaleLevels !== null) {\n _showTimescale = true;\n }\n _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;\n\n return h(\n ColumnContainer,\n {\n onClick(evt) {\n dispatch?.(null, null, evt as any);\n },\n className,\n },\n h(\"div.column\", { ref: columnRef }, [\n h(CompositeAgeAxis),\n h.if(_showTimescale)(CompositeTimescale, { levels: timescaleLevels }),\n h(SectionsColumn, {\n unitComponent,\n showLabels,\n width,\n columnWidth,\n showLabelColumn,\n clipUnits,\n unconformityLabels,\n maxInternalColumns,\n }),\n children,\n ])\n );\n}\n\nexport interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\nexport function ColumnContainer(props: ColumnContainerProps) {\n const { className, ...rest } = props;\n const darkMode = useDarkMode();\n\n return h(\"div.column-container\", {\n className: classNames(className, {\n \"dark-mode\": darkMode?.isEnabled ?? false,\n }),\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.f71ec4b4.js.map"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"","sources":["packages/column-views/src/units/types.ts"],"sourcesContent":["export interface IUnit {\n unit_id: number;\n col_id: number;\n section_id: number;\n t_age: number;\n b_age: number;\n [x: string]: any;\n}\n\nexport interface RectBounds {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n"],"names":[],"version":3,"file":"column-views.f9dab157.js.map"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import {LabelTrackerProvider as $8c8238faa5cde49c$export$e4e89ab6c86ac513, SectionLabelsColumn as $8c8238faa5cde49c$export$13984e34afdbb040, CompositeUnitsColumn as $8c8238faa5cde49c$export$a6684360fef0406e} from "./column-views.4c4c5bac.js";
|
|
2
|
+
import $7zu8d$columnviews4637f4cejs from "./column-views.4637f4ce.js";
|
|
3
|
+
import "./column-views.240ef158.css";
|
|
4
|
+
import {useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.ea237aa8.js";
|
|
5
|
+
import {MacrostratColumnProvider as $774a5efa27d1c77b$export$9e42f9b6e0d67c7d} from "./column-views.28ee5f43.js";
|
|
6
|
+
import {Duration as $448b24baeef3b229$export$3b11bc38611c5941} from "./column-views.1ece326b.js";
|
|
7
|
+
import {useMemo as $7zu8d$useMemo} from "react";
|
|
8
|
+
import {Timescale as $7zu8d$Timescale, TimescaleOrientation as $7zu8d$TimescaleOrientation} from "@macrostrat/timescale";
|
|
9
|
+
import {SVG as $7zu8d$SVG} from "@macrostrat/column-components";
|
|
10
|
+
import $7zu8d$macrostrathyper from "@macrostrat/hyper";
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
function $parcel$interopDefault(a) {
|
|
14
|
+
return a && a.__esModule ? a.default : a;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
const $7d0f52717c0de7e1$var$h = (0, $7zu8d$macrostrathyper).styled((0, ($parcel$interopDefault($7zu8d$columnviews4637f4cejs))));
|
|
25
|
+
function $7d0f52717c0de7e1$export$38cb0ab5af8f50d7(props) {
|
|
26
|
+
const { unconformityLabels: unconformityLabels = true, unitComponent: unitComponent, unitComponentProps: unitComponentProps, showLabels: showLabels = true, width: width = 300, columnWidth: columnWidth = 150, showLabelColumn: showLabelColumn = true, clipUnits: clipUnits = true, maxInternalColumns: maxInternalColumns } = props;
|
|
27
|
+
const units = (0, $d5074f164411387e$export$6fb40844db555b2)();
|
|
28
|
+
// Get a unique key for the column
|
|
29
|
+
const key = units[0]?.unit_id;
|
|
30
|
+
return $7d0f52717c0de7e1$var$h((0, $8c8238faa5cde49c$export$e4e89ab6c86ac513), {
|
|
31
|
+
units: units,
|
|
32
|
+
key: key
|
|
33
|
+
}, [
|
|
34
|
+
$7d0f52717c0de7e1$var$h($7d0f52717c0de7e1$var$SectionUnitsColumn, {
|
|
35
|
+
width: columnWidth,
|
|
36
|
+
unitComponent: unitComponent,
|
|
37
|
+
unitComponentProps: unitComponentProps,
|
|
38
|
+
showLabels: showLabels,
|
|
39
|
+
clipUnits: clipUnits,
|
|
40
|
+
maxInternalColumns: maxInternalColumns,
|
|
41
|
+
unconformityLabels: unconformityLabels
|
|
42
|
+
}),
|
|
43
|
+
$7d0f52717c0de7e1$var$h.if(showLabelColumn)((0, $8c8238faa5cde49c$export$13984e34afdbb040), {
|
|
44
|
+
width: width - columnWidth
|
|
45
|
+
})
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
function $7d0f52717c0de7e1$var$SectionUnitsColumn(props) {
|
|
49
|
+
const { width: width, showLabels: showLabels, unitComponent: unitComponent, unitComponentProps: unitComponentProps, clipUnits: clipUnits, maxInternalColumns: maxInternalColumns, unconformityLabels: unconformityLabels = true } = props;
|
|
50
|
+
const { sections: sections, totalHeight: totalHeight } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
|
|
51
|
+
const scaleData = sections.map((section)=>{
|
|
52
|
+
return section.scaleInfo;
|
|
53
|
+
});
|
|
54
|
+
const innerWidth = width - 2;
|
|
55
|
+
return $7d0f52717c0de7e1$var$h("div.section-units-container", {
|
|
56
|
+
style: {
|
|
57
|
+
width: width
|
|
58
|
+
}
|
|
59
|
+
}, [
|
|
60
|
+
$7d0f52717c0de7e1$var$h((0, $7zu8d$SVG), {
|
|
61
|
+
className: "sections",
|
|
62
|
+
height: totalHeight,
|
|
63
|
+
innerWidth: innerWidth,
|
|
64
|
+
paddingH: 1
|
|
65
|
+
}, sections.map((group)=>{
|
|
66
|
+
const { units: units, scaleInfo: scaleInfo, section_id: section_id } = group;
|
|
67
|
+
const key = `section-${section_id}`;
|
|
68
|
+
return $7d0f52717c0de7e1$var$h($7d0f52717c0de7e1$var$SectionUnits, {
|
|
69
|
+
units: units,
|
|
70
|
+
scaleInfo: scaleInfo,
|
|
71
|
+
key: key,
|
|
72
|
+
unitComponent: unitComponent,
|
|
73
|
+
unitComponentProps: unitComponentProps,
|
|
74
|
+
showLabels: showLabels,
|
|
75
|
+
width: innerWidth,
|
|
76
|
+
clipUnits: clipUnits,
|
|
77
|
+
maxInternalColumns: maxInternalColumns
|
|
78
|
+
} // This unconformity is with the section _above_
|
|
79
|
+
);
|
|
80
|
+
})),
|
|
81
|
+
$7d0f52717c0de7e1$var$h.if(unconformityLabels)($7d0f52717c0de7e1$export$e12e53eeee198b99, {
|
|
82
|
+
width: width,
|
|
83
|
+
sections: scaleData
|
|
84
|
+
})
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
function $7d0f52717c0de7e1$var$SectionUnits(props) {
|
|
88
|
+
// Section with "squishy" timescale
|
|
89
|
+
const { units: units, scaleInfo: scaleInfo, unitComponent: unitComponent, showLabels: showLabels = true, width: width = 300, unitComponentProps: unitComponentProps, className: className, clipUnits: clipUnits = true, maxInternalColumns: maxInternalColumns } = props;
|
|
90
|
+
const { domain: domain, pixelScale: pixelScale, pixelHeight: pixelHeight } = scaleInfo;
|
|
91
|
+
/** Ensure that we can arrange units into the maximum number
|
|
92
|
+
* of columns defined by unitComponentProps, but that we don't
|
|
93
|
+
* use more than necessary.
|
|
94
|
+
*/ const _unitComponentProps = (0, $7zu8d$useMemo)(()=>{
|
|
95
|
+
return {
|
|
96
|
+
...unitComponentProps,
|
|
97
|
+
nColumns: Math.min(maxInternalColumns ?? Math.floor(width / 10), unitComponentProps?.nColumns ?? Infinity, Math.max(...units.map((d)=>d.column)) + 1)
|
|
98
|
+
};
|
|
99
|
+
}, [
|
|
100
|
+
units,
|
|
101
|
+
unitComponentProps,
|
|
102
|
+
maxInternalColumns,
|
|
103
|
+
width
|
|
104
|
+
]);
|
|
105
|
+
const style = {
|
|
106
|
+
"--section-height": `${pixelHeight}px`,
|
|
107
|
+
"--section-width": `${width}px`
|
|
108
|
+
};
|
|
109
|
+
return $7d0f52717c0de7e1$var$h("g.section", {
|
|
110
|
+
className: className,
|
|
111
|
+
style: style,
|
|
112
|
+
transform: `translate(0 ${scaleInfo.offset})`
|
|
113
|
+
}, $7d0f52717c0de7e1$var$h((0, $774a5efa27d1c77b$export$9e42f9b6e0d67c7d), {
|
|
114
|
+
units: units,
|
|
115
|
+
domain: domain,
|
|
116
|
+
pixelScale: pixelScale
|
|
117
|
+
}, $7d0f52717c0de7e1$var$h((0, $8c8238faa5cde49c$export$a6684360fef0406e), {
|
|
118
|
+
width: width,
|
|
119
|
+
showLabels: showLabels,
|
|
120
|
+
unitComponent: unitComponent,
|
|
121
|
+
unitComponentProps: _unitComponentProps,
|
|
122
|
+
clipToFrame: clipUnits
|
|
123
|
+
})));
|
|
124
|
+
}
|
|
125
|
+
function $7d0f52717c0de7e1$export$db2df5a73a6fbe10(props) {
|
|
126
|
+
const { sections: sections } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
|
|
127
|
+
const sectionScales = sections.map((section)=>{
|
|
128
|
+
return section.scaleInfo;
|
|
129
|
+
});
|
|
130
|
+
return $7d0f52717c0de7e1$var$h($7d0f52717c0de7e1$export$463f46772c64d403, {
|
|
131
|
+
packages: sectionScales,
|
|
132
|
+
...props
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
function $7d0f52717c0de7e1$export$463f46772c64d403(props) {
|
|
136
|
+
const { levels: levels = 3, packages: packages, unconformityLabels: unconformityLabels = false } = props;
|
|
137
|
+
let _levels;
|
|
138
|
+
if (typeof levels === "number") // If levels is a number, use the most common starting level
|
|
139
|
+
_levels = [
|
|
140
|
+
2,
|
|
141
|
+
Math.max(2 + Math.min(levels, 5) - 1, 1)
|
|
142
|
+
];
|
|
143
|
+
else _levels = levels;
|
|
144
|
+
const nCols = _levels[1] - _levels[0] + 1;
|
|
145
|
+
return $7d0f52717c0de7e1$var$h("div.timescale-column", [
|
|
146
|
+
$7d0f52717c0de7e1$var$h("div.timescales", packages.map((group)=>{
|
|
147
|
+
const { domain: domain, pixelHeight: pixelHeight, paddingTop: paddingTop, key: key } = group;
|
|
148
|
+
return $7d0f52717c0de7e1$var$h("div.timescale-container", {
|
|
149
|
+
style: {
|
|
150
|
+
paddingTop: paddingTop,
|
|
151
|
+
"--timescale-level-count": nCols
|
|
152
|
+
},
|
|
153
|
+
key: key
|
|
154
|
+
}, [
|
|
155
|
+
$7d0f52717c0de7e1$var$h((0, $7zu8d$Timescale), {
|
|
156
|
+
orientation: (0, $7zu8d$TimescaleOrientation).VERTICAL,
|
|
157
|
+
length: pixelHeight,
|
|
158
|
+
levels: _levels,
|
|
159
|
+
absoluteAgeScale: true,
|
|
160
|
+
showAgeAxis: false,
|
|
161
|
+
ageRange: domain
|
|
162
|
+
})
|
|
163
|
+
]);
|
|
164
|
+
})),
|
|
165
|
+
$7d0f52717c0de7e1$var$h.if(unconformityLabels)($7d0f52717c0de7e1$export$e12e53eeee198b99, {
|
|
166
|
+
width: "100%",
|
|
167
|
+
sections: packages,
|
|
168
|
+
className: "unconformity-labels"
|
|
169
|
+
})
|
|
170
|
+
]);
|
|
171
|
+
}
|
|
172
|
+
function $7d0f52717c0de7e1$export$e12e53eeee198b99(props) {
|
|
173
|
+
const { width: width, sections: sections, className: className } = props;
|
|
174
|
+
return $7d0f52717c0de7e1$var$h("div.unconformity-labels", {
|
|
175
|
+
style: {
|
|
176
|
+
width: width
|
|
177
|
+
},
|
|
178
|
+
className: className
|
|
179
|
+
}, sections.map((scaleInfo, i)=>{
|
|
180
|
+
const lastGroup = sections[i - 1];
|
|
181
|
+
const top = scaleInfo.offset - scaleInfo.paddingTop;
|
|
182
|
+
const upperAge = lastGroup?.domain[0];
|
|
183
|
+
const lowerAge = scaleInfo.domain[1];
|
|
184
|
+
return $7d0f52717c0de7e1$var$h($7d0f52717c0de7e1$var$Unconformity, {
|
|
185
|
+
upperAge: upperAge,
|
|
186
|
+
lowerAge: lowerAge,
|
|
187
|
+
style: {
|
|
188
|
+
width: width,
|
|
189
|
+
height: scaleInfo.paddingTop,
|
|
190
|
+
top: top
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
function $7d0f52717c0de7e1$var$Unconformity({ upperAge: upperAge, lowerAge: lowerAge, style: style }) {
|
|
196
|
+
if (upperAge == null || lowerAge == null) return null;
|
|
197
|
+
const ageGap = Math.abs(upperAge - lowerAge);
|
|
198
|
+
let className = null;
|
|
199
|
+
if (ageGap > 1000) className = "giga";
|
|
200
|
+
else if (ageGap > 100) className = "mega";
|
|
201
|
+
else if (ageGap > 10) className = "large";
|
|
202
|
+
else if (ageGap < 1) className = "small";
|
|
203
|
+
return $7d0f52717c0de7e1$var$h("div.unconformity", {
|
|
204
|
+
style: style,
|
|
205
|
+
className: className
|
|
206
|
+
}, [
|
|
207
|
+
$7d0f52717c0de7e1$var$h("div.unconformity-text", $7d0f52717c0de7e1$var$h((0, $448b24baeef3b229$export$3b11bc38611c5941), {
|
|
208
|
+
value: ageGap
|
|
209
|
+
}))
|
|
210
|
+
]);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
export {$7d0f52717c0de7e1$export$38cb0ab5af8f50d7 as SectionsColumn, $7d0f52717c0de7e1$export$e12e53eeee198b99 as UnconformityLabels, $7d0f52717c0de7e1$export$db2df5a73a6fbe10 as CompositeTimescale, $7d0f52717c0de7e1$export$463f46772c64d403 as CompositeTimescaleCore};
|
|
215
|
+
//# sourceMappingURL=column-views.fa6f3292.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAyBrB,SAAS,0CAAe,KAAyB;IACtD,MAAM,sBACJ,qBAAqB,qBACrB,aAAa,sBACb,kBAAkB,cAClB,aAAa,aACb,QAAQ,kBACR,cAAc,sBACd,kBAAkB,iBAClB,YAAY,0BACZ,kBAAkB,EACnB,GAAG;IAEJ,MAAM,QAAQ,CAAA,GAAA,wCAAiB;IAE/B,kCAAkC;IAClC,MAAM,MAAM,KAAK,CAAC,EAAE,EAAE;IAEtB,OAAO,wBAAE,CAAA,GAAA,yCAAmB,GAAG;eAAE;aAAO;IAAI,GAAG;QAC7C,wBAAE,0CAAoB;YACpB,OAAO;2BACP;gCACA;wBACA;uBACA;gCACA;gCACA;QACF;QACA,wBAAE,EAAE,CAAC,iBAAiB,CAAA,GAAA,yCAAkB,GAAG;YACzC,OAAO,QAAQ;QACjB;KACD;AACH;AAEA,SAAS,yCAAmB,KAAyB;IACnD,MAAM,SACJ,KAAK,cACL,UAAU,iBACV,aAAa,sBACb,kBAAkB,aAClB,SAAS,sBACT,kBAAkB,sBAClB,qBAAqB,MACtB,GAAG;IAEJ,MAAM,YAAE,QAAQ,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAExD,MAAM,YAAsC,SAAS,GAAG,CAAC,CAAC;QACxD,OAAO,QAAQ,SAAS;IAC1B;IAEA,MAAM,aAAa,QAAQ;IAE3B,OAAO,wBAAE,+BAA+B;QAAE,OAAO;mBAAE;QAAM;IAAE,GAAG;QAC5D,wBACE,CAAA,GAAA,UAAE,GACF;YACE,WAAW;YACX,QAAQ;wBACR;YACA,UAAU;QACZ,GACA,SAAS,GAAG,CAAC,CAAC;YACZ,MAAM,SAAE,KAAK,aAAE,SAAS,cAAE,UAAU,EAAE,GAAG;YAEzC,MAAM,MAAM,CAAC,QAAQ,EAAE,YAAY;YACnC,OAAO,wBACL,oCACA;uBACE;2BACA;qBACA;+BACA;oCACA;4BACA;gBACA,OAAO;2BACP;oCACA;YACF,EAAE,gDAAgD;;QAEtD;QAEF,wBAAE,EAAE,CAAC,oBAAoB,2CAAoB;mBAC3C;YACA,UAAU;QACZ;KACD;AACH;AAEA,SAAS,mCAAa,KAAmB;IACvC,mCAAmC;IACnC,MAAM,SACJ,KAAK,aACL,SAAS,iBACT,aAAa,cACb,aAAa,aACb,QAAQ,yBACR,kBAAkB,aAClB,SAAS,aACT,YAAY,0BACZ,kBAAkB,EACnB,GAAG;IAEJ,MAAM,UAAE,MAAM,cAAE,UAAU,eAAE,WAAW,EAAE,GAAG;IAE5C;;;GAGC,GACD,MAAM,sBAAsB,CAAA,GAAA,cAAM,EAAE;QAClC,OAAO;YACL,GAAG,kBAAkB;YACrB,UAAU,KAAK,GAAG,CAChB,sBAAsB,KAAK,KAAK,CAAC,QAAQ,KACzC,oBAAoB,YAAY,UAChC,KAAK,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,IAAM,EAAE,MAAM,KAAK;QAG9C;IACF,GAAG;QAAC;QAAO;QAAoB;QAAoB;KAAM;IAEzD,MAAM,QAAQ;QACZ,oBAAoB,GAAG,YAAY,EAAE,CAAC;QACtC,mBAAmB,GAAG,MAAM,EAAE,CAAC;IACjC;IAEA,OAAO,wBACL,aACA;mBAAE;eAAW;QAAO,WAAW,CAAC,YAAY,EAAE,UAAU,MAAM,CAAC,CAAC,CAAC;IAAC,GAClE,wBACE,CAAA,GAAA,yCAAuB,GACvB;eACE;gBACA;oBACA;IACF,GACA,wBAAE,CAAA,GAAA,yCAAmB,GAAG;eACtB;oBACA;uBACA;QACA,oBAAoB;QACpB,aAAa;IACf;AAGN;AAMO,SAAS,0CAAmB,KAA8B;IAC/D,MAAM,YAAE,QAAQ,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAC3C,MAAM,gBAAgB,SAAS,GAAG,CAAC,CAAC;QAClC,OAAO,QAAQ,SAAS;IAC1B;IAEA,OAAO,wBAAE,2CAAwB;QAC/B,UAAU;QACV,GAAG,KAAK;IACV;AACF;AAOO,SAAS,0CAAuB,KAAkC;IACvE,MAAM,UAAE,SAAS,aAAG,QAAQ,sBAAE,qBAAqB,OAAO,GAAG;IAE7D,IAAI;IACJ,IAAI,OAAO,WAAW,UACpB,4DAA4D;IAC5D,UAAU;QAAC;QAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,KAAK,GAAG;KAAG;SAEvD,UAAU;IAGZ,MAAM,QAAQ,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG;IAExC,OAAO,wBAAE,wBAAwB;QAC/B,wBACE,kBACA,SAAS,GAAG,CAAC,CAAC;YACZ,MAAM,UAAE,MAAM,eAAE,WAAW,cAAE,UAAU,OAAE,GAAG,EAAE,GAAG;YACjD,OAAO,wBACL,2BACA;gBAAE,OAAO;gCAAE;oBAAY,2BAA2B;gBAAM;qBAAG;YAAI,GAC/D;gBACE,wBAAE,CAAA,GAAA,gBAAQ,GAAG;oBACX,aAAa,CAAA,GAAA,2BAAmB,EAAE,QAAQ;oBAC1C,QAAQ;oBACR,QAAQ;oBACR,kBAAkB;oBAClB,aAAa;oBACb,UAAU;gBACZ;aACD;QAEL;QAEF,wBAAE,EAAE,CAAC,oBAAoB,2CAAoB;YAC3C,OAAO;YACP,UAAU;YACV,WAAW;QACb;KACD;AACH;AAEO,SAAS,0CAAmB,KAIlC;IACC,MAAM,SAAE,KAAK,YAAE,QAAQ,aAAE,SAAS,EAAE,GAAG;IAEvC,OAAO,wBACL,2BACA;QACE,OAAO;mBACL;QACF;mBACA;IACF,GACA,SAAS,GAAG,CAAC,CAAC,WAAW;QACvB,MAAM,YAAY,QAAQ,CAAC,IAAI,EAAE;QACjC,MAAM,MAAM,UAAU,MAAM,GAAG,UAAU,UAAU;QACnD,MAAM,WAAW,WAAW,MAAM,CAAC,EAAE;QACrC,MAAM,WAAW,UAAU,MAAM,CAAC,EAAE;QACpC,OAAO,wBAAE,oCAAc;sBACrB;sBACA;YACA,OAAO;uBACL;gBACA,QAAQ,UAAU,UAAU;qBAC5B;YACF;QACF;IACF;AAEJ;AAEA,SAAS,mCAAa,YAAE,QAAQ,YAAE,QAAQ,SAAE,KAAK,EAAE;IACjD,IAAI,YAAY,QAAQ,YAAY,MAClC,OAAO;IAGT,MAAM,SAAS,KAAK,GAAG,CAAC,WAAW;IAEnC,IAAI,YAAoB;IACxB,IAAI,SAAS,MACX,YAAY;SACP,IAAI,SAAS,KAClB,YAAY;SACP,IAAI,SAAS,IAClB,YAAY;SACP,IAAI,SAAS,GAClB,YAAY;IAGd,OAAO,wBAAE,oBAAoB;eAAE;mBAAO;IAAU,GAAG;QACjD,wBAAE,yBAAyB,wBAAE,CAAA,GAAA,yCAAO,GAAG;YAAE,OAAO;QAAO;KACxD;AACH","sources":["packages/column-views/src/section.ts"],"sourcesContent":["import {\n CompositeUnitsColumn,\n LabelTrackerProvider,\n SectionLabelsColumn,\n} from \"./units\";\nimport { ReactNode, FunctionComponent, useMemo } from \"react\";\nimport { Timescale, TimescaleOrientation } from \"@macrostrat/timescale\";\nimport { ColumnAxisType, SVG } from \"@macrostrat/column-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./column.module.sass\";\nimport type { ExtUnit } from \"./prepare-units/helpers\";\nimport { PackageScaleLayoutData } from \"./prepare-units/composite-scale\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n MacrostratColumnProvider,\n} from \"./data-provider\";\nimport { Duration } from \"./unit-details\";\n\nconst h = hyper.styled(styles);\n\nexport interface SectionSharedProps {\n unitComponent?: FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n children?: ReactNode;\n showLabelColumn?: boolean;\n axisType?: ColumnAxisType;\n className?: string;\n clipUnits?: boolean;\n maxInternalColumns?: number;\n // Space between sections\n verticalSpacing?: number;\n // Whether to render unconformity labels\n unconformityLabels?: boolean;\n}\n\nexport interface SectionProps extends SectionSharedProps {\n units: ExtUnit[];\n scaleInfo: PackageScaleLayoutData;\n}\n\nexport function SectionsColumn(props: SectionSharedProps) {\n const {\n unconformityLabels = true,\n unitComponent,\n unitComponentProps,\n showLabels = true,\n width = 300,\n columnWidth = 150,\n showLabelColumn = true,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const units = useMacrostratUnits();\n\n // Get a unique key for the column\n const key = units[0]?.unit_id;\n\n return h(LabelTrackerProvider, { units, key }, [\n h(SectionUnitsColumn, {\n width: columnWidth,\n unitComponent,\n unitComponentProps,\n showLabels,\n clipUnits,\n maxInternalColumns,\n unconformityLabels,\n }),\n h.if(showLabelColumn)(SectionLabelsColumn, {\n width: width - columnWidth,\n }),\n ]);\n}\n\nfunction SectionUnitsColumn(props: SectionSharedProps) {\n const {\n width,\n showLabels,\n unitComponent,\n unitComponentProps,\n clipUnits,\n maxInternalColumns,\n unconformityLabels = true,\n } = props;\n\n const { sections, totalHeight } = useMacrostratColumnData();\n\n const scaleData: PackageScaleLayoutData[] = sections.map((section) => {\n return section.scaleInfo;\n });\n\n const innerWidth = width - 2;\n\n return h(\"div.section-units-container\", { style: { width } }, [\n h(\n SVG,\n {\n className: \"sections\",\n height: totalHeight,\n innerWidth,\n paddingH: 1,\n },\n sections.map((group) => {\n const { units, scaleInfo, section_id } = group;\n\n const key = `section-${section_id}`;\n return h(\n SectionUnits,\n {\n units,\n scaleInfo,\n key,\n unitComponent,\n unitComponentProps,\n showLabels,\n width: innerWidth,\n clipUnits,\n maxInternalColumns,\n } // This unconformity is with the section _above_\n );\n })\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width,\n sections: scaleData,\n }),\n ]);\n}\n\nfunction SectionUnits(props: SectionProps) {\n // Section with \"squishy\" timescale\n const {\n units,\n scaleInfo,\n unitComponent,\n showLabels = true,\n width = 300,\n unitComponentProps,\n className,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const { domain, pixelScale, pixelHeight } = scaleInfo;\n\n /** Ensure that we can arrange units into the maximum number\n * of columns defined by unitComponentProps, but that we don't\n * use more than necessary.\n */\n const _unitComponentProps = useMemo(() => {\n return {\n ...unitComponentProps,\n nColumns: Math.min(\n maxInternalColumns ?? Math.floor(width / 10),\n unitComponentProps?.nColumns ?? Infinity,\n Math.max(...units.map((d) => d.column)) + 1\n ),\n //axisType,\n };\n }, [units, unitComponentProps, maxInternalColumns, width]);\n\n const style = {\n \"--section-height\": `${pixelHeight}px`,\n \"--section-width\": `${width}px`,\n };\n\n return h(\n \"g.section\",\n { className, style, transform: `translate(0 ${scaleInfo.offset})` },\n h(\n MacrostratColumnProvider,\n {\n units,\n domain,\n pixelScale, // Actually pixels per myr,\n },\n h(CompositeUnitsColumn, {\n width,\n showLabels,\n unitComponent,\n unitComponentProps: _unitComponentProps,\n clipToFrame: clipUnits,\n })\n )\n );\n}\n\ninterface CompositeTimescaleProps {\n levels?: [number, number] | number;\n}\n\nexport function CompositeTimescale(props: CompositeTimescaleProps) {\n const { sections } = useMacrostratColumnData();\n const sectionScales = sections.map((section) => {\n return section.scaleInfo;\n });\n\n return h(CompositeTimescaleCore, {\n packages: sectionScales,\n ...props,\n });\n}\n\ntype CompositeTimescaleCoreProps = CompositeTimescaleProps & {\n packages: PackageScaleLayoutData[];\n unconformityLabels?: boolean;\n};\n\nexport function CompositeTimescaleCore(props: CompositeTimescaleCoreProps) {\n const { levels = 3, packages, unconformityLabels = false } = props;\n\n let _levels: [number, number];\n if (typeof levels === \"number\") {\n // If levels is a number, use the most common starting level\n _levels = [2, Math.max(2 + Math.min(levels, 5) - 1, 1)];\n } else {\n _levels = levels;\n }\n\n const nCols = _levels[1] - _levels[0] + 1;\n\n return h(\"div.timescale-column\", [\n h(\n \"div.timescales\",\n packages.map((group) => {\n const { domain, pixelHeight, paddingTop, key } = group;\n return h(\n \"div.timescale-container\",\n { style: { paddingTop, \"--timescale-level-count\": nCols }, key },\n [\n h(Timescale, {\n orientation: TimescaleOrientation.VERTICAL,\n length: pixelHeight,\n levels: _levels,\n absoluteAgeScale: true,\n showAgeAxis: false,\n ageRange: domain as [number, number],\n }),\n ]\n );\n })\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width: \"100%\",\n sections: packages,\n className: \"unconformity-labels\",\n }),\n ]);\n}\n\nexport function UnconformityLabels(props: {\n width: string | number;\n sections: PackageScaleLayoutData[];\n className?: string;\n}) {\n const { width, sections, className } = props;\n\n return h(\n \"div.unconformity-labels\",\n {\n style: {\n width,\n },\n className,\n },\n sections.map((scaleInfo, i) => {\n const lastGroup = sections[i - 1];\n const top = scaleInfo.offset - scaleInfo.paddingTop;\n const upperAge = lastGroup?.domain[0];\n const lowerAge = scaleInfo.domain[1];\n return h(Unconformity, {\n upperAge,\n lowerAge,\n style: {\n width,\n height: scaleInfo.paddingTop,\n top,\n },\n });\n })\n );\n}\n\nfunction Unconformity({ upperAge, lowerAge, style }) {\n if (upperAge == null || lowerAge == null) {\n return null;\n }\n\n const ageGap = Math.abs(upperAge - lowerAge);\n\n let className: string = null;\n if (ageGap > 1000) {\n className = \"giga\";\n } else if (ageGap > 100) {\n className = \"mega\";\n } else if (ageGap > 10) {\n className = \"large\";\n } else if (ageGap < 1) {\n className = \"small\";\n }\n\n return h(\"div.unconformity\", { style, className }, [\n h(\"div.unconformity-text\", h(Duration, { value: ageGap })),\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.fa6f3292.js.map"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0} from "./column-views.3de4dc43.js";
|
|
2
|
+
import {buildColumnsStyle as $1dbfddc9637b572c$export$d2995719c3a4ae17} from "./column-views.33dbc778.js";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
export {$5593f90ffec284da$export$1e8149fc0d15fed0 as InsetMap, $1dbfddc9637b572c$export$d2995719c3a4ae17 as buildColumnsStyle};
|
|
9
|
+
//# sourceMappingURL=column-views.fc2b4611.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"","sources":["packages/column-views/src/maps/_shared/index.ts"],"sourcesContent":["export * from \"./inset-map\";\nexport * from \"./styles\";\n"],"names":[],"version":3,"file":"column-views.fc2b4611.js.map"}
|