@macrostrat/column-views 2.1.3 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/esm/{column-views.4ab0ec82.js → column-views.073c42da.js} +142 -76
  3. package/dist/esm/column-views.073c42da.js.map +1 -0
  4. package/dist/esm/column-views.079119f4.js +17 -0
  5. package/dist/esm/column-views.079119f4.js.map +1 -0
  6. package/dist/esm/{column-views.0e06c069.js → column-views.0859feb3.js} +52 -23
  7. package/dist/esm/column-views.0859feb3.js.map +1 -0
  8. package/dist/esm/{column-views.d099eaf9.js → column-views.0a8a07f4.js} +3 -3
  9. package/dist/esm/{column-views.d099eaf9.js.map → column-views.0a8a07f4.js.map} +1 -1
  10. package/dist/esm/{column-views.0732894f.js → column-views.0f7f6ee6.js} +2 -2
  11. package/dist/esm/{column-views.0732894f.js.map → column-views.0f7f6ee6.js.map} +1 -1
  12. package/dist/esm/{column-views.57636733.css → column-views.1151416d.css} +5 -5
  13. package/dist/esm/column-views.1151416d.css.map +1 -0
  14. package/dist/esm/{column-views.53f4160e.js → column-views.1b644998.js} +3 -3
  15. package/dist/esm/{column-views.53f4160e.js.map → column-views.1b644998.js.map} +1 -1
  16. package/dist/esm/{column-views.686d21ad.js → column-views.22ec902b.js} +4 -1
  17. package/dist/esm/column-views.22ec902b.js.map +1 -0
  18. package/dist/esm/{column-views.3b637517.js → column-views.285cbb65.js} +40 -20
  19. package/dist/esm/column-views.285cbb65.js.map +1 -0
  20. package/dist/esm/column-views.2d602a57.js +37 -0
  21. package/dist/esm/column-views.2d602a57.js.map +1 -0
  22. package/dist/esm/{column-views.b17f793f.css → column-views.321af3ae.css} +7 -1
  23. package/dist/esm/{column-views.686d21ad.js.map → column-views.321af3ae.css.map} +1 -1
  24. package/dist/esm/column-views.3a7179c4.js +137 -0
  25. package/dist/esm/column-views.3a7179c4.js.map +1 -0
  26. package/dist/esm/{column-views.49adc09e.js → column-views.3e1b8c7d.js} +2 -2
  27. package/dist/esm/{column-views.49adc09e.js.map → column-views.3e1b8c7d.js.map} +1 -1
  28. package/dist/esm/{column-views.a23b2c92.js → column-views.3f528c5c.js} +50 -22
  29. package/dist/esm/column-views.3f528c5c.js.map +1 -0
  30. package/dist/esm/{column-views.1e055ed5.js → column-views.4fd4ec92.js} +17 -3
  31. package/dist/esm/column-views.4fd4ec92.js.map +1 -0
  32. package/dist/esm/{column-views.6ca980ae.js → column-views.53186d53.js} +2 -2
  33. package/dist/esm/{column-views.6ca980ae.js.map → column-views.53186d53.js.map} +1 -1
  34. package/dist/esm/{column-views.39657bbf.js → column-views.54f8b909.js} +7 -2
  35. package/dist/esm/column-views.54f8b909.js.map +1 -0
  36. package/dist/esm/{column-views.b72918ce.css → column-views.562db43a.css} +10 -2
  37. package/dist/esm/column-views.562db43a.css.map +1 -0
  38. package/dist/esm/{column-views.9e1c82fe.js → column-views.58b891df.js} +2 -2
  39. package/dist/esm/{column-views.9e1c82fe.js.map → column-views.58b891df.js.map} +1 -1
  40. package/dist/esm/{column-views.a2cf8f33.js → column-views.5a49cd68.js} +8 -38
  41. package/dist/esm/column-views.5a49cd68.js.map +1 -0
  42. package/dist/esm/{column-views.2e0ff311.js → column-views.5d969bc5.js} +6 -58
  43. package/dist/esm/column-views.5d969bc5.js.map +1 -0
  44. package/dist/esm/{column-views.43fb819d.js → column-views.63b7e5aa.js} +3 -3
  45. package/dist/esm/{column-views.43fb819d.js.map → column-views.63b7e5aa.js.map} +1 -1
  46. package/dist/esm/column-views.6698b95a.js +108 -0
  47. package/dist/esm/column-views.6698b95a.js.map +1 -0
  48. package/dist/esm/column-views.6c644353.js +184 -0
  49. package/dist/esm/column-views.6c644353.js.map +1 -0
  50. package/dist/esm/column-views.6e7082db.js +16 -0
  51. package/dist/esm/column-views.6e7082db.js.map +1 -0
  52. package/dist/esm/column-views.70164236.js +206 -0
  53. package/dist/esm/column-views.70164236.js.map +1 -0
  54. package/dist/esm/{column-views.34a1ac4f.js → column-views.73b8ff16.js} +20 -22
  55. package/dist/esm/column-views.73b8ff16.js.map +1 -0
  56. package/dist/esm/{column-views.9771145a.js → column-views.77561197.js} +91 -55
  57. package/dist/esm/column-views.77561197.js.map +1 -0
  58. package/dist/esm/{column-views.572b70fd.js → column-views.83395185.js} +3 -3
  59. package/dist/esm/{column-views.572b70fd.js.map → column-views.83395185.js.map} +1 -1
  60. package/dist/esm/{column-views.6dc251d3.js → column-views.86a51ce7.js} +2 -2
  61. package/dist/esm/{column-views.6dc251d3.js.map → column-views.86a51ce7.js.map} +1 -1
  62. package/dist/esm/{column-views.f08929e2.js → column-views.88d63dd0.js} +5 -3
  63. package/dist/esm/column-views.88d63dd0.js.map +1 -0
  64. package/dist/esm/{column-views.3f246167.js → column-views.8c296309.js} +5 -5
  65. package/dist/esm/column-views.8c296309.js.map +1 -0
  66. package/dist/esm/{column-views.7d47a72a.js → column-views.8d24b179.js} +3 -3
  67. package/dist/esm/{column-views.7d47a72a.js.map → column-views.8d24b179.js.map} +1 -1
  68. package/dist/esm/{column-views.3d001ab8.js → column-views.986e7566.js} +7 -7
  69. package/dist/esm/{column-views.3d001ab8.js.map → column-views.986e7566.js.map} +1 -1
  70. package/dist/esm/{column-views.86619334.js → column-views.9ddbe7df.js} +2 -2
  71. package/dist/esm/{column-views.86619334.js.map → column-views.9ddbe7df.js.map} +1 -1
  72. package/dist/esm/{column-views.abe90091.js → column-views.ae7c0a2b.js} +31 -60
  73. package/dist/esm/column-views.ae7c0a2b.js.map +1 -0
  74. package/dist/esm/{column-views.9892f825.js → column-views.aecf25bc.js} +75 -42
  75. package/dist/esm/column-views.aecf25bc.js.map +1 -0
  76. package/dist/esm/column-views.b7016f82.css +54 -0
  77. package/dist/esm/column-views.b7016f82.css.map +1 -0
  78. package/dist/esm/{column-views.a5c1bbf0.js → column-views.ba0381cc.js} +2 -2
  79. package/dist/esm/{column-views.a5c1bbf0.js.map → column-views.ba0381cc.js.map} +1 -1
  80. package/dist/esm/{column-views.ff031876.js → column-views.c518ef14.js} +9 -4
  81. package/dist/esm/column-views.c518ef14.js.map +1 -0
  82. package/dist/esm/{column-views.f7523c1d.js → column-views.c92a359e.js} +2 -2
  83. package/dist/esm/{column-views.f7523c1d.js.map → column-views.c92a359e.js.map} +1 -1
  84. package/dist/esm/{column-views.cdadc5c2.js → column-views.cc733361.js} +7 -1
  85. package/dist/esm/column-views.cc733361.js.map +1 -0
  86. package/dist/esm/{column-views.4d22c21c.js → column-views.d15d8655.js} +22 -4
  87. package/dist/esm/column-views.d15d8655.js.map +1 -0
  88. package/dist/esm/{column-views.5e2dc19d.js → column-views.d261b02d.js} +3 -3
  89. package/dist/esm/{column-views.5e2dc19d.js.map → column-views.d261b02d.js.map} +1 -1
  90. package/dist/esm/{column-views.323cad41.js → column-views.d406665d.js} +5 -5
  91. package/dist/esm/{column-views.323cad41.js.map → column-views.d406665d.js.map} +1 -1
  92. package/dist/esm/{column-views.7715e35e.js → column-views.d69c4a9f.js} +3 -3
  93. package/dist/esm/{column-views.7715e35e.js.map → column-views.d69c4a9f.js.map} +1 -1
  94. package/dist/esm/{column-views.07db2ab1.js → column-views.d9c6b527.js} +15 -12
  95. package/dist/esm/column-views.d9c6b527.js.map +1 -0
  96. package/dist/esm/{column-views.b12a6374.css → column-views.e33ac5c9.css} +30 -9
  97. package/dist/esm/column-views.e33ac5c9.css.map +1 -0
  98. package/dist/esm/column-views.e3bf5384.js +15 -0
  99. package/dist/esm/{column-views.6d5e3098.js.map → column-views.e3bf5384.js.map} +1 -1
  100. package/dist/esm/{column-views.a8926321.js → column-views.e4c26185.js} +2 -2
  101. package/dist/esm/{column-views.a8926321.js.map → column-views.e4c26185.js.map} +1 -1
  102. package/dist/esm/column-views.e84bd756.js +92 -0
  103. package/dist/esm/column-views.e84bd756.js.map +1 -0
  104. package/dist/esm/column-views.ea4ebbb7.js +31 -0
  105. package/dist/esm/column-views.ea4ebbb7.js.map +1 -0
  106. package/dist/esm/column-views.ed05e233.js +13 -0
  107. package/dist/esm/{column-views.3729c372.js.map → column-views.ed05e233.js.map} +1 -1
  108. package/dist/esm/{column-views.64a84c43.js → column-views.f2fd0e4a.js} +10 -2
  109. package/dist/esm/column-views.f2fd0e4a.js.map +1 -0
  110. package/dist/esm/{column-views.103b1cb0.js → column-views.f46a0b36.js} +2 -2
  111. package/dist/esm/{column-views.103b1cb0.js.map → column-views.f46a0b36.js.map} +1 -1
  112. package/dist/esm/{column-views.d48cb0d8.js → column-views.fcf25ec6.js} +7 -1
  113. package/dist/esm/column-views.fcf25ec6.js.map +1 -0
  114. package/dist/esm/index.d.ts +235 -397
  115. package/dist/esm/index.d.ts.map +1 -1
  116. package/dist/esm/index.js +12 -12
  117. package/dist/node/{column-views.36094762.js → column-views.01debc76.js} +2 -2
  118. package/dist/node/{column-views.36094762.js.map → column-views.01debc76.js.map} +1 -1
  119. package/dist/node/{column-views.31f57130.js → column-views.040499c9.js} +2 -2
  120. package/dist/node/{column-views.31f57130.js.map → column-views.040499c9.js.map} +1 -1
  121. package/dist/node/{column-views.50034105.js → column-views.07ff1fdf.js} +2 -2
  122. package/dist/node/{column-views.50034105.js.map → column-views.07ff1fdf.js.map} +1 -1
  123. package/dist/node/{column-views.3a55ecd7.css → column-views.0840b115.css} +2 -2
  124. package/dist/node/column-views.0840b115.css.map +1 -0
  125. package/dist/node/column-views.0b3a384e.js +2 -0
  126. package/dist/node/column-views.0b3a384e.js.map +1 -0
  127. package/dist/node/column-views.0bd15ee4.js +2 -0
  128. package/dist/node/column-views.0bd15ee4.js.map +1 -0
  129. package/dist/node/column-views.105f6ad2.js +2 -0
  130. package/dist/node/column-views.105f6ad2.js.map +1 -0
  131. package/dist/node/column-views.1261be59.js +2 -0
  132. package/dist/node/column-views.1261be59.js.map +1 -0
  133. package/dist/node/{column-views.4381c411.js → column-views.13e69859.js} +2 -2
  134. package/dist/node/{column-views.4381c411.js.map → column-views.13e69859.js.map} +1 -1
  135. package/dist/node/column-views.16f336ee.js +2 -0
  136. package/dist/node/column-views.16f336ee.js.map +1 -0
  137. package/dist/node/{column-views.c18d5bf5.js → column-views.1a7f8afd.js} +2 -2
  138. package/dist/node/{column-views.c18d5bf5.js.map → column-views.1a7f8afd.js.map} +1 -1
  139. package/dist/node/column-views.29eb25bd.css +2 -0
  140. package/dist/node/column-views.29eb25bd.css.map +1 -0
  141. package/dist/node/column-views.2bd97c2e.js +2 -0
  142. package/dist/node/column-views.2bd97c2e.js.map +1 -0
  143. package/dist/node/column-views.3b37363f.js +2 -0
  144. package/dist/node/column-views.3b37363f.js.map +1 -0
  145. package/dist/node/column-views.45296250.js +2 -0
  146. package/dist/node/column-views.45296250.js.map +1 -0
  147. package/dist/node/{column-views.0cbd4a3f.js → column-views.48a3cfa3.js} +2 -2
  148. package/dist/node/{column-views.0cbd4a3f.js.map → column-views.48a3cfa3.js.map} +1 -1
  149. package/dist/node/{column-views.42db0bb8.js → column-views.492c2c72.js} +2 -2
  150. package/dist/node/{column-views.42db0bb8.js.map → column-views.492c2c72.js.map} +1 -1
  151. package/dist/node/column-views.50a992d3.css +2 -0
  152. package/dist/node/column-views.50a992d3.css.map +1 -0
  153. package/dist/node/column-views.573cb29d.js +2 -0
  154. package/dist/node/column-views.573cb29d.js.map +1 -0
  155. package/dist/node/column-views.576e3c5a.js +2 -0
  156. package/dist/node/column-views.576e3c5a.js.map +1 -0
  157. package/dist/node/column-views.5f3b0b04.js +2 -0
  158. package/dist/node/column-views.5f3b0b04.js.map +1 -0
  159. package/dist/node/column-views.6fd5a922.js +2 -0
  160. package/dist/node/column-views.6fd5a922.js.map +1 -0
  161. package/dist/node/column-views.7150ba18.js +2 -0
  162. package/dist/node/column-views.7150ba18.js.map +1 -0
  163. package/dist/node/column-views.728c8dfc.js +2 -0
  164. package/dist/node/column-views.728c8dfc.js.map +1 -0
  165. package/dist/node/column-views.7425d37b.js +2 -0
  166. package/dist/node/column-views.7425d37b.js.map +1 -0
  167. package/dist/node/{column-views.2e4e357d.js → column-views.75582658.js} +2 -2
  168. package/dist/node/{column-views.2e4e357d.js.map → column-views.75582658.js.map} +1 -1
  169. package/dist/node/column-views.77ace3a2.js +2 -0
  170. package/dist/node/column-views.77ace3a2.js.map +1 -0
  171. package/dist/node/column-views.7f9c7448.js +2 -0
  172. package/dist/node/column-views.7f9c7448.js.map +1 -0
  173. package/dist/node/{column-views.a2274834.js → column-views.81294fb7.js} +2 -2
  174. package/dist/node/{column-views.a2274834.js.map → column-views.81294fb7.js.map} +1 -1
  175. package/dist/node/column-views.827a9894.js +2 -0
  176. package/dist/node/column-views.827a9894.js.map +1 -0
  177. package/dist/node/column-views.87b1439e.js +2 -0
  178. package/dist/node/column-views.87b1439e.js.map +1 -0
  179. package/dist/node/{column-views.e4f18ff7.js → column-views.9dda582d.js} +2 -2
  180. package/dist/node/{column-views.e4f18ff7.js.map → column-views.9dda582d.js.map} +1 -1
  181. package/dist/node/column-views.9e155f20.js +2 -0
  182. package/dist/node/column-views.9e155f20.js.map +1 -0
  183. package/dist/node/column-views.a16cd1f2.js +2 -0
  184. package/dist/node/column-views.a16cd1f2.js.map +1 -0
  185. package/dist/node/{column-views.adf9e5b3.js → column-views.a34732e7.js} +2 -2
  186. package/dist/node/{column-views.adf9e5b3.js.map → column-views.a34732e7.js.map} +1 -1
  187. package/dist/node/{column-views.f17b6142.js → column-views.a396d3ac.js} +2 -2
  188. package/dist/node/{column-views.f17b6142.js.map → column-views.a396d3ac.js.map} +1 -1
  189. package/dist/node/column-views.aae09aca.js +2 -0
  190. package/dist/node/column-views.aae09aca.js.map +1 -0
  191. package/dist/node/{column-views.db5d74bd.js → column-views.ac1b58b7.js} +2 -2
  192. package/dist/node/{column-views.db5d74bd.js.map → column-views.ac1b58b7.js.map} +1 -1
  193. package/dist/node/column-views.aef76eee.js +2 -0
  194. package/dist/node/column-views.aef76eee.js.map +1 -0
  195. package/dist/node/column-views.b64cd0ea.js +2 -0
  196. package/dist/node/column-views.b64cd0ea.js.map +1 -0
  197. package/dist/node/column-views.b6cd4360.js +2 -0
  198. package/dist/node/column-views.b6cd4360.js.map +1 -0
  199. package/dist/node/column-views.c0be1157.js +2 -0
  200. package/dist/node/column-views.c0be1157.js.map +1 -0
  201. package/dist/node/column-views.c29e9eb8.js +2 -0
  202. package/dist/node/column-views.c29e9eb8.js.map +1 -0
  203. package/dist/node/column-views.c8df6435.js +2 -0
  204. package/dist/node/column-views.c8df6435.js.map +1 -0
  205. package/dist/node/column-views.cd2a5c85.js +2 -0
  206. package/dist/node/column-views.cd2a5c85.js.map +1 -0
  207. package/dist/node/{column-views.3d220e0c.js → column-views.cd77a1d8.js} +2 -2
  208. package/dist/node/{column-views.3d220e0c.js.map → column-views.cd77a1d8.js.map} +1 -1
  209. package/dist/node/column-views.cd7b223b.css +2 -0
  210. package/dist/node/column-views.cd7b223b.css.map +1 -0
  211. package/dist/node/column-views.cf2a78c1.js +2 -0
  212. package/dist/node/column-views.cf2a78c1.js.map +1 -0
  213. package/dist/node/{column-views.c7f6fc0a.js → column-views.d529d3aa.js} +2 -2
  214. package/dist/node/{column-views.c7f6fc0a.js.map → column-views.d529d3aa.js.map} +1 -1
  215. package/dist/node/{column-views.7010a03b.js → column-views.dd972321.js} +2 -2
  216. package/dist/node/{column-views.7010a03b.js.map → column-views.dd972321.js.map} +1 -1
  217. package/dist/node/column-views.e065152e.js +2 -0
  218. package/dist/node/column-views.e065152e.js.map +1 -0
  219. package/dist/node/{column-views.6c7a40e0.js → column-views.e08f8715.js} +2 -2
  220. package/dist/node/{column-views.6c7a40e0.js.map → column-views.e08f8715.js.map} +1 -1
  221. package/dist/node/{column-views.507635e2.js → column-views.e0d9865e.js} +2 -2
  222. package/dist/node/column-views.e0d9865e.js.map +1 -0
  223. package/dist/node/column-views.e2562224.js +2 -0
  224. package/dist/node/column-views.e2562224.js.map +1 -0
  225. package/dist/node/column-views.e803e4ae.css +2 -0
  226. package/dist/node/column-views.e803e4ae.css.map +1 -0
  227. package/dist/node/column-views.edb4ba54.js +2 -0
  228. package/dist/node/column-views.edb4ba54.js.map +1 -0
  229. package/dist/node/index.js +1 -1
  230. package/dist/node/index.js.map +1 -1
  231. package/package.json +14 -14
  232. package/src/age-axis.module.sass +4 -2
  233. package/src/age-axis.ts +49 -15
  234. package/src/age-model-overlay.ts +22 -1
  235. package/src/column.module.sass +32 -9
  236. package/src/column.ts +91 -19
  237. package/src/correlation-chart/main.ts +10 -2
  238. package/src/correlation-chart/prepare-data.ts +7 -4
  239. package/src/correlation-chart/stories/correlation-chart.stories.ts +26 -1
  240. package/src/data-provider/base.ts +33 -25
  241. package/src/data-provider/fetch.ts +10 -3
  242. package/src/data-provider/store.ts +16 -10
  243. package/src/facets/base-sample-column.module.sass +14 -0
  244. package/src/facets/base-sample-column.ts +114 -0
  245. package/src/facets/detrital-zircon/index.ts +31 -63
  246. package/src/facets/fossils/index.module.sass +43 -13
  247. package/src/facets/fossils/index.ts +246 -80
  248. package/src/facets/fossils/provider.ts +121 -25
  249. package/src/facets/index.ts +2 -0
  250. package/src/facets/measurements/index.ts +38 -0
  251. package/src/facets/measurements/provider.ts +80 -0
  252. package/src/prepare-units/composite-scale.ts +183 -155
  253. package/src/prepare-units/dynamic-scales.ts +298 -0
  254. package/src/prepare-units/helpers.ts +99 -87
  255. package/src/prepare-units/index.ts +77 -51
  256. package/src/prepare-units/types.ts +138 -0
  257. package/src/prepare-units/utils.ts +29 -1
  258. package/src/section.ts +46 -9
  259. package/src/unit-details/panel.module.sass +8 -1
  260. package/src/unit-details/panel.ts +123 -53
  261. package/src/unit-details/popover.ts +5 -0
  262. package/src/units/boxes.ts +2 -69
  263. package/src/units/composite.ts +3 -49
  264. package/src/units/selection.ts +21 -7
  265. package/dist/esm/column-views.07db2ab1.js.map +0 -1
  266. package/dist/esm/column-views.0e06c069.js.map +0 -1
  267. package/dist/esm/column-views.1c92b88f.js +0 -16
  268. package/dist/esm/column-views.1c92b88f.js.map +0 -1
  269. package/dist/esm/column-views.1e055ed5.js.map +0 -1
  270. package/dist/esm/column-views.2e0ff311.js.map +0 -1
  271. package/dist/esm/column-views.3048acc1.js +0 -66
  272. package/dist/esm/column-views.3048acc1.js.map +0 -1
  273. package/dist/esm/column-views.34a1ac4f.js.map +0 -1
  274. package/dist/esm/column-views.3729c372.js +0 -13
  275. package/dist/esm/column-views.39657bbf.js.map +0 -1
  276. package/dist/esm/column-views.3b637517.js.map +0 -1
  277. package/dist/esm/column-views.3f246167.js.map +0 -1
  278. package/dist/esm/column-views.4ab0ec82.js.map +0 -1
  279. package/dist/esm/column-views.4d22c21c.js.map +0 -1
  280. package/dist/esm/column-views.57636733.css.map +0 -1
  281. package/dist/esm/column-views.60dc6bfc.js +0 -108
  282. package/dist/esm/column-views.60dc6bfc.js.map +0 -1
  283. package/dist/esm/column-views.64a84c43.js.map +0 -1
  284. package/dist/esm/column-views.6d5e3098.js +0 -11
  285. package/dist/esm/column-views.9771145a.js.map +0 -1
  286. package/dist/esm/column-views.9892f825.js.map +0 -1
  287. package/dist/esm/column-views.a23b2c92.js.map +0 -1
  288. package/dist/esm/column-views.a2cf8f33.js.map +0 -1
  289. package/dist/esm/column-views.abe90091.js.map +0 -1
  290. package/dist/esm/column-views.b12a6374.css.map +0 -1
  291. package/dist/esm/column-views.b17f793f.css.map +0 -1
  292. package/dist/esm/column-views.b72918ce.css.map +0 -1
  293. package/dist/esm/column-views.c71c321c.js +0 -104
  294. package/dist/esm/column-views.c71c321c.js.map +0 -1
  295. package/dist/esm/column-views.cdadc5c2.js.map +0 -1
  296. package/dist/esm/column-views.d48cb0d8.js.map +0 -1
  297. package/dist/esm/column-views.f08929e2.js.map +0 -1
  298. package/dist/esm/column-views.ff031876.js.map +0 -1
  299. package/dist/node/column-views.0bb1ec93.js +0 -2
  300. package/dist/node/column-views.0bb1ec93.js.map +0 -1
  301. package/dist/node/column-views.13c4ea85.js +0 -2
  302. package/dist/node/column-views.13c4ea85.js.map +0 -1
  303. package/dist/node/column-views.1a0b56fc.js +0 -2
  304. package/dist/node/column-views.1a0b56fc.js.map +0 -1
  305. package/dist/node/column-views.226d0bdb.js +0 -2
  306. package/dist/node/column-views.226d0bdb.js.map +0 -1
  307. package/dist/node/column-views.2926f656.css +0 -2
  308. package/dist/node/column-views.2926f656.css.map +0 -1
  309. package/dist/node/column-views.2ab1c2f8.js +0 -2
  310. package/dist/node/column-views.2ab1c2f8.js.map +0 -1
  311. package/dist/node/column-views.3345cd7a.js +0 -2
  312. package/dist/node/column-views.3345cd7a.js.map +0 -1
  313. package/dist/node/column-views.33752461.js +0 -2
  314. package/dist/node/column-views.33752461.js.map +0 -1
  315. package/dist/node/column-views.372bbee2.js +0 -2
  316. package/dist/node/column-views.372bbee2.js.map +0 -1
  317. package/dist/node/column-views.38357d4a.js +0 -2
  318. package/dist/node/column-views.38357d4a.js.map +0 -1
  319. package/dist/node/column-views.3a55ecd7.css.map +0 -1
  320. package/dist/node/column-views.3eeac38d.js +0 -2
  321. package/dist/node/column-views.3eeac38d.js.map +0 -1
  322. package/dist/node/column-views.3f032518.js +0 -2
  323. package/dist/node/column-views.3f032518.js.map +0 -1
  324. package/dist/node/column-views.45168c80.js +0 -2
  325. package/dist/node/column-views.45168c80.js.map +0 -1
  326. package/dist/node/column-views.507635e2.js.map +0 -1
  327. package/dist/node/column-views.556e8f69.js +0 -2
  328. package/dist/node/column-views.556e8f69.js.map +0 -1
  329. package/dist/node/column-views.5f05b73f.js +0 -2
  330. package/dist/node/column-views.5f05b73f.js.map +0 -1
  331. package/dist/node/column-views.6ae7bb69.js +0 -2
  332. package/dist/node/column-views.6ae7bb69.js.map +0 -1
  333. package/dist/node/column-views.755f726e.js +0 -2
  334. package/dist/node/column-views.755f726e.js.map +0 -1
  335. package/dist/node/column-views.75b0a8f8.js +0 -2
  336. package/dist/node/column-views.75b0a8f8.js.map +0 -1
  337. package/dist/node/column-views.78d3f3c5.js +0 -2
  338. package/dist/node/column-views.78d3f3c5.js.map +0 -1
  339. package/dist/node/column-views.8cfed88b.js +0 -2
  340. package/dist/node/column-views.8cfed88b.js.map +0 -1
  341. package/dist/node/column-views.99fb74c0.js +0 -2
  342. package/dist/node/column-views.99fb74c0.js.map +0 -1
  343. package/dist/node/column-views.a501cea0.js +0 -2
  344. package/dist/node/column-views.a501cea0.js.map +0 -1
  345. package/dist/node/column-views.af275c48.js +0 -2
  346. package/dist/node/column-views.af275c48.js.map +0 -1
  347. package/dist/node/column-views.afbf351c.js +0 -2
  348. package/dist/node/column-views.afbf351c.js.map +0 -1
  349. package/dist/node/column-views.b180e8c9.js +0 -2
  350. package/dist/node/column-views.b180e8c9.js.map +0 -1
  351. package/dist/node/column-views.cd468adb.css +0 -2
  352. package/dist/node/column-views.cd468adb.css.map +0 -1
  353. package/dist/node/column-views.d6708353.js +0 -2
  354. package/dist/node/column-views.d6708353.js.map +0 -1
  355. package/dist/node/column-views.e1a43131.css +0 -2
  356. package/dist/node/column-views.e1a43131.css.map +0 -1
  357. package/dist/node/column-views.e9515ec1.js +0 -2
  358. package/dist/node/column-views.e9515ec1.js.map +0 -1
  359. package/dist/node/column-views.f15a6ed4.js +0 -2
  360. package/dist/node/column-views.f15a6ed4.js.map +0 -1
  361. package/dist/node/column-views.fc05616e.js +0 -2
  362. package/dist/node/column-views.fc05616e.js.map +0 -1
