@macrostrat/column-views 2.0.1 → 2.1.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 (375) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/{column-views.8dd877af.js → column-views.006d5180.js} +2 -1
  3. package/dist/esm/column-views.006d5180.js.map +1 -0
  4. package/dist/esm/column-views.05586d1f.js +22 -0
  5. package/dist/esm/column-views.05586d1f.js.map +1 -0
  6. package/dist/esm/column-views.0732894f.js +86 -0
  7. package/dist/esm/column-views.0732894f.js.map +1 -0
  8. package/dist/esm/{column-views.134b2e2a.js → column-views.08440694.js} +2 -2
  9. package/dist/esm/{column-views.134b2e2a.js.map → column-views.08440694.js.map} +1 -1
  10. package/dist/esm/{column-views.aa9fcdba.js → column-views.0c14e18e.js} +18 -15
  11. package/dist/esm/column-views.0c14e18e.js.map +1 -0
  12. package/dist/esm/column-views.10eba967.js +11 -0
  13. package/dist/esm/column-views.10eba967.js.map +1 -0
  14. package/dist/esm/{column-views.8e51206e.js → column-views.1af9761e.js} +19 -3
  15. package/dist/esm/column-views.1af9761e.js.map +1 -0
  16. package/dist/esm/column-views.1c92b88f.js +16 -0
  17. package/dist/esm/column-views.1c92b88f.js.map +1 -0
  18. package/dist/esm/{column-views.ea237aa8.js → column-views.1e055ed5.js} +6 -5
  19. package/dist/esm/column-views.1e055ed5.js.map +1 -0
  20. package/dist/esm/{column-views.1ece326b.js → column-views.1f123354.js} +60 -11
  21. package/dist/esm/column-views.1f123354.js.map +1 -0
  22. package/dist/esm/{column-views.240ef158.css → column-views.217078ab.css} +4 -3
  23. package/dist/esm/column-views.217078ab.css.map +1 -0
  24. package/dist/esm/column-views.2c45a7b5.js +25 -0
  25. package/dist/esm/column-views.2c45a7b5.js.map +1 -0
  26. package/dist/esm/column-views.2ca34210.js +151 -0
  27. package/dist/esm/column-views.2ca34210.js.map +1 -0
  28. package/dist/esm/{column-views.3bec70d6.js → column-views.2d8e0e0f.js} +9 -8
  29. package/dist/esm/column-views.2d8e0e0f.js.map +1 -0
  30. package/dist/esm/column-views.3048acc1.js +66 -0
  31. package/dist/esm/column-views.3048acc1.js.map +1 -0
  32. package/dist/esm/column-views.39657bbf.js.map +1 -1
  33. package/dist/esm/{column-views.28ee5f43.js → column-views.3ba9213d.js} +16 -5
  34. package/dist/esm/column-views.3ba9213d.js.map +1 -0
  35. package/dist/esm/column-views.3de4dc43.js.map +1 -1
  36. package/dist/esm/column-views.403a7b48.css +24 -0
  37. package/dist/esm/column-views.403a7b48.css.map +1 -0
  38. package/dist/esm/column-views.4637f4ce.js.map +1 -1
  39. package/dist/esm/{column-views.86c4b36f.js → column-views.4ab0ec82.js} +44 -13
  40. package/dist/esm/column-views.4ab0ec82.js.map +1 -0
  41. package/dist/esm/{column-views.9bdd477a.js → column-views.4d22c21c.js} +2 -2
  42. package/dist/esm/{column-views.9bdd477a.js.map → column-views.4d22c21c.js.map} +1 -1
  43. package/dist/esm/{column-views.fa6f3292.js → column-views.4df0b803.js} +7 -8
  44. package/dist/esm/column-views.4df0b803.js.map +1 -0
  45. package/dist/esm/{column-views.b775c0a3.js → column-views.52a6eb47.js} +3 -3
  46. package/dist/esm/{column-views.b775c0a3.js.map → column-views.52a6eb47.js.map} +1 -1
  47. package/dist/esm/column-views.57636733.css +22 -0
  48. package/dist/esm/column-views.57636733.css.map +1 -0
  49. package/dist/esm/{column-views.68409161.js → column-views.59bb0cba.js} +2 -3
  50. package/dist/esm/column-views.59bb0cba.js.map +1 -0
  51. package/dist/esm/column-views.5cc09c1d.js.map +1 -1
  52. package/dist/esm/column-views.5e2dc19d.js +187 -0
  53. package/dist/esm/column-views.5e2dc19d.js.map +1 -0
  54. package/dist/esm/{column-views.33dbc778.js → column-views.633c42a3.js} +2 -1
  55. package/dist/esm/column-views.633c42a3.js.map +1 -0
  56. package/dist/esm/{column-views.e77b9d6b.js → column-views.6549388a.js} +4 -5
  57. package/dist/esm/column-views.6549388a.js.map +1 -0
  58. package/dist/esm/{column-views.dff52504.js → column-views.686d21ad.js} +10 -1
  59. package/dist/esm/column-views.686d21ad.js.map +1 -0
  60. package/dist/esm/column-views.6992ca88.js +25 -0
  61. package/dist/esm/column-views.6992ca88.js.map +1 -0
  62. package/dist/esm/column-views.6d6b73b4.js.map +1 -1
  63. package/dist/esm/column-views.708140ab.css +36 -0
  64. package/dist/esm/column-views.708140ab.css.map +1 -0
  65. package/dist/esm/{column-views.650bd9f5.js → column-views.7715e35e.js} +17 -13
  66. package/dist/esm/column-views.7715e35e.js.map +1 -0
  67. package/dist/esm/{column-views.a98214b2.js → column-views.7e350ae2.js} +3 -3
  68. package/dist/esm/{column-views.a98214b2.js.map → column-views.7e350ae2.js.map} +1 -1
  69. package/dist/esm/{column-views.30646469.js → column-views.85c6a716.js} +2 -2
  70. package/dist/esm/column-views.85c6a716.js.map +1 -0
  71. package/dist/esm/column-views.86619334.js +9 -0
  72. package/dist/esm/column-views.86619334.js.map +1 -0
  73. package/dist/esm/{column-views.40c1f361.js → column-views.89b9e542.js} +11 -18
  74. package/dist/esm/column-views.89b9e542.js.map +1 -0
  75. package/dist/esm/{column-views.1c589cc4.js → column-views.9892f825.js} +55 -4
  76. package/dist/esm/column-views.9892f825.js.map +1 -0
  77. package/dist/esm/{column-views.1edc7300.js → column-views.9b77388d.js} +6 -5
  78. package/dist/esm/column-views.9b77388d.js.map +1 -0
  79. package/dist/esm/column-views.a7c5ae16.js +25 -0
  80. package/dist/esm/column-views.a7c5ae16.js.map +1 -0
  81. package/dist/esm/{column-views.5c02fee2.js → column-views.a91dde4a.js} +10 -9
  82. package/dist/esm/column-views.a91dde4a.js.map +1 -0
  83. package/dist/esm/{column-views.fc2b4611.js → column-views.a94e99a2.js} +2 -2
  84. package/dist/esm/{column-views.fc2b4611.js.map → column-views.a94e99a2.js.map} +1 -1
  85. package/dist/esm/{column-views.e2b9c23c.css → column-views.b17f793f.css} +21 -1
  86. package/dist/esm/column-views.b17f793f.css.map +1 -0
  87. package/dist/esm/{column-views.9804efda.js → column-views.b9fe5176.js} +14 -8
  88. package/dist/esm/column-views.b9fe5176.js.map +1 -0
  89. package/dist/esm/{column-views.b2e5f1d9.js → column-views.bcffe6e5.js} +4 -4
  90. package/dist/esm/{column-views.b2e5f1d9.js.map → column-views.bcffe6e5.js.map} +1 -1
  91. package/dist/esm/{column-views.f1efcc2c.js → column-views.c25e8b32.js} +3 -3
  92. package/dist/esm/{column-views.f1efcc2c.js.map → column-views.c25e8b32.js.map} +1 -1
  93. package/dist/esm/{column-views.9ced149e.js → column-views.c32d6ad0.js} +25 -6
  94. package/dist/esm/column-views.c32d6ad0.js.map +1 -0
  95. package/dist/esm/{column-views.34636ec7.js → column-views.c71c321c.js} +11 -11
  96. package/dist/esm/column-views.c71c321c.js.map +1 -0
  97. package/dist/esm/{column-views.f2e5a72f.js → column-views.c8cc249a.js} +3 -3
  98. package/dist/esm/{column-views.f2e5a72f.js.map → column-views.c8cc249a.js.map} +1 -1
  99. package/dist/esm/{column-views.5b2635fd.js → column-views.c8e2983a.js} +4 -4
  100. package/dist/esm/{column-views.5b2635fd.js.map → column-views.c8e2983a.js.map} +1 -1
  101. package/dist/esm/{column-views.88de2cee.js → column-views.cfcf6096.js} +4 -4
  102. package/dist/esm/{column-views.88de2cee.js.map → column-views.cfcf6096.js.map} +1 -1
  103. package/dist/esm/{column-views.4c4c5bac.js → column-views.d2037465.js} +14 -8
  104. package/dist/esm/column-views.d2037465.js.map +1 -0
  105. package/dist/esm/column-views.dc42f5d0.js.map +1 -1
  106. package/dist/esm/column-views.e20f6a4b.js +124 -0
  107. package/dist/esm/column-views.e20f6a4b.js.map +1 -0
  108. package/dist/esm/{column-views.57c4ddf3.js → column-views.f08929e2.js} +2 -2
  109. package/dist/esm/column-views.f08929e2.js.map +1 -0
  110. package/dist/esm/column-views.f13a1d6e.js +37 -0
  111. package/dist/esm/column-views.f13a1d6e.js.map +1 -0
  112. package/dist/esm/column-views.f9dab157.js.map +1 -1
  113. package/dist/esm/column-views.fa19cea0.js +108 -0
  114. package/dist/esm/column-views.fa19cea0.js.map +1 -0
  115. package/dist/esm/{column-views.f71ec4b4.js → column-views.fdb0e9ec.js} +67 -30
  116. package/dist/esm/column-views.fdb0e9ec.js.map +1 -0
  117. package/dist/esm/index.d.ts +325 -296
  118. package/dist/esm/index.d.ts.map +1 -1
  119. package/dist/esm/index.js +13 -11
  120. package/dist/esm/index.js.map +1 -1
  121. package/dist/node/column-views.04407342.js +2 -0
  122. package/dist/node/column-views.04407342.js.map +1 -0
  123. package/dist/node/column-views.06951a55.js +2 -0
  124. package/dist/node/column-views.06951a55.js.map +1 -0
  125. package/dist/node/column-views.06b0534e.js +2 -0
  126. package/dist/node/column-views.06b0534e.js.map +1 -0
  127. package/dist/node/column-views.0859f5d2.js +2 -0
  128. package/dist/node/column-views.0859f5d2.js.map +1 -0
  129. package/dist/node/column-views.10a2bad6.js +2 -0
  130. package/dist/node/column-views.10a2bad6.js.map +1 -0
  131. package/dist/node/column-views.12a70e9d.js +2 -0
  132. package/dist/node/column-views.12a70e9d.js.map +1 -0
  133. package/dist/node/column-views.139b0855.js +2 -0
  134. package/dist/node/column-views.139b0855.js.map +1 -0
  135. package/dist/node/column-views.1a0b56fc.js +2 -0
  136. package/dist/node/column-views.1a0b56fc.js.map +1 -0
  137. package/dist/node/column-views.1de87649.js +2 -0
  138. package/dist/node/column-views.1de87649.js.map +1 -0
  139. package/dist/node/column-views.1e94d562.js +2 -0
  140. package/dist/node/column-views.1e94d562.js.map +1 -0
  141. package/dist/node/column-views.28609db2.css +2 -0
  142. package/dist/node/column-views.28609db2.css.map +1 -0
  143. package/dist/node/column-views.286d444d.js +2 -0
  144. package/dist/node/column-views.286d444d.js.map +1 -0
  145. package/dist/node/column-views.2877f398.js +2 -0
  146. package/dist/node/column-views.2877f398.js.map +1 -0
  147. package/dist/node/column-views.2a70b9a2.js +2 -0
  148. package/dist/node/column-views.2a70b9a2.js.map +1 -0
  149. package/dist/node/column-views.2e4e357d.js +2 -0
  150. package/dist/node/column-views.2e4e357d.js.map +1 -0
  151. package/dist/node/column-views.3345cd7a.js +2 -0
  152. package/dist/node/column-views.3345cd7a.js.map +1 -0
  153. package/dist/node/column-views.33752461.js +2 -0
  154. package/dist/node/column-views.33752461.js.map +1 -0
  155. package/dist/node/column-views.39d3a0be.js +2 -0
  156. package/dist/node/column-views.39d3a0be.js.map +1 -0
  157. package/dist/node/column-views.3a55ecd7.css +2 -0
  158. package/dist/node/column-views.3a55ecd7.css.map +1 -0
  159. package/dist/node/column-views.3bd09ad6.js +2 -0
  160. package/dist/node/column-views.3bd09ad6.js.map +1 -0
  161. package/dist/node/column-views.3cb3345e.js +2 -0
  162. package/dist/node/column-views.3cb3345e.js.map +1 -0
  163. package/dist/node/column-views.41876859.js +2 -0
  164. package/dist/node/column-views.41876859.js.map +1 -0
  165. package/dist/node/column-views.45168c80.js +2 -0
  166. package/dist/node/column-views.45168c80.js.map +1 -0
  167. package/dist/node/column-views.4e2bdf9b.js +2 -0
  168. package/dist/node/column-views.4e2bdf9b.js.map +1 -0
  169. package/dist/node/column-views.51fbed89.js +2 -0
  170. package/dist/node/column-views.51fbed89.js.map +1 -0
  171. package/dist/node/column-views.536dc54e.js +2 -0
  172. package/dist/node/column-views.536dc54e.js.map +1 -0
  173. package/dist/node/column-views.5b6833f0.js +2 -0
  174. package/dist/node/column-views.5b6833f0.js.map +1 -0
  175. package/dist/node/column-views.5c1b0eeb.css +2 -0
  176. package/dist/node/column-views.5c1b0eeb.css.map +1 -0
  177. package/dist/node/column-views.664dc6c9.js +2 -0
  178. package/dist/node/column-views.664dc6c9.js.map +1 -0
  179. package/dist/node/column-views.6a0a35e7.js +2 -0
  180. package/dist/node/column-views.6a0a35e7.js.map +1 -0
  181. package/dist/node/column-views.6a4c2100.css +2 -0
  182. package/dist/node/column-views.6a4c2100.css.map +1 -0
  183. package/dist/node/column-views.6a9da051.js +2 -0
  184. package/dist/node/column-views.6a9da051.js.map +1 -0
  185. package/dist/node/column-views.6b441349.js +2 -0
  186. package/dist/node/column-views.6b441349.js.map +1 -0
  187. package/dist/node/column-views.6b6b756b.js +2 -0
  188. package/dist/node/column-views.6b6b756b.js.map +1 -0
  189. package/dist/node/column-views.6bba8c57.js +2 -0
  190. package/dist/node/column-views.6bba8c57.js.map +1 -0
  191. package/dist/node/column-views.6da49480.js +2 -0
  192. package/dist/node/column-views.6da49480.js.map +1 -0
  193. package/dist/node/column-views.7350ac73.js +2 -0
  194. package/dist/node/column-views.7350ac73.js.map +1 -0
  195. package/dist/node/column-views.755f726e.js +2 -0
  196. package/dist/node/column-views.755f726e.js.map +1 -0
  197. package/dist/node/column-views.770d2c95.js +2 -0
  198. package/dist/node/column-views.770d2c95.js.map +1 -0
  199. package/dist/node/column-views.78d3f3c5.js +2 -0
  200. package/dist/node/column-views.78d3f3c5.js.map +1 -0
  201. package/dist/node/column-views.7b9bd06e.css +2 -0
  202. package/dist/node/column-views.7b9bd06e.css.map +1 -0
  203. package/dist/node/column-views.7d45bbeb.js +2 -0
  204. package/dist/node/column-views.7d45bbeb.js.map +1 -0
  205. package/dist/node/column-views.82cf7c0d.js +2 -0
  206. package/dist/node/column-views.82cf7c0d.js.map +1 -0
  207. package/dist/node/column-views.869c7199.js +2 -0
  208. package/dist/node/column-views.869c7199.js.map +1 -0
  209. package/dist/node/column-views.8c00beb4.js +2 -0
  210. package/dist/node/column-views.8c00beb4.js.map +1 -0
  211. package/dist/node/column-views.8cfed88b.js +2 -0
  212. package/dist/node/column-views.8cfed88b.js.map +1 -0
  213. package/dist/node/column-views.8f54691f.js +2 -0
  214. package/dist/node/column-views.8f54691f.js.map +1 -0
  215. package/dist/node/column-views.95411f1b.js +2 -0
  216. package/dist/node/column-views.95411f1b.js.map +1 -0
  217. package/dist/node/column-views.9cb13e51.css +2 -0
  218. package/dist/node/column-views.9cb13e51.css.map +1 -0
  219. package/dist/node/column-views.a025fbe3.js +2 -0
  220. package/dist/node/column-views.a025fbe3.js.map +1 -0
  221. package/dist/node/column-views.a0aac838.js +2 -0
  222. package/dist/node/column-views.a0aac838.js.map +1 -0
  223. package/dist/node/column-views.a501cea0.js +2 -0
  224. package/dist/node/column-views.a501cea0.js.map +1 -0
  225. package/dist/node/column-views.a8ffe072.js +2 -0
  226. package/dist/node/column-views.a8ffe072.js.map +1 -0
  227. package/dist/node/column-views.aff245a8.js +2 -0
  228. package/dist/node/column-views.aff245a8.js.map +1 -0
  229. package/dist/node/column-views.b169b4b5.css +2 -0
  230. package/dist/node/column-views.b169b4b5.css.map +1 -0
  231. package/dist/node/column-views.b773edb8.js +2 -0
  232. package/dist/node/column-views.b773edb8.js.map +1 -0
  233. package/dist/node/column-views.c968a185.css +2 -0
  234. package/dist/node/column-views.c968a185.css.map +1 -0
  235. package/dist/node/column-views.cd3c430b.js +2 -0
  236. package/dist/node/column-views.cd3c430b.js.map +1 -0
  237. package/dist/node/column-views.cd468adb.css +2 -0
  238. package/dist/node/column-views.cd468adb.css.map +1 -0
  239. package/dist/node/column-views.cdcce702.js +2 -0
  240. package/dist/node/column-views.cdcce702.js.map +1 -0
  241. package/dist/node/column-views.ce6808fe.js +2 -0
  242. package/dist/node/column-views.ce6808fe.js.map +1 -0
  243. package/dist/node/column-views.cf90f63d.js +2 -0
  244. package/dist/node/column-views.cf90f63d.js.map +1 -0
  245. package/dist/node/column-views.d6708353.js +2 -0
  246. package/dist/node/column-views.d6708353.js.map +1 -0
  247. package/dist/node/column-views.d9bbd6fb.css +2 -0
  248. package/dist/node/column-views.d9bbd6fb.css.map +1 -0
  249. package/dist/node/column-views.e6720522.js +2 -0
  250. package/dist/node/column-views.e6720522.js.map +1 -0
  251. package/dist/node/column-views.e7e26765.js +2 -0
  252. package/dist/node/column-views.e7e26765.js.map +1 -0
  253. package/dist/node/column-views.e9515ec1.js +2 -0
  254. package/dist/node/column-views.e9515ec1.js.map +1 -0
  255. package/dist/node/column-views.ebb44b7d.js +2 -0
  256. package/dist/node/column-views.ebb44b7d.js.map +1 -0
  257. package/dist/node/column-views.ecc2394a.js +2 -0
  258. package/dist/node/column-views.ecc2394a.js.map +1 -0
  259. package/dist/node/column-views.eea80478.js +2 -0
  260. package/dist/node/column-views.eea80478.js.map +1 -0
  261. package/dist/node/column-views.f7315cbc.css +2 -0
  262. package/dist/node/column-views.f7315cbc.css.map +1 -0
  263. package/dist/node/column-views.f76ba19f.js +2 -0
  264. package/dist/node/column-views.f76ba19f.js.map +1 -0
  265. package/dist/node/column-views.fdaa2963.js +2 -0
  266. package/dist/node/column-views.fdaa2963.js.map +1 -0
  267. package/dist/node/column-views.fea32686.js +2 -0
  268. package/dist/node/column-views.fea32686.js.map +1 -0
  269. package/dist/node/index.js +1 -1
  270. package/dist/node/index.js.map +1 -1
  271. package/package.json +16 -15
  272. package/src/age-axis.module.sass +20 -0
  273. package/src/age-axis.ts +25 -3
  274. package/src/age-model-overlay.ts +2 -2
  275. package/src/column.module.sass +3 -3
  276. package/src/column.ts +92 -19
  277. package/src/correlation-chart/main.ts +25 -12
  278. package/src/correlation-chart/prepare-data.ts +6 -6
  279. package/src/correlation-chart/stories/correlation-chart.stories.ts +12 -6
  280. package/src/data-provider/base.ts +20 -11
  281. package/src/data-provider/column-nav.ts +2 -2
  282. package/src/data-provider/fetch.ts +9 -9
  283. package/src/data-provider/store.ts +15 -10
  284. package/src/{carbon-isotopes → facets/carbon-isotopes}/data-area.ts +5 -4
  285. package/src/{carbon-isotopes → facets/carbon-isotopes}/index.ts +0 -1
  286. package/src/facets/carbon-isotopes/isotopes-column.module.sass +31 -0
  287. package/src/{carbon-isotopes → facets/carbon-isotopes}/isotopes-column.ts +119 -87
  288. package/src/facets/detrital-zircon/index.module.sass +22 -0
  289. package/src/facets/detrital-zircon/index.ts +132 -0
  290. package/src/facets/detrital-zircon/provider.ts +51 -0
  291. package/src/facets/fossils/index.module.sass +14 -0
  292. package/src/facets/fossils/index.ts +120 -0
  293. package/src/facets/fossils/provider.ts +80 -0
  294. package/src/facets/index.ts +3 -0
  295. package/src/index.ts +2 -1
  296. package/src/maps/_shared/inset-map.stories.ts +1 -1
  297. package/src/maps/_shared/inset-map.ts +2 -2
  298. package/src/maps/_shared/styles.ts +3 -1
  299. package/src/maps/column-correlation/column-correlation-map.stories.ts +3 -3
  300. package/src/maps/column-correlation/core.ts +17 -26
  301. package/src/maps/column-correlation/state.ts +9 -9
  302. package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +177 -1
  303. package/src/maps/column-navigation/mapbox/index.ts +18 -15
  304. package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +4 -4
  305. package/src/maps/column-navigation/mapbox/state.ts +16 -6
  306. package/src/maps/column-navigation/svg/animated.ts +2 -2
  307. package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +2 -2
  308. package/src/maps/column-navigation/svg/index.ts +2 -4
  309. package/src/maps/column-navigation/svg/layers.ts +5 -7
  310. package/src/maps/column-navigation/utils/keyboard-navigation.ts +1 -1
  311. package/src/notes.ts +49 -0
  312. package/src/prepare-units/composite-scale.ts +73 -25
  313. package/src/prepare-units/helpers.ts +78 -13
  314. package/src/prepare-units/index.ts +17 -17
  315. package/src/prepare-units/utils.ts +7 -7
  316. package/src/section.ts +8 -8
  317. package/src/unit-details/panel.ts +100 -17
  318. package/src/unit-details/popover.ts +5 -5
  319. package/src/units/boxes.ts +20 -10
  320. package/src/units/colors.ts +12 -5
  321. package/src/units/composite.ts +16 -11
  322. package/src/units/index.ts +77 -10
  323. package/src/units/names.ts +19 -16
  324. package/src/units/resolvers.ts +3 -0
  325. package/src/units/selection.ts +44 -11
  326. package/src/units/types.ts +2 -0
  327. package/dist/esm/column-views.062d164a.js +0 -86
  328. package/dist/esm/column-views.062d164a.js.map +0 -1
  329. package/dist/esm/column-views.07521ce6.js +0 -25
  330. package/dist/esm/column-views.07521ce6.js.map +0 -1
  331. package/dist/esm/column-views.1c589cc4.js.map +0 -1
  332. package/dist/esm/column-views.1ece326b.js.map +0 -1
  333. package/dist/esm/column-views.1edc7300.js.map +0 -1
  334. package/dist/esm/column-views.240ef158.css.map +0 -1
  335. package/dist/esm/column-views.28ee5f43.js.map +0 -1
  336. package/dist/esm/column-views.30646469.js.map +0 -1
  337. package/dist/esm/column-views.33dbc778.js.map +0 -1
  338. package/dist/esm/column-views.343b5aa2.js +0 -98
  339. package/dist/esm/column-views.343b5aa2.js.map +0 -1
  340. package/dist/esm/column-views.34636ec7.js.map +0 -1
  341. package/dist/esm/column-views.3bec70d6.js.map +0 -1
  342. package/dist/esm/column-views.3f4db8cb.js +0 -117
  343. package/dist/esm/column-views.3f4db8cb.js.map +0 -1
  344. package/dist/esm/column-views.40c1f361.js.map +0 -1
  345. package/dist/esm/column-views.4c4c5bac.js.map +0 -1
  346. package/dist/esm/column-views.57c4ddf3.js.map +0 -1
  347. package/dist/esm/column-views.5c02fee2.js.map +0 -1
  348. package/dist/esm/column-views.650bd9f5.js.map +0 -1
  349. package/dist/esm/column-views.68409161.js.map +0 -1
  350. package/dist/esm/column-views.86c4b36f.js.map +0 -1
  351. package/dist/esm/column-views.8dd877af.js.map +0 -1
  352. package/dist/esm/column-views.8e51206e.js.map +0 -1
  353. package/dist/esm/column-views.94b5cca1.js +0 -34
  354. package/dist/esm/column-views.94b5cca1.js.map +0 -1
  355. package/dist/esm/column-views.9804efda.js.map +0 -1
  356. package/dist/esm/column-views.9ced149e.js.map +0 -1
  357. package/dist/esm/column-views.a7be0a4a.css +0 -157
  358. package/dist/esm/column-views.a7be0a4a.css.map +0 -1
  359. package/dist/esm/column-views.aa9fcdba.js.map +0 -1
  360. package/dist/esm/column-views.ac9fb5e1.js +0 -163
  361. package/dist/esm/column-views.ac9fb5e1.js.map +0 -1
  362. package/dist/esm/column-views.c58aad3f.js +0 -88
  363. package/dist/esm/column-views.c58aad3f.js.map +0 -1
  364. package/dist/esm/column-views.d1ad48eb.js +0 -11
  365. package/dist/esm/column-views.d1ad48eb.js.map +0 -1
  366. package/dist/esm/column-views.dff52504.js.map +0 -1
  367. package/dist/esm/column-views.e2b9c23c.css.map +0 -1
  368. package/dist/esm/column-views.e77b9d6b.js.map +0 -1
  369. package/dist/esm/column-views.ea237aa8.js.map +0 -1
  370. package/dist/esm/column-views.f71ec4b4.js.map +0 -1
  371. package/dist/esm/column-views.fa6f3292.js.map +0 -1
  372. package/src/carbon-isotopes/column.module.sass +0 -136
  373. package/src/carbon-isotopes/column.ts +0 -133
  374. package/src/carbon-isotopes/core.ts +0 -81
  375. /package/src/{carbon-isotopes → facets/carbon-isotopes}/data-provider.ts +0 -0
