@macrostrat/column-views 2.4.3 → 3.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 (658) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/age-axis.cjs +123 -0
  3. package/dist/age-axis.cjs.map +1 -0
  4. package/dist/age-axis.d.ts +33 -0
  5. package/dist/age-axis.js +123 -0
  6. package/dist/age-axis.js.map +1 -0
  7. package/dist/age-axis.module.sass.cjs +18 -0
  8. package/dist/age-axis.module.sass.cjs.map +1 -0
  9. package/dist/age-axis.module.sass.js +18 -0
  10. package/dist/age-axis.module.sass.js.map +1 -0
  11. package/dist/age-model-overlay.cjs +48 -0
  12. package/dist/age-model-overlay.cjs.map +1 -0
  13. package/dist/age-model-overlay.d.ts +24 -0
  14. package/dist/age-model-overlay.js +48 -0
  15. package/dist/age-model-overlay.js.map +1 -0
  16. package/dist/age-model-overlay.module.sass.cjs +8 -0
  17. package/dist/age-model-overlay.module.sass.cjs.map +1 -0
  18. package/dist/age-model-overlay.module.sass.js +8 -0
  19. package/dist/age-model-overlay.module.sass.js.map +1 -0
  20. package/dist/column-views.css +685 -0
  21. package/dist/column.cjs +247 -0
  22. package/dist/column.cjs.map +1 -0
  23. package/dist/column.d.ts +44 -0
  24. package/dist/column.js +247 -0
  25. package/dist/column.js.map +1 -0
  26. package/dist/column.module.sass.cjs +33 -0
  27. package/dist/column.module.sass.cjs.map +1 -0
  28. package/dist/column.module.sass.js +33 -0
  29. package/dist/column.module.sass.js.map +1 -0
  30. package/dist/correlation-chart/hash-string.cjs +46 -0
  31. package/dist/correlation-chart/hash-string.cjs.map +1 -0
  32. package/dist/correlation-chart/hash-string.d.ts +3 -0
  33. package/dist/correlation-chart/hash-string.js +46 -0
  34. package/dist/correlation-chart/hash-string.js.map +1 -0
  35. package/dist/correlation-chart/index.d.ts +2 -0
  36. package/dist/correlation-chart/main.cjs +202 -0
  37. package/dist/correlation-chart/main.cjs.map +1 -0
  38. package/dist/correlation-chart/main.d.ts +15 -0
  39. package/dist/correlation-chart/main.js +202 -0
  40. package/dist/correlation-chart/main.js.map +1 -0
  41. package/dist/correlation-chart/main.module.sass.cjs +28 -0
  42. package/dist/correlation-chart/main.module.sass.cjs.map +1 -0
  43. package/dist/correlation-chart/main.module.sass.js +28 -0
  44. package/dist/correlation-chart/main.module.sass.js.map +1 -0
  45. package/dist/correlation-chart/prepare-data.cjs +62 -0
  46. package/dist/correlation-chart/prepare-data.cjs.map +1 -0
  47. package/dist/correlation-chart/prepare-data.d.ts +52 -0
  48. package/dist/correlation-chart/prepare-data.js +62 -0
  49. package/dist/correlation-chart/prepare-data.js.map +1 -0
  50. package/dist/correlation-chart/stories/utils.d.ts +6 -0
  51. package/dist/correlation-chart/unconformity-line.d.ts +3 -0
  52. package/dist/data-provider/base.cjs +349 -0
  53. package/dist/data-provider/base.cjs.map +1 -0
  54. package/dist/data-provider/base.d.ts +65 -0
  55. package/dist/data-provider/base.js +349 -0
  56. package/dist/data-provider/base.js.map +1 -0
  57. package/dist/data-provider/column-nav.cjs +36 -0
  58. package/dist/data-provider/column-nav.cjs.map +1 -0
  59. package/dist/data-provider/column-nav.d.ts +13 -0
  60. package/dist/data-provider/column-nav.js +36 -0
  61. package/dist/data-provider/column-nav.js.map +1 -0
  62. package/dist/data-provider/core.cjs +56 -0
  63. package/dist/data-provider/core.cjs.map +1 -0
  64. package/dist/data-provider/core.d.ts +31 -0
  65. package/dist/data-provider/core.js +56 -0
  66. package/dist/{esm/column-views.67804ce5.js.map → data-provider/core.js.map} +1 -1
  67. package/dist/data-provider/fetch.cjs +210 -0
  68. package/dist/data-provider/fetch.cjs.map +1 -0
  69. package/dist/data-provider/fetch.d.ts +27 -0
  70. package/dist/data-provider/fetch.js +210 -0
  71. package/dist/data-provider/fetch.js.map +1 -0
  72. package/dist/data-provider/index.d.ts +5 -0
  73. package/dist/data-provider/store.cjs +107 -0
  74. package/dist/data-provider/store.cjs.map +1 -0
  75. package/dist/data-provider/store.d.ts +34 -0
  76. package/dist/data-provider/store.js +107 -0
  77. package/dist/data-provider/store.js.map +1 -0
  78. package/dist/data-provider/unit-selection.cjs +225 -0
  79. package/dist/data-provider/unit-selection.cjs.map +1 -0
  80. package/dist/data-provider/unit-selection.d.ts +49 -0
  81. package/dist/data-provider/unit-selection.js +225 -0
  82. package/dist/data-provider/unit-selection.js.map +1 -0
  83. package/dist/facets/carbon-isotopes/data-area.cjs +64 -0
  84. package/dist/facets/carbon-isotopes/data-area.cjs.map +1 -0
  85. package/dist/facets/carbon-isotopes/data-area.d.ts +13 -0
  86. package/dist/facets/carbon-isotopes/data-area.js +64 -0
  87. package/dist/facets/carbon-isotopes/data-area.js.map +1 -0
  88. package/dist/facets/carbon-isotopes/data-provider.cjs +20 -0
  89. package/dist/facets/carbon-isotopes/data-provider.cjs.map +1 -0
  90. package/dist/facets/carbon-isotopes/data-provider.d.ts +4 -0
  91. package/dist/facets/carbon-isotopes/data-provider.js +20 -0
  92. package/dist/facets/carbon-isotopes/data-provider.js.map +1 -0
  93. package/dist/facets/carbon-isotopes/index.d.ts +2 -0
  94. package/dist/facets/carbon-isotopes/isotopes-column.cjs +174 -0
  95. package/dist/facets/carbon-isotopes/isotopes-column.cjs.map +1 -0
  96. package/dist/facets/carbon-isotopes/isotopes-column.d.ts +19 -0
  97. package/dist/facets/carbon-isotopes/isotopes-column.js +174 -0
  98. package/dist/facets/carbon-isotopes/isotopes-column.js.map +1 -0
  99. package/dist/facets/carbon-isotopes/isotopes-column.module.sass.cjs +15 -0
  100. package/dist/facets/carbon-isotopes/isotopes-column.module.sass.cjs.map +1 -0
  101. package/dist/facets/carbon-isotopes/isotopes-column.module.sass.js +15 -0
  102. package/dist/facets/carbon-isotopes/isotopes-column.module.sass.js.map +1 -0
  103. package/dist/facets/detrital-zircon/index.cjs +108 -0
  104. package/dist/facets/detrital-zircon/index.cjs.map +1 -0
  105. package/dist/facets/detrital-zircon/index.d.ts +24 -0
  106. package/dist/facets/detrital-zircon/index.js +108 -0
  107. package/dist/facets/detrital-zircon/index.js.map +1 -0
  108. package/dist/facets/detrital-zircon/index.module.sass.cjs +11 -0
  109. package/dist/facets/detrital-zircon/index.module.sass.cjs.map +1 -0
  110. package/dist/facets/detrital-zircon/index.module.sass.js +11 -0
  111. package/dist/facets/detrital-zircon/index.module.sass.js.map +1 -0
  112. package/dist/facets/detrital-zircon/provider.cjs +22 -0
  113. package/dist/facets/detrital-zircon/provider.cjs.map +1 -0
  114. package/dist/facets/detrital-zircon/provider.d.ts +31 -0
  115. package/dist/facets/detrital-zircon/provider.js +22 -0
  116. package/dist/facets/detrital-zircon/provider.js.map +1 -0
  117. package/dist/facets/fossils/index.cjs +120 -0
  118. package/dist/facets/fossils/index.cjs.map +1 -0
  119. package/dist/facets/fossils/index.d.ts +7 -0
  120. package/dist/facets/fossils/index.js +120 -0
  121. package/dist/facets/fossils/index.js.map +1 -0
  122. package/dist/facets/fossils/provider.cjs +99 -0
  123. package/dist/facets/fossils/provider.cjs.map +1 -0
  124. package/dist/facets/fossils/provider.d.ts +29 -0
  125. package/dist/facets/fossils/provider.js +99 -0
  126. package/dist/facets/fossils/provider.js.map +1 -0
  127. package/dist/facets/fossils/taxon-ranges.cjs +145 -0
  128. package/dist/facets/fossils/taxon-ranges.cjs.map +1 -0
  129. package/dist/facets/fossils/taxon-ranges.d.ts +3 -0
  130. package/dist/facets/fossils/taxon-ranges.js +145 -0
  131. package/dist/facets/fossils/taxon-ranges.js.map +1 -0
  132. package/dist/facets/fossils/taxon-ranges.module.sass.cjs +13 -0
  133. package/dist/facets/fossils/taxon-ranges.module.sass.cjs.map +1 -0
  134. package/dist/facets/fossils/taxon-ranges.module.sass.js +13 -0
  135. package/dist/facets/fossils/taxon-ranges.module.sass.js.map +1 -0
  136. package/dist/facets/index.d.ts +4 -0
  137. package/dist/facets/measurements/base.cjs +128 -0
  138. package/dist/facets/measurements/base.cjs.map +1 -0
  139. package/dist/facets/measurements/base.d.ts +46 -0
  140. package/dist/facets/measurements/base.js +128 -0
  141. package/dist/facets/measurements/base.js.map +1 -0
  142. package/dist/facets/measurements/base.module.sass.cjs +8 -0
  143. package/dist/facets/measurements/base.module.sass.cjs.map +1 -0
  144. package/dist/facets/measurements/base.module.sass.js +8 -0
  145. package/dist/facets/measurements/base.module.sass.js.map +1 -0
  146. package/dist/facets/measurements/index.d.ts +2 -0
  147. package/dist/facets/measurements/sgp.cjs +62 -0
  148. package/dist/facets/measurements/sgp.cjs.map +1 -0
  149. package/dist/facets/measurements/sgp.d.ts +3 -0
  150. package/dist/facets/measurements/sgp.js +62 -0
  151. package/dist/facets/measurements/sgp.js.map +1 -0
  152. package/dist/index.cjs +164 -0
  153. package/dist/index.cjs.map +1 -0
  154. package/dist/index.d.ts +11 -0
  155. package/dist/index.js +164 -0
  156. package/dist/index.js.map +1 -0
  157. package/dist/maps/_shared/index.d.ts +2 -0
  158. package/dist/maps/_shared/inset-map.cjs +69 -0
  159. package/dist/maps/_shared/inset-map.cjs.map +1 -0
  160. package/dist/maps/_shared/inset-map.d.ts +16 -0
  161. package/dist/maps/_shared/inset-map.js +69 -0
  162. package/dist/maps/_shared/inset-map.js.map +1 -0
  163. package/dist/maps/_shared/styles.cjs +68 -0
  164. package/dist/maps/_shared/styles.cjs.map +1 -0
  165. package/dist/maps/_shared/styles.d.ts +2 -0
  166. package/dist/maps/_shared/styles.js +68 -0
  167. package/dist/maps/_shared/styles.js.map +1 -0
  168. package/dist/maps/column-correlation/core.cjs +185 -0
  169. package/dist/maps/column-correlation/core.cjs.map +1 -0
  170. package/dist/maps/column-correlation/core.d.ts +9 -0
  171. package/dist/maps/column-correlation/core.js +185 -0
  172. package/dist/maps/column-correlation/core.js.map +1 -0
  173. package/dist/maps/column-correlation/index.d.ts +2 -0
  174. package/dist/maps/column-correlation/state.cjs +129 -0
  175. package/dist/maps/column-correlation/state.cjs.map +1 -0
  176. package/dist/maps/column-correlation/state.d.ts +31 -0
  177. package/dist/maps/column-correlation/state.js +129 -0
  178. package/dist/maps/column-correlation/state.js.map +1 -0
  179. package/dist/maps/column-navigation/index.d.ts +2 -0
  180. package/dist/maps/column-navigation/mapbox/index.cjs +175 -0
  181. package/dist/maps/column-navigation/mapbox/index.cjs.map +1 -0
  182. package/dist/maps/column-navigation/mapbox/index.d.ts +17 -0
  183. package/dist/maps/column-navigation/mapbox/index.js +175 -0
  184. package/dist/maps/column-navigation/mapbox/index.js.map +1 -0
  185. package/dist/maps/column-navigation/mapbox/keyboard-navigation.cjs +99 -0
  186. package/dist/maps/column-navigation/mapbox/keyboard-navigation.cjs.map +1 -0
  187. package/dist/maps/column-navigation/mapbox/keyboard-navigation.d.ts +31 -0
  188. package/dist/maps/column-navigation/mapbox/keyboard-navigation.js +99 -0
  189. package/dist/maps/column-navigation/mapbox/keyboard-navigation.js.map +1 -0
  190. package/dist/maps/column-navigation/mapbox/state.cjs +71 -0
  191. package/dist/maps/column-navigation/mapbox/state.cjs.map +1 -0
  192. package/dist/maps/column-navigation/mapbox/state.d.ts +23 -0
  193. package/dist/maps/column-navigation/mapbox/state.js +71 -0
  194. package/dist/maps/column-navigation/mapbox/state.js.map +1 -0
  195. package/dist/maps/column-navigation/svg/animated.d.ts +1 -0
  196. package/dist/maps/column-navigation/svg/index.cjs +92 -0
  197. package/dist/maps/column-navigation/svg/index.cjs.map +1 -0
  198. package/dist/maps/column-navigation/svg/index.d.ts +9 -0
  199. package/dist/maps/column-navigation/svg/index.js +93 -0
  200. package/dist/maps/column-navigation/svg/index.js.map +1 -0
  201. package/dist/maps/column-navigation/svg/layers.cjs +175 -0
  202. package/dist/maps/column-navigation/svg/layers.cjs.map +1 -0
  203. package/dist/maps/column-navigation/svg/layers.d.ts +54 -0
  204. package/dist/maps/column-navigation/svg/layers.js +175 -0
  205. package/dist/maps/column-navigation/svg/layers.js.map +1 -0
  206. package/dist/maps/column-navigation/utils/keyboard-navigation.cjs +50 -0
  207. package/dist/maps/column-navigation/utils/keyboard-navigation.cjs.map +1 -0
  208. package/dist/maps/column-navigation/utils/keyboard-navigation.d.ts +10 -0
  209. package/dist/maps/column-navigation/utils/keyboard-navigation.js +50 -0
  210. package/dist/maps/column-navigation/utils/keyboard-navigation.js.map +1 -0
  211. package/dist/maps/index.d.ts +3 -0
  212. package/dist/notes.cjs +41 -0
  213. package/dist/notes.cjs.map +1 -0
  214. package/dist/notes.d.ts +12 -0
  215. package/dist/notes.js +41 -0
  216. package/dist/notes.js.map +1 -0
  217. package/dist/prepare-units/composite-scale.cjs +284 -0
  218. package/dist/prepare-units/composite-scale.cjs.map +1 -0
  219. package/dist/prepare-units/composite-scale.d.ts +19 -0
  220. package/dist/prepare-units/composite-scale.js +284 -0
  221. package/dist/prepare-units/composite-scale.js.map +1 -0
  222. package/dist/prepare-units/dynamic-scales.cjs +190 -0
  223. package/dist/prepare-units/dynamic-scales.cjs.map +1 -0
  224. package/dist/prepare-units/dynamic-scales.d.ts +13 -0
  225. package/dist/prepare-units/dynamic-scales.js +190 -0
  226. package/dist/prepare-units/dynamic-scales.js.map +1 -0
  227. package/dist/prepare-units/helpers.cjs +198 -0
  228. package/dist/prepare-units/helpers.cjs.map +1 -0
  229. package/dist/prepare-units/helpers.d.ts +10 -0
  230. package/dist/prepare-units/helpers.js +198 -0
  231. package/dist/prepare-units/helpers.js.map +1 -0
  232. package/dist/prepare-units/index.cjs +130 -0
  233. package/dist/prepare-units/index.cjs.map +1 -0
  234. package/dist/prepare-units/index.d.ts +10 -0
  235. package/dist/prepare-units/index.js +131 -0
  236. package/dist/prepare-units/index.js.map +1 -0
  237. package/dist/prepare-units/types.cjs +16 -0
  238. package/dist/prepare-units/types.cjs.map +1 -0
  239. package/dist/prepare-units/types.d.ts +99 -0
  240. package/dist/prepare-units/types.js +16 -0
  241. package/dist/prepare-units/types.js.map +1 -0
  242. package/dist/prepare-units/utils.cjs +99 -0
  243. package/dist/prepare-units/utils.cjs.map +1 -0
  244. package/dist/prepare-units/utils.d.ts +39 -0
  245. package/dist/prepare-units/utils.js +99 -0
  246. package/dist/prepare-units/utils.js.map +1 -0
  247. package/dist/section.cjs +269 -0
  248. package/dist/section.cjs.map +1 -0
  249. package/dist/section.d.ts +45 -0
  250. package/dist/section.js +269 -0
  251. package/dist/section.js.map +1 -0
  252. package/dist/unit-details/index.d.ts +3 -0
  253. package/dist/unit-details/modal-panel.cjs +57 -0
  254. package/dist/unit-details/modal-panel.cjs.map +1 -0
  255. package/dist/unit-details/modal-panel.d.ts +1 -0
  256. package/dist/unit-details/modal-panel.js +57 -0
  257. package/dist/unit-details/modal-panel.js.map +1 -0
  258. package/dist/unit-details/panel.cjs +627 -0
  259. package/dist/unit-details/panel.cjs.map +1 -0
  260. package/dist/unit-details/panel.d.ts +87 -0
  261. package/dist/unit-details/panel.js +627 -0
  262. package/dist/unit-details/panel.js.map +1 -0
  263. package/dist/unit-details/panel.module.sass.cjs +42 -0
  264. package/dist/unit-details/panel.module.sass.cjs.map +1 -0
  265. package/dist/unit-details/panel.module.sass.js +42 -0
  266. package/dist/unit-details/panel.module.sass.js.map +1 -0
  267. package/dist/unit-details/popover.cjs +81 -0
  268. package/dist/unit-details/popover.cjs.map +1 -0
  269. package/dist/unit-details/popover.d.ts +9 -0
  270. package/dist/unit-details/popover.js +81 -0
  271. package/dist/unit-details/popover.js.map +1 -0
  272. package/dist/unit-details/popover.module.sass.cjs +10 -0
  273. package/dist/unit-details/popover.module.sass.cjs.map +1 -0
  274. package/dist/unit-details/popover.module.sass.js +10 -0
  275. package/dist/unit-details/popover.module.sass.js.map +1 -0
  276. package/dist/units/boxes.cjs +187 -0
  277. package/dist/units/boxes.cjs.map +1 -0
  278. package/dist/units/boxes.d.ts +54 -0
  279. package/dist/units/boxes.js +187 -0
  280. package/dist/units/boxes.js.map +1 -0
  281. package/dist/units/boxes.module.sass.cjs +11 -0
  282. package/dist/units/boxes.module.sass.cjs.map +1 -0
  283. package/dist/units/boxes.module.sass.js +11 -0
  284. package/dist/units/boxes.module.sass.js.map +1 -0
  285. package/dist/units/colors.cjs +52 -0
  286. package/dist/units/colors.cjs.map +1 -0
  287. package/dist/units/colors.d.ts +7 -0
  288. package/dist/units/colors.js +52 -0
  289. package/dist/units/colors.js.map +1 -0
  290. package/dist/units/composite.cjs +157 -0
  291. package/dist/units/composite.cjs.map +1 -0
  292. package/dist/units/composite.d.ts +39 -0
  293. package/dist/units/composite.js +157 -0
  294. package/dist/units/composite.js.map +1 -0
  295. package/dist/units/composite.module.sass.cjs +7 -0
  296. package/dist/units/composite.module.sass.cjs.map +1 -0
  297. package/dist/units/composite.module.sass.js +7 -0
  298. package/dist/units/composite.module.sass.js.map +1 -0
  299. package/dist/units/index.cjs +117 -0
  300. package/dist/units/index.cjs.map +1 -0
  301. package/dist/units/index.d.ts +40 -0
  302. package/dist/units/index.js +118 -0
  303. package/dist/units/index.js.map +1 -0
  304. package/dist/units/names.cjs +72 -0
  305. package/dist/units/names.cjs.map +1 -0
  306. package/dist/units/names.d.ts +33 -0
  307. package/dist/units/names.js +72 -0
  308. package/dist/units/names.js.map +1 -0
  309. package/dist/units/resolvers.cjs +114 -0
  310. package/dist/units/resolvers.cjs.map +1 -0
  311. package/dist/units/resolvers.d.ts +3 -0
  312. package/dist/units/resolvers.js +114 -0
  313. package/dist/units/resolvers.js.map +1 -0
  314. package/dist/units/types.d.ts +16 -0
  315. package/package.json +52 -55
  316. package/src/facets/measurements/sgp.ts +10 -3
  317. package/src/unit-details/popover.module.sass +3 -3
  318. package/dist/esm/column-views.006d5180.js +0 -97
  319. package/dist/esm/column-views.006d5180.js.map +0 -1
  320. package/dist/esm/column-views.052498a6.js +0 -93
  321. package/dist/esm/column-views.052498a6.js.map +0 -1
  322. package/dist/esm/column-views.079119f4.js +0 -17
  323. package/dist/esm/column-views.079119f4.js.map +0 -1
  324. package/dist/esm/column-views.0b3c0d18.js +0 -322
  325. package/dist/esm/column-views.0b3c0d18.js.map +0 -1
  326. package/dist/esm/column-views.0ed9da35.js +0 -141
  327. package/dist/esm/column-views.0ed9da35.js.map +0 -1
  328. package/dist/esm/column-views.0faf79a9.js +0 -142
  329. package/dist/esm/column-views.0faf79a9.js.map +0 -1
  330. package/dist/esm/column-views.16cc7a58.css +0 -37
  331. package/dist/esm/column-views.16cc7a58.css.map +0 -1
  332. package/dist/esm/column-views.17a70358.js +0 -16
  333. package/dist/esm/column-views.17a70358.js.map +0 -1
  334. package/dist/esm/column-views.19539293.js +0 -86
  335. package/dist/esm/column-views.19539293.js.map +0 -1
  336. package/dist/esm/column-views.1af3ec1f.js +0 -139
  337. package/dist/esm/column-views.1af3ec1f.js.map +0 -1
  338. package/dist/esm/column-views.1cd55918.js +0 -206
  339. package/dist/esm/column-views.1cd55918.js.map +0 -1
  340. package/dist/esm/column-views.22ec902b.js +0 -34
  341. package/dist/esm/column-views.22ec902b.js.map +0 -1
  342. package/dist/esm/column-views.2a0010a3.js +0 -15
  343. package/dist/esm/column-views.2a0010a3.js.map +0 -1
  344. package/dist/esm/column-views.2c45a7b5.js +0 -25
  345. package/dist/esm/column-views.2c45a7b5.js.map +0 -1
  346. package/dist/esm/column-views.321af3ae.css +0 -59
  347. package/dist/esm/column-views.321af3ae.css.map +0 -1
  348. package/dist/esm/column-views.334c3947.js +0 -75
  349. package/dist/esm/column-views.334c3947.js.map +0 -1
  350. package/dist/esm/column-views.33796541.js +0 -88
  351. package/dist/esm/column-views.33796541.js.map +0 -1
  352. package/dist/esm/column-views.337b40a2.js +0 -199
  353. package/dist/esm/column-views.337b40a2.js.map +0 -1
  354. package/dist/esm/column-views.338a7a83.css +0 -134
  355. package/dist/esm/column-views.338a7a83.css.map +0 -1
  356. package/dist/esm/column-views.33d35a44.js +0 -118
  357. package/dist/esm/column-views.33d35a44.js.map +0 -1
  358. package/dist/esm/column-views.3465c8ad.js +0 -16
  359. package/dist/esm/column-views.3465c8ad.js.map +0 -1
  360. package/dist/esm/column-views.362aae9a.js +0 -113
  361. package/dist/esm/column-views.362aae9a.js.map +0 -1
  362. package/dist/esm/column-views.3b972a9b.css +0 -4
  363. package/dist/esm/column-views.3b972a9b.css.map +0 -1
  364. package/dist/esm/column-views.3de4dc43.js +0 -66
  365. package/dist/esm/column-views.3de4dc43.js.map +0 -1
  366. package/dist/esm/column-views.40cd59b5.js +0 -13
  367. package/dist/esm/column-views.40cd59b5.js.map +0 -1
  368. package/dist/esm/column-views.4252a555.js +0 -248
  369. package/dist/esm/column-views.4252a555.js.map +0 -1
  370. package/dist/esm/column-views.45c70ba4.js +0 -38
  371. package/dist/esm/column-views.45c70ba4.js.map +0 -1
  372. package/dist/esm/column-views.47b7d9ca.js +0 -206
  373. package/dist/esm/column-views.47b7d9ca.js.map +0 -1
  374. package/dist/esm/column-views.47ca059d.js +0 -225
  375. package/dist/esm/column-views.47ca059d.js.map +0 -1
  376. package/dist/esm/column-views.4d374a35.js +0 -19
  377. package/dist/esm/column-views.4d374a35.js.map +0 -1
  378. package/dist/esm/column-views.54c1f382.css +0 -23
  379. package/dist/esm/column-views.54c1f382.css.map +0 -1
  380. package/dist/esm/column-views.562db43a.css +0 -148
  381. package/dist/esm/column-views.562db43a.css.map +0 -1
  382. package/dist/esm/column-views.5e1c216f.js +0 -180
  383. package/dist/esm/column-views.5e1c216f.js.map +0 -1
  384. package/dist/esm/column-views.60e97132.js +0 -20
  385. package/dist/esm/column-views.60e97132.js.map +0 -1
  386. package/dist/esm/column-views.636d6553.js +0 -343
  387. package/dist/esm/column-views.636d6553.js.map +0 -1
  388. package/dist/esm/column-views.64f6ddd3.js +0 -9
  389. package/dist/esm/column-views.64f6ddd3.js.map +0 -1
  390. package/dist/esm/column-views.6519a353.js +0 -9
  391. package/dist/esm/column-views.6519a353.js.map +0 -1
  392. package/dist/esm/column-views.67804ce5.js +0 -68
  393. package/dist/esm/column-views.6992ca88.js +0 -25
  394. package/dist/esm/column-views.6992ca88.js.map +0 -1
  395. package/dist/esm/column-views.6a954628.js +0 -70
  396. package/dist/esm/column-views.6a954628.js.map +0 -1
  397. package/dist/esm/column-views.6c670c13.css +0 -26
  398. package/dist/esm/column-views.6c670c13.css.map +0 -1
  399. package/dist/esm/column-views.6cff6659.js +0 -11
  400. package/dist/esm/column-views.6cff6659.js.map +0 -1
  401. package/dist/esm/column-views.6d6b73b4.js +0 -55
  402. package/dist/esm/column-views.6d6b73b4.js.map +0 -1
  403. package/dist/esm/column-views.6f9511d1.css +0 -25
  404. package/dist/esm/column-views.6f9511d1.css.map +0 -1
  405. package/dist/esm/column-views.6fff7602.js +0 -94
  406. package/dist/esm/column-views.6fff7602.js.map +0 -1
  407. package/dist/esm/column-views.70387120.js +0 -9
  408. package/dist/esm/column-views.70387120.js.map +0 -1
  409. package/dist/esm/column-views.708140ab.css +0 -36
  410. package/dist/esm/column-views.708140ab.css.map +0 -1
  411. package/dist/esm/column-views.74837922.js +0 -112
  412. package/dist/esm/column-views.74837922.js.map +0 -1
  413. package/dist/esm/column-views.76fb9948.js +0 -169
  414. package/dist/esm/column-views.76fb9948.js.map +0 -1
  415. package/dist/esm/column-views.7bfb4318.js +0 -161
  416. package/dist/esm/column-views.7bfb4318.js.map +0 -1
  417. package/dist/esm/column-views.7dc53f1b.js +0 -168
  418. package/dist/esm/column-views.7dc53f1b.js.map +0 -1
  419. package/dist/esm/column-views.85df21ec.js +0 -567
  420. package/dist/esm/column-views.85df21ec.js.map +0 -1
  421. package/dist/esm/column-views.87c589b7.js +0 -72
  422. package/dist/esm/column-views.87c589b7.js.map +0 -1
  423. package/dist/esm/column-views.8da2b857.js +0 -81
  424. package/dist/esm/column-views.8da2b857.js.map +0 -1
  425. package/dist/esm/column-views.8fb37de7.js +0 -9
  426. package/dist/esm/column-views.8fb37de7.js.map +0 -1
  427. package/dist/esm/column-views.905ddea0.js +0 -9
  428. package/dist/esm/column-views.905ddea0.js.map +0 -1
  429. package/dist/esm/column-views.9512c5d5.js +0 -240
  430. package/dist/esm/column-views.9512c5d5.js.map +0 -1
  431. package/dist/esm/column-views.9905b91c.js +0 -11
  432. package/dist/esm/column-views.9905b91c.js.map +0 -1
  433. package/dist/esm/column-views.9b77388d.js +0 -41
  434. package/dist/esm/column-views.9b77388d.js.map +0 -1
  435. package/dist/esm/column-views.a4f394fe.js +0 -127
  436. package/dist/esm/column-views.a4f394fe.js.map +0 -1
  437. package/dist/esm/column-views.a7c5ae16.js +0 -25
  438. package/dist/esm/column-views.a7c5ae16.js.map +0 -1
  439. package/dist/esm/column-views.aa9ede4d.js +0 -206
  440. package/dist/esm/column-views.aa9ede4d.js.map +0 -1
  441. package/dist/esm/column-views.b2142cd8.js +0 -13
  442. package/dist/esm/column-views.b2142cd8.js.map +0 -1
  443. package/dist/esm/column-views.b7cf0da2.js +0 -60
  444. package/dist/esm/column-views.b7cf0da2.js.map +0 -1
  445. package/dist/esm/column-views.b88d4bbe.js +0 -61
  446. package/dist/esm/column-views.b88d4bbe.js.map +0 -1
  447. package/dist/esm/column-views.beb54e95.js +0 -39
  448. package/dist/esm/column-views.beb54e95.js.map +0 -1
  449. package/dist/esm/column-views.c750a6df.js +0 -9
  450. package/dist/esm/column-views.c750a6df.js.map +0 -1
  451. package/dist/esm/column-views.cb1cc9f2.js +0 -134
  452. package/dist/esm/column-views.cb1cc9f2.js.map +0 -1
  453. package/dist/esm/column-views.cb6fc808.css +0 -54
  454. package/dist/esm/column-views.cb6fc808.css.map +0 -1
  455. package/dist/esm/column-views.cc733361.js +0 -55
  456. package/dist/esm/column-views.cc733361.js.map +0 -1
  457. package/dist/esm/column-views.ce000969.js +0 -187
  458. package/dist/esm/column-views.ce000969.js.map +0 -1
  459. package/dist/esm/column-views.d5e788e8.js +0 -31
  460. package/dist/esm/column-views.d5e788e8.js.map +0 -1
  461. package/dist/esm/column-views.d7740949.js +0 -152
  462. package/dist/esm/column-views.d7740949.js.map +0 -1
  463. package/dist/esm/column-views.d7e6bf67.js +0 -70
  464. package/dist/esm/column-views.d7e6bf67.js.map +0 -1
  465. package/dist/esm/column-views.dac0a3bb.js +0 -149
  466. package/dist/esm/column-views.dac0a3bb.js.map +0 -1
  467. package/dist/esm/column-views.dc42f5d0.js +0 -48
  468. package/dist/esm/column-views.dc42f5d0.js.map +0 -1
  469. package/dist/esm/column-views.e13a0a76.js +0 -138
  470. package/dist/esm/column-views.e13a0a76.js.map +0 -1
  471. package/dist/esm/column-views.e40b8bfb.css +0 -14
  472. package/dist/esm/column-views.e40b8bfb.css.map +0 -1
  473. package/dist/esm/column-views.e93478c3.css +0 -194
  474. package/dist/esm/column-views.e93478c3.css.map +0 -1
  475. package/dist/esm/column-views.ea08f667.js +0 -218
  476. package/dist/esm/column-views.ea08f667.js.map +0 -1
  477. package/dist/esm/column-views.edf77621.js +0 -22
  478. package/dist/esm/column-views.edf77621.js.map +0 -1
  479. package/dist/esm/column-views.f9dab157.js +0 -3
  480. package/dist/esm/column-views.f9dab157.js.map +0 -1
  481. package/dist/esm/column-views.fcf25ec6.js +0 -76
  482. package/dist/esm/column-views.fcf25ec6.js.map +0 -1
  483. package/dist/esm/column-views.fe42d2fc.js +0 -134
  484. package/dist/esm/column-views.fe42d2fc.js.map +0 -1
  485. package/dist/esm/index.d.ts +0 -1008
  486. package/dist/esm/index.d.ts.map +0 -1
  487. package/dist/esm/index.js +0 -27
  488. package/dist/esm/index.js.map +0 -1
  489. package/dist/node/column-views.012fa10c.js +0 -2
  490. package/dist/node/column-views.012fa10c.js.map +0 -1
  491. package/dist/node/column-views.048fdcaf.js +0 -2
  492. package/dist/node/column-views.048fdcaf.js.map +0 -1
  493. package/dist/node/column-views.04a72b35.js +0 -2
  494. package/dist/node/column-views.04a72b35.js.map +0 -1
  495. package/dist/node/column-views.0619e2da.js +0 -2
  496. package/dist/node/column-views.0619e2da.js.map +0 -1
  497. package/dist/node/column-views.0840b115.css +0 -2
  498. package/dist/node/column-views.0840b115.css.map +0 -1
  499. package/dist/node/column-views.0af5912d.js +0 -2
  500. package/dist/node/column-views.0af5912d.js.map +0 -1
  501. package/dist/node/column-views.0bd15ee4.js +0 -2
  502. package/dist/node/column-views.0bd15ee4.js.map +0 -1
  503. package/dist/node/column-views.0d254fd3.js +0 -2
  504. package/dist/node/column-views.0d254fd3.js.map +0 -1
  505. package/dist/node/column-views.109cb0c8.js +0 -2
  506. package/dist/node/column-views.109cb0c8.js.map +0 -1
  507. package/dist/node/column-views.1261be59.js +0 -2
  508. package/dist/node/column-views.1261be59.js.map +0 -1
  509. package/dist/node/column-views.15b5cecc.js +0 -2
  510. package/dist/node/column-views.15b5cecc.js.map +0 -1
  511. package/dist/node/column-views.183745c0.js +0 -2
  512. package/dist/node/column-views.183745c0.js.map +0 -1
  513. package/dist/node/column-views.2e2158f5.js +0 -2
  514. package/dist/node/column-views.2e2158f5.js.map +0 -1
  515. package/dist/node/column-views.306acd3f.js +0 -2
  516. package/dist/node/column-views.306acd3f.js.map +0 -1
  517. package/dist/node/column-views.31153f29.js +0 -2
  518. package/dist/node/column-views.31153f29.js.map +0 -1
  519. package/dist/node/column-views.31da008b.js +0 -2
  520. package/dist/node/column-views.31da008b.js.map +0 -1
  521. package/dist/node/column-views.3a079e34.css +0 -2
  522. package/dist/node/column-views.3a079e34.css.map +0 -1
  523. package/dist/node/column-views.40e758b3.js +0 -2
  524. package/dist/node/column-views.40e758b3.js.map +0 -1
  525. package/dist/node/column-views.41876859.js +0 -2
  526. package/dist/node/column-views.41876859.js.map +0 -1
  527. package/dist/node/column-views.4a28d695.js +0 -2
  528. package/dist/node/column-views.4a28d695.js.map +0 -1
  529. package/dist/node/column-views.4ec769a6.js +0 -2
  530. package/dist/node/column-views.4ec769a6.js.map +0 -1
  531. package/dist/node/column-views.50a992d3.css +0 -2
  532. package/dist/node/column-views.50a992d3.css.map +0 -1
  533. package/dist/node/column-views.51fbed89.js +0 -2
  534. package/dist/node/column-views.51fbed89.js.map +0 -1
  535. package/dist/node/column-views.5987bc26.js +0 -2
  536. package/dist/node/column-views.5987bc26.js.map +0 -1
  537. package/dist/node/column-views.5a9331a9.js +0 -2
  538. package/dist/node/column-views.5a9331a9.js.map +0 -1
  539. package/dist/node/column-views.5bb858c9.js +0 -2
  540. package/dist/node/column-views.5bb858c9.js.map +0 -1
  541. package/dist/node/column-views.5c1b0eeb.css +0 -2
  542. package/dist/node/column-views.5c1b0eeb.css.map +0 -1
  543. package/dist/node/column-views.5cbada24.js +0 -2
  544. package/dist/node/column-views.5cbada24.js.map +0 -1
  545. package/dist/node/column-views.5fcd2be6.js +0 -2
  546. package/dist/node/column-views.5fcd2be6.js.map +0 -1
  547. package/dist/node/column-views.672b683c.js +0 -2
  548. package/dist/node/column-views.672b683c.js.map +0 -1
  549. package/dist/node/column-views.6a0a35e7.js +0 -2
  550. package/dist/node/column-views.6a0a35e7.js.map +0 -1
  551. package/dist/node/column-views.6a4c2100.css +0 -2
  552. package/dist/node/column-views.6a4c2100.css.map +0 -1
  553. package/dist/node/column-views.6a9da051.js +0 -2
  554. package/dist/node/column-views.6a9da051.js.map +0 -1
  555. package/dist/node/column-views.6bba8c57.js +0 -2
  556. package/dist/node/column-views.6bba8c57.js.map +0 -1
  557. package/dist/node/column-views.75ba0464.css +0 -2
  558. package/dist/node/column-views.75ba0464.css.map +0 -1
  559. package/dist/node/column-views.78b2d234.js +0 -2
  560. package/dist/node/column-views.78b2d234.js.map +0 -1
  561. package/dist/node/column-views.7b6e7d82.js +0 -2
  562. package/dist/node/column-views.7b6e7d82.js.map +0 -1
  563. package/dist/node/column-views.7b9bd06e.css +0 -2
  564. package/dist/node/column-views.7b9bd06e.css.map +0 -1
  565. package/dist/node/column-views.7d45bbeb.js +0 -2
  566. package/dist/node/column-views.7d45bbeb.js.map +0 -1
  567. package/dist/node/column-views.7f9c7448.js +0 -2
  568. package/dist/node/column-views.7f9c7448.js.map +0 -1
  569. package/dist/node/column-views.82cf7c0d.js +0 -2
  570. package/dist/node/column-views.82cf7c0d.js.map +0 -1
  571. package/dist/node/column-views.869c7199.js +0 -2
  572. package/dist/node/column-views.869c7199.js.map +0 -1
  573. package/dist/node/column-views.8bee789c.js +0 -2
  574. package/dist/node/column-views.8bee789c.js.map +0 -1
  575. package/dist/node/column-views.90c36c0b.js +0 -2
  576. package/dist/node/column-views.90c36c0b.js.map +0 -1
  577. package/dist/node/column-views.951e3e9a.js +0 -2
  578. package/dist/node/column-views.951e3e9a.js.map +0 -1
  579. package/dist/node/column-views.95411f1b.js +0 -2
  580. package/dist/node/column-views.95411f1b.js.map +0 -1
  581. package/dist/node/column-views.9cb13e51.css +0 -2
  582. package/dist/node/column-views.9cb13e51.css.map +0 -1
  583. package/dist/node/column-views.a0969fc8.js +0 -2
  584. package/dist/node/column-views.a0969fc8.js.map +0 -1
  585. package/dist/node/column-views.a2476e39.js +0 -2
  586. package/dist/node/column-views.a2476e39.js.map +0 -1
  587. package/dist/node/column-views.a8f5ee28.js +0 -2
  588. package/dist/node/column-views.a8f5ee28.js.map +0 -1
  589. package/dist/node/column-views.ad60c02f.js +0 -2
  590. package/dist/node/column-views.ad60c02f.js.map +0 -1
  591. package/dist/node/column-views.add5e42b.js +0 -2
  592. package/dist/node/column-views.add5e42b.js.map +0 -1
  593. package/dist/node/column-views.aff55599.js +0 -2
  594. package/dist/node/column-views.aff55599.js.map +0 -1
  595. package/dist/node/column-views.b169b4b5.css +0 -2
  596. package/dist/node/column-views.b169b4b5.css.map +0 -1
  597. package/dist/node/column-views.b2e5f823.js +0 -2
  598. package/dist/node/column-views.b2e5f823.js.map +0 -1
  599. package/dist/node/column-views.b57e5e6e.js +0 -2
  600. package/dist/node/column-views.b57e5e6e.js.map +0 -1
  601. package/dist/node/column-views.b762c9a8.js +0 -2
  602. package/dist/node/column-views.b762c9a8.js.map +0 -1
  603. package/dist/node/column-views.ba9108fe.js +0 -2
  604. package/dist/node/column-views.ba9108fe.js.map +0 -1
  605. package/dist/node/column-views.c16a19fb.js +0 -2
  606. package/dist/node/column-views.c16a19fb.js.map +0 -1
  607. package/dist/node/column-views.c3097d9a.js +0 -2
  608. package/dist/node/column-views.c3097d9a.js.map +0 -1
  609. package/dist/node/column-views.c4c15e2b.js +0 -2
  610. package/dist/node/column-views.c4c15e2b.js.map +0 -1
  611. package/dist/node/column-views.c651b684.js +0 -2
  612. package/dist/node/column-views.c651b684.js.map +0 -1
  613. package/dist/node/column-views.c968a185.css +0 -2
  614. package/dist/node/column-views.c968a185.css.map +0 -1
  615. package/dist/node/column-views.ccfb9afb.css +0 -2
  616. package/dist/node/column-views.ccfb9afb.css.map +0 -1
  617. package/dist/node/column-views.cdcce702.js +0 -2
  618. package/dist/node/column-views.cdcce702.js.map +0 -1
  619. package/dist/node/column-views.cf41a6d7.js +0 -2
  620. package/dist/node/column-views.cf41a6d7.js.map +0 -1
  621. package/dist/node/column-views.d22bf15c.js +0 -2
  622. package/dist/node/column-views.d22bf15c.js.map +0 -1
  623. package/dist/node/column-views.d737de1e.js +0 -2
  624. package/dist/node/column-views.d737de1e.js.map +0 -1
  625. package/dist/node/column-views.da902c44.js +0 -2
  626. package/dist/node/column-views.da902c44.js.map +0 -1
  627. package/dist/node/column-views.db3377d8.js +0 -2
  628. package/dist/node/column-views.db3377d8.js.map +0 -1
  629. package/dist/node/column-views.dbb4a46b.js +0 -2
  630. package/dist/node/column-views.dbb4a46b.js.map +0 -1
  631. package/dist/node/column-views.ddc6184e.css +0 -2
  632. package/dist/node/column-views.ddc6184e.css.map +0 -1
  633. package/dist/node/column-views.e0e20136.js +0 -2
  634. package/dist/node/column-views.e0e20136.js.map +0 -1
  635. package/dist/node/column-views.e2562224.js +0 -2
  636. package/dist/node/column-views.e2562224.js.map +0 -1
  637. package/dist/node/column-views.e6720522.js +0 -2
  638. package/dist/node/column-views.e6720522.js.map +0 -1
  639. package/dist/node/column-views.e7e26765.js +0 -2
  640. package/dist/node/column-views.e7e26765.js.map +0 -1
  641. package/dist/node/column-views.e93b3bdb.js +0 -2
  642. package/dist/node/column-views.e93b3bdb.js.map +0 -1
  643. package/dist/node/column-views.ebb44b7d.js +0 -2
  644. package/dist/node/column-views.ebb44b7d.js.map +0 -1
  645. package/dist/node/column-views.ec0087a2.js +0 -2
  646. package/dist/node/column-views.ec0087a2.js.map +0 -1
  647. package/dist/node/column-views.eea80478.js +0 -2
  648. package/dist/node/column-views.eea80478.js.map +0 -1
  649. package/dist/node/column-views.f2e82230.js +0 -2
  650. package/dist/node/column-views.f2e82230.js.map +0 -1
  651. package/dist/node/column-views.fb3ed7cc.js +0 -2
  652. package/dist/node/column-views.fb3ed7cc.js.map +0 -1
  653. package/dist/node/column-views.fcb243a2.js +0 -2
  654. package/dist/node/column-views.fcb243a2.js.map +0 -1
  655. package/dist/node/column-views.fea32686.js +0 -2
  656. package/dist/node/column-views.fea32686.js.map +0 -1
  657. package/dist/node/index.js +0 -2
  658. package/dist/node/index.js.map +0 -1
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const columnComponents = require("@macrostrat/column-components");
4
+ const index = require("../prepare-units/index.cjs");
5
+ require("@macrostrat/stratigraphy-utils");
6
+ const utils = require("../prepare-units/utils.cjs");
7
+ const helpers = require("../prepare-units/helpers.cjs");
8
+ function buildCorrelationChartData(columns, settings) {
9
+ console.log(settings);
10
+ const {
11
+ mergeSections = utils.MergeSectionsMode.OVERLAPPING,
12
+ targetUnitHeight,
13
+ ...rest
14
+ } = settings;
15
+ const opts = {
16
+ axisType: columnComponents.ColumnAxisType.AGE,
17
+ targetUnitHeight,
18
+ mergeSections,
19
+ ...rest
20
+ };
21
+ if (columns.length == 0) {
22
+ return null;
23
+ }
24
+ const _units = columns.map((d) => d.units).flat();
25
+ const columnIDs = columns.map((d) => d.columnID);
26
+ const preparedUnits = index.prepareColumnUnits(_units, opts);
27
+ const { sections, totalHeight } = preparedUnits;
28
+ const scaleInfo = {
29
+ axisType: columnComponents.ColumnAxisType.AGE,
30
+ totalHeight,
31
+ packages: sections.map((d) => d.scaleInfo)
32
+ };
33
+ const packages = sections.map((d) => {
34
+ return separateColumns(d, columnIDs);
35
+ });
36
+ return { scaleInfo, packages, nColumns: columnIDs.length };
37
+ }
38
+ function separateColumns(pkg, columnIDs) {
39
+ const { units, t_age, b_age } = pkg;
40
+ return {
41
+ columnData: columnIDs.map((d) => {
42
+ const u1 = units.filter((unit) => unit.col_id == d);
43
+ u1.sort((a, b) => a.t_age - b.t_age);
44
+ return {
45
+ columnID: d,
46
+ // Ensure that the units correctly show overlap
47
+ units: helpers.preprocessUnits(
48
+ {
49
+ ...pkg,
50
+ units: u1
51
+ },
52
+ columnComponents.ColumnAxisType.AGE
53
+ )
54
+ };
55
+ }),
56
+ bestPixelScale: pkg.scaleInfo.pixelScale,
57
+ t_age,
58
+ b_age
59
+ };
60
+ }
61
+ exports.buildCorrelationChartData = buildCorrelationChartData;
62
+ //# sourceMappingURL=prepare-data.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-data.cjs","sources":["../../src/correlation-chart/prepare-data.ts"],"sourcesContent":["import { CompositeStratigraphicScaleInfo } from \"../age-axis\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { type ColumnGeoJSONRecord, UnitLong } from \"@macrostrat/api-types\";\nimport {\n MergeSectionsMode,\n PrepareColumnOptions,\n prepareColumnUnits,\n preprocessUnits,\n} from \"../prepare-units\";\nimport { mergeAgeRanges } from \"@macrostrat/stratigraphy-utils\";\nimport { PackageLayoutData } from \"../prepare-units/types\";\n\nexport interface ColumnIdentifier {\n col_id: number;\n col_name: string;\n project_id: number;\n}\n\ninterface ColumnData {\n columnID: number;\n units: UnitLong[];\n}\n\nexport interface CorrelationChartSettings extends Omit<\n PrepareColumnOptions,\n \"axisType\"\n> {\n targetUnitHeight?: number;\n}\n\nexport interface CorrelationChartData {\n packages: MultiColumnPackageData[];\n scaleInfo: CompositeStratigraphicScaleInfo;\n nColumns: number;\n}\n\nexport interface ColumnIdentifier {\n col_id: number;\n col_name: string;\n project_id: number;\n}\n\nexport function buildCorrelationChartData(\n columns: ColumnData[],\n settings: CorrelationChartSettings,\n): CorrelationChartData {\n console.log(settings);\n const {\n mergeSections = MergeSectionsMode.OVERLAPPING,\n targetUnitHeight,\n ...rest\n } = settings;\n\n const opts: PrepareColumnOptions = {\n axisType: ColumnAxisType.AGE,\n targetUnitHeight,\n mergeSections,\n ...rest,\n };\n\n if (columns.length == 0) {\n return null;\n }\n\n // Flatten the units array to pretend that all units are in the same column\n const _units = columns.map((d) => d.units).flat();\n\n const columnIDs = columns.map((d) => d.columnID);\n\n const preparedUnits = prepareColumnUnits(_units, opts);\n\n const { sections, totalHeight } = preparedUnits;\n\n const scaleInfo: CompositeStratigraphicScaleInfo = {\n axisType: ColumnAxisType.AGE,\n totalHeight,\n packages: sections.map((d) => d.scaleInfo),\n };\n\n const packages = sections.map((d) => {\n return separateColumns(d, columnIDs);\n });\n\n return { scaleInfo, packages, nColumns: columnIDs.length };\n}\n\ninterface UnitGroup {\n b_age: number;\n t_age: number;\n strat_name_id: number;\n strat_name_long: string;\n units: (UnitLong | null)[];\n}\n\nexport interface UnitGroupBox extends UnitGroup {\n units: UnitLong[];\n startCol: number;\n endCol: number;\n}\n\ninterface ColumnExt {\n columnID: number;\n units: UnitLong[];\n}\n\ninterface MultiColumnPackageData {\n columnData: ColumnExt[];\n bestPixelScale?: number;\n b_age: number;\n t_age: number;\n}\n\nexport function findLaterallyExtensiveUnits(\n pkg: MultiColumnPackageData,\n): UnitGroup[] {\n const { columnData, b_age, t_age } = pkg;\n // Group units by strat_name_id\n const unitIndex = new Map<number, Map<number, UnitLong>>();\n for (const column of columnData) {\n const { units } = column;\n for (const unit of units) {\n if (unit.strat_name_id == null) continue;\n if (!unitIndex.has(unit.strat_name_id)) {\n unitIndex.set(unit.strat_name_id, new Map());\n }\n unitIndex.get(unit.strat_name_id).set(column.columnID, unit);\n }\n }\n\n // Prepare grouped units for rendering\n const unitGroups: UnitGroup[] = [];\n for (const [strat_name_id, unitIndex0] of unitIndex) {\n const units = columnData.map((d) => unitIndex0.get(d.columnID) ?? null);\n const filteredUnits = units.filter((d) => d != null);\n const [t_age, b_age] = mergeAgeRanges(\n filteredUnits.map((d) => [d.t_age, d.b_age]),\n );\n if (filteredUnits.length <= 1) continue;\n\n unitGroups.push({\n b_age,\n t_age,\n strat_name_id,\n strat_name_long: filteredUnits[0].strat_name_long,\n units,\n });\n }\n\n return unitGroups;\n}\n\nexport function splitStratIntoBoxes(pkg: UnitGroup): UnitGroupBox[] {\n const { strat_name_long, strat_name_id, units } = pkg;\n const boxes: UnitGroupBox[] = [];\n let currentBox: UnitGroupBox = null;\n for (let i = 0; i < units.length; i++) {\n const unit = units[i];\n if (unit == null) {\n if (currentBox != null) {\n boxes.push(currentBox);\n currentBox = null;\n }\n continue;\n }\n if (currentBox == null) {\n currentBox = {\n startCol: i,\n endCol: i,\n strat_name_id,\n strat_name_long,\n t_age: unit.t_age,\n b_age: unit.b_age,\n units: [],\n };\n } else {\n currentBox.endCol = i;\n }\n currentBox.units.push(unit);\n }\n return boxes;\n}\n\nfunction separateColumns(\n pkg: PackageLayoutData,\n columnIDs: number[],\n): MultiColumnPackageData {\n /** Separate columns by col_id */\n const { units, t_age, b_age } = pkg;\n\n return {\n columnData: columnIDs.map((d) => {\n const u1 = units.filter((unit) => unit.col_id == d);\n u1.sort((a, b) => a.t_age - b.t_age);\n return {\n columnID: d,\n // Ensure that the units correctly show overlap\n units: preprocessUnits(\n {\n ...pkg,\n units: u1,\n },\n ColumnAxisType.AGE,\n ),\n };\n }),\n bestPixelScale: pkg.scaleInfo.pixelScale,\n t_age,\n b_age,\n };\n}\n\nexport function columnGeoJSONRecordToColumnIdentifier(\n col: ColumnGeoJSONRecord,\n): ColumnIdentifier {\n return {\n col_id: col.properties.col_id,\n col_name: col.properties.col_name,\n project_id: col.properties.project_id,\n };\n}\n"],"names":["MergeSectionsMode","ColumnAxisType","prepareColumnUnits","preprocessUnits"],"mappings":";;;;;;;AA0CO,SAAS,0BACd,SACA,UACsB;AACtB,UAAQ,IAAI,QAAQ;AACpB,QAAM;AAAA,IACJ,gBAAgBA,MAAAA,kBAAkB;AAAA,IAClC;AAAA,IACA,GAAG;AAAA,EAAA,IACD;AAEJ,QAAM,OAA6B;AAAA,IACjC,UAAUC,iBAAAA,eAAe;AAAA,IACzB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA;AAGL,MAAI,QAAQ,UAAU,GAAG;AACvB,WAAO;AAAA,EACT;AAGA,QAAM,SAAS,QAAQ,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAA;AAE3C,QAAM,YAAY,QAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ;AAE/C,QAAM,gBAAgBC,MAAAA,mBAAmB,QAAQ,IAAI;AAErD,QAAM,EAAE,UAAU,YAAA,IAAgB;AAElC,QAAM,YAA6C;AAAA,IACjD,UAAUD,iBAAAA,eAAe;AAAA,IACzB;AAAA,IACA,UAAU,SAAS,IAAI,CAAC,MAAM,EAAE,SAAS;AAAA,EAAA;AAG3C,QAAM,WAAW,SAAS,IAAI,CAAC,MAAM;AACnC,WAAO,gBAAgB,GAAG,SAAS;AAAA,EACrC,CAAC;AAED,SAAO,EAAE,WAAW,UAAU,UAAU,UAAU,OAAA;AACpD;AAkGA,SAAS,gBACP,KACA,WACwB;AAExB,QAAM,EAAE,OAAO,OAAO,MAAA,IAAU;AAEhC,SAAO;AAAA,IACL,YAAY,UAAU,IAAI,CAAC,MAAM;AAC/B,YAAM,KAAK,MAAM,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC;AAClD,SAAG,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AACnC,aAAO;AAAA,QACL,UAAU;AAAA;AAAA,QAEV,OAAOE,QAAAA;AAAAA,UACL;AAAA,YACE,GAAG;AAAA,YACH,OAAO;AAAA,UAAA;AAAA,UAETF,gCAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IAEJ,CAAC;AAAA,IACD,gBAAgB,IAAI,UAAU;AAAA,IAC9B;AAAA,IACA;AAAA,EAAA;AAEJ;;"}
@@ -0,0 +1,52 @@
1
+ import { CompositeStratigraphicScaleInfo } from '../age-axis';
2
+ import { ColumnGeoJSONRecord, UnitLong } from '@macrostrat/api-types';
3
+ import { PrepareColumnOptions } from '../prepare-units';
4
+ export interface ColumnIdentifier {
5
+ col_id: number;
6
+ col_name: string;
7
+ project_id: number;
8
+ }
9
+ interface ColumnData {
10
+ columnID: number;
11
+ units: UnitLong[];
12
+ }
13
+ export interface CorrelationChartSettings extends Omit<PrepareColumnOptions, "axisType"> {
14
+ targetUnitHeight?: number;
15
+ }
16
+ export interface CorrelationChartData {
17
+ packages: MultiColumnPackageData[];
18
+ scaleInfo: CompositeStratigraphicScaleInfo;
19
+ nColumns: number;
20
+ }
21
+ export interface ColumnIdentifier {
22
+ col_id: number;
23
+ col_name: string;
24
+ project_id: number;
25
+ }
26
+ export declare function buildCorrelationChartData(columns: ColumnData[], settings: CorrelationChartSettings): CorrelationChartData;
27
+ interface UnitGroup {
28
+ b_age: number;
29
+ t_age: number;
30
+ strat_name_id: number;
31
+ strat_name_long: string;
32
+ units: (UnitLong | null)[];
33
+ }
34
+ export interface UnitGroupBox extends UnitGroup {
35
+ units: UnitLong[];
36
+ startCol: number;
37
+ endCol: number;
38
+ }
39
+ interface ColumnExt {
40
+ columnID: number;
41
+ units: UnitLong[];
42
+ }
43
+ interface MultiColumnPackageData {
44
+ columnData: ColumnExt[];
45
+ bestPixelScale?: number;
46
+ b_age: number;
47
+ t_age: number;
48
+ }
49
+ export declare function findLaterallyExtensiveUnits(pkg: MultiColumnPackageData): UnitGroup[];
50
+ export declare function splitStratIntoBoxes(pkg: UnitGroup): UnitGroupBox[];
51
+ export declare function columnGeoJSONRecordToColumnIdentifier(col: ColumnGeoJSONRecord): ColumnIdentifier;
52
+ export {};
@@ -0,0 +1,62 @@
1
+ import { ColumnAxisType } from "@macrostrat/column-components";
2
+ import { prepareColumnUnits } from "../prepare-units/index.js";
3
+ import "@macrostrat/stratigraphy-utils";
4
+ import { MergeSectionsMode } from "../prepare-units/utils.js";
5
+ import { preprocessUnits } from "../prepare-units/helpers.js";
6
+ function buildCorrelationChartData(columns, settings) {
7
+ console.log(settings);
8
+ const {
9
+ mergeSections = MergeSectionsMode.OVERLAPPING,
10
+ targetUnitHeight,
11
+ ...rest
12
+ } = settings;
13
+ const opts = {
14
+ axisType: ColumnAxisType.AGE,
15
+ targetUnitHeight,
16
+ mergeSections,
17
+ ...rest
18
+ };
19
+ if (columns.length == 0) {
20
+ return null;
21
+ }
22
+ const _units = columns.map((d) => d.units).flat();
23
+ const columnIDs = columns.map((d) => d.columnID);
24
+ const preparedUnits = prepareColumnUnits(_units, opts);
25
+ const { sections, totalHeight } = preparedUnits;
26
+ const scaleInfo = {
27
+ axisType: ColumnAxisType.AGE,
28
+ totalHeight,
29
+ packages: sections.map((d) => d.scaleInfo)
30
+ };
31
+ const packages = sections.map((d) => {
32
+ return separateColumns(d, columnIDs);
33
+ });
34
+ return { scaleInfo, packages, nColumns: columnIDs.length };
35
+ }
36
+ function separateColumns(pkg, columnIDs) {
37
+ const { units, t_age, b_age } = pkg;
38
+ return {
39
+ columnData: columnIDs.map((d) => {
40
+ const u1 = units.filter((unit) => unit.col_id == d);
41
+ u1.sort((a, b) => a.t_age - b.t_age);
42
+ return {
43
+ columnID: d,
44
+ // Ensure that the units correctly show overlap
45
+ units: preprocessUnits(
46
+ {
47
+ ...pkg,
48
+ units: u1
49
+ },
50
+ ColumnAxisType.AGE
51
+ )
52
+ };
53
+ }),
54
+ bestPixelScale: pkg.scaleInfo.pixelScale,
55
+ t_age,
56
+ b_age
57
+ };
58
+ }
59
+ export {
60
+ buildCorrelationChartData
61
+ };
62
+ //# sourceMappingURL=prepare-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-data.js","sources":["../../src/correlation-chart/prepare-data.ts"],"sourcesContent":["import { CompositeStratigraphicScaleInfo } from \"../age-axis\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { type ColumnGeoJSONRecord, UnitLong } from \"@macrostrat/api-types\";\nimport {\n MergeSectionsMode,\n PrepareColumnOptions,\n prepareColumnUnits,\n preprocessUnits,\n} from \"../prepare-units\";\nimport { mergeAgeRanges } from \"@macrostrat/stratigraphy-utils\";\nimport { PackageLayoutData } from \"../prepare-units/types\";\n\nexport interface ColumnIdentifier {\n col_id: number;\n col_name: string;\n project_id: number;\n}\n\ninterface ColumnData {\n columnID: number;\n units: UnitLong[];\n}\n\nexport interface CorrelationChartSettings extends Omit<\n PrepareColumnOptions,\n \"axisType\"\n> {\n targetUnitHeight?: number;\n}\n\nexport interface CorrelationChartData {\n packages: MultiColumnPackageData[];\n scaleInfo: CompositeStratigraphicScaleInfo;\n nColumns: number;\n}\n\nexport interface ColumnIdentifier {\n col_id: number;\n col_name: string;\n project_id: number;\n}\n\nexport function buildCorrelationChartData(\n columns: ColumnData[],\n settings: CorrelationChartSettings,\n): CorrelationChartData {\n console.log(settings);\n const {\n mergeSections = MergeSectionsMode.OVERLAPPING,\n targetUnitHeight,\n ...rest\n } = settings;\n\n const opts: PrepareColumnOptions = {\n axisType: ColumnAxisType.AGE,\n targetUnitHeight,\n mergeSections,\n ...rest,\n };\n\n if (columns.length == 0) {\n return null;\n }\n\n // Flatten the units array to pretend that all units are in the same column\n const _units = columns.map((d) => d.units).flat();\n\n const columnIDs = columns.map((d) => d.columnID);\n\n const preparedUnits = prepareColumnUnits(_units, opts);\n\n const { sections, totalHeight } = preparedUnits;\n\n const scaleInfo: CompositeStratigraphicScaleInfo = {\n axisType: ColumnAxisType.AGE,\n totalHeight,\n packages: sections.map((d) => d.scaleInfo),\n };\n\n const packages = sections.map((d) => {\n return separateColumns(d, columnIDs);\n });\n\n return { scaleInfo, packages, nColumns: columnIDs.length };\n}\n\ninterface UnitGroup {\n b_age: number;\n t_age: number;\n strat_name_id: number;\n strat_name_long: string;\n units: (UnitLong | null)[];\n}\n\nexport interface UnitGroupBox extends UnitGroup {\n units: UnitLong[];\n startCol: number;\n endCol: number;\n}\n\ninterface ColumnExt {\n columnID: number;\n units: UnitLong[];\n}\n\ninterface MultiColumnPackageData {\n columnData: ColumnExt[];\n bestPixelScale?: number;\n b_age: number;\n t_age: number;\n}\n\nexport function findLaterallyExtensiveUnits(\n pkg: MultiColumnPackageData,\n): UnitGroup[] {\n const { columnData, b_age, t_age } = pkg;\n // Group units by strat_name_id\n const unitIndex = new Map<number, Map<number, UnitLong>>();\n for (const column of columnData) {\n const { units } = column;\n for (const unit of units) {\n if (unit.strat_name_id == null) continue;\n if (!unitIndex.has(unit.strat_name_id)) {\n unitIndex.set(unit.strat_name_id, new Map());\n }\n unitIndex.get(unit.strat_name_id).set(column.columnID, unit);\n }\n }\n\n // Prepare grouped units for rendering\n const unitGroups: UnitGroup[] = [];\n for (const [strat_name_id, unitIndex0] of unitIndex) {\n const units = columnData.map((d) => unitIndex0.get(d.columnID) ?? null);\n const filteredUnits = units.filter((d) => d != null);\n const [t_age, b_age] = mergeAgeRanges(\n filteredUnits.map((d) => [d.t_age, d.b_age]),\n );\n if (filteredUnits.length <= 1) continue;\n\n unitGroups.push({\n b_age,\n t_age,\n strat_name_id,\n strat_name_long: filteredUnits[0].strat_name_long,\n units,\n });\n }\n\n return unitGroups;\n}\n\nexport function splitStratIntoBoxes(pkg: UnitGroup): UnitGroupBox[] {\n const { strat_name_long, strat_name_id, units } = pkg;\n const boxes: UnitGroupBox[] = [];\n let currentBox: UnitGroupBox = null;\n for (let i = 0; i < units.length; i++) {\n const unit = units[i];\n if (unit == null) {\n if (currentBox != null) {\n boxes.push(currentBox);\n currentBox = null;\n }\n continue;\n }\n if (currentBox == null) {\n currentBox = {\n startCol: i,\n endCol: i,\n strat_name_id,\n strat_name_long,\n t_age: unit.t_age,\n b_age: unit.b_age,\n units: [],\n };\n } else {\n currentBox.endCol = i;\n }\n currentBox.units.push(unit);\n }\n return boxes;\n}\n\nfunction separateColumns(\n pkg: PackageLayoutData,\n columnIDs: number[],\n): MultiColumnPackageData {\n /** Separate columns by col_id */\n const { units, t_age, b_age } = pkg;\n\n return {\n columnData: columnIDs.map((d) => {\n const u1 = units.filter((unit) => unit.col_id == d);\n u1.sort((a, b) => a.t_age - b.t_age);\n return {\n columnID: d,\n // Ensure that the units correctly show overlap\n units: preprocessUnits(\n {\n ...pkg,\n units: u1,\n },\n ColumnAxisType.AGE,\n ),\n };\n }),\n bestPixelScale: pkg.scaleInfo.pixelScale,\n t_age,\n b_age,\n };\n}\n\nexport function columnGeoJSONRecordToColumnIdentifier(\n col: ColumnGeoJSONRecord,\n): ColumnIdentifier {\n return {\n col_id: col.properties.col_id,\n col_name: col.properties.col_name,\n project_id: col.properties.project_id,\n };\n}\n"],"names":[],"mappings":";;;;;AA0CO,SAAS,0BACd,SACA,UACsB;AACtB,UAAQ,IAAI,QAAQ;AACpB,QAAM;AAAA,IACJ,gBAAgB,kBAAkB;AAAA,IAClC;AAAA,IACA,GAAG;AAAA,EAAA,IACD;AAEJ,QAAM,OAA6B;AAAA,IACjC,UAAU,eAAe;AAAA,IACzB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA;AAGL,MAAI,QAAQ,UAAU,GAAG;AACvB,WAAO;AAAA,EACT;AAGA,QAAM,SAAS,QAAQ,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAA;AAE3C,QAAM,YAAY,QAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ;AAE/C,QAAM,gBAAgB,mBAAmB,QAAQ,IAAI;AAErD,QAAM,EAAE,UAAU,YAAA,IAAgB;AAElC,QAAM,YAA6C;AAAA,IACjD,UAAU,eAAe;AAAA,IACzB;AAAA,IACA,UAAU,SAAS,IAAI,CAAC,MAAM,EAAE,SAAS;AAAA,EAAA;AAG3C,QAAM,WAAW,SAAS,IAAI,CAAC,MAAM;AACnC,WAAO,gBAAgB,GAAG,SAAS;AAAA,EACrC,CAAC;AAED,SAAO,EAAE,WAAW,UAAU,UAAU,UAAU,OAAA;AACpD;AAkGA,SAAS,gBACP,KACA,WACwB;AAExB,QAAM,EAAE,OAAO,OAAO,MAAA,IAAU;AAEhC,SAAO;AAAA,IACL,YAAY,UAAU,IAAI,CAAC,MAAM;AAC/B,YAAM,KAAK,MAAM,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC;AAClD,SAAG,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AACnC,aAAO;AAAA,QACL,UAAU;AAAA;AAAA,QAEV,OAAO;AAAA,UACL;AAAA,YACE,GAAG;AAAA,YACH,OAAO;AAAA,UAAA;AAAA,UAET,eAAe;AAAA,QAAA;AAAA,MACjB;AAAA,IAEJ,CAAC;AAAA,IACD,gBAAgB,IAAI,UAAU;AAAA,IAC9B;AAAA,IACA;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,6 @@
1
+ export declare function useCorrelationLine(): {
2
+ focusedLine: import('geojson').LineString;
3
+ setFocusedLine: (line: any) => void;
4
+ selectedUnit: any;
5
+ setSelectedUnit: (selectedUnit: any) => void;
6
+ };
@@ -0,0 +1,3 @@
1
+ export declare function UnconformityLine({ width }: {
2
+ width: any;
3
+ }): import('react').DOMElement<import('react').DOMAttributes<Element>, Element>;
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const crossFetch = require("cross-fetch");
4
+ const React = require("react");
5
+ const h = require("@macrostrat/hyper");
6
+ const zustand = require("zustand");
7
+ const fetch = require("./fetch.cjs");
8
+ const uiComponents = require("@macrostrat/ui-components");
9
+ const columnComponents = require("@macrostrat/column-components");
10
+ const store = require("./store.cjs");
11
+ function createMacrostratStore(baseURL = "https://macrostrat.org/api/v2") {
12
+ return zustand.create((set, get) => {
13
+ return {
14
+ baseURL,
15
+ inFlightRequests: /* @__PURE__ */ new Set(),
16
+ async fetch(url, options) {
17
+ const url1 = baseURL + url;
18
+ const { inFlightRequests } = get();
19
+ if (inFlightRequests.has(url1)) {
20
+ return null;
21
+ }
22
+ inFlightRequests.add(url1);
23
+ const res = await crossFetch(url1, options);
24
+ inFlightRequests.delete(url1);
25
+ return res;
26
+ },
27
+ ...createLithologiesSlice(set, get),
28
+ ...createIntervalsSlice(set, get),
29
+ ...createEnvironmentsSlice(set, get),
30
+ ...createColumnsSlice(set, get),
31
+ ...createRefsSlice(set, get),
32
+ ...createStratNamesSlice(set, get)
33
+ };
34
+ });
35
+ }
36
+ function createRefsSlice(set, get) {
37
+ return {
38
+ refs: /* @__PURE__ */ new Map(),
39
+ async getRefs(ids) {
40
+ const { refs, fetch: fetch$1 } = get();
41
+ const missing = ids.filter((id) => !refs.has(id));
42
+ if (missing.length == 0) {
43
+ return ids.map((id) => refs.get(id));
44
+ }
45
+ const data = await fetch.fetchRefs(missing, fetch$1);
46
+ if (data == null) return [];
47
+ for (const d of data) {
48
+ refs.set(d.ref_id, d);
49
+ }
50
+ set({ refs });
51
+ return ids.map((id) => refs.get(id));
52
+ }
53
+ };
54
+ }
55
+ function createColumnsSlice(set, get) {
56
+ return {
57
+ columnFootprints: /* @__PURE__ */ new Map(),
58
+ async getColumns(projectID, inProcess) {
59
+ const { columnFootprints, baseURL, fetch: fetch$1 } = get();
60
+ const key = projectID ?? -1;
61
+ let _inProcess = inProcess;
62
+ let footprints = columnFootprints.get(key);
63
+ if (footprints == null || footprints.inProcess != _inProcess) {
64
+ const statusCode = ["active"];
65
+ if (_inProcess) {
66
+ statusCode.push("in process");
67
+ }
68
+ const columns = await fetch.fetchAllColumns({
69
+ projectID,
70
+ statusCode,
71
+ fetch: fetch$1
72
+ });
73
+ if (columns == null) {
74
+ return;
75
+ }
76
+ footprints = {
77
+ project_id: projectID,
78
+ inProcess,
79
+ columns
80
+ };
81
+ const columnFootprints2 = new Map(columnFootprints);
82
+ columnFootprints2.set(key, footprints);
83
+ set({ columnFootprints: columnFootprints2 });
84
+ }
85
+ return footprints.columns;
86
+ }
87
+ };
88
+ }
89
+ function createLithologiesSlice(set, get) {
90
+ return {
91
+ lithologies: null,
92
+ async getLithologies(ids) {
93
+ const { lithologies, fetch: fetch$1 } = get();
94
+ let lithMap = lithologies;
95
+ if (lithMap == null) {
96
+ const data = await fetch.fetchLithologies(fetch$1);
97
+ if (data == null) return;
98
+ lithMap = new Map(data.map((d) => [d.lith_id, d]));
99
+ set({ lithologies: lithMap });
100
+ }
101
+ if (ids == null) return lithMap.values();
102
+ return ids.map((id) => lithMap.get(id));
103
+ }
104
+ };
105
+ }
106
+ function createEnvironmentsSlice(set, get) {
107
+ return {
108
+ environments: null,
109
+ async getEnvironments(ids) {
110
+ const { environments, fetch: fetch$1 } = get();
111
+ let envMap = environments;
112
+ if (envMap == null) {
113
+ const data = await fetch.fetchEnvironments(fetch$1);
114
+ if (data == null) return [];
115
+ envMap = new Map(data.map((d) => [d.environ_id, d]));
116
+ set({ environments: envMap });
117
+ }
118
+ if (ids == null) return envMap.values();
119
+ return ids.map((id) => envMap.get(id));
120
+ }
121
+ };
122
+ }
123
+ function createIntervalsSlice(set, get) {
124
+ return {
125
+ intervals: null,
126
+ async getIntervals(ids, timescaleID) {
127
+ const { intervals, fetch: fetch$1 } = get();
128
+ let _intervals = intervals;
129
+ if (intervals == null || !includesTimescale(intervals, timescaleID)) {
130
+ const data = await fetch.fetchIntervals(timescaleID, fetch$1);
131
+ if (data == null) {
132
+ return [];
133
+ }
134
+ const intervalMap = intervals ?? /* @__PURE__ */ new Map();
135
+ for (const d of data) {
136
+ intervalMap.set(d.int_id, d);
137
+ }
138
+ _intervals = intervalMap;
139
+ set({ intervals: _intervals });
140
+ }
141
+ if (ids == null && timescaleID == null)
142
+ return Array.from(_intervals.values());
143
+ if (timescaleID != null) {
144
+ return Array.from(_intervals.values()).filter(
145
+ (d) => d.timescale_id == timescaleID
146
+ );
147
+ }
148
+ return ids.map((id) => intervals.get(id));
149
+ }
150
+ };
151
+ }
152
+ function createStratNamesSlice(set, get) {
153
+ return {
154
+ stratNames: null,
155
+ async getStratNames(ids) {
156
+ const { stratNames, fetch: fetch$1 } = get();
157
+ let nameMap = stratNames ?? /* @__PURE__ */ new Map();
158
+ let stratNamesAlreadyLoaded = [];
159
+ let stratNamesToLoad = [];
160
+ for (const id of ids) {
161
+ if (nameMap.has(id)) {
162
+ stratNamesAlreadyLoaded.push(nameMap.get(id));
163
+ } else {
164
+ stratNamesToLoad.push(id);
165
+ }
166
+ }
167
+ if (stratNamesToLoad.length > 0) {
168
+ const data = await fetch.fetchStratNames(stratNamesToLoad, fetch$1);
169
+ if (data == null) return stratNamesAlreadyLoaded;
170
+ for (const d of data) {
171
+ nameMap.set(d.strat_name_id, d);
172
+ }
173
+ set({ stratNames: nameMap });
174
+ }
175
+ return ids.map((id) => nameMap.get(id));
176
+ }
177
+ };
178
+ }
179
+ function includesTimescale(intervals, timescaleID) {
180
+ if (intervals == null) return false;
181
+ if (timescaleID == null) return true;
182
+ return Array.from(intervals.values()).some(
183
+ (d) => d.timescale_id == timescaleID
184
+ );
185
+ }
186
+ function useMacrostratStore(selector) {
187
+ const ctx = React.useContext(MacrostratDataProviderContext);
188
+ if (ctx == null) {
189
+ throw new Error("Missing MacrostratDataProvider");
190
+ }
191
+ if (selector === "api") {
192
+ return ctx;
193
+ }
194
+ return zustand.useStore(ctx, selector);
195
+ }
196
+ function useMacrostratBaseURL(defaultURL = "https://macrostrat.org/api/v2") {
197
+ const ctx = React.useContext(MacrostratDataProviderContext);
198
+ if (ctx == null) {
199
+ return defaultURL;
200
+ }
201
+ return ctx.getState().baseURL;
202
+ }
203
+ function useMacrostratFetch() {
204
+ const ctx = React.useContext(MacrostratDataProviderContext);
205
+ if (ctx == null) {
206
+ throw new Error("Missing MacrostratDataProvider");
207
+ }
208
+ return ctx.getState().fetch;
209
+ }
210
+ const dataTypeMapping = {
211
+ lithologies: (store2) => store2.getLithologies,
212
+ intervals: (store2) => store2.getIntervals,
213
+ columns: (store2) => store2.getColumns,
214
+ environments: (store2) => store2.getEnvironments,
215
+ refs: (store2) => store2.getRefs,
216
+ strat_names: (store2) => store2.getStratNames
217
+ };
218
+ function useMacrostratDefs(dataType) {
219
+ if (dataType == "columns") {
220
+ throw new Error("Columns are not provided as a map");
221
+ }
222
+ const operator = useMacrostratStore(dataTypeMapping[dataType]);
223
+ React.useEffect(() => {
224
+ operator();
225
+ }, []);
226
+ return useMacrostratStore((state) => state[dataType]);
227
+ }
228
+ function useMacrostratColumns(projectID, inProcess) {
229
+ const getColumns = useMacrostratStore((s) => s.getColumns);
230
+ const columnsMap = useMacrostratStore((s) => s.columnFootprints);
231
+ const key = projectID ?? -1;
232
+ const colData = columnsMap?.get(key);
233
+ React.useEffect(() => {
234
+ if (colData == null || inProcess && !colData.inProcess) {
235
+ getColumns(projectID, inProcess);
236
+ }
237
+ }, [colData, inProcess, getColumns]);
238
+ return React.useMemo(() => {
239
+ if (colData == null) return null;
240
+ let columns = colData.columns;
241
+ if (!inProcess && colData.inProcess) {
242
+ columns.features = columns.features?.filter(
243
+ (d) => d.properties.status != "in process"
244
+ );
245
+ }
246
+ return columns;
247
+ }, [colData, inProcess]);
248
+ }
249
+ function useMacrostratColumnInfo(columnID) {
250
+ const columnsMap = useMacrostratStore((s) => s.columnFootprints);
251
+ return React.useMemo(() => {
252
+ for (const colData of columnsMap.values()) {
253
+ const col = colData.columns.find((d) => d.properties.col_id === columnID);
254
+ if (col != null) return col.properties;
255
+ }
256
+ return null;
257
+ }, [columnsMap, columnID]);
258
+ }
259
+ function useMacrostratData(dataType, ...args) {
260
+ const selector = dataTypeMapping[dataType];
261
+ const operator = useMacrostratStore(selector);
262
+ const [value, setValue] = React.useState(null);
263
+ React.useEffect(() => {
264
+ try {
265
+ operator(...args).then(setValue);
266
+ } catch (e) {
267
+ console.error(e);
268
+ }
269
+ }, [operator, ...args]);
270
+ return value;
271
+ }
272
+ const MacrostratDataProviderContext = React.createContext(createMacrostratStore());
273
+ function MacrostratDataProvider(props) {
274
+ const { baseURL = "https://dev.macrostrat.org/api/v2", children } = props;
275
+ const [store2] = React.useState(() => createMacrostratStore(baseURL));
276
+ return h(
277
+ MacrostratAPIProvider,
278
+ { baseURL },
279
+ h(MacrostratDataProviderContext.Provider, { value: store2 }, children)
280
+ );
281
+ }
282
+ function MacrostratAPIProvider({
283
+ children,
284
+ useDev = false,
285
+ baseURL
286
+ }) {
287
+ baseURL ??= useDev ? "https://dev.macrostrat.org/api/v2" : "https://macrostrat.org/api/v2";
288
+ return h(
289
+ uiComponents.APIProvider,
290
+ {
291
+ baseURL,
292
+ unwrapResponse: (res) => res.success.data
293
+ },
294
+ children
295
+ );
296
+ }
297
+ function MacrostratColumnProvider(props) {
298
+ const { axisType } = store.useMacrostratColumnData();
299
+ const { units, domain, pixelScale, scale, children } = props;
300
+ return h(
301
+ columnComponents.ColumnProvider,
302
+ {
303
+ axisType,
304
+ divisions: units,
305
+ range: domain,
306
+ pixelsPerMeter: pixelScale,
307
+ scale
308
+ },
309
+ children
310
+ );
311
+ }
312
+ function LithologiesProvider({ children }) {
313
+ React.useEffect(() => {
314
+ console.warn(
315
+ "LithologiesProvider is deprecated. Replace with MacrostratDataProvider"
316
+ );
317
+ }, []);
318
+ return children;
319
+ }
320
+ function useLithologies() {
321
+ const getLithologies = useMacrostratStore((s) => s.getLithologies);
322
+ const lithologies = useMacrostratStore((s) => s.lithologies);
323
+ React.useEffect(() => {
324
+ if (lithologies == null) getLithologies();
325
+ }, [lithologies, getLithologies]);
326
+ return lithologies;
327
+ }
328
+ function useEnvironments() {
329
+ const getEnvironments = useMacrostratStore((s) => s.getEnvironments);
330
+ const environments = useMacrostratStore((s) => s.environments);
331
+ React.useEffect(() => {
332
+ if (environments == null) getEnvironments();
333
+ }, [environments, getEnvironments]);
334
+ return environments;
335
+ }
336
+ exports.LithologiesProvider = LithologiesProvider;
337
+ exports.MacrostratAPIProvider = MacrostratAPIProvider;
338
+ exports.MacrostratColumnProvider = MacrostratColumnProvider;
339
+ exports.MacrostratDataProvider = MacrostratDataProvider;
340
+ exports.useEnvironments = useEnvironments;
341
+ exports.useLithologies = useLithologies;
342
+ exports.useMacrostratBaseURL = useMacrostratBaseURL;
343
+ exports.useMacrostratColumnInfo = useMacrostratColumnInfo;
344
+ exports.useMacrostratColumns = useMacrostratColumns;
345
+ exports.useMacrostratData = useMacrostratData;
346
+ exports.useMacrostratDefs = useMacrostratDefs;
347
+ exports.useMacrostratFetch = useMacrostratFetch;
348
+ exports.useMacrostratStore = useMacrostratStore;
349
+ //# sourceMappingURL=base.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.cjs","sources":["../../src/data-provider/base.ts"],"sourcesContent":["/** Data provider for information that needs to be loaded in bulk for frontend views */\nimport baseFetch from \"cross-fetch\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { create, useStore } from \"zustand\";\nimport {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n Environment,\n MacrostratRef,\n StratName,\n Interval,\n} from \"@macrostrat/api-types\";\nimport {\n fetchAllColumns,\n fetchEnvironments,\n fetchIntervals,\n fetchLithologies,\n fetchRefs,\n fetchStratNames,\n type ColumnStatusCode,\n} from \"./fetch\";\nimport { APIProvider } from \"@macrostrat/ui-components\";\nimport { ColumnProvider } from \"@macrostrat/column-components\";\n\nimport { ReactNode } from \"react\";\nimport { useMacrostratColumnData } from \"./store\";\n\nexport interface MacrostratDataProviderProps {\n baseURL: string;\n children: React.ReactNode;\n}\n\ninterface ColumnFootprintsStorage {\n project_id: number;\n // Whether the \"in process\" flag was used\n inProcess: boolean;\n // The column footprints\n columns: ColumnGeoJSONRecordWithID[];\n}\n\ninterface RefsSlice {\n refs: Map<number, MacrostratRef>;\n inFlightRequests: Set<string>; // Track requests to avoid duplicates\n getRefs(ids: number[]): Promise<MacrostratRef[]>;\n}\n\ninterface MacrostratStore extends RefsSlice {\n baseURL: string;\n fetch: any;\n lithologies: Map<number, any> | null;\n getLithologies(ids: number[] | null): Promise<any>;\n intervals: Map<number, any> | null;\n getIntervals(\n ids: number[] | null,\n timescaleID: number | null,\n ): Promise<Interval[]>;\n environments: Map<number, Environment> | null;\n getEnvironments(ids: number[] | null): Promise<Environment[]>;\n columnFootprints: Map<number, ColumnFootprintsStorage>;\n getColumns(\n projectID: number | null,\n inProcess: boolean,\n ): Promise<ColumnGeoJSONRecord[]>;\n // Strat names unify both \"strat names\" and \"concepts\"\n stratNames: Map<number, StratName> | null;\n getStratNames(ids: number[] | null): Promise<StratName[]>;\n}\n\nfunction createMacrostratStore(\n baseURL: string = \"https://macrostrat.org/api/v2\",\n) {\n return create<MacrostratStore>((set, get): MacrostratStore => {\n return {\n baseURL,\n inFlightRequests: new Set(),\n async fetch(url: string, options?: RequestInit) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests } = get();\n if (inFlightRequests.has(url1)) {\n return null; // Return null if already in flight\n }\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await baseFetch(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...createLithologiesSlice(set, get),\n ...createIntervalsSlice(set, get),\n ...createEnvironmentsSlice(set, get),\n ...createColumnsSlice(set, get),\n ...createRefsSlice(set, get),\n ...createStratNamesSlice(set, get),\n };\n });\n}\n\nfunction createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs(ids: number[]): Promise<MacrostratRef[]> {\n const { refs, fetch } = get();\n const missing = ids.filter((id) => !refs.has(id));\n if (missing.length == 0) {\n return ids.map((id) => refs.get(id));\n }\n const data = await fetchRefs(missing, fetch);\n if (data == null) return [];\n for (const d of data) {\n refs.set(d.ref_id, d);\n }\n set({ refs });\n return ids.map((id) => refs.get(id));\n },\n };\n}\n\nfunction createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns(projectID: number | null, inProcess: boolean) {\n const { columnFootprints, baseURL, fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode: ColumnStatusCode[] = [\"active\"];\n if (_inProcess) {\n statusCode.push(\"in process\");\n }\n const columns = await fetchAllColumns({\n projectID,\n statusCode,\n fetch,\n });\n if (columns == null) {\n return;\n }\n footprints = {\n project_id: projectID,\n inProcess,\n columns,\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({ columnFootprints: columnFootprints2 });\n }\n return footprints.columns;\n },\n };\n}\n\nfunction createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies(ids: number[] | null) {\n const { lithologies, fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await fetchLithologies(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d) => [d.lith_id, d]));\n set({ lithologies: lithMap });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id) => lithMap.get(id));\n },\n };\n}\n\nfunction createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments(ids: number[] | null): Promise<Environment[]> {\n const { environments, fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await fetchEnvironments(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d) => [d.environ_id, d]));\n set({ environments: envMap });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id) => envMap.get(id));\n },\n };\n}\n\nfunction createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals(ids: number[] | null, timescaleID: number | null) {\n const { intervals, fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await fetchIntervals(timescaleID, fetch);\n if (data == null) {\n return [];\n }\n const intervalMap = intervals ?? new Map();\n for (const d of data) {\n intervalMap.set(d.int_id, d);\n }\n _intervals = intervalMap;\n set({ intervals: _intervals });\n }\n if (ids == null && timescaleID == null)\n return Array.from(_intervals.values());\n if (timescaleID != null) {\n return Array.from(_intervals.values() as any[]).filter(\n (d) => d.timescale_id == timescaleID,\n );\n }\n return ids.map((id) => intervals.get(id));\n },\n };\n}\n\nfunction createStratNamesSlice(set, get) {\n return {\n stratNames: null,\n async getStratNames(ids: number[] | null): Promise<StratName[]> {\n const { stratNames, fetch } = get();\n let nameMap = stratNames ?? new Map();\n let stratNamesAlreadyLoaded = [];\n let stratNamesToLoad = [];\n for (const id of ids) {\n if (nameMap.has(id)) {\n stratNamesAlreadyLoaded.push(nameMap.get(id));\n } else {\n stratNamesToLoad.push(id);\n }\n }\n if (stratNamesToLoad.length > 0) {\n const data = await fetchStratNames(stratNamesToLoad, fetch);\n if (data == null) return stratNamesAlreadyLoaded;\n for (const d of data) {\n nameMap.set(d.strat_name_id, d);\n }\n set({ stratNames: nameMap });\n }\n return ids.map((id) => nameMap.get(id));\n },\n };\n}\n\nfunction includesTimescale(intervals: Map<number, any>, timescaleID: number) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some(\n (d) => d.timescale_id == timescaleID,\n );\n}\n\ntype MacrostratSelector = (store: MacrostratStore) => any;\n\nexport function useMacrostratStore(selector: MacrostratSelector | \"api\") {\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n throw new Error(\"Missing MacrostratDataProvider\");\n }\n if (selector === \"api\") {\n return ctx;\n }\n return useStore(ctx, selector);\n}\n\nexport function useMacrostratBaseURL(\n defaultURL = \"https://macrostrat.org/api/v2\",\n): string {\n /** Get the Macrostrat base URL from the store if set, otherwise return a default value */\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n // Return default URL if no provider is present\n return defaultURL;\n }\n return ctx.getState().baseURL;\n}\n\nexport function useMacrostratFetch() {\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n throw new Error(\"Missing MacrostratDataProvider\");\n }\n return ctx.getState().fetch;\n}\n\ntype DataTypeKey =\n | \"lithologies\"\n | \"intervals\"\n | \"columns\"\n | \"environments\"\n | \"refs\"\n | \"strat_names\";\n\nconst dataTypeMapping = {\n lithologies: (store) => store.getLithologies,\n intervals: (store) => store.getIntervals,\n columns: (store) => store.getColumns,\n environments: (store) => store.getEnvironments,\n refs: (store) => store.getRefs,\n strat_names: (store) => store.getStratNames,\n};\n\nexport function useMacrostratDefs(dataType: string): Map<number, any> | null {\n if (dataType == \"columns\") {\n throw new Error(\"Columns are not provided as a map\");\n }\n const operator = useMacrostratStore(dataTypeMapping[dataType]);\n useEffect(() => {\n operator();\n }, []);\n return useMacrostratStore((state) => state[dataType]);\n}\n\nexport function useMacrostratColumns(\n projectID: number | null,\n inProcess: boolean,\n) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n const columnsMap = useMacrostratStore((s) => s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n useEffect(() => {\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || (inProcess && !colData.inProcess)) {\n getColumns(projectID, inProcess);\n }\n // If we've already fetched the columns there's nothing to do...\n }, [colData, inProcess, getColumns]);\n\n return useMemo(() => {\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) {\n // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter(\n (d) => d.properties.status != \"in process\",\n );\n }\n return columns;\n }, [colData, inProcess]);\n}\n\nexport function useMacrostratColumnInfo(\n columnID: number,\n): ColumnGeoJSONRecord[\"properties\"] | null {\n /** Get basic info for a column, without automatically fetching it (assumes the overall set of relevant columns has already been fetched) */\n const columnsMap = useMacrostratStore((s) => s.columnFootprints);\n return useMemo(() => {\n for (const colData of columnsMap.values()) {\n const col = colData.columns.find((d) => d.properties.col_id === columnID);\n if (col != null) return col.properties;\n }\n return null;\n }, [columnsMap, columnID]);\n}\n\nexport function useMacrostratData(dataType: DataTypeKey, ...args: any[]) {\n const selector = dataTypeMapping[dataType];\n const operator = useMacrostratStore(selector);\n\n const [value, setValue] = useState(null);\n\n useEffect(() => {\n try {\n operator(...args).then(setValue);\n } catch (e) {\n console.error(e);\n }\n }, [operator, ...args]);\n\n return value;\n}\n\n/** By default, we provide a store linked to the production API */\nconst MacrostratDataProviderContext = createContext(createMacrostratStore());\n\nexport function MacrostratDataProvider(props: MacrostratDataProviderProps) {\n const { baseURL = \"https://dev.macrostrat.org/api/v2\", children } = props;\n\n const [store] = useState(() => createMacrostratStore(baseURL));\n\n return h(\n MacrostratAPIProvider,\n { baseURL },\n h(MacrostratDataProviderContext.Provider, { value: store }, children),\n );\n}\n\n/** Legacy API provider so useAPIResult can work */\n\ntype APIProviderProps = {\n children: ReactNode;\n useDev?: boolean;\n baseURL?: string;\n};\n\nexport function MacrostratAPIProvider({\n children,\n useDev = false,\n baseURL,\n}: APIProviderProps) {\n baseURL ??= useDev\n ? \"https://dev.macrostrat.org/api/v2\"\n : \"https://macrostrat.org/api/v2\";\n\n return h(\n APIProvider,\n {\n baseURL,\n unwrapResponse: (res) => res.success.data,\n },\n children,\n );\n}\n\nexport function MacrostratColumnProvider(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */\n\n const { axisType } = useMacrostratColumnData();\n const { units, domain, pixelScale, scale, children } = props;\n return h(\n ColumnProvider,\n {\n axisType,\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n scale,\n },\n children,\n );\n}\n\n/** This is now a legacy provider */\nexport function LithologiesProvider({ children }) {\n useEffect(() => {\n console.warn(\n \"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\",\n );\n }, []);\n return children;\n}\n\nexport function useLithologies() {\n const getLithologies = useMacrostratStore((s) => s.getLithologies);\n const lithologies = useMacrostratStore((s) => s.lithologies);\n useEffect(() => {\n if (lithologies == null) getLithologies();\n }, [lithologies, getLithologies]);\n return lithologies;\n}\n\nexport function useEnvironments() {\n const getEnvironments = useMacrostratStore((s) => s.getEnvironments);\n const environments = useMacrostratStore((s) => s.environments);\n useEffect(() => {\n if (environments == null) getEnvironments();\n }, [environments, getEnvironments]);\n return environments;\n}\n"],"names":["create","baseFetch","fetch","fetchRefs","fetchAllColumns","fetchLithologies","fetchEnvironments","fetchIntervals","fetchStratNames","useContext","useStore","store","useEffect","useMemo","useState","createContext","APIProvider","useMacrostratColumnData","ColumnProvider"],"mappings":"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"}