@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,167 @@
1
+ import {buildColumnsStyle as $1dbfddc9637b572c$export$d2995719c3a4ae17} from "./column-views.33dbc778.js";
2
+ import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0} from "./column-views.3de4dc43.js";
3
+ import {ColumnNavigationProvider as $09486427d129f589$export$8da3b11f62ebf019, useColumnNavigationStore as $09486427d129f589$export$642c2b57c47ea41} from "./column-views.9804efda.js";
4
+ import {buildKeyboardNavigationStyle as $ab1043903d5406ef$export$c613fba0aabeee13, ColumnKeyboardNavigation as $ab1043903d5406ef$export$8c41dd563753848} from "./column-views.b775c0a3.js";
5
+ import {useMapStyleOperator as $lRXWn$useMapStyleOperator} from "@macrostrat/mapbox-react";
6
+ import $lRXWn$macrostrathyper from "@macrostrat/hyper";
7
+ import {useMemo as $lRXWn$useMemo, useRef as $lRXWn$useRef} from "react";
8
+ import {setGeoJSON as $lRXWn$setGeoJSON} from "@macrostrat/mapbox-utils";
9
+ import {geoCentroid as $lRXWn$geoCentroid} from "d3-geo";
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+ function $9d5d216fa2057b5b$export$821baedf611249f3(props) {
20
+ const { columns: columns, onSelectColumn: onSelectColumn, onHoverColumn: onHoverColumn, selectedColumn: selectedColumn, hoveredColumn: hoveredColumn, projectID: projectID, inProcess: inProcess, ...rest } = props;
21
+ return (0, $lRXWn$macrostrathyper)((0, $09486427d129f589$export$8da3b11f62ebf019), {
22
+ columns: columns,
23
+ onSelectColumn: onSelectColumn,
24
+ onHoverColumn: onHoverColumn,
25
+ selectedColumn: selectedColumn,
26
+ hoveredColumn: hoveredColumn,
27
+ projectID: projectID,
28
+ inProcess: inProcess
29
+ }, (0, $lRXWn$macrostrathyper)($9d5d216fa2057b5b$var$_ColumnNavigationMap, rest));
30
+ }
31
+ function $9d5d216fa2057b5b$var$_ColumnNavigationMap(props) {
32
+ const { padding: padding = 50, children: children, columnColor: columnColor, showTriangulation: showTriangulation, triangulationColor: triangulationColor, keyboardNavigation: keyboardNavigation = true, ...rest } = props;
33
+ const overlayStyles = (0, $lRXWn$useMemo)(()=>{
34
+ let styles = [
35
+ (0, $1dbfddc9637b572c$export$d2995719c3a4ae17)(columnColor)
36
+ ];
37
+ if (showTriangulation) styles.push((0, $ab1043903d5406ef$export$c613fba0aabeee13)(triangulationColor));
38
+ return styles;
39
+ }, [
40
+ columnColor,
41
+ showTriangulation,
42
+ triangulationColor
43
+ ]);
44
+ return (0, $lRXWn$macrostrathyper)((0, $5593f90ffec284da$export$1e8149fc0d15fed0), {
45
+ ...rest,
46
+ boxZoom: false,
47
+ dragRotate: false,
48
+ overlayStyles: overlayStyles
49
+ }, [
50
+ (0, $lRXWn$macrostrathyper)($9d5d216fa2057b5b$var$ColumnsLayer),
51
+ (0, $lRXWn$macrostrathyper).if(keyboardNavigation)((0, $ab1043903d5406ef$export$8c41dd563753848), {
52
+ showTriangulation: showTriangulation
53
+ }),
54
+ children
55
+ ]);
56
+ }
57
+ function $9d5d216fa2057b5b$var$ColumnsLayer({ enabled: enabled = true }) {
58
+ const columns = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.columns);
59
+ const selectedColumn = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.selectedColumn);
60
+ const hoveredColumn = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.hoveredColumn);
61
+ const selectColumn = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.selectColumn);
62
+ const setHoveredColumn = (0, $09486427d129f589$export$642c2b57c47ea41)((state)=>state.setHoveredColumn);
63
+ (0, $lRXWn$useMapStyleOperator)((map)=>{
64
+ if (columns == null) return;
65
+ const data = {
66
+ type: "FeatureCollection",
67
+ features: columns
68
+ };
69
+ (0, $lRXWn$setGeoJSON)(map, "columns", data);
70
+ const mouseMove = (event)=>{
71
+ if (event.features.length == 0) return;
72
+ const hoveredFeature = event.features[0];
73
+ setHoveredColumn(hoveredFeature.id);
74
+ map.getCanvas().style.cursor = "pointer";
75
+ };
76
+ const mouseLeave = ()=>{
77
+ setHoveredColumn(null);
78
+ map.getCanvas().style.cursor = "";
79
+ };
80
+ const clickHandler = (event)=>{
81
+ if (event.features.length == 0) return;
82
+ const selectedColumn = event.features[0];
83
+ const id = selectedColumn.id;
84
+ selectColumn(id);
85
+ };
86
+ // Setup hover styles on map
87
+ const layers = [
88
+ "columns-points",
89
+ "columns-fill"
90
+ ];
91
+ map.on("mousemove", layers, mouseMove);
92
+ map.on("mouseleave", layers, mouseLeave);
93
+ map.on("click", layers, clickHandler);
94
+ return ()=>{
95
+ map.off("mouseenter", layers, mouseMove);
96
+ map.off("mouseleave", layers, mouseLeave);
97
+ map.off("click", layers, clickHandler);
98
+ };
99
+ }, [
100
+ columns,
101
+ enabled
102
+ ]);
103
+ const hoveredColumnRef = (0, $lRXWn$useRef)(null);
104
+ (0, $lRXWn$useMapStyleOperator)((map)=>{
105
+ const prevHoveredColumn = hoveredColumnRef.current;
106
+ if (hoveredColumn == prevHoveredColumn) return;
107
+ if (prevHoveredColumn != null) // Deselect previous column
108
+ map.setFeatureState({
109
+ source: "columns",
110
+ id: prevHoveredColumn
111
+ }, {
112
+ hover: false
113
+ });
114
+ hoveredColumnRef.current = hoveredColumn;
115
+ // Select the current column
116
+ map.setFeatureState({
117
+ source: "columns",
118
+ id: hoveredColumn
119
+ }, {
120
+ hover: true
121
+ });
122
+ }, [
123
+ hoveredColumn,
124
+ columns
125
+ ]);
126
+ /** Set feature state for selected columns */ const selectedColumnRef = (0, $lRXWn$useRef)(null);
127
+ const initialRenderRef = (0, $lRXWn$useRef)(true);
128
+ (0, $lRXWn$useMapStyleOperator)((map)=>{
129
+ if (columns == null) return;
130
+ const prevSelectedColumn = selectedColumnRef.current;
131
+ if (selectedColumn == prevSelectedColumn) return;
132
+ if (prevSelectedColumn != null) // Deselect previous column
133
+ map.setFeatureState({
134
+ source: "columns",
135
+ id: prevSelectedColumn
136
+ }, {
137
+ selected: false
138
+ });
139
+ selectedColumnRef.current = selectedColumn;
140
+ // Select the current column
141
+ map.setFeatureState({
142
+ source: "columns",
143
+ id: selectedColumn
144
+ }, {
145
+ selected: true
146
+ });
147
+ // Center the selected column
148
+ const columnGeometry = columns.find((d)=>d.id == selectedColumn)?.geometry;
149
+ if (columnGeometry == null) return;
150
+ const center = (0, $lRXWn$geoCentroid)(columnGeometry);
151
+ const isInitialRender = initialRenderRef.current;
152
+ map.easeTo({
153
+ center: center
154
+ }, {
155
+ duration: isInitialRender ? 0 : 500
156
+ });
157
+ if (isInitialRender) initialRenderRef.current = false;
158
+ }, [
159
+ selectedColumn,
160
+ columns
161
+ ]);
162
+ return null;
163
+ }
164
+
165
+
166
+ export {$9d5d216fa2057b5b$export$821baedf611249f3 as ColumnNavigationMap};
167
+ //# sourceMappingURL=column-views.3bec70d6.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/column-views/src/maps/column-navigation/mapbox/index.ts"],"sourcesContent":["import { useMapStyleOperator } from \"@macrostrat/mapbox-react\";\nimport h from \"@macrostrat/hyper\";\nimport { FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo, useRef } from \"react\";\nimport { buildColumnsStyle, InsetMapProps } from \"../../_shared\";\nimport { setGeoJSON } from \"@macrostrat/mapbox-utils\";\n\nimport {\n ColumnNavigationProvider,\n NavigationProviderProps,\n useColumnNavigationStore,\n} from \"./state\";\nimport { InsetMap } from \"../../_shared\";\nimport { geoCentroid } from \"d3-geo\";\nimport {\n ColumnKeyboardNavigation,\n buildKeyboardNavigationStyle,\n} from \"./keyboard-navigation\";\n\nexport interface ColumnNavigationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n selectedColumn?: number;\n hoveredColumn?: number;\n onSelectColumn?: (colID: number | null) => void;\n onHoverColumn?: (colID: number | null) => void;\n showTriangulation?: boolean;\n columnColor?: string;\n triangulationColor?: string;\n keyboardNavigation?: boolean;\n}\n\nexport function ColumnNavigationMap(\n props: ColumnNavigationMapProps & NavigationProviderProps\n) {\n const {\n columns,\n onSelectColumn,\n onHoverColumn,\n selectedColumn,\n hoveredColumn,\n projectID,\n inProcess,\n ...rest\n } = props;\n\n return h(\n ColumnNavigationProvider,\n {\n columns,\n onSelectColumn,\n onHoverColumn,\n selectedColumn,\n hoveredColumn,\n projectID,\n inProcess,\n },\n h(_ColumnNavigationMap, rest)\n );\n}\n\nfunction _ColumnNavigationMap(props: ColumnNavigationMapProps) {\n const {\n padding = 50,\n children,\n columnColor,\n showTriangulation,\n triangulationColor,\n keyboardNavigation = true,\n ...rest\n } = props;\n\n const overlayStyles = useMemo(() => {\n let styles: any[] = [buildColumnsStyle(columnColor)];\n if (showTriangulation) {\n styles.push(buildKeyboardNavigationStyle(triangulationColor));\n }\n return styles;\n }, [columnColor, showTriangulation, triangulationColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n h.if(keyboardNavigation)(ColumnKeyboardNavigation, { showTriangulation }),\n children,\n ]\n );\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useColumnNavigationStore((state) => state.columns);\n const selectedColumn = useColumnNavigationStore(\n (state) => state.selectedColumn\n );\n const hoveredColumn = useColumnNavigationStore(\n (state) => state.hoveredColumn\n );\n const selectColumn = useColumnNavigationStore((state) => state.selectColumn);\n const setHoveredColumn = useColumnNavigationStore(\n (state) => state.setHoveredColumn\n );\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n setGeoJSON(map, \"columns\", data);\n\n const mouseMove = (event) => {\n if (event.features.length == 0) return;\n const hoveredFeature = event.features[0];\n setHoveredColumn(hoveredFeature.id);\n map.getCanvas().style.cursor = \"pointer\";\n };\n const mouseLeave = () => {\n setHoveredColumn(null);\n map.getCanvas().style.cursor = \"\";\n };\n\n const clickHandler = (event) => {\n if (event.features.length == 0) return;\n const selectedColumn = event.features[0];\n const id = selectedColumn.id;\n selectColumn(id);\n };\n\n // Setup hover styles on map\n const layers = [\"columns-points\", \"columns-fill\"];\n map.on(\"mousemove\", layers, mouseMove);\n map.on(\"mouseleave\", layers, mouseLeave);\n map.on(\"click\", layers, clickHandler);\n\n return () => {\n map.off(\"mouseenter\", layers, mouseMove);\n map.off(\"mouseleave\", layers, mouseLeave);\n map.off(\"click\", layers, clickHandler);\n };\n },\n [columns, enabled]\n );\n\n const hoveredColumnRef = useRef(null);\n useMapStyleOperator(\n (map) => {\n const prevHoveredColumn = hoveredColumnRef.current;\n if (hoveredColumn == prevHoveredColumn) return;\n if (prevHoveredColumn != null) {\n // Deselect previous column\n map.setFeatureState(\n { source: \"columns\", id: prevHoveredColumn },\n { hover: false }\n );\n }\n hoveredColumnRef.current = hoveredColumn;\n // Select the current column\n map.setFeatureState(\n { source: \"columns\", id: hoveredColumn },\n { hover: true }\n );\n },\n [hoveredColumn, columns]\n );\n\n /** Set feature state for selected columns */\n const selectedColumnRef = useRef(null);\n const initialRenderRef = useRef(true);\n useMapStyleOperator(\n (map) => {\n if (columns == null) return;\n const prevSelectedColumn = selectedColumnRef.current;\n if (selectedColumn == prevSelectedColumn) return;\n if (prevSelectedColumn != null) {\n // Deselect previous column\n map.setFeatureState(\n { source: \"columns\", id: prevSelectedColumn },\n { selected: false }\n );\n }\n\n selectedColumnRef.current = selectedColumn;\n\n // Select the current column\n map.setFeatureState(\n { source: \"columns\", id: selectedColumn },\n { selected: true }\n );\n\n // Center the selected column\n const columnGeometry = columns.find(\n (d) => d.id == selectedColumn\n )?.geometry;\n if (columnGeometry == null) return;\n const center = geoCentroid(columnGeometry);\n\n const isInitialRender = initialRenderRef.current;\n map.easeTo({ center }, { duration: isInitialRender ? 0 : 500 });\n if (isInitialRender) {\n initialRenderRef.current = false;\n }\n },\n [selectedColumn, columns]\n );\n\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.3bec70d6.js.map"}
@@ -0,0 +1,66 @@
1
+ import {useMemo as $8KE3g$useMemo, useCallback as $8KE3g$useCallback} from "react";
2
+ import {getBasicMapStyle as $8KE3g$getBasicMapStyle, MapView as $8KE3g$MapView} from "@macrostrat/map-interface";
3
+ import $8KE3g$macrostrathyper from "@macrostrat/hyper";
4
+ import {MapboxMapProvider as $8KE3g$MapboxMapProvider} from "@macrostrat/mapbox-react";
5
+ import {useInDarkMode as $8KE3g$useInDarkMode} from "@macrostrat/ui-components";
6
+ import {removeMapLabels as $8KE3g$removeMapLabels, removeSourceFromStyle as $8KE3g$removeSourceFromStyle} from "@macrostrat/mapbox-utils";
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ function $5593f90ffec284da$export$1e8149fc0d15fed0({ controls: controls, className: className, children: children, style: style, mapStyle: mapStyle, accessToken: accessToken, showLabels: showLabels = false, showAdmin: showAdmin = false, showRoads: showRoads = false, ...rest }) {
15
+ const inDarkMode = (0, $8KE3g$useInDarkMode)();
16
+ const _style = (0, $8KE3g$useMemo)(()=>{
17
+ return mapStyle ?? (0, $8KE3g$getBasicMapStyle)({
18
+ inDarkMode: inDarkMode
19
+ });
20
+ }, [
21
+ mapStyle,
22
+ inDarkMode
23
+ ]);
24
+ const transformStyle = (0, $8KE3g$useCallback)((style)=>{
25
+ let newStyle = style;
26
+ if (!showLabels) newStyle = (0, $8KE3g$removeMapLabels)(newStyle);
27
+ if (!showAdmin) newStyle = (0, $8KE3g$removeSourceFromStyle)(newStyle, null, "admin");
28
+ if (!showRoads) {
29
+ newStyle = (0, $8KE3g$removeSourceFromStyle)(newStyle, null, "road");
30
+ newStyle = (0, $8KE3g$removeSourceFromStyle)(newStyle, null, "aeroway");
31
+ }
32
+ return newStyle;
33
+ }, [
34
+ mapStyle,
35
+ showLabels,
36
+ showRoads,
37
+ showAdmin
38
+ ]);
39
+ return (0, $8KE3g$macrostrathyper)("div.inset-map", {
40
+ className: className,
41
+ style: style
42
+ }, [
43
+ (0, $8KE3g$macrostrathyper)((0, $8KE3g$MapboxMapProvider), [
44
+ controls,
45
+ (0, $8KE3g$macrostrathyper)((0, $8KE3g$MapView), {
46
+ style: _style,
47
+ accessToken: accessToken,
48
+ standalone: true,
49
+ /* Default map position that centers on the bulk of Macrostrat columns
50
+ */ mapPosition: {
51
+ camera: {
52
+ lng: -100,
53
+ lat: 38,
54
+ altitude: 5000000
55
+ }
56
+ },
57
+ transformStyle: transformStyle,
58
+ ...rest
59
+ }, children)
60
+ ])
61
+ ]);
62
+ }
63
+
64
+
65
+ export {$5593f90ffec284da$export$1e8149fc0d15fed0 as InsetMap};
66
+ //# sourceMappingURL=column-views.3de4dc43.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;AA0BO,SAAS,0CAAS,YACvB,QAAQ,aACR,SAAS,YACT,QAAQ,SACR,KAAK,YACL,QAAQ,eACR,WAAW,cACX,aAAa,kBACb,YAAY,kBACZ,YAAY,OACZ,GAAG,MACW;IACd,MAAM,aAAa,CAAA,GAAA,oBAAY;IAC/B,MAAM,SAAS,CAAA,GAAA,cAAM,EAAE;QACrB,OAAO,YAAY,CAAA,GAAA,uBAAe,EAAE;wBAAE;QAAW;IACnD,GAAG;QAAC;QAAU;KAAW;IAEzB,MAAM,iBAAiB,CAAA,GAAA,kBAAU,EAC/B,CAAC;QACC,IAAI,WAAW;QACf,IAAI,CAAC,YACH,WAAW,CAAA,GAAA,sBAAc,EAAE;QAE7B,IAAI,CAAC,WACH,WAAW,CAAA,GAAA,4BAAoB,EAAE,UAAU,MAAM;QAEnD,IAAI,CAAC,WAAW;YACd,WAAW,CAAA,GAAA,4BAAoB,EAAE,UAAU,MAAM;YACjD,WAAW,CAAA,GAAA,4BAAoB,EAAE,UAAU,MAAM;QACnD;QACA,OAAO;IACT,GACA;QAAC;QAAU;QAAY;QAAW;KAAU;IAG9C,OAAO,CAAA,GAAA,sBAAA,EAAE,iBAAiB;mBAAE;eAAW;IAAM,GAAG;QAC9C,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,wBAAgB,GAAG;YACnB;YACA,CAAA,GAAA,sBAAA,EACE,CAAA,GAAA,cAAM,GACN;gBACE,OAAO;6BACP;gBACA,YAAY;gBACZ;WACC,GACD,aAAa;oBACX,QAAQ;wBACN,KAAK;wBACL,KAAK;wBACL,UAAU;oBACZ;gBACF;gCACA;gBACA,GAAG,IAAI;YACT,GACA;SAEH;KACF;AACH","sources":["packages/column-views/src/maps/_shared/inset-map.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport {\n MapView,\n getBasicMapStyle,\n MapViewProps,\n} from \"@macrostrat/map-interface\";\nimport h from \"@macrostrat/hyper\";\nimport { MapboxMapProvider } from \"@macrostrat/mapbox-react\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport {\n removeMapLabels,\n removeSourceFromStyle,\n} from \"@macrostrat/mapbox-utils\";\nimport type { ReactNode, CSSProperties } from \"react\";\n\nexport interface InsetMapProps extends Omit<MapViewProps, \"style\"> {\n controls?: ReactNode;\n className?: string;\n children?: ReactNode;\n style?: CSSProperties;\n mapStyle?: mapboxgl.Style | string;\n showLabels?: boolean;\n showAdmin?: boolean;\n showRoads?: boolean;\n}\n\nexport function InsetMap({\n controls,\n className,\n children,\n style,\n mapStyle,\n accessToken,\n showLabels = false,\n showAdmin = false,\n showRoads = false,\n ...rest\n}: InsetMapProps) {\n const inDarkMode = useInDarkMode();\n const _style = useMemo((): mapboxgl.Style | string => {\n return mapStyle ?? getBasicMapStyle({ inDarkMode });\n }, [mapStyle, inDarkMode]);\n\n const transformStyle = useCallback(\n (style) => {\n let newStyle = style;\n if (!showLabels) {\n newStyle = removeMapLabels(newStyle);\n }\n if (!showAdmin) {\n newStyle = removeSourceFromStyle(newStyle, null, \"admin\");\n }\n if (!showRoads) {\n newStyle = removeSourceFromStyle(newStyle, null, \"road\");\n newStyle = removeSourceFromStyle(newStyle, null, \"aeroway\");\n }\n return newStyle;\n },\n [mapStyle, showLabels, showRoads, showAdmin]\n );\n\n return h(\"div.inset-map\", { className, style }, [\n h(MapboxMapProvider, [\n controls,\n h(\n MapView,\n {\n style: _style,\n accessToken,\n standalone: true,\n /* Default map position that centers on the bulk of Macrostrat columns\n */\n mapPosition: {\n camera: {\n lng: -100,\n lat: 38,\n altitude: 5000000,\n },\n },\n transformStyle,\n ...rest,\n },\n children\n ),\n ]),\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.3de4dc43.js.map"}
@@ -1,8 +1,8 @@
1
- import {SimpleUnitsColumn as $4c8184c4a7317749$export$2006342ddaa547c6} from "./units.361088d4.js";
2
- import {IsotopesColumn as $d5a3eba6c540ff58$export$5d8aa8022c284748} from "./isotopes-column.7cb5cc45.js";
3
- import {MacrostratColumnProvider as $29bf41d89292aad4$export$9e42f9b6e0d67c7d} from "./providers.cd1e652f.js";
4
- import $hEPNH$columnmodule7f47d25ajs from "./column.module.7f47d25a.js";
5
- import "./column.module.cbb072df.css";
1
+ import {SimpleUnitsColumn as $4c8184c4a7317749$export$2006342ddaa547c6} from "./column-views.343b5aa2.js";
2
+ import {IsotopesColumn as $d5a3eba6c540ff58$export$5d8aa8022c284748} from "./column-views.ac9fb5e1.js";
3
+ import {MacrostratColumnProvider as $774a5efa27d1c77b$export$9e42f9b6e0d67c7d} from "./column-views.28ee5f43.js";
4
+ import $hEPNH$columnviews94b5cca1js from "./column-views.94b5cca1.js";
5
+ import "./column-views.a7be0a4a.css";
6
6
  import $hEPNH$macrostrathyper from "@macrostrat/hyper";