package/src/column.ts CHANGED
@@ -2,7 +2,7 @@ import { ColumnAxisType } from "@macrostrat/column-components";
2
2
  import { hyperStyled } from "@macrostrat/hyper";
3
3
  import { useDarkMode } from "@macrostrat/ui-components";
4
4
  import classNames from "classnames";
5
- import { RefObject, useRef, HTMLAttributes } from "react";
5
+ import { RefObject, useRef, HTMLAttributes, useCallback } from "react";
6
6
  import styles from "./column.module.sass";
7
7
  import {
8
8
  UnitSelectionProvider,
@@ -15,6 +15,7 @@ import { ColumnHeightScaleOptions } from "./prepare-units/composite-scale";
15
15
  import { UnitSelectionPopover } from "./unit-details";
16
16
  import {
17
17
  MacrostratColumnDataProvider,
18
+ useCompositeScale,
18
19
  useMacrostratColumnData,
19
20
  } from "./data-provider";
20
21
  import {
@@ -38,6 +39,11 @@ interface BaseColumnProps extends SectionSharedProps {
38
39
  // Timescale properties
39
40
  showTimescale?: boolean;
40
41
  timescaleLevels?: number | [number, number];
42
+ onMouseOver?: (
43
+ unit: UnitLong | null,
44
+ height: number | null,
45
+ evt: MouseEvent,
46
+ ) => void;
41
47
  }
42
48
 
43
49
  export interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {
@@ -47,6 +53,7 @@ export interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {
47
53
  b_age?: number;
48
54
  mergeSections?: MergeSectionsMode;
49
55
  showUnitPopover?: boolean;
56
+ allowUnitSelection?: boolean;
50
57
  selectedUnit?: number | null;
51
58
  onUnitSelected?: (unitID: number | null, unit: any) => void;
52
59
  // Unconformity height in pixels
@@ -71,6 +78,7 @@ export function Column(props: ColumnProps) {
71
78
  minPixelScale = 0.2,
72
79
  minSectionHeight = 50,
73
80
  collapseSmallUnconformities = true,
81
+ allowUnitSelection,
74
82
  ...rest
75
83
  } = props;
76
84
  const ref = useRef<HTMLElement>();
@@ -96,22 +104,41 @@ export function Column(props: ColumnProps) {
96
104
  title: "Empty column",
97
105
  description: "No sections found in this column.",
98
106
  icon: "warning-sign",
99
- })
107
+ }),
108
+ );
109
+ }
110
+
111
+ let main: any = h(ColumnInner, { columnRef: ref, ...rest }, [
112
+ children,
113
+ h.if(showUnitPopover)(UnitSelectionPopover),
114
+ h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),
115
+ ]);
116
+
117
+ /* By default, unit selection is disabled. However, if any related props are passed,
118
+ we enable it.
119
+ */
120
+ let _allowUnitSelection = allowUnitSelection ?? false;
121
+ if (showUnitPopover || selectedUnit != null || onUnitSelected != null) {
122
+ _allowUnitSelection = true;
123
+ }
124
+
125
+ if (_allowUnitSelection) {
126
+ main = h(
127
+ UnitSelectionProvider,
128
+ {
129
+ columnRef: ref,
130
+ onUnitSelected,
131
+ selectedUnit,
132
+ units,
133
+ },
134
+ main,
100
135
  );
101
136
  }
