@macrostrat/column-views 1.0.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/esm/_shared.f7eec55a.js +9 -0
  3. package/dist/esm/_shared.f7eec55a.js.map +1 -0
  4. package/dist/esm/age-axis.4a8cf5e6.js +98 -0
  5. package/dist/esm/age-axis.4a8cf5e6.js.map +1 -0
  6. package/dist/esm/age-axis.module.03773a80.css +33 -0
  7. package/dist/esm/age-axis.module.03773a80.css.map +1 -0
  8. package/dist/esm/age-axis.module.3cc91335.js +22 -0
  9. package/dist/esm/age-axis.module.3cc91335.js.map +1 -0
  10. package/dist/esm/age-model-overlay.c7226855.js +57 -0
  11. package/dist/esm/age-model-overlay.c7226855.js.map +1 -0
  12. package/dist/esm/age-model-overlay.module.5d9e78fb.css +14 -0
  13. package/dist/esm/age-model-overlay.module.5d9e78fb.css.map +1 -0
  14. package/dist/esm/age-model-overlay.module.cd985dcb.js +16 -0
  15. package/dist/esm/age-model-overlay.module.cd985dcb.js.map +1 -0
  16. package/dist/esm/base.910b80b4.js +288 -0
  17. package/dist/esm/base.910b80b4.js.map +1 -0
  18. package/dist/esm/boxes.8292cff2.js +258 -0
  19. package/dist/esm/boxes.8292cff2.js.map +1 -0
  20. package/dist/esm/boxes.module.2b5fb18e.css +26 -0
  21. package/dist/esm/boxes.module.2b5fb18e.css.map +1 -0
  22. package/dist/esm/boxes.module.4ebc7796.js +19 -0
  23. package/dist/esm/boxes.module.4ebc7796.js.map +1 -0
  24. package/dist/esm/{carbon-isotopes.3b502a9e.js → carbon-isotopes.10db8285.js} +2 -2
  25. package/dist/esm/{carbon-isotopes.3b502a9e.js.map → carbon-isotopes.10db8285.js.map} +1 -1
  26. package/dist/esm/colors.395c6db5.js +40 -0
  27. package/dist/esm/colors.395c6db5.js.map +1 -0
  28. package/dist/esm/column-correlation.c8dcfe98.js +9 -0
  29. package/dist/esm/column-correlation.c8dcfe98.js.map +1 -0
  30. package/dist/esm/column-nav.5414677c.js +55 -0
  31. package/dist/esm/column-nav.5414677c.js.map +1 -0
  32. package/dist/esm/column-navigation.37cd3245.js +9 -0
  33. package/dist/esm/column-navigation.37cd3245.js.map +1 -0
  34. package/dist/esm/column.01d68dd8.js +127 -0
  35. package/dist/esm/column.01d68dd8.js.map +1 -0
  36. package/dist/esm/{column.db058031.js → column.a25f8ebd.js} +4 -4
  37. package/dist/esm/column.a25f8ebd.js.map +1 -0
  38. package/dist/esm/column.module.1b776e15.js +46 -0
  39. package/dist/esm/column.module.1b776e15.js.map +1 -0
  40. package/dist/esm/column.module.a67a6b4c.css +159 -0
  41. package/dist/esm/column.module.a67a6b4c.css.map +1 -0
  42. package/dist/esm/composite-scale.577bf64a.js +222 -0
  43. package/dist/esm/composite-scale.577bf64a.js.map +1 -0
  44. package/dist/esm/composite.039e4798.js +163 -0
  45. package/dist/esm/composite.039e4798.js.map +1 -0
  46. package/dist/esm/{core.4db8e452.js → core.843310d3.js} +11 -12
  47. package/dist/esm/core.843310d3.js.map +1 -0
  48. package/dist/esm/core.91ede078.js +206 -0
  49. package/dist/esm/core.91ede078.js.map +1 -0
  50. package/dist/esm/correlation-chart.abd8b346.js +9 -0
  51. package/dist/esm/correlation-chart.abd8b346.js.map +1 -0
  52. package/dist/esm/data-provider.1506eb64.js.map +1 -1
  53. package/dist/esm/data-provider.f10c6d0b.js +13 -0
  54. package/dist/esm/data-provider.f10c6d0b.js.map +1 -0
  55. package/dist/esm/fetch.99aec438.js +152 -0
  56. package/dist/esm/fetch.99aec438.js.map +1 -0
  57. package/dist/esm/hash-string.285b37fb.js +39 -0
  58. package/dist/esm/hash-string.285b37fb.js.map +1 -0
  59. package/dist/esm/helpers.2f0a0cb7.js +141 -0
  60. package/dist/esm/helpers.2f0a0cb7.js.map +1 -0
  61. package/dist/esm/index.d.ts +797 -130
  62. package/dist/esm/index.d.ts.map +1 -1
  63. package/dist/esm/index.js +13 -9
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/inset-map.3c18106d.js +66 -0
  66. package/dist/esm/inset-map.3c18106d.js.map +1 -0
  67. package/dist/esm/keyboard-navigation.6713401b.js +48 -0
  68. package/dist/esm/keyboard-navigation.6713401b.js.map +1 -0
  69. package/dist/esm/keyboard-navigation.a9fc80dd.js +112 -0
  70. package/dist/esm/keyboard-navigation.a9fc80dd.js.map +1 -0
  71. package/dist/esm/layers.033d3fb0.js +170 -0
  72. package/dist/esm/layers.033d3fb0.js.map +1 -0
  73. package/dist/esm/main.2e0375a5.js +221 -0
  74. package/dist/esm/main.2e0375a5.js.map +1 -0
  75. package/dist/esm/main.module.3dd9500b.css +134 -0
  76. package/dist/esm/main.module.3dd9500b.css.map +1 -0
  77. package/dist/esm/main.module.c09154b1.js +70 -0
  78. package/dist/esm/main.module.c09154b1.js.map +1 -0
  79. package/dist/esm/mapbox.cac42eed.js +167 -0
  80. package/dist/esm/mapbox.cac42eed.js.map +1 -0
  81. package/dist/esm/maps.bcdea9c1.js +11 -0
  82. package/dist/esm/maps.bcdea9c1.js.map +1 -0
  83. package/dist/esm/{names.f6a4e9a4.js → names.a8f2b452.js} +5 -5
  84. package/dist/esm/names.a8f2b452.js.map +1 -0
  85. package/dist/esm/panel.598f76a5.js +420 -0
  86. package/dist/esm/panel.598f76a5.js.map +1 -0
  87. package/dist/esm/panel.module.386166cc.js +58 -0
  88. package/dist/esm/panel.module.386166cc.js.map +1 -0
  89. package/dist/esm/panel.module.3d2ea3c6.css +111 -0
  90. package/dist/esm/panel.module.3d2ea3c6.css.map +1 -0
  91. package/dist/esm/popover.a810b7bc.js +66 -0
  92. package/dist/esm/popover.a810b7bc.js.map +1 -0
  93. package/dist/esm/popover.module.c4ba4189.js +22 -0
  94. package/dist/esm/popover.module.c4ba4189.js.map +1 -0
  95. package/dist/esm/{selection-popover.module.0a701258.css → popover.module.c4d6bfb0.css} +11 -8
  96. package/dist/esm/popover.module.c4d6bfb0.css.map +1 -0
  97. package/dist/esm/prepare-data.d4284b4a.js +125 -0
  98. package/dist/esm/prepare-data.d4284b4a.js.map +1 -0
  99. package/dist/esm/prepare-units.6c890a96.js +104 -0
  100. package/dist/esm/prepare-units.6c890a96.js.map +1 -0
  101. package/dist/esm/{resolvers.b5c82b78.js → resolvers.36013b49.js} +13 -2
  102. package/dist/esm/resolvers.36013b49.js.map +1 -0
  103. package/dist/esm/section.a34d379a.js +215 -0
  104. package/dist/esm/section.a34d379a.js.map +1 -0
  105. package/dist/esm/selection.f5b0297e.js +143 -0
  106. package/dist/esm/selection.f5b0297e.js.map +1 -0
  107. package/dist/esm/state.178ef364.js +75 -0
  108. package/dist/esm/state.178ef364.js.map +1 -0
  109. package/dist/esm/state.2952cbca.js +118 -0
  110. package/dist/esm/state.2952cbca.js.map +1 -0
  111. package/dist/esm/store.c4d7a8a4.js +52 -0
  112. package/dist/esm/store.c4d7a8a4.js.map +1 -0
  113. package/dist/esm/styles.7bc776d1.js +95 -0
  114. package/dist/esm/styles.7bc776d1.js.map +1 -0
  115. package/dist/esm/svg.4b9a96c1.js +89 -0
  116. package/dist/esm/svg.4b9a96c1.js.map +1 -0
  117. package/dist/esm/types.0f0b57c9.js +3 -0
  118. package/dist/esm/types.0f0b57c9.js.map +1 -0
  119. package/dist/esm/unit-details.071cefed.js +9 -0
  120. package/dist/esm/unit-details.071cefed.js.map +1 -0
  121. package/dist/esm/units.5a4fc058.js +98 -0
  122. package/dist/esm/units.5a4fc058.js.map +1 -0
  123. package/dist/esm/utils.d7a43a2a.js +55 -0
  124. package/dist/esm/utils.d7a43a2a.js.map +1 -0
  125. package/dist/node/index.js.map +1 -1
  126. package/package.json +24 -7
  127. package/src/age-axis.module.sass +27 -0
  128. package/src/age-axis.ts +82 -19
  129. package/src/age-model-overlay.module.sass +11 -0
  130. package/src/age-model-overlay.ts +73 -0
  131. package/src/carbon-isotopes/column.ts +4 -2
  132. package/src/carbon-isotopes/core.ts +9 -6
  133. package/src/carbon-isotopes/data-provider.ts +3 -3
  134. package/src/column.module.sass +58 -49
  135. package/src/column.ts +149 -135
  136. package/src/correlation-chart/hash-string.ts +57 -0
  137. package/src/correlation-chart/index.ts +2 -0
  138. package/src/correlation-chart/main.module.sass +122 -0
  139. package/src/correlation-chart/main.ts +305 -0
  140. package/src/correlation-chart/prepare-data.ts +217 -0
  141. package/src/correlation-chart/stories/correlation-chart.stories.ts +192 -0
  142. package/src/correlation-chart/stories/stories.module.sass +18 -0
  143. package/src/correlation-chart/unconformity-line.module.sass +8 -0
  144. package/src/correlation-chart/unconformity-line.ts +25 -0
  145. package/src/data-provider/base.ts +388 -0
  146. package/src/data-provider/column-nav.ts +53 -0
  147. package/src/data-provider/fetch.ts +231 -0
  148. package/src/data-provider/index.ts +4 -0
  149. package/src/data-provider/store.ts +72 -0
  150. package/src/index.ts +5 -3
  151. package/src/maps/_shared/index.ts +2 -0
  152. package/src/maps/_shared/inset-map.stories.ts +20 -0
  153. package/src/maps/_shared/inset-map.ts +87 -0
  154. package/src/maps/_shared/styles.ts +57 -0
  155. package/src/maps/column-correlation/column-correlation-map.stories.ts +96 -0
  156. package/src/maps/column-correlation/core.ts +225 -0
  157. package/src/maps/column-correlation/index.ts +2 -0
  158. package/src/maps/column-correlation/state.ts +192 -0
  159. package/src/maps/column-navigation/index.ts +2 -0
  160. package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +102 -0
  161. package/src/maps/column-navigation/mapbox/index.ts +219 -0
  162. package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +119 -0
  163. package/src/maps/column-navigation/mapbox/state.ts +109 -0
  164. package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +46 -0
  165. package/src/{map → maps/column-navigation/svg}/index.ts +18 -6
  166. package/src/{map → maps/column-navigation/svg}/layers.ts +28 -109
  167. package/src/maps/column-navigation/utils/keyboard-navigation.ts +58 -0
  168. package/src/maps/index.ts +3 -0
  169. package/src/prepare-units/composite-scale.ts +353 -0
  170. package/src/prepare-units/helpers.ts +226 -0
  171. package/src/prepare-units/index.ts +177 -0
  172. package/src/prepare-units/utils.ts +98 -0
  173. package/src/section.ts +264 -84
  174. package/src/unit-details/index.ts +2 -215
  175. package/src/unit-details/{index.module.sass → panel.module.sass} +39 -8
  176. package/src/unit-details/panel.ts +523 -0
  177. package/src/{selection-popover.module.sass → unit-details/popover.module.sass} +4 -2
  178. package/src/unit-details/popover.ts +82 -0
  179. package/src/units/boxes.module.sass +16 -0
  180. package/src/units/boxes.ts +243 -90
  181. package/src/units/colors.ts +64 -0
  182. package/src/units/composite.ts +157 -152
  183. package/src/units/index.ts +76 -9
  184. package/src/units/names.ts +8 -4
  185. package/src/units/resolvers.ts +11 -0
  186. package/src/units/selection.ts +115 -101
  187. package/src/units/types.ts +5 -16
  188. package/dist/esm/age-axis.64c509ee.js +0 -41
  189. package/dist/esm/age-axis.64c509ee.js.map +0 -1
  190. package/dist/esm/boxes.13968b76.js +0 -164
  191. package/dist/esm/boxes.13968b76.js.map +0 -1
  192. package/dist/esm/boxes.module.28873d08.css +0 -4
  193. package/dist/esm/boxes.module.28873d08.css.map +0 -1
  194. package/dist/esm/boxes.module.605bdcd6.js +0 -13
  195. package/dist/esm/boxes.module.605bdcd6.js.map +0 -1
  196. package/dist/esm/column.8dd26e1a.js +0 -149
  197. package/dist/esm/column.8dd26e1a.js.map +0 -1
  198. package/dist/esm/column.db058031.js.map +0 -1
  199. package/dist/esm/column.module.039d872c.css +0 -151
  200. package/dist/esm/column.module.039d872c.css.map +0 -1
  201. package/dist/esm/column.module.e632868a.js +0 -19
  202. package/dist/esm/column.module.e632868a.js.map +0 -1
  203. package/dist/esm/composite.608a4ca2.js +0 -153
  204. package/dist/esm/composite.608a4ca2.js.map +0 -1
  205. package/dist/esm/core.4db8e452.js.map +0 -1
  206. package/dist/esm/helpers.8a03cfc7.js +0 -94
  207. package/dist/esm/helpers.8a03cfc7.js.map +0 -1
  208. package/dist/esm/index.module.0844afd8.css +0 -65
  209. package/dist/esm/index.module.0844afd8.css.map +0 -1
  210. package/dist/esm/index.module.24fe3a2e.js +0 -37
  211. package/dist/esm/index.module.24fe3a2e.js.map +0 -1
  212. package/dist/esm/layers.ad5fd25d.js +0 -231
  213. package/dist/esm/layers.ad5fd25d.js.map +0 -1
  214. package/dist/esm/map.7aa26f17.js +0 -82
  215. package/dist/esm/map.7aa26f17.js.map +0 -1
  216. package/dist/esm/names.f6a4e9a4.js.map +0 -1
  217. package/dist/esm/providers.cd1e652f.js +0 -25
  218. package/dist/esm/providers.cd1e652f.js.map +0 -1
  219. package/dist/esm/resolvers.b5c82b78.js.map +0 -1
  220. package/dist/esm/section.cc1b1100.js +0 -118
  221. package/dist/esm/section.cc1b1100.js.map +0 -1
  222. package/dist/esm/selection-popover.17d1bd55.js +0 -60
  223. package/dist/esm/selection-popover.17d1bd55.js.map +0 -1
  224. package/dist/esm/selection-popover.module.0a701258.css.map +0 -1
  225. package/dist/esm/selection-popover.module.e22f5183.js +0 -22
  226. package/dist/esm/selection-popover.module.e22f5183.js.map +0 -1
  227. package/dist/esm/selection.bbf26d0e.js +0 -117
  228. package/dist/esm/selection.bbf26d0e.js.map +0 -1
  229. package/dist/esm/store.25eaa168.js +0 -18
  230. package/dist/esm/store.25eaa168.js.map +0 -1
  231. package/dist/esm/types.f016e032.js +0 -18
  232. package/dist/esm/types.f016e032.js.map +0 -1
  233. package/dist/esm/unit-details.56ff8b70.js +0 -209
  234. package/dist/esm/unit-details.56ff8b70.js.map +0 -1
  235. package/dist/esm/units.361088d4.js +0 -42
  236. package/dist/esm/units.361088d4.js.map +0 -1
  237. package/src/helpers.ts +0 -133
  238. package/src/providers.ts +0 -34
  239. package/src/selection-popover.ts +0 -71
  240. package/src/store.ts +0 -12
  241. package/src/units/units.scss +0 -16
  242. /package/src/{map → maps/column-navigation/svg}/animated.ts +0 -0
