@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
@@ -0,0 +1,143 @@
1
+ import $eIxPJ$macrostrathyper from "@macrostrat/hyper";
2
+ import {useKeyHandler as $eIxPJ$useKeyHandler} from "@macrostrat/ui-components";
3
+ import {createContext as $eIxPJ$createContext, useContext as $eIxPJ$useContext, useState as $eIxPJ$useState, useEffect as $eIxPJ$useEffect, useRef as $eIxPJ$useRef, useCallback as $eIxPJ$useCallback} from "react";
4
+ import {useStore as $eIxPJ$useStore, createStore as $eIxPJ$createStore} from "zustand";
5
+
6
+
7
+
8
+
9
+
10
+ const $4d5d1c15f39f6a14$var$UnitSelectionContext = (0, $eIxPJ$createContext)(null);
11
+ function $4d5d1c15f39f6a14$export$77a278d5ca56e309() {
12
+ const store = (0, $eIxPJ$useContext)($4d5d1c15f39f6a14$var$UnitSelectionContext);
13
+ if (store == null) return ()=>{};
14
+ return (0, $eIxPJ$useStore)(store, (state)=>state.onUnitSelected);
15
+ }
16
+ function $4d5d1c15f39f6a14$export$b220b1d3591dc9e5(selector) {
17
+ const store = (0, $eIxPJ$useContext)($4d5d1c15f39f6a14$var$UnitSelectionContext);
18
+ if (store == null) throw new Error("useUnitSelectionStore must be used within a UnitSelectionProvider");
19
+ return (0, $eIxPJ$useStore)(store, selector);
20
+ }
21
+ function $4d5d1c15f39f6a14$export$f0dd93f90aa8e5da() {
22
+ return $4d5d1c15f39f6a14$export$b220b1d3591dc9e5((state)=>state.selectedUnitData);
23
+ }
24
+ function $4d5d1c15f39f6a14$export$f19d75b1d4b676a4(props) {
25
+ const [store] = (0, $eIxPJ$useState)(()=>(0, $eIxPJ$createStore)((set)=>({
26
+ selectedUnit: null,
27
+ selectedUnitData: null,
28
+ overlayPosition: null,
29
+ setSelectedUnit (selectedUnit) {
30
+ if (selectedUnit == null) {
31
+ set({
32
+ selectedUnit: null,
33
+ selectedUnitData: null
34
+ });
35
+ return;
36
+ // If it's a number, set the selected unit
37
+ } else if (typeof selectedUnit === "number") set({
38
+ selectedUnit: selectedUnit,
39
+ selectedUnitData: null
40
+ });
41
+ else if ("unit_id" in selectedUnit) set({
42
+ selectedUnit: selectedUnit.unit_id,
43
+ selectedUnitData: selectedUnit
44
+ });
45
+ },
46
+ onUnitSelected: (unit, target, event)=>{
47
+ console.log("onUnitSelected", unit, target, event);
48
+ const el = props.columnRef?.current;
49
+ let overlayPosition = null;
50
+ if (unit != null && el != null && target != null) {
51
+ const rect = el.getBoundingClientRect();
52
+ const targetRect = target.getBoundingClientRect();
53
+ overlayPosition = {
54
+ x: targetRect.left - rect.left,
55
+ y: targetRect.top - rect.top,
56
+ width: targetRect.width,
57
+ height: targetRect.height
58
+ };
59
+ }
60
+ props.onUnitSelected?.(unit?.unit_id, unit);
61
+ return set({
62
+ selectedUnit: unit?.unit_id,
63
+ selectedUnitData: unit,
64
+ overlayPosition: overlayPosition
65
+ });
66
+ }
67
+ })));
68
+ const { units: units, selectedUnit: selectedUnit } = props;
69
+ (0, $eIxPJ$useEffect)(()=>{
70
+ // Synchronize store with provided props
71
+ if (selectedUnit != null) {
72
+ const unitData = units?.find((u)=>u.unit_id === selectedUnit);
73
+ store.setState({
74
+ selectedUnit: selectedUnit,
75
+ selectedUnitData: unitData
76
+ });
77
+ } else store.setState({
78
+ selectedUnit: null,
79
+ selectedUnitData: null
80
+ });
81
+ }, [
82
+ selectedUnit,
83
+ units
84
+ ]);
85
+ return (0, $eIxPJ$macrostrathyper)($4d5d1c15f39f6a14$var$UnitSelectionContext.Provider, {
86
+ value: store
87
+ }, props.children);
88
+ }
89
+ function $4d5d1c15f39f6a14$export$cbbec12b1451fe7d(unit) {
90
+ const ref = (0, $eIxPJ$useRef)();
91
+ const selectedUnit = $4d5d1c15f39f6a14$export$f0dd93f90aa8e5da();
92
+ const onSelectUnit = $4d5d1c15f39f6a14$export$b220b1d3591dc9e5((state)=>state.onUnitSelected);
93
+ const selected = selectedUnit?.unit_id == unit.unit_id;
94
+ const onClick = (0, $eIxPJ$useCallback)((evt)=>{
95
+ onSelectUnit(unit, ref.current, evt);
96
+ evt.stopPropagation();
97
+ }, [
98
+ unit,
99
+ onSelectUnit
100
+ ]);
101
+ (0, $eIxPJ$useEffect)(()=>{
102
+ if (!selected) return;
103
+ // In case we haven't set the position of the unit (if we don't have a target), set the selected unit
104
+ onSelectUnit(unit, ref.current, null);
105
+ // Scroll the unit into view
106
+ ref.current?.scrollIntoView({
107
+ behavior: "smooth",
108
+ block: "center",
109
+ inline: "nearest"
110
+ });
111
+ }, [
112
+ selected,
113
+ onSelectUnit
114
+ ]);
115
+ return [
116
+ ref,
117
+ selected,
118
+ onClick
119
+ ];
120
+ }
121
+ function $4d5d1c15f39f6a14$export$70f5ee19650fc7d1({ units: units }) {
122
+ const selectedUnit = $4d5d1c15f39f6a14$export$f0dd93f90aa8e5da();
123
+ const selectUnit = $4d5d1c15f39f6a14$export$77a278d5ca56e309();
124
+ const ix = units.findIndex((unit)=>unit.unit_id === selectedUnit?.unit_id);
125
+ const keyMap = {
126
+ 38: ix - 1,
127
+ 40: ix + 1
128
+ };
129
+ (0, $eIxPJ$useKeyHandler)((event)=>{
130
+ const nextIx = keyMap[event.keyCode];
131
+ if (nextIx == null || nextIx < 0 || nextIx >= units.length) return;
132
+ selectUnit(units[nextIx], null, null);
133
+ event.stopPropagation();
134
+ }, [
135
+ units,
136
+ ix
137
+ ]);
138
+ return null;
139
+ }
140
+
141
+
142
+ export {$4d5d1c15f39f6a14$export$77a278d5ca56e309 as useUnitSelectionDispatch, $4d5d1c15f39f6a14$export$b220b1d3591dc9e5 as useUnitSelectionStore, $4d5d1c15f39f6a14$export$f0dd93f90aa8e5da as useSelectedUnit, $4d5d1c15f39f6a14$export$f19d75b1d4b676a4 as UnitSelectionProvider, $4d5d1c15f39f6a14$export$cbbec12b1451fe7d as useUnitSelectionTarget, $4d5d1c15f39f6a14$export$70f5ee19650fc7d1 as UnitKeyboardNavigation};
143
+ //# sourceMappingURL=column-views.8e51206e.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/column-views/src/units/selection.ts"],"sourcesContent":["import { BaseUnit } from \"@macrostrat/api-types\";\nimport h from \"@macrostrat/hyper\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport {\n createContext,\n useContext,\n useEffect,\n useState,\n ReactNode,\n RefObject,\n useRef,\n useCallback,\n} from \"react\";\nimport { createStore, StoreApi, useStore } from \"zustand\";\nimport type { RectBounds, IUnit } from \"./types\";\n\ntype UnitSelectDispatch = (\n unit: BaseUnit | null,\n target: HTMLElement | null,\n event: Event | null\n) => void;\n\nconst UnitSelectionContext = createContext<StoreApi<UnitSelectionStore>>(null);\n\nexport function useUnitSelectionDispatch(): UnitSelectDispatch {\n const store = useContext(UnitSelectionContext);\n if (store == null) {\n return () => {};\n }\n return useStore(store, (state) => state.onUnitSelected);\n}\n\nexport function useUnitSelectionStore<T>(\n selector: (state: UnitSelectionStore) => T\n): T {\n const store = useContext(UnitSelectionContext);\n if (store == null) {\n throw new Error(\n \"useUnitSelectionStore must be used within a UnitSelectionProvider\"\n );\n }\n return useStore(store, selector);\n}\n\nexport function useSelectedUnit() {\n return useUnitSelectionStore((state) => state.selectedUnitData);\n}\n\ninterface UnitSelectionStore {\n selectedUnit: number | null;\n selectedUnitData: BaseUnit | null;\n overlayPosition: RectBounds | null;\n onUnitSelected: UnitSelectDispatch;\n setSelectedUnit: (unit: number | null) => void;\n}\n\nexport function UnitSelectionProvider<T extends BaseUnit>(props: {\n children: ReactNode;\n columnRef?: RefObject<HTMLElement>;\n units: T[];\n selectedUnit: number | null;\n onUnitSelected?: (unitID: number | null, unit: T | null) => void;\n}) {\n const [store] = useState(() =>\n createStore<UnitSelectionStore>((set) => ({\n selectedUnit: null,\n selectedUnitData: null,\n overlayPosition: null,\n setSelectedUnit(selectedUnit: number | null | BaseUnit) {\n if (selectedUnit == null) {\n set({ selectedUnit: null, selectedUnitData: null });\n return;\n // If it's a number, set the selected unit\n } else if (typeof selectedUnit === \"number\") {\n set({ selectedUnit, selectedUnitData: null });\n } else if (\"unit_id\" in selectedUnit) {\n set({\n selectedUnit: selectedUnit.unit_id,\n selectedUnitData: selectedUnit,\n });\n }\n },\n onUnitSelected: (unit: T, target: HTMLElement, event: Event) => {\n console.log(\"onUnitSelected\", unit, target, event);\n const el = props.columnRef?.current;\n let overlayPosition = null;\n if (unit != null && el != null && target != null) {\n const rect = el.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n\n overlayPosition = {\n x: targetRect.left - rect.left,\n y: targetRect.top - rect.top,\n width: targetRect.width,\n height: targetRect.height,\n };\n }\n props.onUnitSelected?.(unit?.unit_id, unit);\n\n return set({\n selectedUnit: unit?.unit_id,\n selectedUnitData: unit,\n overlayPosition,\n });\n },\n }))\n );\n\n const { units, selectedUnit } = props;\n\n useEffect(() => {\n // Synchronize store with provided props\n if (selectedUnit != null) {\n const unitData = units?.find((u) => u.unit_id === selectedUnit);\n store.setState({ selectedUnit, selectedUnitData: unitData });\n } else {\n store.setState({ selectedUnit: null, selectedUnitData: null });\n }\n }, [selectedUnit, units]);\n\n return h(UnitSelectionContext.Provider, { value: store }, props.children);\n}\n\nexport function useUnitSelectionTarget(\n unit: IUnit\n): [React.RefObject<HTMLElement>, boolean, (evt: Event) => void] {\n const ref = useRef<HTMLElement>();\n const selectedUnit = useSelectedUnit();\n const onSelectUnit = useUnitSelectionStore((state) => state.onUnitSelected);\n const selected = selectedUnit?.unit_id == unit.unit_id;\n\n const onClick = useCallback(\n (evt: Event) => {\n onSelectUnit(unit, ref.current, evt);\n evt.stopPropagation();\n },\n [unit, onSelectUnit]\n );\n\n useEffect(() => {\n if (!selected) return;\n // In case we haven't set the position of the unit (if we don't have a target), set the selected unit\n onSelectUnit(unit, ref.current, null);\n\n // Scroll the unit into view\n ref.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n inline: \"nearest\",\n });\n }, [selected, onSelectUnit]);\n\n return [ref, selected, onClick];\n}\n\nexport function UnitKeyboardNavigation<T extends BaseUnit>({\n units,\n}: {\n units: T[];\n}) {\n const selectedUnit = useSelectedUnit();\n const selectUnit = useUnitSelectionDispatch();\n\n const ix = units.findIndex((unit) => unit.unit_id === selectedUnit?.unit_id);\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= units.length) return;\n selectUnit(units[nextIx], null, null);\n event.stopPropagation();\n },\n [units, ix]\n );\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.8e51206e.js.map"}
@@ -31,4 +31,4 @@ $2cc548f41b0ff45f$export$7a8632a2674f140b = "map-column_084db9";
31
31
 