102
137
 
103
138
  return h(
104
139
  MacrostratColumnDataProvider,
105
140
  { units, sections, totalHeight, axisType },
106
- h(
107
- UnitSelectionProvider,
108
- { columnRef: ref, onUnitSelected, selectedUnit, units },
109
- h(ColumnInner, { columnRef: ref, ...rest }, [
110
- children,
111
- h.if(showUnitPopover)(UnitSelectionPopover),
112
- h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),
113
- ])
114
- )
141
+ main,
115
142
  );
116
143
  }
117
144
 
@@ -134,12 +161,11 @@ function ColumnInner(props: ColumnInnerProps) {
134
161
  showTimescale,
135
162
  timescaleLevels,
136
163
  maxInternalColumns,
164
+ onMouseOver,
137
165
  } = props;
138
166
 
139
167
  const { axisType } = useMacrostratColumnData();
140
168
 
141
- const dispatch = useUnitSelectionDispatch();
142
-
143
169
  let width = _width;
144
170
  let columnWidth = _columnWidth;
145
171
  if (columnWidth > width) {
@@ -150,8 +176,8 @@ function ColumnInner(props: ColumnInnerProps) {
150
176
  showLabelColumn = false;
151
177
  }
152
178
 
153
- let _showTimescale = showTimescale;
154
- if (timescaleLevels !== null) {
179
+ let _showTimescale = showTimescale ?? true;
180
+ if (timescaleLevels != null) {
155
181
  _showTimescale = true;
156
182
  }
157
183
  _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;
@@ -159,9 +185,7 @@ function ColumnInner(props: ColumnInnerProps) {
159
185
  return h(
160
186
  ColumnContainer,
161
187
  {
162
- onClick(evt) {
163
- dispatch?.(null, null, evt as any);
164
- },
188
+ ...useMouseEventHandlers(onMouseOver),
165
189
  className,
166
190
  },
167
191
  h("div.column", { ref: columnRef }, [
@@ -178,10 +202,59 @@ function ColumnInner(props: ColumnInnerProps) {
178
202
  maxInternalColumns,
179
203
  }),
180
204
  children,
181
- ])
205
+ ]),
182
206
  );