@@ -1,149 +0,0 @@
1
- import $bTsJU$columnmodulee632868ajs from "./column.module.e632868a.js";
2
- import "./column.module.039d872c.css";
3
- import {TrackedLabeledUnit as $8c8238faa5cde49c$export$f613830566442374} from "./composite.608a4ca2.js";
4
- import {UnitSelectionProvider as $4d5d1c15f39f6a14$export$f19d75b1d4b676a4, useUnitSelectionDispatch as $4d5d1c15f39f6a14$export$77a278d5ca56e309, UnitKeyboardNavigation as $4d5d1c15f39f6a14$export$70f5ee19650fc7d1} from "./selection.bbf26d0e.js";
5
- import {UnitSelectionPopover as $80d4db83aa9ba807$export$db1115efab13710d} from "./selection-popover.17d1bd55.js";
6
- import {MacrostratUnitsProvider as $1fcb9b8d7da394a3$export$e5fe24ae4f287040} from "./store.25eaa168.js";
7
- import {Section as $7d0f52717c0de7e1$export$6e2c8f0811a474ce} from "./section.cc1b1100.js";
8
- import {ensureArray as $2c60de495788ce61$export$d0c8ecbd4ed8940c, groupUnitsIntoSections as $2c60de495788ce61$export$dfbd00399d639b4c, _mergeOverlappingSections as $2c60de495788ce61$export$ec445c47b6e5d2d} from "./helpers.8a03cfc7.js";
9
- import {ColumnLayoutContext as $bTsJU$ColumnLayoutContext} from "@macrostrat/column-components";
10
- import {hyperStyled as $bTsJU$hyperStyled} from "@macrostrat/hyper";
11
- import {useDarkMode as $bTsJU$useDarkMode} from "@macrostrat/ui-components";
12
- import $bTsJU$classnames from "classnames";
13
- import {useContext as $bTsJU$useContext, createRef as $bTsJU$createRef, useState as $bTsJU$useState, useMemo as $bTsJU$useMemo} from "react";
14
-
15
-
16
- function $parcel$interopDefault(a) {
17
- return a && a.__esModule ? a.default : a;
18
- }
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
- const $2118f0266dc7e955$var$h = (0, $bTsJU$hyperStyled)((0, ($parcel$interopDefault($bTsJU$columnmodulee632868ajs))));
31
- function $2118f0266dc7e955$export$48a4cacf2b7a4441({ division: division, nColumns: nColumns = 2, ...rest }) {
32
- const { width: width } = (0, $bTsJU$useContext)((0, $bTsJU$ColumnLayoutContext));
33
- //const nCols = Math.min(nColumns, division.overlappingUnits.length+1)
34
- //console.log(division);
35
- return $2118f0266dc7e955$var$h((0, $8c8238faa5cde49c$export$f613830566442374), {
36
- division: division,
37
- ...rest,
38
- width: division.overlappingUnits.length > 0 ? width / nColumns : width,
39
- x: division.column * width / nColumns
40
- });
41
- }
42
- function $2118f0266dc7e955$var$Unconformity({ upperUnits: upperUnits = [], lowerUnits: lowerUnits = [], style: style }) {
43
- if (upperUnits.length == 0 || lowerUnits.length == 0) return null;
44
- const ageGap = lowerUnits[0].t_age - upperUnits[upperUnits.length - 1].b_age;
45
- return $2118f0266dc7e955$var$h("div.unconformity", {
46
- style: style
47
- }, [
48
- $2118f0266dc7e955$var$h("div.unconformity-text", `${ageGap.toFixed(1)} Ma`)
49
- ]);
50
- }
51
- function $2118f0266dc7e955$var$sectionClassName(section) {
52
- return `section-${(0, $2c60de495788ce61$export$d0c8ecbd4ed8940c)(section.section_id).join("-")}`;
53
- }
54
- function $2118f0266dc7e955$export$816b5d811295e6bc(props) {
55
- const { showUnitPopover: showUnitPopover = false, ...rest } = props;
56
- const ref = (0, $bTsJU$createRef)();
57
- // Selected item position
58
- const [position, setPosition] = (0, $bTsJU$useState)(null);
59
- if (!showUnitPopover) return $2118f0266dc7e955$var$h($2118f0266dc7e955$var$_Column, rest);
60
- return $2118f0266dc7e955$var$h((0, $4d5d1c15f39f6a14$export$f19d75b1d4b676a4), {
61
- onUnitSelected: (unit, target)=>{
62
- if (!showUnitPopover) return;
63
- if (unit == null) {
64
- setPosition(null);
65
- return;
66
- }
67
- const el = ref.current;
68
- if (el == null || target == null) return;
69
- const rect = el.getBoundingClientRect();
70
- const targetRect = target.getBoundingClientRect();
71
- setPosition({
72
- x: targetRect.left - rect.left,
73
- y: targetRect.top - rect.top,
74
- width: targetRect.width,
75
- height: targetRect.height
76
- });
77
- }
78
- }, $2118f0266dc7e955$var$h($2118f0266dc7e955$var$_Column, {
79
- ...rest,
80
- columnRef: ref
81
- }, $2118f0266dc7e955$var$h((0, $80d4db83aa9ba807$export$db1115efab13710d), {
82
- position: position
83
- })));
84
- }
85
- function $2118f0266dc7e955$var$_Column(props) {
86
- const { data: data, unitComponent: unitComponent = $2118f0266dc7e955$export$48a4cacf2b7a4441, unconformityLabels: unconformityLabels = true, showLabels: showLabels = true, width: width = 300, columnWidth: columnWidth = 150, className: baseClassName, showLabelColumn: showLabelColumn = true, mergeOverlappingSections: mergeOverlappingSections = true, keyboardNavigation: keyboardNavigation = false, columnRef: columnRef, children: children, ...rest } = props;
87
- const darkMode = (0, $bTsJU$useDarkMode)();
88
- const sectionGroups = (0, $bTsJU$useMemo)(()=>{
89
- let res = (0, $2c60de495788ce61$export$dfbd00399d639b4c)(data);
90
- if (mergeOverlappingSections) res = (0, $2c60de495788ce61$export$ec445c47b6e5d2d)(res);
91
- return res;
92
- }, [
93
- data,
94
- mergeOverlappingSections
95
- ]);
96
- const className = (0, $bTsJU$classnames)(baseClassName, {
97
- "dark-mode": darkMode?.isEnabled ?? false
98
- });
99
- // Clear unit selection on click outside of units, if we have a dispatch function
100
- const dispatch = (0, $4d5d1c15f39f6a14$export$77a278d5ca56e309)();
101
- return $2118f0266dc7e955$var$h("div.column-container", {
102
- className: className,
103
- onClick (evt) {
104
- dispatch?.(null, null, evt);
105
- }
106
- }, $2118f0266dc7e955$var$h((0, $1fcb9b8d7da394a3$export$e5fe24ae4f287040), {
107
- units: data
108
- }, [
109
- $2118f0266dc7e955$var$h("div.column", {
110
- ref: columnRef
111
- }, [
112
- $2118f0266dc7e955$var$h("div.age-axis-label", "Age (Ma)"),
113
- $2118f0266dc7e955$var$h("div.main-column", sectionGroups.map((group, i)=>{
114
- const { section_id: id, units: data } = group;
115
- const lastGroup = sectionGroups[i - 1];
116
- return $2118f0266dc7e955$var$h([
117
- $2118f0266dc7e955$var$h.if(unconformityLabels)($2118f0266dc7e955$var$Unconformity, {
118
- upperUnits: lastGroup?.units,
119
- lowerUnits: data,
120
- style: {
121
- width: showLabels ? columnWidth : width
122
- }
123
- }),
124
- $2118f0266dc7e955$var$h(`div.section`, {
125
- className: $2118f0266dc7e955$var$sectionClassName(group)
126
- }, [
127
- $2118f0266dc7e955$var$h((0, $7d0f52717c0de7e1$export$6e2c8f0811a474ce), {
128
- data: data,
129
- unitComponent: unitComponent,
130
- showLabels: showLabels,
131
- width: width,
132
- columnWidth: columnWidth,
133
- showLabelColumn: showLabelColumn,
134
- ...rest
135
- })
136
- ])
137
- ]);
138
- })),
139
- $2118f0266dc7e955$var$h.if(keyboardNavigation)((0, $4d5d1c15f39f6a14$export$70f5ee19650fc7d1), {
140
- units: data
141
- }),
142
- children
143
- ])
144
- ]));
145
- }
146
-
147
-
148
- export {$2118f0266dc7e955$export$48a4cacf2b7a4441 as UnitComponent, $2118f0266dc7e955$export$816b5d811295e6bc as Column};
149
- //# sourceMappingURL=column.8dd26e1a.js.map
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/column-views/src/column.ts"],"sourcesContent":["import {\n ColumnAxisType,\n ColumnLayoutContext,\n ColumnProvider,\n} from \"@macrostrat/column-components\";\nimport { hyperStyled } from \"@macrostrat/hyper\";\nimport { useDarkMode } from \"@macrostrat/ui-components\";\nimport classNames from \"classnames\";\nimport { createRef, RefObject, useContext, useMemo, useState } from \"react\";\nimport styles from \"./column.module.sass\";\nimport {\n TrackedLabeledUnit,\n UnitKeyboardNavigation,\n UnitSelectionProvider,\n useUnitSelectionDispatch,\n} from \"./units\";\nimport { SectionInfo } from \"./section\";\nimport { RectBounds } from \"./units/boxes\";\nimport { UnitSelectionPopover } from \"./selection-popover\";\nimport { MacrostratUnitsProvider } from \"./store\";\nimport { IColumnProps, Section } from \"./section\";\nimport {\n _mergeOverlappingSections,\n ensureArray,\n groupUnitsIntoSections,\n} from \"./helpers\";\n\nconst h = hyperStyled(styles);\n\nexport function UnitComponent({ division, nColumns = 2, ...rest }) {\n const { width } = useContext(ColumnLayoutContext);\n\n //const nCols = Math.min(nColumns, division.overlappingUnits.length+1)\n //console.log(division);\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: division.overlappingUnits.length > 0 ? width / nColumns : width,\n x: (division.column * width) / nColumns,\n });\n}\n\nfunction Unconformity({ upperUnits = [], lowerUnits = [], style }) {\n if (upperUnits.length == 0 || lowerUnits.length == 0) {\n return null;\n }\n\n const ageGap = lowerUnits[0].t_age - upperUnits[upperUnits.length - 1].b_age;\n\n return h(\"div.unconformity\", { style }, [\n h(\"div.unconformity-text\", `${ageGap.toFixed(1)} Ma`),\n ]);\n}\n\nfunction sectionClassName(section: SectionInfo) {\n return `section-${ensureArray(section.section_id).join(\"-\")}`;\n}\n\nexport interface ColumnProps extends IColumnProps {\n unconformityLabels?: boolean;\n className?: string;\n mergeOverlappingSections?: boolean;\n showLabelColumn?: boolean;\n columnRef?: RefObject<HTMLElement>;\n keyboardNavigation?: boolean;\n showUnitPopover?: boolean;\n t_age?: number;\n b_age?: number;\n}\n\nexport function Column(props: ColumnProps) {\n const { showUnitPopover = false, ...rest } = props;\n const ref = createRef<HTMLElement>();\n // Selected item position\n const [position, setPosition] = useState<RectBounds | null>(null);\n\n if (!showUnitPopover) {\n return h(_Column, rest);\n }\n\n return h(\n UnitSelectionProvider,\n {\n onUnitSelected: (unit, target: SVGElement | HTMLElement | null) => {\n if (!showUnitPopover) return;\n\n if (unit == null) {\n setPosition(null);\n return;\n }\n const el: HTMLElement = ref.current;\n if (el == null || target == null) return;\n const rect = el.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n setPosition({\n x: targetRect.left - rect.left,\n y: targetRect.top - rect.top,\n width: targetRect.width,\n height: targetRect.height,\n });\n },\n },\n h(\n _Column,\n { ...rest, columnRef: ref },\n h(UnitSelectionPopover, { position })\n )\n );\n}\n\nfunction _Column(props: Omit<ColumnProps, \"showUnitPopover\">) {\n const {\n data,\n unitComponent = UnitComponent,\n unconformityLabels = true,\n showLabels = true,\n width = 300,\n columnWidth = 150,\n className: baseClassName,\n showLabelColumn = true,\n mergeOverlappingSections = true,\n keyboardNavigation = false,\n columnRef,\n children,\n ...rest\n } = props;\n\n const darkMode = useDarkMode();\n const sectionGroups = useMemo(() => {\n let res = groupUnitsIntoSections(data);\n if (mergeOverlappingSections) {\n res = _mergeOverlappingSections(res);\n }\n return res;\n }, [data, mergeOverlappingSections]);\n\n const className = classNames(baseClassName, {\n \"dark-mode\": darkMode?.isEnabled ?? false,\n });\n\n // Clear unit selection on click outside of units, if we have a dispatch function\n const dispatch = useUnitSelectionDispatch();\n\n return h(\n \"div.column-container\",\n {\n className,\n onClick(evt) {\n dispatch?.(null, null, evt as any);\n },\n },\n h(MacrostratUnitsProvider, { units: data }, [\n h(\"div.column\", { ref: columnRef }, [\n h(\"div.age-axis-label\", \"Age (Ma)\"),\n h(\n \"div.main-column\",\n sectionGroups.map((group, i) => {\n const { section_id: id, units: data } = group;\n const lastGroup = sectionGroups[i - 1];\n return h([\n h.if(unconformityLabels)(Unconformity, {\n upperUnits: lastGroup?.units,\n lowerUnits: data,\n style: { width: showLabels ? columnWidth : width },\n }),\n h(`div.section`, { className: sectionClassName(group) }, [\n h(Section, {\n data,\n unitComponent,\n showLabels,\n width,\n columnWidth,\n showLabelColumn,\n ...rest,\n }),\n ]),\n ]);\n })\n ),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units: data }),\n children,\n ]),\n ])\n );\n}\n"],"names":[],"version":3,"file":"column.8dd26e1a.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,wEAAK;AAS5B,MAAM,gCAAU,CAAC,SAAE,KAAK,EAAE;IACxB,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,KAAK;IAE/C,OAAO,wBAAE,CAAA,GAAA,iBAAS,GAAG;QACnB,OAAO;QACP,YAAY;IACd;AACF;AAEA,MAAM,4CAAU,CAAC;IACf,oCAAoC;IACpC,MAAM,QACJ,IAAI,kBACJ,iBAAiB,aACjB,QAAQ;QAAC,IAAI,CAAC,KAAK,MAAM,GAAG,EAAE,CAAC,KAAK;QAAE,IAAI,CAAC,EAAE,CAAC,KAAK;KAAC,EACrD,GAAG;IACJ,IAAI,cAAE,UAAU,EAAE,GAAG;IAErB,MAAM,cAAc;IAEpB,IAAI,CAAC,YAAY;QACf,wBAAwB;QACxB,MAAM,OAAO,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;QAChC,MAAM,eAAe,KAAK,KAAK,MAAM;QACrC,aAAa,KAAK,IAAI,CAAC,eAAe;IACxC;IAEA,OAAO,wBACL,CAAA,GAAA,yCAAuB,GACvB;QACE,WAAW;eACX;QACA,gBAAgB;IAClB,GACA;QACE,wBACE,CAAA,GAAA,gBAAQ,GACR;YACE,OAAO;YACP,SAAS;YACT,YAAY;YACZ,eAAe;QACjB,GACA;YACE,wBAAE;YACF,wBAAE,CAAA,GAAA,yCAAgB,GAAG;gBACnB,OAAO;gBACP,aAAa;YACf;YACA,wBAAE,CAAA,GAAA,yCAAa,GAAG;gBAChB,WAAW;gBACX,OAAO;gBACP,OAAO;gBACP,aAAa;gBACb,QAAQ;gBACR,UAAU;gBACV,WAAW;YACb;YACA,wBAAE,CAAA,GAAA,yCAAa,GAAG;gBAChB,WAAW;gBACX,OAAO;gBACP,OAAO;gBACP,QAAQ;oBAAC;oBAAK;iBAAE;gBAChB,OAAO;gBACP,aAAa;gBACb,QAAQ;gBACR,UAAU;gBACV,WAAW;YACb;SACD;KAEJ;AAEL;AAEA,SAAS,6BAAO,KAA0D;IACxE,MAAM,UAAE,MAAM,EAAE,GAAG;IACnB,MAAM,OAAgB,CAAA,GAAA,mBAAW,EAAE,UAAU;QAC3C,KAAK;QACL,GAAG,MAAM;QACT,UAAU;IACZ;IACA,IAAI,QAAQ,MAAM,OAAO;IAEzB,IAAI,gBAAgB,MAAM,IAAI,CAAC,CAAA,GAAA,YAAI,EAAE,MAAM,CAAC,IAAM,EAAE,UAAU;IAE9D,kDAAkD;IAElD,OAAO,wBAAE,cAAc;QACrB,wBAAE,sBAAsB;QACxB,wBACE,mBACA,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE;YAC/B,OAAO,wBAAE,CAAC,YAAY,EAAE,IAAI,EAAE;gBAC5B,wBAAE,2CAAS;oBACT,MAAM;oBACN,gBAAgB,KAAK,cAAc,MAAM,GAAG;gBAC9C;aACD;QACH;KAEH;AACH;IAGA,2CAAe","sources":["packages/column-views/src/carbon-isotopes/column.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport { group } from \"d3-array\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport {\n ColumnSVG,\n ColumnAxis,\n ColumnContext,\n} from \"@macrostrat/column-components\";\nimport { SimpleUnitsColumn, IUnit, ColumnArgs } from \"../units\";\nimport { useContext } from \"react\";\nimport { IsotopesColumn } from \"./isotopes-column\";\nimport { MacrostratColumnProvider } from \"../providers\";\nimport styles from \"./column.module.sass\";\n\nconst h = hyper.styled(styles);\n\ninterface IColumnProps {\n data: IUnit[];\n pixelScale?: number;\n isOldestColumn: boolean;\n range?: [number, number];\n}\n\nconst AgeAxis = ({ ticks }) => {\n const { pixelHeight } = useContext(ColumnContext);\n // A tick roughly every 40 pixels\n let v = Math.max(Math.round(pixelHeight / 40), 1);\n\n return h(ColumnAxis, {\n ticks: v,\n showDomain: false,\n });\n};\n\nconst Section = (props: IColumnProps) => {\n // Section with \"squishy\" time scale\n const {\n data,\n isOldestColumn = true,\n range = [data[data.length - 1].b_age, data[0].t_age],\n } = props;\n let { pixelScale } = props;\n\n const notesOffset = 100;\n\n if (!pixelScale) {\n // Make up a pixel scale\n const dAge = range[0] - range[1];\n const targetHeight = 50 * data.length;\n pixelScale = Math.ceil(targetHeight / dAge);\n }\n\n return h(\n MacrostratColumnProvider,\n {\n divisions: data,\n range,\n pixelsPerMeter: pixelScale, // Actually pixels per myr\n },\n [\n h(\n ColumnSVG,\n {\n width: 650,\n padding: 20,\n paddingTop: 5,\n paddingBottom: 25,\n },\n [\n h(AgeAxis),\n h(SimpleUnitsColumn, {\n width: 400,\n columnWidth: 90,\n }),\n h(IsotopesColumn, {\n parameter: \"D13C\",\n label: \"δ¹³C\",\n width: 100,\n // @ts-ignore\n nTicks: 4,\n showAxis: isOldestColumn,\n transform: \"translate(250,0)\",\n }),\n h(IsotopesColumn, {\n parameter: \"D18O\",\n label: \"δ¹⁸O\",\n color: \"red\",\n domain: [-40, 0],\n width: 100,\n // @ts-ignore\n nTicks: 4,\n showAxis: isOldestColumn,\n transform: \"translate(370,0)\",\n }),\n ]\n ),\n ]\n );\n};\n\nfunction Column(props: Omit<IColumnProps, \"data\"> & { params: ColumnArgs }) {\n const { params } = props;\n const data: IUnit[] = useAPIResult(\"/units\", {\n all: true,\n ...params,\n response: \"long\",\n });\n if (data == null) return null;\n\n let sectionGroups = Array.from(group(data, (d) => d.section_id));\n\n //sectionGroups.sort((a, b) => a.t_age - b.t_age);\n\n return h(\"div.column\", [\n h(\"div.age-axis-label\", \"Age (Ma)\"),\n h(\n \"div.main-column\",\n sectionGroups.map(([id, values], i) => {\n return h(`div.section-${id}`, [\n h(Section, {\n data: values,\n isOldestColumn: i == sectionGroups.length - 1,\n }),\n ]);\n })\n ),\n ]);\n}\n\nexport { Section, IColumnProps };\nexport default Column;\n"],"names":[],"version":3,"file":"column.db058031.js.map"}
@@ -1,151 +0,0 @@
1
- .column-container_afc440, body.light-mode .column-container_afc440 {
2
- --column-background-color: var(--background-color, #fff);
3
- --column-stroke-color: var(--text-color, #000);
4
- --column-text-color: var(--text-color, #000);
5
- }
6
-
7
- @media (prefers-color-scheme: dark) {
8
- body:not(.light-mode) .column-container_afc440 {
9
- --column-background-color: var(--background-color, #000);
10
- --column-stroke-color: var(--text-color, #fff);
11
- --column-text-color: var(--text-color, #fff);
12
- color-scheme: dark;
13
- color: var(--column-text-color);
14
- }
15
-
16
- body:not(.light-mode) .column-container_afc440 .timescale {
17
- color: #000;
18
- }
19
-
20
- body:not(.light-mode) .column-container_afc440 g.inner pattern image {
21
- filter: invert(80%);
22
- }
23
- }
24
-
25
- body.dark-mode .column-container_afc440 {
26
- --column-background-color: var(--background-color, #000);
27
- --column-stroke-color: var(--text-color, #fff);
28
- --column-text-color: var(--text-color, #fff);
29
- color-scheme: dark;
30
- color: var(--column-text-color);
31
- }
32
-
33
- body.dark-mode .column-container_afc440 .timescale {
34
- color: #000;
35
- }
36
-
37
- body.dark-mode .column-container_afc440 g.inner pattern image {
38
- filter: invert(80%);
39
- }
40
-
41
- .column-container_afc440 .column {
42
- flex-direction: row;
43
- display: flex;
44
- position: relative;
45
- }
46
-
47
- .column-container_afc440 .column .age-axis-label {
48
- writing-mode: vertical-lr;
49
- text-align: center;
50
- max-height: 100vh;
51
- font-size: 12px;
52
- position: sticky;
53
- top: 0;
54
- transform: rotate(180deg);
55
- }
56
-
57
- .column-container_afc440 .column .tick text {
58
- text-anchor: middle;
59
- transform: rotate(-90deg)translate(8px, -12px);
60
- font-weight: 400 !important;
61
- }
62
-
63
- .column-container_afc440 rect.unit {
64
- stroke: var(--column-stroke-color);
65
- stroke-width: 1px;
66
- }
67
-
68
- .column-container_afc440 g.lithology-column use.frame {
69
- stroke: var(--column-stroke-color);
70
- pointer-events: none;
71
- stroke-width: 1.5px !important;
72
- }
73
-
74
- .column-container_afc440 .unit-label {
75
- text-align: center;
76
- }
77
-
78
- .column-container_afc440 .col-note-label {
79
- margin-top: 3px;
80
- padding: 2px 2px 2px 3px;
81
- font-size: 10px;
82
- line-height: 9px;
83
- border-left: none !important;
84
- }
85
-
86
- .column-container_afc440 g.height-range {
87
- display: none;
88
- }
89
-
90
- .column-container_afc440 .note-inner {
91
- border: none;
92
- }
93
-
94
- .column-container_afc440 .frame rect {
95
- fill: #0000;
96
- }
97
-
98
- .column-container_afc440 .labeled-unit .unit-overlay {
99
- justify-content: center;
100
- align-items: center;
101
- font-size: 10px;
102
- font-style: italic;
103
- display: flex;
104
- }
105
-
106
- .column-container_afc440 .labeled-unit .unit-overlay .unit-label {
107
- text-shadow: 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color);
108
- display: block;
109
- }
110
-
111
- .column-container_afc440 .default-buttons {
112
- width: 100%;
113
- margin: 0 -10px;
114
- }
115
-
116
- .column-container_afc440 div.section {
117
- flex-direction: row;
118
- display: flex;
119
- }
120
-
121
- .column-container_afc440 div.section .timescale {
122
- transform: translateY(.5px);
123
- }
124
-
125
- .column-container_afc440 .section .divisions .unit {
126
- cursor: pointer;
127
- }
128
-
129
- .column-container_afc440 rect.selection-overlay {
130
- fill: #ff000080;
131
- }
132
-
133
- .column-container_afc440 div.timescale {
134
- --timescale-level-size: 1.5em;
135
- width: calc(6em + 4px);
136
- }
137
-
138
- .unconformity_afc440 {
139
- text-align: center;
140
- height: 0;
141
- margin-left: calc(6em + 44px);
142
- font-size: 10px;
143
- font-style: italic;
144
- }
145
-
146
- .unconformity-text_afc440 {
147
- width: var(--column-width);
148
- color: var(--column-stroke-color);
149
- transform: translateY(-.5em);
150
- }
151
- /*# sourceMappingURL=column.module.039d872c.css.map */
@@ -1 +0,0 @@
1
- {"mappings":"AAAA;;;;;;AAWE;EACE;;;;;;;;EAOI;;;;EAEA;;;;;AAIN;;;;;;;;AAOE;;;;AAIF;;;;;;;;;;AAUI;;;;;;;;;;AAUF;;;;;;AAMA;;;;;;;;;;;AASF;;;;;;;;;;;;AAUF;;;;AAGA;;;;AAIE;;;;AAGF;;;;;;;;;;;;;;;;;;;;;;;AAkBA;;;;AAGA;;;;;;;;AAOE;;;;;AAIF","sources":["packages/column-views/src/column.module.sass"],"sourcesContent":[".column-container, body:global(.light-mode) .column-container\n --column-background-color: var(--background-color, #fff)\n --column-stroke-color: var(--text-color, #000)\n --column-text-color: var(--text-color, #000)\n\n/* We have to duplicate the dark mode styles here\n because we want to set them either if the preferred\n color scheme is dark OR if dark mode is explicitly enabled.\n If dark mode is explicitly enabled, we want to override\n the media query. */\n@media (prefers-color-scheme: dark)\n body:not(:global(.light-mode)) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-color, #fff)\n --column-text-color: var(--text-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n g.inner pattern image\n filter: invert(80%)\n\nbody:global(.dark-mode) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-color, #fff)\n --column-text-color: var(--text-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n g.inner pattern image\n filter: invert(80%)\n\n.column-container :global\n .column\n display: flex\n flex-direction: row\n position: relative\n\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 .tick text\n text-anchor: middle\n font-weight: 400 !important\n transform: rotate(-90deg) translate(8px, -12px)\n\n rect.unit\n stroke: var(--column-stroke-color)\n stroke-width: 1px\n\n g.lithology-column use.frame\n stroke: var(--column-stroke-color)\n stroke-width: 1.5px !important\n pointer-events: none\n\n.column-container :global .unit-label\n text-align: center\n\n.column-container :global .col-note-label\n font-size: 10px\n margin-top: 3px\n padding: 2px\n padding-left: 3px\n line-height: 9px\n border-left: none !important\n\n.column-container :global g.height-range\n display: none\n\n.column-container :global .note-inner\n border: none\n\n.column-container :global .frame rect\n fill: transparent\n\n.column-container :global .labeled-unit .unit-overlay\n font-size: 10px\n font-style: italic\n display: flex\n align-items: center\n justify-content: center\n\n.column-container :global .labeled-unit .unit-overlay .unit-label\n display: block\n text-shadow: 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color)\n\n.column-container :global .default-buttons\n width: 100%\n margin: 0 -10px\n\n.column-container :global div.section\n display: flex\n flex-direction: row\n\n.column-container :global div.section :global(.timescale)\n transform: translateY(0.5)\n\n.column-container :global .section .divisions .unit\n cursor: pointer\n\n.column-container :global rect.selection-overlay\n fill: rgba(255,0,0,0.5)\n\n.column-container :global div.timescale\n width: calc(6em + 4px)\n --timescale-level-size: 1.5em\n\n.unconformity\n height: 0px\n font-size: 10px\n font-style: italic\n text-align: center\n margin-left: calc(6em + 4px + 40px)\n\n.unconformity-text\n transform: translateY(-0.5em)\n width: var(--column-width)\n color: var(--column-stroke-color)\n"],"names":[],"version":3,"file":"column.module.039d872c.css.map"}
@@ -1,19 +0,0 @@
1
-
2
- function $parcel$export(e, n, v, s) {
3
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
4
- }
5
- var $6cbea5de739af804$exports = {};
6
-
7
- $parcel$export($6cbea5de739af804$exports, "column-container", () => $6cbea5de739af804$export$e908cef0cccb98df, (v) => $6cbea5de739af804$export$e908cef0cccb98df = v);
8
- $parcel$export($6cbea5de739af804$exports, "unconformity", () => $6cbea5de739af804$export$7b4a6d978979c0fa, (v) => $6cbea5de739af804$export$7b4a6d978979c0fa = v);
9
- $parcel$export($6cbea5de739af804$exports, "unconformity-text", () => $6cbea5de739af804$export$925235908943319a, (v) => $6cbea5de739af804$export$925235908943319a = v);
10
- var $6cbea5de739af804$export$e908cef0cccb98df;
11
- var $6cbea5de739af804$export$7b4a6d978979c0fa;
12
- var $6cbea5de739af804$export$925235908943319a;
13
- $6cbea5de739af804$export$e908cef0cccb98df = "column-container_afc440";
14
- $6cbea5de739af804$export$7b4a6d978979c0fa = "unconformity_afc440";
15
- $6cbea5de739af804$export$925235908943319a = "unconformity-text_afc440";
16
-
17
-
18
- export {$6cbea5de739af804$exports as default};
19
- //# sourceMappingURL=column.module.e632868a.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AAFA,4CAAqC;AACrC,4CAAiC;AACjC,4CAAsC","sources":["packages/column-views/src/column.module.sass"],"sourcesContent":[".column-container, body:global(.light-mode) .column-container\n --column-background-color: var(--background-color, #fff)\n --column-stroke-color: var(--text-color, #000)\n --column-text-color: var(--text-color, #000)\n\n/* We have to duplicate the dark mode styles here\n because we want to set them either if the preferred\n color scheme is dark OR if dark mode is explicitly enabled.\n If dark mode is explicitly enabled, we want to override\n the media query. */\n@media (prefers-color-scheme: dark)\n body:not(:global(.light-mode)) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-color, #fff)\n --column-text-color: var(--text-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n g.inner pattern image\n filter: invert(80%)\n\nbody:global(.dark-mode) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-color, #fff)\n --column-text-color: var(--text-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n g.inner pattern image\n filter: invert(80%)\n\n.column-container :global\n .column\n display: flex\n flex-direction: row\n position: relative\n\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 .tick text\n text-anchor: middle\n font-weight: 400 !important\n transform: rotate(-90deg) translate(8px, -12px)\n\n rect.unit\n stroke: var(--column-stroke-color)\n stroke-width: 1px\n\n g.lithology-column use.frame\n stroke: var(--column-stroke-color)\n stroke-width: 1.5px !important\n pointer-events: none\n\n.column-container :global .unit-label\n text-align: center\n\n.column-container :global .col-note-label\n font-size: 10px\n margin-top: 3px\n padding: 2px\n padding-left: 3px\n line-height: 9px\n border-left: none !important\n\n.column-container :global g.height-range\n display: none\n\n.column-container :global .note-inner\n border: none\n\n.column-container :global .frame rect\n fill: transparent\n\n.column-container :global .labeled-unit .unit-overlay\n font-size: 10px\n font-style: italic\n display: flex\n align-items: center\n justify-content: center\n\n.column-container :global .labeled-unit .unit-overlay .unit-label\n display: block\n text-shadow: 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color), 0px 0px 4px var(--column-background-color)\n\n.column-container :global .default-buttons\n width: 100%\n margin: 0 -10px\n\n.column-container :global div.section\n display: flex\n flex-direction: row\n\n.column-container :global div.section :global(.timescale)\n transform: translateY(0.5)\n\n.column-container :global .section .divisions .unit\n cursor: pointer\n\n.column-container :global rect.selection-overlay\n fill: rgba(255,0,0,0.5)\n\n.column-container :global div.timescale\n width: calc(6em + 4px)\n --timescale-level-size: 1.5em\n\n.unconformity\n height: 0px\n font-size: 10px\n font-style: italic\n text-align: center\n margin-left: calc(6em + 4px + 40px)\n\n.unconformity-text\n transform: translateY(-0.5em)\n width: var(--column-width)\n color: var(--column-stroke-color)\n"],"names":[],"version":3,"file":"column.module.e632868a.js.map"}
@@ -1,153 +0,0 @@
1
- import {defaultNameFunction as $bc17276da4abb183$export$c9757aeb43a67df0, UnitNamesColumn as $bc17276da4abb183$export$594d19cdd88f8c16} from "./names.f6a4e9a4.js";
2
- import {LabeledUnit as $d254716a820e9c85$export$b4f0ca233b98f9af, UnitBoxes as $d254716a820e9c85$export$5d1cdfabe8dc8085} from "./boxes.13968b76.js";
3
- import "./composite.module.69a38fd1.css";
4
- import $1PjJ0$compositemodule0638e7eejs from "./composite.module.0638e7ee.js";
5
- import {hyperStyled as $1PjJ0$hyperStyled} from "@macrostrat/hyper";
6
- import {useColumn as $1PjJ0$useColumn, LithologyColumn as $1PjJ0$LithologyColumn, ColumnLayoutContext as $1PjJ0$ColumnLayoutContext} from "@macrostrat/column-components";
7
- import {createContext as $1PjJ0$createContext, useState as $1PjJ0$useState, useRef as $1PjJ0$useRef, useCallback as $1PjJ0$useCallback, useContext as $1PjJ0$useContext, memo as $1PjJ0$memo} from "react";
8
-
9
-
10
- function $parcel$interopDefault(a) {
11
- return a && a.__esModule ? a.default : a;
12
- }
13
-
14
-
15
-
16
-
17
-
18
-
19
- const $8c8238faa5cde49c$var$h = (0, $1PjJ0$hyperStyled)((0, ($parcel$interopDefault($1PjJ0$compositemodule0638e7eejs))));
20
- const $8c8238faa5cde49c$var$LabelTrackerContext = (0, $1PjJ0$createContext)(null);
21
- const $8c8238faa5cde49c$var$UnlabeledDivisionsContext = (0, $1PjJ0$createContext)(null);
22
- function $8c8238faa5cde49c$var$LabelTrackerProvider(props) {
23
- const { children: children } = props;
24
- const { divisions: divisions } = (0, $1PjJ0$useColumn)();
25
- const [unlabeledDivisions, setUnlabeledDivisions] = (0, $1PjJ0$useState)(null);
26
- const labelTrackerRef = (0, $1PjJ0$useRef)({});
27
- const trackLabelVisibility = (0, $1PjJ0$useCallback)((div, visible)=>{
28
- labelTrackerRef.current[div.unit_id] = visible;
29
- if (Object.keys(labelTrackerRef.current).length == divisions.length) setUnlabeledDivisions(// @ts-ignore
30
- divisions.filter((d)=>labelTrackerRef.current[d.unit_id] == false));
31
- }, [
32
- labelTrackerRef,
33
- divisions
34
- ]);
35
- const value = trackLabelVisibility;
36
- return $8c8238faa5cde49c$var$h($8c8238faa5cde49c$var$LabelTrackerContext.Provider, {
37
- value: value
38
- }, $8c8238faa5cde49c$var$h($8c8238faa5cde49c$var$UnlabeledDivisionsContext.Provider, {
39
- value: unlabeledDivisions
40
- }, children));
41
- }
42
- function $8c8238faa5cde49c$export$f613830566442374({ division: division, nameForDivision: nameForDivision = (0, $bc17276da4abb183$export$c9757aeb43a67df0), axisType: axisType, ...rest }) {
43
- const trackLabelVisibility = (0, $1PjJ0$useContext)($8c8238faa5cde49c$var$LabelTrackerContext);
44
- return $8c8238faa5cde49c$var$h((0, $d254716a820e9c85$export$b4f0ca233b98f9af), {
45
- division: division,
46
- //halfWidth: div.bottomOverlap,
47
- label: nameForDivision(division),
48
- onLabelUpdated (label, visible) {
49
- trackLabelVisibility(division, visible);
50
- },
51
- ...rest
52
- });
53
- }
54
- function $8c8238faa5cde49c$var$UnlabeledUnitNames(props) {
55
- // Returns only unlabeled divisions
56
- const divisions = (0, $1PjJ0$useContext)($8c8238faa5cde49c$var$UnlabeledDivisionsContext);
57
- if (divisions == null) return null;
58
- return $8c8238faa5cde49c$var$h((0, $bc17276da4abb183$export$594d19cdd88f8c16), {
59
- divisions: divisions,
60
- ...props
61
- });
62
- }
63
- function $8c8238faa5cde49c$var$_BaseUnitsColumn(props) {
64
- /*
65
- A column with units and names either
66
- overlapping or offset to the right
67
- */ const { width: width, children: children, unitComponent: unitComponent = $8c8238faa5cde49c$export$f613830566442374, unitComponentProps: unitComponentProps, clipToFrame: clipToFrame, ...rest } = props;
68
- return $8c8238faa5cde49c$var$h($8c8238faa5cde49c$var$LabelTrackerProvider, [
69
- $8c8238faa5cde49c$var$h((0, $1PjJ0$LithologyColumn), {
70
- width: width,
71
- clipToFrame: clipToFrame
72
- }, [
73
- $8c8238faa5cde49c$var$h((0, $d254716a820e9c85$export$5d1cdfabe8dc8085), {
74
- unitComponent: unitComponent,
75
- unitComponentProps: unitComponentProps,
76
- ...rest
77
- })
78
- ]),
79
- children
80
- ]);
81
- }
82
- function $8c8238faa5cde49c$export$d8c3f2fdd653a082(props) {
83
- /*
84
- A column with units and names either
85
- overlapping or offset to the right
86
- */ const { columnWidth: columnWidth, width: width = 100, gutterWidth: gutterWidth = 10, labelOffset: labelOffset = 30, showLabels: showLabels = true, nameForDivision: nameForDivision, minimumLabelHeight: minimumLabelHeight = 0, axisType: axisType, ...rest } = props;
87
- return $8c8238faa5cde49c$var$h($8c8238faa5cde49c$var$_BaseUnitsColumn, {
88
- width: showLabels ? columnWidth : width,
89
- unitComponentProps: {
90
- nameForDivision: nameForDivision
91
- }
92
- }, [
93
- $8c8238faa5cde49c$var$h.if(showLabels)($8c8238faa5cde49c$var$UnlabeledUnitNames, {
94
- transform: `translate(${columnWidth + gutterWidth})`,
95
- paddingLeft: labelOffset,
96
- width: width - columnWidth - gutterWidth,
97
- minimumHeight: minimumLabelHeight,
98
- nameForDivision: nameForDivision,
99
- ...rest
100
- })
101
- ]);
102
- }
103
- function $8c8238faa5cde49c$export$a6684360fef0406e(props) {
104
- /*
105
- A column with units and names either
106
- overlapping or offset to the right
107
- */ const { width: width = 100, gutterWidth: gutterWidth = 10, labelOffset: labelOffset = 30, noteMode: noteMode = "unlabeled", showLabels: showLabels = true, showLabelColumn: showLabelColumn = true, noteComponent: noteComponent, shouldRenderNote: shouldRenderNote, ...rest } = props;
108
- let { columnWidth: columnWidth = width } = props;
109
- const labelColumnComponent = noteMode == "unlabeled" ? $8c8238faa5cde49c$var$UnlabeledUnitNames : (0, $bc17276da4abb183$export$594d19cdd88f8c16);
110
- return $8c8238faa5cde49c$var$h($8c8238faa5cde49c$var$_BaseUnitsColumn, {
111
- width: columnWidth,
112
- ...rest
113
- }, [
114
- $8c8238faa5cde49c$var$h.if(showLabelColumn)($8c8238faa5cde49c$var$ColumnLabel, {
115
- showLabels: showLabels,
116
- component: labelColumnComponent,
117
- columnWidth: columnWidth,
118
- gutterWidth: gutterWidth,
119
- labelOffset: labelOffset,
120
- width: width,
121
- noteComponent: noteComponent,
122
- showNote: shouldRenderNote
123
- })
124
- ]);
125
- }
126
- function $8c8238faa5cde49c$var$_ColumnLabel(props) {
127
- const { showLabels: showLabels, component: component, columnWidth: columnWidth, gutterWidth: gutterWidth, labelOffset: labelOffset, width: width, noteComponent: noteComponent, showNote: showNote } = props;
128
- if (!showLabels) return null;
129
- return $8c8238faa5cde49c$var$h(component, {
130
- transform: `translate(${columnWidth + gutterWidth})`,
131
- paddingLeft: labelOffset,
132
- width: width - columnWidth - gutterWidth,
133
- noteComponent: noteComponent,
134
- shouldRenderNote: showNote
135
- });
136
- }
137
- const $8c8238faa5cde49c$var$ColumnLabel = (0, $1PjJ0$memo)($8c8238faa5cde49c$var$_ColumnLabel);
138
- function $8c8238faa5cde49c$export$1dfa200d57964eee({ division: division, nColumns: nColumns = 2, ...rest }) {
139
- // This comes from CompositeUnits
140
- const { width: width } = (0, $1PjJ0$useContext)((0, $1PjJ0$ColumnLayoutContext));
141
- //const nCols = Math.min(nColumns, division.overlappingUnits.length+1)
142
- //console.log(division);
143
- return $8c8238faa5cde49c$var$h($8c8238faa5cde49c$export$f613830566442374, {
144
- division: division,
145
- ...rest,
146
- width: division.overlappingUnits.length > 0 ? width / nColumns : width,
147
- x: division.column * width / nColumns
148
- });
149
- }
150
-
151
-
152
- export {$8c8238faa5cde49c$export$f613830566442374 as TrackedLabeledUnit, $8c8238faa5cde49c$export$d8c3f2fdd653a082 as AnnotatedUnitsColumn, $8c8238faa5cde49c$export$a6684360fef0406e as CompositeUnitsColumn, $8c8238faa5cde49c$export$1dfa200d57964eee as CompositeUnitComponent};
153
- //# sourceMappingURL=composite.608a4ca2.js.map
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/column-views/src/units/composite.ts"],"sourcesContent":["import { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n useColumn,\n ColumnLayoutContext,\n ColumnAxisType,\n} from \"@macrostrat/column-components\";\nimport { defaultNameFunction, UnitNamesColumn } from \"./names\";\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n memo,\n} from \"react\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\nimport { LabeledUnit, UnitBoxes } from \"./boxes\";\nimport styles from \"./composite.module.sass\";\n\nconst h = hyperStyled(styles);\n\ninterface LabelTracker {\n [key: number]: boolean;\n}\n\nconst LabelTrackerContext = createContext(null);\nconst UnlabeledDivisionsContext = createContext(null);\n\nfunction LabelTrackerProvider(props) {\n const { children } = props;\n const { divisions } = useColumn();\n const [unlabeledDivisions, setUnlabeledDivisions] = useState<\n BaseUnit[] | null\n >(null);\n const labelTrackerRef = useRef<LabelTracker>({});\n const trackLabelVisibility = useCallback(\n (div, visible) => {\n labelTrackerRef.current[div.unit_id] = visible;\n if (Object.keys(labelTrackerRef.current).length == divisions.length) {\n setUnlabeledDivisions(\n // @ts-ignore\n divisions.filter((d) => labelTrackerRef.current[d.unit_id] == false)\n );\n }\n },\n [labelTrackerRef, divisions]\n );\n\n const value = trackLabelVisibility;\n return h(\n LabelTrackerContext.Provider,\n { value },\n h(\n UnlabeledDivisionsContext.Provider,\n { value: unlabeledDivisions },\n children\n )\n );\n}\n\nfunction TrackedLabeledUnit({\n division,\n nameForDivision = defaultNameFunction,\n axisType,\n ...rest\n}) {\n const trackLabelVisibility = useContext(LabelTrackerContext);\n return h(LabeledUnit, {\n division,\n //halfWidth: div.bottomOverlap,\n label: nameForDivision(division),\n onLabelUpdated(label, visible) {\n trackLabelVisibility(division, visible);\n },\n ...rest,\n });\n}\n\nfunction UnlabeledUnitNames(props) {\n // Returns only unlabeled divisions\n const divisions = useContext(UnlabeledDivisionsContext);\n if (divisions == null) return null;\n return h(UnitNamesColumn, { divisions, ...props });\n}\n\nfunction _BaseUnitsColumn(\n props: React.PropsWithChildren<{\n width: number;\n unitComponent?: React.FC<any>;\n unitComponentProps?: any;\n clipToFrame?: boolean;\n }>\n) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const {\n width,\n children,\n unitComponent = TrackedLabeledUnit,\n unitComponentProps,\n clipToFrame,\n ...rest\n } = props;\n\n return h(LabelTrackerProvider, [\n h(LithologyColumn, { width, clipToFrame }, [\n h(UnitBoxes, {\n unitComponent,\n unitComponentProps,\n ...rest,\n }),\n ]),\n children,\n ]);\n}\n\ntype BaseUnitProps = {\n width: number;\n showLabels?: boolean;\n columnWidth?: number;\n clipToFrame?: boolean;\n};\n\ntype ICompositeUnitProps = BaseUnitProps & {\n gutterWidth?: number;\n labelOffset?: number;\n paddingLeft?: number;\n nameForDivision?: (division: BaseUnit) => string;\n children?: React.ReactNode;\n unitComponent?: React.FC<any>;\n unitComponentProps?: any;\n noteMode?: \"labeled\" | \"unlabeled\";\n showLabelColumn?: boolean;\n noteComponent?: React.FC<any>;\n shouldRenderNote?: (d: BaseUnit) => boolean;\n};\n\ntype AnnotatedUnitProps = ICompositeUnitProps & {\n minimumLabelHeight?: number;\n axisType: ColumnAxisType;\n};\n\nfunction AnnotatedUnitsColumn(props: AnnotatedUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const {\n columnWidth,\n width = 100,\n gutterWidth = 10,\n labelOffset = 30,\n showLabels = true,\n nameForDivision,\n minimumLabelHeight = 0,\n axisType,\n ...rest\n } = props;\n\n return h(\n _BaseUnitsColumn,\n {\n width: showLabels ? columnWidth : width,\n unitComponentProps: { nameForDivision },\n },\n [\n h.if(showLabels)(UnlabeledUnitNames, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n minimumHeight: minimumLabelHeight,\n nameForDivision,\n ...rest,\n }),\n // h(UnitDataColumn, {\n // transform: `translate(${columnWidth + gutterWidth})`,\n // paddingLeft: labelOffset,\n // width: width - columnWidth - gutterWidth,\n // ...rest\n // })\n ]\n );\n}\n\nfunction CompositeUnitsColumn(props: ICompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const {\n width = 100,\n gutterWidth = 10,\n labelOffset = 30,\n noteMode = \"unlabeled\",\n showLabels = true,\n showLabelColumn = true,\n noteComponent,\n shouldRenderNote,\n ...rest\n } = props;\n\n let { columnWidth = width } = props;\n\n const labelColumnComponent =\n noteMode == \"unlabeled\" ? UnlabeledUnitNames : UnitNamesColumn;\n\n return h(_BaseUnitsColumn, { width: columnWidth, ...rest }, [\n h.if(showLabelColumn)(ColumnLabel, {\n showLabels,\n component: labelColumnComponent,\n columnWidth,\n gutterWidth,\n labelOffset,\n width,\n noteComponent,\n showNote: shouldRenderNote,\n }),\n ]);\n}\n\nfunction _ColumnLabel(props) {\n const {\n showLabels,\n component,\n columnWidth,\n gutterWidth,\n labelOffset,\n width,\n noteComponent,\n showNote,\n } = props;\n if (!showLabels) return null;\n return h(component, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n noteComponent,\n shouldRenderNote: showNote,\n });\n}\n\nconst ColumnLabel = memo(_ColumnLabel);\n\nexport function CompositeUnitComponent({ division, nColumns = 2, ...rest }) {\n // This comes from CompositeUnits\n const { width } = useContext(ColumnLayoutContext);\n\n //const nCols = Math.min(nColumns, division.overlappingUnits.length+1)\n //console.log(division);\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: division.overlappingUnits.length > 0 ? width / nColumns : width,\n x: (division.column * width) / nColumns,\n });\n}\n\nexport {\n CompositeUnitsColumn,\n AnnotatedUnitsColumn,\n TrackedLabeledUnit,\n ICompositeUnitProps,\n};\n"],"names":[],"version":3,"file":"composite.608a4ca2.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,wEAAK;AAE5B,MAAM,oCAAc,CAAC;IACnB,OAAO,wBAAE,EAAE,CAAC,MAAM,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE;AACpD;AAEA,MAAM,oCAA0B;IAC9B,QAAQ;IACR,gBAAgB;IAChB,YAAY;IACZ,aAAa;AACf;AAEO,SAAS,0CAAqB,UAAU;IAC7C,OAAO,wBACL,CAAA,GAAA,yCAAoB,GACpB,wBAAE,CAAA,GAAA,yCAAsB,GAAG,YAAY;QACrC,aAAa;QACb,wBAAE,CAAA,GAAA,wCAAS,GAAG;YAAE,QAAQ;QAAW;KACpC;AAEL;AAEA,SAAS;IACP,MAAM,CAAC,YAAY,iBAAiB,GAAG,CAAA,GAAA,yCAAW,EAAE;IACpD,MAAM,UAAE,MAAM,EAAE,GAAG,eAAe,GAAG;IAErC,MAAM,YAAY,CAAA,GAAA,cAAM,EACtB,IAAO,CAAA;YAAE,GAAG,UAAU;YAAE,QAAQ;QAAU,CAAA,GAC1C;QAAC;KAAW;IAEd,MAAM,MAAyB,CAAA,GAAA,mBAAW,EAAE,YAAY;IACxD,MAAM,gBAAgB,KAAK,QAAQ,CAAC,EAAE;IAEtC,OAAO,wBAAE,CAAA,GAAA,yCAAsB,GAAG,YAAY;QAC5C,wBAAE,iBAAiB;YACjB,wBAAE,mBAAmB;gBACnB,wBAAE,mCAAa;oBAAE,MAAM,eAAe;gBAAW;gBACjD,aAAa;gBACb,wBAAE,CAAA,GAAA,wCAAS,GAAG;oBAAE,QAAQ;gBAAW;aACpC;YACD,wBAAE,kBAAkB;gBAClB,wBACE,CAAA,GAAA,yCAAiB,GACjB;oBACE,eAAe;sCACf;oBACA,QAAQ;oBACR,GAAG,aAAa;gBAClB,GACA,wBAAE,CAAA,GAAA,yCAAgB,GAAG;oBACnB,GAAG,aAAa;oBAChB,OAAO;wBACL,MAAM;wBACN,QAAQ;oBACV;gBACF;aAEH;SACF;KACF;AACH;AAEO,SAAS;IACd,OAAO,wBAAE,CAAA,GAAA,yCAAoB,GAAG,wBAAE;AACpC","sources":["packages/column-views/src/carbon-isotopes/core.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport styles from \"./column.module.sass\";\n\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport BaseColumn from \"./column\";\nimport { ColumnNavigatorMap, MeasurementsLayer } from \"../map\";\nimport { MeasurementDataProvider } from \"./data-provider\";\nimport { MacrostratAPIProvider } from \"../providers\";\nimport { ColumnArgs, useColumnNav } from \"../units\";\nimport { useMemo } from \"react\";\nimport { FeatureCollection } from \"geojson\";\n\nconst h = hyper.styled(styles);\n\nconst ColumnTitle = (props) => {\n return h.if(props.data != null)(\"h1\", props.data?.col_name);\n};\n\nconst defaultArgs: ColumnArgs = {\n col_id: 2192,\n //unit_id: null,\n project_id: 10,\n status_code: \"in process\",\n};\n\nexport function CarbonIsotopesColumn(columnArgs) {\n return h(\n MacrostratAPIProvider,\n h(MeasurementDataProvider, columnArgs, [\n // @ts-ignore\n h(BaseColumn, { params: columnArgs }),\n ])\n );\n}\n\nfunction ColumnManager() {\n const [columnArgs, setCurrentColumn] = useColumnNav(defaultArgs);\n const { col_id, ...projectParams } = columnArgs;\n\n const colParams = useMemo(\n () => ({ ...columnArgs, format: \"geojson\" }),\n [columnArgs]\n );\n const res: FeatureCollection = useAPIResult(\"/columns\", colParams);\n const columnFeature = res?.features[0];\n\n return h(MeasurementDataProvider, columnArgs, [\n h(\"div.column-ui\", [\n h(\"div.column-view\", [\n h(ColumnTitle, { data: columnFeature?.properties }),\n // @ts-ignore\n h(BaseColumn, { params: columnArgs }),\n ]),\n h(\"div.map-column\", [\n h(\n ColumnNavigatorMap,\n {\n currentColumn: columnFeature,\n setCurrentColumn,\n margin: 0,\n ...projectParams,\n },\n h(MeasurementsLayer, {\n ...projectParams,\n style: {\n fill: \"dodgerblue\",\n stroke: \"blue\",\n },\n })\n ),\n ]),\n ]),\n ]);\n}\n\nexport function CarbonIsotopesApp() {\n return h(MacrostratAPIProvider, h(ColumnManager));\n}\n"],"names":[],"version":3,"file":"core.4db8e452.js.map"}