@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
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;AAKO,SAAS,0CAA+B,KAAK;IAClD,MAAM,YAAE,QAAQ,aAAE,SAAS,gBAAE,YAAY,gBAAE,YAAY,YAAE,QAAQ,EAAE,GAAG,MAAM,GAC1E;IAEF,MAAM,KAAK,UAAU,UACnB,CAAC,OAAS,KAAK,OAAO,KAAK,cAAc;IAG3C,MAAM,SAAS;QACb,IAAI,KAAK;QACT,IAAI,KAAK;IACX;IAEA,CAAA,GAAA,oBAAY,EACV,CAAC;QACC,MAAM,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,SAAS,MAAM,EAAE;QAC/D,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO;QACrC,MAAM,eAAe;IACvB,GACA;QAAC;QAAU;KAAG;IAGhB,IAAI,gBAAgB,MAAM,OAAO;IAEjC,MAAM,UAAU,CAAA,GAAA,sBAAA,EAAE;QAChB,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO;YACjB;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO,SAAS,MAAM,GAAG;YACnC;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;KACD;IAED,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAe,GAAG;QACzB,MAAM;QACN,SAAQ,KAAK;YACX,aAAa;QACf;mBACA;iBACA;QACA,0BAA0B;QAC1B,YAAY;QACZ,aAAa;kBACb;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/unit-details/modal-panel.ts"],"sourcesContent":["import { Button } from \"@blueprintjs/core\";\nimport { UnitDetailsPanel } from \"./panel\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nexport function UnitDetailsPanelWithNavigation(props) {\n const { unitData, className, selectedUnit, onSelectUnit, features, ...rest } =\n props;\n\n const ix = unitData?.findIndex(\n (unit) => unit.unit_id === selectedUnit?.unit_id,\n );\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= unitData.length) return;\n onSelectUnit(unitData[nextIx].unit_id);\n event.stopPropagation();\n },\n [unitData, ix],\n );\n\n if (selectedUnit == null) return null;\n\n const actions = h([\n h(Button, {\n icon: \"arrow-up\",\n disabled: ix === 0,\n onClick() {\n onSelectUnit(unitData[ix - 1]?.unit_id);\n },\n }),\n h(Button, {\n icon: \"arrow-down\",\n disabled: ix === unitData.length - 1,\n onClick() {\n onSelectUnit(unitData[ix + 1]?.unit_id);\n },\n }),\n ]);\n\n return h(UnitDetailsPanel, {\n unit: selectedUnit,\n onClose(event) {\n onSelectUnit(null);\n },\n className,\n actions,\n showLithologyProportions: true,\n selectUnit: onSelectUnit,\n columnUnits: unitData,\n features,\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.a195109e.js.map"}
1
+ {"mappings":";;;;;;;;;AAKO,SAAS,0CAA+B,KAAK;IAClD,MAAM,YAAE,QAAQ,aAAE,SAAS,gBAAE,YAAY,gBAAE,YAAY,YAAE,QAAQ,EAAE,GAAG,MAAM,GAC1E;IAEF,MAAM,KAAK,UAAU,UACnB,CAAC,OAAS,KAAK,OAAO,KAAK,cAAc;IAG3C,MAAM,SAAS;QACb,IAAI,KAAK;QACT,IAAI,KAAK;IACX;IAEA,CAAA,GAAA,oBAAY,EACV,CAAC;QACC,MAAM,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,SAAS,MAAM,EAAE;QAC/D,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO;QACrC,MAAM,eAAe;IACvB,GACA;QAAC;QAAU;KAAG;IAGhB,IAAI,gBAAgB,MAAM,OAAO;IAEjC,MAAM,UAAU,CAAA,GAAA,sBAAA,EAAE;QAChB,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO;YACjB;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO,SAAS,MAAM,GAAG;YACnC;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;KACD;IAED,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAe,GAAG;QACzB,MAAM;QACN,SAAQ,KAAK;YACX,aAAa;QACf;mBACA;iBACA;QACA,0BAA0B;QAC1B,YAAY;QACZ,aAAa;kBACb;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/unit-details/modal-panel.ts"],"sourcesContent":["import { Button } from \"@blueprintjs/core\";\nimport { UnitDetailsPanel } from \"./panel\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nexport function UnitDetailsPanelWithNavigation(props) {\n const { unitData, className, selectedUnit, onSelectUnit, features, ...rest } =\n props;\n\n const ix = unitData?.findIndex(\n (unit) => unit.unit_id === selectedUnit?.unit_id,\n );\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= unitData.length) return;\n onSelectUnit(unitData[nextIx].unit_id);\n event.stopPropagation();\n },\n [unitData, ix],\n );\n\n if (selectedUnit == null) return null;\n\n const actions = h([\n h(Button, {\n icon: \"arrow-up\",\n disabled: ix === 0,\n onClick() {\n onSelectUnit(unitData[ix - 1]?.unit_id);\n },\n }),\n h(Button, {\n icon: \"arrow-down\",\n disabled: ix === unitData.length - 1,\n onClick() {\n onSelectUnit(unitData[ix + 1]?.unit_id);\n },\n }),\n ]);\n\n return h(UnitDetailsPanel, {\n unit: selectedUnit,\n onClose(event) {\n onSelectUnit(null);\n },\n className,\n actions,\n showLithologyProportions: true,\n selectUnit: onSelectUnit,\n columnUnits: unitData,\n features,\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.ba0381cc.js.map"}
@@ -1,7 +1,7 @@
1
1
  import "./column-views.16cc7a58.css";
2
2
  import $bBNCV$columnviewsedf77621js from "./column-views.edf77621.js";
3
- import {useSelectedUnit as $4d5d1c15f39f6a14$export$f0dd93f90aa8e5da, useUnitSelectionStore as $4d5d1c15f39f6a14$export$b220b1d3591dc9e5} from "./column-views.64a84c43.js";
4
- import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.cc5244c4.js";
3
+ import {useSelectedUnit as $4d5d1c15f39f6a14$export$f0dd93f90aa8e5da, useUnitSelectionStore as $4d5d1c15f39f6a14$export$b220b1d3591dc9e5} from "./column-views.f2fd0e4a.js";
4
+ import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.77561197.js";
5
5
  import $bBNCV$macrostrathyper from "@macrostrat/hyper";
6
6
  import {Popover as $bBNCV$Popover} from "@blueprintjs/core";
7
7
 
@@ -44,6 +44,7 @@ function $a9bcb536274d1bf9$var$InteractionBarrier({ children: children }) {
44
44
  }