@@ -33,6 +33,12 @@ body:global(.dark-mode) .column-container
33
33
  svg pattern image
34
34
  filter: invert(100%)
35
35
 
36
+ .column-container
37
+ padding-top: var(--column-padding-top)
38
+ padding-bottom: var(--column-padding-bottom)
39
+ padding-left: var(--column-padding-left)
40
+ padding-right: var(--column-padding-right)
41
+
36
42
  .column-container :global
37
43
  .column
38
44
  display: flex
@@ -40,6 +46,9 @@ body:global(.dark-mode) .column-container
40
46
  position: relative
41
47
  height: fit-content
42
48
 
49
+ g.lithology-column .column-clip-frame
50
+ stroke: none
51
+
43
52
  .unit
44
53
  stroke: var(--column-stroke-color)
45
54
  stroke-width: 1px
@@ -108,30 +117,44 @@ body:global(.dark-mode) .column-container
108
117
 
109
118
 
110
119
  .unconformity
111
- text-align: center
112
120
  position: absolute
121
+ font-family: var(--label-font-family, sans-serif)
113
122
  top: 0px
114
- display: flex
115
- justify-content: center
116
- align-items: center
123
+ //font-size: 12px
124
+ font-weight: 400
125
+
117
126
  font-size: 0.8em
