@macrostrat/column-views 2.1.4 → 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 +7 -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.77b49a43.js → column-views.0859feb3.js} +52 -23
  7. package/dist/esm/column-views.0859feb3.js.map +1 -0
  8. package/dist/esm/{column-views.1f7fb650.js → column-views.0a8a07f4.js} +3 -3
  9. package/dist/esm/{column-views.1f7fb650.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.448c0687.css → column-views.1151416d.css} +5 -5
  13. package/dist/esm/column-views.1151416d.css.map +1 -0
  14. package/dist/esm/{column-views.676cb1d3.js → column-views.1b644998.js} +3 -3
  15. package/dist/esm/{column-views.676cb1d3.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.02f3732a.js → column-views.285cbb65.js} +40 -20
  19. package/dist/esm/column-views.285cbb65.js.map +1 -0
  20. package/dist/esm/{column-views.97d542eb.js → column-views.2d602a57.js} +4 -4
  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.78bd3f09.js → column-views.3e1b8c7d.js} +2 -2
  27. package/dist/esm/{column-views.78bd3f09.js.map → column-views.3e1b8c7d.js.map} +1 -1
  28. package/dist/esm/{column-views.42b89c52.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.769fa0ee.js → column-views.53186d53.js} +2 -2
  33. package/dist/esm/{column-views.769fa0ee.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.775846c9.js → column-views.5a49cd68.js} +8 -38
  41. package/dist/esm/column-views.5a49cd68.js.map +1 -0
  42. package/dist/esm/{column-views.f20eb583.js → column-views.5d969bc5.js} +4 -5
  43. package/dist/esm/column-views.5d969bc5.js.map +1 -0
  44. package/dist/esm/{column-views.243da806.js → column-views.63b7e5aa.js} +3 -3
  45. package/dist/esm/{column-views.243da806.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.7ca9e1cd.js → column-views.73b8ff16.js} +19 -21
  55. package/dist/esm/column-views.73b8ff16.js.map +1 -0
  56. package/dist/esm/{column-views.cc5244c4.js → column-views.77561197.js} +91 -55
  57. package/dist/esm/column-views.77561197.js.map +1 -0
  58. package/dist/esm/{column-views.e7ab5af0.js → column-views.83395185.js} +3 -3
  59. package/dist/esm/{column-views.e7ab5af0.js.map → column-views.83395185.js.map} +1 -1
  60. package/dist/esm/{column-views.8e3dec90.js → column-views.86a51ce7.js} +2 -2
  61. package/dist/esm/{column-views.8e3dec90.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.ab0380ed.js → column-views.8d24b179.js} +3 -3
  67. package/dist/esm/{column-views.ab0380ed.js.map → column-views.8d24b179.js.map} +1 -1
  68. package/dist/esm/{column-views.a6301a41.js → column-views.986e7566.js} +7 -7
  69. package/dist/esm/{column-views.a6301a41.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.2ff3dd8b.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.a195109e.js → column-views.ba0381cc.js} +2 -2
  79. package/dist/esm/{column-views.a195109e.js.map → column-views.ba0381cc.js.map} +1 -1
  80. package/dist/esm/{column-views.75ea6dbe.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.fbc7401f.js → column-views.d406665d.js} +5 -5
  91. package/dist/esm/{column-views.fbc7401f.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.547b2730.js → column-views.d9c6b527.js} +15 -12
  95. package/dist/esm/column-views.d9c6b527.js.map +1 -0
  96. package/dist/esm/{column-views.8d4ce558.css → column-views.e33ac5c9.css} +26 -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.38a305a0.js.map → column-views.e3bf5384.js.map} +1 -1
  100. package/dist/esm/{column-views.e3b9a317.js → column-views.e4c26185.js} +2 -2
  101. package/dist/esm/{column-views.e3b9a317.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.0a159282.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.935ef6f7.js → column-views.f46a0b36.js} +2 -2
  111. package/dist/esm/{column-views.935ef6f7.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 +217 -406
  115. package/dist/esm/index.d.ts.map +1 -1
  116. package/dist/esm/index.js +12 -12
  117. package/dist/node/{column-views.858b5cf4.js → column-views.01debc76.js} +2 -2
  118. package/dist/node/{column-views.858b5cf4.js.map → column-views.01debc76.js.map} +1 -1
  119. package/dist/node/{column-views.51bc87ca.js → column-views.040499c9.js} +2 -2
  120. package/dist/node/{column-views.51bc87ca.js.map → column-views.040499c9.js.map} +1 -1
  121. package/dist/node/{column-views.e3ba0594.js → column-views.07ff1fdf.js} +2 -2
  122. package/dist/node/{column-views.e3ba0594.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.45fab61b.js → column-views.13e69859.js} +2 -2
  134. package/dist/node/{column-views.45fab61b.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.58d2f993.js → column-views.1a7f8afd.js} +2 -2
  138. package/dist/node/{column-views.58d2f993.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.492b4917.js → column-views.9dda582d.js} +2 -2
  180. package/dist/node/{column-views.492b4917.js.map → column-views.9dda582d.js.map} +1 -1
  181. package/dist/node/{column-views.2a6b842d.js → column-views.9e155f20.js} +2 -2
  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.eeca917f.js → column-views.a34732e7.js} +2 -2
  186. package/dist/node/{column-views.eeca917f.js.map → column-views.a34732e7.js.map} +1 -1
  187. package/dist/node/{column-views.65f091ea.js → column-views.a396d3ac.js} +2 -2
  188. package/dist/node/{column-views.65f091ea.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.a372c943.js → column-views.ac1b58b7.js} +2 -2
  192. package/dist/node/{column-views.a372c943.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.2d957a97.js → column-views.b6cd4360.js} +2 -2
  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.df97f28e.js → column-views.cd77a1d8.js} +2 -2
  208. package/dist/node/{column-views.df97f28e.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.2ca669bc.js → column-views.e08f8715.js} +2 -2
  220. package/dist/node/{column-views.2ca669bc.js.map → column-views.e08f8715.js.map} +1 -1
  221. package/dist/node/{column-views.91043465.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 +13 -13
  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 +29 -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 +32 -24
  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 +232 -158
  248. package/src/facets/fossils/provider.ts +121 -25
  249. package/src/facets/index.ts +1 -0
  250. package/src/facets/measurements/index.ts +1 -2
  251. package/src/prepare-units/composite-scale.ts +183 -155
  252. package/src/prepare-units/dynamic-scales.ts +298 -0
  253. package/src/prepare-units/helpers.ts +99 -87
  254. package/src/prepare-units/index.ts +77 -51
  255. package/src/prepare-units/types.ts +138 -0
  256. package/src/prepare-units/utils.ts +29 -1
  257. package/src/section.ts +46 -9
  258. package/src/unit-details/panel.module.sass +8 -1
  259. package/src/unit-details/panel.ts +123 -53
  260. package/src/unit-details/popover.ts +5 -0
  261. package/src/units/boxes.ts +1 -5
  262. package/src/units/composite.ts +3 -49
  263. package/src/units/selection.ts +21 -7
  264. package/dist/esm/column-views.02f3732a.js.map +0 -1
  265. package/dist/esm/column-views.0a159282.js +0 -13
  266. package/dist/esm/column-views.1e055ed5.js.map +0 -1
  267. package/dist/esm/column-views.2ff3dd8b.js.map +0 -1
  268. package/dist/esm/column-views.3048acc1.js +0 -66
  269. package/dist/esm/column-views.3048acc1.js.map +0 -1
  270. package/dist/esm/column-views.38a305a0.js +0 -13
  271. package/dist/esm/column-views.39657bbf.js.map +0 -1
  272. package/dist/esm/column-views.3f246167.js.map +0 -1
  273. package/dist/esm/column-views.42b89c52.js.map +0 -1
  274. package/dist/esm/column-views.448c0687.css.map +0 -1
  275. package/dist/esm/column-views.4ab0ec82.js.map +0 -1
  276. package/dist/esm/column-views.4d22c21c.js.map +0 -1
  277. package/dist/esm/column-views.547b2730.js.map +0 -1
  278. package/dist/esm/column-views.64a84c43.js.map +0 -1
  279. package/dist/esm/column-views.75ea6dbe.js.map +0 -1
  280. package/dist/esm/column-views.775846c9.js.map +0 -1
  281. package/dist/esm/column-views.77b49a43.js.map +0 -1
  282. package/dist/esm/column-views.7ca9e1cd.js.map +0 -1
  283. package/dist/esm/column-views.8703a35b.js +0 -163
  284. package/dist/esm/column-views.8703a35b.js.map +0 -1
  285. package/dist/esm/column-views.8d4ce558.css.map +0 -1
  286. package/dist/esm/column-views.97d542eb.js.map +0 -1
  287. package/dist/esm/column-views.9892f825.js.map +0 -1
  288. package/dist/esm/column-views.b17f793f.css.map +0 -1
  289. package/dist/esm/column-views.b3c1eb9e.js +0 -16
  290. package/dist/esm/column-views.b3c1eb9e.js.map +0 -1
  291. package/dist/esm/column-views.b72918ce.css.map +0 -1
  292. package/dist/esm/column-views.c71c321c.js +0 -104
  293. package/dist/esm/column-views.c71c321c.js.map +0 -1
  294. package/dist/esm/column-views.cc5244c4.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.f20eb583.js.map +0 -1
  299. package/dist/node/column-views.085f4a51.js +0 -2
  300. package/dist/node/column-views.085f4a51.js.map +0 -1
  301. package/dist/node/column-views.0dfc7ef7.js +0 -2
  302. package/dist/node/column-views.0dfc7ef7.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.2926f656.css +0 -2
  306. package/dist/node/column-views.2926f656.css.map +0 -1
  307. package/dist/node/column-views.2a6b842d.js.map +0 -1
  308. package/dist/node/column-views.2d957a97.js.map +0 -1
  309. package/dist/node/column-views.307661d1.css +0 -2
  310. package/dist/node/column-views.307661d1.css.map +0 -1
  311. package/dist/node/column-views.33752461.js +0 -2
  312. package/dist/node/column-views.33752461.js.map +0 -1
  313. package/dist/node/column-views.38357d4a.js +0 -2
  314. package/dist/node/column-views.38357d4a.js.map +0 -1
  315. package/dist/node/column-views.3a55ecd7.css.map +0 -1
  316. package/dist/node/column-views.3eeac38d.js +0 -2
  317. package/dist/node/column-views.3eeac38d.js.map +0 -1
  318. package/dist/node/column-views.45168c80.js +0 -2
  319. package/dist/node/column-views.45168c80.js.map +0 -1
  320. package/dist/node/column-views.4ca62e5d.js +0 -2
  321. package/dist/node/column-views.4ca62e5d.js.map +0 -1
  322. package/dist/node/column-views.6ae7bb69.js +0 -2
  323. package/dist/node/column-views.6ae7bb69.js.map +0 -1
  324. package/dist/node/column-views.6f7a432f.js +0 -2
  325. package/dist/node/column-views.6f7a432f.js.map +0 -1
  326. package/dist/node/column-views.755f726e.js +0 -2
  327. package/dist/node/column-views.755f726e.js.map +0 -1
  328. package/dist/node/column-views.758b9bc1.js +0 -2
  329. package/dist/node/column-views.758b9bc1.js.map +0 -1
  330. package/dist/node/column-views.78d3f3c5.js +0 -2
  331. package/dist/node/column-views.78d3f3c5.js.map +0 -1
  332. package/dist/node/column-views.80fcf105.js +0 -2
  333. package/dist/node/column-views.80fcf105.js.map +0 -1
  334. package/dist/node/column-views.8cfed88b.js +0 -2
  335. package/dist/node/column-views.8cfed88b.js.map +0 -1
  336. package/dist/node/column-views.91043465.js.map +0 -1
  337. package/dist/node/column-views.976a829b.js +0 -2
  338. package/dist/node/column-views.976a829b.js.map +0 -1
  339. package/dist/node/column-views.99fb74c0.js +0 -2
  340. package/dist/node/column-views.99fb74c0.js.map +0 -1
  341. package/dist/node/column-views.9b7a9ae1.js +0 -2
  342. package/dist/node/column-views.9b7a9ae1.js.map +0 -1
  343. package/dist/node/column-views.9de31cdb.js +0 -2
  344. package/dist/node/column-views.9de31cdb.js.map +0 -1
  345. package/dist/node/column-views.a4e6d4ad.js +0 -2
  346. package/dist/node/column-views.a4e6d4ad.js.map +0 -1
  347. package/dist/node/column-views.a501cea0.js +0 -2
  348. package/dist/node/column-views.a501cea0.js.map +0 -1
  349. package/dist/node/column-views.a7256aa7.js +0 -2
  350. package/dist/node/column-views.a7256aa7.js.map +0 -1
  351. package/dist/node/column-views.c4b409e1.css +0 -2
  352. package/dist/node/column-views.c4b409e1.css.map +0 -1
  353. package/dist/node/column-views.cef1b814.js +0 -2
  354. package/dist/node/column-views.cef1b814.js.map +0 -1
  355. package/dist/node/column-views.d6708353.js +0 -2
  356. package/dist/node/column-views.d6708353.js.map +0 -1
  357. package/dist/node/column-views.d9add589.js +0 -2
  358. package/dist/node/column-views.d9add589.js.map +0 -1
  359. package/dist/node/column-views.dfb2361a.js +0 -2
  360. package/dist/node/column-views.dfb2361a.js.map +0 -1
  361. package/dist/node/column-views.e9515ec1.js +0 -2
  362. package/dist/node/column-views.e9515ec1.js.map +0 -1
@@ -14,8 +14,12 @@ import {
14
14
  Parenthetical,
15
15
  Value,
16
16
  } from "@macrostrat/data-components";
17
- import { useMacrostratData, useMacrostratDefs } from "../data-provider";
18
17
  import {
18
+ useColumnUnitsMap,
19
+ useMacrostratData,
20
+ useMacrostratDefs,
21
+ } from "../data-provider";
22
+ import type {
19
23
  Environment,
20
24
  UnitLong,
21
25
  UnitLongFull,
@@ -40,7 +44,8 @@ export function UnitDetailsPanel({
40
44
  ]),
41
45
  lithologyFeatures,
42
46
  actions,
43
- selectUnit,
47
+ hiddenActions = null,
48
+ onSelectUnit,
44
49
  columnUnits,
45
50
  onClickItem,
46
51
  }: {
@@ -49,10 +54,11 @@ export function UnitDetailsPanel({
49
54
  showLithologyProportions?: boolean;
50
55
  className?: string;
51
56
  actions?: ReactNode;
57
+ hiddenActions?: ReactNode;
52
58
  features?: Set<UnitDetailsFeature>;
53
59
  lithologyFeatures?: Set<LithologyTagFeature>;
54
60
  columnUnits?: UnitLong[];
55
- selectUnit?: (unitID: number) => void;
61
+ onSelectUnit?: (unitID: number) => void;
56
62
  onClickItem?: (item: any) => void;
57
63
  }) {
58
64
  const [showJSON, setShowJSON] = useState(false);
@@ -66,24 +72,27 @@ export function UnitDetailsPanel({
66
72
  features,
67
73
  lithologyFeatures,
68
74
  onClickItem,
75
+ onSelectUnit,
69
76
  });
70
77
  }
71
78
 
72
79
  let title = defaultNameFunction(unit);
73
80
 
74
- let hiddenActions = null;
75
81
  if (features.has(UnitDetailsFeature.JSONToggle)) {
76
- hiddenActions = h(Button, {
77
- icon: "code",
78
- small: true,
79
- minimal: true,
80
- key: "json-view-toggle",
81
- className: classNames("json-view-toggle", { enabled: setShowJSON }),
82
- onClick(evt) {
83
- setShowJSON(!showJSON);
84
- evt.stopPropagation();
85
- },
86
- });
82
+ hiddenActions = h([
83
+ h(Button, {
84
+ icon: "code",
85
+ small: true,
86
+ minimal: true,
87
+ key: "json-view-toggle",
88
+ className: classNames("json-view-toggle", { enabled: setShowJSON }),
89
+ onClick(evt) {
90
+ setShowJSON(!showJSON);
91
+ evt.stopPropagation();
92
+ },
93
+ }),
94
+ hiddenActions,
95
+ ]);
87
96
  }
88
97
 
89
98
  return h("div.unit-details-panel", { className }, [
@@ -114,15 +123,13 @@ export function LegendPanelHeader({
114
123
  return h("header.legend-panel-header", [
115
124
  h("div.title-container", [
116
125
  h.if(title != null)("h3", title),
117
- h.if(hiddenActions != null || id != null)(
126
+ h.if(hiddenActions != null)(
118
127
  "span.hidden-actions-container",
119
- h("div.hidden-actions", [
120
- h.if(id != null)("code.unit-id", id),
121
- h.if(hiddenActions != null)([hiddenActions]),
122
- ]),
128
+ h("div.hidden-actions", hiddenActions),
123
129
  ),
124
130
  ]),
125
131
  h("div.spacer"),
132
+ h.if(id != null)("code.unit-id", id),
126
133
  h.if(actions != null)(ButtonGroup, { minimal: true }, actions),
127
134
  h.if(onClose != null)(Button, {
128
135
  icon: "cross",
@@ -145,7 +152,7 @@ export enum UnitDetailsFeature {
145
152
 
146
153
  function UnitDetailsContent({
147
154
  unit,
148
- selectUnit,
155
+ onSelectUnit,
149
156
  columnUnits,
150
157
  lithologyFeatures = new Set([
151
158
  LithologyTagFeature.Proportion,
@@ -159,7 +166,7 @@ function UnitDetailsContent({
159
166
  getItemHref,
160
167
  }: {
161
168
  unit: UnitLong;
162
- selectUnit?: (unitID: number) => void;
169
+ onSelectUnit?: (unitID: number) => void;
163
170
  columnUnits?: UnitLong[];
164
171
  lithologyFeatures?: Set<LithologyTagFeature>;
165
172
  features?: Set<UnitDetailsFeature>;
@@ -269,12 +276,20 @@ function UnitDetailsContent({
269
276
  h(
270
277
  DataField,
271
278
  { label: "Above" },
272
- h(UnitIDList, { units: unit.units_above, selectUnit }),
279
+ h(UnitIDList, {
280
+ units: unit.units_above,
281
+ onSelectUnit,
282
+ showNames: true,
283
+ }),
273
284
  ),
274
285
  h(
275
286
  DataField,
276
287
  { label: "Below" },
277
- h(UnitIDList, { units: unit.units_below, selectUnit }),
288
+ h(UnitIDList, {
289
+ units: unit.units_below,
290
+ onSelectUnit,
291
+ showNames: true,
292
+ }),
278
293
  ),
279
294
  ]),
280
295
  colorSwatch,
@@ -529,6 +544,20 @@ function enhanceLithologies(
529
544
  });
530
545
  }
531
546
 
547
+ export function ClickableText({
548
+ onClick,
549
+ className,
550
+ children,
551
+ }: {
552
+ onClick: () => void;
553
+ className?: string;
554
+ children: ReactNode;
555
+ }) {
556
+ /** An optionally clickable text element */
557
+ const tag = onClick != null ? "a" : "span";
558
+ return h(tag, { onClick, className }, children);
559
+ }
560
+
532
561
  export function Identifier({
533
562
  id,
534
563
  onClick,
@@ -539,51 +568,92 @@ export function Identifier({
539
568
  className?: string;
540
569
  }) {
541
570
  /** An item that displays a numeric identifier, optionally clickable */
542
- const tag = onClick != null ? "a" : "span";
571
+ const _onClick = onClick != null ? () => onClick(id) : null;
572
+
543
573
  return h(
544
- tag,
574
+ ClickableText,
545
575
  {
546
- onClick() {
547
- onClick?.(id);
548
- },
549
- className: classNames(
550
- "identifier",
551
- { clickable: onClick != null },
552
- className,
553
- ),
576
+ onClick: _onClick,
577
+ className: classNames("identifier", className),
554
578
  },
555
579
  id,
556
580
  );
557
581
  }
558
582
 
559
- function UnitIDList({ units, selectUnit }) {
560
- const u1 = units.filter((d) => d != 0);
583
+ type UnitInfo = {
584
+ unitID: number;
585
+ colID?: number;
586
+ name?: string;
587
+ };
561
588
 
562
- if (u1.length === 0) {
563
- return h("span.no-units", "None");
564
- }
589
+ function UnitIDList({ units, onSelectUnit, showNames = false }) {
590
+ const unitsMap = useColumnUnitsMap();
591
+
592
+ const extUnits: UnitInfo[] = useMemo(() => {
593
+ const u1 = units.filter((d) => d != 0);
594
+ if (showNames) {
595
+ return u1.map((unitID) => {
596
+ const unitData = unitsMap.get(unitID);
597
+ let name: string = undefined;
598
+ if (unitData != null) {
599
+ name = defaultNameFunction(unitData);
600
+ }
601
+ return {
602
+ unitID,
603
+ colID: unitData?.col_id,
604
+ name,
605
+ };
606
+ });
607
+ } else {
608
+ return u1.map((unitID) => ({ unitID }));
609
+ }
610
+ }, [units, unitsMap]);
565
611
 
566
- let tag = "span";
567
- if (selectUnit != null) {
568
- tag = "a";
612
+ if (extUnits.length === 0) {
613
+ return h("span.no-units", "None");
569
614
  }
570
615
 
571
616
  return h(
572
617
  ItemList,
573
- { className: "unit-id-list" },
574
- u1.map((unitID) => {
575
- return h(Identifier, {
576
- className: "unit-id",
577
- onClick() {
578
- selectUnit?.(unitID);
579
- },
580
- key: unitID,
581
- id: unitID,
582
- });
583
- }),
618
+ { className: "units-list" },
619
+ extUnits.map((info) =>
620
+ h("span.item", h(UnitIdentifier, { ...info, onSelectUnit })),
621
+ ),
584
622
  );
585
623
  }
586
624
 
625
+ function UnitIdentifier({
626
+ unitID,
627
+ colID,
628
+ name,
629
+ onSelectUnit,
630
+ }: UnitInfo & { onSelectUnit?: (unitID: number) => void }) {
631
+ const onClick = useMemo(() => {
632
+ if (onSelectUnit == null) return null;
633
+ return () => {
634
+ onSelectUnit(unitID);
635
+ };
636
+ }, [onSelectUnit]);
637
+
638
+ if (name != null) {
639
+ return h(
640
+ ClickableText,
641
+ {
642
+ className: "unit-name",
643
+ onClick,
644
+ },
645
+ name,
646
+ );
647
+ }
648
+
649
+ return h(Identifier, {
650
+ className: "unit-id",
651
+ onClick,
652
+ key: unitID,
653
+ id: unitID,
654
+ });
655
+ }
656
+
587
657
  function IntervalProportions({ unit, onClickItem }) {
588
658
  const i0 = unit.b_int_id;
589
659
  const i1 = unit.t_int_id;
@@ -54,6 +54,7 @@ function InteractionBarrier({ children }) {
54
54
 
55
55
  export function UnitSelectionPopover() {
56
56
  const unit = useSelectedUnit();
57
+ const selectUnit = useUnitSelectionStore((state) => state.onUnitSelected);
57
58
  const position = useUnitSelectionStore((state) => state.overlayPosition);
58
59
  if (unit == null) {
59
60
  return null;
@@ -76,6 +77,10 @@ export function UnitSelectionPopover() {
76
77
  unit,
77
78
  showLithologyProportions: true,
78
79
  className: "legend-panel",
80
+ onSelectUnit: (id: number) => {
81
+ console.log("Selected unit in popover:", id);
82
+ selectUnit(id, null, null);
83
+ },
79
84
  }),
80
85
  ),
81
86
  );
@@ -45,9 +45,7 @@ interface UnitProps extends Clickable, Partial<RectBounds>, UnitRectOptions {
45
45
  }
46
46
 
47
47
  export interface LabeledUnitProps
48
- extends UnitRectOptions,
49
- Clickable,
50
- Partial<RectBounds> {
48
+ extends UnitRectOptions, Clickable, Partial<RectBounds> {
51
49
  division: IUnit;
52
50
  patternID?: string | number;
53
51
  label: string;
@@ -162,8 +160,6 @@ function Unit(props: UnitProps) {
162
160
 
163
161
  const [ref, selected, onClick] = useUnitSelectionTarget(d);
164
162
 
165
- //const key = `unit-${d.unit_id}`;
166
-
167
163
  return h(
168
164
  "g.unit",
169
165
  {
@@ -16,7 +16,7 @@ import {
16
16
  import { BaseUnit } from "@macrostrat/api-types";
17
17
  import { LabeledUnit, UnitBoxes } from "./boxes";
18
18
  import styles from "./composite.module.sass";
19
- import { useMacrostratColumnData } from "../data-provider";
19
+ import { useCompositeScale, useMacrostratColumnData } from "../data-provider";
20
20
  import { useUnitSelectionDispatch } from "../units";
21
21
 
22
22
  const h = hyperStyled(styles);
@@ -157,13 +157,12 @@ export function SectionLabelsColumn(props: ICompositeUnitProps) {
157
157
  shouldRenderNote,
158
158
  } = props;
159
159
 
160
- const { sections, totalHeight, axisType } = useMacrostratColumnData();
160
+ const { totalHeight, axisType } = useMacrostratColumnData();
161
+ const _compositeScale = useCompositeScale();
161
162
 
162
163
  const unlabeledUnits = useContext(UnlabeledDivisionsContext);
163
164
  const unitsToLabel = noteMode == "unlabeled" ? unlabeledUnits : undefined;
164
165
 
165
- const _compositeScale = compositeScale(sections);
166
-
167
166
  const selectUnit = useUnitSelectionDispatch();
168
167
 
169
168
  return h("div.section-labels-column", [
@@ -199,57 +198,12 @@ export function SectionLabelsColumn(props: ICompositeUnitProps) {
199
198
  ]);
200
199
  }
201
200
 
202
- type CompositeScaleOpts = {
203
- clamped?: boolean;
204
- };
205
-
206
201
  export interface CompositeColumnScale {
207
202
  (val: number): number;
208
203
  copy(): CompositeColumnScale;
209
204
  domain(): number[];
210
205
  }
211
206
 
212
- export function compositeScale(
213
- sections,
214
- opts: CompositeScaleOpts = {},
215
- ): CompositeColumnScale {
216
- /** A basic composite scale that works across all sections. This isn't a fully featured,
217
- * contiuous D3 scale, but it shares enough attributes to be useful for
218
- * laying out notes.
219
- */
220
- const { clamped = true } = opts;
221
-
222
- const scales = sections.map((group) => {
223
- const { scaleInfo } = group;
224
- return scaleInfo.scale.copy().clamp(clamped);
225
- });
226
-
227
- let baseScale: any = (val) => {
228
- // Find the scale for the section that contains the value
229
- const scale = scales.find((scale) => {
230
- return scale.domain()[0] <= val && val <= scale.domain()[1];
231
- });
232
-
233
- if (scale) {
234
- return scale(val);
235
- } else {
236
- // return nan
237
- return NaN;
238
- }
239
- };
240
-
241
- baseScale.copy = () => {
242
- return baseScale;
243
- };
244
-
245
- baseScale.domain = () => {
246
- // Return a domain that covers all sections
247
- return [scales[0].domain()[0], scales[scales.length - 1].domain()[1]];
248
- };
249
-
250
- return baseScale as CompositeColumnScale;
251
- }
252
-
253
207
  export function ColumnNotesProvider(props) {
254
208
  // A fake column axis provider that allows scales to cross
255
209
  const { children, scale, totalHeight, pixelScale } = props;
@@ -10,17 +10,12 @@ import {
10
10
  RefObject,
11
11
  useRef,
12
12
  useCallback,
13
- MouseEvent,
14
13
  } from "react";
15
14
  import { createStore, StoreApi, useStore } from "zustand";
16
15
  import type { RectBounds, IUnit } from "./types";
17
- import {
18
- getUnitHeightRange,
19
- useMacrostratColumnData,
20
- } from "@macrostrat/column-views";
21
16
 
22
17
  type UnitSelectDispatch = (
23
- unit: BaseUnit | null,
18
+ unit: number | BaseUnit | null,
24
19
  target: HTMLElement | null,
25
20
  event: Event | null,
26
21
  ) => void;
@@ -92,7 +87,26 @@ export function UnitSelectionProvider<T extends BaseUnit>(props: {
92
87
  });
93
88
  }
94
89
  },
95
- onUnitSelected: (unit: T, target: HTMLElement, event: PointerEvent) => {
90
+ onUnitSelected: (
91
+ input: number | T | null,
92
+ target: HTMLElement = null,
93
+ event: PointerEvent = null,
94
+ ) => {
95
+ if (input == null) {
96
+ return set({
97
+ selectedUnit: null,
98
+ selectedUnitData: null,
99
+ overlayPosition: null,
100
+ });
101
+ }
102
+
103
+ let unit: T | null = null;
104
+ if (typeof input === "number") {
105
+ unit = props.units.find((u) => u.unit_id === input) || null;
106
+ } else {
107
+ unit = input;
108
+ }
109
+
96
110
  const el = props.columnRef?.current;
97
111
  let overlayPosition = null;
98
112
 
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;AAeA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAE5B,MAAM,oCAAc,CAAC,SAAE,KAAK,eAAE,cAAc,gBAAI,aAAa,OAAO;IAClE,MAAM,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,oBAAY;IAC/C,iCAAiC;IACjC,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,cAAc,cAAc;IAExD,OAAO,wBAAE,UAAU;QAAE,WAAW;IAAkB,GAAG;QACnD,wBAAE,CAAA,GAAA,iBAAS,GAAG;YACZ,OAAO;wBACP;QACF;KACD;AACH;AAEO,SAAS,0CAAkB,KAAK;IACrC,MAAM,SAAE,QAAQ,aAAO,OAAO,iBAAM,SAAS,UAAE,MAAM,EAAE,GAAG;IAC1D,OAAO,wBACL,wCACA;mBAAE;QAAW,OAAO;oBAAE;QAAO;IAAE,GAC/B;QACE;QACA;QACA,wBAAE,EAAE,CAAC,MAAM,CAAA,GAAA,oBAAY,GAAG;YAAE,WAAW;QAAgB,GAAG;KAC3D;AAEL;AAEO,SAAS;IACd,MAAM,YAAE,QAAQ,YAAE,QAAQ,eAAE,WAAW,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAElE,MAAM,WAAW,SAAS,GAAG,CAAC,CAAC;QAC7B,OAAO;YACL,KAAK,CAAC,QAAQ,EAAE,QAAQ,UAAU,EAAE;YACpC,GAAG,QAAQ,SAAS;QACtB;IACF;IAEA,OAAO,wBAAE,2CAAsB;kBAC7B;kBACA;qBACA;IACF;AACF;AAQO,SAAS,0CAAqB,KAAsC;IACzE,MAAM,YAAE,QAAQ,eAAE,WAAW,YAAE,QAAQ,EAAE,GAAG;IAE5C,IAAI,YAAY,CAAA,GAAA,qBAAa,EAAE,OAAO,EACpC,OAAO;IAGT,IAAI,YAAoB;IACxB,IAAI,WAAW;IACf,IAAI,YAAY,CAAA,GAAA,qBAAa,EAAE,KAAK,EAAE;QACpC,YAAY;QACZ,WAAW;IACb,OAAO,IAAI,YAAY,CAAA,GAAA,qBAAa,EAAE,MAAM,EAAE;QAC5C,YAAY;QACZ,WAAW;IACb;IAEA,OAAO,wBAAE;QACP,wBAAE,2CAAmB;YACnB,OAAO;YACP,MAAM;YACN,QAAQ;QACV;QACA,wBACE,CAAA,GAAA,UAAE,GACF;YACE,WAAW;YACX,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC;gBAAE,QAAQ,GAAG,YAAY,EAAE,CAAC;YAAC;YACnD,OAAO;YACP,QAAQ;QACV,GACA,SAAS,GAAG,CAAC,CAAC,OAAO;YACnB,MAAM,OAAE,GAAG,SAAE,KAAK,EAAE,GAAG;YAEvB,OAAO,wBAAE,CAAA,GAAA,cAAM,GAAG;qBAChB;gBACA,WAAW;uBACX;gBACA,eAAe;YACjB;QACF;KAEH;AACH;AAEO,SAAS,0CAAU,OAAE,GAAG,EAAE;IAC/B,qEAAqE,GACrE,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAC9B,MAAM,WAAW,MAAM;IAEvB,QAAQ,GAAG,CAAC,KAAK;IAEjB,IAAI,OAAO,QAAQ,YAAY,MAC7B,OAAO;IAGT,OAAO,wBACL,kBACA;QACE,OAAO;YACL,KAAK;QACP;IACF,GACA;QAAC,wBAAE;QAAa,wBAAE,CAAA,GAAA,yCAAO,GAAG;iBAAE;YAAK,WAAW;QAAQ;KAAG;AAE7D","sources":["packages/column-views/src/age-axis.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport {\n SVG,\n ColumnAxis,\n ColumnContext,\n ColumnAxisType,\n AgeAxis,\n} from \"@macrostrat/column-components\";\nimport { useContext } from \"react\";\nimport styles from \"./age-axis.module.sass\";\nimport { useCompositeScale, useMacrostratColumnData } from \"./data-provider\";\nimport { Parenthetical } from \"@macrostrat/data-components\";\nimport { PackageScaleLayoutData } from \"./prepare-units/composite-scale\";\nimport { AgeLabel } from \"./unit-details\";\n\nconst h = hyper.styled(styles);\n\nconst AgeAxisCore = ({ ticks, tickSpacing = 40, showDomain = false }) => {\n const { pixelHeight } = useContext(ColumnContext);\n // A tick roughly every 40 pixels\n let v = Math.max(Math.round(pixelHeight / tickSpacing), 1);\n\n return h(\"g.axis\", { transform: \"translate(20 0)\" }, [\n h(ColumnAxis, {\n ticks: v,\n showDomain,\n }),\n ]);\n};\n\nexport function VerticalAxisLabel(props) {\n const { label = \"Age\", unit = \"Ma\", className, height } = props;\n return h(\n \"div.column-axis-label.age-axis-label\",\n { className, style: { height } },\n [\n label,\n \" \",\n h.if(unit)(Parenthetical, { className: \"age-axis-unit\" }, unit),\n ],\n );\n}\n\nexport function CompositeAgeAxis() {\n const { axisType, sections, totalHeight } = useMacrostratColumnData();\n\n const packages = sections.map((section) => {\n return {\n key: `section-${section.section_id}`,\n ...section.scaleInfo,\n };\n });\n\n return h(CompositeAgeAxisCore, {\n axisType,\n packages,\n totalHeight,\n });\n}\n\nexport interface CompositeStratigraphicScaleInfo {\n axisType: ColumnAxisType;\n totalHeight: number;\n packages: PackageScaleLayoutData[];\n}\n\nexport function CompositeAgeAxisCore(props: CompositeStratigraphicScaleInfo) {\n const { axisType, totalHeight, packages } = props;\n\n if (axisType == ColumnAxisType.ORDINAL) {\n return null;\n }\n\n let axisLabel: string = \"Age\";\n let axisUnit = \"Ma\";\n if (axisType == ColumnAxisType.DEPTH) {\n axisLabel = \"Depth\";\n axisUnit = \"m\";\n } else if (axisType == ColumnAxisType.HEIGHT) {\n axisLabel = \"Height\";\n axisUnit = \"m\";\n }\n\n return h([\n h(VerticalAxisLabel, {\n label: axisLabel,\n unit: axisUnit,\n height: totalHeight,\n }),\n h(\n SVG,\n {\n className: \"age-axis-column\",\n style: { width: `22px`, height: `${totalHeight}px` },\n width: 22,\n height: totalHeight,\n },\n packages.map((group, i) => {\n const { key, scale } = group;\n\n return h(AgeAxis, {\n key,\n className: \"age-axis\",\n scale,\n tickSizeOuter: 3,\n });\n }),\n ),\n ]);\n}\n\nexport function AgeCursor({ age }) {\n /** A cursor that shows the age at a specific point on the age axis. */\n const scale = useCompositeScale();\n const heightPx = scale(age);\n\n console.log(age, heightPx);\n\n if (age == null || heightPx == null) {\n return null;\n }\n\n return h(\n \"div.age-cursor\",\n {\n style: {\n top: heightPx,\n },\n },\n [h(\"div.line\"), h(AgeLabel, { age, className: \"label\" })],\n );\n}\n"],"names":[],"version":3,"file":"column-views.02f3732a.js.map"}
@@ -1,13 +0,0 @@
1
- import {fetchAllColumns as $33a46f9423c8104a$export$45bd78cd093090fa, useColumnFeatures as $33a46f9423c8104a$export$e3270a4e30e40ff9, fetchLithologies as $33a46f9423c8104a$export$1aa679bd5e605f82, fetchIntervals as $33a46f9423c8104a$export$5d2ec2e733dfe6c7, fetchEnvironments as $33a46f9423c8104a$export$780b4b253712916c, fetchRefs as $33a46f9423c8104a$export$cd7bfa0860f58b96, fetchStratNames as $33a46f9423c8104a$export$8ea8f45a7ffe4183, fetchUnits as $33a46f9423c8104a$export$b97b9bdd6a521298, fetchColumnUnits as $33a46f9423c8104a$export$d3d8b0fabcc76c5d} from "./column-views.3f246167.js";
2
- import {useMacrostratStore as $774a5efa27d1c77b$export$fb98d5bae3a6800, useMacrostratDefs as $774a5efa27d1c77b$export$89dd4e5ae4a82373, useMacrostratColumns as $774a5efa27d1c77b$export$81eaae0b474404fd, useMacrostratData as $774a5efa27d1c77b$export$b9c9fc603d74a555, MacrostratDataProvider as $774a5efa27d1c77b$export$690613f93cdc5576, MacrostratAPIProvider as $774a5efa27d1c77b$export$3098013bc6cc316d, MacrostratColumnProvider as $774a5efa27d1c77b$export$9e42f9b6e0d67c7d, LithologiesProvider as $774a5efa27d1c77b$export$8492a5cae82b6a70, useLithologies as $774a5efa27d1c77b$export$4d18a90c945d129f, useEnvironments as $774a5efa27d1c77b$export$c6b216bf4c71b61f} from "./column-views.7ca9e1cd.js";
3
- import {useColumnNav as $b8de97dfa82f4910$export$91cb5ac808759b34, ColumnNavProvider as $b8de97dfa82f4910$export$36fed9e0f93a8fde} from "./column-views.6d6b73b4.js";
4
- import {MacrostratColumnDataProvider as $d5074f164411387e$export$7fec7bd80ff9c10e, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2, useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76} from "./column-views.1e055ed5.js";
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
- export {$33a46f9423c8104a$export$45bd78cd093090fa as fetchAllColumns, $33a46f9423c8104a$export$e3270a4e30e40ff9 as useColumnFeatures, $33a46f9423c8104a$export$1aa679bd5e605f82 as fetchLithologies, $33a46f9423c8104a$export$5d2ec2e733dfe6c7 as fetchIntervals, $33a46f9423c8104a$export$780b4b253712916c as fetchEnvironments, $33a46f9423c8104a$export$cd7bfa0860f58b96 as fetchRefs, $33a46f9423c8104a$export$8ea8f45a7ffe4183 as fetchStratNames, $33a46f9423c8104a$export$b97b9bdd6a521298 as fetchUnits, $33a46f9423c8104a$export$d3d8b0fabcc76c5d as fetchColumnUnits, $774a5efa27d1c77b$export$fb98d5bae3a6800 as useMacrostratStore, $774a5efa27d1c77b$export$89dd4e5ae4a82373 as useMacrostratDefs, $774a5efa27d1c77b$export$81eaae0b474404fd as useMacrostratColumns, $774a5efa27d1c77b$export$b9c9fc603d74a555 as useMacrostratData, $774a5efa27d1c77b$export$690613f93cdc5576 as MacrostratDataProvider, $774a5efa27d1c77b$export$3098013bc6cc316d as MacrostratAPIProvider, $774a5efa27d1c77b$export$9e42f9b6e0d67c7d as MacrostratColumnProvider, $774a5efa27d1c77b$export$8492a5cae82b6a70 as LithologiesProvider, $774a5efa27d1c77b$export$4d18a90c945d129f as useLithologies, $774a5efa27d1c77b$export$c6b216bf4c71b61f as useEnvironments, $b8de97dfa82f4910$export$91cb5ac808759b34 as useColumnNav, $b8de97dfa82f4910$export$36fed9e0f93a8fde as ColumnNavProvider, $d5074f164411387e$export$7fec7bd80ff9c10e as MacrostratColumnDataProvider, $d5074f164411387e$export$f8509b7cce386c7d as useMacrostratColumnData, $d5074f164411387e$export$6fb40844db555b2 as useMacrostratUnits, $d5074f164411387e$export$a7fc62995ec4f76 as useCompositeScale};
13
- //# sourceMappingURL=column-views.0a159282.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;AAuBA,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;IACZ,OAAO,CAAA,GAAA,cAAM,EACX,IAAM,CAAA,GAAA,yCAAmB,EAAE,IAAI,QAAQ,EAAE,OACzC;QAAC,IAAI,QAAQ;KAAC;AAElB","sources":["packages/column-views/src/data-provider/store.ts"],"sourcesContent":["import {\n createContext,\n useContext,\n ReactNode,\n useMemo,\n useEffect,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n createCompositeScale,\n PackageLayoutData,\n CompositeColumnScale,\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(): CompositeColumnScale {\n const ctx = useMacrostratColumnData();\n return useMemo(\n () => createCompositeScale(ctx.sections, true),\n [ctx.sections],\n );\n}\n"],"names":[],"version":3,"file":"column-views.1e055ed5.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAgB5B,SAAS,sCAAgB,QAAE,IAAI,EAAE;IAC/B,MAAM,UAAE,MAAM,UAAE,MAAM,EAAE,GAAG,CAAA,GAAA,kBAAU;IAErC,MAAM,SAAE,KAAK,SAAE,KAAK,EAAE,GAAG;IACzB,MAAM,IAAI,OAAO;IACjB,MAAM,KAAK,OAAO;IAElB,OAAO,wBAAE,yBAAyB;WAAE;QAAG,OAAO,KAAK;QAAG,GAAG;gBAAG;IAAO;AACrE;AAEA,SAAS,0CAAc,KAAwB;IAC7C,MAAM,QAAE,IAAI,SAAE,KAAK,UAAE,MAAM,SAAE,KAAK,WAAE,OAAO,EAAE,GAAG;IAChD,MAAM,QAAE,IAAI,QAAE,IAAI,EAAE,GAAG;IACvB,MAAM,YAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;IAE5B,MAAM,SAAS;IAEf,MAAM,aAAa,SAAS,SAAS;IACrC,MAAM,iBAAiB,aAAa;IAEpC,OAAO,wBACL,sBACA;QAAE,WAAW,CAAA,GAAA,iBAAS,EAAE;YAAE,aAAa;QAAe;IAAG,GACzD;QACE,wBACE,CAAA,GAAA,2BAAmB,GACnB;mBAAE;YAAO,aAAa;YAAQ,gBAAgB;YAAM,eAAe;QAAG,GACtE;YACE,wBAAE,EAAE,CAAC,QAAQ,MAAM,uCAAiB;sBAAE;YAAK;YAC3C,KAAK,GAAG,CAAC,CAAC;gBACR,OAAO,wBAAE,CAAA,GAAA,qBAAa,GAAG;oBACvB,WAAW;oBACX,MAAM,EAAE,aAAa;oBACrB,OAAO;gBACT;YACF;SACD;KAEJ;AAEL;AAEA,MAAM,qCAAe,CAAC,KAAO,CAAC,IAAM,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO;AAE9D,SAAS,0CAAe,YAAE,QAAQ,SAAE,QAAQ,WAAW;IACrD,MAAM,OAAO,CAAA,GAAA,yCAAsB,EAAE;QAAE,QAAQ;IAAS;IACxD,MAAM,QAAQ,CAAA,GAAA,wCAAiB;IAE/B,MAAM,QAAe,CAAA,GAAA,cAAM,EAAE;QAC3B,IAAI,QAAQ,QAAQ,SAAS,MAAM,OAAO,EAAE;QAC5C,IAAI,aAAa,MAAM,IAAI,CAAC,KAAK,MAAM;QACvC,WAAW,IAAI,CAAC,CAAC,GAAG;YAClB,MAAM,KAAK,MAAM,SAAS,CAAC,mCAAa;YACxC,MAAM,KAAK,MAAM,SAAS,CAAC,mCAAa;YACxC,OAAO,KAAK;QACd;QAEA,MAAM,QAAQ,WAAW,GAAG,CAAC,CAAC;YAC5B,MAAM,OAAO,MAAM,IAAI,CAAC,mCAAa;YACrC,OAAO;gBACL,YAAY,MAAM;gBAClB,QAAQ,MAAM;gBACd,MAAM;sBACN;gBACA,IAAI,MAAM;YACZ;QACF;QAEA,OAAO,MAAM,MAAM,CAAC,CAAC,IAAM,EAAE,IAAI,IAAI;IACvC,GAAG;QAAC;QAAM;KAAM;IAEhB,MAAM,QAAQ;IACd,MAAM,cAAc;IAEpB,MAAM,gBAAgB,QAAQ;IAE9B,MAAM,gBAAgB,CAAA,GAAA,cAAM,EAAE;QAC5B,OAAO,CAAC;YACN,OAAO,wBAAE,2CAAe;gBACtB,OAAO;gBACP,QAAQ;uBACR;gBACA,GAAG,KAAK;YACV;QACF;IACF,GAAG;QAAC;QAAO;KAAM;IAEjB,IAAI,QAAQ,QAAQ,SAAS,MAAM,OAAO;IAE1C,OAAO,wBACL,kBACA,wBAAE,CAAA,GAAA,yCAAU,GAAG;eACb;qBACA;eACA;uBACA;QACA,0BAA0B;IAC5B;AAEJ","sources":["packages/column-views/src/facets/detrital-zircon/index.ts"],"sourcesContent":["import {\n DetritalSpectrumPlot,\n DetritalSeries,\n usePlotArea,\n} from \"@macrostrat/data-components\";\nimport { IUnit } from \"../../units/types\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useDetritalMeasurements, MeasurementInfo } from \"./provider\";\nimport { useMacrostratUnits } from \"../../data-provider\";\nimport { ColumnNotes } from \"../../notes\";\nimport { useMemo } from \"react\";\nimport styles from \"./index.module.sass\";\nimport classNames from \"classnames\";\n\nconst h = hyper.styled(styles);\n\ninterface DetritalItemProps {\n note: {\n data: MeasurementInfo[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\nfunction DepositionalAge({ unit }) {\n const { xScale, height } = usePlotArea();\n\n const { t_age, b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n\n return h(\"rect.depositional-age\", { x, width: x1 - x, y: 0, height });\n}\n\nfunction DetritalGroup(props: DetritalItemProps) {\n const { note, width, height, color, spacing } = props;\n const { data, unit } = note;\n const { geo_unit } = data[0];\n\n const _color = color;\n\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n\n return h(\n \"div.detrital-group\",\n { className: classNames({ \"hide-axis\": hideAxisLabels }) },\n [\n h(\n DetritalSpectrumPlot,\n { width, innerHeight: height, showAxisLabels: true, paddingBottom: 40 },\n [\n h.if(unit != null)(DepositionalAge, { unit }),\n data.map((d) => {\n return h(DetritalSeries, {\n bandwidth: 20,\n data: d.measure_value,\n color: _color,\n });\n }),\n ],\n ),\n ],\n );\n}\n\nconst matchingUnit = (dz) => (d) => d.unit_id == dz[0].unit_id;\n\nfunction DetritalColumn({ columnID, color = \"magenta\" }) {\n const data = useDetritalMeasurements({ col_id: columnID });\n const units = useMacrostratUnits();\n\n const notes: any[] = useMemo(() => {\n if (data == null || units == null) return [];\n let dzUnitData = Array.from(data.values());\n dzUnitData.sort((a, b) => {\n const v1 = units.findIndex(matchingUnit(a));\n const v2 = units.findIndex(matchingUnit(b));\n return v1 - v2;\n });\n\n const data1 = dzUnitData.map((d) => {\n const unit = units.find(matchingUnit(d));\n return {\n top_height: unit?.t_age,\n height: unit?.b_age,\n data: d,\n unit,\n id: unit?.unit_id,\n };\n });\n\n return data1.filter((d) => d.unit != null);\n }, [data, units]);\n\n const width = 400;\n const paddingLeft = 40;\n\n const spectrumWidth = width - paddingLeft;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(DetritalGroup, {\n width: spectrumWidth,\n height: 40,\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n if (data == null || units == null) return null;\n\n return h(\n \"div.dz-spectra\",\n h(ColumnNotes, {\n width,\n paddingLeft,\n notes,\n noteComponent,\n deltaConnectorAttachment: 20,\n }),\n );\n}\n\nexport { DetritalColumn, DetritalGroup };\n"],"names":[],"version":3,"file":"column-views.2ff3dd8b.js.map"}
@@ -1,66 +0,0 @@
1
- import {group as $7EBVZ$group} from "d3-array";
2
- import {createAPIContext as $7EBVZ$createAPIContext, useAPIResult as $7EBVZ$useAPIResult} from "@macrostrat/ui-components";
3
-
4
-
5
-
6
- const $a3ff7da576c02df0$var$responseUnwrapper = (d)=>d.records;
7
- const $a3ff7da576c02df0$var$pbdbAPIContext = (0, $7EBVZ$createAPIContext)({
8
- baseURL: "https://training.paleobiodb.org/data1.2",
9
- unwrapResponse: $a3ff7da576c02df0$var$responseUnwrapper
10
- });
11
- var $a3ff7da576c02df0$export$a990c76b38782f57 = /*#__PURE__*/ function(FossilDataType) {
12
- FossilDataType["Occurrences"] = "occs";
13
- FossilDataType["Collections"] = "colls";
14
- return FossilDataType;
15
- }({});
16
- function $a3ff7da576c02df0$export$c4ed16553d869511(type, { col_id: col_id }) {
17
- const params = {
18
- ms_column: col_id,
19
- show: "full,mslink"
20
- };
21
- return (0, $7EBVZ$useAPIResult)(`/${type}/list.json`, params, {
22
- context: $a3ff7da576c02df0$var$pbdbAPIContext
23
- });
24
- }
25
- function $a3ff7da576c02df0$var$useMacrostratFossilData({ col_id: col_id }) {
26
- return (0, $7EBVZ$useAPIResult)("/fossils", {
27
- col_id: col_id
28
- });
29
- }
30
- function $a3ff7da576c02df0$var$createMacrostratCollection(d) {
31
- let unit_id = null;
32
- let col_id = null;
33
- // Standardize names of Macrostrat units and columns
34
- if (d.msu !== null) unit_id = parseInt(d.msu.replace(/^\w+:/, ""));
35
- if (d.msc !== null) col_id = parseInt(d.msc.replace(/^\w+:/, ""));
36
- return {
37
- ...d,
38
- unit_id: unit_id,
39
- col_id: col_id,
40
- cltn_id: parseInt(d.oid.replace(/^col:/, "")),
41
- cltn_name: d.nam,
42
- t_age: d.t_age,
43
- b_age: d.b_age
44
- };
45
- }
46
- function $a3ff7da576c02df0$export$e6af757fa9780077({ col_id: col_id }) {
47
- // Fossil links are stored in both Macrostrat and PBDB, depending on how the link was assembled. Here
48
- // we create a unified view of data over both sources.
49
- const r1 = $a3ff7da576c02df0$export$c4ed16553d869511("colls", {
50
- col_id: col_id
51
- });
52
- const r2 = $a3ff7da576c02df0$var$useMacrostratFossilData({
53
- col_id: col_id
54
- });
55
- if (r1 == null || r2 == null) return null;
56
- const r1a = r1.map($a3ff7da576c02df0$var$createMacrostratCollection);
57
- const data = [
58
- ...r1a,
59
- ...r2
60
- ];
61
- return (0, $7EBVZ$group)(data, (d)=>d.unit_id);
62
- }
63
-
64
-
65
- export {$a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $a3ff7da576c02df0$export$c4ed16553d869511 as usePBDBFossilData, $a3ff7da576c02df0$export$e6af757fa9780077 as useFossilData};
66
- //# sourceMappingURL=column-views.3048acc1.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;AAGA,MAAM,0CAAoB,CAAC,IAAM,EAAE,OAAO;AAE1C,MAAM,uCAAiB,CAAA,GAAA,uBAAe,EAAE;IACtC,SAAS;IACT,gBAAgB;AAClB;AAEO,IAAA,AAAK,mEAAA;;;WAAA;;AAKL,SAAS,0CACd,IAAoB,EACpB,UAAE,MAAM,EAAE;IAEV,MAAM,SAAS;QACb,WAAW;QACX,MAAM;IACR;IACA,OAAO,CAAA,GAAA,mBAAW,EAAE,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,QAAQ;QAChD,SAAS;IACX;AACF;AAaA,SAAS,8CAAwB,UAAE,MAAM,EAAE;IACzC,OAAO,CAAA,GAAA,mBAAW,EAAE,YAAY;gBAAE;IAAO;AAC3C;AAEA,SAAS,iDAA2B,CAAC;IACnC,IAAI,UAAU;IACd,IAAI,SAAS;IACb,oDAAoD;IACpD,IAAI,EAAE,GAAG,KAAK,MACZ,UAAU,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS;IAE5C,IAAI,EAAE,GAAG,KAAK,MACZ,SAAS,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS;IAG3C,OAAO;QACL,GAAG,CAAC;iBACJ;gBACA;QACA,SAAS,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS;QACzC,WAAW,EAAE,GAAG;QAChB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;IAChB;AACF;AAEO,SAAS,0CAAc,UAAE,MAAM,EAAE;IACtC,qGAAqG;IACrG,sDAAsD;IAEtD,MAAM,KAAK,mDAA8C;gBAAE;IAAO;IAElE,MAAM,KAAK,8CAAwB;gBAAE;IAAO;IAE5C,IAAI,MAAM,QAAQ,MAAM,MAAM,OAAO;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC;IAEnB,MAAM,OAAO;WAAI;WAAQ;KAAG;IAE5B,OAAO,CAAA,GAAA,YAAI,EAAE,MAAM,CAAC,IAAM,EAAE,OAAO;AACrC","sources":["packages/column-views/src/facets/fossils/provider.ts"],"sourcesContent":["import { group } from \"d3-array\";\nimport { createAPIContext, useAPIResult } from \"@macrostrat/ui-components\";\n\nconst responseUnwrapper = (d) => d.records;\n\nconst pbdbAPIContext = createAPIContext({\n baseURL: \"https://training.paleobiodb.org/data1.2\",\n unwrapResponse: responseUnwrapper,\n});\n\nexport enum FossilDataType {\n Occurrences = \"occs\",\n Collections = \"colls\",\n}\n\nexport function usePBDBFossilData(\n type: FossilDataType,\n { col_id },\n): any[] | null {\n const params = {\n ms_column: col_id,\n show: \"full,mslink\",\n };\n return useAPIResult(`/${type}/list.json`, params, {\n context: pbdbAPIContext,\n });\n}\n\nexport interface PBDBCollection {\n unit_id: number;\n col_id: number;\n cltn_id: number;\n cltn_name: string;\n pbdb_occs: number;\n t_age: number;\n b_age: number;\n [key: string]: any; // Allow for additional properties\n}\n\nfunction useMacrostratFossilData({ col_id }): PBDBCollection[] | null {\n return useAPIResult(\"/fossils\", { col_id });\n}\n\nfunction createMacrostratCollection(d): PBDBCollection {\n let unit_id = null;\n let col_id = null;\n // Standardize names of Macrostrat units and columns\n if (d.msu !== null) {\n unit_id = parseInt(d.msu.replace(/^\\w+:/, \"\"));\n }\n if (d.msc !== null) {\n col_id = parseInt(d.msc.replace(/^\\w+:/, \"\"));\n }\n\n return {\n ...d,\n unit_id,\n col_id,\n cltn_id: parseInt(d.oid.replace(/^col:/, \"\")),\n cltn_name: d.nam,\n t_age: d.t_age,\n b_age: d.b_age,\n };\n}\n\nexport function useFossilData({ col_id }) {\n // Fossil links are stored in both Macrostrat and PBDB, depending on how the link was assembled. Here\n // we create a unified view of data over both sources.\n\n const r1 = usePBDBFossilData(FossilDataType.Collections, { col_id });\n\n const r2 = useMacrostratFossilData({ col_id });\n\n if (r1 == null || r2 == null) return null;\n const r1a = r1.map(createMacrostratCollection);\n\n const data = [...r1a, ...r2];\n\n return group(data, (d) => d.unit_id);\n}\n"],"names":[],"version":3,"file":"column-views.3048acc1.js.map"}
@@ -1,13 +0,0 @@
1
- import {TruncatedList as $b9286605a04210d4$export$653e47a7a0da0f0d, PBDBFossilsColumn as $b9286605a04210d4$export$554267114407ef68, BaseMeasurementsColumn as $b9286605a04210d4$export$ce5c4f2fdf4e644d} from "./column-views.8703a35b.js";
2
- import {DetritalGroup as $715dd5fedd79146a$export$1b3047373cd1c8c7, DetritalColumn as $715dd5fedd79146a$export$f176396e104db8d5} from "./column-views.2ff3dd8b.js";
3
- import {IsotopesDataset as $d71d096cfe00860f$export$c69bd0285aa5d775, IsotopesColumn as $d71d096cfe00860f$export$5d8aa8022c284748, MeasurementDataContext as $5dbb619f2c7bef60$export$c644ef985ce7a4c4, MeasurementDataProvider as $5dbb619f2c7bef60$export$5f01d5b342a89841, useMeasurementData as $5dbb619f2c7bef60$export$8a0335fd9ff72150} from "./column-views.86619334.js";
4
- import {SGPMeasurementsColumn as $6ff130029901daab$export$c49cf57576706bab} from "./column-views.97d542eb.js";
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
- export {$b9286605a04210d4$export$653e47a7a0da0f0d as TruncatedList, $b9286605a04210d4$export$554267114407ef68 as PBDBFossilsColumn, $b9286605a04210d4$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $715dd5fedd79146a$export$1b3047373cd1c8c7 as DetritalGroup, $715dd5fedd79146a$export$f176396e104db8d5 as DetritalColumn, $d71d096cfe00860f$export$c69bd0285aa5d775 as IsotopesDataset, $d71d096cfe00860f$export$5d8aa8022c284748 as IsotopesColumn, $5dbb619f2c7bef60$export$c644ef985ce7a4c4 as MeasurementDataContext, $5dbb619f2c7bef60$export$5f01d5b342a89841 as MeasurementDataProvider, $5dbb619f2c7bef60$export$8a0335fd9ff72150 as useMeasurementData, $6ff130029901daab$export$c49cf57576706bab as SGPMeasurementsColumn};
13
- //# sourceMappingURL=column-views.38a305a0.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;AAQA,MAAM,2BAAK;AAiBJ,MAAM,2CAA6B,SACxC,CAAC,EACD,CAAC,EACD,WAA2B,CAAA,GAAA,qBAAa,EAAE,GAAG,EAC7C,YAAoB,KAAK;IAEzB,MAAM,MAAM,CAAA,GAAA,uBAAe,EACzB,yCAAmB,GAAG,WACtB,yCAAmB,GAAG,WACtB;IAEF,OAAO,OAAO,CAAA,GAAA,2BAAmB,EAAE,QAAQ;AAC7C;AAGO,SAAS,0CACd,CAAuB,EACvB,CAAuB,EACvB,YAAoB,wBAAE;IAEtB,OAAO,yCAAa,GAAG,GAAG,CAAA,GAAA,qBAAa,EAAE,GAAG,EAAE;AAChD;AAQO,SAAS,yCACd,IAAyB,EACzB,QAAwB;IAExB,OAAQ;QACN,KAAK,CAAA,GAAA,qBAAa,EAAE,GAAG;YACrB,OAAO;gBAAC,KAAK,UAAU,IAAI,KAAK,KAAK;gBAAE,KAAK,UAAU,IAAI,KAAK,KAAK;aAAC;QACvE,KAAK,CAAA,GAAA,qBAAa,EAAE,KAAK;QACzB,KAAK,CAAA,GAAA,qBAAa,EAAE,OAAO;QAC3B,KAAK,CAAA,GAAA,qBAAa,EAAE,MAAM;YACxB,OAAO;gBAAC,KAAK,UAAU,IAAI,KAAK,KAAK;gBAAE,KAAK,UAAU,IAAI,KAAK,KAAK;aAAC;QACvE;YACE,MAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,UAAU;IACpD;AACF;AAEO,MAAM,4CAAmB,CAAC;IAC/B,OAAO,CAAC,GAAa;QACnB,MAAM,QAAQ,yCAAmB,GAAG;QACpC,MAAM,QAAQ,yCAAmB,GAAG;QACpC,MAAM,QAAQ,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;QACjC,IAAI,SAAS,GACX,OAAO;QAET,OAAO,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;IAC5B;AACF;AAEO,SAAS,0CAAe,CAAU;IACvC,IAAI,MAAM,OAAO,CAAC,IAChB,OAAO;IAET,OAAO;QAAC;KAAE;AACZ;AAEO,SAAS,0CAAgB,CAAyB;IACvD,IAAI,OAAO,KAAK,UACd,IAAI,WAAW;IAEjB,IAAI,MAAM,IACR,OAAO;IAET,OAAO;AACT","sources":["packages/column-views/src/prepare-units/utils.ts"],"sourcesContent":["import type { BaseUnit } from \"@macrostrat/api-types\";\nimport {\n AgeRangeRelationship,\n compareAgeRanges,\n} from \"@macrostrat/stratigraphy-utils\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { StratigraphicPackage } from \"./helpers\";\n\nconst dt = 0.001;\n\ninterface UnitsOverlap {\n (\n a: StratigraphicPackage,\n b: StratigraphicPackage,\n axisType?: ColumnAxisType.AGE,\n tolerance?: number,\n ): boolean;\n (\n a: BaseUnit,\n b: BaseUnit,\n axisType: ColumnAxisType,\n tolerance?: number,\n ): boolean;\n}\n\nexport const unitsOverlap: UnitsOverlap = function (\n a,\n b,\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n tolerance: number = 0.001,\n): boolean {\n const rel = compareAgeRanges(\n getUnitHeightRange(a, axisType),\n getUnitHeightRange(b, axisType),\n tolerance,\n );\n return rel != AgeRangeRelationship.Disjoint;\n};\n\n/** A more permissive overlap function in the age space */\nexport function agesOverlap(\n a: StratigraphicPackage,\n b: StratigraphicPackage,\n tolerance: number = dt,\n): boolean {\n return unitsOverlap(a, b, ColumnAxisType.AGE, tolerance);\n}\n\nexport interface PossiblyClippedUnit extends BaseUnit {\n // Internally created clipped positions\n t_clip_pos?: number;\n b_clip_pos?: number;\n}\n\nexport function getUnitHeightRange(\n unit: PossiblyClippedUnit,\n axisType: ColumnAxisType,\n): [number, number] {\n switch (axisType) {\n case ColumnAxisType.AGE:\n return [unit.b_clip_pos ?? unit.b_age, unit.t_clip_pos ?? unit.t_age];\n case ColumnAxisType.DEPTH:\n case ColumnAxisType.ORDINAL:\n case ColumnAxisType.HEIGHT:\n return [unit.b_clip_pos ?? unit.b_pos, unit.t_clip_pos ?? unit.t_pos];\n default:\n throw new Error(`Unknown axis type: ${axisType}`);\n }\n}\n\nexport const createUnitSorter = (axisType: ColumnAxisType) => {\n return (a: BaseUnit, b: BaseUnit) => {\n const a_pos = getUnitHeightRange(a, axisType);\n const b_pos = getUnitHeightRange(b, axisType);\n const d_top = a_pos[1] - b_pos[1];\n if (d_top != 0) {\n return d_top;\n }\n return a_pos[0] - b_pos[0];\n };\n};\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n if (Array.isArray(x)) {\n return x;\n }\n return [x];\n}\n\nexport function ensureRealFloat(x: number | string | null): number | null {\n if (typeof x == \"string\") {\n x = parseFloat(x);\n }\n if (isNaN(x)) {\n return null;\n }\n return x;\n}\n"],"names":[],"version":3,"file":"column-views.39657bbf.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/column-views/src/data-provider/fetch.ts"],"sourcesContent":["import {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n MacrostratRef,\n StratName,\n StratUnit,\n UnitLong,\n} from \"@macrostrat/api-types\";\nimport {\n addQueryString,\n joinURL,\n useAPIResult,\n} from \"@macrostrat/ui-components\";\nimport crossFetch from \"cross-fetch\";\nimport { feature } from \"topojson-client\";\nimport { geoArea } from \"d3-geo\";\n\nfunction defaultFetch(\n url: string,\n options: RequestInit | undefined = undefined,\n) {\n const baseURL = \"https://macrostrat.org/api/v2\";\n return crossFetch(baseURL + url, options);\n}\n\nexport interface ColumnFetchOptions {\n apiBaseURL?: string;\n projectID?: number;\n statusCode?: \"in process\";\n format?: \"geojson\" | \"topojson\" | \"geojson_bare\";\n fetch?: any;\n}\n\nexport async function fetchAllColumns(\n options: ColumnFetchOptions = {},\n): Promise<ColumnGeoJSONRecord[]> {\n const {\n apiBaseURL,\n projectID,\n format = \"topojson\",\n statusCode,\n fetch = crossFetch,\n } = options;\n\n let args: any = { format };\n if (projectID != null) {\n args = { ...args, project_id: projectID };\n }\n if (statusCode != null) {\n args = { ...args, status_code: statusCode };\n }\n\n if (projectID == null) {\n args = { ...args, all: true };\n }\n\n let url = \"/columns\";\n if (apiBaseURL != null) {\n url = joinURL(apiBaseURL, url);\n }\n\n // Try with fetch\n url = addQueryString(url, args);\n\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (res == null) {\n return null;\n }\n\n // Get JSON\n const data = await res.json();\n return postProcessColumns(columnProcessors[format](data));\n}\n\nexport function useColumnFeatures({\n apiRoute = \"/columns\",\n status_code,\n project_id,\n format = \"geojson\",\n}) {\n let all: boolean = undefined;\n if (status_code == null && project_id == null) {\n all = true;\n }\n\n const processor = columnProcessors[format];\n\n return useAPIResult(\n apiRoute,\n { format, all, status_code, project_id },\n processor,\n );\n}\n\nfunction processGeoJSON(res) {\n return processGeoJSONBare(res?.success?.data);\n}\n\nfunction processGeoJSONBare(res) {\n return res?.features;\n}\n\nfunction processTopoJSON(res) {\n try {\n const { data } = res.success;\n const { features: f } = feature(data, data.objects.output) as any;\n return f;\n } catch (err) {\n console.error(err);\n return [];\n }\n}\n\nfunction postProcessColumns(columns) {\n return promoteColumnIDs(\n convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns)),\n );\n}\n\nfunction promoteColumnIDs(\n features: ColumnGeoJSONRecord[],\n): ColumnGeoJSONRecordWithID[] {\n return features.map((f, i) => {\n return {\n id: f.properties?.col_id,\n ...f,\n };\n });\n}\n\nfunction removeFeaturesWithoutGeometry(features) {\n return features.filter((f) => f.geometry != null);\n}\n\nfunction convertSmallAreasToPoints(features) {\n return features.map((f) => {\n // GeoArea takes a long time to run. We are really more worried about points that are zero-area\n if (geoArea(f.geometry) < 1e-8) {\n const centroid = f.geometry.coordinates[0][0];\n f.geometry = {\n type: \"Point\",\n coordinates: centroid,\n };\n }\n return f;\n });\n}\n\nconst columnProcessors = {\n topojson: processTopoJSON,\n geojson: processGeoJSON,\n geojson_bare: processGeoJSONBare,\n};\n\nasync function unwrapResponse(res) {\n if (res == null) {\n return null;\n }\n const resData = await res.json();\n return resData[\"success\"][\"data\"];\n}\n\nexport async function fetchLithologies(fetch = defaultFetch) {\n const res = await fetch(\"/defs/lithologies?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchIntervals(\n timescaleID: number | null,\n fetch = defaultFetch,\n) {\n let url = `/defs/intervals`;\n if (timescaleID != null) {\n url += `?timescale_id=${timescaleID}`;\n } else {\n url += \"?all\";\n }\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport async function fetchEnvironments(fetch = defaultFetch) {\n const res = await fetch(\"/defs/environments?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchRefs(\n refs: number[],\n fetch = defaultFetch,\n): Promise<MacrostratRef[]> {\n let url = `/defs/refs`;\n if (refs.length == 0) {\n return [];\n }\n url += \"?ref_id=\" + refs.join(\",\");\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport async function fetchStratNames(\n names: number[],\n fetch = defaultFetch,\n): Promise<StratName[]> {\n let url = `/defs/strat_names`;\n if (names.length == 0) {\n return [];\n }\n url += \"?strat_name_id=\" + names.join(\",\");\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport type ColumnData = {\n units: UnitLong[];\n columnID: number;\n};\n\nexport async function fetchUnits(\n columns: number[],\n fetch = defaultFetch,\n): Promise<ColumnData[]> {\n const promises = columns.map((col_id) => fetchColumnUnits(col_id, fetch));\n return await Promise.all(promises);\n}\n\nexport async function fetchColumnUnits(\n col_id: number,\n fetch = defaultFetch,\n): Promise<ColumnData> {\n const params = new URLSearchParams();\n params.append(\"response\", \"long\");\n params.append(\"col_id\", col_id.toString());\n const res = await fetch(\"/units\" + \"?\" + params.toString());\n const data = await res.json();\n if (!data.success) {\n throw new Error(\"Failed to fetch column units\");\n }\n const units = data.success.data;\n return { columnID: col_id, units };\n}\n"],"names":[],"version":3,"file":"column-views.3f246167.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, useCallback } 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 {\n Identifier,\n ReferencesField,\n UnitSelectionPopover,\n} from \"./unit-details\";\nimport {\n MacrostratColumnDataProvider,\n useCompositeScale,\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\";\nimport { DataField } from \"@macrostrat/data-components\";\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 onMouseOver?: (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n ) => void;\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 allowUnitSelection?: 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 allowUnitSelection,\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 let main: any = h(ColumnInner, { columnRef: ref, ...rest }, [\n children,\n h.if(showUnitPopover)(UnitSelectionPopover),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),\n ]);\n\n /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */\n let _allowUnitSelection = allowUnitSelection ?? false;\n if (showUnitPopover || selectedUnit != null || onUnitSelected != null) {\n _allowUnitSelection = true;\n }\n\n if (_allowUnitSelection) {\n main = h(\n UnitSelectionProvider,\n {\n columnRef: ref,\n onUnitSelected,\n selectedUnit,\n units,\n },\n main,\n );\n }\n\n return h(\n MacrostratColumnDataProvider,\n { units, sections, totalHeight, axisType },\n main,\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 onMouseOver,\n } = props;\n\n const { axisType } = useMacrostratColumnData();\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 ?? true;\n if (timescaleLevels != null) {\n _showTimescale = true;\n }\n _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;\n\n return h(\n ColumnContainer,\n {\n ...useMouseEventHandlers(onMouseOver),\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\ntype ColumnMouseOverHandler = (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n) => void;\n\nfunction useMouseEventHandlers(\n _onMouseOver: ColumnMouseOverHandler | null = null,\n) {\n /** Click event handler */\n\n // Click handler for unit selection\n const dispatch = useUnitSelectionDispatch();\n const onClick = useCallback(\n (evt) => {\n dispatch?.(null, null, evt as any);\n },\n [dispatch],\n );\n\n /** Hover event handlers */\n const scale = useCompositeScale();\n\n const onMouseOver = useCallback(\n (evt) => {\n const height = scale.invert(\n evt.clientY - evt.currentTarget.getBoundingClientRect().top,\n );\n _onMouseOver?.(null, height, evt);\n },\n [scale, _onMouseOver],\n );\n\n const onMouseOut = useCallback(() => {\n _onMouseOver?.(null, null, null);\n }, [_onMouseOver]);\n\n if (_onMouseOver == null) {\n return {\n onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined,\n };\n }\n\n return { onMouseOver, onMouseMove: onMouseOver, onMouseOut, onClick };\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\nexport function ColumnBasicInfo({ data, showColumnID = true }) {\n if (data == null) return null;\n return h(\"div.column-info\", [\n h(\"div.column-title-row\", [\n h(\"h2\", data.col_name),\n h.if(showColumnID)(\"h4\", h(Identifier, { id: data.col_id })),\n ]),\n h(DataField, { row: true, label: \"Group\", value: data.col_group }),\n h(ReferencesField, {\n refs: data.refs,\n inline: false,\n row: true,\n className: \"column-refs\",\n }),\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.42b89c52.js.map"}