183
207
  }
184
208
 
209
+ type ColumnMouseOverHandler = (
210
+ unit: UnitLong | null,
211
+ height: number | null,
212
+ evt: MouseEvent,
213
+ ) => void;
214
+
215
+ function useMouseEventHandlers(
216
+ _onMouseOver: ColumnMouseOverHandler | null = null,
217
+ ) {
218
+ /** Click event handler */
219
+
220
+ // Click handler for unit selection
221
+ const dispatch = useUnitSelectionDispatch();
222
+ const onClick = useCallback(
223
+ (evt) => {
224
+ dispatch?.(null, null, evt as any);
225
+ },
226
+ [dispatch],
227
+ );
228
+
229
+ /** Hover event handlers */
230
+ const scale = useCompositeScale();
231
+
232
+ const onMouseOver = useCallback(
233
+ (evt) => {
234
+ const height = scale.invert(
235
+ evt.clientY - evt.currentTarget.getBoundingClientRect().top,
236
+ );
237
+ _onMouseOver?.(null, height, evt);
238
+ },
239
+ [scale, _onMouseOver],
240
+ );
241
+
242
+ const onMouseOut = useCallback(() => {
243
+ _onMouseOver?.(null, null, null);
244
+ }, [_onMouseOver]);
245
+
246
+ if (_onMouseOver == null) {
247
+ return {
248
+ onClick,
249
+ onMouseOver: undefined,
250
+ onMouseMove: undefined,
251
+ onMouseOut: undefined,
252
+ };
253
+ }
254
+
255
+ return { onMouseOver, onMouseMove: onMouseOver, onMouseOut, onClick };
256
+ }
257
+
185
258
  export interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {
186
259
  className?: string;
187
260
  }