7
7
  import {group as $hEPNH$group} from "d3-array";
8
8
  import {useAPIResult as $hEPNH$useAPIResult} from "@macrostrat/ui-components";
@@ -22,7 +22,7 @@ function $parcel$interopDefault(a) {
22
22
 
23
23
 
24
24
 
25
- const $132b1b0fb905c489$var$h = (0, $hEPNH$macrostrathyper).styled((0, ($parcel$interopDefault($hEPNH$columnmodule7f47d25ajs))));
25
+ const $132b1b0fb905c489$var$h = (0, $hEPNH$macrostrathyper).styled((0, ($parcel$interopDefault($hEPNH$columnviews94b5cca1js))));
26
26
  const $132b1b0fb905c489$var$AgeAxis = ({ ticks: ticks })=>{
27
27
  const { pixelHeight: pixelHeight } = (0, $hEPNH$useContext)((0, $hEPNH$ColumnContext));
28
28
  // A tick roughly every 40 pixels
@@ -46,7 +46,7 @@ const $132b1b0fb905c489$export$6e2c8f0811a474ce = (props)=>{
46
46
  const targetHeight = 50 * data.length;
47
47
  pixelScale = Math.ceil(targetHeight / dAge);
48
48
  }
49
- return $132b1b0fb905c489$var$h((0, $29bf41d89292aad4$export$9e42f9b6e0d67c7d), {
49
+ return $132b1b0fb905c489$var$h((0, $774a5efa27d1c77b$export$9e42f9b6e0d67c7d), {
50
50
  divisions: data,
51
51
  range: range,
52
52
  pixelsPerMeter: pixelScale
@@ -114,4 +114,4 @@ var $132b1b0fb905c489$export$2e2bcd8739ae039 = $132b1b0fb905c489$var$Column;
114
114
 
115
115
 
116
116
  export {$132b1b0fb905c489$export$6e2c8f0811a474ce as Section, $132b1b0fb905c489$export$2e2bcd8739ae039 as default};
117
- //# sourceMappingURL=column.db058031.js.map
117
+ //# sourceMappingURL=column-views.3f4db8cb.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;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;AAIA,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 } from \"../units\";\nimport { useContext } from \"react\";\nimport { IsotopesColumn } from \"./isotopes-column\";\nimport { MacrostratColumnProvider } from \"../data-provider\";\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\ntype ColumnArgs = any;\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-views.3f4db8cb.js.map"}
@@ -0,0 +1,206 @@
1
+ import {useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-views.30646469.js";
2
+ import {buildColumnsStyle as $1dbfddc9637b572c$export$d2995719c3a4ae17} from "./column-views.33dbc778.js";
3
+ import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0} from "./column-views.3de4dc43.js";
4
+ import {useMapClickHandler as $6wt91$useMapClickHandler, useMapStyleOperator as $6wt91$useMapStyleOperator, useMapEaseTo as $6wt91$useMapEaseTo} from "@macrostrat/mapbox-react";
5
+ import {LngLatBounds as $6wt91$LngLatBounds} from "mapbox-gl";
6
+ import $6wt91$macrostrathyper from "@macrostrat/hyper";
7
+ import {useMemo as $6wt91$useMemo} from "react";
8
+ import {setGeoJSON as $6wt91$setGeoJSON} from "@macrostrat/mapbox-utils";
9
+ import {buildCrossSectionLayers as $6wt91$buildCrossSectionLayers} from "@macrostrat/map-styles";
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+ function $dcd183b733f66144$export$8e7d97509e84cc49(props) {
20
+ const { padding: padding = 50, children: children, columnColor: columnColor, ...rest } = props;
21
+ const overlayStyles = (0, $6wt91$useMemo)(()=>{
22
+ return [
23
+ (0, $1dbfddc9637b572c$export$d2995719c3a4ae17)(columnColor),
24
+ $dcd183b733f66144$var$selectedColumnsStyle,
25
+ $dcd183b733f66144$var$lineOfSectionStyle
26
+ ];
27
+ }, [
28
+ columnColor
29
+ ]);
30
+ return (0, $6wt91$macrostrathyper)((0, $5593f90ffec284da$export$1e8149fc0d15fed0), {
31
+ ...rest,
32
+ boxZoom: false,
33
+ dragRotate: false,
34
+ overlayStyles: overlayStyles
35
+ }, [
36
+ (0, $6wt91$macrostrathyper)($dcd183b733f66144$var$ColumnsLayer),
37
+ (0, $6wt91$macrostrathyper)($dcd183b733f66144$var$SelectedColumnsLayer),
38
+ (0, $6wt91$macrostrathyper)($dcd183b733f66144$var$MapClickHandler),
39
+ (0, $6wt91$macrostrathyper)($dcd183b733f66144$var$SectionLine, {
40
+ padding: padding
41
+ }),
42
+ children
43
+ ]);
44
+ }
45
+ function $dcd183b733f66144$var$MapClickHandler() {
46
+ const onClickMap = (0, $74e211dc185c20b4$export$21398703d3a9bb4d)((state)=>state.onClickMap);
47
+ (0, $6wt91$useMapClickHandler)((e)=>{
48
+ onClickMap(e, {
49
+ type: "Point",
50
+ coordinates: e.lngLat.toArray()
51
+ });
52
+ }, [
53
+ onClickMap
54
+ ]);
55
+ return null;
56
+ }
57
+ function $dcd183b733f66144$var$SelectedColumnsLayer() {
58
+ const focusedColumns = (0, $74e211dc185c20b4$export$21398703d3a9bb4d)((state)=>state.focusedColumns);
59
+ (0, $6wt91$useMapStyleOperator)((map)=>{
60
+ let features = focusedColumns;
61
+ const data = {
62
+ type: "FeatureCollection",
63
+ features: features
64
+ };
65
+ const columnCentroidLine = {
66
+ type: "Feature",
67
+ geometry: {
68
+ type: "LineString",
69
+ coordinates: features.map((col)=>col.properties.centroid.geometry.coordinates)
70
+ },
71
+ properties: {}
72
+ };
73
+ (0, $6wt91$setGeoJSON)(map, "selected-columns", data);
74
+ (0, $6wt91$setGeoJSON)(map, "selected-column-centroids", {
75
+ type: "FeatureCollection",
76
+ features: [
77
+ columnCentroidLine
78
+ ]
79
+ });
80
+ }, [
81
+ focusedColumns
82
+ ]);
83
+ return null;
84
+ }
85
+ function $dcd183b733f66144$var$ColumnsLayer({ enabled: enabled = true }) {
86
+ const columns = (0, $74e211dc185c20b4$export$21398703d3a9bb4d)((state)=>state.columns);
87
+ (0, $6wt91$useMapStyleOperator)((map)=>{
88
+ if (columns == null) return;
89
+ const data = {
90
+ type: "FeatureCollection",
91
+ features: columns
92
+ };
93
+ console.log(" columns", data);
94
+ (0, $6wt91$setGeoJSON)(map, "columns", data);
95
+ }, [
96
+ columns,
97
+ enabled
98
+ ]);
99
+ return null;
100
+ }
101
+ const $dcd183b733f66144$var$selectedColumnsStyle = {
102
+ sources: {
103
+ "selected-columns": $dcd183b733f66144$var$buildGeoJSONSource(),
104
+ "selected-column-centroids": $dcd183b733f66144$var$buildGeoJSONSource()
105
+ },
106
+ layers: [
107
+ {
108
+ id: "selected-columns-fill",
109
+ type: "fill",
110
+ source: "selected-columns",
111
+ paint: {
112
+ "fill-color": "rgba(255, 0, 0, 0.1)"
113
+ }
114
+ },
115
+ {
116
+ id: "selected-column-centroids-line",
117
+ type: "line",
118
+ source: "selected-column-centroids",
119
+ paint: {
120
+ "line-color": "rgba(255, 0, 0, 0.8)",
121
+ "line-width": 2,
122
+ "line-dasharray": [
123
+ 2,
124
+ 2
125
+ ]
126
+ }
127
+ },
128
+ {
129
+ id: "selected-column-centroids-points",
130
+ type: "circle",
131
+ source: "selected-column-centroids",
132
+ paint: {
133
+ "circle-radius": 4,
134
+ "circle-color": "rgba(255, 0, 0, 0.8)"
135
+ }
136
+ }
137
+ ]
138
+ };
139
+ const $dcd183b733f66144$var$lineOfSectionStyle = {
140
+ sources: {
141
+ elevationMarker: $dcd183b733f66144$var$buildGeoJSONSource(),
142
+ crossSectionLine: $dcd183b733f66144$var$buildGeoJSONSource(),
143
+ crossSectionEndpoints: $dcd183b733f66144$var$buildGeoJSONSource()
144
+ },
145
+ layers: (0, $6wt91$buildCrossSectionLayers)()
146
+ };
147
+ function $dcd183b733f66144$var$buildGeoJSONSource(data = null) {
148
+ return {
149
+ type: "geojson",
150
+ data: data ?? {
151
+ type: "FeatureCollection",
152
+ features: []
153
+ }
154
+ };
155
+ }
156
+ function $dcd183b733f66144$var$SectionLine({ padding: padding }) {
157
+ const focusedLine = (0, $74e211dc185c20b4$export$21398703d3a9bb4d)((state)=>state.focusedLine);
158
+ // Setup focused line
159
+ (0, $6wt91$useMapStyleOperator)((map)=>{
160
+ if (focusedLine == null) return;
161
+ const data = {
162
+ type: "FeatureCollection",
163
+ features: [
164
+ {
165
+ type: "Feature",
166
+ geometry: focusedLine,
167
+ properties: {
168
+ id: "focusedLine"
169
+ }
170
+ }
171
+ ]
172
+ };
173
+ (0, $6wt91$setGeoJSON)(map, "crossSectionLine", data);
174
+ (0, $6wt91$setGeoJSON)(map, "crossSectionEndpoints", {
175
+ type: "FeatureCollection",
176
+ features: focusedLine.coordinates.map((coord)=>({
177
+ type: "Feature",
178
+ geometry: {
179
+ type: "Point",
180
+ coordinates: coord
181
+ },
182
+ properties: {}
183
+ }))
184
+ });
185
+ }, [
186
+ focusedLine
187
+ ]);
188
+ const bounds = (0, $6wt91$useMemo)(()=>{
189
+ if (focusedLine == null || focusedLine?.coordinates.length < 2) return null;
190
+ let bounds = new (0, $6wt91$LngLatBounds)();
191
+ for (let coord of focusedLine.coordinates)bounds.extend(coord);
192
+ return bounds;
193
+ }, [
194
+ focusedLine
195
+ ]);
196
+ (0, $6wt91$useMapEaseTo)({
197
+ bounds: bounds,
198
+ padding: padding,
199
+ trackResize: true
200
+ });
201
+ return null;
202
+ }
203
+
204
+
205
+ export {$dcd183b733f66144$export$8e7d97509e84cc49 as ColumnCorrelationMap};
206
+ //# sourceMappingURL=column-views.40c1f361.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/column-views/src/maps/column-correlation/core.ts"],"sourcesContent":["import { MapViewProps } from \"@macrostrat/map-interface\";\nimport {\n useMapClickHandler,\n useMapEaseTo,\n useMapStyleOperator,\n} from \"@macrostrat/mapbox-react\";\nimport { LngLatBounds } from \"mapbox-gl\";\nimport h from \"@macrostrat/hyper\";\nimport { Feature, FeatureCollection } from \"geojson\";\nimport { ReactNode, useMemo } from \"react\";\nimport { setGeoJSON } from \"@macrostrat/mapbox-utils\";\n\nimport { useCorrelationMapStore } from \"./state\";\nimport { buildColumnsStyle, InsetMap, InsetMapProps } from \"../_shared\";\nimport { buildCrossSectionLayers } from \"@macrostrat/map-styles\";\n\nexport interface CorrelationMapProps extends InsetMapProps {\n padding?: number;\n children?: ReactNode;\n accessToken?: string;\n columnColor?: string;\n}\n\nexport function ColumnCorrelationMap(props: CorrelationMapProps) {\n const { padding = 50, children, columnColor, ...rest } = props;\n\n const overlayStyles = useMemo(() => {\n return [\n buildColumnsStyle(columnColor),\n selectedColumnsStyle,\n lineOfSectionStyle,\n ];\n }, [columnColor]);\n\n return h(\n InsetMap,\n {\n ...rest,\n boxZoom: false,\n dragRotate: false,\n overlayStyles,\n },\n [\n h(ColumnsLayer),\n h(SelectedColumnsLayer),\n h(MapClickHandler),\n h(SectionLine, { padding }),\n children,\n ]\n );\n}\n\nfunction MapClickHandler() {\n const onClickMap = useCorrelationMapStore((state) => state.onClickMap);\n\n useMapClickHandler(\n (e) => {\n onClickMap(e, { type: \"Point\", coordinates: e.lngLat.toArray() });\n },\n [onClickMap]\n );\n\n return null;\n}\n\nfunction SelectedColumnsLayer() {\n const focusedColumns = useCorrelationMapStore(\n (state) => state.focusedColumns\n );\n\n useMapStyleOperator(\n (map) => {\n let features = focusedColumns;\n\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features,\n };\n\n const columnCentroidLine: Feature = {\n type: \"Feature\",\n geometry: {\n type: \"LineString\",\n coordinates: features.map(\n (col) => col.properties.centroid.geometry.coordinates\n ),\n },\n properties: {},\n };\n\n setGeoJSON(map, \"selected-columns\", data);\n setGeoJSON(map, \"selected-column-centroids\", {\n type: \"FeatureCollection\",\n features: [columnCentroidLine],\n });\n },\n [focusedColumns]\n );\n return null;\n}\n\nfunction ColumnsLayer({ enabled = true }) {\n const columns = useCorrelationMapStore((state) => state.columns);\n\n useMapStyleOperator(\n (map) => {\n if (columns == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: columns,\n };\n\n console.log(\" columns\", data);\n setGeoJSON(map, \"columns\", data);\n },\n [columns, enabled]\n );\n return null;\n}\n\nconst selectedColumnsStyle = {\n sources: {\n \"selected-columns\": buildGeoJSONSource(),\n \"selected-column-centroids\": buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"selected-columns-fill\",\n type: \"fill\",\n source: \"selected-columns\",\n paint: {\n \"fill-color\": \"rgba(255, 0, 0, 0.1)\",\n },\n },\n {\n id: \"selected-column-centroids-line\",\n type: \"line\",\n source: \"selected-column-centroids\",\n paint: {\n \"line-color\": \"rgba(255, 0, 0, 0.8)\",\n \"line-width\": 2,\n \"line-dasharray\": [2, 2],\n },\n },\n {\n id: \"selected-column-centroids-points\",\n type: \"circle\",\n source: \"selected-column-centroids\",\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": \"rgba(255, 0, 0, 0.8)\",\n },\n },\n ],\n};\n\nconst lineOfSectionStyle = {\n sources: {\n elevationMarker: buildGeoJSONSource(),\n crossSectionLine: buildGeoJSONSource(),\n crossSectionEndpoints: buildGeoJSONSource(),\n },\n layers: buildCrossSectionLayers(),\n};\n\nfunction buildGeoJSONSource(data: FeatureCollection | null = null) {\n return {\n type: \"geojson\",\n data: data ?? {\n type: \"FeatureCollection\",\n features: [],\n },\n };\n}\n\nfunction SectionLine({ padding }: { padding: number }) {\n const focusedLine = useCorrelationMapStore((state) => state.focusedLine);\n\n // Setup focused line\n useMapStyleOperator(\n (map) => {\n if (focusedLine == null) {\n return;\n }\n const data: FeatureCollection = {\n type: \"FeatureCollection\",\n features: [\n {\n type: \"Feature\",\n geometry: focusedLine,\n properties: { id: \"focusedLine\" },\n },\n ],\n };\n\n setGeoJSON(map, \"crossSectionLine\", data);\n setGeoJSON(map, \"crossSectionEndpoints\", {\n type: \"FeatureCollection\",\n features: focusedLine.coordinates.map((coord) => ({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: coord },\n properties: {},\n })),\n });\n },\n [focusedLine]\n );\n\n const bounds = useMemo(() => {\n if (focusedLine == null || focusedLine?.coordinates.length < 2) {\n return null;\n }\n let bounds = new LngLatBounds();\n for (let coord of focusedLine.coordinates) {\n bounds.extend(coord);\n }\n return bounds;\n }, [focusedLine]);\n\n useMapEaseTo({ bounds, padding, trackResize: true });\n\n return null;\n}\n"],"names":[],"version":3,"file":"column-views.40c1f361.js.map"}
@@ -10,4 +10,4 @@ $b571b03091fbb2c9$export$66e2544324d5808e = `kMKW0a_unit-label`;
10
10
 
11
11
 
12
12
  export {$b571b03091fbb2c9$exports as default};
13
- //# sourceMappingURL=composite.module.0638e7ee.js.map
13
+ //# sourceMappingURL=column-views.40cd59b5.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;AAAA,IAAA;AAAA,4CAA+B,CAAC,iBAAiB,CAAC","sources":["packages/column-views/src/units/composite.module.sass"],"sourcesContent":[".unit-label\n text-align: center\n"],"names":[],"version":3,"file":"composite.module.0638e7ee.js.map"}
1
+ {"mappings":";;;;;;;AAAA,IAAA;AAAA,4CAA+B,CAAC,iBAAiB,CAAC","sources":["packages/column-views/src/units/composite.module.sass"],"sourcesContent":[".unit-label\n text-align: center\n"],"names":[],"version":3,"file":"column-views.40cd59b5.js.map"}
@@ -0,0 +1,46 @@
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, "timescale-column", () => $6cbea5de739af804$export$82c2e1a892d790ab, (v) => $6cbea5de739af804$export$82c2e1a892d790ab = v);
9
+ $parcel$export($6cbea5de739af804$exports, "section-main", () => $6cbea5de739af804$export$add6075ee40659c8, (v) => $6cbea5de739af804$export$add6075ee40659c8 = v);
10
+ $parcel$export($6cbea5de739af804$exports, "section-units-container", () => $6cbea5de739af804$export$37c0a390e37eb2da, (v) => $6cbea5de739af804$export$37c0a390e37eb2da = v);
11
+ $parcel$export($6cbea5de739af804$exports, "main-column", () => $6cbea5de739af804$export$9c88f9a435c40ccb, (v) => $6cbea5de739af804$export$9c88f9a435c40ccb = v);
12
+ $parcel$export($6cbea5de739af804$exports, "unconformity-labels", () => $6cbea5de739af804$export$d726faed2da21993, (v) => $6cbea5de739af804$export$d726faed2da21993 = v);
13
+ $parcel$export($6cbea5de739af804$exports, "unconformity", () => $6cbea5de739af804$export$7b4a6d978979c0fa, (v) => $6cbea5de739af804$export$7b4a6d978979c0fa = v);
14
+ $parcel$export($6cbea5de739af804$exports, "giga", () => $6cbea5de739af804$export$197e40aa3a484017, (v) => $6cbea5de739af804$export$197e40aa3a484017 = v);
15
+ $parcel$export($6cbea5de739af804$exports, "mega", () => $6cbea5de739af804$export$580f1e8cf64f2815, (v) => $6cbea5de739af804$export$580f1e8cf64f2815 = v);
16
+ $parcel$export($6cbea5de739af804$exports, "large", () => $6cbea5de739af804$export$f09585a853dddd32, (v) => $6cbea5de739af804$export$f09585a853dddd32 = v);
17
+ $parcel$export($6cbea5de739af804$exports, "small", () => $6cbea5de739af804$export$3c17b0e969a90510, (v) => $6cbea5de739af804$export$3c17b0e969a90510 = v);
18
+ $parcel$export($6cbea5de739af804$exports, "unconformity-text", () => $6cbea5de739af804$export$925235908943319a, (v) => $6cbea5de739af804$export$925235908943319a = v);
19
+ var $6cbea5de739af804$export$e908cef0cccb98df;
20
+ var $6cbea5de739af804$export$82c2e1a892d790ab;
21
+ var $6cbea5de739af804$export$add6075ee40659c8;
22
+ var $6cbea5de739af804$export$37c0a390e37eb2da;
23
+ var $6cbea5de739af804$export$9c88f9a435c40ccb;
24
+ var $6cbea5de739af804$export$d726faed2da21993;
25
+ var $6cbea5de739af804$export$7b4a6d978979c0fa;
26
+ var $6cbea5de739af804$export$197e40aa3a484017;
27
+ var $6cbea5de739af804$export$580f1e8cf64f2815;
28
+ var $6cbea5de739af804$export$f09585a853dddd32;
29
+ var $6cbea5de739af804$export$3c17b0e969a90510;
30
+ var $6cbea5de739af804$export$925235908943319a;
31
+ $6cbea5de739af804$export$e908cef0cccb98df = "column-container_afc440";
32
+ $6cbea5de739af804$export$82c2e1a892d790ab = "timescale-column_afc440";
33
+ $6cbea5de739af804$export$add6075ee40659c8 = "section-main_afc440";
34
+ $6cbea5de739af804$export$37c0a390e37eb2da = "section-units-container_afc440";
35
+ $6cbea5de739af804$export$9c88f9a435c40ccb = "main-column_afc440";
36
+ $6cbea5de739af804$export$d726faed2da21993 = "unconformity-labels_afc440";
37
+ $6cbea5de739af804$export$7b4a6d978979c0fa = "unconformity_afc440";
38
+ $6cbea5de739af804$export$197e40aa3a484017 = "giga_afc440";
39
+ $6cbea5de739af804$export$580f1e8cf64f2815 = "mega_afc440";
40
+ $6cbea5de739af804$export$f09585a853dddd32 = "large_afc440";
41
+ $6cbea5de739af804$export$3c17b0e969a90510 = "small_afc440";
42
+ $6cbea5de739af804$export$925235908943319a = "unconformity-text_afc440";
43
+
44
+
45
+ export {$6cbea5de739af804$exports as default};
46
+ //# sourceMappingURL=column-views.4637f4ce.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAXA,4CAAqC;AACrC,4CAAqC;AACrC,4CAAiC;AACjC,4CAA4C;AAC5C,4CAAgC;AAChC,4CAAwC;AACxC,4CAAiC;AACjC,4CAAyB;AACzB,4CAAyB;AACzB,4CAA0B;AAC1B,4CAA0B;AAC1B,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-emphasized-color, #000)\n --column-text-color: var(--text-emphasized-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-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\nbody:global(.dark-mode) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\n.column-container :global\n .column\n display: flex\n flex-direction: row\n position: relative\n\n .unit\n stroke: var(--column-stroke-color)\n stroke-width: 1px\n\n .selection-overlay\n fill: var(--selection-overlay-color, red)\n fill-opacity: var(--selection-overlay-opacity, 0.5)\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 .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 .section .divisions .unit\n cursor: pointer\n\n.column-container :global(.timescale)\n width: calc(calc(1.5em + 1.5px) * var(--timescale-level-count, 4))\n --timescale-level-size: 1.5em\n\n.timescale-column\n position: relative\n\n.section-main\n position: relative\n margin-bottom: -4px\n\n.section-units-container\n position: relative\n\n.main-column\n position: relative\n\n.unconformity-labels\n position: absolute\n top: 0\n left: 0\n pointer-events: none\n\n\n.unconformity\n text-align: center\n position: absolute\n top: 0px\n display: flex\n justify-content: center\n align-items: center\n font-size: 0.8em\n &.giga\n font-weight: 800\n font-size: 1em\n &.mega\n font-weight: 600\n font-weight: 700\n font-size: 0.9em\n &.large\n font-weight: 600\n &.small\n font-weight: 300\n\n\n.unconformity-text\n width: var(--column-width)\n color: var(--column-stroke-color)\n --unit-font-style: normal\n\n\n"],"names":[],"version":3,"file":"column-views.4637f4ce.js.map"}