@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
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAHA,4CAA6B,CAAC,eAAe,CAAC;AAC9C,4CAAoC,CAAC,sBAAsB,CAAC;AAC5D,4CAAmC,CAAC,qBAAqB,CAAC;AAC1D,4CAAkC,CAAC,oBAAoB,CAAC","sources":["packages/column-views/src/age-axis.module.sass"],"sourcesContent":[".age-axis\n transform: translateX(20px)\n\n :global(.tick)\n text\n text-anchor: middle\n // TODO: allow font size to vary without this..\n font-weight: 400 !important\n transform: rotate(-90deg) translate(8px, -12px)\n font-size: var(--column-axis-font-size, 0.8rem)\n\n line\n stroke-width: 1px !important\n\n.age-axis-column\n flex-shrink: 0\n\n.age-axis-label\n writing-mode: vertical-lr\n transform: rotate(180deg)\n font-size: var(--column-axis-font-size, 0.8rem)\n text-align: center\n position: sticky\n top: 0\n max-height: 100vh\n.age-axis-unit\n color: var(--text-subtle-color)\n"],"names":[],"version":3,"file":"column-views.dff52504.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA;;;;AAII;;;;;;;AAOA;;;;AAGJ;;;;AAGA;;;;;;;;;;AAQA","sources":["packages/column-views/src/age-axis.module.sass"],"sourcesContent":[".age-axis\n transform: translateX(20px)\n\n :global(.tick)\n text\n text-anchor: middle\n // TODO: allow font size to vary without this..\n font-weight: 400 !important\n transform: rotate(-90deg) translate(8px, -12px)\n font-size: var(--column-axis-font-size, 0.8rem)\n\n line\n stroke-width: 1px !important\n\n.age-axis-column\n flex-shrink: 0\n\n.age-axis-label\n writing-mode: vertical-lr\n transform: rotate(180deg)\n font-size: var(--column-axis-font-size, 0.8rem)\n text-align: center\n position: sticky\n top: 0\n max-height: 100vh\n.age-axis-unit\n color: var(--text-subtle-color)\n"],"names":[],"version":3,"file":"column-views.e2b9c23c.css.map"}
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/column-views/src/maps/column-navigation/svg/layers.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n Feature,\n FeatureLayer,\n MapContext,\n} from \"@macrostrat/svg-map-components\";\nimport { useAPIResult, useKeyHandler } from \"@macrostrat/ui-components\";\nimport chroma from \"chroma-js\";\nimport { ExtendedFeature } from \"d3-geo\";\nimport { Polygon } from \"geojson\";\nimport { useContext, useMemo } from \"react\";\nimport { useColumnFeatures } from \"../../../data-provider\";\nimport {\n buildKeyMapping,\n buildTriangulation,\n} from \"../utils/keyboard-navigation\";\n\nconst defaultStyle = {\n fill: \"rgb(239, 180, 249)\",\n stroke: \"magenta\",\n};\n\nexport function MeasurementsLayer(props) {\n const { style = defaultStyle, ...params } = props;\n const res: any = useAPIResult(\"/measurements\", {\n ...params,\n format: \"geojson\",\n response: \"light\",\n });\n if (res == null) return null;\n\n return h(FeatureLayer, {\n useCanvas: false,\n style,\n features: res.features.filter((d) => d.properties.unit_id != null),\n });\n}\n\ntype ColumnProps = { col_id: number };\n\ntype ColumnFeature = ExtendedFeature<Polygon, ColumnProps>;\n\nfunction ColumnFeatures(props) {\n const {\n features,\n onClick,\n color = \"rgba(150,150,150, 1)\",\n singleFeature = true,\n } = props;\n\n console.log(features);\n\n const c = chroma(color);\n\n return h(\n FeatureLayer,\n {\n className: \"columns\",\n useCanvas: onClick == null,\n style: {\n fill: c.alpha(0.2).css(),\n stroke: c.alpha(0.4).css(),\n },\n },\n features.map((f) => {\n return h(Feature, {\n id: f.id ?? f.properties.col_id,\n onClick,\n feature: f,\n });\n })\n );\n}\n\nenum MacrostratStatusCode {\n InProcess = \"in process\",\n}\n\ninterface ColumnNavProps {\n col_id: number;\n status_code?: MacrostratStatusCode;\n project_id?: number;\n onChange(col_id: number): void;\n}\n\ninterface KeyboardNavProps extends ColumnNavProps {\n features: ColumnFeature[];\n showLayers: boolean;\n}\n\nfunction ColumnKeyboardNavigation(props: KeyboardNavProps) {\n /** Keyboard navigation of columns using a Delaunay triangulation */\n const {\n features = [],\n col_id = null,\n onChange,\n showLayers = false,\n ...projectArgs\n } = props;\n const { projection } = useContext(MapContext);\n const { centroids, tri } = useMemo(\n () => buildTriangulation(features),\n [features]\n );\n\n const currentIndex = useMemo(() => {\n return features.findIndex((d) => d.properties.col_id == col_id);\n }, [features, col_id]);\n\n const neighbors = tri.delaunay.neighbors[currentIndex];\n\n const keyMapping = useMemo(() => {\n return buildKeyMapping(neighbors, centroids, currentIndex, projection);\n }, [neighbors, currentIndex]);\n\n useKeyHandler(\n (event) => {\n const nextColumnIx = keyMapping[event.keyCode];\n if (nextColumnIx == null) return;\n // @ts-ignore\n onChange(features[nextColumnIx]);\n },\n [keyMapping]\n );\n\n if (neighbors == null) return null;\n const neighborFeatures = neighbors.map((d) => features[d]);\n\n return h.if(showLayers)([\n h(FeatureLayer, {\n features: tri.links().features,\n useCanvas: false,\n style: {\n stroke: \"purple\",\n fill: \"transparent\",\n },\n }),\n h(FeatureLayer, {\n features: neighborFeatures,\n useCanvas: false,\n style: {\n stroke: \"rgb(93, 101, 212)\",\n strokeWidth: 3,\n fill: \"rgba(93, 101, 212, 0.5)\",\n },\n }),\n h(FeatureLayer, {\n features: [\n {\n type: \"Feature\",\n geometry: {\n type: \"MultiPoint\",\n coordinates: centroids,\n },\n },\n ],\n useCanvas: false,\n style: {\n r: 1,\n fill: \"purple\",\n },\n }),\n ]);\n}\n\ninterface ColumnExtraInfo {\n apiRoute?: string;\n color?: string;\n filterColumns?(d: ColumnFeature): boolean;\n showDebugLayers?: boolean;\n format?: \"topojson\" | \"geojson\";\n}\n\nconst Columns = (props: ColumnNavProps & ColumnExtraInfo) => {\n const {\n apiRoute = \"/columns\",\n onChange,\n col_id = null,\n status_code,\n project_id,\n color,\n filterColumns,\n showDebugLayers = false,\n format = \"topojson\",\n } = props;\n\n let features: any[] = useColumnFeatures({\n apiRoute,\n status_code,\n project_id,\n format,\n }) as any;\n\n if (features == null) return null;\n\n if (filterColumns != null) {\n features = features.filter(filterColumns);\n }\n\n return h([\n h(ColumnKeyboardNavigation, {\n features,\n col_id,\n onChange,\n status_code,\n project_id,\n showLayers: showDebugLayers,\n }),\n h(ColumnFeatures, { features, onClick: onChange, color }),\n ]);\n};\n\nconst ColumnCenters = (props: ColumnNavProps) => {\n return h(Columns, { apiRoute: \"/defs/columns\", ...props });\n};\n\nconst CurrentColumn = (props) => {\n const { feature } = props;\n return h(FeatureLayer, {\n features: [feature],\n style: {\n fill: \"rgba(255,0,0,0.4)\",\n stroke: \"rgba(255,0,0,0.6)\",\n strokeWidth: 2,\n },\n });\n};\n\nexport {\n Columns,\n CurrentColumn,\n ColumnCenters,\n ColumnFeatures,\n ColumnKeyboardNavigation,\n};\n"],"names":[],"version":3,"file":"column-views.e77b9d6b.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;AAgBA,MAAM,oDACJ,CAAA,GAAA,oBAAY,EAA+B;AAEtC,SAAS,0CAA6B,YAC3C,QAAQ,SACR,KAAK,YACL,QAAQ,eACR,WAAW,YACX,QAAQ,EAC8C;IACtD;;;;;;;;;KASG,GAEH,MAAM,QAAQ,CAAA,GAAA,cAAM,EAAE;QACpB,OAAO;mBACL;sBACA;yBACA;sBACA;QACF;IACF,GAAG;QAAC;QAAO;QAAU;QAAa;KAAS;IAE3C,OAAO,CAAA,GAAA,sBAAA,EAAE,kDAA4B,QAAQ,EAAE;eAAE;IAAM,GAAG;AAC5D;AAEO,SAAS;IACd,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE;IACvB,IAAI,CAAC,KACH,MAAM,IAAI,MACR;IAGJ,OAAO;AACT;AAEO,SAAS;IACd,OAAO,4CAA0B,KAAK;AACxC;AAEO,SAAS;IACd,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE;IACvB,IAAI,CAAC,KACH,MAAM,IAAI,MACR;IAGJ,OAAO,CAAA,GAAA,yCAAmB,EAAE,IAAI,QAAQ,EAAE;AAC5C","sources":["packages/column-views/src/data-provider/store.ts"],"sourcesContent":["import { createContext, useContext, ReactNode, useMemo } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n createCompositeScale,\n PackageLayoutData,\n} from \"../prepare-units/composite-scale\";\nimport { ExtUnit } from \"../prepare-units/helpers\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\n\nexport interface MacrostratColumnDataContext {\n units: ExtUnit[];\n sections: PackageLayoutData[];\n totalHeight?: number;\n axisType?: ColumnAxisType;\n}\n\nconst MacrostratColumnDataContext =\n createContext<MacrostratColumnDataContext>(null);\n\nexport function MacrostratColumnDataProvider({\n children,\n units,\n sections,\n totalHeight,\n axisType,\n}: MacrostratColumnDataContext & { children: ReactNode }) {\n /** Provider for Macrostrat column data.\n * As a general rule, we want to provide data and column-axis\n * height calculations through the context, since these need to\n * be accessed by any component that lays out information on the\n * column.\n *\n * Cross-axis layout and view configuration (e.g., showing and hiding\n * of different components or labels) should be handled through passing\n * props to the components themselves.\n * */\n\n const value = useMemo(() => {\n return {\n units,\n sections,\n totalHeight,\n axisType,\n };\n }, [units, sections, totalHeight, axisType]);\n\n return h(MacrostratColumnDataContext.Provider, { value }, children);\n}\n\nexport function useMacrostratColumnData() {\n const ctx = useContext(MacrostratColumnDataContext);\n if (!ctx) {\n throw new Error(\n \"useMacrostratColumnData must be used within a MacrostratColumnDataProvider\"\n );\n }\n return ctx;\n}\n\nexport function useMacrostratUnits() {\n return useMacrostratColumnData().units;\n}\n\nexport function useCompositeScale() {\n const ctx = useContext(MacrostratColumnDataContext);\n if (!ctx) {\n throw new Error(\n \"useCompositeScale must be used within a MacrostratUnitsProvider\"\n );\n }\n return createCompositeScale(ctx.sections, true);\n}\n"],"names":[],"version":3,"file":"column-views.ea237aa8.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/column-views/src/column.ts"],"sourcesContent":["import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { hyperStyled } from \"@macrostrat/hyper\";\nimport { useDarkMode } from \"@macrostrat/ui-components\";\nimport classNames from \"classnames\";\nimport { RefObject, useRef, HTMLAttributes } from \"react\";\nimport styles from \"./column.module.sass\";\nimport {\n UnitSelectionProvider,\n UnitComponent,\n UnitKeyboardNavigation,\n useUnitSelectionDispatch,\n} from \"./units\";\n\nimport { ColumnHeightScaleOptions } from \"./prepare-units/composite-scale\";\nimport { UnitSelectionPopover } from \"./unit-details\";\nimport {\n MacrostratColumnDataProvider,\n useMacrostratColumnData,\n} from \"./data-provider\";\nimport {\n SectionSharedProps,\n CompositeTimescale,\n SectionsColumn,\n} from \"./section\";\nimport { CompositeAgeAxis } from \"./age-axis\";\nimport { MergeSectionsMode, usePreparedColumnUnits } from \"./prepare-units\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { NonIdealState } from \"@blueprintjs/core\";\n\nconst h = hyperStyled(styles);\n\ninterface BaseColumnProps extends SectionSharedProps {\n className?: string;\n showLabelColumn?: boolean;\n keyboardNavigation?: boolean;\n showLabels?: boolean;\n maxInternalColumns?: number;\n // Timescale properties\n showTimescale?: boolean;\n timescaleLevels?: number | [number, number];\n}\n\nexport interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {\n // Macrostrat units\n units: UnitLong[];\n t_age?: number;\n b_age?: number;\n mergeSections?: MergeSectionsMode;\n showUnitPopover?: boolean;\n selectedUnit?: number | null;\n onUnitSelected?: (unitID: number | null, unit: any) => void;\n // Unconformity height in pixels\n unconformityHeight?: number;\n}\n\nexport function Column(props: ColumnProps) {\n const {\n showUnitPopover = false,\n keyboardNavigation = false,\n mergeSections,\n onUnitSelected,\n selectedUnit,\n children,\n units: rawUnits,\n axisType = ColumnAxisType.AGE,\n t_age,\n b_age,\n unconformityHeight = 30,\n targetUnitHeight = 20,\n pixelScale,\n minPixelScale = 0.2,\n minSectionHeight = 50,\n collapseSmallUnconformities = true,\n ...rest\n } = props;\n const ref = useRef<HTMLElement>();\n // Selected item position\n\n const { sections, units, totalHeight } = usePreparedColumnUnits(rawUnits, {\n axisType,\n t_age,\n b_age,\n mergeSections,\n targetUnitHeight,\n unconformityHeight,\n pixelScale,\n minPixelScale,\n minSectionHeight,\n collapseSmallUnconformities,\n });\n\n if (sections.length === 0) {\n return h(\n \"div.column-container.empty\",\n h(NonIdealState, {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\",\n })\n );\n }\n\n return h(\n MacrostratColumnDataProvider,\n { units, sections, totalHeight, axisType },\n h(\n UnitSelectionProvider,\n { columnRef: ref, onUnitSelected, selectedUnit, units },\n h(ColumnInner, { columnRef: ref, ...rest }, [\n children,\n h.if(showUnitPopover)(UnitSelectionPopover),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),\n ])\n )\n );\n}\n\ninterface ColumnInnerProps extends BaseColumnProps {\n columnRef: RefObject<HTMLElement>;\n}\n\nfunction ColumnInner(props: ColumnInnerProps) {\n const {\n unitComponent = UnitComponent,\n unconformityLabels = true,\n showLabels = true,\n width: _width = 300,\n columnWidth: _columnWidth = 150,\n showLabelColumn: _showLabelColumn = true,\n className,\n columnRef,\n clipUnits = false,\n children,\n showTimescale,\n timescaleLevels,\n maxInternalColumns,\n } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n const dispatch = useUnitSelectionDispatch();\n\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) {\n columnWidth = width;\n }\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) {\n showLabelColumn = false;\n }\n\n let _showTimescale = showTimescale;\n if (timescaleLevels !== null) {\n _showTimescale = true;\n }\n _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;\n\n return h(\n ColumnContainer,\n {\n onClick(evt) {\n dispatch?.(null, null, evt as any);\n },\n className,\n },\n h(\"div.column\", { ref: columnRef }, [\n h(CompositeAgeAxis),\n h.if(_showTimescale)(CompositeTimescale, { levels: timescaleLevels }),\n h(SectionsColumn, {\n unitComponent,\n showLabels,\n width,\n columnWidth,\n showLabelColumn,\n clipUnits,\n unconformityLabels,\n maxInternalColumns,\n }),\n children,\n ])\n );\n}\n\nexport interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\nexport function ColumnContainer(props: ColumnContainerProps) {\n const { className, ...rest } = props;\n const darkMode = useDarkMode();\n\n return h(\"div.column-container\", {\n className: classNames(className, {\n \"dark-mode\": darkMode?.isEnabled ?? false,\n }),\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.f71ec4b4.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/column-views/src/section.ts"],"sourcesContent":["import {\n CompositeUnitsColumn,\n LabelTrackerProvider,\n SectionLabelsColumn,\n} from \"./units\";\nimport { ReactNode, FunctionComponent, useMemo } from \"react\";\nimport { Timescale, TimescaleOrientation } from \"@macrostrat/timescale\";\nimport { ColumnAxisType, SVG } from \"@macrostrat/column-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./column.module.sass\";\nimport type { ExtUnit } from \"./prepare-units/helpers\";\nimport { PackageScaleLayoutData } from \"./prepare-units/composite-scale\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n MacrostratColumnProvider,\n} from \"./data-provider\";\nimport { Duration } from \"./unit-details\";\n\nconst h = hyper.styled(styles);\n\nexport interface SectionSharedProps {\n unitComponent?: FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n children?: ReactNode;\n showLabelColumn?: boolean;\n axisType?: ColumnAxisType;\n className?: string;\n clipUnits?: boolean;\n maxInternalColumns?: number;\n // Space between sections\n verticalSpacing?: number;\n // Whether to render unconformity labels\n unconformityLabels?: boolean;\n}\n\nexport interface SectionProps extends SectionSharedProps {\n units: ExtUnit[];\n scaleInfo: PackageScaleLayoutData;\n}\n\nexport function SectionsColumn(props: SectionSharedProps) {\n const {\n unconformityLabels = true,\n unitComponent,\n unitComponentProps,\n showLabels = true,\n width = 300,\n columnWidth = 150,\n showLabelColumn = true,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const units = useMacrostratUnits();\n\n // Get a unique key for the column\n const key = units[0]?.unit_id;\n\n return h(LabelTrackerProvider, { units, key }, [\n h(SectionUnitsColumn, {\n width: columnWidth,\n unitComponent,\n unitComponentProps,\n showLabels,\n clipUnits,\n maxInternalColumns,\n unconformityLabels,\n }),\n h.if(showLabelColumn)(SectionLabelsColumn, {\n width: width - columnWidth,\n }),\n ]);\n}\n\nfunction SectionUnitsColumn(props: SectionSharedProps) {\n const {\n width,\n showLabels,\n unitComponent,\n unitComponentProps,\n clipUnits,\n maxInternalColumns,\n unconformityLabels = true,\n } = props;\n\n const { sections, totalHeight } = useMacrostratColumnData();\n\n const scaleData: PackageScaleLayoutData[] = sections.map((section) => {\n return section.scaleInfo;\n });\n\n const innerWidth = width - 2;\n\n return h(\"div.section-units-container\", { style: { width } }, [\n h(\n SVG,\n {\n className: \"sections\",\n height: totalHeight,\n innerWidth,\n paddingH: 1,\n },\n sections.map((group) => {\n const { units, scaleInfo, section_id } = group;\n\n const key = `section-${section_id}`;\n return h(\n SectionUnits,\n {\n units,\n scaleInfo,\n key,\n unitComponent,\n unitComponentProps,\n showLabels,\n width: innerWidth,\n clipUnits,\n maxInternalColumns,\n } // This unconformity is with the section _above_\n );\n })\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width,\n sections: scaleData,\n }),\n ]);\n}\n\nfunction SectionUnits(props: SectionProps) {\n // Section with \"squishy\" timescale\n const {\n units,\n scaleInfo,\n unitComponent,\n showLabels = true,\n width = 300,\n unitComponentProps,\n className,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const { domain, pixelScale, pixelHeight } = scaleInfo;\n\n /** Ensure that we can arrange units into the maximum number\n * of columns defined by unitComponentProps, but that we don't\n * use more than necessary.\n */\n const _unitComponentProps = useMemo(() => {\n return {\n ...unitComponentProps,\n nColumns: Math.min(\n maxInternalColumns ?? Math.floor(width / 10),\n unitComponentProps?.nColumns ?? Infinity,\n Math.max(...units.map((d) => d.column)) + 1\n ),\n //axisType,\n };\n }, [units, unitComponentProps, maxInternalColumns, width]);\n\n const style = {\n \"--section-height\": `${pixelHeight}px`,\n \"--section-width\": `${width}px`,\n };\n\n return h(\n \"g.section\",\n { className, style, transform: `translate(0 ${scaleInfo.offset})` },\n h(\n MacrostratColumnProvider,\n {\n units,\n domain,\n pixelScale, // Actually pixels per myr,\n },\n h(CompositeUnitsColumn, {\n width,\n showLabels,\n unitComponent,\n unitComponentProps: _unitComponentProps,\n clipToFrame: clipUnits,\n })\n )\n );\n}\n\ninterface CompositeTimescaleProps {\n levels?: [number, number] | number;\n}\n\nexport function CompositeTimescale(props: CompositeTimescaleProps) {\n const { sections } = useMacrostratColumnData();\n const sectionScales = sections.map((section) => {\n return section.scaleInfo;\n });\n\n return h(CompositeTimescaleCore, {\n packages: sectionScales,\n ...props,\n });\n}\n\ntype CompositeTimescaleCoreProps = CompositeTimescaleProps & {\n packages: PackageScaleLayoutData[];\n unconformityLabels?: boolean;\n};\n\nexport function CompositeTimescaleCore(props: CompositeTimescaleCoreProps) {\n const { levels = 3, packages, unconformityLabels = false } = props;\n\n let _levels: [number, number];\n if (typeof levels === \"number\") {\n // If levels is a number, use the most common starting level\n _levels = [2, Math.max(2 + Math.min(levels, 5) - 1, 1)];\n } else {\n _levels = levels;\n }\n\n const nCols = _levels[1] - _levels[0] + 1;\n\n return h(\"div.timescale-column\", [\n h(\n \"div.timescales\",\n packages.map((group) => {\n const { domain, pixelHeight, paddingTop, key } = group;\n return h(\n \"div.timescale-container\",\n { style: { paddingTop, \"--timescale-level-count\": nCols }, key },\n [\n h(Timescale, {\n orientation: TimescaleOrientation.VERTICAL,\n length: pixelHeight,\n levels: _levels,\n absoluteAgeScale: true,\n showAgeAxis: false,\n ageRange: domain as [number, number],\n }),\n ]\n );\n })\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width: \"100%\",\n sections: packages,\n className: \"unconformity-labels\",\n }),\n ]);\n}\n\nexport function UnconformityLabels(props: {\n width: string | number;\n sections: PackageScaleLayoutData[];\n className?: string;\n}) {\n const { width, sections, className } = props;\n\n return h(\n \"div.unconformity-labels\",\n {\n style: {\n width,\n },\n className,\n },\n sections.map((scaleInfo, i) => {\n const lastGroup = sections[i - 1];\n const top = scaleInfo.offset - scaleInfo.paddingTop;\n const upperAge = lastGroup?.domain[0];\n const lowerAge = scaleInfo.domain[1];\n return h(Unconformity, {\n upperAge,\n lowerAge,\n style: {\n width,\n height: scaleInfo.paddingTop,\n top,\n },\n });\n })\n );\n}\n\nfunction Unconformity({ upperAge, lowerAge, style }) {\n if (upperAge == null || lowerAge == null) {\n return null;\n }\n\n const ageGap = Math.abs(upperAge - lowerAge);\n\n let className: string = null;\n if (ageGap > 1000) {\n className = \"giga\";\n } else if (ageGap > 100) {\n className = \"mega\";\n } else if (ageGap > 10) {\n className = \"large\";\n } else if (ageGap < 1) {\n className = \"small\";\n }\n\n return h(\"div.unconformity\", { style, className }, [\n h(\"div.unconformity-text\", h(Duration, { value: ageGap })),\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.fa6f3292.js.map"}
@@ -1,136 +0,0 @@
1
- @use "sass:color"
2
-
3
- .column-ui
4
- width: 100vw
5
- height: 100vh
6
- overflow-y: scroll
7
- display: flex
8
- flex-direction: row
9
-
10
- .column-view
11
- flex-grow: 1
12
- padding: 1em
13
- max-height: 100vh
14
- overflow-y: scroll
15
- h1
16
- font-size: 1.2em
17
- margin-bottom: 0.2em
18
- padding-left: 35px
19
-
20
- // Column
21
- .column
22
- margin-bottom: 1em
23
- display: flex
24
- flex-direction: row
25
- .age-axis-label
26
- writing-mode: vertical-lr
27
- transform: rotate(180deg)
28
- font-size: 12px
29
- text-align: center
30
- position: sticky
31
- top: 0
32
- max-height: 100vh
33
-
34
- :global
35
- .tick text
36
- text-anchor: middle
37
- font-weight: 400 !important
38
- transform: rotate(-90deg) translate(8px,-12px)
39
-
40
- rect.unit
41
- stroke: black
42
- stroke-width: 1px
43
-
44
- g.lithology-column use.frame
45
- stroke: black
46
- stroke-width: 1.5px !important
47
- pointer-events: none
48
-
49
- g.isotopes-column
50
- rect.underlay
51
- fill: transparent
52
-
53
- .col-note-label
54
- font-size: 10px
55
- margin-top: 3px
56
- padding: 2px 2px 2px 3px
57
- line-height: 9px
58
- border-left: none !important
59
-
60
- g.height-range
61
- display: none
62
-
63
- .note-inner
64
- border: none
65
-
66
- .frame rect
67
- fill: transparent
68
-
69
-
70
-
71
- .bp5-dark
72
- .column :global
73
- .lithology-column .frame
74
- stroke: white
75
- g.inner
76
- rect.unit
77
- filter: invert(100%)
78
- g.lithology-column use.frame
79
- stroke: white
80
- .note
81
- line, path.col-note-link
82
- stroke: white
83
- .y.axis .tick line
84
- stroke: white
85
-
86
- .column-nav
87
- position: sticky
88
- top: 2.2em
89
- h3
90
- color: #444
91
- margin-bottom: 0.3em
92
-
93
- .default-buttons
94
- width: 100%
95
- margin: 0 -10px
96
-
97
- div.map-column
98
- width: 600px
99
- height: 100vh
100
- display: flex
101
- flex-direction: column
102
-
103
- :global
104
- .map-area
105
- flex-grow: 1
106
-
107
- .map-placeholder
108
- position: relative
109
-
110
- .macrostrat-map
111
- .graticule
112
- stroke-dasharray: inherit
113
- stroke: color.adjust(#AFE6F0, $lightness: -5%)
114
- .neatline
115
- stroke-width: 1.5px
116
-
117
- .context-map
118
- position: absolute
119
- top: 0
120
- right: 0
121
- width: 250px
122
- height: 250px
123
- cursor: pointer
124
- z-index: 100
125
- &.expanded
126
- cursor: inherit
127
- .columns path:hover
128
- stroke: rgba(255,0,0,.4) !important
129
-
130
- .close-button
131
- position: absolute
132
- top: 1em
133
- right: 1em
134
-
135
- .land
136
- background-color: rgb(233, 252, 234)
@@ -1,133 +0,0 @@
1
- import hyper from "@macrostrat/hyper";
2
- import { group } from "d3-array";
3
- import { useAPIResult } from "@macrostrat/ui-components";
4
- import {
5
- ColumnSVG,
6
- ColumnAxis,
7
- ColumnContext,
8
- } from "@macrostrat/column-components";
9
- import { SimpleUnitsColumn, IUnit } from "../units";
10
- import { useContext } from "react";
11
- import { IsotopesColumn } from "./isotopes-column";
12
- import { MacrostratColumnProvider } from "../data-provider";
13
- import styles from "./column.module.sass";
14
-
15
- const h = hyper.styled(styles);
16
-
17
- interface IColumnProps {
18
- data: IUnit[];
19
- pixelScale?: number;
20
- isOldestColumn: boolean;
21
- range?: [number, number];
22
- }
23
-
24
- const AgeAxis = ({ ticks }) => {
25
- const { pixelHeight } = useContext(ColumnContext);
26
- // A tick roughly every 40 pixels
27
- let v = Math.max(Math.round(pixelHeight / 40), 1);
28
-
29
- return h(ColumnAxis, {
30
- ticks: v,
31
- showDomain: false,
32
- });
33
- };
34
-
35
- const Section = (props: IColumnProps) => {
36
- // Section with "squishy" time scale
37
- const {
38
- data,
39
- isOldestColumn = true,
40
- range = [data[data.length - 1].b_age, data[0].t_age],
41
- } = props;
42
- let { pixelScale } = props;
43
-
44
- const notesOffset = 100;
45
-
46
- if (!pixelScale) {
47
- // Make up a pixel scale
48
- const dAge = range[0] - range[1];
49
- const targetHeight = 50 * data.length;
50
- pixelScale = Math.ceil(targetHeight / dAge);
51
- }
52
-
53
- return h(
54
- MacrostratColumnProvider,
55
- {
56
- divisions: data,
57
- range,
58
- pixelsPerMeter: pixelScale, // Actually pixels per myr
59
- },
60
- [
61
- h(
62
- ColumnSVG,
63
- {
64
- width: 650,
65
- padding: 20,
66
- paddingTop: 5,
67
- paddingBottom: 25,
68
- },
69
- [
70
- h(AgeAxis),
71
- h(SimpleUnitsColumn, {
72
- width: 400,
73
- columnWidth: 90,
74
- }),
75
- h(IsotopesColumn, {
76
- parameter: "D13C",
77
- label: "δ¹³C",
78
- width: 100,
79
- // @ts-ignore
80
- nTicks: 4,
81
- showAxis: isOldestColumn,
82
- transform: "translate(250,0)",
83
- }),
84
- h(IsotopesColumn, {
85
- parameter: "D18O",
86
- label: "δ¹⁸O",
87
- color: "red",
88
- domain: [-40, 0],
89
- width: 100,
90
- // @ts-ignore
91
- nTicks: 4,
92
- showAxis: isOldestColumn,
93
- transform: "translate(370,0)",
94
- }),
95
- ]
96
- ),
97
- ]
98
- );
99
- };
100
-
101
- type ColumnArgs = any;
102
-
103
- function Column(props: Omit<IColumnProps, "data"> & { params: ColumnArgs }) {
104
- const { params } = props;
105
- const data: IUnit[] = useAPIResult("/units", {
106
- all: true,
107
- ...params,
108
- response: "long",
109
- });
110
- if (data == null) return null;
111
-
112
- let sectionGroups = Array.from(group(data, (d) => d.section_id));
113
-
114
- //sectionGroups.sort((a, b) => a.t_age - b.t_age);
115
-
116
- return h("div.column", [
117
- h("div.age-axis-label", "Age (Ma)"),
118
- h(
119
- "div.main-column",
120
- sectionGroups.map(([id, values], i) => {
121
- return h(`div.section-${id}`, [
122
- h(Section, {
123
- data: values,
124
- isOldestColumn: i == sectionGroups.length - 1,
125
- }),
126
- ]);
127
- })
128
- ),
129
- ]);
130
- }
131
-
132
- export { Section, IColumnProps };
133
- export default Column;
@@ -1,81 +0,0 @@
1
- import hyper from "@macrostrat/hyper";
2
- import styles from "./column.module.sass";
3
-
4
- import { useAPIResult } from "@macrostrat/ui-components";
5
- import BaseColumn from "./column";
6
- import { ColumnNavigationSVGMap, MeasurementsLayer } from "../maps";
7
- import {
8
- MacrostratDataProvider,
9
- ColumnArgs,
10
- useColumnNav,
11
- } from "../data-provider";
12
- import { MeasurementDataProvider } from "./data-provider";
13
- import { useMemo } from "react";
14
- import { FeatureCollection } from "geojson";
15
-
16
- const h = hyper.styled(styles);
17
-
18
- const ColumnTitle = (props) => {
19
- return h.if(props.data != null)("h1", props.data?.col_name);
20
- };
21
-
22
- const defaultArgs: ColumnArgs = {
23
- col_id: 2192,
24
- //unit_id: null,
25
- project_id: 10,
26
- status_code: "in process",
27
- };
28
-
29
- export function CarbonIsotopesColumn(columnArgs) {
30
- return h(
31
- MacrostratDataProvider,
32
- h(MeasurementDataProvider, columnArgs, [
33
- // @ts-ignore
34
- h(BaseColumn, { params: columnArgs }),
35
- ])
36
- );
37
- }
38
-
39
- function ColumnManager() {
40
- const [columnArgs, setCurrentColumn] = useColumnNav(defaultArgs);
41
- const { col_id, ...projectParams } = columnArgs;
42
-
43
- const colParams = useMemo(
44
- () => ({ ...columnArgs, format: "geojson" }),
45
- [columnArgs]
46
- );
47
- const res: FeatureCollection = useAPIResult("/columns", colParams);
48
- const columnFeature = res?.features[0];
49
-
50
- return h(MeasurementDataProvider, columnArgs, [
51
- h("div.column-ui", [
52
- h("div.column-view", [
53
- h(ColumnTitle, { data: columnFeature?.properties }),
54
- // @ts-ignore
55
- h(BaseColumn, { params: columnArgs }),
56
- ]),
57
- h("div.map-column", [
58
- h(
59
- ColumnNavigationSVGMap,
60
- {
61
- currentColumn: columnFeature,
62
- setCurrentColumn,
63
- margin: 0,
64
- ...projectParams,
65
- },
66
- h(MeasurementsLayer, {
67
- ...projectParams,
68
- style: {
69
- fill: "dodgerblue",
70
- stroke: "blue",
71
- },
72
- })
73
- ),
74
- ]),
75
- ]),
76
- ]);
77
- }
78
-
79
- export function CarbonIsotopesApp() {
80
- return h(MacrostratDataProvider, h(ColumnManager));
81
- }