@@ -44,6 +44,7 @@ export interface CorrelationChartProps extends CorrelationChartSettings {
44
44
  unconformityLabels?: boolean;
45
45
  selectedUnit?: number | null;
46
46
  showUnitPopover?: boolean;
47
+ unitComponent?: any;
47
48
  onUnitSelected?: (unitID: number | null, unit: BaseUnit | null) => void;
48
49
  }
49
50
 
@@ -55,6 +56,7 @@ export function CorrelationChart({
55
56
  showUnitPopover = true,
56
57
  selectedUnit,
57
58
  onUnitSelected,
59
+ unitComponent,
58
60
  ...scaleProps
59
61
  }: CorrelationChartProps) {
60
62
  const defaultScaleProps = {
@@ -124,15 +126,16 @@ export function CorrelationChart({
124
126
  offset,
125
127
  domain,
126
128
  pixelScale,
129
+ unitComponent,
127
130
  });
128
- })
131
+ }),
129
132
  ),
130
133
  h.if(showUnitPopover)(UnitSelectionPopover),
131
134
  // Navigation only works within a column for now...
132
135
  h(UnitKeyboardNavigation, { units }),
133
136
  ]),
134
- ])
135
- )
137
+ ]),
138
+ ),
136
139
  );
137
140
  }