118
127
  &.giga
119
128
  font-weight: 800
120
- font-size: 1em
129
+ //font-size: 1em
121
130
  &.mega
122
- font-weight: 600
123
131
  font-weight: 700
124
- font-size: 0.9em
132
+ //font-size: 0.9em
125
133
  &.large
126
- font-weight: 600
134
+ font-weight: 500
127
135
  &.small
128
136
  font-weight: 300
137
+ --unit-font-weight: 400
129
138
 
139
+ .unconformity-inner
140
+ //border-left: 1.5px dotted var(--secondary-color)
141
+ position: absolute
142
+ top: 5px
143
+ bottom: 5px
144
+ left: -3px
145
+ right: -2px
146
+ display: flex
147
+ justify-content: center
148
+ align-items: center
149
+ text-align: center
130
150
 
131
151
  .unconformity-text
132
152
  width: var(--column-width)
133
- color: var(--column-stroke-color)
134
153
  --unit-font-style: normal
154
+ .prefix
155
+ font-weight: 400
156
+ color: var(--secondary-color)
157
+
135
158
 
136
159
 
137
160
  .column-title-row
package/src/column.ts CHANGED
@@ -1,8 +1,20 @@
1
1
  import { ColumnAxisType } from "@macrostrat/column-components";
2
2
  import { hyperStyled } from "@macrostrat/hyper";
