@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.
Files changed (258) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/esm/{data-area.daff8da0.js → column-views.062d164a.js} +1 -1
  3. package/dist/esm/{data-area.daff8da0.js.map → column-views.062d164a.js.map} +1 -1
  4. package/dist/esm/{data-provider.1506eb64.js → column-views.07521ce6.js} +1 -1
  5. package/dist/esm/column-views.07521ce6.js.map +1 -0
  6. package/dist/esm/column-views.134b2e2a.js +9 -0
  7. package/dist/esm/column-views.134b2e2a.js.map +1 -0
  8. package/dist/esm/{selection-popover.module.0a701258.css → column-views.16cc7a58.css} +11 -8
  9. package/dist/esm/column-views.16cc7a58.css.map +1 -0
  10. package/dist/esm/column-views.1c589cc4.js +141 -0
  11. package/dist/esm/column-views.1c589cc4.js.map +1 -0
  12. package/dist/esm/column-views.1ece326b.js +420 -0
  13. package/dist/esm/column-views.1ece326b.js.map +1 -0
  14. package/dist/esm/column-views.1edc7300.js +40 -0
  15. package/dist/esm/column-views.1edc7300.js.map +1 -0
  16. package/dist/esm/column-views.240ef158.css +159 -0
  17. package/dist/esm/column-views.240ef158.css.map +1 -0
  18. package/dist/esm/column-views.25471fe0.css +111 -0
  19. package/dist/esm/column-views.25471fe0.css.map +1 -0
  20. package/dist/esm/column-views.28ee5f43.js +288 -0
  21. package/dist/esm/column-views.28ee5f43.js.map +1 -0
  22. package/dist/esm/column-views.30646469.js +118 -0
  23. package/dist/esm/column-views.30646469.js.map +1 -0
  24. package/dist/esm/column-views.338a7a83.css +134 -0
  25. package/dist/esm/column-views.338a7a83.css.map +1 -0
  26. package/dist/esm/column-views.33dbc778.js +95 -0
  27. package/dist/esm/column-views.33dbc778.js.map +1 -0
  28. package/dist/esm/column-views.343b5aa2.js +98 -0
  29. package/dist/esm/column-views.343b5aa2.js.map +1 -0
  30. package/dist/esm/column-views.34636ec7.js +104 -0
  31. package/dist/esm/column-views.34636ec7.js.map +1 -0
  32. package/dist/esm/column-views.3465c8ad.js +16 -0
  33. package/dist/esm/column-views.3465c8ad.js.map +1 -0
  34. package/dist/esm/column-views.39657bbf.js +55 -0
  35. package/dist/esm/column-views.39657bbf.js.map +1 -0
  36. package/dist/esm/column-views.3b972a9b.css +4 -0
  37. package/dist/esm/{composite.module.69a38fd1.css.map → column-views.3b972a9b.css.map} +1 -1
  38. package/dist/esm/column-views.3bec70d6.js +167 -0
  39. package/dist/esm/column-views.3bec70d6.js.map +1 -0
  40. package/dist/esm/column-views.3de4dc43.js +66 -0
  41. package/dist/esm/column-views.3de4dc43.js.map +1 -0
  42. package/dist/esm/{column.db058031.js → column-views.3f4db8cb.js} +8 -8
  43. package/dist/esm/column-views.3f4db8cb.js.map +1 -0
  44. package/dist/esm/column-views.40c1f361.js +206 -0
  45. package/dist/esm/column-views.40c1f361.js.map +1 -0
  46. package/dist/esm/{composite.module.0638e7ee.js → column-views.40cd59b5.js} +1 -1
  47. package/dist/esm/{composite.module.0638e7ee.js.map → column-views.40cd59b5.js.map} +1 -1
  48. package/dist/esm/column-views.4637f4ce.js +46 -0
  49. package/dist/esm/column-views.4637f4ce.js.map +1 -0
  50. package/dist/esm/column-views.4c4c5bac.js +163 -0
  51. package/dist/esm/column-views.4c4c5bac.js.map +1 -0
  52. package/dist/esm/column-views.4d374a35.js +19 -0
  53. package/dist/esm/column-views.4d374a35.js.map +1 -0
  54. package/dist/esm/column-views.57c4ddf3.js +125 -0
  55. package/dist/esm/column-views.57c4ddf3.js.map +1 -0
  56. package/dist/esm/column-views.58b82432.js +58 -0
  57. package/dist/esm/column-views.58b82432.js.map +1 -0
  58. package/dist/esm/column-views.5b2635fd.js +13 -0
  59. package/dist/esm/column-views.5b2635fd.js.map +1 -0
  60. package/dist/esm/column-views.5c02fee2.js +258 -0
  61. package/dist/esm/column-views.5c02fee2.js.map +1 -0
  62. package/dist/esm/column-views.5cc09c1d.js +152 -0
  63. package/dist/esm/column-views.5cc09c1d.js.map +1 -0
  64. package/dist/esm/{names.f6a4e9a4.js → column-views.650bd9f5.js} +5 -5
  65. package/dist/esm/column-views.650bd9f5.js.map +1 -0
  66. package/dist/esm/column-views.68409161.js +89 -0
  67. package/dist/esm/column-views.68409161.js.map +1 -0
  68. package/dist/esm/column-views.6a954628.js +70 -0
  69. package/dist/esm/column-views.6a954628.js.map +1 -0
  70. package/dist/esm/column-views.6c670c13.css +26 -0
  71. package/dist/esm/column-views.6c670c13.css.map +1 -0
  72. package/dist/esm/column-views.6d6b73b4.js +55 -0
  73. package/dist/esm/column-views.6d6b73b4.js.map +1 -0
  74. package/dist/esm/column-views.86c4b36f.js +222 -0
  75. package/dist/esm/column-views.86c4b36f.js.map +1 -0
  76. package/dist/esm/column-views.88de2cee.js +9 -0
  77. package/dist/esm/column-views.88de2cee.js.map +1 -0
  78. package/dist/esm/{resolvers.b5c82b78.js → column-views.8dd877af.js} +16 -3
  79. package/dist/esm/column-views.8dd877af.js.map +1 -0
  80. package/dist/esm/column-views.8e51206e.js +143 -0
  81. package/dist/esm/column-views.8e51206e.js.map +1 -0
  82. package/dist/esm/{column.module.7f47d25a.js → column-views.94b5cca1.js} +1 -1
  83. package/dist/esm/{column.module.7f47d25a.js.map → column-views.94b5cca1.js.map} +1 -1
  84. package/dist/esm/column-views.9804efda.js +75 -0
  85. package/dist/esm/column-views.9804efda.js.map +1 -0
  86. package/dist/esm/column-views.9bdd477a.js +57 -0
  87. package/dist/esm/column-views.9bdd477a.js.map +1 -0
  88. package/dist/esm/column-views.9ced149e.js +98 -0
  89. package/dist/esm/column-views.9ced149e.js.map +1 -0
  90. package/dist/esm/{column.module.cbb072df.css → column-views.a7be0a4a.css} +1 -1
  91. package/dist/esm/{column.module.cbb072df.css.map → column-views.a7be0a4a.css.map} +1 -1
  92. package/dist/esm/column-views.a98214b2.js +9 -0
  93. package/dist/esm/column-views.a98214b2.js.map +1 -0
  94. package/dist/esm/column-views.aa9fcdba.js +221 -0
  95. package/dist/esm/column-views.aa9fcdba.js.map +1 -0
  96. package/dist/esm/{isotopes-column.7cb5cc45.js → column-views.ac9fb5e1.js} +3 -3
  97. package/dist/esm/{isotopes-column.7cb5cc45.js.map → column-views.ac9fb5e1.js.map} +1 -1
  98. package/dist/esm/column-views.b2e5f1d9.js +11 -0
  99. package/dist/esm/column-views.b2e5f1d9.js.map +1 -0
  100. package/dist/esm/column-views.b775c0a3.js +112 -0
  101. package/dist/esm/column-views.b775c0a3.js.map +1 -0
  102. package/dist/esm/column-views.beb54e95.js +39 -0
  103. package/dist/esm/column-views.beb54e95.js.map +1 -0
  104. package/dist/esm/{core.4db8e452.js → column-views.c58aad3f.js} +15 -16
  105. package/dist/esm/column-views.c58aad3f.js.map +1 -0
  106. package/dist/esm/{carbon-isotopes.3b502a9e.js → column-views.d1ad48eb.js} +4 -4
  107. package/dist/esm/{carbon-isotopes.3b502a9e.js.map → column-views.d1ad48eb.js.map} +1 -1
  108. package/dist/esm/column-views.dc42f5d0.js +48 -0
  109. package/dist/esm/column-views.dc42f5d0.js.map +1 -0
  110. package/dist/esm/column-views.dff52504.js +22 -0
  111. package/dist/esm/column-views.dff52504.js.map +1 -0
  112. package/dist/esm/column-views.e2b9c23c.css +33 -0
  113. package/dist/esm/column-views.e2b9c23c.css.map +1 -0
  114. package/dist/esm/column-views.e40b8bfb.css +14 -0
  115. package/dist/esm/column-views.e40b8bfb.css.map +1 -0
  116. package/dist/esm/column-views.e77b9d6b.js +170 -0
  117. package/dist/esm/column-views.e77b9d6b.js.map +1 -0
  118. package/dist/esm/column-views.ea237aa8.js +52 -0
  119. package/dist/esm/column-views.ea237aa8.js.map +1 -0
  120. package/dist/esm/column-views.edf77621.js +22 -0
  121. package/dist/esm/column-views.edf77621.js.map +1 -0
  122. package/dist/esm/column-views.f1efcc2c.js +9 -0
  123. package/dist/esm/column-views.f1efcc2c.js.map +1 -0
  124. package/dist/esm/column-views.f2e5a72f.js +66 -0
  125. package/dist/esm/column-views.f2e5a72f.js.map +1 -0
  126. package/dist/esm/column-views.f71ec4b4.js +127 -0
  127. package/dist/esm/column-views.f71ec4b4.js.map +1 -0
  128. package/dist/esm/column-views.f9dab157.js +3 -0
  129. package/dist/esm/column-views.f9dab157.js.map +1 -0
  130. package/dist/esm/column-views.fa6f3292.js +215 -0
  131. package/dist/esm/column-views.fa6f3292.js.map +1 -0
  132. package/dist/esm/column-views.fc2b4611.js +9 -0
  133. package/dist/esm/column-views.fc2b4611.js.map +1 -0
  134. package/dist/esm/index.d.ts +797 -130
  135. package/dist/esm/index.d.ts.map +1 -1
  136. package/dist/esm/index.js +13 -9
  137. package/dist/esm/index.js.map +1 -1
  138. package/dist/node/index.js +1 -1
  139. package/dist/node/index.js.map +1 -1
  140. package/package.json +29 -13
  141. package/src/age-axis.module.sass +27 -0
  142. package/src/age-axis.ts +82 -19
  143. package/src/age-model-overlay.module.sass +11 -0
  144. package/src/age-model-overlay.ts +73 -0
  145. package/src/carbon-isotopes/column.ts +4 -2
  146. package/src/carbon-isotopes/core.ts +9 -6
  147. package/src/carbon-isotopes/data-provider.ts +3 -3
  148. package/src/column.module.sass +58 -49
  149. package/src/column.ts +149 -135
  150. package/src/correlation-chart/hash-string.ts +57 -0
  151. package/src/correlation-chart/index.ts +2 -0
  152. package/src/correlation-chart/main.module.sass +122 -0
  153. package/src/correlation-chart/main.ts +305 -0
  154. package/src/correlation-chart/prepare-data.ts +217 -0
  155. package/src/correlation-chart/stories/correlation-chart.stories.ts +192 -0
  156. package/src/correlation-chart/stories/stories.module.sass +18 -0
  157. package/src/correlation-chart/unconformity-line.module.sass +8 -0
  158. package/src/correlation-chart/unconformity-line.ts +25 -0
  159. package/src/data-provider/base.ts +388 -0
  160. package/src/data-provider/column-nav.ts +53 -0
  161. package/src/data-provider/fetch.ts +231 -0
  162. package/src/data-provider/index.ts +4 -0
  163. package/src/data-provider/store.ts +72 -0
  164. package/src/index.ts +5 -3
  165. package/src/maps/_shared/index.ts +2 -0
  166. package/src/maps/_shared/inset-map.stories.ts +20 -0
  167. package/src/maps/_shared/inset-map.ts +87 -0
  168. package/src/maps/_shared/styles.ts +57 -0
  169. package/src/maps/column-correlation/column-correlation-map.stories.ts +96 -0
  170. package/src/maps/column-correlation/core.ts +225 -0
  171. package/src/maps/column-correlation/index.ts +2 -0
  172. package/src/maps/column-correlation/state.ts +192 -0
  173. package/src/maps/column-navigation/index.ts +2 -0
  174. package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +102 -0
  175. package/src/maps/column-navigation/mapbox/index.ts +219 -0
  176. package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +119 -0
  177. package/src/maps/column-navigation/mapbox/state.ts +109 -0
  178. package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +46 -0
  179. package/src/{map → maps/column-navigation/svg}/index.ts +18 -6
  180. package/src/{map → maps/column-navigation/svg}/layers.ts +28 -109
  181. package/src/maps/column-navigation/utils/keyboard-navigation.ts +58 -0
  182. package/src/maps/index.ts +3 -0
  183. package/src/prepare-units/composite-scale.ts +353 -0
  184. package/src/prepare-units/helpers.ts +226 -0
  185. package/src/prepare-units/index.ts +177 -0
  186. package/src/prepare-units/utils.ts +98 -0
  187. package/src/section.ts +264 -84
  188. package/src/unit-details/index.ts +2 -215
  189. package/src/unit-details/{index.module.sass → panel.module.sass} +39 -8
  190. package/src/unit-details/panel.ts +523 -0
  191. package/src/{selection-popover.module.sass → unit-details/popover.module.sass} +4 -2
  192. package/src/unit-details/popover.ts +82 -0
  193. package/src/units/boxes.module.sass +16 -0
  194. package/src/units/boxes.ts +243 -90
  195. package/src/units/colors.ts +64 -0
  196. package/src/units/composite.ts +157 -152
  197. package/src/units/index.ts +76 -9
  198. package/src/units/names.ts +8 -4
  199. package/src/units/resolvers.ts +12 -1
  200. package/src/units/selection.ts +115 -101
  201. package/src/units/types.ts +5 -16
  202. package/dist/esm/age-axis.64c509ee.js +0 -41
  203. package/dist/esm/age-axis.64c509ee.js.map +0 -1
  204. package/dist/esm/boxes.13968b76.js +0 -164
  205. package/dist/esm/boxes.13968b76.js.map +0 -1
  206. package/dist/esm/boxes.module.28873d08.css +0 -4
  207. package/dist/esm/boxes.module.28873d08.css.map +0 -1
  208. package/dist/esm/boxes.module.605bdcd6.js +0 -13
  209. package/dist/esm/boxes.module.605bdcd6.js.map +0 -1
  210. package/dist/esm/column.8dd26e1a.js +0 -149
  211. package/dist/esm/column.8dd26e1a.js.map +0 -1
  212. package/dist/esm/column.db058031.js.map +0 -1
  213. package/dist/esm/column.module.039d872c.css +0 -151
  214. package/dist/esm/column.module.039d872c.css.map +0 -1
  215. package/dist/esm/column.module.e632868a.js +0 -19
  216. package/dist/esm/column.module.e632868a.js.map +0 -1
  217. package/dist/esm/composite.608a4ca2.js +0 -153
  218. package/dist/esm/composite.608a4ca2.js.map +0 -1
  219. package/dist/esm/composite.module.69a38fd1.css +0 -4
  220. package/dist/esm/core.4db8e452.js.map +0 -1
  221. package/dist/esm/data-provider.1506eb64.js.map +0 -1
  222. package/dist/esm/helpers.8a03cfc7.js +0 -94
  223. package/dist/esm/helpers.8a03cfc7.js.map +0 -1
  224. package/dist/esm/index.module.0844afd8.css +0 -65
  225. package/dist/esm/index.module.0844afd8.css.map +0 -1
  226. package/dist/esm/index.module.24fe3a2e.js +0 -37
  227. package/dist/esm/index.module.24fe3a2e.js.map +0 -1
  228. package/dist/esm/layers.ad5fd25d.js +0 -231
  229. package/dist/esm/layers.ad5fd25d.js.map +0 -1
  230. package/dist/esm/map.7aa26f17.js +0 -82
  231. package/dist/esm/map.7aa26f17.js.map +0 -1
  232. package/dist/esm/names.f6a4e9a4.js.map +0 -1
  233. package/dist/esm/providers.cd1e652f.js +0 -25
  234. package/dist/esm/providers.cd1e652f.js.map +0 -1
  235. package/dist/esm/resolvers.b5c82b78.js.map +0 -1
  236. package/dist/esm/section.cc1b1100.js +0 -118
  237. package/dist/esm/section.cc1b1100.js.map +0 -1
  238. package/dist/esm/selection-popover.17d1bd55.js +0 -60
  239. package/dist/esm/selection-popover.17d1bd55.js.map +0 -1
  240. package/dist/esm/selection-popover.module.0a701258.css.map +0 -1
  241. package/dist/esm/selection-popover.module.e22f5183.js +0 -22
  242. package/dist/esm/selection-popover.module.e22f5183.js.map +0 -1
  243. package/dist/esm/selection.bbf26d0e.js +0 -117
  244. package/dist/esm/selection.bbf26d0e.js.map +0 -1
  245. package/dist/esm/store.25eaa168.js +0 -18
  246. package/dist/esm/store.25eaa168.js.map +0 -1
  247. package/dist/esm/types.f016e032.js +0 -18
  248. package/dist/esm/types.f016e032.js.map +0 -1
  249. package/dist/esm/unit-details.56ff8b70.js +0 -209
  250. package/dist/esm/unit-details.56ff8b70.js.map +0 -1
  251. package/dist/esm/units.361088d4.js +0 -42
  252. package/dist/esm/units.361088d4.js.map +0 -1
  253. package/src/helpers.ts +0 -133
  254. package/src/providers.ts +0 -34
  255. package/src/selection-popover.ts +0 -71
  256. package/src/store.ts +0 -12
  257. package/src/units/units.scss +0 -16
  258. /package/src/{map → maps/column-navigation/svg}/animated.ts +0 -0