138
141
 
@@ -140,6 +143,7 @@ function Package({
140
143
  columnData,
141
144
  columnSpacing,
142
145
  columnWidth,
146
+ unitComponent,
143
147
  offset,
144
148
  domain,
145
149
  pixelScale,
@@ -151,6 +155,7 @@ function Package({
151
155
  columnData.map((data, i) => {
152
156
  return h(Column, {
153
157
  units: data.units,
158
+ unitComponent,
154
159
  width: columnWidth,
155
160
  key: i,
156
161
  domain,
@@ -177,7 +182,14 @@ interface ColumnProps {
177
182
  }
178
183
 
179
184
  function Column(props: ColumnProps) {
180
- const { units, width = 150, offsetLeft, domain, pixelScale } = props;
185
+ const {
186
+ units,
187
+ width = 150,
188
+ offsetLeft,
189
+ domain,
190
+ pixelScale,
191
+ unitComponent = ColoredUnitComponent,
192
+ } = props;
181
193
 
182
194
  const columnWidth = width;
183
195
 
@@ -200,13 +212,14 @@ function Column(props: ColumnProps) {
200
212
  axisType: ColumnAxisType.AGE,
201
213
  },
202
214
  h(UnitBoxes, {
203
- unitComponent: ColoredUnitComponent,
215
+ unitComponent,
204
216
  unitComponentProps: {
205
217
  nColumns: 2,
206
218
  width: columnWidth,
219
+ showLabel: false,
207
220
  },
208
- })
209
- )
221
+ }),
222
+ ),
210
223
  );
211
224
  }
212
225
 
@@ -232,7 +245,7 @@ function PackageSVGOverlay({ data, columnWidth = 100, columnSpacing = 0 }) {
232
245
  pixelScale: bestPixelScale,
233
246
  columnSpacing,
234
247
  });
235
- })
248
+ }),
236
249
  );
237
250
  }
238
251
 
@@ -251,7 +264,7 @@ function LaterallyExtensiveUnit({ data, scale, pixelScale, columnSpacing }) {
251
264
  key: i,
252
265
  columnSpacing,
253
266
  });
254
- })
267
+ }),
255
268
  );
256
269
  }
257
270
 
@@ -270,13 +283,13 @@ function StratColSpan({
270
283
  return h(
271
284
  "div.strat-col-span",
272
285
  { style: { top, height, width, left } },
273
- strat_name_long
286
+ strat_name_long,
274
287
  );
275
288
  }
276
289
 
277
290
  function ChartArea({ children }) {
278
291
  const setSelectedUnit = useUnitSelectionStore(
279
- (state) => state.setSelectedUnit
292
+ (state) => state.setSelectedUnit,
280
293
  );
281
294
 
282
295
  return h(
@@ -286,7 +299,7 @@ function ChartArea({ children }) {
286
299
  setSelectedUnit(null);
287
300
  },
288
301
  },
289
- children
302
+ children,
290
303
  );
291
304
  }
292
305
 
@@ -40,7 +40,7 @@ export interface ColumnIdentifier {
40
40
 
41
41
  export function buildCorrelationChartData(
42
42
  columns: ColumnData[],
43
- settings: CorrelationChartSettings
43
+ settings: CorrelationChartSettings,
44
44
  ): CorrelationChartData {
45
45
  console.log(settings);
46
46
  const {
@@ -108,7 +108,7 @@ interface MultiColumnPackageData {
108
108
  }
109
109
 
110
110
  export function findLaterallyExtensiveUnits(
111
- pkg: MultiColumnPackageData
111
+ pkg: MultiColumnPackageData,
112
112
  ): UnitGroup[] {
113
113
  const { columnData, b_age, t_age } = pkg;
114
114
  // Group units by strat_name_id
@@ -130,7 +130,7 @@ export function findLaterallyExtensiveUnits(
130
130
  const units = columnData.map((d) => unitIndex0.get(d.columnID) ?? null);
131
131
  const filteredUnits = units.filter((d) => d != null);
132
132
  const [t_age, b_age] = mergeAgeRanges(
133
- filteredUnits.map((d) => [d.t_age, d.b_age])
133
+ filteredUnits.map((d) => [d.t_age, d.b_age]),
134
134
  );
135
135
  if (filteredUnits.length <= 1) continue;
136
136
 
@@ -179,7 +179,7 @@ export function splitStratIntoBoxes(pkg: UnitGroup): UnitGroupBox[] {
179
179
 
180
180
  function separateColumns(
181
181
  pkg: PackageLayoutData,
182
- columnIDs: number[]
182
+ columnIDs: number[],
183
183
  ): MultiColumnPackageData {
184
184
  /** Separate columns by col_id */
185
185
  const { units, t_age, b_age } = pkg;
@@ -196,7 +196,7 @@ function separateColumns(
196
196
  ...pkg,
197
197
  units: u1,
198
198
  },
199
- ColumnAxisType.AGE
199
+ ColumnAxisType.AGE,
200
200
  ),
201
201
  };
202
202
  }),
@@ -207,7 +207,7 @@ function separateColumns(
207
207
  }
208
208
 
209
209
  export function columnGeoJSONRecordToColumnIdentifier(
210
- col: ColumnGeoJSONRecord
210
+ col: ColumnGeoJSONRecord,
211
211
  ): ColumnIdentifier {
212
212
  return {
213
213
  col_id: col.properties.col_id,
@@ -1,6 +1,6 @@
1
- import { Meta } from "@storybook/react";
1
+ import { Meta } from "@storybook/react-vite";
2
2
  import "@macrostrat/style-system";
3
- import { useArgs } from "@storybook/preview-api";
3
+ import { useArgs } from "storybook/preview-api";
4
4
  import { useCallback } from "react";
5
5
  import {
6
6
  ColumnCorrelationMap,
@@ -15,6 +15,7 @@ import { CorrelationChart, CorrelationChartProps } from "../main";
15
15
  import { ErrorBoundary, useAsyncMemo } from "@macrostrat/ui-components";
16
16
  import { OverlaysProvider } from "@blueprintjs/core";
17
17
  import { parseLineFromString, stringifyLine } from "../hash-string";
18
+ import { EnvironmentColoredUnitComponent } from "../../units";
18
19
 
19
20
  const mapboxToken = import.meta.env.VITE_MAPBOX_API_TOKEN;
20
21
 
@@ -49,7 +50,7 @@ function CorrelationStoryUI({
49
50
  //showLogo: false,
50
51
  }),
51
52
  ]),
52
- ])
53
+ ]),
53
54
  );