45
45
  function $a9bcb536274d1bf9$export$db1115efab13710d() {
46
46
  const unit = (0, $4d5d1c15f39f6a14$export$f0dd93f90aa8e5da)();
47
+ const selectUnit = (0, $4d5d1c15f39f6a14$export$b220b1d3591dc9e5)((state)=>state.onUnitSelected);
47
48
  const position = (0, $4d5d1c15f39f6a14$export$b220b1d3591dc9e5)((state)=>state.overlayPosition);
48
49
  if (unit == null) return null;
49
50
  return $a9bcb536274d1bf9$var$h("div.unit-popover-container", $a9bcb536274d1bf9$var$h($a9bcb536274d1bf9$export$6716aecc2c9afbe2, {
@@ -57,10 +58,14 @@ function $a9bcb536274d1bf9$export$db1115efab13710d() {
57
58
  }, $a9bcb536274d1bf9$var$h((0, $448b24baeef3b229$export$fbd245232df17557), {
58
59
  unit: unit,
59
60
  showLithologyProportions: true,
60
- className: "legend-panel"
61
+ className: "legend-panel",
62
+ onSelectUnit: (id)=>{
63
+ console.log("Selected unit in popover:", id);
64
+ selectUnit(id, null, null);
65
+ }
61
66
  })));
62
67
  }
63
68
 
64
69
 
65
70
  export {$a9bcb536274d1bf9$export$6716aecc2c9afbe2 as UnitDetailsPopover, $a9bcb536274d1bf9$export$db1115efab13710d as UnitSelectionPopover};
66
- //# sourceMappingURL=column-views.75ea6dbe.js.map
71
+ //# sourceMappingURL=column-views.c518ef14.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;AAMA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAErB,SAAS,0CAAmB,SACjC,KAAK,YACL,QAAQ,mBACR,kBAAkB,IAKnB;IACC,MAAM,UAAU,wBAAE,0CAAoB;IAEtC,OAAO,wBACL,oBACA;eACE;IACF,GACA,wBACE,CAAA,GAAA,cAAM,GACN,aAAa;IACb;iBACE;QACA,QAAQ;QACR,WAAW;QACX,UAAU;QACV,WAAW;YACT,iBAAiB;gBAAE,SAAS;oBAAE,SAAS;gBAAgB;YAAE;QAC3D;IACF,GACA,wBAAE;AAGR;AAEA,SAAS,yCAAmB,YAAE,QAAQ,EAAE;IACtC,OAAO,wBACL,OACA;QACE,SAAQ,CAAC;YACP,yCAAyC;YACzC,EAAE,eAAe;QACnB;IACF,GACA;AAEJ;AAEO,SAAS;IACd,MAAM,OAAO,CAAA,GAAA,yCAAc;IAC3B,MAAM,aAAa,CAAA,GAAA,yCAAoB,EAAE,CAAC,QAAU,MAAM,cAAc;IACxE,MAAM,WAAW,CAAA,GAAA,yCAAoB,EAAE,CAAC,QAAU,MAAM,eAAe;IACvE,IAAI,QAAQ,MACV,OAAO;IAGT,OAAO,wBACL,8BACA,wBACE,2CACA;QACE,OAAO;YACL,UAAU;YACV,KAAK,UAAU,KAAK;YACpB,OAAO,UAAU,SAAS;YAC1B,MAAM,UAAU,KAAK;YACrB,QAAQ,UAAU,UAAU;QAC9B;IACF,GACA,wBAAE,CAAA,GAAA,yCAAe,GAAG;cAClB;QACA,0BAA0B;QAC1B,WAAW;QACX,cAAc,CAAC;YACb,QAAQ,GAAG,CAAC,6BAA6B;YACzC,WAAW,IAAI,MAAM;QACvB;IACF;AAGN","sources":["packages/column-views/src/unit-details/popover.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport { Popover } from \"@blueprintjs/core\";\nimport styles from \"./popover.module.sass\";\nimport { useSelectedUnit, useUnitSelectionStore } from \"../units\";\nimport { UnitDetailsPanel } from \"./panel\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPopover({\n style,\n children,\n viewportPadding = 20,\n}: {\n style: object;\n viewportPadding?: number;\n children: React.ReactNode;\n}) {\n const content = h(InteractionBarrier, children);\n\n return h(\n \"div.popover-main\",\n {\n style,\n },\n h(\n Popover,\n // @ts-ignore\n {\n content,\n isOpen: true,\n usePortal: false,\n position: \"right\",\n modifiers: {\n preventOverflow: { options: { padding: viewportPadding } },\n },\n },\n h(\"span.popover-target\"),\n ),\n );\n}\n\nfunction InteractionBarrier({ children }) {\n return h(\n \"div\",\n {\n onClick(e) {\n // Stop events from leaking to the parent\n e.stopPropagation();\n },\n },\n children,\n );\n}\n\nexport function UnitSelectionPopover() {\n const unit = useSelectedUnit();\n const selectUnit = useUnitSelectionStore((state) => state.onUnitSelected);\n const position = useUnitSelectionStore((state) => state.overlayPosition);\n if (unit == null) {\n return null;\n }\n\n return h(\n \"div.unit-popover-container\",\n h(\n UnitDetailsPopover,\n {\n style: {\n position: \"absolute\",\n top: position?.y ?? 0,\n width: position?.width ?? 100,\n left: position?.x ?? 0,\n height: position?.height ?? 100,\n },\n },\n h(UnitDetailsPanel, {\n unit,\n showLithologyProportions: true,\n className: \"legend-panel\",\n onSelectUnit: (id: number) => {\n console.log(\"Selected unit in popover:\", id);\n selectUnit(id, null, null);\n },\n }),\n ),\n );\n}\n"],"names":[],"version":3,"file":"column-views.c518ef14.js.map"}
@@ -1,4 +1,4 @@
1
- import {Columns as $93f116a6493b17c3$export$f02cc02ad0e0bba3, CurrentColumn as $93f116a6493b17c3$export$b9d912252344e099, MeasurementsLayer as $93f116a6493b17c3$export$2254347cd20e6080, ColumnFeatures as $93f116a6493b17c3$export$f177ff57c101017a, ColumnKeyboardNavigation as $93f116a6493b17c3$export$8c41dd563753848, ColumnCenters as $93f116a6493b17c3$export$4d8f6e6df85d9012} from "./column-views.9e1c82fe.js";
1
+ import {Columns as $93f116a6493b17c3$export$f02cc02ad0e0bba3, CurrentColumn as $93f116a6493b17c3$export$b9d912252344e099, MeasurementsLayer as $93f116a6493b17c3$export$2254347cd20e6080, ColumnFeatures as $93f116a6493b17c3$export$f177ff57c101017a, ColumnKeyboardNavigation as $93f116a6493b17c3$export$8c41dd563753848, ColumnCenters as $93f116a6493b17c3$export$4d8f6e6df85d9012} from "./column-views.58b891df.js";
2
2
  import {useRef as $9RwS3$useRef} from "react";
3
3
  import $9RwS3$macrostrathyper from "@macrostrat/hyper";
4
4
  import {Globe as $9RwS3$Globe, LandLayer as $9RwS3$LandLayer} from "@macrostrat/svg-map-components";
@@ -85,4 +85,4 @@ function $e6046e00d2c8a163$export$9595c40c7a4c4f7b(props) {
85
85
 
86
86
 
87
87
  export {$e6046e00d2c8a163$export$c4313db718750a5a as ResizableMapFrame, $e6046e00d2c8a163$export$9595c40c7a4c4f7b as ColumnNavigationSVGMap, $93f116a6493b17c3$export$2254347cd20e6080 as MeasurementsLayer, $93f116a6493b17c3$export$f177ff57c101017a as ColumnFeatures, $93f116a6493b17c3$export$8c41dd563753848 as ColumnKeyboardNavigation, $93f116a6493b17c3$export$f02cc02ad0e0bba3 as Columns, $93f116a6493b17c3$export$4d8f6e6df85d9012 as ColumnCenters, $93f116a6493b17c3$export$b9d912252344e099 as CurrentColumn};
88
- //# sourceMappingURL=column-views.f7523c1d.js.map
88
+ //# sourceMappingURL=column-views.c92a359e.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;AAQO,SAAS,0CAAkB,KAAK;IACrC,MAAM,UAAE,MAAM,YAAE,QAAQ,SAAE,KAAK,UAAE,MAAM,aAAE,SAAS,aAAE,SAAS,EAAE,GAAG,MAAM,GACtE;IACF,IAAI,SAAE,KAAK,EAAE,GAAG;IAChB,MAAM,MAAM,CAAA,GAAA,aAAK,EAAE;IACnB,MAAM,KAAK,CAAA,GAAA,qBAAa,EAAE;IAC1B,MAAM,SAAE,KAAK,UAAE,MAAM,EAAE,GAAG,MAAM;QAAE,OAAO;QAAG,QAAQ;IAAE;IACtD,IAAI,SAAS,MACX,QAAQ,KAAK,GAAG,CAAC,OAAO,UAAU,IAAI;IAGxC,IAAI,kBAAkB;IAEtB,IAAI,WACF,kBAAkB;QAChB,MAAM,KAAK,GAAG,CAAC,OAAO;QACtB,IAAI,KAAK,GAAG,CAAC,OAAO;KACrB;IAGH,OAAO,CAAA,GAAA,sBAAA,EAAE,gBAAgB;aAAE;eAAK;mBAAO;IAAU,GAAG;QAClD,CAAA,GAAA,sBAAA,EACE,CAAA,GAAA,YAAI,GACJ;mBACE;oBACA;oBACA;oBACA;YACA,WAAW;uBACX;YACA,aAAa;6BACb;YACA,GAAG,IAAI;mBACP;QACF,GACA;YAAC,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,gBAAQ;YAAI;SAAS;KAE3B;AACH;AAKO,SAAS,0CAAuB,KAAK;IAC1C,MAAM,iBACJ,aAAa,oBACb,gBAAgB,YAChB,QAAQ,SACR,KAAK,UACL,SAAS,WACT,KAAK,aACL,SAAS,wBACT,uBAAuB,wBACvB,kBAAkB,eAClB,MAAM,EACN,GAAG,MACJ,GAAG;IAEJ,IAAI,UAA6B,UAAU;QAAC;QAAM;KAAG;IACrD,0CAA0C;IAC1C,IAAI,iBAAiB,MACnB,UAAU,CAAA,GAAA,kBAAU,EAAE;IAGxB,OAAO,CAAA,GAAA,sBAAA,EACL,2CACA;QAAE,QAAQ;eAAS;gBAAO;eAAQ;mBAAO;IAAU,GACnD;QACE;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAM,GAAG;YACT,UAAU;YACV,QAAQ,eAAe,WAAW;6BAClC;YACA,GAAG,IAAI;QACT;QACA,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,sBAAsB,CAAA,GAAA,yCAAM,GAAG;YAClC,UAAU;YACV,QAAQ,eAAe,WAAW;YAClC,aAAa;YACb,OAAO;YACP,GAAG,IAAI;QACT;QACA,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,iBAAiB,MAAM,CAAA,GAAA,yCAAY,GAAG;YAAE,SAAS;QAAc;KACrE;AAEL","sources":["packages/column-views/src/maps/column-navigation/svg/index.ts"],"sourcesContent":["import { useRef } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Globe, LandLayer } from \"@macrostrat/svg-map-components\";\nimport { geoCentroid } from \"d3-geo\";\nimport { useElementSize } from \"@macrostrat/ui-components\";\nimport { Columns, CurrentColumn } from \"./layers\";\nimport type { LngLatLike } from \"mapbox-gl\";\n\nexport function ResizableMapFrame(props) {\n const { center, children, style, margin, className, allowZoom, ...rest } =\n props;\n let { scale } = props;\n const ref = useRef(null);\n const sz = useElementSize(ref);\n const { width, height } = sz ?? { width: 0, height: 0 };\n if (scale == null) {\n scale = Math.min(width, height) + 2 * margin;\n }\n\n let zoomScaleExtent = null;\n\n if (allowZoom) {\n zoomScaleExtent = [\n 0.1 * Math.min(width, height),\n 2 * Math.max(width, height),\n ];\n }\n\n return h(\"div.map-area\", { ref, style, className }, [\n h(\n Globe,\n {\n width,\n height,\n margin,\n center,\n allowDrag: true,\n allowZoom,\n keepNorthUp: true,\n zoomScaleExtent,\n ...rest,\n scale,\n },\n [h(LandLayer), children],\n ),\n ]);\n}\n\ntype ColumnNavigationSVGMapProps = any;\nexport type { ColumnNavigationSVGMapProps };\n\nexport function ColumnNavigationSVGMap(props) {\n const {\n currentColumn,\n setCurrentColumn,\n children,\n style,\n margin = 10,\n scale,\n className,\n showInProcessColumns = false,\n showDebugLayers = false,\n center,\n ...rest\n } = props;\n\n let _center: LngLatLike | null = center ?? [-100, 38];\n // Override center if currentColumn is set\n if (currentColumn != null) {\n _center = geoCentroid(currentColumn);\n }\n\n return h(\n ResizableMapFrame,\n { center: _center, style, margin, scale, className },\n [\n children,\n h(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n showDebugLayers,\n ...rest,\n }),\n h.if(showInProcessColumns)(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n status_code: \"in process\",\n color: \"rgba(200,150,150, 0.5)\",\n ...rest,\n }),\n h.if(currentColumn != null)(CurrentColumn, { feature: currentColumn }),\n ],\n );\n}\n\nexport * from \"./layers\";\n"],"names":[],"version":3,"file":"column-views.f7523c1d.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;AAQO,SAAS,0CAAkB,KAAK;IACrC,MAAM,UAAE,MAAM,YAAE,QAAQ,SAAE,KAAK,UAAE,MAAM,aAAE,SAAS,aAAE,SAAS,EAAE,GAAG,MAAM,GACtE;IACF,IAAI,SAAE,KAAK,EAAE,GAAG;IAChB,MAAM,MAAM,CAAA,GAAA,aAAK,EAAE;IACnB,MAAM,KAAK,CAAA,GAAA,qBAAa,EAAE;IAC1B,MAAM,SAAE,KAAK,UAAE,MAAM,EAAE,GAAG,MAAM;QAAE,OAAO;QAAG,QAAQ;IAAE;IACtD,IAAI,SAAS,MACX,QAAQ,KAAK,GAAG,CAAC,OAAO,UAAU,IAAI;IAGxC,IAAI,kBAAkB;IAEtB,IAAI,WACF,kBAAkB;QAChB,MAAM,KAAK,GAAG,CAAC,OAAO;QACtB,IAAI,KAAK,GAAG,CAAC,OAAO;KACrB;IAGH,OAAO,CAAA,GAAA,sBAAA,EAAE,gBAAgB;aAAE;eAAK;mBAAO;IAAU,GAAG;QAClD,CAAA,GAAA,sBAAA,EACE,CAAA,GAAA,YAAI,GACJ;mBACE;oBACA;oBACA;oBACA;YACA,WAAW;uBACX;YACA,aAAa;6BACb;YACA,GAAG,IAAI;mBACP;QACF,GACA;YAAC,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,gBAAQ;YAAI;SAAS;KAE3B;AACH;AAKO,SAAS,0CAAuB,KAAK;IAC1C,MAAM,iBACJ,aAAa,oBACb,gBAAgB,YAChB,QAAQ,SACR,KAAK,UACL,SAAS,WACT,KAAK,aACL,SAAS,wBACT,uBAAuB,wBACvB,kBAAkB,eAClB,MAAM,EACN,GAAG,MACJ,GAAG;IAEJ,IAAI,UAA6B,UAAU;QAAC;QAAM;KAAG;IACrD,0CAA0C;IAC1C,IAAI,iBAAiB,MACnB,UAAU,CAAA,GAAA,kBAAU,EAAE;IAGxB,OAAO,CAAA,GAAA,sBAAA,EACL,2CACA;QAAE,QAAQ;eAAS;gBAAO;eAAQ;mBAAO;IAAU,GACnD;QACE;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAM,GAAG;YACT,UAAU;YACV,QAAQ,eAAe,WAAW;6BAClC;YACA,GAAG,IAAI;QACT;QACA,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,sBAAsB,CAAA,GAAA,yCAAM,GAAG;YAClC,UAAU;YACV,QAAQ,eAAe,WAAW;YAClC,aAAa;YACb,OAAO;YACP,GAAG,IAAI;QACT;QACA,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,iBAAiB,MAAM,CAAA,GAAA,yCAAY,GAAG;YAAE,SAAS;QAAc;KACrE;AAEL","sources":["packages/column-views/src/maps/column-navigation/svg/index.ts"],"sourcesContent":["import { useRef } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Globe, LandLayer } from \"@macrostrat/svg-map-components\";\nimport { geoCentroid } from \"d3-geo\";\nimport { useElementSize } from \"@macrostrat/ui-components\";\nimport { Columns, CurrentColumn } from \"./layers\";\nimport type { LngLatLike } from \"mapbox-gl\";\n\nexport function ResizableMapFrame(props) {\n const { center, children, style, margin, className, allowZoom, ...rest } =\n props;\n let { scale } = props;\n const ref = useRef(null);\n const sz = useElementSize(ref);\n const { width, height } = sz ?? { width: 0, height: 0 };\n if (scale == null) {\n scale = Math.min(width, height) + 2 * margin;\n }\n\n let zoomScaleExtent = null;\n\n if (allowZoom) {\n zoomScaleExtent = [\n 0.1 * Math.min(width, height),\n 2 * Math.max(width, height),\n ];\n }\n\n return h(\"div.map-area\", { ref, style, className }, [\n h(\n Globe,\n {\n width,\n height,\n margin,\n center,\n allowDrag: true,\n allowZoom,\n keepNorthUp: true,\n zoomScaleExtent,\n ...rest,\n scale,\n },\n [h(LandLayer), children],\n ),\n ]);\n}\n\ntype ColumnNavigationSVGMapProps = any;\nexport type { ColumnNavigationSVGMapProps };\n\nexport function ColumnNavigationSVGMap(props) {\n const {\n currentColumn,\n setCurrentColumn,\n children,\n style,\n margin = 10,\n scale,\n className,\n showInProcessColumns = false,\n showDebugLayers = false,\n center,\n ...rest\n } = props;\n\n let _center: LngLatLike | null = center ?? [-100, 38];\n // Override center if currentColumn is set\n if (currentColumn != null) {\n _center = geoCentroid(currentColumn);\n }\n\n return h(\n ResizableMapFrame,\n { center: _center, style, margin, scale, className },\n [\n children,\n h(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n showDebugLayers,\n ...rest,\n }),\n h.if(showInProcessColumns)(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n status_code: \"in process\",\n color: \"rgba(200,150,150, 0.5)\",\n ...rest,\n }),\n h.if(currentColumn != null)(CurrentColumn, { feature: currentColumn }),\n ],\n );\n}\n\nexport * from \"./layers\";\n"],"names":[],"version":3,"file":"column-views.c92a359e.js.map"}
@@ -15,7 +15,9 @@ $parcel$export($6cbea5de739af804$exports, "giga", () => $6cbea5de739af804$export
15
15
  $parcel$export($6cbea5de739af804$exports, "mega", () => $6cbea5de739af804$export$580f1e8cf64f2815, (v) => $6cbea5de739af804$export$580f1e8cf64f2815 = v);
16
16
  $parcel$export($6cbea5de739af804$exports, "large", () => $6cbea5de739af804$export$f09585a853dddd32, (v) => $6cbea5de739af804$export$f09585a853dddd32 = v);
17
17
  $parcel$export($6cbea5de739af804$exports, "small", () => $6cbea5de739af804$export$3c17b0e969a90510, (v) => $6cbea5de739af804$export$3c17b0e969a90510 = v);
18
+ $parcel$export($6cbea5de739af804$exports, "unconformity-inner", () => $6cbea5de739af804$export$282a4eb2ce28e6d0, (v) => $6cbea5de739af804$export$282a4eb2ce28e6d0 = v);
18
19
  $parcel$export($6cbea5de739af804$exports, "unconformity-text", () => $6cbea5de739af804$export$925235908943319a, (v) => $6cbea5de739af804$export$925235908943319a = v);
20
+ $parcel$export($6cbea5de739af804$exports, "prefix", () => $6cbea5de739af804$export$82e9f45cca5ba907, (v) => $6cbea5de739af804$export$82e9f45cca5ba907 = v);
19
21
  $parcel$export($6cbea5de739af804$exports, "column-title-row", () => $6cbea5de739af804$export$54e339397196c97b, (v) => $6cbea5de739af804$export$54e339397196c97b = v);
20
22
  var $6cbea5de739af804$export$e908cef0cccb98df;
21
23
  var $6cbea5de739af804$export$82c2e1a892d790ab;
@@ -28,7 +30,9 @@ var $6cbea5de739af804$export$197e40aa3a484017;
28
30
  var $6cbea5de739af804$export$580f1e8cf64f2815;
29
31
  var $6cbea5de739af804$export$f09585a853dddd32;
30
32
  var $6cbea5de739af804$export$3c17b0e969a90510;
33
+ var $6cbea5de739af804$export$282a4eb2ce28e6d0;
31
34
  var $6cbea5de739af804$export$925235908943319a;
35
+ var $6cbea5de739af804$export$82e9f45cca5ba907;
32
36
  var $6cbea5de739af804$export$54e339397196c97b;
33
37
  $6cbea5de739af804$export$e908cef0cccb98df = "column-container_afc440";
34
38
  $6cbea5de739af804$export$82c2e1a892d790ab = "timescale-column_afc440";
@@ -41,9 +45,11 @@ $6cbea5de739af804$export$197e40aa3a484017 = "giga_afc440";
41
45
  $6cbea5de739af804$export$580f1e8cf64f2815 = "mega_afc440";
42
46
  $6cbea5de739af804$export$f09585a853dddd32 = "large_afc440";
43
47
  $6cbea5de739af804$export$3c17b0e969a90510 = "small_afc440";
48
+ $6cbea5de739af804$export$282a4eb2ce28e6d0 = "unconformity-inner_afc440";
44
49
  $6cbea5de739af804$export$925235908943319a = "unconformity-text_afc440";
50
+ $6cbea5de739af804$export$82e9f45cca5ba907 = "prefix_afc440";
45
51
  $6cbea5de739af804$export$54e339397196c97b = "column-title-row_afc440";
46
52
 
47
53
 
48
54
  export {$6cbea5de739af804$exports as default};
49
- //# sourceMappingURL=column-views.cdadc5c2.js.map
55
+ //# sourceMappingURL=column-views.cc733361.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAdA,4CAAqC;AACrC,4CAAqC;AACrC,4CAAiC;AACjC,4CAA4C;AAC5C,4CAAgC;AAChC,4CAAwC;AACxC,4CAAiC;AACjC,4CAAyB;AACzB,4CAAyB;AACzB,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAAuC;AACvC,4CAAsC;AACtC,4CAA2B;AAC3B,4CAAqC","sources":["packages/column-views/src/column.module.sass"],"sourcesContent":[".column-container, body:global(.light-mode) .column-container\n --column-background-color: var(--background-color, #fff)\n --column-stroke-color: var(--text-emphasized-color, #000)\n --column-text-color: var(--text-emphasized-color, #000)\n\n/* We have to duplicate the dark mode styles here\n because we want to set them either if the preferred\n color scheme is dark OR if dark mode is explicitly enabled.\n If dark mode is explicitly enabled, we want to override\n the media query. */\n@media (prefers-color-scheme: dark)\n body:not(:global(.light-mode)) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\nbody:global(.dark-mode) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\n.column-container\n padding-top: var(--column-padding-top)\n padding-bottom: var(--column-padding-bottom)\n padding-left: var(--column-padding-left)\n padding-right: var(--column-padding-right)\n\n.column-container :global\n .column\n display: flex\n flex-direction: row\n position: relative\n height: fit-content\n\n g.lithology-column .column-clip-frame\n stroke: none\n\n .unit\n stroke: var(--column-stroke-color)\n stroke-width: 1px\n\n .selection-overlay\n fill: var(--selection-overlay-color, red)\n fill-opacity: var(--selection-overlay-opacity, 0.5)\n\n g.lithology-column use.frame\n stroke: var(--column-stroke-color)\n stroke-width: 1.5px !important\n pointer-events: none\n\n.column-container :global .unit-label\n text-align: center\n\n.column-container :global .col-note-label\n font-size: 10px\n line-height: 9px\n border-left: none !important\n margin: 1px 0\n\n.column-container :global g.height-range\n display: none\n\n.column-container :global .note-inner\n border: none\n padding: 1px\n\n.column-container :global .frame rect\n fill: transparent\n\n.column-container :global .default-buttons\n width: 100%\n margin: 0 -10px\n\n.column-container :global div.section\n display: flex\n flex-direction: row\n\n.column-container :global .section .divisions .unit\n cursor: pointer\n\n.column-container :global(.timescale)\n width: calc(calc(1.5em + 1.5px) * var(--timescale-level-count, 4))\n --timescale-level-size: 1.5em\n\n.timescale-column\n position: relative\n\n.section-main\n position: relative\n margin-bottom: -4px\n\n.section-units-container\n position: relative\n\n.main-column\n position: relative\n\n.unconformity-labels\n position: absolute\n top: 0\n left: 0\n pointer-events: none\n\n\n.unconformity\n position: absolute\n font-family: var(--label-font-family, sans-serif)\n top: 0px\n //font-size: 12px\n font-weight: 400\n\n font-size: 0.8em\n &.giga\n font-weight: 800\n //font-size: 1em\n &.mega\n font-weight: 700\n //font-size: 0.9em\n &.large\n font-weight: 500\n &.small\n font-weight: 300\n --unit-font-weight: 400\n\n.unconformity-inner\n //border-left: 1.5px dotted var(--secondary-color)\n position: absolute\n top: 5px\n bottom: 5px\n left: -3px\n right: -2px\n display: flex\n justify-content: center\n align-items: center\n text-align: center\n\n.unconformity-text\n width: var(--column-width)\n --unit-font-style: normal\n .prefix\n font-weight: 400\n color: var(--secondary-color)\n\n\n\n.column-title-row\n display: flex\n flex-direction: row\n gap: 1em\n justify-content: space-between\n align-items: baseline\n"],"names":[],"version":3,"file":"column-views.cc733361.js.map"}
@@ -1,6 +1,7 @@
1
1
  import "./column-views.e40b8bfb.css";
2
2
  import $3vk6I$columnviews3465c8adjs from "./column-views.3465c8ad.js";
3
- import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.1e055ed5.js";
3
+ import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.4fd4ec92.js";
4
+ import {buildColumnSurfaces as $90d6b105908858a7$export$151c207e6887154c} from "./column-views.70164236.js";
4
5
  import $3vk6I$macrostrathyper from "@macrostrat/hyper";
5
6
  import {useAPIResult as $3vk6I$useAPIResult} from "@macrostrat/ui-components";
6
7
 
@@ -33,11 +34,12 @@ function $parcel$interopDefault(a) {
33
34
 
34
35
 
35
36
 
37
+
36
38
  const $1a65c216af27346a$var$h = (0, $3vk6I$macrostrathyper).styled((0, ($parcel$interopDefault($3vk6I$columnviews3465c8adjs))));
37
39
  function $1a65c216af27346a$export$1d1ebe9df97e8db() {
38
40
  const col_id = (0, $d5074f164411387e$export$6fb40844db555b2)()?.[0]?.col_id;
39
41
  const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
40
- const ageModel = (0, $3vk6I$useAPIResult)("https://macrostrat.org/api/v2/age_model", {
42
+ const ageModel = (0, $3vk6I$useAPIResult)("https://dev.macrostrat.org/api/v2/age_model", {
41
43
  col_id: col_id
42
44
  }, (res)=>res.success.data);
43
45
  if (ageModel == null) return null;
@@ -51,7 +53,23 @@ function $1a65c216af27346a$export$1d1ebe9df97e8db() {
51
53
  });
52
54
  }));
53
55
  }
56
+ function $1a65c216af27346a$export$ddca1abd3171ec6f() {
57
+ /** Overlay showing age surfaces. This is like the boundary age model overlay but
58
+ * it is computed on the fly from unit tops and bottoms.
59
+ */ const units = (0, $d5074f164411387e$export$6fb40844db555b2)();
60
+ const surfaces = (0, $90d6b105908858a7$export$151c207e6887154c)(units);
61
+ const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
62
+ return $1a65c216af27346a$var$h("div.boundary-age-model", surfaces.map((surface)=>{
63
+ const height = scale(surface.age);
64
+ return $1a65c216af27346a$var$h("div.boundary-age-model-surface", {
65
+ key: surface.index,
66
+ style: {
67
+ top: `${height}px`
68
+ }
69
+ });
70
+ }));
71
+ }
54
72
 
55
73
 
56
- export {$1a65c216af27346a$export$1d1ebe9df97e8db as BoundaryAgeModelOverlay};
57
- //# sourceMappingURL=column-views.4d22c21c.js.map
74
+ export {$1a65c216af27346a$export$1d1ebe9df97e8db as BoundaryAgeModelOverlay, $1a65c216af27346a$export$ddca1abd3171ec6f as ComputedSurfacesOverlay};
75
+ //# sourceMappingURL=column-views.d15d8655.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;;AAOH,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAoBrB,SAAS;IACd,MAAM,SAAS,CAAA,GAAA,wCAAiB,KAAK,CAAC,EAAE,EAAE;IAC1C,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,MAAM,WAAW,CAAA,GAAA,mBAAW,EAC1B,+CACA;gBAAE;IAAO,GACT,CAAC,MAAQ,IAAI,OAAO,CAAC,IAAI;IAG3B,IAAI,YAAY,MACd,OAAO;IAGT,OAAO,wBACL,0BACA,SAAS,GAAG,CAAC,CAAC;QACZ,MAAM,SAAS,MAAM,QAAQ,SAAS;QAEtC,OAAO,wBAAE,kCAAkC;YACzC,KAAK,QAAQ,WAAW;YACxB,OAAO;gBAAE,KAAK,GAAG,OAAO,EAAE,CAAC;YAAC;QAC9B;IACF;AAEJ;AAEO,SAAS;IACd;;GAEC,GACD,MAAM,QAAQ,CAAA,GAAA,wCAAiB;IAC/B,MAAM,WAAW,CAAA,GAAA,yCAAkB,EAAE;IACrC,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAE9B,OAAO,wBACL,0BACA,SAAS,GAAG,CAAC,CAAC;QACZ,MAAM,SAAS,MAAM,QAAQ,GAAG;QAChC,OAAO,wBAAE,kCAAkC;YACzC,KAAK,QAAQ,KAAK;YAClB,OAAO;gBAAE,KAAK,GAAG,OAAO,EAAE,CAAC;YAAC;QAC9B;IACF;AAEJ","sources":["packages/column-views/src/age-model-overlay.ts"],"sourcesContent":["/** An in-development overlay for a column's age model.\n *\n * Age model info:\n * {\n * \"boundary_id\": 8049,\n * \"col_id\": 432,\n * \"section_id\": 3104,\n * \"interval_id\": 268,\n * \"interval_name\": \"Calymmian\",\n * \"age_bottom\": 1600,\n * \"age_top\": 1400,\n * \"rel_position\": 0.85,\n * \"model_age\": 1430,\n * \"boundary_status\": \"absolute\",\n * \"boundary_type\": \"\",\n * \"boundary_position\": null,\n * \"unit_below\": 11541,\n * \"unit_above\": 0,\n * \"ref_id\": 217\n * },\n *\n * */\n\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./age-model-overlay.module.sass\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport { useCompositeScale, useMacrostratUnits } from \"./data-provider\";\nimport { buildColumnSurfaces } from \"./prepare-units/dynamic-scales\";\nconst h = hyper.styled(styles);\n\ninterface AgeModelSurface {\n boundary_id: number;\n col_id: number;\n section_id: number;\n interval_id: number;\n interval_name: string;\n age_bottom: number;\n age_top: number;\n rel_position: number;\n model_age: number;\n boundary_status: \"absolute\" | \"relative\" | \"modeled\";\n boundary_type: string;\n boundary_position: null | number;\n unit_below: number;\n unit_above: number;\n ref_id: number;\n}\n\nexport function BoundaryAgeModelOverlay() {\n const col_id = useMacrostratUnits()?.[0]?.col_id;\n const scale = useCompositeScale();\n\n const ageModel = useAPIResult(\n \"https://dev.macrostrat.org/api/v2/age_model\",\n { col_id },\n (res) => res.success.data,\n );\n\n if (ageModel == null) {\n return null;\n }\n\n return h(\n \"div.boundary-age-model\",\n ageModel.map((surface) => {\n const height = scale(surface.model_age);\n\n return h(\"div.boundary-age-model-surface\", {\n key: surface.boundary_id,\n style: { top: `${height}px` },\n });\n }),\n );\n}\n\nexport function ComputedSurfacesOverlay() {\n /** Overlay showing age surfaces. This is like the boundary age model overlay but\n * it is computed on the fly from unit tops and bottoms.\n */\n const units = useMacrostratUnits();\n const surfaces = buildColumnSurfaces(units);\n const scale = useCompositeScale();\n\n return h(\n \"div.boundary-age-model\",\n surfaces.map((surface) => {\n const height = scale(surface.age);\n return h(\"div.boundary-age-model-surface\", {\n key: surface.index,\n style: { top: `${height}px` },\n });\n }),\n );\n}\n"],"names":[],"version":3,"file":"column-views.d15d8655.js.map"}
@@ -1,6 +1,6 @@
1
1
  import {useMeasurementData as $5dbb619f2c7bef60$export$8a0335fd9ff72150} from "./column-views.a7c5ae16.js";
2
- import {IsotopeDataPoint as $5f39f3d52558a1d0$export$4cb5d059db4e2bd, IsotopesDataArea as $5f39f3d52558a1d0$export$309ef8546e07d921, useDataLocator as $5f39f3d52558a1d0$export$919dbb10b6b5b75} from "./column-views.0732894f.js";
3
- import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.1e055ed5.js";
2
+ import {IsotopeDataPoint as $5f39f3d52558a1d0$export$4cb5d059db4e2bd, IsotopesDataArea as $5f39f3d52558a1d0$export$309ef8546e07d921, useDataLocator as $5f39f3d52558a1d0$export$919dbb10b6b5b75} from "./column-views.0f7f6ee6.js";
3
+ import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.4fd4ec92.js";
4
4
  import "./column-views.708140ab.css";
5
5
  import $0zDA3$columnviews6992ca88js from "./column-views.6992ca88.js";
6
6
  import {useMemo as $0zDA3$useMemo} from "react";
@@ -184,4 +184,4 @@ function $d71d096cfe00860f$var$ColumnScaleLines(props) {
184
184
 
185
185
 
186
186
  export {$d71d096cfe00860f$export$c69bd0285aa5d775 as IsotopesDataset, $d71d096cfe00860f$export$5d8aa8022c284748 as IsotopesColumn};
187
- //# sourceMappingURL=column-views.5e2dc19d.js.map
187
+ //# sourceMappingURL=column-views.d261b02d.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/column-views/src/facets/carbon-isotopes/isotopes-column.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport hyper from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { AxisBottom } from \"@visx/axis\";\nimport { useMeasurementData } from \"./data-provider\";\n\nimport {\n IsotopesDataArea,\n useDataLocator,\n IsotopeDataPoint,\n} from \"./data-area\";\nimport { referenceMeasuresToColumn } from \"@macrostrat/stratigraphy-utils\";\nimport {\n SVG,\n ColumnLayoutProvider,\n useColumnLayout,\n} from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n} from \"../../data-provider\";\nimport styles from \"./isotopes-column.module.sass\";\nimport { scaleLinear } from \"d3-scale\";\n\nconst h = hyper.styled(styles);\n\ntype IsotopesTextProps = {\n datum: any;\n text: string;\n};\n\nfunction IsotopeText({ datum, text, ...rest }: IsotopesTextProps) {\n const { pointLocator } = useDataLocator();\n const [x, y] = pointLocator(datum);\n return h(\n \"text\",\n {\n x,\n y,\n ...rest,\n },\n text,\n );\n}\n\ninterface ScaleLineProps {\n value: number;\n className?: string;\n labelBottom?: boolean;\n labelOffset?: number;\n strokeDasharray?: string;\n stroke?: string | number;\n}\n\nfunction ScaleLine(props: ScaleLineProps) {\n let { value, className, labelBottom, labelOffset, ...rest } = props;\n const { sections } = useMacrostratColumnData();\n\n const { xScale } = useColumnLayout();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = classNames(className, { zero: value === 0 });\n return h(\"g.tick\", { transform, className, key: value }, [\n h(\n \"g.tick-lines\",\n sections.map((d) => {\n const { scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return h(\"line\", {\n y1,\n y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1,\n });\n }),\n ),\n ]);\n}\n\nfunction unnestPoints(measures) {\n let points = [];\n for (const meas of measures) {\n const vals = meas.measure_value.map((d, i) => {\n return {\n value: d,\n age: meas.measure_age[i],\n position: meas.measure_position[i],\n unit_id: meas.unit_id,\n sample_id: meas.sample_no[i],\n measurement: meas.measurement,\n };\n });\n Array.prototype.push.apply(points, vals);\n }\n return points;\n}\n\ninterface IsotopesDatasetProps {\n color: string;\n parameter: string;\n}\n\ninterface IsotopeColumnProps extends IsotopesDatasetProps {\n width: number;\n tickValues?: number[];\n label: string;\n domain: [number, number];\n transform?: string;\n getHeight?: Function;\n nTicks?: number;\n showAxis?: boolean;\n}\n\nfunction IsotopesDataset(props) {\n const { parameter, color = \"dodgerblue\" } = props;\n const units = useMacrostratUnits();\n const measures = useMeasurementData() ?? [];\n\n const points = useMemo(() => {\n const data = measures.filter((d) => d.measurement === parameter);\n const refMeasures = referenceMeasuresToColumn(units, data);\n return unnestPoints(refMeasures);\n }, [measures, parameter, units]);\n\n return h(\n IsotopesDataArea,\n {\n getHeight(d) {\n return d.age;\n },\n } as any,\n h(\n \"g.data-points\",\n points.map((d) => {\n return h(IsotopeDataPoint, {\n datum: d,\n fill: color,\n });\n }),\n ),\n );\n}\n\nfunction IsotopesColumn(\n props: IsotopeColumnProps & { children?: React.ReactNode },\n) {\n const {\n width = 120,\n domain = [-14, 6],\n parameter,\n label,\n color = \"dodgerblue\",\n children = null,\n transform,\n getHeight,\n showAxis = true,\n tickValues: _tickVals,\n nTicks = 6,\n ...rest\n } = props;\n\n const { totalHeight } = useMacrostratColumnData();\n\n let _children: any = children;\n if (children == null && parameter != null) {\n _children = h(IsotopesDataset, { parameter, color, getHeight });\n }\n\n const xScale = useMemo(\n () => scaleLinear().domain(domain).range([0, width]),\n [domain, width],\n );\n\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n\n return h(\"div.isotopes-column\", [\n h(\n SVG,\n {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15,\n },\n h(\n ColumnLayoutProvider,\n { width, xScale },\n h(\"g.isotopes-column\", { className: parameter, transform }, [\n h(ColumnScaleLines, {\n xScale,\n tickValues,\n width,\n ...rest,\n }),\n _children,\n ]),\n ),\n ),\n h.if(showAxis)(ColumnScaleAxis, {\n width,\n label: label ?? parameter,\n xScale,\n tickValues,\n ...rest,\n }),\n ]);\n}\n\nfunction ColumnScaleAxis(props) {\n const { label, xScale, width, showAxis = true, tickValues, ...rest } = props;\n\n return h(\"div.isotopes-scale-axis\", [\n h(\n SVG,\n {\n innerWidth: width,\n height: 45,\n paddingH: 15,\n },\n [\n h(AxisBottom, {\n scale: xScale,\n tickLength: 5,\n tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label,\n }),\n ],\n ),\n ]);\n}\n\nfunction ColumnScaleLines(props) {\n const { tickValues, xScale } = props;\n\n return h(\n \"g.scale-lines\",\n tickValues.map((value) => {\n return h(ScaleLine, { value });\n }),\n );\n}\n\nexport { IsotopesColumn, IsotopesDataset };\n"],"names":[],"version":3,"file":"column-views.5e2dc19d.js.map"}
1
+ {"mappings":"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","sources":["packages/column-views/src/facets/carbon-isotopes/isotopes-column.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport hyper from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { AxisBottom } from \"@visx/axis\";\nimport { useMeasurementData } from \"./data-provider\";\n\nimport {\n IsotopesDataArea,\n useDataLocator,\n IsotopeDataPoint,\n} from \"./data-area\";\nimport { referenceMeasuresToColumn } from \"@macrostrat/stratigraphy-utils\";\nimport {\n SVG,\n ColumnLayoutProvider,\n useColumnLayout,\n} from \"@macrostrat/column-components\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n} from \"../../data-provider\";\nimport styles from \"./isotopes-column.module.sass\";\nimport { scaleLinear } from \"d3-scale\";\n\nconst h = hyper.styled(styles);\n\ntype IsotopesTextProps = {\n datum: any;\n text: string;\n};\n\nfunction IsotopeText({ datum, text, ...rest }: IsotopesTextProps) {\n const { pointLocator } = useDataLocator();\n const [x, y] = pointLocator(datum);\n return h(\n \"text\",\n {\n x,\n y,\n ...rest,\n },\n text,\n );\n}\n\ninterface ScaleLineProps {\n value: number;\n className?: string;\n labelBottom?: boolean;\n labelOffset?: number;\n strokeDasharray?: string;\n stroke?: string | number;\n}\n\nfunction ScaleLine(props: ScaleLineProps) {\n let { value, className, labelBottom, labelOffset, ...rest } = props;\n const { sections } = useMacrostratColumnData();\n\n const { xScale } = useColumnLayout();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = classNames(className, { zero: value === 0 });\n return h(\"g.tick\", { transform, className, key: value }, [\n h(\n \"g.tick-lines\",\n sections.map((d) => {\n const { scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return h(\"line\", {\n y1,\n y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1,\n });\n }),\n ),\n ]);\n}\n\nfunction unnestPoints(measures) {\n let points = [];\n for (const meas of measures) {\n const vals = meas.measure_value.map((d, i) => {\n return {\n value: d,\n age: meas.measure_age[i],\n position: meas.measure_position[i],\n unit_id: meas.unit_id,\n sample_id: meas.sample_no[i],\n measurement: meas.measurement,\n };\n });\n Array.prototype.push.apply(points, vals);\n }\n return points;\n}\n\ninterface IsotopesDatasetProps {\n color: string;\n parameter: string;\n}\n\ninterface IsotopeColumnProps extends IsotopesDatasetProps {\n width: number;\n tickValues?: number[];\n label: string;\n domain: [number, number];\n transform?: string;\n getHeight?: Function;\n nTicks?: number;\n showAxis?: boolean;\n}\n\nfunction IsotopesDataset(props) {\n const { parameter, color = \"dodgerblue\" } = props;\n const units = useMacrostratUnits();\n const measures = useMeasurementData() ?? [];\n\n const points = useMemo(() => {\n const data = measures.filter((d) => d.measurement === parameter);\n const refMeasures = referenceMeasuresToColumn(units, data);\n return unnestPoints(refMeasures);\n }, [measures, parameter, units]);\n\n return h(\n IsotopesDataArea,\n {\n getHeight(d) {\n return d.age;\n },\n } as any,\n h(\n \"g.data-points\",\n points.map((d) => {\n return h(IsotopeDataPoint, {\n datum: d,\n fill: color,\n });\n }),\n ),\n );\n}\n\nfunction IsotopesColumn(\n props: IsotopeColumnProps & { children?: React.ReactNode },\n) {\n const {\n width = 120,\n domain = [-14, 6],\n parameter,\n label,\n color = \"dodgerblue\",\n children = null,\n transform,\n getHeight,\n showAxis = true,\n tickValues: _tickVals,\n nTicks = 6,\n ...rest\n } = props;\n\n const { totalHeight } = useMacrostratColumnData();\n\n let _children: any = children;\n if (children == null && parameter != null) {\n _children = h(IsotopesDataset, { parameter, color, getHeight });\n }\n\n const xScale = useMemo(\n () => scaleLinear().domain(domain).range([0, width]),\n [domain, width],\n );\n\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n\n return h(\"div.isotopes-column\", [\n h(\n SVG,\n {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15,\n },\n h(\n ColumnLayoutProvider,\n { width, xScale },\n h(\"g.isotopes-column\", { className: parameter, transform }, [\n h(ColumnScaleLines, {\n xScale,\n tickValues,\n width,\n ...rest,\n }),\n _children,\n ]),\n ),\n ),\n h.if(showAxis)(ColumnScaleAxis, {\n width,\n label: label ?? parameter,\n xScale,\n tickValues,\n ...rest,\n }),\n ]);\n}\n\nfunction ColumnScaleAxis(props) {\n const { label, xScale, width, showAxis = true, tickValues, ...rest } = props;\n\n return h(\"div.isotopes-scale-axis\", [\n h(\n SVG,\n {\n innerWidth: width,\n height: 45,\n paddingH: 15,\n },\n [\n h(AxisBottom, {\n scale: xScale,\n tickLength: 5,\n tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label,\n }),\n ],\n ),\n ]);\n}\n\nfunction ColumnScaleLines(props) {\n const { tickValues, xScale } = props;\n\n return h(\n \"g.scale-lines\",\n tickValues.map((value) => {\n return h(ScaleLine, { value });\n }),\n );\n}\n\nexport { IsotopesColumn, IsotopesDataset };\n"],"names":[],"version":3,"file":"column-views.d261b02d.js.map"}
@@ -1,11 +1,11 @@
1
- import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557, LegendPanelHeader as $448b24baeef3b229$export$fc503c39cc5cff43, UnitDetailsFeature as $448b24baeef3b229$export$ec297f6f9a6ccad0, Duration as $448b24baeef3b229$export$3b11bc38611c5941, ReferencesField as $448b24baeef3b229$export$895d4931dd696e25, Identifier as $448b24baeef3b229$export$989167234458594d, AgeLabel as $448b24baeef3b229$export$37ebfd237811b1eb} from "./column-views.cc5244c4.js";
2
- import {UnitDetailsPopover as $a9bcb536274d1bf9$export$6716aecc2c9afbe2, UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.75ea6dbe.js";
3
- import {UnitDetailsPanelWithNavigation as $d418ca9cbe9b0f3c$export$cfdbe8496aa51962} from "./column-views.a195109e.js";
1
+ import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557, LegendPanelHeader as $448b24baeef3b229$export$fc503c39cc5cff43, UnitDetailsFeature as $448b24baeef3b229$export$ec297f6f9a6ccad0, Duration as $448b24baeef3b229$export$3b11bc38611c5941, ReferencesField as $448b24baeef3b229$export$895d4931dd696e25, Identifier as $448b24baeef3b229$export$989167234458594d, AgeLabel as $448b24baeef3b229$export$37ebfd237811b1eb, ClickableText as $448b24baeef3b229$export$b6867fc5221f9f65} from "./column-views.77561197.js";
2
+ import {UnitDetailsPopover as $a9bcb536274d1bf9$export$6716aecc2c9afbe2, UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.c518ef14.js";
3
+ import {UnitDetailsPanelWithNavigation as $d418ca9cbe9b0f3c$export$cfdbe8496aa51962} from "./column-views.ba0381cc.js";
4
4
 
5
5
 
6
6
 
7
7
 
8
8
 
9
9
 
10
- export {$448b24baeef3b229$export$fbd245232df17557 as UnitDetailsPanel, $448b24baeef3b229$export$fc503c39cc5cff43 as LegendPanelHeader, $448b24baeef3b229$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $448b24baeef3b229$export$3b11bc38611c5941 as Duration, $448b24baeef3b229$export$895d4931dd696e25 as ReferencesField, $448b24baeef3b229$export$989167234458594d as Identifier, $448b24baeef3b229$export$37ebfd237811b1eb as AgeLabel, $a9bcb536274d1bf9$export$6716aecc2c9afbe2 as UnitDetailsPopover, $a9bcb536274d1bf9$export$db1115efab13710d as UnitSelectionPopover, $d418ca9cbe9b0f3c$export$cfdbe8496aa51962 as UnitDetailsPanelWithNavigation};
11
- //# sourceMappingURL=column-views.fbc7401f.js.map
10
+ export {$448b24baeef3b229$export$fbd245232df17557 as UnitDetailsPanel, $448b24baeef3b229$export$fc503c39cc5cff43 as LegendPanelHeader, $448b24baeef3b229$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $448b24baeef3b229$export$3b11bc38611c5941 as Duration, $448b24baeef3b229$export$895d4931dd696e25 as ReferencesField, $448b24baeef3b229$export$989167234458594d as Identifier, $448b24baeef3b229$export$37ebfd237811b1eb as AgeLabel, $448b24baeef3b229$export$b6867fc5221f9f65 as ClickableText, $a9bcb536274d1bf9$export$6716aecc2c9afbe2 as UnitDetailsPopover, $a9bcb536274d1bf9$export$db1115efab13710d as UnitSelectionPopover, $d418ca9cbe9b0f3c$export$cfdbe8496aa51962 as UnitDetailsPanelWithNavigation};
11
+ //# sourceMappingURL=column-views.d406665d.js.map
@@ -1 +1 @@
1
- {"mappings":"","sources":["packages/column-views/src/unit-details/index.ts"],"sourcesContent":["export * from \"./panel\";\nexport * from \"./popover\";\nexport * from \"./modal-panel\";\n"],"names":[],"version":3,"file":"column-views.fbc7401f.js.map"}
1
+ {"mappings":"","sources":["packages/column-views/src/unit-details/index.ts"],"sourcesContent":["export * from \"./panel\";\nexport * from \"./popover\";\nexport * from \"./modal-panel\";\n"],"names":[],"version":3,"file":"column-views.d406665d.js.map"}
@@ -1,5 +1,5 @@
1
- import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.39657bbf.js";
2
- import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.1e055ed5.js";
1
+ import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.54f8b909.js";
2
+ import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4fd4ec92.js";
3
3
  import $5ZBll$macrostrathyper from "@macrostrat/hyper";
4
4
  import $5ZBll$react, {useCallback as $5ZBll$useCallback, useMemo as $5ZBll$useMemo} from "react";
5
5
  import {NotesColumn as $5ZBll$NotesColumn} from "@macrostrat/column-components";
@@ -66,4 +66,4 @@ function $bc17276da4abb183$export$594d19cdd88f8c16(props) {
66
66
 
67
67
 
68
68
  export {$bc17276da4abb183$export$2f2e65a797f8fc1e as noteForDivision, $bc17276da4abb183$export$c9757aeb43a67df0 as defaultNameFunction, $bc17276da4abb183$export$6316e673796ccb55 as UnitDataColumn, $bc17276da4abb183$export$594d19cdd88f8c16 as UnitNamesColumn};
69
- //# sourceMappingURL=column-views.7715e35e.js.map
69
+ //# sourceMappingURL=column-views.d69c4a9f.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;AA+BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,OAAO;gBACL;oBACA;QACA,MAAM;QACN,IAAI,IAAI,OAAO;IACjB;AACF;AAEA,MAAM,4CAAsB,CAAC;IAC3B,OAAO,IAAI,SAAS,CACjB,OAAO,CAAC,OAAO,UACf,OAAO,CAAC,MAAM,aACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,sCAAgB,KAAoB;IAC3C,MAAM,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAClD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAC9B,MAAM,QACJ,OAAO,kBACP,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,OACZ,GAAG,MACJ,GAAG;IAEJ,MAAM,sBAAsB,CAAA,GAAA,kBAAU,EACpC,CAAC;QACC,IAAI,iBAAiB,GAAG,OAAO;QAC/B,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM;QACxD,OAAO,KAAK;IACd,GACA;QAAC;QAAO;KAAc;IAGxB,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM,QAAoB,UACvB,MAAM,CAAC,kBACP,GAAG,CAAC,CAAC,IAAa,0CAAgB,GAAG;sBAAE;QAAS,IAChD,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAS3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,uBAAuB,CAAA,GAAA,cAAM,EACjC,IAAM,CAAC;YACL,MAAM,QAAE,IAAI,EAAE,GAAG;YACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;QACxD,GACA;QAAC;KAAgB;IAGnB,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;QACvB,eAAe,iBAAiB;QAChC,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useCallback, useMemo } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit } from \"./types\";\nimport React from \"react\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { CompositeColumnScale } from \"./composite\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n scale?: CompositeColumnScale;\n}\n\ntype UnitNote = {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n};\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType },\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n minimumHeight = 0,\n divisions = units,\n ...rest\n } = props;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight],\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const defaultNoteComponent = useMemo(\n () => (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n },\n [nameForDivision],\n );\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? defaultNoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"column-views.7715e35e.js.map"}
1
+ {"mappings":";;;;;;;;;;;AA+BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,OAAO;gBACL;oBACA;QACA,MAAM;QACN,IAAI,IAAI,OAAO;IACjB;AACF;AAEA,MAAM,4CAAsB,CAAC;IAC3B,OAAO,IAAI,SAAS,CACjB,OAAO,CAAC,OAAO,UACf,OAAO,CAAC,MAAM,aACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,sCAAgB,KAAoB;IAC3C,MAAM,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAClD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAC9B,MAAM,QACJ,OAAO,kBACP,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,OACZ,GAAG,MACJ,GAAG;IAEJ,MAAM,sBAAsB,CAAA,GAAA,kBAAU,EACpC,CAAC;QACC,IAAI,iBAAiB,GAAG,OAAO;QAC/B,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM;QACxD,OAAO,KAAK;IACd,GACA;QAAC;QAAO;KAAc;IAGxB,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM,QAAoB,UACvB,MAAM,CAAC,kBACP,GAAG,CAAC,CAAC,IAAa,0CAAgB,GAAG;sBAAE;QAAS,IAChD,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAS3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,uBAAuB,CAAA,GAAA,cAAM,EACjC,IAAM,CAAC;YACL,MAAM,QAAE,IAAI,EAAE,GAAG;YACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;QACxD,GACA;QAAC;KAAgB;IAGnB,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;QACvB,eAAe,iBAAiB;QAChC,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useCallback, useMemo } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit } from \"./types\";\nimport React from \"react\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { CompositeColumnScale } from \"./composite\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n scale?: CompositeColumnScale;\n}\n\ntype UnitNote = {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n};\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType },\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n minimumHeight = 0,\n divisions = units,\n ...rest\n } = props;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight],\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const defaultNoteComponent = useMemo(\n () => (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n },\n [nameForDivision],\n );\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? defaultNoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"column-views.d69c4a9f.js.map"}
@@ -1,13 +1,13 @@
1
- import {ColoredUnitComponent as $4c8184c4a7317749$export$6012fd1584b5d0c0} from "./column-views.a6301a41.js";
2
- import {UnitKeyboardNavigation as $4d5d1c15f39f6a14$export$70f5ee19650fc7d1, UnitSelectionProvider as $4d5d1c15f39f6a14$export$f19d75b1d4b676a4, useUnitSelectionStore as $4d5d1c15f39f6a14$export$b220b1d3591dc9e5} from "./column-views.64a84c43.js";
3
- import {UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.75ea6dbe.js";
1
+ import {ColoredUnitComponent as $4c8184c4a7317749$export$6012fd1584b5d0c0} from "./column-views.986e7566.js";
2
+ import {UnitKeyboardNavigation as $4d5d1c15f39f6a14$export$70f5ee19650fc7d1, UnitSelectionProvider as $4d5d1c15f39f6a14$export$f19d75b1d4b676a4, useUnitSelectionStore as $4d5d1c15f39f6a14$export$b220b1d3591dc9e5} from "./column-views.f2fd0e4a.js";
3
+ import {UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.c518ef14.js";
4
4
  import "./column-views.338a7a83.css";
5
5
  import $2d5zd$columnviews6a954628js from "./column-views.6a954628.js";
6
- import {CompositeTimescaleCore as $7d0f52717c0de7e1$export$463f46772c64d403} from "./column-views.77b49a43.js";
7
- import {buildCorrelationChartData as $2c6a8e6a98a077ae$export$7f21dc14b8199dc0, findLaterallyExtensiveUnits as $2c6a8e6a98a077ae$export$cc5d9b95e199a6de, splitStratIntoBoxes as $2c6a8e6a98a077ae$export$3e71a3125322d04b} from "./column-views.f08929e2.js";
8
- import {CompositeAgeAxisCore as $43794af7643cdf40$export$ac30ca3cf5df959d} from "./column-views.02f3732a.js";
9
- import {UnitBoxes as $d254716a820e9c85$export$5d1cdfabe8dc8085} from "./column-views.f20eb583.js";
10
- import {ColumnContainer as $2118f0266dc7e955$export$2194471aa3d52446} from "./column-views.42b89c52.js";
6
+ import {CompositeTimescaleCore as $7d0f52717c0de7e1$export$463f46772c64d403} from "./column-views.0859feb3.js";
7
+ import {buildCorrelationChartData as $2c6a8e6a98a077ae$export$7f21dc14b8199dc0, findLaterallyExtensiveUnits as $2c6a8e6a98a077ae$export$cc5d9b95e199a6de, splitStratIntoBoxes as $2c6a8e6a98a077ae$export$3e71a3125322d04b} from "./column-views.88d63dd0.js";
8
+ import {CompositeAgeAxisCore as $43794af7643cdf40$export$ac30ca3cf5df959d} from "./column-views.285cbb65.js";
9
+ import {UnitBoxes as $d254716a820e9c85$export$5d1cdfabe8dc8085} from "./column-views.5d969bc5.js";
10
+ import {ColumnContainer as $2118f0266dc7e955$export$2194471aa3d52446} from "./column-views.3f528c5c.js";
11
11
  import $2d5zd$macrostrathyper from "@macrostrat/hyper";
12
12
  import {useMemo as $2d5zd$useMemo, useRef as $2d5zd$useRef} from "react";
13
13
  import {useInDarkMode as $2d5zd$useInDarkMode} from "@macrostrat/ui-components";
@@ -85,7 +85,7 @@ function $ed7dc56184962590$export$9ebf875c09445bec({ data: data, columnSpacing:
85
85
  height: scaleInfo.totalHeight,
86
86
  paddingH: 4
87
87
  }, packages.map((pkg, i)=>{
88
- const { offset: offset, domain: domain, pixelScale: pixelScale, key: key } = scaleInfo.packages[i];
88
+ const { offset: offset, domain: domain, pixelScale: pixelScale, scale: scale, key: key } = scaleInfo.packages[i];
89
89
  return $ed7dc56184962590$var$h($ed7dc56184962590$var$Package, {
90
90
  columnData: pkg.columnData,
91
91
  key: key,
@@ -94,6 +94,7 @@ function $ed7dc56184962590$export$9ebf875c09445bec({ data: data, columnSpacing:
94
94
  offset: offset,
95
95
  domain: domain,
96
96
  pixelScale: pixelScale,
97
+ scale: scale,
97
98
  unitComponent: unitComponent
98
99
  });
99
100
  })),
@@ -105,7 +106,7 @@ function $ed7dc56184962590$export$9ebf875c09445bec({ data: data, columnSpacing:
105
106
  ])
106
107
  ])));
107
108
  }
108
- function $ed7dc56184962590$var$Package({ columnData: columnData, columnSpacing: columnSpacing, columnWidth: columnWidth, unitComponent: unitComponent, offset: offset, domain: domain, pixelScale: pixelScale }) {
109
+ function $ed7dc56184962590$var$Package({ columnData: columnData, columnSpacing: columnSpacing, columnWidth: columnWidth, unitComponent: unitComponent, offset: offset, domain: domain, pixelScale: pixelScale, scale: scale }) {
109
110
  return $ed7dc56184962590$var$h("g.package", {
110
111
  transform: `translate(0 ${offset})`
111
112
  }, [
@@ -120,6 +121,7 @@ function $ed7dc56184962590$var$Package({ columnData: columnData, columnSpacing:
120
121
  key: i,
121
122
  domain: domain,
122
123
  pixelScale: pixelScale,
124
+ scale: scale,
123
125
  offsetLeft: i * (columnWidth + columnSpacing)
124
126
  });
125
127
  })
@@ -127,7 +129,7 @@ function $ed7dc56184962590$var$Package({ columnData: columnData, columnSpacing:
127
129
  ]);
128
130
  }
129
131
  function $ed7dc56184962590$var$Column(props) {
130
- const { units: units, width: width = 150, offsetLeft: offsetLeft, domain: domain, pixelScale: pixelScale, unitComponent: unitComponent = (0, $4c8184c4a7317749$export$6012fd1584b5d0c0) } = props;
132
+ const { units: units, width: width = 150, offsetLeft: offsetLeft, domain: domain, pixelScale: pixelScale, scale: scale, unitComponent: unitComponent = (0, $4c8184c4a7317749$export$6012fd1584b5d0c0) } = props;
131
133
  const columnWidth = width;
132
134
  if (units.length == 0) return null;
133
135
  return $ed7dc56184962590$var$h("g.section", {
@@ -136,6 +138,7 @@ function $ed7dc56184962590$var$Column(props) {
136
138
  // Need to tighten up types here...
137
139
  divisions: units,
138
140
  range: domain,
141
+ scale: scale,
139
142
  pixelsPerMeter: pixelScale,
140
143
  axisType: (0, $2d5zd$ColumnAxisType).AGE
141
144
  }, $ed7dc56184962590$var$h((0, $d254716a820e9c85$export$5d1cdfabe8dc8085), {
@@ -221,4 +224,4 @@ function $ed7dc56184962590$var$TimescaleColumn(props) {
221
224
 
222
225
 
223
226
  export {$ed7dc56184962590$export$9ebf875c09445bec as CorrelationChart};
224
- //# sourceMappingURL=column-views.547b2730.js.map
227
+ //# sourceMappingURL=column-views.d9c6b527.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/column-views/src/correlation-chart/main.ts"],"sourcesContent":["/** Correlation chart */\nimport {\n UnitSelectionProvider,\n UnitKeyboardNavigation,\n useUnitSelectionStore,\n} from \"../units\";\nimport { UnitSelectionPopover } from \"../unit-details\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMemo, useRef } from \"react\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { CompositeTimescaleCore } from \"../section\";\nimport classNames from \"classnames\";\nimport {\n findLaterallyExtensiveUnits,\n splitStratIntoBoxes,\n UnitGroupBox,\n CorrelationChartSettings,\n buildCorrelationChartData,\n} from \"./prepare-data\";\nimport {\n CompositeAgeAxisCore,\n CompositeStratigraphicScaleInfo,\n} from \"../age-axis\";\nimport {\n ColumnAxisType,\n ColumnProvider,\n SVG,\n} from \"@macrostrat/column-components\";\nimport { ColoredUnitComponent } from \"../units\";\nimport { UnitBoxes } from \"../units/boxes\";\nimport { ColumnContainer } from \"../column\";\nimport { ColumnData } from \"../data-provider\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\nimport { ScaleContinuousNumeric } from \"d3-scale\";\nimport { ExtUnit } from \"../prepare-units/types\";\n\nconst h = hyper.styled(styles);\n\nexport interface CorrelationChartProps extends CorrelationChartSettings {\n data: ColumnData[];\n columnWidth?: number;\n columnSpacing?: number;\n targetUnitHeight?: number;\n unconformityLabels?: boolean;\n selectedUnit?: number | null;\n showUnitPopover?: boolean;\n unitComponent?: any;\n onUnitSelected?: (unitID: number | null, unit: BaseUnit | null) => void;\n}\n\nexport function CorrelationChart({\n data,\n columnSpacing = 0,\n columnWidth = 130,\n unconformityLabels = true,\n showUnitPopover = true,\n selectedUnit,\n onUnitSelected,\n unitComponent,\n ...scaleProps\n}: CorrelationChartProps) {\n const defaultScaleProps = {\n targetUnitHeight: 10,\n unconformityHeight: 60,\n minSectionHeight: 60,\n collapseSmallUnconformities: true,\n };\n\n const chartData = useMemo(() => {\n if (!data) return null;\n return buildCorrelationChartData(data, {\n ...defaultScaleProps,\n ...scaleProps,\n });\n }, [data, ...Object.values(scaleProps)]);\n\n const columnRef = useRef(null);\n\n // A flattened units array is used to support keyboard navigation\n const units = useMemo(() => {\n return data?.map((d0) => d0.units).flat() ?? [];\n }, [data]);\n\n const inDarkMode = useInDarkMode();\n\n const className = classNames({\n \"dark-mode\": inDarkMode,\n });\n\n if (chartData == null) {\n return null;\n }\n\n const { packages, scaleInfo, nColumns } = chartData;\n\n const mainWidth = (columnWidth + columnSpacing) * nColumns;\n\n return h(\n ColumnContainer,\n { className: \"correlation-diagram\" },\n h(\n UnitSelectionProvider,\n { columnRef, selectedUnit, onUnitSelected, units },\n h(ChartArea, [\n h(TimescaleColumn, {\n key: \"timescale\",\n scaleInfo,\n unconformityLabels,\n }),\n h(\"div.main-chart\", { ref: columnRef }, [\n h(\n SVG,\n {\n className,\n innerWidth: mainWidth,\n height: scaleInfo.totalHeight,\n paddingH: 4,\n },\n packages.map((pkg, i) => {\n const { offset, domain, pixelScale, scale, key } =\n scaleInfo.packages[i];\n return h(Package, {\n columnData: pkg.columnData,\n key,\n columnWidth,\n columnSpacing,\n offset,\n domain,\n pixelScale,\n scale,\n unitComponent,\n });\n }),\n ),\n h.if(showUnitPopover)(UnitSelectionPopover),\n // Navigation only works within a column for now...\n h(UnitKeyboardNavigation, { units }),\n ]),\n ]),\n ),\n );\n}\n\nfunction Package({\n columnData,\n columnSpacing,\n columnWidth,\n unitComponent,\n offset,\n domain,\n pixelScale,\n scale,\n}) {\n return h(\"g.package\", { transform: `translate(0 ${offset})` }, [\n // Disable the SVG overlay for now\n //h(PackageSVGOverlay, { data, columnSpacing }),\n h(\"g.column-units\", [\n columnData.map((data, i) => {\n return h(Column, {\n units: data.units,\n unitComponent,\n width: columnWidth,\n key: i,\n domain,\n pixelScale,\n scale,\n offsetLeft: i * (columnWidth + columnSpacing),\n });\n }),\n ]),\n ]);\n}\n\ninterface ColumnProps {\n units: ExtUnit[];\n unitComponent?: React.FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n columnSpacing?: number;\n targetUnitHeight?: number;\n offsetLeft?: number;\n domain: [number, number];\n pixelScale: number;\n scale?: ScaleContinuousNumeric<number, number>;\n}\n\nfunction Column(props: ColumnProps) {\n const {\n units,\n width = 150,\n offsetLeft,\n domain,\n pixelScale,\n scale,\n unitComponent = ColoredUnitComponent,\n } = props;\n\n const columnWidth = width;\n\n if (units.length == 0) {\n return null;\n }\n\n return h(\n \"g.section\",\n {\n transform: `translate(${offsetLeft} 0)`,\n },\n h(\n ColumnProvider,\n {\n // Need to tighten up types here...\n divisions: units as any[],\n range: domain,\n scale,\n pixelsPerMeter: pixelScale, // Actually pixels per myr\n axisType: ColumnAxisType.AGE,\n },\n h(UnitBoxes, {\n unitComponent,\n unitComponentProps: {\n nColumns: 2,\n width: columnWidth,\n showLabel: false,\n },\n }),\n ),\n );\n}\n\nfunction PackageSVGOverlay({ data, columnWidth = 100, columnSpacing = 0 }) {\n const { b_age, t_age, bestPixelScale, columnData } = data;\n\n const width = (columnWidth + columnSpacing) * columnData.length;\n const height = Math.ceil((b_age - t_age) * bestPixelScale) + 2;\n\n const extensiveUnits = findLaterallyExtensiveUnits(data);\n\n const scale = (val: number) => {\n return (val - t_age) * bestPixelScale;\n };\n\n return h(\n \"div.package-overlay\",\n { style: { width, height } },\n extensiveUnits.map((d) => {\n return h(LaterallyExtensiveUnit, {\n data: d,\n scale,\n pixelScale: bestPixelScale,\n columnSpacing,\n });\n }),\n );\n}\n\nfunction LaterallyExtensiveUnit({ data, scale, pixelScale, columnSpacing }) {\n const { b_age, t_age, strat_name_long, units } = data;\n // Build boxes by column groups\n const boxes: UnitGroupBox[] = splitStratIntoBoxes(data);\n\n return h(\n \"div.laterally-extensive-unit\",\n boxes.map((d, i) => {\n return h(StratColSpan, {\n scale,\n data: d,\n pixelScale,\n key: i,\n columnSpacing,\n });\n }),\n );\n}\n\nfunction StratColSpan({\n data,\n scale,\n columnWidth = 100,\n columnSpacing = 0,\n pixelScale = 1,\n}) {\n const { startCol, endCol, strat_name_long, t_age, b_age } = data;\n const top = scale(t_age);\n const left = startCol * (columnWidth + columnSpacing);\n const width = (endCol - startCol + 1) * (columnWidth + columnSpacing);\n const height = (b_age - t_age) * pixelScale;\n return h(\n \"div.strat-col-span\",\n { style: { top, height, width, left } },\n strat_name_long,\n );\n}\n\nfunction ChartArea({ children }) {\n const setSelectedUnit = useUnitSelectionStore(\n (state) => state.setSelectedUnit,\n );\n\n return h(\n \"div.correlation-chart-inner\",\n {\n onClick() {\n setSelectedUnit(null);\n },\n },\n children,\n );\n}\n\ninterface TimescaleColumnProps {\n scaleInfo: CompositeStratigraphicScaleInfo;\n showLabels?: boolean;\n unconformityLabels?: boolean;\n}\n\nfunction TimescaleColumn(props: TimescaleColumnProps) {\n const { scaleInfo, unconformityLabels = true } = props;\n return h(\"div.column-container.age-axis-container\", [\n h(CompositeAgeAxisCore, { ...scaleInfo }),\n h(CompositeTimescaleCore, { ...scaleInfo, unconformityLabels }),\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.d9c6b527.js.map"}
@@ -38,6 +38,13 @@ body.dark-mode .column-container_afc440 svg pattern image {
38
38
  filter: invert();
39
39
  }
40
40
 
41
+ .column-container_afc440 {
42
+ padding-top: var(--column-padding-top);
43
+ padding-bottom: var(--column-padding-bottom);
44
+ padding-left: var(--column-padding-left);
45
+ padding-right: var(--column-padding-right);
46
+ }
47
+
41
48
  .column-container_afc440 .column {
42
49
  flex-direction: row;
43
50
  height: fit-content;
@@ -129,39 +136,49 @@ body.dark-mode .column-container_afc440 svg pattern image {
129
136
  }
130
137
 
131
138
  .unconformity_afc440 {
132
- text-align: center;
133
- justify-content: center;
134
- align-items: center;
139
+ font-family: var(--label-font-family, sans-serif);
140
+ --unit-font-weight: 400;
135
141
  font-size: .8em;
136
- display: flex;
142
+ font-weight: 400;
137
143
  position: absolute;
138
144
  top: 0;
139
145
  }
140
146
 
141
147
  .unconformity_afc440.giga_afc440 {
142
- font-size: 1em;
143
148
  font-weight: 800;
144
149
  }
145
150
 
146
151
  .unconformity_afc440.mega_afc440 {
147
- font-size: .9em;
148
152
  font-weight: 700;
149
153
  }
150
154
 
151
155
  .unconformity_afc440.large_afc440 {
152
- font-weight: 600;
156
+ font-weight: 500;
153
157
  }
154
158
 
155
159
  .unconformity_afc440.small_afc440 {
156
160
  font-weight: 300;
157
161
  }
158
162
 
163
+ .unconformity-inner_afc440 {
164
+ text-align: center;
165
+ justify-content: center;
166
+ align-items: center;
167
+ display: flex;
168
+ position: absolute;
169
+ inset: 5px -2px 5px -3px;
170
+ }
171
+
159
172
  .unconformity-text_afc440 {
160
173
  width: var(--column-width);
161
- color: var(--column-stroke-color);
162
174
  --unit-font-style: normal;
163
175
  }
164
176
 
177
+ .unconformity-text_afc440 .prefix_afc440 {
178
+ color: var(--secondary-color);
179
+ font-weight: 400;
180
+ }
181
+
165
182
  .column-title-row_afc440 {
166
183
  flex-direction: row;
167
184
  justify-content: space-between;
@@ -169,4 +186,4 @@ body.dark-mode .column-container_afc440 svg pattern image {
169
186
  gap: 1em;
170
187
  display: flex;
171
188
  }
172
- /*# sourceMappingURL=column-views.8d4ce558.css.map */
189
+ /*# sourceMappingURL=column-views.e33ac5c9.css.map */
@@ -0,0 +1 @@
1
+ {"mappings":"AAAA;;;;;;AAWE;EACE;;;;;;;;EAOI;;;;EAEA;;;;;AAIN;;;;;;;;AAOE;;;;AAGJ;;;;AAIE;;;;;;;AAOE;;;;;;;AAOA;;;;AAIA;;;;;AAKA;;;;;;;;;;;AASF;;;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCF;;;;AAQE;;;;;;;AAOA;;;;;;;;;AAQA;;;;AAIF;;;;AAKE;;;;AAIA;;;;AAGF;;;;;;;;;AAYE","sources":["packages/column-views/src/column.module.sass"],"sourcesContent":[".column-container, body:global(.light-mode) .column-container\n --column-background-color: var(--background-color, #fff)\n --column-stroke-color: var(--text-emphasized-color, #000)\n --column-text-color: var(--text-emphasized-color, #000)\n\n/* We have to duplicate the dark mode styles here\n because we want to set them either if the preferred\n color scheme is dark OR if dark mode is explicitly enabled.\n If dark mode is explicitly enabled, we want to override\n the media query. */\n@media (prefers-color-scheme: dark)\n body:not(:global(.light-mode)) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\nbody:global(.dark-mode) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\n.column-container\n padding-top: var(--column-padding-top)\n padding-bottom: var(--column-padding-bottom)\n padding-left: var(--column-padding-left)\n padding-right: var(--column-padding-right)\n\n.column-container :global\n .column\n display: flex\n flex-direction: row\n position: relative\n height: fit-content\n\n g.lithology-column .column-clip-frame\n stroke: none\n\n .unit\n stroke: var(--column-stroke-color)\n stroke-width: 1px\n\n .selection-overlay\n fill: var(--selection-overlay-color, red)\n fill-opacity: var(--selection-overlay-opacity, 0.5)\n\n g.lithology-column use.frame\n stroke: var(--column-stroke-color)\n stroke-width: 1.5px !important\n pointer-events: none\n\n.column-container :global .unit-label\n text-align: center\n\n.column-container :global .col-note-label\n font-size: 10px\n line-height: 9px\n border-left: none !important\n margin: 1px 0\n\n.column-container :global g.height-range\n display: none\n\n.column-container :global .note-inner\n border: none\n padding: 1px\n\n.column-container :global .frame rect\n fill: transparent\n\n.column-container :global .default-buttons\n width: 100%\n margin: 0 -10px\n\n.column-container :global div.section\n display: flex\n flex-direction: row\n\n.column-container :global .section .divisions .unit\n cursor: pointer\n\n.column-container :global(.timescale)\n width: calc(calc(1.5em + 1.5px) * var(--timescale-level-count, 4))\n --timescale-level-size: 1.5em\n\n.timescale-column\n position: relative\n\n.section-main\n position: relative\n margin-bottom: -4px\n\n.section-units-container\n position: relative\n\n.main-column\n position: relative\n\n.unconformity-labels\n position: absolute\n top: 0\n left: 0\n pointer-events: none\n\n\n.unconformity\n position: absolute\n font-family: var(--label-font-family, sans-serif)\n top: 0px\n //font-size: 12px\n font-weight: 400\n\n font-size: 0.8em\n &.giga\n font-weight: 800\n //font-size: 1em\n &.mega\n font-weight: 700\n //font-size: 0.9em\n &.large\n font-weight: 500\n &.small\n font-weight: 300\n --unit-font-weight: 400\n\n.unconformity-inner\n //border-left: 1.5px dotted var(--secondary-color)\n position: absolute\n top: 5px\n bottom: 5px\n left: -3px\n right: -2px\n display: flex\n justify-content: center\n align-items: center\n text-align: center\n\n.unconformity-text\n width: var(--column-width)\n --unit-font-style: normal\n .prefix\n font-weight: 400\n color: var(--secondary-color)\n\n\n\n.column-title-row\n display: flex\n flex-direction: row\n gap: 1em\n justify-content: space-between\n align-items: baseline\n"],"names":[],"version":3,"file":"column-views.e33ac5c9.css.map"}
@@ -0,0 +1,15 @@
1
+ import {PBDBFossilsColumn as $b9286605a04210d4$export$554267114407ef68, PBDBOccurrencesMatrix as $b9286605a04210d4$export$652730986cccff7a, FossilDataType as $a3ff7da576c02df0$export$a990c76b38782f57} from "./column-views.6c644353.js";
2
+ import {DetritalColumn as $715dd5fedd79146a$export$f176396e104db8d5, DetritalGroup as $715dd5fedd79146a$export$1b3047373cd1c8c7} from "./column-views.ae7c0a2b.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.9ddbe7df.js";
4
+ import {SGPMeasurementsColumn as $6ff130029901daab$export$c49cf57576706bab} from "./column-views.2d602a57.js";
5
+ import {BaseMeasurementsColumn as $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d, TruncatedList as $c6d9d48b3424a44c$export$653e47a7a0da0f0d} from "./column-views.e84bd756.js";
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ export {$b9286605a04210d4$export$554267114407ef68 as PBDBFossilsColumn, $b9286605a04210d4$export$652730986cccff7a as PBDBOccurrencesMatrix, $a3ff7da576c02df0$export$a990c76b38782f57 as FossilDataType, $715dd5fedd79146a$export$f176396e104db8d5 as DetritalColumn, $715dd5fedd79146a$export$1b3047373cd1c8c7 as DetritalGroup, $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, $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $c6d9d48b3424a44c$export$653e47a7a0da0f0d as TruncatedList};
15
+ //# sourceMappingURL=column-views.e3bf5384.js.map
@@ -1 +1 @@
1
- {"mappings":"","sources":["packages/column-views/src/facets/index.ts"],"sourcesContent":["export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\n"],"names":[],"version":3,"file":"column-views.38a305a0.js.map"}
1
+ {"mappings":"","sources":["packages/column-views/src/facets/index.ts"],"sourcesContent":["export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\nexport * from \"./base-sample-column\";\n"],"names":[],"version":3,"file":"column-views.e3bf5384.js.map"}
@@ -1,4 +1,4 @@
1
- import {useMacrostratColumns as $774a5efa27d1c77b$export$81eaae0b474404fd, useMacrostratStore as $774a5efa27d1c77b$export$fb98d5bae3a6800} from "./column-views.7ca9e1cd.js";
1
+ import {useMacrostratColumns as $774a5efa27d1c77b$export$81eaae0b474404fd, useMacrostratStore as $774a5efa27d1c77b$export$fb98d5bae3a6800} from "./column-views.73b8ff16.js";
2
2
  import {create as $g0ikq$create, useStore as $g0ikq$useStore} from "zustand";
3
3
  import {createContext as $g0ikq$createContext, useState as $g0ikq$useState, useMemo as $g0ikq$useMemo, useEffect as $g0ikq$useEffect, useContext as $g0ikq$useContext} from "react";
4
4
  import $g0ikq$macrostrathyper from "@macrostrat/hyper";
@@ -78,4 +78,4 @@ function $09486427d129f589$export$642c2b57c47ea41(selector) {
78
78
 
79
79
 
80
80
  export {$09486427d129f589$export$8da3b11f62ebf019 as ColumnNavigationProvider, $09486427d129f589$export$642c2b57c47ea41 as useColumnNavigationStore};
81
- //# sourceMappingURL=column-views.e3b9a317.js.map
81
+ //# sourceMappingURL=column-views.e4c26185.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;AAoCA,MAAM,+CAAyB,CAAA,GAAA,oBAAY,EACzC;AAGK,SAAS,0CAAyB,YACvC,QAAQ,WACR,OAAO,aACP,SAAS,kBACT,cAAc,aACd,SAAS,aACT,SAAS,kBACT,cAAc,iBACd,aAAa,EACW;IACxB,MAAM,aAAa,CAAA,GAAA,wCAAiB,EAAE,CAAC,IAAM,EAAE,UAAU;IAEzD,MAAM,CAAC,MAAM,GAAG,CAAA,GAAA,eAAO,EAAE;QACvB,OAAO,CAAA,GAAA,aAAK,EAAmB,CAAC,KAAK;YACnC,OAAO;gBACL,SAAS;gBACT,gBAAgB;gBAChB,eAAe;gBACf,cAAa,QAAuB;oBAClC,IAAI;wBAAE,gBAAgB;wBAAU,eAAe;oBAAK;oBACpD,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,iBAAiB,UAAU;gBAC7B;gBACA,kBAAiB,QAAuB;oBACtC,IAAI;wBAAE,eAAe;oBAAS;oBAC9B,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,gBAAgB,UAAU;gBAC5B;YACF;QACF;IACF;IAEA,mBAAmB;IACnB,iEAAiE,GACjE,+BAA+B;IAC/B,wEAAwE;IACxE,2DAA2D;IAC3D,mDAAmD;IAEnD,IAAI,WAAW,WAAW,CAAA,GAAA,yCAAmB,EAAE,WAAW;IAE1D,8BAA8B;IAC9B,IAAI,WAAW,SAAS,GACtB,WAAW,CAAA,GAAA,cAAM,EAAE;QACjB,OAAO,UAAU,OAAO,CAAC,IAAM,UAAU,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM;IACvE,GAAG;QAAC;QAAW;KAAS;IAG1B,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,UAAU,SAAS,GACrB,MAAM,QAAQ,CAAC;YAAE,SAAS;4BAAU;QAAe;IAEvD,GAAG;QAAC;KAAS;IACb,qDAAqD;IAErD,6EAA6E;IAC7E,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,gBAAE,YAAY,EAAE,gBAAgB,uBAAuB,EAAE,GAC7D,MAAM,QAAQ;QAChB,IAAI,kBAAkB,yBACpB;QAEF,aAAa;IACf,GAAG;QAAC;KAAe;IAEnB,OAAO,CAAA,GAAA,sBAAA,EAAE,6CAAuB,QAAQ,EAAE;QAAE,OAAO;IAAM,GAAG;AAC9D;AAEO,SAAS,yCACd,QAAyC;IAEzC,MAAM,WAAW,CAAA,GAAA,iBAAS,EAAE;IAC5B,IAAI,YAAY,MACd,MAAM,IAAI,MAAM;IAElB,OAAO,CAAA,GAAA,eAAO,EAAE,UAAU;AAC5B","sources":["packages/column-views/src/maps/column-navigation/mapbox/state.ts"],"sourcesContent":["import { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecordWithID } from \"@macrostrat/api-types\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n useMemo,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n useMacrostratColumns,\n useMacrostratStore,\n} from \"../../../data-provider\";\n\nexport interface NavigationStore {\n columns: ColumnGeoJSONRecordWithID[];\n selectedColumn: number | null;\n hoveredColumn: number | null;\n selectColumn: (columnID: number | null) => void;\n setHoveredColumn: (columnID: number | null) => void;\n}\n\nexport interface NavigationProviderProps {\n projectID?: number;\n inProcess?: boolean;\n selectedColumn?: number | null;\n hoveredColumn?: number | null;\n columns?: ColumnGeoJSONRecordWithID[] | null;\n columnIDs?: number[] | null;\n children: ReactNode;\n onSelectColumn?: (col_id: number | null, column: any) => void;\n onHoverColumn?: (col_id: number | null, column: any) => void;\n}\n\nconst NavigationStoreContext = createContext<StoreApi<NavigationStore> | null>(\n null,\n);\n\nexport function ColumnNavigationProvider({\n children,\n columns,\n columnIDs,\n selectedColumn,\n projectID,\n inProcess,\n onSelectColumn,\n onHoverColumn,\n}: NavigationProviderProps) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n\n const [store] = useState(() => {\n return create<NavigationStore>((set, get): NavigationStore => {\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn(columnID: number | null) {\n set({ selectedColumn: columnID, hoveredColumn: null });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn(columnID: number | null) {\n set({ hoveredColumn: columnID });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onHoverColumn?.(columnID, column);\n },\n };\n });\n });\n\n // Set up the store\n /** TODO: unify handling of columns between parts of application */\n // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n\n let _columns = columns ?? useMacrostratColumns(projectID, inProcess);\n\n // filter columns if specified\n if (columnIDs?.length > 0) {\n _columns = useMemo(() => {\n return _columns?.filter((d) => columnIDs.includes(d.properties.col_id));\n }, [columnIDs, _columns]);\n }\n\n useEffect(() => {\n if (_columns?.length > 0) {\n store.setState({ columns: _columns, selectedColumn });\n }\n }, [_columns]);\n // Update selected column if it is changed externally\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n useEffect(() => {\n const { selectColumn, selectedColumn: _internalSelectedColumn } =\n store.getState();\n if (selectedColumn == _internalSelectedColumn) {\n return;\n }\n selectColumn(selectedColumn);\n }, [selectedColumn]);\n\n return h(NavigationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useColumnNavigationStore(\n selector: (state: NavigationStore) => any,\n) {\n const storeApi = useContext(NavigationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing ColumnNavigationProvider\");\n }\n return useStore(storeApi, selector);\n}\n"],"names":[],"version":3,"file":"column-views.e3b9a317.js.map"}
1
+ {"mappings":";;;;;;;;;AAoCA,MAAM,+CAAyB,CAAA,GAAA,oBAAY,EACzC;AAGK,SAAS,0CAAyB,YACvC,QAAQ,WACR,OAAO,aACP,SAAS,kBACT,cAAc,aACd,SAAS,aACT,SAAS,kBACT,cAAc,iBACd,aAAa,EACW;IACxB,MAAM,aAAa,CAAA,GAAA,wCAAiB,EAAE,CAAC,IAAM,EAAE,UAAU;IAEzD,MAAM,CAAC,MAAM,GAAG,CAAA,GAAA,eAAO,EAAE;QACvB,OAAO,CAAA,GAAA,aAAK,EAAmB,CAAC,KAAK;YACnC,OAAO;gBACL,SAAS;gBACT,gBAAgB;gBAChB,eAAe;gBACf,cAAa,QAAuB;oBAClC,IAAI;wBAAE,gBAAgB;wBAAU,eAAe;oBAAK;oBACpD,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,iBAAiB,UAAU;gBAC7B;gBACA,kBAAiB,QAAuB;oBACtC,IAAI;wBAAE,eAAe;oBAAS;oBAC9B,MAAM,WAAE,OAAO,EAAE,GAAG;oBACpB,MAAM,SAAS,SAAS,KAAK,CAAC,IAAM,EAAE,EAAE,IAAI;oBAC5C,gBAAgB,UAAU;gBAC5B;YACF;QACF;IACF;IAEA,mBAAmB;IACnB,iEAAiE,GACjE,+BAA+B;IAC/B,wEAAwE;IACxE,2DAA2D;IAC3D,mDAAmD;IAEnD,IAAI,WAAW,WAAW,CAAA,GAAA,yCAAmB,EAAE,WAAW;IAE1D,8BAA8B;IAC9B,IAAI,WAAW,SAAS,GACtB,WAAW,CAAA,GAAA,cAAM,EAAE;QACjB,OAAO,UAAU,OAAO,CAAC,IAAM,UAAU,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM;IACvE,GAAG;QAAC;QAAW;KAAS;IAG1B,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,UAAU,SAAS,GACrB,MAAM,QAAQ,CAAC;YAAE,SAAS;4BAAU;QAAe;IAEvD,GAAG;QAAC;KAAS;IACb,qDAAqD;IAErD,6EAA6E;IAC7E,CAAA,GAAA,gBAAQ,EAAE;QACR,MAAM,gBAAE,YAAY,EAAE,gBAAgB,uBAAuB,EAAE,GAC7D,MAAM,QAAQ;QAChB,IAAI,kBAAkB,yBACpB;QAEF,aAAa;IACf,GAAG;QAAC;KAAe;IAEnB,OAAO,CAAA,GAAA,sBAAA,EAAE,6CAAuB,QAAQ,EAAE;QAAE,OAAO;IAAM,GAAG;AAC9D;AAEO,SAAS,yCACd,QAAyC;IAEzC,MAAM,WAAW,CAAA,GAAA,iBAAS,EAAE;IAC5B,IAAI,YAAY,MACd,MAAM,IAAI,MAAM;IAElB,OAAO,CAAA,GAAA,eAAO,EAAE,UAAU;AAC5B","sources":["packages/column-views/src/maps/column-navigation/mapbox/state.ts"],"sourcesContent":["import { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecordWithID } from \"@macrostrat/api-types\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n useMemo,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n useMacrostratColumns,\n useMacrostratStore,\n} from \"../../../data-provider\";\n\nexport interface NavigationStore {\n columns: ColumnGeoJSONRecordWithID[];\n selectedColumn: number | null;\n hoveredColumn: number | null;\n selectColumn: (columnID: number | null) => void;\n setHoveredColumn: (columnID: number | null) => void;\n}\n\nexport interface NavigationProviderProps {\n projectID?: number;\n inProcess?: boolean;\n selectedColumn?: number | null;\n hoveredColumn?: number | null;\n columns?: ColumnGeoJSONRecordWithID[] | null;\n columnIDs?: number[] | null;\n children: ReactNode;\n onSelectColumn?: (col_id: number | null, column: any) => void;\n onHoverColumn?: (col_id: number | null, column: any) => void;\n}\n\nconst NavigationStoreContext = createContext<StoreApi<NavigationStore> | null>(\n null,\n);\n\nexport function ColumnNavigationProvider({\n children,\n columns,\n columnIDs,\n selectedColumn,\n projectID,\n inProcess,\n onSelectColumn,\n onHoverColumn,\n}: NavigationProviderProps) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n\n const [store] = useState(() => {\n return create<NavigationStore>((set, get): NavigationStore => {\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn(columnID: number | null) {\n set({ selectedColumn: columnID, hoveredColumn: null });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn(columnID: number | null) {\n set({ hoveredColumn: columnID });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onHoverColumn?.(columnID, column);\n },\n };\n });\n });\n\n // Set up the store\n /** TODO: unify handling of columns between parts of application */\n // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n\n let _columns = columns ?? useMacrostratColumns(projectID, inProcess);\n\n // filter columns if specified\n if (columnIDs?.length > 0) {\n _columns = useMemo(() => {\n return _columns?.filter((d) => columnIDs.includes(d.properties.col_id));\n }, [columnIDs, _columns]);\n }\n\n useEffect(() => {\n if (_columns?.length > 0) {\n store.setState({ columns: _columns, selectedColumn });\n }\n }, [_columns]);\n // Update selected column if it is changed externally\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n useEffect(() => {\n const { selectColumn, selectedColumn: _internalSelectedColumn } =\n store.getState();\n if (selectedColumn == _internalSelectedColumn) {\n return;\n }\n selectColumn(selectedColumn);\n }, [selectedColumn]);\n\n return h(NavigationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useColumnNavigationStore(\n selector: (state: NavigationStore) => any,\n) {\n const storeApi = useContext(NavigationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing ColumnNavigationProvider\");\n }\n return useStore(storeApi, selector);\n}\n"],"names":[],"version":3,"file":"column-views.e4c26185.js.map"}