@@ -1,14 +1,16 @@
1
1
  import { ScaleContinuousNumeric, ScaleLinear } from "d3-scale";
2
- import { Component, ReactNode, Context, FunctionComponentElement, Dispatch, SetStateAction, ProviderProps, PropsWithChildren, JSXElementConstructor, ReactElement, DOMAttributes, DOMElement, ComponentElement, MutableRefObject, RefObject } from "react";
3
- import { BaseUnit, UnitLong } from "@macrostrat/api-types";
4
- import { LithologyColumnProps, CrossAxisLayoutProviderProps as _CrossAxisLayoutProviderProps1, ColumnDivision as _ColumnDivision1, ColumnProviderProps } from "@macrostrat/column-components";
5
- import { AxisProps } from "@visx/axis/lib/axis/Axis";
2
+ import { Component, ReactNode, Context, FunctionComponentElement, RefObject, ProviderProps, DOMAttributes, DOMElement, JSXElementConstructor, ReactElement, ComponentElement, CSSProperties, MutableRefObject, InputHTMLAttributes, DetailedReactHTMLElement, FunctionComponent, HTMLAttributes, AriaRole, ClipboardEventHandler, CompositionEventHandler, FocusEventHandler, FormEventHandler, ReactEventHandler, KeyboardEventHandler, MouseEventHandler, DragEventHandler, TouchEventHandler, PointerEventHandler, UIEventHandler, WheelEventHandler, AnimationEventHandler, TransitionEventHandler } from "react";
3
+ import { UnitLong, BaseUnit, ColumnGeoJSONRecord, MacrostratRef, ColumnGeoJSONRecordWithID, Environment } from "@macrostrat/api-types";
4
+ import { StoreApi } from "zustand";
6
5
  import { APIConfig, APIConfigOptions } from "@macrostrat/ui-components";