3
- import { useDarkMode } from "@macrostrat/ui-components";
3
+ import {
4
+ Box,
5
+ extractPadding,
6
+ Padding,
7
+ useDarkMode,
8
+ } from "@macrostrat/ui-components";
4
9
  import classNames from "classnames";
5
- import { RefObject, useRef, HTMLAttributes, useCallback } from "react";
10
+ import {
11
+ RefObject,
12
+ useRef,
13
+ HTMLAttributes,
14
+ useCallback,
15
+ CSSProperties,
16
+ ComponentType,
17
+ } from "react";
6
18
  import styles from "./column.module.sass";
7
19
  import {
8
20
  UnitSelectionProvider,
@@ -11,7 +23,6 @@ import {
11
23
  useUnitSelectionDispatch,
12
24
  } from "./units";
13
25
 
14
- import { ColumnHeightScaleOptions } from "./prepare-units/composite-scale";
15
26
  import {
16
27
  Identifier,
17
28
  ReferencesField,
@@ -27,11 +38,17 @@ import {
27
38
  CompositeTimescale,
28
39
  SectionsColumn,
29
40
  } from "./section";
30
- import { CompositeAgeAxis } from "./age-axis";
31
- import { MergeSectionsMode, usePreparedColumnUnits } from "./prepare-units";
41
+ import { ApproximateHeightAxis, CompositeAgeAxis } from "./age-axis";
42
+ import {
43
+ MergeSectionsMode,
44
+ usePreparedColumnUnits,
45
+ HybridScaleType,
46
+ ColumnHeightScaleOptions,
47
+ } from "./prepare-units";
32
48
  import { UnitLong } from "@macrostrat/api-types";
33
49
  import { NonIdealState } from "@blueprintjs/core";
34
50
  import { DataField } from "@macrostrat/data-components";
51
+ import { ScaleContinuousNumeric } from "d3-scale";
35
52
 
36
53
  const h = hyperStyled(styles);
37
54
 
@@ -51,11 +68,14 @@ interface BaseColumnProps extends SectionSharedProps {
51
68
  ) => void;
52
69
  }
53
70
 
54
- export interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {
71
+ export interface ColumnProps
72
+ extends Padding, BaseColumnProps, ColumnHeightScaleOptions {
55
73
  // Macrostrat units
56
74
  units: UnitLong[];
57
75
  t_age?: number;
58
76
  b_age?: number;
77
+ t_pos?: number;
78
+ b_pos?: number;
59
79
  mergeSections?: MergeSectionsMode;
60
80
  showUnitPopover?: boolean;
61
81
  allowUnitSelection?: boolean;
@@ -63,6 +83,7 @@ export interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {
63
83
  onUnitSelected?: (unitID: number | null, unit: any) => void;
64
84
  // Unconformity height in pixels
65
85
  unconformityHeight?: number;
86
+ scale?: ScaleContinuousNumeric<number, number>;
66
87
  }
67
88
 
68
89
  export function Column(props: ColumnProps) {
@@ -77,6 +98,8 @@ export function Column(props: ColumnProps) {
77
98
  axisType = ColumnAxisType.AGE,
78
99
  t_age,
79
100
  b_age,
101
+ t_pos,
102
+ b_pos,
80
103
  unconformityHeight = 30,
81
104
  targetUnitHeight = 20,
82
105
  pixelScale,
@@ -84,22 +107,40 @@ export function Column(props: ColumnProps) {
84
107
  minSectionHeight = 50,
85
108
  collapseSmallUnconformities = true,
86
109
  allowUnitSelection,
110
+ hybridScale,
111
+ scale,
87
112
  ...rest
88
113
  } = props;
89
114
  const ref = useRef<HTMLElement>();
90
115
  // Selected item position
91
116
 
117
+ /* Make pixelScale and targetUnitHeight mutually exclusive. PixelScale implies
118
+ * standardization of scales in all sections */
119
+ let _targetUnitHeight = targetUnitHeight;
120
+ let _minSectionHeight = minSectionHeight;
121
+ let _minPixelScale = minPixelScale;
122
+ if (pixelScale != null) {
123
+ _targetUnitHeight = null;
124
+ _minSectionHeight = 0;
125
+ _minPixelScale = pixelScale;
126
+ }
127
+
92
128
  const { sections, units, totalHeight } = usePreparedColumnUnits(rawUnits, {
93
129
  axisType,
94
130
  t_age,
95
131
  b_age,
132
+ t_pos,
133
+ b_pos,
96
134
  mergeSections,
97
- targetUnitHeight,
135
+ targetUnitHeight: _targetUnitHeight,
98
136
  unconformityHeight,
99
137
  pixelScale,
100
- minPixelScale,
101
- minSectionHeight,
138
+ minPixelScale: _minPixelScale,
139
+ minSectionHeight: _minSectionHeight,
102
140
  collapseSmallUnconformities,
141
+ // TODO: consider unifying scale and hybridScale options
142
+ scale,
143
+ hybridScale,
103
144
  });
104
145
 
105
146
  if (sections.length === 0) {
@@ -113,11 +154,24 @@ export function Column(props: ColumnProps) {
113
154
  );
114
155
  }
115
156
 
116
- let main: any = h(ColumnInner, { columnRef: ref, ...rest }, [
117
- children,
118
- h.if(showUnitPopover)(UnitSelectionPopover),
119
- h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),
120
- ]);
157
+ let ageAxisComponent = CompositeAgeAxis;
158
+ if (
159
+ hybridScale?.type === HybridScaleType.ApproximateHeight &&
160
+ axisType != ColumnAxisType.AGE
161
+ ) {
162
+ // Use approximate height axis for non-age columns if a non-age axis type is requested
163
+ ageAxisComponent = ApproximateHeightAxis;
164
+ }
165
+
166
+ let main: any = h(
167
+ ColumnInner,
168
+ { columnRef: ref, ageAxisComponent, ...rest },
169
+ [
170
+ children,
171
+ h.if(showUnitPopover)(UnitSelectionPopover),
172
+ h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),
173
+ ],
174
+ );
121
175
 
122
176
  /* By default, unit selection is disabled. However, if any related props are passed,
123
177
  we enable it.
@@ -149,9 +203,20 @@ export function Column(props: ColumnProps) {
149
203
 
150
204
  interface ColumnInnerProps extends BaseColumnProps {
151
205
  columnRef: RefObject<HTMLElement>;
206
+ ageAxisComponent?: ComponentType;
152
207
  }
153
208
 
154
209
  function ColumnInner(props: ColumnInnerProps) {
210
+ const padding = extractPadding(props);
211
+
212
+ // TODO: integrate padding vars more closely with the rest of the spacing (right now padding is a bit ad-hoc)
213
+ const paddingVars: any = {
214
+ "--column-padding-top": `${padding.paddingTop}px`,
215
+ "--column-padding-bottom": `${padding.paddingBottom}px`,
216
+ "--column-padding-left": `${padding.paddingLeft}px`,
217
+ "--column-padding-right": `${padding.paddingRight}px`,
218
+ };
219
+
155
220
  const {
156
221
  unitComponent = UnitComponent,
157
222
  unconformityLabels = true,
@@ -167,6 +232,7 @@ function ColumnInner(props: ColumnInnerProps) {
167
232
  timescaleLevels,
168
233
  maxInternalColumns,
169
234
  onMouseOver,
235
+ ageAxisComponent = CompositeAgeAxis,
170
236
  } = props;
171
237
 
172
238
  const { axisType } = useMacrostratColumnData();
@@ -191,10 +257,11 @@ function ColumnInner(props: ColumnInnerProps) {
191
257
  ColumnContainer,
192
258
  {
193
259
  ...useMouseEventHandlers(onMouseOver),
260
+ style: paddingVars,
194
261
  className,
195
262
  },
196
263
  h("div.column", { ref: columnRef }, [
197
- h(CompositeAgeAxis),
264
+ h(ageAxisComponent),
198
265
  h.if(_showTimescale)(CompositeTimescale, { levels: timescaleLevels }),
199
266
  h(SectionsColumn, {
200
267
  unitComponent,
@@ -262,16 +329,21 @@ function useMouseEventHandlers(
262
329
 
263
330
  export interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {
264
331
  className?: string;
332
+ style?: CSSProperties;
265
333
  }
266
334
 
267
335
  export function ColumnContainer(props: ColumnContainerProps) {
268
336
  const { className, ...rest } = props;
269
337
  const darkMode = useDarkMode();
270
338
 
271
- return h("div.column-container", {
272
- className: classNames(className, {
273
- "dark-mode": darkMode?.isEnabled ?? false,
274
- }),
339
+ return h(Box, {
340
+ className: classNames(
341
+ className,
342
+ {
343
+ "dark-mode": darkMode?.isEnabled ?? false,
344
+ },
345
+ "column-container",
346
+ ),
275
347
  ...rest,
276
348
  });
277
349
  }
@@ -29,10 +29,11 @@ import {
29
29
  } from "@macrostrat/column-components";
30
30
  import { ColoredUnitComponent } from "../units";
31
31
  import { UnitBoxes } from "../units/boxes";
32
- import { ExtUnit } from "../prepare-units/helpers";
33
32
  import { ColumnContainer } from "../column";
34
33
  import { ColumnData } from "../data-provider";
35
34
  import { BaseUnit } from "@macrostrat/api-types";
35
+ import { ScaleContinuousNumeric } from "d3-scale";
36
+ import { ExtUnit } from "../prepare-units/types";
36
37
 
37
38
  const h = hyper.styled(styles);
38
39
 
@@ -117,7 +118,8 @@ export function CorrelationChart({
117
118
  paddingH: 4,
118
119
  },
119
120
  packages.map((pkg, i) => {
120
- const { offset, domain, pixelScale, key } = scaleInfo.packages[i];
121
+ const { offset, domain, pixelScale, scale, key } =
122
+ scaleInfo.packages[i];
121
123
  return h(Package, {
122
124
  columnData: pkg.columnData,
123
125
  key,
@@ -126,6 +128,7 @@ export function CorrelationChart({
126
128
  offset,
127
129
  domain,
128
130
  pixelScale,
131
+ scale,
129
132
  unitComponent,
130
133
  });
131
134
  }),
@@ -147,6 +150,7 @@ function Package({
147
150
  offset,
148
151
  domain,
149
152
  pixelScale,
153
+ scale,
150
154
  }) {
151
155
  return h("g.package", { transform: `translate(0 ${offset})` }, [
152
156
  // Disable the SVG overlay for now
@@ -160,6 +164,7 @@ function Package({
160
164
  key: i,
161
165
  domain,
162
166
  pixelScale,
167
+ scale,
163
168
  offsetLeft: i * (columnWidth + columnSpacing),
164
169
  });
165
170
  }),
@@ -179,6 +184,7 @@ interface ColumnProps {
179
184
  offsetLeft?: number;
180
185
  domain: [number, number];
181
186
  pixelScale: number;
187
+ scale?: ScaleContinuousNumeric<number, number>;
182
188
  }
183
189
 
184
190
  function Column(props: ColumnProps) {
@@ -188,6 +194,7 @@ function Column(props: ColumnProps) {
188
194
  offsetLeft,
189
195
  domain,
190
196
  pixelScale,
197
+ scale,
191
198
  unitComponent = ColoredUnitComponent,
192
199
  } = props;
193
200
 
@@ -208,6 +215,7 @@ function Column(props: ColumnProps) {
208
215
  // Need to tighten up types here...
209
216
  divisions: units as any[],
210
217
  range: domain,
218
+ scale,
211
219
  pixelsPerMeter: pixelScale, // Actually pixels per myr
212
220
  axisType: ColumnAxisType.AGE,
213
221
  },
@@ -1,5 +1,4 @@
1
1
  import { CompositeStratigraphicScaleInfo } from "../age-axis";
2
- import { PackageLayoutData } from "../prepare-units/composite-scale";
3
2
  import { ColumnAxisType } from "@macrostrat/column-components";
4
3
  import { type ColumnGeoJSONRecord, UnitLong } from "@macrostrat/api-types";
5
4
  import {
@@ -9,6 +8,7 @@ import {
9
8
  preprocessUnits,
10
9
  } from "../prepare-units";
11
10
  import { mergeAgeRanges } from "@macrostrat/stratigraphy-utils";
11
+ import { PackageLayoutData } from "../prepare-units/types";
12
12
 
13
13
  export interface ColumnIdentifier {
14
14
  col_id: number;
@@ -21,8 +21,10 @@ interface ColumnData {
21
21
  units: UnitLong[];
22
22
  }
23
23
 
24
- export interface CorrelationChartSettings
25
- extends Omit<PrepareColumnOptions, "axisType"> {
24
+ export interface CorrelationChartSettings extends Omit<
25
+ PrepareColumnOptions,
26
+ "axisType"
27
+ > {
26
28
  targetUnitHeight?: number;
27
29
  }
28
30
 
@@ -52,6 +54,7 @@ export function buildCorrelationChartData(
52
54
  const opts: PrepareColumnOptions = {
53
55
  axisType: ColumnAxisType.AGE,
54
56
  targetUnitHeight,
57
+ mergeSections,
55
58
  ...rest,
56
59
  };
57
60
 
@@ -102,7 +105,7 @@ interface ColumnExt {
102
105
 
103
106
  interface MultiColumnPackageData {
104
107
  columnData: ColumnExt[];
105
- bestPixelScale: number;
108
+ bestPixelScale?: number;
106
109
  b_age: number;
107
110
  t_age: number;
108
111
  }
@@ -6,6 +6,7 @@ import {
6
6
  ColumnCorrelationMap,
7
7
  ColumnCorrelationProvider,
8
8
  fetchUnits,
9
+ MergeSectionsMode,
9
10
  useCorrelationMapStore,
10
11
  } from "@macrostrat/column-views";
11
12
  import { hyperStyled } from "@macrostrat/hyper";
@@ -16,6 +17,7 @@ import { ErrorBoundary, useAsyncMemo } from "@macrostrat/ui-components";
16
17
  import { OverlaysProvider } from "@blueprintjs/core";
17
18
  import { parseLineFromString, stringifyLine } from "../hash-string";
18
19
  import { EnvironmentColoredUnitComponent } from "../../units";
20
+ import { scaleLinear, scalePow } from "d3-scale";
19
21
 
20
22
  const mapboxToken = import.meta.env.VITE_MAPBOX_API_TOKEN;
21
23
 
@@ -96,7 +98,7 @@ export default {
96
98
  focusedLine: "-100,45 -90,50",
97
99
  columnSpacing: 0,
98
100
  columnWidth: 100,
99
- collapseSmallUnconformities: false,
101
+ collapseSmallUnconformities: true,
100
102
  targetUnitHeight: 20,
101
103
  },
102
104
  argTypes: {
@@ -196,3 +198,26 @@ export const ColoredByEnvironment = Template.bind({});
196
198
  ColoredByEnvironment.args = {
197
199
  unitComponent: EnvironmentColoredUnitComponent,
198
200
  };
201
+
202
+ export const RestrictedAgeRange = Template.bind({});
203
+ RestrictedAgeRange.args = {
204
+ t_age: 100,
205
+ b_age: 300,
206
+ focusedLine: "-114.29,42.74 -104.59,39.21",
207
+ };
208
+
209
+ export const WithFixedScale = Template.bind({});
210
+ WithFixedScale.args = {
211
+ scale: scaleLinear().domain([0, 2500]).range([0, 1000]),
212
+ };
213
+
214
+ export const WithPowerScale = Template.bind({});
215
+ WithPowerScale.args = {
216
+ scale: scalePow().exponent(0.3).domain([0, 2500]).range([0, 1000]),
217
+ };
218
+
219
+ export const WithPowerScaleMerged = Template.bind({});
220
+ WithPowerScaleMerged.args = {
221
+ scale: scalePow().exponent(0.3).domain([0, 2500]).range([0, 1000]),
222
+ mergeSections: MergeSectionsMode.ALL,
223
+ };
@@ -9,6 +9,7 @@ import {
9
9
  Environment,
10
10
  MacrostratRef,
11
11
  StratName,
12
+ Interval,
12
13
  } from "@macrostrat/api-types";
13
14
  import {
14
15
  fetchAllColumns,
@@ -49,7 +50,10 @@ interface MacrostratStore extends RefsSlice {
49
50
  lithologies: Map<number, any> | null;
50
51
  getLithologies(ids: number[] | null): Promise<any>;
51
52
  intervals: Map<number, any> | null;
52
- getIntervals(ids: number[] | null, timescaleID: number | null): Promise<any>;
53
+ getIntervals(
54
+ ids: number[] | null,
55
+ timescaleID: number | null,
56
+ ): Promise<Interval[]>;
53
57
  environments: Map<number, Environment> | null;
54
58
  getEnvironments(ids: number[] | null): Promise<Environment[]>;
55
59
  columnFootprints: Map<number, ColumnFootprintsStorage>;
@@ -121,35 +125,22 @@ function createColumnsSlice(set, get) {
121
125
  const { columnFootprints, baseURL, fetch } = get();
122
126
  const key = projectID ?? -1;
123
127
  let _inProcess = inProcess;
124
- if (projectID == null) {
125
- // If no project is specified, in process columns cannot be included
126
- _inProcess = false;
127
- }
128
+
128
129
  let footprints = columnFootprints.get(key);
129
130
  if (footprints == null || footprints.inProcess != _inProcess) {
130
131
  // Fetch the columns
131
- const statusCode = inProcess ? "in process" : null;
132
- let columns = await fetchAllColumns({
132
+ const statusCode: ColumnStatusCode[] = ["active"];
133
+ if (_inProcess) {
134
+ statusCode.push("in process");
135
+ }
136
+ const columns = await fetchAllColumns({
133
137
  projectID,
134
- statusCode: null,
138
+ statusCode,
135
139
  fetch,
136
140
  });
137
141
  if (columns == null) {
138
142
  return;
139
143
  }
140
- if (_inProcess) {
141
- const inProcessColumns = await fetchAllColumns({
142
- projectID,
143
- statusCode: "in process",
144
- fetch,
145
- });
146
- if (inProcessColumns == null) {
147
- return;
148
- }
149
- // Combine active and in-process columns
150
- columns = columns.concat(inProcessColumns);
151
- }
152
-
153
144
  footprints = {
154
145
  project_id: projectID,
155
146
  inProcess,
@@ -281,10 +272,21 @@ export function useMacrostratStore(selector: MacrostratSelector | "api") {
281
272
  if (selector === "api") {
282
273
  return ctx;
283
274
  }
284
-
285
275
  return useStore(ctx, selector);
286
276
  }
287
277
 
278
+ export function useMacrostratBaseURL(
279
+ defaultURL = "https://macrostrat.org/api/v2",
280
+ ): string {
281
+ /** Get the Macrostrat base URL from the store if set, otherwise return a default value */
282
+ const ctx = useContext(MacrostratDataProviderContext);
283
+ if (ctx == null) {
284
+ // Return default URL if no provider is present
285
+ return defaultURL;
286
+ }
287
+ return ctx.getState().baseURL;
288
+ }
289
+
288
290
  type DataTypeKey =
289
291
  | "lithologies"
290
292
  | "intervals"
@@ -363,7 +365,7 @@ export function useMacrostratData(dataType: DataTypeKey, ...args: any[]) {
363
365
  const MacrostratDataProviderContext = createContext(createMacrostratStore());
364
366
 
365
367
  export function MacrostratDataProvider(props: MacrostratDataProviderProps) {
366
- const { baseURL = "https://macrostrat.org/api/v2", children } = props;
368
+ const { baseURL = "https://dev.macrostrat.org/api/v2", children } = props;
367
369
 
368
370
  const [store] = useState(() => createMacrostratStore(baseURL));
369
371
 
@@ -407,10 +409,16 @@ export function MacrostratColumnProvider(props) {
407
409
  */
408
410
 
409
411
  const { axisType } = useMacrostratColumnData();
410
- const { units, domain, pixelScale, children } = props;
412
+ const { units, domain, pixelScale, scale, children } = props;
411
413
  return h(
412
414
  ColumnProvider,
413
- { axisType, divisions: units, range: domain, pixelsPerMeter: pixelScale },
415
+ {
416
+ axisType,
417
+ divisions: units,
418
+ range: domain,
419
+ pixelsPerMeter: pixelScale,
420
+ scale,
421
+ },
414
422
  children,
415
423
  );
416
424
  }
@@ -14,6 +14,7 @@ import {
14
14
  import crossFetch from "cross-fetch";
15
15
  import { feature } from "topojson-client";
16
16
  import { geoArea } from "d3-geo";
17
+ import _ from "underscore";
17
18
 
18
19
  function defaultFetch(
19
20
  url: string,
@@ -23,10 +24,12 @@ function defaultFetch(
23
24
  return crossFetch(baseURL + url, options);
24
25
  }
25
26
 
27
+ export type ColumnStatusCode = "in process" | "active" | "obsolete";
28
+
26
29
  export interface ColumnFetchOptions {
27
30
  apiBaseURL?: string;
28
31
  projectID?: number;
29
- statusCode?: "in process";
32
+ statusCode?: ColumnStatusCode | ColumnStatusCode[];
30
33
  format?: "geojson" | "topojson" | "geojson_bare";
31
34
  fetch?: any;
32
35
  }
@@ -46,9 +49,13 @@ export async function fetchAllColumns(
46
49
  if (projectID != null) {
47
50
  args = { ...args, project_id: projectID };
48
51
  }
49
- if (statusCode != null) {
50
- args = { ...args, status_code: statusCode };
52
+ let _statusCode: string | undefined = undefined;
53
+ if (Array.isArray(statusCode)) {
54
+ _statusCode = statusCode.join(",");
55
+ } else if (statusCode != null) {
56
+ _statusCode = statusCode;
51
57
  }
58
+ args.statusCode = _statusCode;
52
59
 
53
60
  if (projectID == null) {
54
61
  args = { ...args, all: true };
@@ -1,18 +1,11 @@
1
- import {
2
- createContext,
3
- useContext,
4
- ReactNode,
5
- useMemo,
6
- useEffect,
7
- } from "react";
1
+ import { createContext, ReactNode, useContext, useMemo } from "react";
8
2
  import h from "@macrostrat/hyper";
9
3
  import {
10
- createCompositeScale,
11
- PackageLayoutData,
12
4
  CompositeColumnScale,
5
+ createCompositeScale,
13
6
  } from "../prepare-units/composite-scale";
14
- import { ExtUnit } from "../prepare-units/helpers";
15
7
  import { ColumnAxisType } from "@macrostrat/column-components";
8
+ import type { ExtUnit, PackageLayoutData } from "../prepare-units";
16
9
 
17
10
  export interface MacrostratColumnDataContext {
18
11
  units: ExtUnit[];
@@ -43,6 +36,7 @@ export function MacrostratColumnDataProvider({
43
36
  * */
44
37
 
45
38
  const value = useMemo(() => {
39
+ // For now, change ordinal axis types to age axis types
46
40
  return {
47
41
  units,
48
42
  sections,
@@ -68,6 +62,18 @@ export function useMacrostratUnits() {
68
62
  return useMacrostratColumnData().units;
69
63
  }
70
64
 
65
+ export function useColumnUnitsMap(): Map<number, ExtUnit> | null {
66
+ const ctx = useContext(MacrostratColumnDataContext);
67
+ return useMemo(() => {
68
+ if (ctx == null) return null;
69
+ const unitMap = new Map<number, ExtUnit>();
70
+ ctx.units.forEach((unit) => {
71
+ unitMap.set(unit.unit_id, unit);
72
+ });
73
+ return unitMap;
74
+ }, [ctx?.units]);
75
+ }
76
+
71
77
  export function useCompositeScale(): CompositeColumnScale {
72
78
  const ctx = useMacrostratColumnData();
73
79
  return useMemo(
@@ -0,0 +1,14 @@
1
+ .truncated-list
2
+ padding-left: 0.2em
3
+ font-size: 0.9em
4
+ list-style: none
5
+ border-left: 1px solid var(--column-stroke-color)
6
+ margin: 1px 0
7
+ li
8
+ display: inline
9
+ &:not(:last-child):after
10
+ content: ", "
11
+ color: var(--secondary-color)
12
+ li.too-many
13
+ color: var(--secondary-color)
14
+ font-style: italic