32
32
 
33
33
  export {$2cc548f41b0ff45f$exports as default};
34
- //# sourceMappingURL=column.module.7f47d25a.js.map
34
+ //# sourceMappingURL=column-views.94b5cca1.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAPA,4CAA8B;AAC9B,2CAAgC;AAChC,4CAA2B;AAC3B,4CAAmC;AACnC,4CAA6B;AAC7B,4CAA+B;AAC/B,4CAAoC;AACpC,4CAA+B","sources":["packages/column-views/src/carbon-isotopes/column.module.sass"],"sourcesContent":["@use \"sass:color\"\n\n.column-ui\n width: 100vw\n height: 100vh\n overflow-y: scroll\n display: flex\n flex-direction: row\n\n.column-view\n flex-grow: 1\n padding: 1em\n max-height: 100vh\n overflow-y: scroll\n h1\n font-size: 1.2em\n margin-bottom: 0.2em\n padding-left: 35px\n\n// Column\n.column\n margin-bottom: 1em\n display: flex\n flex-direction: row\n .age-axis-label\n writing-mode: vertical-lr\n transform: rotate(180deg)\n font-size: 12px\n text-align: center\n position: sticky\n top: 0\n max-height: 100vh\n\n :global\n .tick text\n text-anchor: middle\n font-weight: 400 !important\n transform: rotate(-90deg) translate(8px,-12px)\n\n rect.unit\n stroke: black\n stroke-width: 1px\n\n g.lithology-column use.frame\n stroke: black\n stroke-width: 1.5px !important\n pointer-events: none\n\n g.isotopes-column\n rect.underlay\n fill: transparent\n\n .col-note-label\n font-size: 10px\n margin-top: 3px\n padding: 2px 2px 2px 3px\n line-height: 9px\n border-left: none !important\n\n g.height-range\n display: none\n\n .note-inner\n border: none\n\n .frame rect\n fill: transparent\n\n\n\n.bp5-dark\n .column :global\n .lithology-column .frame\n stroke: white\n g.inner\n rect.unit\n filter: invert(100%)\n g.lithology-column use.frame\n stroke: white\n .note\n line, path.col-note-link\n stroke: white\n .y.axis .tick line\n stroke: white\n\n.column-nav\n position: sticky\n top: 2.2em\n h3\n color: #444\n margin-bottom: 0.3em\n\n.default-buttons\n width: 100%\n margin: 0 -10px\n\ndiv.map-column\n width: 600px\n height: 100vh\n display: flex\n flex-direction: column\n\n :global\n .map-area\n flex-grow: 1\n\n .map-placeholder\n position: relative\n\n .macrostrat-map\n .graticule\n stroke-dasharray: inherit\n stroke: color.adjust(#AFE6F0, $lightness: -5%)\n .neatline\n stroke-width: 1.5px\n\n .context-map\n position: absolute\n top: 0\n right: 0\n width: 250px\n height: 250px\n cursor: pointer\n z-index: 100\n &.expanded\n cursor: inherit\n .columns path:hover\n stroke: rgba(255,0,0,.4) !important\n\n .close-button\n position: absolute\n top: 1em\n right: 1em\n\n .land\n background-color: rgb(233, 252, 234)\n"],"names":[],"version":3,"file":"column.module.7f47d25a.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAPA,4CAA8B;AAC9B,2CAAgC;AAChC,4CAA2B;AAC3B,4CAAmC;AACnC,4CAA6B;AAC7B,4CAA+B;AAC/B,4CAAoC;AACpC,4CAA+B","sources":["packages/column-views/src/carbon-isotopes/column.module.sass"],"sourcesContent":["@use \"sass:color\"\n\n.column-ui\n width: 100vw\n height: 100vh\n overflow-y: scroll\n display: flex\n flex-direction: row\n\n.column-view\n flex-grow: 1\n padding: 1em\n max-height: 100vh\n overflow-y: scroll\n h1\n font-size: 1.2em\n margin-bottom: 0.2em\n padding-left: 35px\n\n// Column\n.column\n margin-bottom: 1em\n display: flex\n flex-direction: row\n .age-axis-label\n writing-mode: vertical-lr\n transform: rotate(180deg)\n font-size: 12px\n text-align: center\n position: sticky\n top: 0\n max-height: 100vh\n\n :global\n .tick text\n text-anchor: middle\n font-weight: 400 !important\n transform: rotate(-90deg) translate(8px,-12px)\n\n rect.unit\n stroke: black\n stroke-width: 1px\n\n g.lithology-column use.frame\n stroke: black\n stroke-width: 1.5px !important\n pointer-events: none\n\n g.isotopes-column\n rect.underlay\n fill: transparent\n\n .col-note-label\n font-size: 10px\n margin-top: 3px\n padding: 2px 2px 2px 3px\n line-height: 9px\n border-left: none !important\n\n g.height-range\n display: none\n\n .note-inner\n border: none\n\n .frame rect\n fill: transparent\n\n\n\n.bp5-dark\n .column :global\n .lithology-column .frame\n stroke: white\n g.inner\n rect.unit\n filter: invert(100%)\n g.lithology-column use.frame\n stroke: white\n .note\n line, path.col-note-link\n stroke: white\n .y.axis .tick line\n stroke: white\n\n.column-nav\n position: sticky\n top: 2.2em\n h3\n color: #444\n margin-bottom: 0.3em\n\n.default-buttons\n width: 100%\n margin: 0 -10px\n\ndiv.map-column\n width: 600px\n height: 100vh\n display: flex\n flex-direction: column\n\n :global\n .map-area\n flex-grow: 1\n\n .map-placeholder\n position: relative\n\n .macrostrat-map\n .graticule\n stroke-dasharray: inherit\n stroke: color.adjust(#AFE6F0, $lightness: -5%)\n .neatline\n stroke-width: 1.5px\n\n .context-map\n position: absolute\n top: 0\n right: 0\n width: 250px\n height: 250px\n cursor: pointer\n z-index: 100\n &.expanded\n cursor: inherit\n .columns path:hover\n stroke: rgba(255,0,0,.4) !important\n\n .close-button\n position: absolute\n top: 1em\n right: 1em\n\n .land\n background-color: rgb(233, 252, 234)\n"],"names":[],"version":3,"file":"column-views.94b5cca1.js.map"}
@@ -0,0 +1,75 @@
1
+ import {useMacrostratStore as $774a5efa27d1c77b$export$fb98d5bae3a6800, useMacrostratColumns as $774a5efa27d1c77b$export$81eaae0b474404fd} from "./column-views.28ee5f43.js";
2
+ import {create as $g0ikq$create, useStore as $g0ikq$useStore} from "zustand";
3
+ import {createContext as $g0ikq$createContext, useState as $g0ikq$useState, useEffect as $g0ikq$useEffect, useContext as $g0ikq$useContext} from "react";
4
+ import $g0ikq$macrostrathyper from "@macrostrat/hyper";
5
+
6
+
7
+
8
+
9
+
10
+ const $09486427d129f589$var$NavigationStoreContext = (0, $g0ikq$createContext)(null);
11
+ function $09486427d129f589$export$8da3b11f62ebf019({ children: children, columns: columns, selectedColumn: selectedColumn, projectID: projectID, inProcess: inProcess, onSelectColumn: onSelectColumn, onHoverColumn: onHoverColumn }) {
12
+ const getColumns = (0, $774a5efa27d1c77b$export$fb98d5bae3a6800)((s)=>s.getColumns);
13
+ const [store] = (0, $g0ikq$useState)(()=>{
14
+ return (0, $g0ikq$create)((set, get)=>{
15
+ return {
16
+ columns: null,
17
+ selectedColumn: null,
18
+ hoveredColumn: null,
19
+ selectColumn (columnID) {
20
+ set({
21
+ selectedColumn: columnID,
22
+ hoveredColumn: null
23
+ });
24
+ const { columns: columns } = get();
25
+ const column = columns?.find((d)=>d.id == columnID);
26
+ onSelectColumn?.(columnID, column);
27
+ },
28
+ setHoveredColumn (columnID) {
29
+ set({
30
+ hoveredColumn: columnID
31
+ });
32
+ const { columns: columns } = get();
33
+ const column = columns?.find((d)=>d.id == columnID);
34
+ onHoverColumn?.(columnID, column);
35
+ }
36
+ };
37
+ });
38
+ });
39
+ // Set up the store
40
+ /** TODO: unify handling of columns between parts of application */ // useAsyncEffect(async () => {
41
+ // let _columns = columns ?? (await getColumns(projectID, inProcess));
42
+ // store.setState({ columns: _columns, selectedColumn });
43
+ // }, [projectID, inProcess, columns, getColumns]);
44
+ const _columns = columns ?? (0, $774a5efa27d1c77b$export$81eaae0b474404fd)(projectID, inProcess);
45
+ (0, $g0ikq$useEffect)(()=>{
46
+ if (_columns != null) store.setState({
47
+ columns: _columns,
48
+ selectedColumn: selectedColumn
49
+ });
50
+ }, [
51
+ _columns
52
+ ]);
53
+ // Update selected colun if it is changed externally
54
+ // Kind of an awkward way to do this but we need to allow the selector to run
55
+ (0, $g0ikq$useEffect)(()=>{
56
+ console.log("Selecting column", selectedColumn);
57
+ const { selectColumn: selectColumn, selectedColumn: _internalSelectedColumn } = store.getState();
58
+ if (selectedColumn == _internalSelectedColumn) return;
59
+ selectColumn(selectedColumn);
60
+ }, [
61
+ selectedColumn
62
+ ]);
63
+ return (0, $g0ikq$macrostrathyper)($09486427d129f589$var$NavigationStoreContext.Provider, {
64
+ value: store
65
+ }, children);
66
+ }
67
+ function $09486427d129f589$export$642c2b57c47ea41(selector) {
68
+ const storeApi = (0, $g0ikq$useContext)($09486427d129f589$var$NavigationStoreContext);
69
+ if (storeApi == null) throw new Error("Missing ColumnNavigationProvider");
70
+ return (0, $g0ikq$useStore)(storeApi, selector);
71
+ }
72
+
73
+
74
+ export {$09486427d129f589$export$8da3b11f62ebf019 as ColumnNavigationProvider, $09486427d129f589$export$642c2b57c47ea41 as useColumnNavigationStore};
75
+ //# sourceMappingURL=column-views.9804efda.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;AAkCA,MAAM,+CAAyB,CAAA,GAAA,oBAAY,EACzC;AAGK,SAAS,0CAAyB,YACvC,QAAQ,WACR,OAAO,kBACP,cAAc,aACd,SAAS,aACT,SAAS,kBACT,cAAc,iBACd,aAAa,EACW;IACxB,MAAM,aAAa,CAAA,GAAA,wCAAiB,EAAE,CAAC,IAAM,EAAE,UAAU;IAEzD,MAAM,CAAC,MAAM,GAAG,CAAA,GAAA,eAAO,EAAE;QACvB,OAAO,CAAA,GAAA,aAAK,EAAmB,CAAC,KAAK;YACnC,OAAO;gBACL,SAAS;gBACT,gBAAgB;gBAChB,eAAe;gBACf,cAAa,QAAuB;oBAClC,IAAI;wBAAE,gBAAgB;wBAAU,eAAe;oBAAK;oBACpD,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,iBAAiB,UAAU;gBAC7B;gBACA,kBAAiB,QAAuB;oBACtC,IAAI;wBAAE,eAAe;oBAAS;oBAC9B,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,gBAAgB,UAAU;gBAC5B;YACF;QACF;IACF;IAEA,mBAAmB;IACnB,iEAAiE,GACjE,+BAA+B;IAC/B,wEAAwE;IACxE,2DAA2D;IAC3D,mDAAmD;IAEnD,MAAM,WAAW,WAAW,CAAA,GAAA,yCAAmB,EAAE,WAAW;IAC5D,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,YAAY,MACd,MAAM,QAAQ,CAAC;YAAE,SAAS;4BAAU;QAAe;IAEvD,GAAG;QAAC;KAAS;IACb,oDAAoD;IAEpD,6EAA6E;IAC7E,CAAA,GAAA,gBAAQ,EAAE;QACR,QAAQ,GAAG,CAAC,oBAAoB;QAChC,MAAM,gBAAE,YAAY,EAAE,gBAAgB,uBAAuB,EAAE,GAC7D,MAAM,QAAQ;QAChB,IAAI,kBAAkB,yBACpB;QAEF,aAAa;IACf,GAAG;QAAC;KAAe;IAEnB,OAAO,CAAA,GAAA,sBAAA,EAAE,6CAAuB,QAAQ,EAAE;QAAE,OAAO;IAAM,GAAG;AAC9D;AAEO,SAAS,yCACd,QAAyC;IAEzC,MAAM,WAAW,CAAA,GAAA,iBAAS,EAAE;IAC5B,IAAI,YAAY,MACd,MAAM,IAAI,MAAM;IAElB,OAAO,CAAA,GAAA,eAAO,EAAE,UAAU;AAC5B","sources":["packages/column-views/src/maps/column-navigation/mapbox/state.ts"],"sourcesContent":["import { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecordWithID } from \"@macrostrat/api-types\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n useMacrostratColumns,\n useMacrostratStore,\n} from \"../../../data-provider\";\n\nexport interface NavigationStore {\n columns: ColumnGeoJSONRecordWithID[];\n selectedColumn: number | null;\n hoveredColumn: number | null;\n selectColumn: (columnID: number | null) => void;\n setHoveredColumn: (columnID: number | null) => void;\n}\n\nexport interface NavigationProviderProps {\n projectID?: number;\n inProcess?: boolean;\n selectedColumn?: number | null;\n hoveredColumn?: number | null;\n columns?: ColumnGeoJSONRecordWithID[] | null;\n children: ReactNode;\n onSelectColumn?: (col_id: number | null, column: any) => void;\n onHoverColumn?: (col_id: number | null, column: any) => void;\n}\n\nconst NavigationStoreContext = createContext<StoreApi<NavigationStore> | null>(\n null\n);\n\nexport function ColumnNavigationProvider({\n children,\n columns,\n selectedColumn,\n projectID,\n inProcess,\n onSelectColumn,\n onHoverColumn,\n}: NavigationProviderProps) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n\n const [store] = useState(() => {\n return create<NavigationStore>((set, get): NavigationStore => {\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn(columnID: number | null) {\n set({ selectedColumn: columnID, hoveredColumn: null });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn(columnID: number | null) {\n set({ hoveredColumn: columnID });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onHoverColumn?.(columnID, column);\n },\n };\n });\n });\n\n // Set up the store\n /** TODO: unify handling of columns between parts of application */\n // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n\n const _columns = columns ?? useMacrostratColumns(projectID, inProcess);\n useEffect(() => {\n if (_columns != null) {\n store.setState({ columns: _columns, selectedColumn });\n }\n }, [_columns]);\n // Update selected colun if it is changed externally\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n useEffect(() => {\n console.log(\"Selecting column\", selectedColumn);\n const { selectColumn, selectedColumn: _internalSelectedColumn } =\n store.getState();\n if (selectedColumn == _internalSelectedColumn) {\n return;\n }\n selectColumn(selectedColumn);\n }, [selectedColumn]);\n\n return h(NavigationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useColumnNavigationStore(\n selector: (state: NavigationStore) => any\n) {\n const storeApi = useContext(NavigationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing ColumnNavigationProvider\");\n }\n return useStore(storeApi, selector);\n}\n"],"names":[],"version":3,"file":"column-views.9804efda.js.map"}
@@ -0,0 +1,57 @@
1
+ import "./column-views.e40b8bfb.css";
2
+ import $3vk6I$columnviews3465c8adjs from "./column-views.3465c8ad.js";
3
+ import {useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2, useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76} from "./column-views.ea237aa8.js";
4
+ import $3vk6I$macrostrathyper from "@macrostrat/hyper";
5
+ import {useAPIResult as $3vk6I$useAPIResult} from "@macrostrat/ui-components";
6
+
7
+
8
+ function $parcel$interopDefault(a) {
9
+ return a && a.__esModule ? a.default : a;
10
+ }
11
+ /** An in-development overlay for a column's age model.
12
+ *
13
+ * Age model info:
14
+ * {
15
+ * "boundary_id": 8049,
16
+ * "col_id": 432,
17
+ * "section_id": 3104,
18
+ * "interval_id": 268,
19
+ * "interval_name": "Calymmian",
20
+ * "age_bottom": 1600,
21
+ * "age_top": 1400,
22
+ * "rel_position": 0.85,
23
+ * "model_age": 1430,
24
+ * "boundary_status": "absolute",
25
+ * "boundary_type": "",
26
+ * "boundary_position": null,
27
+ * "unit_below": 11541,
28
+ * "unit_above": 0,
29
+ * "ref_id": 217
30
+ * },
31
+ *
32
+ * */
33
+
34
+
35
+
36
+ const $1a65c216af27346a$var$h = (0, $3vk6I$macrostrathyper).styled((0, ($parcel$interopDefault($3vk6I$columnviews3465c8adjs))));
37
+ function $1a65c216af27346a$export$1d1ebe9df97e8db() {
38
+ const col_id = (0, $d5074f164411387e$export$6fb40844db555b2)()?.[0]?.col_id;
39
+ const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
40
+ const ageModel = (0, $3vk6I$useAPIResult)("https://macrostrat.org/api/v2/age_model", {
41
+ col_id: col_id
42
+ }, (res)=>res.success.data);
43
+ if (ageModel == null) return null;
44
+ return $1a65c216af27346a$var$h("div.boundary-age-model", ageModel.map((surface)=>{
45
+ const height = scale(surface.model_age);
46
+ return $1a65c216af27346a$var$h("div.boundary-age-model-surface", {
47
+ key: surface.boundary_id,
48
+ style: {
49
+ top: `${height}px`
50
+ }
51
+ });
52
+ }));
53
+ }
54
+
55
+
56
+ export {$1a65c216af27346a$export$1d1ebe9df97e8db as BoundaryAgeModelOverlay};
57
+ //# sourceMappingURL=column-views.9bdd477a.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;AAMH,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAoBrB,SAAS;IACd,MAAM,SAAS,CAAA,GAAA,wCAAiB,KAAK,CAAC,EAAE,EAAE;IAC1C,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,MAAM,WAAW,CAAA,GAAA,mBAAW,EAC1B,2CACA;gBAAE;IAAO,GACT,CAAC,MAAQ,IAAI,OAAO,CAAC,IAAI;IAG3B,IAAI,YAAY,MACd,OAAO;IAGT,OAAO,wBACL,0BACA,SAAS,GAAG,CAAC,CAAC;QACZ,MAAM,SAAS,MAAM,QAAQ,SAAS;QAEtC,OAAO,wBAAE,kCAAkC;YACzC,KAAK,QAAQ,WAAW;YACxB,OAAO;gBAAE,KAAK,GAAG,OAAO,EAAE,CAAC;YAAC;QAC9B;IACF;AAEJ","sources":["packages/column-views/src/age-model-overlay.ts"],"sourcesContent":["/** An in-development overlay for a column's age model.\n *\n * Age model info:\n * {\n * \"boundary_id\": 8049,\n * \"col_id\": 432,\n * \"section_id\": 3104,\n * \"interval_id\": 268,\n * \"interval_name\": \"Calymmian\",\n * \"age_bottom\": 1600,\n * \"age_top\": 1400,\n * \"rel_position\": 0.85,\n * \"model_age\": 1430,\n * \"boundary_status\": \"absolute\",\n * \"boundary_type\": \"\",\n * \"boundary_position\": null,\n * \"unit_below\": 11541,\n * \"unit_above\": 0,\n * \"ref_id\": 217\n * },\n *\n * */\n\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./age-model-overlay.module.sass\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport { useCompositeScale, useMacrostratUnits } from \"./data-provider\";\nconst h = hyper.styled(styles);\n\ninterface AgeModelSurface {\n boundary_id: number;\n col_id: number;\n section_id: number;\n interval_id: number;\n interval_name: string;\n age_bottom: number;\n age_top: number;\n rel_position: number;\n model_age: number;\n boundary_status: \"absolute\" | \"relative\" | \"modeled\";\n boundary_type: string;\n boundary_position: null | number;\n unit_below: number;\n unit_above: number;\n ref_id: number;\n}\n\nexport function BoundaryAgeModelOverlay() {\n const col_id = useMacrostratUnits()?.[0]?.col_id;\n const scale = useCompositeScale();\n\n const ageModel = useAPIResult(\n \"https://macrostrat.org/api/v2/age_model\",\n { col_id },\n (res) => res.success.data\n );\n\n if (ageModel == null) {\n return null;\n }\n\n return h(\n \"div.boundary-age-model\",\n ageModel.map((surface) => {\n const height = scale(surface.model_age);\n\n return h(\"div.boundary-age-model-surface\", {\n key: surface.boundary_id,\n style: { top: `${height}px` },\n });\n })\n );\n}\n"],"names":[],"version":3,"file":"column-views.9bdd477a.js.map"}
@@ -0,0 +1,98 @@
1
+ import "./column-views.e2b9c23c.css";
2
+ import $lfxOo$columnviewsdff52504js from "./column-views.dff52504.js";
3
+ import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.ea237aa8.js";
4
+ import $lfxOo$macrostrathyper from "@macrostrat/hyper";
5
+ import {ColumnContext as $lfxOo$ColumnContext, ColumnAxis as $lfxOo$ColumnAxis, ColumnAxisType as $lfxOo$ColumnAxisType, SVG as $lfxOo$SVG, AgeAxis as $lfxOo$AgeAxis} from "@macrostrat/column-components";
6
+ import {useContext as $lfxOo$useContext} from "react";
7
+ import {Parenthetical as $lfxOo$Parenthetical} from "@macrostrat/data-components";
8
+
9
+
10
+ function $parcel$interopDefault(a) {
11
+ return a && a.__esModule ? a.default : a;
12
+ }
13
+
14
+
15
+
16
+
17
+
18
+
19
+ const $43794af7643cdf40$var$h = (0, $lfxOo$macrostrathyper).styled((0, ($parcel$interopDefault($lfxOo$columnviewsdff52504js))));
20
+ const $43794af7643cdf40$var$AgeAxisCore = ({ ticks: ticks, tickSpacing: tickSpacing = 40, showDomain: showDomain = false })=>{
21
+ const { pixelHeight: pixelHeight } = (0, $lfxOo$useContext)((0, $lfxOo$ColumnContext));
22
+ // A tick roughly every 40 pixels
23
+ let v = Math.max(Math.round(pixelHeight / tickSpacing), 1);
24
+ return $43794af7643cdf40$var$h("g.axis", {
25
+ transform: "translate(20 0)"
26
+ }, [
27
+ $43794af7643cdf40$var$h((0, $lfxOo$ColumnAxis), {
28
+ ticks: v,
29
+ showDomain: showDomain
30
+ })
31
+ ]);
32
+ };
33
+ function $43794af7643cdf40$export$64204d5cbb3e8227(props) {
34
+ const { label: label = "Age", unit: unit = "Ma", className: className } = props;
35
+ return $43794af7643cdf40$var$h("div.column-axis-label.age-axis-label", {
36
+ className: className
37
+ }, [
38
+ label,
39
+ " ",
40
+ $43794af7643cdf40$var$h.if(unit)((0, $lfxOo$Parenthetical), {
41
+ className: "age-axis-unit"
42
+ }, unit)
43
+ ]);
44
+ }
45
+ function $43794af7643cdf40$export$40b6b0e4520eeb34() {
46
+ const { axisType: axisType, sections: sections, totalHeight: totalHeight } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
47
+ const packages = sections.map((section)=>{
48
+ return {
49
+ key: `section-${section.section_id}`,
50
+ ...section.scaleInfo
51
+ };
52
+ });
53
+ return $43794af7643cdf40$var$h($43794af7643cdf40$export$ac30ca3cf5df959d, {
54
+ axisType: axisType,
55
+ packages: packages,
56
+ totalHeight: totalHeight
57
+ });
58
+ }
59
+ function $43794af7643cdf40$export$ac30ca3cf5df959d(props) {
60
+ const { axisType: axisType, totalHeight: totalHeight, packages: packages } = props;
61
+ if (axisType == (0, $lfxOo$ColumnAxisType).ORDINAL) return null;
62
+ let axisLabel = "Age";
63
+ let axisUnit = "Ma";
64
+ if (axisType == (0, $lfxOo$ColumnAxisType).DEPTH) {
65
+ axisLabel = "Depth";
66
+ axisUnit = "m";
67
+ } else if (axisType == (0, $lfxOo$ColumnAxisType).HEIGHT) {
68
+ axisLabel = "Height";
69
+ axisUnit = "m";
70
+ }
71
+ return $43794af7643cdf40$var$h([
72
+ $43794af7643cdf40$var$h($43794af7643cdf40$export$64204d5cbb3e8227, {
73
+ label: axisLabel,
74
+ unit: axisUnit
75
+ }),
76
+ $43794af7643cdf40$var$h((0, $lfxOo$SVG), {
77
+ className: "age-axis-column",
78
+ style: {
79
+ width: `22px`,
80
+ height: `${totalHeight}px`
81
+ },
82
+ width: 22,
83
+ height: totalHeight
84
+ }, packages.map((group, i)=>{
85
+ const { key: key, scale: scale } = group;
86
+ return $43794af7643cdf40$var$h((0, $lfxOo$AgeAxis), {
87
+ key: key,
88
+ className: "age-axis",
89
+ scale: scale,
90
+ tickSizeOuter: 3
91
+ });
92
+ }))
93
+ ]);
94
+ }
95
+
96
+
97
+ export {$43794af7643cdf40$export$64204d5cbb3e8227 as VerticalAxisLabel, $43794af7643cdf40$export$40b6b0e4520eeb34 as CompositeAgeAxis, $43794af7643cdf40$export$ac30ca3cf5df959d as CompositeAgeAxisCore};
98
+ //# sourceMappingURL=column-views.9ced149e.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;AAeA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAE5B,MAAM,oCAAc,CAAC,SAAE,KAAK,eAAE,cAAc,gBAAI,aAAa,OAAO;IAClE,MAAM,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,oBAAY;IAC/C,iCAAiC;IACjC,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,cAAc,cAAc;IAExD,OAAO,wBAAE,UAAU;QAAE,WAAW;IAAkB,GAAG;QACnD,wBAAE,CAAA,GAAA,iBAAS,GAAG;YACZ,OAAO;wBACP;QACF;KACD;AACH;AAEO,SAAS,0CAAkB,KAAK;IACrC,MAAM,SAAE,QAAQ,aAAO,OAAO,iBAAM,SAAS,EAAE,GAAG;IAClD,OAAO,wBAAE,wCAAwC;mBAAE;IAAU,GAAG;QAC9D;QACA;QACA,wBAAE,EAAE,CAAC,MAAM,CAAA,GAAA,oBAAY,GAAG;YAAE,WAAW;QAAgB,GAAG;KAC3D;AACH;AAEO,SAAS;IACd,MAAM,YAAE,QAAQ,YAAE,QAAQ,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAElE,MAAM,WAAW,SAAS,GAAG,CAAC,CAAC;QAC7B,OAAO;YACL,KAAK,CAAC,QAAQ,EAAE,QAAQ,UAAU,EAAE;YACpC,GAAG,QAAQ,SAAS;QACtB;IACF;IAEA,OAAO,wBAAE,2CAAsB;kBAC7B;kBACA;qBACA;IACF;AACF;AAQO,SAAS,0CAAqB,KAAsC;IACzE,MAAM,YAAE,QAAQ,eAAE,WAAW,YAAE,QAAQ,EAAE,GAAG;IAE5C,IAAI,YAAY,CAAA,GAAA,qBAAa,EAAE,OAAO,EACpC,OAAO;IAGT,IAAI,YAAoB;IACxB,IAAI,WAAW;IACf,IAAI,YAAY,CAAA,GAAA,qBAAa,EAAE,KAAK,EAAE;QACpC,YAAY;QACZ,WAAW;IACb,OAAO,IAAI,YAAY,CAAA,GAAA,qBAAa,EAAE,MAAM,EAAE;QAC5C,YAAY;QACZ,WAAW;IACb;IAEA,OAAO,wBAAE;QACP,wBAAE,2CAAmB;YACnB,OAAO;YACP,MAAM;QACR;QACA,wBACE,CAAA,GAAA,UAAE,GACF;YACE,WAAW;YACX,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC;gBAAE,QAAQ,GAAG,YAAY,EAAE,CAAC;YAAC;YACnD,OAAO;YACP,QAAQ;QACV,GACA,SAAS,GAAG,CAAC,CAAC,OAAO;YACnB,MAAM,OAAE,GAAG,SAAE,KAAK,EAAE,GAAG;YAEvB,OAAO,wBAAE,CAAA,GAAA,cAAM,GAAG;qBAChB;gBACA,WAAW;uBACX;gBACA,eAAe;YACjB;QACF;KAEH;AACH","sources":["packages/column-views/src/age-axis.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n SVG,\n ColumnSVG,\n ColumnAxis,\n ColumnContext,\n ColumnAxisType,\n AgeAxis,\n} from \"@macrostrat/column-components\";\nimport { useContext } from \"react\";\nimport styles from \"./age-axis.module.sass\";\nimport { useMacrostratColumnData } from \"./data-provider\";\nimport { Parenthetical } from \"@macrostrat/data-components\";\nimport { PackageScaleLayoutData } from \"./prepare-units/composite-scale\";\n\nconst h = hyper.styled(styles);\n\nconst AgeAxisCore = ({ ticks, tickSpacing = 40, showDomain = false }) => {\n const { pixelHeight } = useContext(ColumnContext);\n // A tick roughly every 40 pixels\n let v = Math.max(Math.round(pixelHeight / tickSpacing), 1);\n\n return h(\"g.axis\", { transform: \"translate(20 0)\" }, [\n h(ColumnAxis, {\n ticks: v,\n showDomain,\n }),\n ]);\n};\n\nexport function VerticalAxisLabel(props) {\n const { label = \"Age\", unit = \"Ma\", className } = props;\n return h(\"div.column-axis-label.age-axis-label\", { className }, [\n label,\n \" \",\n h.if(unit)(Parenthetical, { className: \"age-axis-unit\" }, unit),\n ]);\n}\n\nexport function CompositeAgeAxis() {\n const { axisType, sections, totalHeight } = useMacrostratColumnData();\n\n const packages = sections.map((section) => {\n return {\n key: `section-${section.section_id}`,\n ...section.scaleInfo,\n };\n });\n\n return h(CompositeAgeAxisCore, {\n axisType,\n packages,\n totalHeight,\n });\n}\n\nexport interface CompositeStratigraphicScaleInfo {\n axisType: ColumnAxisType;\n totalHeight: number;\n packages: PackageScaleLayoutData[];\n}\n\nexport function CompositeAgeAxisCore(props: CompositeStratigraphicScaleInfo) {\n const { axisType, totalHeight, packages } = props;\n\n if (axisType == ColumnAxisType.ORDINAL) {\n return null;\n }\n\n let axisLabel: string = \"Age\";\n let axisUnit = \"Ma\";\n if (axisType == ColumnAxisType.DEPTH) {\n axisLabel = \"Depth\";\n axisUnit = \"m\";\n } else if (axisType == ColumnAxisType.HEIGHT) {\n axisLabel = \"Height\";\n axisUnit = \"m\";\n }\n\n return h([\n h(VerticalAxisLabel, {\n label: axisLabel,\n unit: axisUnit,\n }),\n h(\n SVG,\n {\n className: \"age-axis-column\",\n style: { width: `22px`, height: `${totalHeight}px` },\n width: 22,\n height: totalHeight,\n },\n packages.map((group, i) => {\n const { key, scale } = group;\n\n return h(AgeAxis, {\n key,\n className: \"age-axis\",\n scale,\n tickSizeOuter: 3,\n });\n })\n ),\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.9ced149e.js.map"}
@@ -154,4 +154,4 @@ div.map-column_084db9 .context-map .close-button {
154
154
  div.map-column_084db9 .context-map .land {
155
155
  background-color: #e9fcea;
156
156
  }
157
- /*# sourceMappingURL=column.module.cbb072df.css.map */
157
+ /*# sourceMappingURL=column-views.a7be0a4a.css.map */
@@ -1 +1 @@
1
- {"mappings":"AAEA;;;;;;;;AAOA;;;;;;;AAMI;;;;;;AAMF;;;;;;AAKE;;;;;;;;;;AAWE;;;;;;AAMF;;;;;AAME;;;;;;AAMA;;;;AAIF;;;;;;;;;;;;;;;;AAkBA;;;;AAII;;;;;;;;AAMN;;;;AASF;;;;;;;;;;AAWM;;;;;;;;;;;;AAYA;;;;AAIA;;;;;;;;;AAOE;;;;AAIF","sources":["packages/column-views/src/carbon-isotopes/column.module.sass"],"sourcesContent":["@use \"sass:color\"\n\n.column-ui\n width: 100vw\n height: 100vh\n overflow-y: scroll\n display: flex\n flex-direction: row\n\n.column-view\n flex-grow: 1\n padding: 1em\n max-height: 100vh\n overflow-y: scroll\n h1\n font-size: 1.2em\n margin-bottom: 0.2em\n padding-left: 35px\n\n// Column\n.column\n margin-bottom: 1em\n display: flex\n flex-direction: row\n .age-axis-label\n writing-mode: vertical-lr\n transform: rotate(180deg)\n font-size: 12px\n text-align: center\n position: sticky\n top: 0\n max-height: 100vh\n\n :global\n .tick text\n text-anchor: middle\n font-weight: 400 !important\n transform: rotate(-90deg) translate(8px,-12px)\n\n rect.unit\n stroke: black\n stroke-width: 1px\n\n g.lithology-column use.frame\n stroke: black\n stroke-width: 1.5px !important\n pointer-events: none\n\n g.isotopes-column\n rect.underlay\n fill: transparent\n\n .col-note-label\n font-size: 10px\n margin-top: 3px\n padding: 2px 2px 2px 3px\n line-height: 9px\n border-left: none !important\n\n g.height-range\n display: none\n\n .note-inner\n border: none\n\n .frame rect\n fill: transparent\n\n\n\n.bp5-dark\n .column :global\n .lithology-column .frame\n stroke: white\n g.inner\n rect.unit\n filter: invert(100%)\n g.lithology-column use.frame\n stroke: white\n .note\n line, path.col-note-link\n stroke: white\n .y.axis .tick line\n stroke: white\n\n.column-nav\n position: sticky\n top: 2.2em\n h3\n color: #444\n margin-bottom: 0.3em\n\n.default-buttons\n width: 100%\n margin: 0 -10px\n\ndiv.map-column\n width: 600px\n height: 100vh\n display: flex\n flex-direction: column\n\n :global\n .map-area\n flex-grow: 1\n\n .map-placeholder\n position: relative\n\n .macrostrat-map\n .graticule\n stroke-dasharray: inherit\n stroke: color.adjust(#AFE6F0, $lightness: -5%)\n .neatline\n stroke-width: 1.5px\n\n .context-map\n position: absolute\n top: 0\n right: 0\n width: 250px\n height: 250px\n cursor: pointer\n z-index: 100\n &.expanded\n cursor: inherit\n .columns path:hover\n stroke: rgba(255,0,0,.4) !important\n\n .close-button\n position: absolute\n top: 1em\n right: 1em\n\n .land\n background-color: rgb(233, 252, 234)\n"],"names":[],"version":3,"file":"column.module.cbb072df.css.map"}
1
+ {"mappings":"AAEA;;;;;;;;AAOA;;;;;;;AAMI;;;;;;AAMF;;;;;;AAKE;;;;;;;;;;AAWE;;;;;;AAMF;;;;;AAME;;;;;;AAMA;;;;AAIF;;;;;;;;;;;;;;;;AAkBA;;;;AAII;;;;;;;;AAMN;;;;AASF;;;;;;;;;;AAWM;;;;;;;;;;;;AAYA;;;;AAIA;;;;;;;;;AAOE;;;;AAIF","sources":["packages/column-views/src/carbon-isotopes/column.module.sass"],"sourcesContent":["@use \"sass:color\"\n\n.column-ui\n width: 100vw\n height: 100vh\n overflow-y: scroll\n display: flex\n flex-direction: row\n\n.column-view\n flex-grow: 1\n padding: 1em\n max-height: 100vh\n overflow-y: scroll\n h1\n font-size: 1.2em\n margin-bottom: 0.2em\n padding-left: 35px\n\n// Column\n.column\n margin-bottom: 1em\n display: flex\n flex-direction: row\n .age-axis-label\n writing-mode: vertical-lr\n transform: rotate(180deg)\n font-size: 12px\n text-align: center\n position: sticky\n top: 0\n max-height: 100vh\n\n :global\n .tick text\n text-anchor: middle\n font-weight: 400 !important\n transform: rotate(-90deg) translate(8px,-12px)\n\n rect.unit\n stroke: black\n stroke-width: 1px\n\n g.lithology-column use.frame\n stroke: black\n stroke-width: 1.5px !important\n pointer-events: none\n\n g.isotopes-column\n rect.underlay\n fill: transparent\n\n .col-note-label\n font-size: 10px\n margin-top: 3px\n padding: 2px 2px 2px 3px\n line-height: 9px\n border-left: none !important\n\n g.height-range\n display: none\n\n .note-inner\n border: none\n\n .frame rect\n fill: transparent\n\n\n\n.bp5-dark\n .column :global\n .lithology-column .frame\n stroke: white\n g.inner\n rect.unit\n filter: invert(100%)\n g.lithology-column use.frame\n stroke: white\n .note\n line, path.col-note-link\n stroke: white\n .y.axis .tick line\n stroke: white\n\n.column-nav\n position: sticky\n top: 2.2em\n h3\n color: #444\n margin-bottom: 0.3em\n\n.default-buttons\n width: 100%\n margin: 0 -10px\n\ndiv.map-column\n width: 600px\n height: 100vh\n display: flex\n flex-direction: column\n\n :global\n .map-area\n flex-grow: 1\n\n .map-placeholder\n position: relative\n\n .macrostrat-map\n .graticule\n stroke-dasharray: inherit\n stroke: color.adjust(#AFE6F0, $lightness: -5%)\n .neatline\n stroke-width: 1.5px\n\n .context-map\n position: absolute\n top: 0\n right: 0\n width: 250px\n height: 250px\n cursor: pointer\n z-index: 100\n &.expanded\n cursor: inherit\n .columns path:hover\n stroke: rgba(255,0,0,.4) !important\n\n .close-button\n position: absolute\n top: 1em\n right: 1em\n\n .land\n background-color: rgb(233, 252, 234)\n"],"names":[],"version":3,"file":"column-views.a7be0a4a.css.map"}
@@ -0,0 +1,9 @@
1
+ import {ColumnCorrelationMap as $dcd183b733f66144$export$8e7d97509e84cc49} from "./column-views.40c1f361.js";
2
+ import {ColumnCorrelationProvider as $74e211dc185c20b4$export$72ffe141ebf87ef1, useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-views.30646469.js";
3
+
4
+
5
+
6
+
7
+
8
+ export {$dcd183b733f66144$export$8e7d97509e84cc49 as ColumnCorrelationMap, $74e211dc185c20b4$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $74e211dc185c20b4$export$21398703d3a9bb4d as useCorrelationMapStore};
9
+ //# sourceMappingURL=column-views.a98214b2.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"","sources":["packages/column-views/src/maps/column-correlation/index.ts"],"sourcesContent":["export * from \"./core\";\nexport * from \"./state\";\n"],"names":[],"version":3,"file":"column-views.a98214b2.js.map"}