7
6
  import { AxiosRequestConfig, AxiosInstance } from "axios";
7
+ import { ColumnDivision as _ColumnDivision1, ColumnProviderProps, LithologyColumnProps, CrossAxisLayoutProviderProps as _CrossAxisLayoutProviderProps1 } from "@macrostrat/column-components";
8
+ import { AxisProps } from "@visx/axis/lib/axis/Axis";
9
+ import mapboxgl from "mapbox-gl";
10
+ import { Geometry, FeatureCollection, Polygon, LineString, Point } from "geojson";
8
11
  import { ExtendedFeature } from "d3-geo";
9
- import { Polygon } from "geojson";
10
12
  import { IFeature } from "@macrostrat/svg-map-components";
11
- import { UnitSelectionProps as _UnitSelectionProps1 } from "column-views/src";
13
+ import { MacrostratDataProviderProps as _MacrostratDataProviderProps1, MacrostratColumnDataContext as _MacrostratColumnDataContext1, ColumnContainerProps as _ColumnContainerProps1 } from "column-views/src";
12
14
  type HeightRange = [number, number];
13
15
  type ColumnScale = ScaleContinuousNumeric<HeightRange, number> | any;
14
16
  type ColumnScaleClamped = ScaleLinear<number, number>;
@@ -27,7 +29,8 @@ interface ColumnDivision {
27
29
  enum ColumnAxisType {
28
30
  AGE = "age",
29
31
  HEIGHT = "height",
30
- DEPTH = "depth"
32
+ DEPTH = "depth",
33
+ ORDINAL = "ordinal"
31
34
  }
32
35
  interface ColumnCtx<T extends ColumnDivision> {
33
36
  divisions: T[];
@@ -65,7 +68,7 @@ declare namespace InfiniteScrollView {
65
68
  getItems(d: any): any;
66
69
  getCount(d: any): any;
67
70
  getNextParams(response: any, params: any): any;
68
- placeholder: (p: APIPlaceholderProps) => React.ComponentElement<$$parcel$import$208<HTMLElement>, Spinner>;
71
+ placeholder: (p: APIPlaceholderProps) => React.FunctionComponentElement<$$parcel$import$208<HTMLElement>>;
69
72
  };
70
73
  }
71
74
  declare namespace ThreeColumnLayout {
@@ -79,24 +82,209 @@ export interface IUnit {
79
82
  b_age: number;
80
83
  [x: string]: any;
81
84
  }
82
- export enum MacrostratAxisKey {
83
- AGE = "age",
84
- POS = "pos"
85
+ export interface RectBounds {
86
+ x: number;
87
+ y: number;
88
+ width: number;
89
+ height: number;
85
90
  }
86
- export function transformAxisType(t: ColumnAxisType): MacrostratAxisKey;
91
+ interface StratigraphicPackage {
92
+ /** A collection of stratigraphic information organized in time, corresponding
93
+ * to single or multiple columns. */
94
+ t_age: number;
95
+ b_age: number;
96
+ }
97
+ interface SectionInfo<T extends UnitLong = ExtUnit> extends StratigraphicPackage {
98
+ /** A time-bounded part of a single stratigraphic column. */
99
+ section_id: number | number[];
100
+ units: T[];
101
+ }
102
+ interface ExtUnit extends UnitLong {
103
+ bottomOverlap: boolean;
104
+ overlappingUnits: number[];
105
+ column?: number;
106
+ t_clip_pos?: number;
107
+ b_clip_pos?: number;
108
+ }
109
+ export function preprocessUnits<T extends UnitLong = UnitLong>(section: SectionInfo<T>, axisType?: ColumnAxisType): ExtUnit[];
110
+ export function groupUnitsIntoSections<T extends UnitLong>(units: T[], axisType?: ColumnAxisType): SectionInfo<T>[];
111
+ interface UnitsOverlap {
112
+ (a: StratigraphicPackage, b: StratigraphicPackage, axisType?: ColumnAxisType.AGE, tolerance?: number): boolean;
113
+ (a: BaseUnit, b: BaseUnit, axisType: ColumnAxisType, tolerance?: number): boolean;
114
+ }
115
+ export const unitsOverlap: UnitsOverlap;
116
+ /** A more permissive overlap function in the age space */
117
+ export function agesOverlap(a: StratigraphicPackage, b: StratigraphicPackage, tolerance?: number): boolean;
118
+ interface PossiblyClippedUnit extends BaseUnit {
119
+ t_clip_pos?: number;
120
+ b_clip_pos?: number;
121
+ }
122
+ export function getUnitHeightRange(unit: PossiblyClippedUnit, axisType: ColumnAxisType): [number, number];
123
+ export const createUnitSorter: (axisType: ColumnAxisType) => (a: BaseUnit, b: BaseUnit) => number;
124
+ export function ensureArray<T>(x: T | T[]): T[];
125
+ export function ensureRealFloat(x: number | string | null): number | null;
87
126
  type UnitSelectDispatch = (unit: BaseUnit | null, target: HTMLElement | null, event: Event | null) => void;
88
127
  export function useUnitSelectionDispatch(): UnitSelectDispatch;
128
+ export function useUnitSelectionStore<T>(selector: (state: UnitSelectionStore) => T): T;
89
129
  export function useSelectedUnit(): BaseUnit;
90
- export interface UnitSelectionProps<T extends BaseUnit> {
130
+ interface UnitSelectionStore {
131
+ selectedUnit: number | null;
132
+ selectedUnitData: BaseUnit | null;
133
+ overlayPosition: RectBounds | null;
134
+ onUnitSelected: UnitSelectDispatch;
135
+ setSelectedUnit: (unit: number | null) => void;
136
+ }
137
+ export function UnitSelectionProvider<T extends BaseUnit>(props: {
138
+ children: ReactNode;
139
+ columnRef?: RefObject<HTMLElement>;
140
+ units: T[];
141
+ selectedUnit: number | null;
142
+ onUnitSelected?: (unitID: number | null, unit: T | null) => void;
143
+ }): FunctionComponentElement<ProviderProps<StoreApi<UnitSelectionStore>>>;
144
+ export function useUnitSelectionTarget(unit: IUnit): [React.RefObject<HTMLElement>, boolean, (evt: Event) => void];
145
+ export function UnitKeyboardNavigation<T extends BaseUnit>({ units, }: {
146
+ units: T[];
147
+ }): any;
148
+ declare function defaultFetch(url: string, options?: RequestInit | undefined): Promise<Response>;
149
+ export interface ColumnFetchOptions {
150
+ apiBaseURL?: string;
151
+ projectID?: number;
152
+ statusCode?: "in process";
153
+ format?: "geojson" | "topojson" | "geojson_bare";
154
+ fetch?: any;
155
+ }
156
+ export function fetchAllColumns(options?: ColumnFetchOptions): Promise<ColumnGeoJSONRecord[]>;
157
+ export function useColumnFeatures({ apiRoute, status_code, project_id, format, }: {
158
+ apiRoute?: string;
159
+ status_code: any;
160
+ project_id: any;
161
+ format?: string;
162
+ }): unknown;
163
+ export function fetchLithologies(fetch?: typeof defaultFetch): Promise<any>;
164
+ export function fetchIntervals(timescaleID: number | null, fetch?: typeof defaultFetch): Promise<any>;
165
+ export function fetchEnvironments(fetch?: typeof defaultFetch): Promise<any>;
166
+ export function fetchRefs(refs: number[], fetch?: typeof defaultFetch): Promise<MacrostratRef[]>;
167
+ export type ColumnData = {
168
+ units: UnitLong[];
169
+ columnID: number;
170
+ };
171
+ export function fetchUnits(columns: number[], fetch?: typeof defaultFetch): Promise<ColumnData[]>;
172
+ export function fetchColumnUnits(col_id: number, fetch?: typeof defaultFetch): Promise<ColumnData>;
173
+ interface ColumnHeightScaleOptions {
174
+ /** A fixed pixel scale to use for the section (pixels per Myr) */
175
+ pixelScale?: number;
176
+ /** The target height of a constituent unit in pixels, for dynamic
177
+ * scale generation */
178
+ targetUnitHeight?: number;
179
+ /** Min height of a section in pixels. Will override minPixelScale in some cases. */
180
+ minSectionHeight?: number;
181
+ /** The minimum pixel scale to use for the section (pixels per Myr). This is mostly
182
+ * needed because small sections (<1-2 units) don't necessarily have space to comfortably
183
+ * render two axis labels */
184
+ minPixelScale?: number;
185
+ axisType?: ColumnAxisType;
186
+ unconformityHeight?: number;
187
+ collapseSmallUnconformities?: boolean | number;
188
+ }
189
+ interface LinearScaleDef {
190
+ domain: [number, number];
191
+ pixelScale: number;
192
+ }
193
+ /** Output of a section scale. For now, this assumes that the
194
+ * mapping is linear, but it could be extended to support arbitrary
195
+ * scale functions.
196
+ */
197
+ interface PackageScaleInfo extends LinearScaleDef {
198
+ pixelHeight: number;
199
+ scale: ScaleLinear<number, number>;
200
+ }
201
+ type PackageScaleLayoutData = PackageScaleInfo & {
202
+ key: string;
203
+ offset: number;
204
+ paddingTop: number;
205
+ };
206
+ type PackageLayoutData<T extends UnitLong = ExtUnit> = SectionInfo<T> & {
207
+ scaleInfo: PackageScaleLayoutData;
208
+ key: string;
209
+ };
210
+ interface CompositeScaleData {
211
+ totalHeight: number;
212
+ sections: PackageScaleLayoutData[];
213
+ }
214
+ interface ColumnScaleOptions extends ColumnHeightScaleOptions {
215
+ axisType: ColumnAxisType;
216
+ unconformityHeight: number;
217
+ }
218
+ interface CompositeColumnData<T extends UnitLong = ExtUnit> extends Omit<CompositeScaleData, "sections"> {
219
+ sections: PackageLayoutData<T>[];
220
+ }
221
+ export interface MacrostratColumnDataContext {
222
+ units: ExtUnit[];
223
+ sections: PackageLayoutData[];
224
+ totalHeight?: number;
225
+ axisType?: ColumnAxisType;
226
+ }
227
+ export function MacrostratColumnDataProvider({ children, units, sections, totalHeight, axisType, }: MacrostratColumnDataContext & {
228
+ children: ReactNode;
229
+ }): FunctionComponentElement<ProviderProps<MacrostratColumnDataContext>>;
230
+ export function useMacrostratColumnData(): MacrostratColumnDataContext;
231
+ export function useMacrostratUnits(): ExtUnit[];
232
+ export function useCompositeScale(): (age: number) => number | null;
233
+ export interface MacrostratDataProviderProps {
234
+ baseURL: string;
91
235
  children: React.ReactNode;
92
- unit: T | null;
93
- setUnit: Dispatch<SetStateAction<T>>;
94
- onUnitSelected?: (unit: T, target: HTMLElement, event: Event) => void;
95
236
  }
96
- export function UnitSelectionProvider<T extends BaseUnit>(props: Partial<UnitSelectionProps<T>>): FunctionComponentElement<UnitSelectionProps<BaseUnit>> | FunctionComponentElement<{
237
+ interface ColumnFootprintsStorage {
238
+ project_id: number;
239
+ inProcess: boolean;
240
+ columns: ColumnGeoJSONRecordWithID[];
241
+ }
242
+ interface RefsSlice {
243
+ refs: Map<number, MacrostratRef>;
244
+ inFlightRequests: Set<string>;
245
+ getRefs(ids: number[]): Promise<MacrostratRef[]>;
246
+ }
247
+ interface MacrostratStore extends RefsSlice {
248
+ baseURL: string;
249
+ fetch: any;
250
+ lithologies: Map<number, any> | null;
251
+ getLithologies(ids: number[] | null): Promise<any>;
252
+ intervals: Map<number, any> | null;
253
+ getIntervals(ids: number[] | null, timescaleID: number | null): Promise<any>;
254
+ environments: Map<number, Environment> | null;
255
+ getEnvironments(ids: number[] | null): Promise<Environment[]>;
256
+ columnFootprints: Map<number, ColumnFootprintsStorage>;
257
+ getColumns(projectID: number | null, inProcess: boolean): Promise<ColumnGeoJSONRecord[]>;
258
+ }
259
+ type MacrostratSelector = (store: MacrostratStore) => any;
260
+ export function useMacrostratStore(selector: MacrostratSelector | "api"): any;
261
+ export function useMacrostratDefs(dataType: string): Map<number, any> | null;
262
+ export function useMacrostratColumns(projectID: number | null, inProcess: boolean): any;
263
+ export function useMacrostratData(dataType: string, ...args: any[]): any;
264
+ export function MacrostratDataProvider(props: MacrostratDataProviderProps): FunctionComponentElement<APIProviderProps>;
265
+ /** Legacy API provider so useAPIResult can work */
266
+ type APIProviderProps = {
97
267
  children: ReactNode;
98
- onUnitSelected?: (unit: BaseUnit, target: HTMLElement, event: Event) => void;
268
+ useDev?: boolean;
269
+ baseURL?: string;
270
+ };
271
+ export function MacrostratAPIProvider({ children, useDev, baseURL, }: APIProviderProps): FunctionComponentElement<Partial<APIConfig> & AxiosRequestConfig<any> & Partial<AxiosRequestConfig<any>> & {
272
+ config?: Partial<APIConfigOptions>;
273
+ } & {
274
+ context?: Context<{
275
+ baseURL: string;
276
+ axiosInstance: AxiosInstance;
277
+ } & {
278
+ config: APIConfig;
279
+ }>;
280
+ children?: React.ReactChild;
99
281
  }>;
282
+ export function MacrostratColumnProvider(props: any): FunctionComponentElement<ColumnProviderProps<_ColumnDivision1>>;
283
+ /** This is now a legacy provider */
284
+ export function LithologiesProvider({ children }: {
285
+ children: any;
286
+ }): any;
287
+ export function useLithologies(): any;
100
288
  export interface ColumnArgs {
101
289
  col_id?: number;
102
290
  unit_id?: number;
@@ -109,31 +297,27 @@ export function ColumnNavProvider({ children, ...defaultArgs }: {
109
297
  [x: string]: any;
110
298
  children: any;
111
299
  }): FunctionComponentElement<ProviderProps<ColumnManagerData>>;
112
- export function UnitKeyboardNavigation<T extends BaseUnit>({ units, }: {
113
- units: T[];
114
- }): any;
115
- interface RectBounds {
116
- x: number;
117
- y: number;
118
- width: number;
119
- height: number;
120
- }
300
+ export function getMixedUnitColor(unit: UnitLong, lithMap: any, inDarkMode?: boolean, asBackground?: boolean): string | null;
121
301
  interface UnitRectOptions {
122
302
  widthFraction?: number;
123
303
  axisType?: ColumnAxisType;
304
+ padding?: number;
124
305
  }
125
306
  interface LabeledUnitProps extends UnitRectOptions, Clickable, Partial<RectBounds> {
126
307
  division: IUnit;
127
308
  label: string;
128
309
  onLabelUpdated?(label: string, shown: boolean): any;
129
310
  halfWidth?: boolean;
311
+ showLabel?: boolean;
312
+ backgroundColor?: string;
130
313
  }
131
- export function TrackedLabeledUnit({ division, nameForDivision, axisType, ...rest }: {
314
+ export function LabelTrackerProvider(props: any): FunctionComponentElement<ProviderProps<any>>;
315
+ export function TrackedLabeledUnit({ division, nameForDivision, ...rest }: {
132
316
  [x: string]: any;
133
317
  division: any;
134
318
  nameForDivision?: (div: any) => any;
135
- axisType: any;
136
319
  }): FunctionComponentElement<LabeledUnitProps>;
320
+ export const CompositeUnitComponent: typeof TrackedLabeledUnit;
137
321
  type BaseUnitProps = {
138
322
  width: number;
139
323
  showLabels?: boolean;
@@ -151,25 +335,32 @@ export type ICompositeUnitProps = BaseUnitProps & {
151
335
  noteMode?: "labeled" | "unlabeled";
152
336
  showLabelColumn?: boolean;
153
337
  noteComponent?: React.FC<any>;
154
- shouldRenderNote?: (d: BaseUnit) => boolean;
155
- };
156
- type AnnotatedUnitProps = ICompositeUnitProps & {
157
- minimumLabelHeight?: number;
158
- axisType: ColumnAxisType;
338
+ shouldRenderNote?: (d: any) => boolean;
159
339
  };
160
- export function AnnotatedUnitsColumn(props: AnnotatedUnitProps): FunctionComponentElement<PropsWithChildren<{
161
- width: number;
162
- unitComponent?: React.FC<any>;
340
+ interface CompositeUnitProps {
341
+ unitComponent: React.FC<any>;
163
342
  unitComponentProps?: any;
164
- clipToFrame?: boolean;
165
- }>>;
166
- export function CompositeUnitsColumn(props: ICompositeUnitProps): FunctionComponentElement<PropsWithChildren<{
167
343
  width: number;
168
- unitComponent?: React.FC<any>;
169
- unitComponentProps?: any;
344
+ showLabels?: boolean;
170
345
  clipToFrame?: boolean;
171
- }>>;
172
- export function CompositeUnitComponent({ division, nColumns, ...rest }: {
346
+ }
347
+ export function CompositeUnitsColumn(props: CompositeUnitProps): FunctionComponentElement<LithologyColumnProps>;
348
+ export function AnnotatedUnitsColumn(props: ICompositeUnitProps): any;
349
+ export function SectionLabelsColumn(props: ICompositeUnitProps): DOMElement<DOMAttributes<Element>, Element>;
350
+ type CompositeScaleOpts = {
351
+ clamped?: boolean;
352
+ };
353
+ export interface CompositeColumnScale {
354
+ (val: number): number;
355
+ copy(): CompositeColumnScale;
356
+ domain(): number[];
357
+ }
358
+ export function compositeScale(sections: any, opts?: CompositeScaleOpts): CompositeColumnScale;
359
+ export function UnitsColumn({ width }: {
360
+ width?: number;
361
+ }): FunctionComponentElement<LithologyColumnProps>;
362
+ export function SimpleUnitsColumn(props: ICompositeUnitProps): ReactElement<any, string | JSXElementConstructor<any>>;
363
+ export function UnitComponent({ division, nColumns, ...rest }: {
173
364
  [x: string]: any;
174
365
  division: any;
175
366
  nColumns?: number;
@@ -177,13 +368,42 @@ export function CompositeUnitComponent({ division, nColumns, ...rest }: {
177
368
  [x: string]: any;
178
369
  division: any;
179
370
  nameForDivision?: (div: any) => any;
180
- axisType: any;
181
371
  }>;
182
- export const UnitsColumn: ({ width }: {
183
- width?: number;
184
- }) => FunctionComponentElement<LithologyColumnProps>;
185
- export const SimpleUnitsColumn: (props: ICompositeUnitProps) => ReactElement<any, string | JSXElementConstructor<any>>;
186
- export function AgeAxis(props: any): DOMElement<DOMAttributes<Element>, Element>;
372
+ export function ColoredUnitComponent(props: any): FunctionComponentElement<{
373
+ [x: string]: any;
374
+ division: any;
375
+ nColumns?: number;
376
+ }>;
377
+ enum LithologyTagFeature {
378
+ Proportion = "proportion",
379
+ Attributes = "attributes"
380
+ }
381
+ type LatLng = {
382
+ lng: number;
383
+ lat: number;
384
+ };
385
+ type TargetPosition = LatLng & {
386
+ zoom: number;
387
+ };
388
+ type CameraPosition = LatLng & {
389
+ bearing?: number;
390
+ pitch?: number;
391
+ altitude: number;
392
+ };
393
+ type MapPosition = {
394
+ camera: CameraPosition;
395
+ target?: TargetPosition;
396
+ };
397
+ export function VerticalAxisLabel(props: any): ReactElement<{
398
+ className: any;
399
+ }, string | JSXElementConstructor<any>>;
400
+ export function CompositeAgeAxis(): FunctionComponentElement<CompositeStratigraphicScaleInfo>;
401
+ export interface CompositeStratigraphicScaleInfo {
402
+ axisType: ColumnAxisType;
403
+ totalHeight: number;
404
+ packages: PackageScaleLayoutData[];
405
+ }
406
+ export function CompositeAgeAxisCore(props: CompositeStratigraphicScaleInfo): ReactElement<any, string | JSXElementConstructor<any>>;
187
407
  export const MeasurementDataContext: Context<any>;
188
408
  export function MeasurementDataProvider(props: any): FunctionComponentElement<ProviderProps<any>>;
189
409
  export const useMeasurementData: () => any;
@@ -211,23 +431,126 @@ export function IsotopesDataset(props: any): FunctionComponentElement<DataAreaPr
211
431
  export function IsotopesColumn(props: IsotopeColumnProps & {
212
432
  children?: React.ReactNode;
213
433
  } & AxisProps<any>): ComponentElement<_CrossAxisLayoutProviderProps1, CrossAxisLayoutProvider>;
214
- export function MacrostratColumnProvider(props: any): FunctionComponentElement<ColumnProviderProps<_ColumnDivision1>>;
215
- type APIProviderProps = {
216
- children: ReactNode;
217
- useDev?: boolean;
218
- baseURL?: string;
434
+ type MapboxCoreOptions = Omit<mapboxgl.MapboxOptions, "container">;
435
+ interface MapViewProps extends MapboxCoreOptions {
436
+ showLineSymbols?: boolean;
437
+ children?: React.ReactNode;
438
+ mapboxToken?: string;
439
+ accessToken?: string;
440
+ terrainSourceID?: string;
441
+ enableTerrain?: boolean;
442
+ infoMarkerPosition?: mapboxgl.LngLatLike;
443
+ mapPosition?: MapPosition;
444
+ initializeMap?: (container: HTMLElement, args: MapboxOptionsExt) => mapboxgl.Map;
445
+ onMapLoaded?: (map: mapboxgl.Map) => void;
446
+ onStyleLoaded?: (map: mapboxgl.Map) => void;
447
+ onMapMoved?: (mapPosition: MapPosition, map: mapboxgl.Map) => void;
448
+ /** This map sets its own viewport, rather than being positioned by a parent.
449
+ * This is a hack to ensure that the map can overflow its "safe area" when false */
450
+ standalone?: boolean;
451
+ /** Overlay styles to apply to the map: a list of mapbox style objects or fragments to
452
+ * overlay on top of the main map style at runtime */
453
+ overlayStyles?: Partial<mapboxgl.Style>[];
454
+ /** A function to transform the map style before it is loaded */
455
+ transformStyle?: (style: mapboxgl.Style) => mapboxgl.Style;
456
+ }
457
+ interface MapboxOptionsExt extends MapboxCoreOptions {
458
+ mapPosition?: MapPosition;
459
+ }
460
+ export interface InsetMapProps extends Omit<MapViewProps, "style"> {
461
+ controls?: ReactNode;
462
+ className?: string;
463
+ children?: ReactNode;
464
+ style?: CSSProperties;
465
+ mapStyle?: mapboxgl.Style | string;
466
+ showLabels?: boolean;
467
+ showAdmin?: boolean;
468
+ showRoads?: boolean;
469
+ }
470
+ export function InsetMap({ controls, className, children, style, mapStyle, accessToken, showLabels, showAdmin, showRoads, ...rest }: InsetMapProps): ReactElement<{
471
+ className: string;
472
+ style: CSSProperties;
473
+ }, string | JSXElementConstructor<any>>;
474
+ export function buildColumnsStyle(color: string): {
475
+ sources: {
476
+ columns: {
477
+ type: string;
478
+ data: FeatureCollection<Geometry, {
479
+ [name: string]: any;
480
+ }>;
481
+ };
482
+ };
483
+ layers: ({
484
+ id: string;
485
+ type: string;
486
+ source: string;
487
+ paint: {
488
+ "fill-color": string;
489
+ "fill-opacity": (string | number | (string | boolean | string[])[])[];
490
+ "line-color"?: undefined;
491
+ "line-width"?: undefined;
492
+ "line-opacity"?: undefined;
493
+ "circle-radius"?: undefined;
494
+ "circle-color"?: undefined;
495
+ "circle-opacity"?: undefined;
496
+ };
497
+ filter?: undefined;
498
+ } | {
499
+ id: string;
500
+ type: string;
501
+ source: string;
502
+ paint: {
503
+ "line-color": string;
504
+ "line-width": number;
505
+ "line-opacity": number;
506
+ "fill-color"?: undefined;
507
+ "fill-opacity"?: undefined;
508
+ "circle-radius"?: undefined;
509
+ "circle-color"?: undefined;
510
+ "circle-opacity"?: undefined;
511
+ };
512
+ filter?: undefined;
513
+ } | {
514
+ id: string;
515
+ type: string;
516
+ source: string;
517
+ paint: {
518
+ "circle-radius": number;
519
+ "circle-color": string;
520
+ "circle-opacity": (string | number | (string | boolean | string[])[])[];
521
+ "fill-color"?: undefined;
522
+ "fill-opacity"?: undefined;
523
+ "line-color"?: undefined;
524
+ "line-width"?: undefined;
525
+ "line-opacity"?: undefined;
526
+ };
527
+ filter: string[];
528
+ })[];
219
529
  };
220
- export function MacrostratAPIProvider({ children, useDev, baseURL, }: APIProviderProps): FunctionComponentElement<Partial<APIConfig> & AxiosRequestConfig<any> & Partial<AxiosRequestConfig<any>> & {
221
- config?: Partial<APIConfigOptions>;
222
- } & {
223
- context?: Context<{
224
- baseURL: string;
225
- axiosInstance: AxiosInstance;
226
- } & {
227
- config: APIConfig;
228
- }>;
229
- children?: React.ReactChild;
230
- }>;
530
+ interface NavigationProviderProps {
531
+ projectID?: number;
532
+ inProcess?: boolean;
533
+ selectedColumn?: number | null;
534
+ hoveredColumn?: number | null;
535
+ columns?: ColumnGeoJSONRecordWithID[] | null;
536
+ children: ReactNode;
537
+ onSelectColumn?: (col_id: number | null, column: any) => void;
538
+ onHoverColumn?: (col_id: number | null, column: any) => void;
539
+ }
540
+ export interface ColumnNavigationMapProps extends InsetMapProps {
541
+ padding?: number;
542
+ children?: ReactNode;
543
+ accessToken?: string;
544
+ selectedColumn?: number;
545
+ hoveredColumn?: number;
546
+ onSelectColumn?: (colID: number | null) => void;
547
+ onHoverColumn?: (colID: number | null) => void;
548
+ showTriangulation?: boolean;
549
+ columnColor?: string;
550
+ triangulationColor?: string;
551
+ keyboardNavigation?: boolean;
552
+ }
553
+ export function ColumnNavigationMap(props: ColumnNavigationMapProps & NavigationProviderProps): FunctionComponentElement<NavigationProviderProps>;
231
554
  export function MeasurementsLayer(props: any): FunctionComponentElement<{
232
555
  [k: string]: any;
233
556
  geometry?: object;
@@ -240,7 +563,6 @@ type _ColumnProps1 = {
240
563
  col_id: number;
241
564
  };
242
565
  type ColumnFeature = ExtendedFeature<Polygon, _ColumnProps1>;
243
- export function processTopoJSON(res: any): any;
244
566
  export function ColumnFeatures(props: any): FunctionComponentElement<{
245
567
  [k: string]: any;
246
568
  geometry?: object;
@@ -263,12 +585,6 @@ interface KeyboardNavProps extends ColumnNavProps {
263
585
  showLayers: boolean;
264
586
  }
265
587
  export function ColumnKeyboardNavigation(props: KeyboardNavProps): ReactElement<any, string | JSXElementConstructor<any>>;
266
- export function useColumnData({ apiRoute, status_code, project_id, format, }: {
267
- apiRoute?: string;
268
- status_code: any;
269
- project_id: any;
270
- format?: string;
271
- }): unknown;
272
588
  interface ColumnExtraInfo {
273
589
  apiRoute?: string;
274
590
  color?: string;
@@ -291,83 +607,434 @@ export function ResizableMapFrame(props: any): ReactElement<{
291
607
  style: any;
292
608
  className: any;
293
609
  }, string | JSXElementConstructor<any>>;
294
- export const ColumnNavigatorMap: (props: any) => FunctionComponentElement<any>;
295
- export function CarbonIsotopesColumn(columnArgs: any): FunctionComponentElement<{
296
- children: ReactNode;
297
- useDev?: boolean;
298
- baseURL?: string;
299
- }>;
300
- export function CarbonIsotopesApp(): FunctionComponentElement<{
610
+ export type ColumnNavigationSVGMapProps = any;
611
+ export function ColumnNavigationSVGMap(props: any): FunctionComponentElement<any>;
612
+ export interface CorrelationMapInput {
613
+ columns: ColumnGeoJSONRecord[];
614
+ focusedLine: LineString | null;
615
+ }
616
+ export interface CorrelationMapStore extends CorrelationMapInput {
617
+ onClickMap: (event: mapboxgl.MapMouseEvent, point: Point) => void;
618
+ }
619
+ export interface CorrelationProviderProps extends CorrelationMapInput {
620
+ projectID?: number;
621
+ inProcess?: boolean;
622
+ columns: ColumnGeoJSONRecord[] | null;
301
623
  children: ReactNode;
302
- useDev?: boolean;
303
- baseURL?: string;
624
+ onSelectColumns?: (columns: FocusedColumnGeoJSONRecord[], line: LineString | null) => void;
625
+ }
626
+ type ComputedStore = {
627
+ focusedColumns: FocusedColumnGeoJSONRecord[];
628
+ };
629
+ export function ColumnCorrelationProvider({ children, columns, projectID, inProcess, focusedLine, onSelectColumns, }: CorrelationProviderProps): FunctionComponentElement<ProviderProps<StoreApi<CorrelationMapStore>>>;
630
+ export function useCorrelationMapStore(selector: (state: CorrelationMapStore & ComputedStore) => any): any;
631
+ interface FocusedColumnGeoJSONRecord extends ColumnGeoJSONRecord {
632
+ properties: {
633
+ centroid: Point;
634
+ nearestPointOnLine: Point;
635
+ distanceAlongLine: number;
636
+ } & ColumnGeoJSONRecord["properties"];
637
+ }
638
+ export interface CorrelationMapProps extends InsetMapProps {
639
+ padding?: number;
640
+ children?: ReactNode;
641
+ accessToken?: string;
642
+ columnColor?: string;
643
+ }
644
+ export function ColumnCorrelationMap(props: CorrelationMapProps): DetailedReactHTMLElement<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
645
+ export function CarbonIsotopesColumn(columnArgs: any): FunctionComponentElement<_MacrostratDataProviderProps1>;
646
+ export function CarbonIsotopesApp(): FunctionComponentElement<_MacrostratDataProviderProps1>;
647
+ export interface PrepareColumnOptions extends ColumnScaleOptions {
648
+ axisType: ColumnAxisType;
649
+ t_age?: number;
650
+ b_age?: number;
651
+ mergeSections?: MergeSectionsMode;
652
+ collapseSmallUnconformities?: boolean | number;
653
+ }
654
+ export enum MergeSectionsMode {
655
+ ALL = "all",
656
+ OVERLAPPING = "overlapping"
657
+ }
658
+ export interface PreparedColumnData extends CompositeColumnData {
659
+ sections: PackageLayoutData[];
660
+ units: ExtUnit[];
661
+ }
662
+ export function usePreparedColumnUnits(data: UnitLong[], options: PrepareColumnOptions): PreparedColumnData;
663
+ export function prepareColumnUnits(units: UnitLong[], options: PrepareColumnOptions): PreparedColumnData;
664
+ export function UnitDetailsPanel({ unit, onClose, className, features, lithologyFeatures, actions, selectUnit, columnUnits, }: {
665
+ unit: any;
666
+ onClose?: any;
667
+ showLithologyProportions?: boolean;
668
+ className?: string;
669
+ actions?: ReactNode;
670
+ features?: Set<UnitDetailsFeature>;
671
+ lithologyFeatures?: Set<LithologyTagFeature>;
672
+ columnUnits?: UnitLong[];
673
+ selectUnit?: (unitID: number) => void;
674
+ }): ReactElement<{
675
+ className: string;
676
+ }, string | JSXElementConstructor<any>>;
677
+ export function LegendPanelHeader({ title, id, onClose, actions, hiddenActions, }: {
678
+ title?: string | null;
679
+ id?: number | null;
680
+ onClose?: () => void;
681
+ actions?: ReactNode | null;
682
+ hiddenActions?: ReactNode | null;
683
+ }): DOMElement<DOMAttributes<Element>, Element>;
684
+ export enum UnitDetailsFeature {
685
+ AdjacentUnits = "adjacent-units",
686
+ Color = "color",
687
+ OutcropType = "outcrop-type",
688
+ JSONToggle = "json-toggle",
689
+ DepthRange = "depth-range"
690
+ }
691
+ export function Duration({ value, maximumFractionDigits, minimumFractionDigits, }: {
692
+ value: any;
693
+ maximumFractionDigits?: number;
694
+ minimumFractionDigits?: number;
695
+ }): FunctionComponentElement<{
696
+ value?: any;
697
+ unit?: string;
698
+ children?: any;
304
699
  }>;
700
+ export function UnitDetailsPopover({ style, children, viewportPadding, }: {
701
+ style: object;
702
+ viewportPadding?: number;
703
+ children: React.ReactNode;
704
+ }): ReactElement<{
705
+ style: object;
706
+ }, string | JSXElementConstructor<any>>;
707
+ export function UnitSelectionPopover(): DOMElement<DOMAttributes<Element>, Element>;
305
708
  declare namespace AgeAxis {
306
709
  var defaultProps: {
307
710
  width: number;
308
711
  margin: number;
309
712
  };
310
713
  }
311
- interface SectionInfo {
312
- section_id: number | number[];
313
- t_age: number;
314
- b_age: number;
315
- units: IUnit[];
316
- }
317
- interface IColumnProps {
318
- data: IUnit[];
319
- pixelScale?: number;
320
- range?: [number, number];
321
- unitComponent?: React.FunctionComponent<any>;
714
+ interface SectionSharedProps {
715
+ unitComponent?: FunctionComponent<any>;
322
716
  unitComponentProps?: any;
323
717
  showLabels?: boolean;
324
718
  width?: number;
325
719
  columnWidth?: number;
326
- targetUnitHeight?: number;
327
720
  children?: ReactNode;
328
721
  showLabelColumn?: boolean;
329
- }
330
- interface ExtUnit extends UnitLong {
331
- bottomOverlap: boolean;
332
- overlappingUnits: number[];
333
- column?: number;
334
- }
335
- export function extendDivision(unit: UnitLong, i: number, divisions: UnitLong[]): ExtUnit;
336
- export function preprocessUnits(units: UnitLong[]): ExtUnit[];
337
- export function groupUnitsIntoSections(units: IUnit[]): SectionInfo[];
338
- export function _mergeOverlappingSections(sections: SectionInfo[]): SectionInfo[];
339
- export function ensureArray<T>(x: T | T[]): T[];
340
- export function UnitDetailsPanel({ unit, onClose, }: {
341
- unit: any;
342
- onClose?: any;
343
- }): DOMElement<DOMAttributes<Element>, Element>;
344
- export function LegendPanelHeader({ title, id, onClose, actions }: {
345
- title: any;
346
- id: any;
347
- onClose: any;
348
- actions?: any;
349
- }): DOMElement<DOMAttributes<Element>, Element>;
350
- export function UnitComponent({ division, nColumns, ...rest }: {
351
- [x: string]: any;
352
- division: any;
353
- nColumns?: number;
354
- }): FunctionComponentElement<{
355
- [x: string]: any;
356
- division: any;
357
- nameForDivision?: (div: any) => any;
358
- axisType: any;
359
- }>;
360
- export interface ColumnProps extends IColumnProps {
722
+ axisType?: ColumnAxisType;
723
+ className?: string;
724
+ clipUnits?: boolean;
725
+ maxInternalColumns?: number;
726
+ verticalSpacing?: number;
361
727
  unconformityLabels?: boolean;
728
+ }
729
+ interface BaseColumnProps extends SectionSharedProps {
362
730
  className?: string;
363
- mergeOverlappingSections?: boolean;
364
731
  showLabelColumn?: boolean;
365
- columnRef?: RefObject<HTMLElement>;
366
732
  keyboardNavigation?: boolean;
367
- showUnitPopover?: boolean;
733
+ showLabels?: boolean;
734
+ maxInternalColumns?: number;
735
+ showTimescale?: boolean;
736
+ timescaleLevels?: number | [number, number];
737
+ }
738
+ export interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {
739
+ units: UnitLong[];
368
740
  t_age?: number;
369
741
  b_age?: number;
742
+ mergeSections?: MergeSectionsMode;
743
+ showUnitPopover?: boolean;
744
+ selectedUnit?: number | null;
745
+ onUnitSelected?: (unitID: number | null, unit: any) => void;
746
+ unconformityHeight?: number;
747
+ }
748
+ export function Column(props: ColumnProps): DOMElement<DOMAttributes<Element>, Element> | FunctionComponentElement<_MacrostratColumnDataContext1 & {
749
+ children: ReactNode;
750
+ }>;
751
+ export interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {
752
+ className?: string;
753
+ }
754
+ export function ColumnContainer(props: ColumnContainerProps): DOMElement<{
755
+ defaultChecked?: boolean | undefined;
756
+ defaultValue?: string | number | readonly string[] | undefined;
757
+ suppressContentEditableWarning?: boolean | undefined;
758
+ suppressHydrationWarning?: boolean | undefined;
759
+ accessKey?: string | undefined;
760
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
761
+ autoFocus?: boolean | undefined;
762
+ contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
763
+ contextMenu?: string | undefined;
764
+ dir?: string | undefined;
765
+ draggable?: (boolean | "true" | "false") | undefined;
766
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
767
+ hidden?: boolean | undefined;
768
+ id?: string | undefined;
769
+ lang?: string | undefined;
770
+ nonce?: string | undefined;
771
+ slot?: string | undefined;
772
+ spellCheck?: (boolean | "true" | "false") | undefined;
773
+ style?: CSSProperties | undefined;
774
+ tabIndex?: number | undefined;
775
+ title?: string | undefined;
776
+ translate?: "yes" | "no" | undefined;
777
+ radioGroup?: string | undefined;
778
+ role?: AriaRole | undefined;
779
+ about?: string | undefined;
780
+ content?: string | undefined;
781
+ datatype?: string | undefined;
782
+ inlist?: any;
783
+ prefix?: string | undefined;
784
+ property?: string | undefined;
785
+ rel?: string | undefined;
786
+ resource?: string | undefined;
787
+ rev?: string | undefined;
788
+ typeof?: string | undefined;
789
+ vocab?: string | undefined;
790
+ autoCorrect?: string | undefined;
791
+ autoSave?: string | undefined;
792
+ color?: string | undefined;
793
+ itemProp?: string | undefined;
794
+ itemScope?: boolean | undefined;
795
+ itemType?: string | undefined;
796
+ itemID?: string | undefined;
797
+ itemRef?: string | undefined;
798
+ results?: number | undefined;
799
+ security?: string | undefined;
800
+ unselectable?: "on" | "off" | undefined;
801
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
802
+ is?: string | undefined;
803
+ "aria-activedescendant"?: string | undefined;
804
+ "aria-atomic"?: (boolean | "true" | "false") | undefined;
805
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
806
+ "aria-braillelabel"?: string | undefined;
807
+ "aria-brailleroledescription"?: string | undefined;
808
+ "aria-busy"?: (boolean | "true" | "false") | undefined;
809
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
810
+ "aria-colcount"?: number | undefined;
811
+ "aria-colindex"?: number | undefined;
812
+ "aria-colindextext"?: string | undefined;
813
+ "aria-colspan"?: number | undefined;
814
+ "aria-controls"?: string | undefined;
815
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
816
+ "aria-describedby"?: string | undefined;
817
+ "aria-description"?: string | undefined;
818
+ "aria-details"?: string | undefined;
819
+ "aria-disabled"?: (boolean | "true" | "false") | undefined;
820
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
821
+ "aria-errormessage"?: string | undefined;
822
+ "aria-expanded"?: (boolean | "true" | "false") | undefined;
823
+ "aria-flowto"?: string | undefined;
824
+ "aria-grabbed"?: (boolean | "true" | "false") | undefined;
825
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
826
+ "aria-hidden"?: (boolean | "true" | "false") | undefined;
827
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
828
+ "aria-keyshortcuts"?: string | undefined;
829
+ "aria-label"?: string | undefined;
830
+ "aria-labelledby"?: string | undefined;
831
+ "aria-level"?: number | undefined;
832
+ "aria-live"?: "off" | "assertive" | "polite" | undefined;
833
+ "aria-modal"?: (boolean | "true" | "false") | undefined;
834
+ "aria-multiline"?: (boolean | "true" | "false") | undefined;
835
+ "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
836
+ "aria-orientation"?: "horizontal" | "vertical" | undefined;
837
+ "aria-owns"?: string | undefined;
838
+ "aria-placeholder"?: string | undefined;
839
+ "aria-posinset"?: number | undefined;
840
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
841
+ "aria-readonly"?: (boolean | "true" | "false") | undefined;
842
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
843
+ "aria-required"?: (boolean | "true" | "false") | undefined;
844
+ "aria-roledescription"?: string | undefined;
845
+ "aria-rowcount"?: number | undefined;
846
+ "aria-rowindex"?: number | undefined;
847
+ "aria-rowindextext"?: string | undefined;
848
+ "aria-rowspan"?: number | undefined;
849
+ "aria-selected"?: (boolean | "true" | "false") | undefined;
850
+ "aria-setsize"?: number | undefined;
851
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
852
+ "aria-valuemax"?: number | undefined;
853
+ "aria-valuemin"?: number | undefined;
854
+ "aria-valuenow"?: number | undefined;
855
+ "aria-valuetext"?: string | undefined;
856
+ children?: ReactNode | undefined;
857
+ dangerouslySetInnerHTML?: {
858
+ __html: string | TrustedHTML;
859
+ } | undefined;
860
+ onCopy?: ClipboardEventHandler<HTMLDivElement>;
861
+ onCopyCapture?: ClipboardEventHandler<HTMLDivElement>;
862
+ onCut?: ClipboardEventHandler<HTMLDivElement>;
863
+ onCutCapture?: ClipboardEventHandler<HTMLDivElement>;
864
+ onPaste?: ClipboardEventHandler<HTMLDivElement>;
865
+ onPasteCapture?: ClipboardEventHandler<HTMLDivElement>;
866
+ onCompositionEnd?: CompositionEventHandler<HTMLDivElement>;
867
+ onCompositionEndCapture?: CompositionEventHandler<HTMLDivElement>;
868
+ onCompositionStart?: CompositionEventHandler<HTMLDivElement>;
869
+ onCompositionStartCapture?: CompositionEventHandler<HTMLDivElement>;
870
+ onCompositionUpdate?: CompositionEventHandler<HTMLDivElement>;
871
+ onCompositionUpdateCapture?: CompositionEventHandler<HTMLDivElement>;
872
+ onFocus?: FocusEventHandler<HTMLDivElement>;
873
+ onFocusCapture?: FocusEventHandler<HTMLDivElement>;
874
+ onBlur?: FocusEventHandler<HTMLDivElement>;
875
+ onBlurCapture?: FocusEventHandler<HTMLDivElement>;
876
+ onChange?: FormEventHandler<HTMLDivElement>;
877
+ onChangeCapture?: FormEventHandler<HTMLDivElement>;
878
+ onBeforeInput?: FormEventHandler<HTMLDivElement>;
879
+ onBeforeInputCapture?: FormEventHandler<HTMLDivElement>;
880
+ onInput?: FormEventHandler<HTMLDivElement>;
881
+ onInputCapture?: FormEventHandler<HTMLDivElement>;
882
+ onReset?: FormEventHandler<HTMLDivElement>;
883
+ onResetCapture?: FormEventHandler<HTMLDivElement>;
884
+ onSubmit?: FormEventHandler<HTMLDivElement>;
885
+ onSubmitCapture?: FormEventHandler<HTMLDivElement>;
886
+ onInvalid?: FormEventHandler<HTMLDivElement>;
887
+ onInvalidCapture?: FormEventHandler<HTMLDivElement>;
888
+ onLoad?: ReactEventHandler<HTMLDivElement>;
889
+ onLoadCapture?: ReactEventHandler<HTMLDivElement>;
890
+ onError?: ReactEventHandler<HTMLDivElement>;
891
+ onErrorCapture?: ReactEventHandler<HTMLDivElement>;
892
+ onKeyDown?: KeyboardEventHandler<HTMLDivElement>;
893
+ onKeyDownCapture?: KeyboardEventHandler<HTMLDivElement>;
894
+ onKeyPress?: KeyboardEventHandler<HTMLDivElement>;
895
+ onKeyPressCapture?: KeyboardEventHandler<HTMLDivElement>;
896
+ onKeyUp?: KeyboardEventHandler<HTMLDivElement>;
897
+ onKeyUpCapture?: KeyboardEventHandler<HTMLDivElement>;
898
+ onAbort?: ReactEventHandler<HTMLDivElement>;
899
+ onAbortCapture?: ReactEventHandler<HTMLDivElement>;
900
+ onCanPlay?: ReactEventHandler<HTMLDivElement>;
901
+ onCanPlayCapture?: ReactEventHandler<HTMLDivElement>;
902
+ onCanPlayThrough?: ReactEventHandler<HTMLDivElement>;
903
+ onCanPlayThroughCapture?: ReactEventHandler<HTMLDivElement>;
904
+ onDurationChange?: ReactEventHandler<HTMLDivElement>;
905
+ onDurationChangeCapture?: ReactEventHandler<HTMLDivElement>;
906
+ onEmptied?: ReactEventHandler<HTMLDivElement>;
907
+ onEmptiedCapture?: ReactEventHandler<HTMLDivElement>;
908
+ onEncrypted?: ReactEventHandler<HTMLDivElement>;
909
+ onEncryptedCapture?: ReactEventHandler<HTMLDivElement>;
910
+ onEnded?: ReactEventHandler<HTMLDivElement>;
911
+ onEndedCapture?: ReactEventHandler<HTMLDivElement>;
912
+ onLoadedData?: ReactEventHandler<HTMLDivElement>;
913
+ onLoadedDataCapture?: ReactEventHandler<HTMLDivElement>;
914
+ onLoadedMetadata?: ReactEventHandler<HTMLDivElement>;
915
+ onLoadedMetadataCapture?: ReactEventHandler<HTMLDivElement>;
916
+ onLoadStart?: ReactEventHandler<HTMLDivElement>;
917
+ onLoadStartCapture?: ReactEventHandler<HTMLDivElement>;
918
+ onPause?: ReactEventHandler<HTMLDivElement>;
919
+ onPauseCapture?: ReactEventHandler<HTMLDivElement>;
920
+ onPlay?: ReactEventHandler<HTMLDivElement>;
921
+ onPlayCapture?: ReactEventHandler<HTMLDivElement>;
922
+ onPlaying?: ReactEventHandler<HTMLDivElement>;
923
+ onPlayingCapture?: ReactEventHandler<HTMLDivElement>;
924
+ onProgress?: ReactEventHandler<HTMLDivElement>;
925
+ onProgressCapture?: ReactEventHandler<HTMLDivElement>;
926
+ onRateChange?: ReactEventHandler<HTMLDivElement>;
927
+ onRateChangeCapture?: ReactEventHandler<HTMLDivElement>;
928
+ onResize?: ReactEventHandler<HTMLDivElement>;
929
+ onResizeCapture?: ReactEventHandler<HTMLDivElement>;
930
+ onSeeked?: ReactEventHandler<HTMLDivElement>;
931
+ onSeekedCapture?: ReactEventHandler<HTMLDivElement>;
932
+ onSeeking?: ReactEventHandler<HTMLDivElement>;
933
+ onSeekingCapture?: ReactEventHandler<HTMLDivElement>;
934
+ onStalled?: ReactEventHandler<HTMLDivElement>;
935
+ onStalledCapture?: ReactEventHandler<HTMLDivElement>;
936
+ onSuspend?: ReactEventHandler<HTMLDivElement>;
937
+ onSuspendCapture?: ReactEventHandler<HTMLDivElement>;
938
+ onTimeUpdate?: ReactEventHandler<HTMLDivElement>;
939
+ onTimeUpdateCapture?: ReactEventHandler<HTMLDivElement>;
940
+ onVolumeChange?: ReactEventHandler<HTMLDivElement>;
941
+ onVolumeChangeCapture?: ReactEventHandler<HTMLDivElement>;
942
+ onWaiting?: ReactEventHandler<HTMLDivElement>;
943
+ onWaitingCapture?: ReactEventHandler<HTMLDivElement>;
944
+ onAuxClick?: MouseEventHandler<HTMLDivElement>;
945
+ onAuxClickCapture?: MouseEventHandler<HTMLDivElement>;
946
+ onClick?: MouseEventHandler<HTMLDivElement>;
947
+ onClickCapture?: MouseEventHandler<HTMLDivElement>;
948
+ onContextMenu?: MouseEventHandler<HTMLDivElement>;
949
+ onContextMenuCapture?: MouseEventHandler<HTMLDivElement>;
950
+ onDoubleClick?: MouseEventHandler<HTMLDivElement>;
951
+ onDoubleClickCapture?: MouseEventHandler<HTMLDivElement>;
952
+ onDrag?: DragEventHandler<HTMLDivElement>;
953
+ onDragCapture?: DragEventHandler<HTMLDivElement>;
954
+ onDragEnd?: DragEventHandler<HTMLDivElement>;
955
+ onDragEndCapture?: DragEventHandler<HTMLDivElement>;
956
+ onDragEnter?: DragEventHandler<HTMLDivElement>;
957
+ onDragEnterCapture?: DragEventHandler<HTMLDivElement>;
958
+ onDragExit?: DragEventHandler<HTMLDivElement>;
959
+ onDragExitCapture?: DragEventHandler<HTMLDivElement>;
960
+ onDragLeave?: DragEventHandler<HTMLDivElement>;
961
+ onDragLeaveCapture?: DragEventHandler<HTMLDivElement>;
962
+ onDragOver?: DragEventHandler<HTMLDivElement>;
963
+ onDragOverCapture?: DragEventHandler<HTMLDivElement>;
964
+ onDragStart?: DragEventHandler<HTMLDivElement>;
965
+ onDragStartCapture?: DragEventHandler<HTMLDivElement>;
966
+ onDrop?: DragEventHandler<HTMLDivElement>;
967
+ onDropCapture?: DragEventHandler<HTMLDivElement>;
968
+ onMouseDown?: MouseEventHandler<HTMLDivElement>;
969
+ onMouseDownCapture?: MouseEventHandler<HTMLDivElement>;
970
+ onMouseEnter?: MouseEventHandler<HTMLDivElement>;
971
+ onMouseLeave?: MouseEventHandler<HTMLDivElement>;
972
+ onMouseMove?: MouseEventHandler<HTMLDivElement>;
973
+ onMouseMoveCapture?: MouseEventHandler<HTMLDivElement>;
974
+ onMouseOut?: MouseEventHandler<HTMLDivElement>;
975
+ onMouseOutCapture?: MouseEventHandler<HTMLDivElement>;
976
+ onMouseOver?: MouseEventHandler<HTMLDivElement>;
977
+ onMouseOverCapture?: MouseEventHandler<HTMLDivElement>;
978
+ onMouseUp?: MouseEventHandler<HTMLDivElement>;
979
+ onMouseUpCapture?: MouseEventHandler<HTMLDivElement>;
980
+ onSelect?: ReactEventHandler<HTMLDivElement>;
981
+ onSelectCapture?: ReactEventHandler<HTMLDivElement>;
982
+ onTouchCancel?: TouchEventHandler<HTMLDivElement>;
983
+ onTouchCancelCapture?: TouchEventHandler<HTMLDivElement>;
984
+ onTouchEnd?: TouchEventHandler<HTMLDivElement>;
985
+ onTouchEndCapture?: TouchEventHandler<HTMLDivElement>;
986
+ onTouchMove?: TouchEventHandler<HTMLDivElement>;
987
+ onTouchMoveCapture?: TouchEventHandler<HTMLDivElement>;
988
+ onTouchStart?: TouchEventHandler<HTMLDivElement>;
989
+ onTouchStartCapture?: TouchEventHandler<HTMLDivElement>;
990
+ onPointerDown?: PointerEventHandler<HTMLDivElement>;
991
+ onPointerDownCapture?: PointerEventHandler<HTMLDivElement>;
992
+ onPointerMove?: PointerEventHandler<HTMLDivElement>;
993
+ onPointerMoveCapture?: PointerEventHandler<HTMLDivElement>;
994
+ onPointerUp?: PointerEventHandler<HTMLDivElement>;
995
+ onPointerUpCapture?: PointerEventHandler<HTMLDivElement>;
996
+ onPointerCancel?: PointerEventHandler<HTMLDivElement>;
997
+ onPointerCancelCapture?: PointerEventHandler<HTMLDivElement>;
998
+ onPointerEnter?: PointerEventHandler<HTMLDivElement>;
999
+ onPointerLeave?: PointerEventHandler<HTMLDivElement>;
1000
+ onPointerOver?: PointerEventHandler<HTMLDivElement>;
1001
+ onPointerOverCapture?: PointerEventHandler<HTMLDivElement>;
1002
+ onPointerOut?: PointerEventHandler<HTMLDivElement>;
1003
+ onPointerOutCapture?: PointerEventHandler<HTMLDivElement>;
1004
+ onGotPointerCapture?: PointerEventHandler<HTMLDivElement>;
1005
+ onGotPointerCaptureCapture?: PointerEventHandler<HTMLDivElement>;
1006
+ onLostPointerCapture?: PointerEventHandler<HTMLDivElement>;
1007
+ onLostPointerCaptureCapture?: PointerEventHandler<HTMLDivElement>;
1008
+ onScroll?: UIEventHandler<HTMLDivElement>;
1009
+ onScrollCapture?: UIEventHandler<HTMLDivElement>;
1010
+ onWheel?: WheelEventHandler<HTMLDivElement>;
1011
+ onWheelCapture?: WheelEventHandler<HTMLDivElement>;
1012
+ onAnimationStart?: AnimationEventHandler<HTMLDivElement>;
1013
+ onAnimationStartCapture?: AnimationEventHandler<HTMLDivElement>;
1014
+ onAnimationEnd?: AnimationEventHandler<HTMLDivElement>;
1015
+ onAnimationEndCapture?: AnimationEventHandler<HTMLDivElement>;
1016
+ onAnimationIteration?: AnimationEventHandler<HTMLDivElement>;
1017
+ onAnimationIterationCapture?: AnimationEventHandler<HTMLDivElement>;
1018
+ onTransitionEnd?: TransitionEventHandler<HTMLDivElement>;
1019
+ onTransitionEndCapture?: TransitionEventHandler<HTMLDivElement>;
1020
+ className: string;
1021
+ }, Element>;
1022
+ export function BoundaryAgeModelOverlay(): DOMElement<any, Element>;
1023
+ interface CorrelationChartSettings extends Omit<PrepareColumnOptions, "axisType"> {
1024
+ targetUnitHeight?: number;
1025
+ }
1026
+ export interface CorrelationChartProps extends CorrelationChartSettings {
1027
+ data: ColumnData[];
1028
+ columnWidth?: number;
1029
+ columnSpacing?: number;
1030
+ targetUnitHeight?: number;
1031
+ unconformityLabels?: boolean;
1032
+ selectedUnit?: number | null;
1033
+ showUnitPopover?: boolean;
1034
+ onUnitSelected?: (unitID: number | null, unit: BaseUnit | null) => void;
370
1035
  }
371
- export function Column(props: ColumnProps): FunctionComponentElement<Omit<ColumnProps, "showUnitPopover">> | FunctionComponentElement<Partial<_UnitSelectionProps1<BaseUnit>>>;
1036
+ export function CorrelationChart({ data, columnSpacing, columnWidth, unconformityLabels, showUnitPopover, selectedUnit, onUnitSelected, ...scaleProps }: CorrelationChartProps): FunctionComponentElement<_ColumnContainerProps1>;
1037
+ export function parseLineFromString(section: string): LineString | null;
1038
+ export function stringifyLine(line: LineString | null): string | null;
372
1039
 
373
1040
  //# sourceMappingURL=index.d.ts.map