54
55
  }
55
56
 
@@ -58,7 +59,7 @@ function CorrelationDiagramWrapper(props: Omit<CorrelationChartProps, "data">) {
58
59
 
59
60
  // Sync focused columns with map
60
61
  const focusedColumns = useCorrelationMapStore(
61
- (state) => state.focusedColumns
62
+ (state) => state.focusedColumns,
62
63
  );
63
64
 
64
65
  const columnUnits = useAsyncMemo(async () => {
@@ -71,7 +72,7 @@ function CorrelationDiagramWrapper(props: Omit<CorrelationChartProps, "data">) {
71
72
  ErrorBoundary,
72
73
  h(OverlaysProvider, [
73
74
  h(CorrelationChart, { data: columnUnits, ...props }),
74
- ])
75
+ ]),
75
76
  ),
76
77
  ]);
77
78
  }
@@ -171,7 +172,7 @@ function useCorrelationLine() {
171
172
  (selectedUnit) => {
172
173
  updateArgs({ selectedUnit });
173
174
  },
174
- [updateArgs]
175
+ [updateArgs],
175
176
  );
176
177
 
177
178
  return {
@@ -190,3 +191,8 @@ function Template(args) {
190
191
  }
191
192
 
192
193
  export const Primary = Template.bind({});
194
+
195
+ export const ColoredByEnvironment = Template.bind({});
196
+ ColoredByEnvironment.args = {
197
+ unitComponent: EnvironmentColoredUnitComponent,
198
+ };
@@ -53,12 +53,12 @@ interface MacrostratStore extends RefsSlice {
53
53
  columnFootprints: Map<number, ColumnFootprintsStorage>;
54
54
  getColumns(
55
55
  projectID: number | null,
56
- inProcess: boolean
56
+ inProcess: boolean,
57
57
  ): Promise<ColumnGeoJSONRecord[]>;
58
58
  }
59
59
 
60
60
  function createMacrostratStore(
61
- baseURL: string = "https://macrostrat.org/api/v2"
61
+ baseURL: string = "https://macrostrat.org/api/v2",
62
62
  ) {
63
63
  return create<MacrostratStore>((set, get): MacrostratStore => {
64
64
  return {
@@ -221,7 +221,7 @@ function createIntervalsSlice(set, get) {
221
221
  return Array.from(_intervals.values());
222
222
  if (timescaleID != null) {
223
223
  return Array.from(_intervals.values() as any[]).filter(
224
- (d) => d.timescale_id == timescaleID
224
+ (d) => d.timescale_id == timescaleID,
225
225
  );
226
226
  }
227
227
  return ids.map((id) => intervals.get(id));
@@ -233,7 +233,7 @@ function includesTimescale(intervals: Map<number, any>, timescaleID: number) {
233
233
  if (intervals == null) return false;
234
234
  if (timescaleID == null) return true;
235
235
  return Array.from(intervals.values()).some(
236
- (d) => d.timescale_id == timescaleID
236
+ (d) => d.timescale_id == timescaleID,
237
237
  );
238
238
  }
239
239
 
@@ -272,7 +272,7 @@ export function useMacrostratDefs(dataType: string): Map<number, any> | null {
272
272
 
273
273
  export function useMacrostratColumns(
274
274
  projectID: number | null,
275
- inProcess: boolean
275
+ inProcess: boolean,
276
276
  ) {
277
277
  const getColumns = useMacrostratStore((s) => s.getColumns);
278
278
  const columnsMap = useMacrostratStore((s) => s.columnFootprints);
@@ -292,7 +292,7 @@ export function useMacrostratColumns(
292
292
  if (!inProcess && colData.inProcess) {
293
293
  // Our available set of columns includes 'in process' columns, but we don't want them
294
294
  columns.features = columns.features?.filter(
295
- (d) => d.properties.status != "in process"
295
+ (d) => d.properties.status != "in process",
296
296
  );
297
297
  }
298
298
  return columns;
@@ -323,7 +323,7 @@ export function MacrostratDataProvider(props: MacrostratDataProviderProps) {
323
323
  return h(
324
324
  MacrostratAPIProvider,
325
325
  { baseURL },
326
- h(MacrostratDataProviderContext.Provider, { value: store }, children)
326
+ h(MacrostratDataProviderContext.Provider, { value: store }, children),
327
327
  );
328
328
  }
329
329
 
@@ -341,7 +341,7 @@ export function MacrostratAPIProvider({
341
341
  baseURL,
342
342
  }: APIProviderProps) {
343
343
  baseURL ??= useDev
344
- ? "https://dev2.macrostrat.org/api/v2"
344
+ ? "https://dev.macrostrat.org/api/v2"
345
345
  : "https://macrostrat.org/api/v2";
346
346
 
347
347
  return h(
@@ -350,7 +350,7 @@ export function MacrostratAPIProvider({
350
350
  baseURL,
351
351
  unwrapResponse: (res) => res.success.data,
352
352
  },
353
- children
353
+ children,
354
354
  );
355
355
  }
356
356
 
@@ -364,7 +364,7 @@ export function MacrostratColumnProvider(props) {
364
364
  return h(
365
365
  ColumnProvider,
366
366
  { axisType, divisions: units, range: domain, pixelsPerMeter: pixelScale },
367
- children
367
+ children,
368
368
  );
369
369
  }
370
370
 
@@ -372,7 +372,7 @@ export function MacrostratColumnProvider(props) {
372
372
  export function LithologiesProvider({ children }) {
373
373
  useEffect(() => {
374
374
  console.warn(
375
- "LithologiesProvider is deprecated. Replace with MacrostratDataProvider"
375
+ "LithologiesProvider is deprecated. Replace with MacrostratDataProvider",
376
376
  );
377
377
  }, []);
378
378
  return children;
@@ -386,3 +386,12 @@ export function useLithologies() {
386
386
  }, [lithologies, getLithologies]);
387
387
  return lithologies;
388
388
  }
389
+
390
+ export function useEnvironments() {
391
+ const getEnvironments = useMacrostratStore((s) => s.getEnvironments);
392
+ const environments = useMacrostratStore((s) => s.environments);
393
+ useEffect(() => {
394
+ if (environments == null) getEnvironments();
395
+ }, [environments, getEnvironments]);
396
+ return environments;
397
+ }
@@ -14,13 +14,13 @@ type ColumnManagerData = [ColumnArgs, (c: ColumnArgs) => void];
14
14
  const ColumnNavCtx = createContext<ColumnManagerData | null>(null);
15
15
 
16
16
  export function useColumnNav(
17
- defaultArgs: ColumnArgs = { col_id: 495, unit_id: null }
17
+ defaultArgs: ColumnArgs = { col_id: 495, unit_id: null },
18
18
  ): ColumnManagerData {
19
19
  const ctx = useContext(ColumnNavCtx);
20
20
  if (ctx != null) return ctx;
21
21
 
22
22
  const [columnArgs, setColumnArgs] = useState<ColumnArgs>(
23
- extractColumnArgs(getQueryString(window.location.search)) ?? defaultArgs
23
+ extractColumnArgs(getQueryString(window.location.search)) ?? defaultArgs,
24
24
  );
25
25
 
26
26
  useEffect(() => setQueryString(columnArgs), [columnArgs]);
@@ -15,7 +15,7 @@ import { geoArea } from "d3-geo";
15
15
 
16
16
  function defaultFetch(
17
17
  url: string,
18
- options: RequestInit | undefined = undefined
18
+ options: RequestInit | undefined = undefined,
19
19
  ) {
20
20
  const baseURL = "https://macrostrat.org/api/v2";
21
21
  return crossFetch(baseURL + url, options);
@@ -30,7 +30,7 @@ export interface ColumnFetchOptions {
30
30
  }
31
31
 
32
32
  export async function fetchAllColumns(
33
- options: ColumnFetchOptions = {}
33
+ options: ColumnFetchOptions = {},
34
34
  ): Promise<ColumnGeoJSONRecord[]> {
35
35
  const {
36
36
  apiBaseURL,
@@ -92,7 +92,7 @@ export function useColumnFeatures({
92
92
  return useAPIResult(
93
93
  apiRoute,
94
94
  { format, all, status_code, project_id },
95
- processor
95
+ processor,
96
96
  );
97
97
  }
98
98
 
@@ -117,12 +117,12 @@ function processTopoJSON(res) {
117
117
 
118
118
  function postProcessColumns(columns) {
119
119
  return promoteColumnIDs(
120
- convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns))
120
+ convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns)),
121
121
  );
122
122
  }
123
123
 
124
124
  function promoteColumnIDs(
125
- features: ColumnGeoJSONRecord[]
125
+ features: ColumnGeoJSONRecord[],
126
126
  ): ColumnGeoJSONRecordWithID[] {
127
127
  return features.map((f, i) => {
128
128
  return {
@@ -171,7 +171,7 @@ export async function fetchLithologies(fetch = defaultFetch) {
171
171
 
172
172
  export async function fetchIntervals(
173
173
  timescaleID: number | null,
174
- fetch = defaultFetch
174
+ fetch = defaultFetch,
175
175
  ) {
176
176
  let url = `/defs/intervals`;
177
177
  if (timescaleID != null) {
@@ -190,7 +190,7 @@ export async function fetchEnvironments(fetch = defaultFetch) {
190
190
 
191
191
  export async function fetchRefs(
192
192
  refs: number[],
193
- fetch = defaultFetch
193
+ fetch = defaultFetch,
194
194
  ): Promise<MacrostratRef[]> {
195
195
  let url = `/defs/refs`;
196
196
  if (refs.length == 0) {
@@ -208,7 +208,7 @@ export type ColumnData = {
208
208
 
209
209
  export async function fetchUnits(
210
210
  columns: number[],
211
- fetch = defaultFetch
211
+ fetch = defaultFetch,
212
212
  ): Promise<ColumnData[]> {
213
213
  const promises = columns.map((col_id) => fetchColumnUnits(col_id, fetch));
214
214
  return await Promise.all(promises);
@@ -216,7 +216,7 @@ export async function fetchUnits(
216
216
 
217
217
  export async function fetchColumnUnits(
218
218
  col_id: number,
219
- fetch = defaultFetch
219
+ fetch = defaultFetch,
220
220
  ): Promise<ColumnData> {
221
221
  const params = new URLSearchParams();
222
222
  params.append("response", "long");
@@ -1,8 +1,15 @@
1
- import { createContext, useContext, ReactNode, useMemo } from "react";
1
+ import {
2
+ createContext,
3
+ useContext,
4
+ ReactNode,
5
+ useMemo,
6
+ useEffect,
7
+ } from "react";
2
8
  import h from "@macrostrat/hyper";
3
9
  import {
4
10
  createCompositeScale,
5
11
  PackageLayoutData,
12
+ CompositeColumnScale,
6
13
  } from "../prepare-units/composite-scale";
7
14
  import { ExtUnit } from "../prepare-units/helpers";
8
15
  import { ColumnAxisType } from "@macrostrat/column-components";
@@ -51,7 +58,7 @@ export function useMacrostratColumnData() {
51
58
  const ctx = useContext(MacrostratColumnDataContext);
52
59
  if (!ctx) {
53
60
  throw new Error(
54
- "useMacrostratColumnData must be used within a MacrostratColumnDataProvider"
61
+ "useMacrostratColumnData must be used within a MacrostratColumnDataProvider",
55
62
  );
56
63
  }
57
64
  return ctx;
@@ -61,12 +68,10 @@ export function useMacrostratUnits() {
61
68
  return useMacrostratColumnData().units;
62
69
  }
63
70
 
64
- export function useCompositeScale() {
65
- const ctx = useContext(MacrostratColumnDataContext);
66
- if (!ctx) {
67
- throw new Error(
68
- "useCompositeScale must be used within a MacrostratUnitsProvider"
69
- );
70
- }
71
- return createCompositeScale(ctx.sections, true);
71
+ export function useCompositeScale(): CompositeColumnScale {
72
+ const ctx = useMacrostratColumnData();
73
+ return useMemo(
74
+ () => createCompositeScale(ctx.sections, true),
75
+ [ctx.sections],
76
+ );
72
77
  }
@@ -2,6 +2,7 @@ import { line } from "d3-shape";
2
2
  import { createContext, useContext } from "react";
3
3
  import h from "@macrostrat/hyper";
4
4
  import { ColumnLayoutContext } from "@macrostrat/column-components";
5
+ import { useCompositeScale } from "../../data-provider";
5
6
 
6
7
  const inDomain = (scale, num) => {
7
8
  const domain = scale.domain();
@@ -29,9 +30,11 @@ export interface DataAreaProps {
29
30
  }
30
31
 
31
32
  const IsotopesDataArea = function (props: DataAreaProps) {
32
- const { xScale, scale } = useContext(ColumnLayoutContext) ?? {};
33
+ const xScale = useContext(ColumnLayoutContext)?.xScale;
33
34
 
34
- let { corrected, system, children, getHeight, clipY } = props;
35
+ const scale = useCompositeScale();
36
+
37
+ let { corrected, system, children, getHeight, clipY = false } = props;
35
38
  if (getHeight == null) {
36
39
  getHeight = function (d) {
37
40
  if (d.height == null) {
@@ -63,8 +66,6 @@ const IsotopesDataArea = function (props: DataAreaProps) {
63
66
  return h(IsotopesDataContext.Provider, { value }, h("g.data", children));
64
67
  };
65
68
 
66
- IsotopesDataArea.defaultProps = { clipY: false };
67
-
68
69
  const IsotopeDataPoint = function (props) {
69
70
  const { pointLocator } = useContext(IsotopesDataContext);
70
71
  const { datum, strokeWidth, ...rest } = props;