@macrostrat/column-views 2.0.1 → 2.1.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 (499) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/esm/{column-views.8dd877af.js → column-views.006d5180.js} +2 -1
  3. package/dist/esm/column-views.006d5180.js.map +1 -0
  4. package/dist/esm/column-views.05586d1f.js +22 -0
  5. package/dist/esm/column-views.05586d1f.js.map +1 -0
  6. package/dist/esm/column-views.0732894f.js +86 -0
  7. package/dist/esm/column-views.0732894f.js.map +1 -0
  8. package/dist/esm/column-views.09f22f45.js +64 -0
  9. package/dist/esm/column-views.09f22f45.js.map +1 -0
  10. package/dist/esm/column-views.10eba967.js +11 -0
  11. package/dist/esm/column-views.10eba967.js.map +1 -0
  12. package/dist/esm/{column-views.8e51206e.js → column-views.1af9761e.js} +19 -3
  13. package/dist/esm/column-views.1af9761e.js.map +1 -0
  14. package/dist/esm/column-views.1c92b88f.js +16 -0
  15. package/dist/esm/column-views.1c92b88f.js.map +1 -0
  16. package/dist/esm/{column-views.ea237aa8.js → column-views.1e055ed5.js} +6 -5
  17. package/dist/esm/column-views.1e055ed5.js.map +1 -0
  18. package/dist/esm/column-views.210514ec.js +11 -0
  19. package/dist/esm/column-views.210514ec.js.map +1 -0
  20. package/dist/esm/{column-views.240ef158.css → column-views.217078ab.css} +4 -3
  21. package/dist/esm/column-views.217078ab.css.map +1 -0
  22. package/dist/esm/column-views.2c43c055.js +156 -0
  23. package/dist/esm/column-views.2c43c055.js.map +1 -0
  24. package/dist/esm/column-views.2c45a7b5.js +25 -0
  25. package/dist/esm/column-views.2c45a7b5.js.map +1 -0
  26. package/dist/esm/column-views.2ca34210.js +151 -0
  27. package/dist/esm/column-views.2ca34210.js.map +1 -0
  28. package/dist/esm/{column-views.88de2cee.js → column-views.2cb87813.js} +4 -4
  29. package/dist/esm/{column-views.88de2cee.js.map → column-views.2cb87813.js.map} +1 -1
  30. package/dist/esm/{column-views.3bec70d6.js → column-views.2d8e0e0f.js} +9 -8
  31. package/dist/esm/column-views.2d8e0e0f.js.map +1 -0
  32. package/dist/esm/column-views.3048acc1.js +66 -0
  33. package/dist/esm/column-views.3048acc1.js.map +1 -0
  34. package/dist/esm/column-views.3199d35a.css +61 -0
  35. package/dist/esm/column-views.3199d35a.css.map +1 -0
  36. package/dist/esm/column-views.34a52db7.js +31 -0
  37. package/dist/esm/column-views.34a52db7.js.map +1 -0
  38. package/dist/esm/column-views.39657bbf.js.map +1 -1
  39. package/dist/esm/{column-views.28ee5f43.js → column-views.3ba9213d.js} +16 -5
  40. package/dist/esm/column-views.3ba9213d.js.map +1 -0
  41. package/dist/esm/column-views.3de4dc43.js.map +1 -1
  42. package/dist/esm/column-views.403a7b48.css +24 -0
  43. package/dist/esm/column-views.403a7b48.css.map +1 -0
  44. package/dist/esm/column-views.4637f4ce.js.map +1 -1
  45. package/dist/esm/column-views.494447ef.css +2 -0
  46. package/dist/esm/column-views.494447ef.css.map +1 -0
  47. package/dist/esm/column-views.4950ea28.js +28 -0
  48. package/dist/esm/column-views.4950ea28.js.map +1 -0
  49. package/dist/esm/{column-views.86c4b36f.js → column-views.4ab0ec82.js} +44 -13
  50. package/dist/esm/column-views.4ab0ec82.js.map +1 -0
  51. package/dist/esm/{column-views.9bdd477a.js → column-views.4d22c21c.js} +2 -2
  52. package/dist/esm/{column-views.9bdd477a.js.map → column-views.4d22c21c.js.map} +1 -1
  53. package/dist/esm/{column-views.b775c0a3.js → column-views.52a6eb47.js} +3 -3
  54. package/dist/esm/{column-views.b775c0a3.js.map → column-views.52a6eb47.js.map} +1 -1
  55. package/dist/esm/{column-views.f2e5a72f.js → column-views.52b03330.js} +3 -3
  56. package/dist/esm/{column-views.f2e5a72f.js.map → column-views.52b03330.js.map} +1 -1
  57. package/dist/esm/column-views.57636733.css +22 -0
  58. package/dist/esm/column-views.57636733.css.map +1 -0
  59. package/dist/esm/{column-views.aa9fcdba.js → column-views.59792b70.js} +18 -15
  60. package/dist/esm/column-views.59792b70.js.map +1 -0
  61. package/dist/esm/{column-views.68409161.js → column-views.59bb0cba.js} +2 -3
  62. package/dist/esm/column-views.59bb0cba.js.map +1 -0
  63. package/dist/esm/{column-views.134b2e2a.js → column-views.5ae1d963.js} +2 -2
  64. package/dist/esm/{column-views.134b2e2a.js.map → column-views.5ae1d963.js.map} +1 -1
  65. package/dist/esm/column-views.5cc09c1d.js.map +1 -1
  66. package/dist/esm/column-views.5e2dc19d.js +187 -0
  67. package/dist/esm/column-views.5e2dc19d.js.map +1 -0
  68. package/dist/esm/{column-views.33dbc778.js → column-views.633c42a3.js} +2 -1
  69. package/dist/esm/column-views.633c42a3.js.map +1 -0
  70. package/dist/esm/{column-views.e77b9d6b.js → column-views.6549388a.js} +4 -5
  71. package/dist/esm/column-views.6549388a.js.map +1 -0
  72. package/dist/esm/{column-views.1ece326b.js → column-views.66f823ba.js} +63 -12
  73. package/dist/esm/column-views.66f823ba.js.map +1 -0
  74. package/dist/esm/{column-views.dff52504.js → column-views.686d21ad.js} +10 -1
  75. package/dist/esm/column-views.686d21ad.js.map +1 -0
  76. package/dist/esm/column-views.68afac63.js +90 -0
  77. package/dist/esm/column-views.68afac63.js.map +1 -0
  78. package/dist/esm/column-views.6992ca88.js +25 -0
  79. package/dist/esm/column-views.6992ca88.js.map +1 -0
  80. package/dist/esm/column-views.69c0e90d.js +5 -0
  81. package/dist/esm/column-views.69c0e90d.js.map +1 -0
  82. package/dist/esm/column-views.6d6b73b4.js.map +1 -1
  83. package/dist/esm/column-views.708140ab.css +36 -0
  84. package/dist/esm/column-views.708140ab.css.map +1 -0
  85. package/dist/esm/column-views.7631c221.js +13 -0
  86. package/dist/esm/column-views.7631c221.js.map +1 -0
  87. package/dist/esm/{column-views.650bd9f5.js → column-views.7715e35e.js} +17 -13
  88. package/dist/esm/column-views.7715e35e.js.map +1 -0
  89. package/dist/esm/column-views.7a414dd1.css +56 -0
  90. package/dist/esm/column-views.7a414dd1.css.map +1 -0
  91. package/dist/esm/column-views.7a726ca9.js +24 -0
  92. package/dist/esm/column-views.7a726ca9.js.map +1 -0
  93. package/dist/esm/column-views.7e21d1ec.js +34 -0
  94. package/dist/esm/column-views.7e21d1ec.js.map +1 -0
  95. package/dist/esm/{column-views.a98214b2.js → column-views.7e350ae2.js} +3 -3
  96. package/dist/esm/{column-views.a98214b2.js.map → column-views.7e350ae2.js.map} +1 -1
  97. package/dist/esm/column-views.83a557b3.js +11 -0
  98. package/dist/esm/column-views.83a557b3.js.map +1 -0
  99. package/dist/esm/{column-views.30646469.js → column-views.85c6a716.js} +2 -2
  100. package/dist/esm/column-views.85c6a716.js.map +1 -0
  101. package/dist/esm/column-views.86619334.js +9 -0
  102. package/dist/esm/column-views.86619334.js.map +1 -0
  103. package/dist/esm/{column-views.9ced149e.js → column-views.8833218c.js} +25 -6
  104. package/dist/esm/column-views.8833218c.js.map +1 -0
  105. package/dist/esm/column-views.88984b34.js +92 -0
  106. package/dist/esm/column-views.88984b34.js.map +1 -0
  107. package/dist/esm/{column-views.40c1f361.js → column-views.89b9e542.js} +11 -18
  108. package/dist/esm/column-views.89b9e542.js.map +1 -0
  109. package/dist/esm/column-views.8a1db14e.js +105 -0
  110. package/dist/esm/column-views.8a1db14e.js.map +1 -0
  111. package/dist/esm/column-views.8e7b01d2.js +43 -0
  112. package/dist/esm/column-views.8e7b01d2.js.map +1 -0
  113. package/dist/esm/column-views.8f108485.js +128 -0
  114. package/dist/esm/column-views.8f108485.js.map +1 -0
  115. package/dist/esm/column-views.904b9365.js +57 -0
  116. package/dist/esm/column-views.904b9365.js.map +1 -0
  117. package/dist/esm/column-views.90a863af.js +11 -0
  118. package/dist/esm/column-views.90a863af.js.map +1 -0
  119. package/dist/esm/{column-views.f71ec4b4.js → column-views.91385fdc.js} +67 -30
  120. package/dist/esm/column-views.91385fdc.js.map +1 -0
  121. package/dist/esm/{column-views.1c589cc4.js → column-views.9892f825.js} +55 -4
  122. package/dist/esm/column-views.9892f825.js.map +1 -0
  123. package/dist/esm/{column-views.1edc7300.js → column-views.9b77388d.js} +6 -5
  124. package/dist/esm/column-views.9b77388d.js.map +1 -0
  125. package/dist/esm/column-views.a582d4b5.js +7 -0
  126. package/dist/esm/column-views.a582d4b5.js.map +1 -0
  127. package/dist/esm/column-views.a7c5ae16.js +25 -0
  128. package/dist/esm/column-views.a7c5ae16.js.map +1 -0
  129. package/dist/esm/{column-views.5c02fee2.js → column-views.a91dde4a.js} +10 -9
  130. package/dist/esm/column-views.a91dde4a.js.map +1 -0
  131. package/dist/esm/{column-views.fc2b4611.js → column-views.a94e99a2.js} +2 -2
  132. package/dist/esm/{column-views.fc2b4611.js.map → column-views.a94e99a2.js.map} +1 -1
  133. package/dist/esm/column-views.ad472a38.css +54 -0
  134. package/dist/esm/column-views.ad472a38.css.map +1 -0
  135. package/dist/esm/{column-views.e2b9c23c.css → column-views.b17f793f.css} +21 -1
  136. package/dist/esm/column-views.b17f793f.css.map +1 -0
  137. package/dist/esm/column-views.b2b5f52c.js +19 -0
  138. package/dist/esm/column-views.b2b5f52c.js.map +1 -0
  139. package/dist/esm/column-views.b324842f.css +57 -0
  140. package/dist/esm/column-views.b324842f.css.map +1 -0
  141. package/dist/esm/{column-views.9804efda.js → column-views.b9fe5176.js} +14 -8
  142. package/dist/esm/column-views.b9fe5176.js.map +1 -0
  143. package/dist/esm/{column-views.fa6f3292.js → column-views.bb46641f.js} +7 -8
  144. package/dist/esm/column-views.bb46641f.js.map +1 -0
  145. package/dist/esm/column-views.bba13f77.css +54 -0
  146. package/dist/esm/column-views.bba13f77.css.map +1 -0
  147. package/dist/esm/{column-views.b2e5f1d9.js → column-views.bcffe6e5.js} +4 -4
  148. package/dist/esm/{column-views.b2e5f1d9.js.map → column-views.bcffe6e5.js.map} +1 -1
  149. package/dist/esm/{column-views.f1efcc2c.js → column-views.c25e8b32.js} +3 -3
  150. package/dist/esm/{column-views.f1efcc2c.js.map → column-views.c25e8b32.js.map} +1 -1
  151. package/dist/esm/column-views.c5e108f9.js +34 -0
  152. package/dist/esm/column-views.c5e108f9.js.map +1 -0
  153. package/dist/esm/{column-views.34636ec7.js → column-views.c71c321c.js} +11 -11
  154. package/dist/esm/column-views.c71c321c.js.map +1 -0
  155. package/dist/esm/{column-views.5b2635fd.js → column-views.c8e2983a.js} +4 -4
  156. package/dist/esm/{column-views.5b2635fd.js.map → column-views.c8e2983a.js.map} +1 -1
  157. package/dist/esm/column-views.cae5a0ad.js +37 -0
  158. package/dist/esm/column-views.cae5a0ad.js.map +1 -0
  159. package/dist/esm/{column-views.4c4c5bac.js → column-views.d2037465.js} +14 -8
  160. package/dist/esm/column-views.d2037465.js.map +1 -0
  161. package/dist/esm/column-views.dc42f5d0.js.map +1 -1
  162. package/dist/esm/column-views.e20f6a4b.js +124 -0
  163. package/dist/esm/column-views.e20f6a4b.js.map +1 -0
  164. package/dist/esm/column-views.e4975dd6.css +146 -0
  165. package/dist/esm/column-views.e4975dd6.css.map +1 -0
  166. package/dist/esm/column-views.e9f8b2a7.js +20 -0
  167. package/dist/esm/column-views.e9f8b2a7.js.map +1 -0
  168. package/dist/esm/column-views.edeab611.js +204 -0
  169. package/dist/esm/column-views.edeab611.js.map +1 -0
  170. package/dist/esm/{column-views.57c4ddf3.js → column-views.f08929e2.js} +2 -2
  171. package/dist/esm/column-views.f08929e2.js.map +1 -0
  172. package/dist/esm/column-views.f13a1d6e.js +37 -0
  173. package/dist/esm/column-views.f13a1d6e.js.map +1 -0
  174. package/dist/esm/column-views.f2948ff8.js +101 -0
  175. package/dist/esm/column-views.f2948ff8.js.map +1 -0
  176. package/dist/esm/column-views.f9dab157.js.map +1 -1
  177. package/dist/esm/column-views.fa19cea0.js +108 -0
  178. package/dist/esm/column-views.fa19cea0.js.map +1 -0
  179. package/dist/esm/index.d.ts +325 -296
  180. package/dist/esm/index.d.ts.map +1 -1
  181. package/dist/esm/index.js +13 -11
  182. package/dist/esm/index.js.map +1 -1
  183. package/dist/node/column-views.007bf6c1.js +2 -0
  184. package/dist/node/column-views.007bf6c1.js.map +1 -0
  185. package/dist/node/column-views.00848c9a.js +2 -0
  186. package/dist/node/column-views.00848c9a.js.map +1 -0
  187. package/dist/node/column-views.0278b7e5.js +2 -0
  188. package/dist/node/column-views.0278b7e5.js.map +1 -0
  189. package/dist/node/column-views.04407342.js +2 -0
  190. package/dist/node/column-views.04407342.js.map +1 -0
  191. package/dist/node/column-views.072d3dcd.js +2 -0
  192. package/dist/node/column-views.072d3dcd.js.map +1 -0
  193. package/dist/node/column-views.0859f5d2.js +2 -0
  194. package/dist/node/column-views.0859f5d2.js.map +1 -0
  195. package/dist/node/column-views.0b579299.css +2 -0
  196. package/dist/node/column-views.0b579299.css.map +1 -0
  197. package/dist/node/column-views.0b72c188.js +2 -0
  198. package/dist/node/column-views.0b72c188.js.map +1 -0
  199. package/dist/node/column-views.1064fcfb.js +2 -0
  200. package/dist/node/column-views.1064fcfb.js.map +1 -0
  201. package/dist/node/column-views.10a2bad6.js +2 -0
  202. package/dist/node/column-views.10a2bad6.js.map +1 -0
  203. package/dist/node/column-views.12864efd.js +2 -0
  204. package/dist/node/column-views.12864efd.js.map +1 -0
  205. package/dist/node/column-views.12a70e9d.js +2 -0
  206. package/dist/node/column-views.12a70e9d.js.map +1 -0
  207. package/dist/node/column-views.139b0855.js +2 -0
  208. package/dist/node/column-views.139b0855.js.map +1 -0
  209. package/dist/node/column-views.1a0b56fc.js +2 -0
  210. package/dist/node/column-views.1a0b56fc.js.map +1 -0
  211. package/dist/node/column-views.1de87649.js +2 -0
  212. package/dist/node/column-views.1de87649.js.map +1 -0
  213. package/dist/node/column-views.22673dc1.js +2 -0
  214. package/dist/node/column-views.22673dc1.js.map +1 -0
  215. package/dist/node/column-views.273ac4a8.js +2 -0
  216. package/dist/node/column-views.273ac4a8.js.map +1 -0
  217. package/dist/node/column-views.28609db2.css +2 -0
  218. package/dist/node/column-views.28609db2.css.map +1 -0
  219. package/dist/node/column-views.286d444d.js +2 -0
  220. package/dist/node/column-views.286d444d.js.map +1 -0
  221. package/dist/node/column-views.2877f398.js +2 -0
  222. package/dist/node/column-views.2877f398.js.map +1 -0
  223. package/dist/node/column-views.2a70b9a2.js +2 -0
  224. package/dist/node/column-views.2a70b9a2.js.map +1 -0
  225. package/dist/node/column-views.2e4e357d.js +2 -0
  226. package/dist/node/column-views.2e4e357d.js.map +1 -0
  227. package/dist/node/column-views.2fa1c4e6.css +2 -0
  228. package/dist/node/column-views.2fa1c4e6.css.map +1 -0
  229. package/dist/node/column-views.33102ceb.js +2 -0
  230. package/dist/node/column-views.33102ceb.js.map +1 -0
  231. package/dist/node/column-views.3345cd7a.js +2 -0
  232. package/dist/node/column-views.3345cd7a.js.map +1 -0
  233. package/dist/node/column-views.33752461.js +2 -0
  234. package/dist/node/column-views.33752461.js.map +1 -0
  235. package/dist/node/column-views.34b48ee4.js +2 -0
  236. package/dist/node/column-views.34b48ee4.js.map +1 -0
  237. package/dist/node/column-views.39d3a0be.js +2 -0
  238. package/dist/node/column-views.39d3a0be.js.map +1 -0
  239. package/dist/node/column-views.3a55ecd7.css +2 -0
  240. package/dist/node/column-views.3a55ecd7.css.map +1 -0
  241. package/dist/node/column-views.3bd09ad6.js +2 -0
  242. package/dist/node/column-views.3bd09ad6.js.map +1 -0
  243. package/dist/node/column-views.3cb3345e.js +2 -0
  244. package/dist/node/column-views.3cb3345e.js.map +1 -0
  245. package/dist/node/column-views.3f3cfcce.js +2 -0
  246. package/dist/node/column-views.3f3cfcce.js.map +1 -0
  247. package/dist/node/column-views.41876859.js +2 -0
  248. package/dist/node/column-views.41876859.js.map +1 -0
  249. package/dist/node/column-views.41d01674.js +2 -0
  250. package/dist/node/column-views.41d01674.js.map +1 -0
  251. package/dist/node/column-views.44b75011.js +2 -0
  252. package/dist/node/column-views.44b75011.js.map +1 -0
  253. package/dist/node/column-views.45168c80.js +2 -0
  254. package/dist/node/column-views.45168c80.js.map +1 -0
  255. package/dist/node/column-views.47f67ad4.js +2 -0
  256. package/dist/node/column-views.47f67ad4.js.map +1 -0
  257. package/dist/node/column-views.4e2bdf9b.js +2 -0
  258. package/dist/node/column-views.4e2bdf9b.js.map +1 -0
  259. package/dist/node/column-views.51fbed89.js +2 -0
  260. package/dist/node/column-views.51fbed89.js.map +1 -0
  261. package/dist/node/column-views.5b6833f0.js +2 -0
  262. package/dist/node/column-views.5b6833f0.js.map +1 -0
  263. package/dist/node/column-views.5c1b0eeb.css +2 -0
  264. package/dist/node/column-views.5c1b0eeb.css.map +1 -0
  265. package/dist/node/column-views.63165cf3.css +2 -0
  266. package/dist/node/column-views.63165cf3.css.map +1 -0
  267. package/dist/node/column-views.65ad6310.css +2 -0
  268. package/dist/node/column-views.65ad6310.css.map +1 -0
  269. package/dist/node/column-views.664dc6c9.js +2 -0
  270. package/dist/node/column-views.664dc6c9.js.map +1 -0
  271. package/dist/node/column-views.68224fdd.css +2 -0
  272. package/dist/node/column-views.68224fdd.css.map +1 -0
  273. package/dist/node/column-views.68ded006.js +2 -0
  274. package/dist/node/column-views.68ded006.js.map +1 -0
  275. package/dist/node/column-views.6a0a35e7.js +2 -0
  276. package/dist/node/column-views.6a0a35e7.js.map +1 -0
  277. package/dist/node/column-views.6a4c2100.css +2 -0
  278. package/dist/node/column-views.6a4c2100.css.map +1 -0
  279. package/dist/node/column-views.6a9da051.js +2 -0
  280. package/dist/node/column-views.6a9da051.js.map +1 -0
  281. package/dist/node/column-views.6b441349.js +2 -0
  282. package/dist/node/column-views.6b441349.js.map +1 -0
  283. package/dist/node/column-views.6b6b756b.js +2 -0
  284. package/dist/node/column-views.6b6b756b.js.map +1 -0
  285. package/dist/node/column-views.6bba8c57.js +2 -0
  286. package/dist/node/column-views.6bba8c57.js.map +1 -0
  287. package/dist/node/column-views.6d1551bd.js +2 -0
  288. package/dist/node/column-views.6d1551bd.js.map +1 -0
  289. package/dist/node/column-views.6da49480.js +2 -0
  290. package/dist/node/column-views.6da49480.js.map +1 -0
  291. package/dist/node/column-views.71c48a11.js +2 -0
  292. package/dist/node/column-views.71c48a11.js.map +1 -0
  293. package/dist/node/column-views.7350ac73.js +2 -0
  294. package/dist/node/column-views.7350ac73.js.map +1 -0
  295. package/dist/node/column-views.755f726e.js +2 -0
  296. package/dist/node/column-views.755f726e.js.map +1 -0
  297. package/dist/node/column-views.770d2c95.js +2 -0
  298. package/dist/node/column-views.770d2c95.js.map +1 -0
  299. package/dist/node/column-views.78d3f3c5.js +2 -0
  300. package/dist/node/column-views.78d3f3c5.js.map +1 -0
  301. package/dist/node/column-views.7b9bd06e.css +2 -0
  302. package/dist/node/column-views.7b9bd06e.css.map +1 -0
  303. package/dist/node/column-views.7be87c6b.js +2 -0
  304. package/dist/node/column-views.7be87c6b.js.map +1 -0
  305. package/dist/node/column-views.7d45bbeb.js +2 -0
  306. package/dist/node/column-views.7d45bbeb.js.map +1 -0
  307. package/dist/node/column-views.7f621850.js +2 -0
  308. package/dist/node/column-views.7f621850.js.map +1 -0
  309. package/dist/node/column-views.82cf7c0d.js +2 -0
  310. package/dist/node/column-views.82cf7c0d.js.map +1 -0
  311. package/dist/node/column-views.869c7199.js +2 -0
  312. package/dist/node/column-views.869c7199.js.map +1 -0
  313. package/dist/node/column-views.8a02b1fe.js +2 -0
  314. package/dist/node/column-views.8a02b1fe.js.map +1 -0
  315. package/dist/node/column-views.8acd24ca.js +2 -0
  316. package/dist/node/column-views.8acd24ca.js.map +1 -0
  317. package/dist/node/column-views.8c00beb4.js +2 -0
  318. package/dist/node/column-views.8c00beb4.js.map +1 -0
  319. package/dist/node/column-views.8cfed88b.js +2 -0
  320. package/dist/node/column-views.8cfed88b.js.map +1 -0
  321. package/dist/node/column-views.8f54691f.js +2 -0
  322. package/dist/node/column-views.8f54691f.js.map +1 -0
  323. package/dist/node/column-views.95411f1b.js +2 -0
  324. package/dist/node/column-views.95411f1b.js.map +1 -0
  325. package/dist/node/column-views.9cb13e51.css +2 -0
  326. package/dist/node/column-views.9cb13e51.css.map +1 -0
  327. package/dist/node/column-views.a0aac838.js +2 -0
  328. package/dist/node/column-views.a0aac838.js.map +1 -0
  329. package/dist/node/column-views.a208338e.js +2 -0
  330. package/dist/node/column-views.a208338e.js.map +1 -0
  331. package/dist/node/column-views.a501cea0.js +2 -0
  332. package/dist/node/column-views.a501cea0.js.map +1 -0
  333. package/dist/node/column-views.a634ac7f.js +2 -0
  334. package/dist/node/column-views.a634ac7f.js.map +1 -0
  335. package/dist/node/column-views.a8ffe072.js +2 -0
  336. package/dist/node/column-views.a8ffe072.js.map +1 -0
  337. package/dist/node/column-views.b169b4b5.css +2 -0
  338. package/dist/node/column-views.b169b4b5.css.map +1 -0
  339. package/dist/node/column-views.b55bd885.css +2 -0
  340. package/dist/node/column-views.b55bd885.css.map +1 -0
  341. package/dist/node/column-views.b773edb8.js +2 -0
  342. package/dist/node/column-views.b773edb8.js.map +1 -0
  343. package/dist/node/column-views.baf032f1.js +2 -0
  344. package/dist/node/column-views.baf032f1.js.map +1 -0
  345. package/dist/node/column-views.bb510980.js +2 -0
  346. package/dist/node/column-views.bb510980.js.map +1 -0
  347. package/dist/node/column-views.c968a185.css +2 -0
  348. package/dist/node/column-views.c968a185.css.map +1 -0
  349. package/dist/node/column-views.ca16625d.js +2 -0
  350. package/dist/node/column-views.ca16625d.js.map +1 -0
  351. package/dist/node/column-views.cd3c430b.js +2 -0
  352. package/dist/node/column-views.cd3c430b.js.map +1 -0
  353. package/dist/node/column-views.cd468adb.css +2 -0
  354. package/dist/node/column-views.cd468adb.css.map +1 -0
  355. package/dist/node/column-views.cdcce702.js +2 -0
  356. package/dist/node/column-views.cdcce702.js.map +1 -0
  357. package/dist/node/column-views.ce6808fe.js +2 -0
  358. package/dist/node/column-views.ce6808fe.js.map +1 -0
  359. package/dist/node/column-views.cf90f63d.js +2 -0
  360. package/dist/node/column-views.cf90f63d.js.map +1 -0
  361. package/dist/node/column-views.d0ee3385.js +2 -0
  362. package/dist/node/column-views.d0ee3385.js.map +1 -0
  363. package/dist/node/column-views.d6708353.js +2 -0
  364. package/dist/node/column-views.d6708353.js.map +1 -0
  365. package/dist/node/column-views.d9bbd6fb.css +2 -0
  366. package/dist/node/column-views.d9bbd6fb.css.map +1 -0
  367. package/dist/node/column-views.dfe9f0a9.js +2 -0
  368. package/dist/node/column-views.dfe9f0a9.js.map +1 -0
  369. package/dist/node/column-views.e52994ea.js +2 -0
  370. package/dist/node/column-views.e52994ea.js.map +1 -0
  371. package/dist/node/column-views.e6720522.js +2 -0
  372. package/dist/node/column-views.e6720522.js.map +1 -0
  373. package/dist/node/column-views.e77dd525.js +2 -0
  374. package/dist/node/column-views.e77dd525.js.map +1 -0
  375. package/dist/node/column-views.e7cd811c.css +2 -0
  376. package/dist/node/column-views.e7cd811c.css.map +1 -0
  377. package/dist/node/column-views.e7e26765.js +2 -0
  378. package/dist/node/column-views.e7e26765.js.map +1 -0
  379. package/dist/node/column-views.e9515ec1.js +2 -0
  380. package/dist/node/column-views.e9515ec1.js.map +1 -0
  381. package/dist/node/column-views.ebb44b7d.js +2 -0
  382. package/dist/node/column-views.ebb44b7d.js.map +1 -0
  383. package/dist/node/column-views.ee8cb107.js +2 -0
  384. package/dist/node/column-views.ee8cb107.js.map +1 -0
  385. package/dist/node/column-views.eea80478.js +2 -0
  386. package/dist/node/column-views.eea80478.js.map +1 -0
  387. package/dist/node/column-views.f7315cbc.css +2 -0
  388. package/dist/node/column-views.f7315cbc.css.map +1 -0
  389. package/dist/node/column-views.f76ba19f.js +2 -0
  390. package/dist/node/column-views.f76ba19f.js.map +1 -0
  391. package/dist/node/column-views.fea32686.js +2 -0
  392. package/dist/node/column-views.fea32686.js.map +1 -0
  393. package/dist/node/index.js +1 -1
  394. package/dist/node/index.js.map +1 -1
  395. package/package.json +16 -15
  396. package/src/age-axis.module.sass +20 -0
  397. package/src/age-axis.ts +25 -3
  398. package/src/age-model-overlay.ts +2 -2
  399. package/src/column.module.sass +3 -3
  400. package/src/column.ts +92 -19
  401. package/src/correlation-chart/main.ts +25 -12
  402. package/src/correlation-chart/prepare-data.ts +6 -6
  403. package/src/correlation-chart/stories/correlation-chart.stories.ts +12 -6
  404. package/src/data-provider/base.ts +20 -11
  405. package/src/data-provider/column-nav.ts +2 -2
  406. package/src/data-provider/fetch.ts +9 -9
  407. package/src/data-provider/store.ts +15 -10
  408. package/src/{carbon-isotopes → facets/carbon-isotopes}/data-area.ts +5 -4
  409. package/src/{carbon-isotopes → facets/carbon-isotopes}/index.ts +0 -1
  410. package/src/facets/carbon-isotopes/isotopes-column.module.sass +31 -0
  411. package/src/{carbon-isotopes → facets/carbon-isotopes}/isotopes-column.ts +119 -87
  412. package/src/facets/detrital-zircon/index.module.sass +22 -0
  413. package/src/facets/detrital-zircon/index.ts +132 -0
  414. package/src/facets/detrital-zircon/provider.ts +51 -0
  415. package/src/facets/fossils/index.module.sass +14 -0
  416. package/src/facets/fossils/index.ts +120 -0
  417. package/src/facets/fossils/provider.ts +80 -0
  418. package/src/facets/index.ts +3 -0
  419. package/src/index.ts +2 -1
  420. package/src/maps/_shared/inset-map.stories.ts +1 -1
  421. package/src/maps/_shared/inset-map.ts +2 -2
  422. package/src/maps/_shared/styles.ts +3 -1
  423. package/src/maps/column-correlation/column-correlation-map.stories.ts +3 -3
  424. package/src/maps/column-correlation/core.ts +17 -26
  425. package/src/maps/column-correlation/state.ts +9 -9
  426. package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +177 -1
  427. package/src/maps/column-navigation/mapbox/index.ts +18 -15
  428. package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +4 -4
  429. package/src/maps/column-navigation/mapbox/state.ts +16 -6
  430. package/src/maps/column-navigation/svg/animated.ts +2 -2
  431. package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +2 -2
  432. package/src/maps/column-navigation/svg/index.ts +2 -4
  433. package/src/maps/column-navigation/svg/layers.ts +5 -7
  434. package/src/maps/column-navigation/utils/keyboard-navigation.ts +1 -1
  435. package/src/notes.ts +49 -0
  436. package/src/prepare-units/composite-scale.ts +73 -25
  437. package/src/prepare-units/helpers.ts +78 -13
  438. package/src/prepare-units/index.ts +17 -17
  439. package/src/prepare-units/utils.ts +7 -7
  440. package/src/section.ts +8 -8
  441. package/src/unit-details/panel.ts +103 -19
  442. package/src/unit-details/popover.ts +5 -5
  443. package/src/units/boxes.ts +20 -10
  444. package/src/units/colors.ts +12 -5
  445. package/src/units/composite.ts +16 -11
  446. package/src/units/index.ts +77 -10
  447. package/src/units/names.ts +19 -16
  448. package/src/units/resolvers.ts +3 -0
  449. package/src/units/selection.ts +44 -11
  450. package/src/units/types.ts +2 -0
  451. package/dist/esm/column-views.062d164a.js +0 -86
  452. package/dist/esm/column-views.062d164a.js.map +0 -1
  453. package/dist/esm/column-views.07521ce6.js +0 -25
  454. package/dist/esm/column-views.07521ce6.js.map +0 -1
  455. package/dist/esm/column-views.1c589cc4.js.map +0 -1
  456. package/dist/esm/column-views.1ece326b.js.map +0 -1
  457. package/dist/esm/column-views.1edc7300.js.map +0 -1
  458. package/dist/esm/column-views.240ef158.css.map +0 -1
  459. package/dist/esm/column-views.28ee5f43.js.map +0 -1
  460. package/dist/esm/column-views.30646469.js.map +0 -1
  461. package/dist/esm/column-views.33dbc778.js.map +0 -1
  462. package/dist/esm/column-views.343b5aa2.js +0 -98
  463. package/dist/esm/column-views.343b5aa2.js.map +0 -1
  464. package/dist/esm/column-views.34636ec7.js.map +0 -1
  465. package/dist/esm/column-views.3bec70d6.js.map +0 -1
  466. package/dist/esm/column-views.3f4db8cb.js +0 -117
  467. package/dist/esm/column-views.3f4db8cb.js.map +0 -1
  468. package/dist/esm/column-views.40c1f361.js.map +0 -1
  469. package/dist/esm/column-views.4c4c5bac.js.map +0 -1
  470. package/dist/esm/column-views.57c4ddf3.js.map +0 -1
  471. package/dist/esm/column-views.5c02fee2.js.map +0 -1
  472. package/dist/esm/column-views.650bd9f5.js.map +0 -1
  473. package/dist/esm/column-views.68409161.js.map +0 -1
  474. package/dist/esm/column-views.86c4b36f.js.map +0 -1
  475. package/dist/esm/column-views.8dd877af.js.map +0 -1
  476. package/dist/esm/column-views.8e51206e.js.map +0 -1
  477. package/dist/esm/column-views.94b5cca1.js +0 -34
  478. package/dist/esm/column-views.94b5cca1.js.map +0 -1
  479. package/dist/esm/column-views.9804efda.js.map +0 -1
  480. package/dist/esm/column-views.9ced149e.js.map +0 -1
  481. package/dist/esm/column-views.a7be0a4a.css +0 -157
  482. package/dist/esm/column-views.a7be0a4a.css.map +0 -1
  483. package/dist/esm/column-views.aa9fcdba.js.map +0 -1
  484. package/dist/esm/column-views.ac9fb5e1.js +0 -163
  485. package/dist/esm/column-views.ac9fb5e1.js.map +0 -1
  486. package/dist/esm/column-views.c58aad3f.js +0 -88
  487. package/dist/esm/column-views.c58aad3f.js.map +0 -1
  488. package/dist/esm/column-views.d1ad48eb.js +0 -11
  489. package/dist/esm/column-views.d1ad48eb.js.map +0 -1
  490. package/dist/esm/column-views.dff52504.js.map +0 -1
  491. package/dist/esm/column-views.e2b9c23c.css.map +0 -1
  492. package/dist/esm/column-views.e77b9d6b.js.map +0 -1
  493. package/dist/esm/column-views.ea237aa8.js.map +0 -1
  494. package/dist/esm/column-views.f71ec4b4.js.map +0 -1
  495. package/dist/esm/column-views.fa6f3292.js.map +0 -1
  496. package/src/carbon-isotopes/column.module.sass +0 -136
  497. package/src/carbon-isotopes/column.ts +0 -133
  498. package/src/carbon-isotopes/core.ts +0 -81
  499. /package/src/{carbon-isotopes → facets/carbon-isotopes}/data-provider.ts +0 -0
@@ -0,0 +1 @@
1
+ {"mappings":"ACAA,iFAMA,4IAMA,0FAIA,oDAIA,wDAIA,8DAKA,6DAGE,4GAIA,iFAKF","sources":["column-views.68224fdd.css","packages/data-components/src/components/hierarchy/hierarchy.module.scss"],"sourcesContent":["._4LY9uG_name-hierarchy {\n width: 92%;\n max-width: 700px;\n margin: 0 auto;\n padding-top: 35px;\n}\n\n._4LY9uG_hierarchy-container {\n border: 2px solid var(--accent-color);\n cursor: pointer;\n background-color: var(--background-color);\n border-radius: 2px;\n}\n\n._4LY9uG_active {\n background-color: #9900004d !important;\n border: 2px solid #9900004d !important;\n}\n\n._4LY9uG_hierarchy-name {\n padding: 7px;\n font-weight: bold;\n}\n\n._4LY9uG_hierarchy-link {\n color: #000;\n text-decoration: none;\n}\n\n._4LY9uG_hierarchy-link:hover {\n color: #900;\n text-decoration: none;\n}\n\n._4LY9uG_hierarchy-children {\n margin-left: 7px;\n padding-left: 7px;\n}\n\n._4LY9uG_hierarchy-children ._4LY9uG_hierarchy-container {\n border-bottom: 0 !important;\n border-right: 0 !important;\n}\n\n._4LY9uG_hierarchy-children ._4LY9uG_active {\n border: 2px solid #9900004d !important;\n}\n\n._4LY9uG_badge {\n background-color: var(--bac);\n color: var(--text-color);\n vertical-align: middle;\n border-radius: 10px;\n min-width: 10px;\n margin-left: 3px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: 200;\n display: inline-block;\n}\n/*# sourceMappingURL=column-views.68224fdd.css.map */\n",".name-hierarchy {\n width: 92%;\n padding-top: 35px;\n max-width: 700px;\n margin: 0 auto;\n}\n.hierarchy-container {\n border: 2px solid var(--accent-color);\n border-radius: 2px;\n cursor: pointer;\n background-color: var(--background-color);\n}\n.active {\n background-color: rgba(153, 0, 0, 0.3) !important;\n border: 2px solid rgba(153, 0, 0, 0.3) !important;\n}\n.hierarchy-name {\n font-weight: bold;\n padding: 7px;\n}\n.hierarchy-link {\n text-decoration: none;\n color: #000;\n}\n.hierarchy-link:hover {\n color: #990000;\n text-decoration: none;\n}\n\n.hierarchy-children {\n margin-left: 7px;\n padding-left: 7px;\n .hierarchy-container {\n border-bottom: 0 !important;\n border-right: 0 !important;\n }\n .active {\n border: 2px solid rgba(153, 0, 0, 0.3) !important;\n }\n}\n\n.badge {\n background-color: var(--bac);\n color: var(--text-color);\n border-radius: 10px;\n font-weight: 200;\n display: inline-block;\n margin-left: 3px;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n vertical-align: middle;\n border-radius: 10px;\n}\n"],"names":[],"version":3,"file":"column-views.68224fdd.css.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.6d1551bd.js";import"./column-views.34b48ee4.js";function e(e,r){return Object.keys(r).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})}),e}var r=globalThis,t={},a={},c=r.parcelRequirea149;null==c&&((c=function(e){if(e in t)return t[e].exports;if(e in a){var r=a[e];delete a[e];var c={id:e,exports:{}};return t[e]=c,r.call(c.exports,c,c.exports),c.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,r){a[e]=r},r.parcelRequirea149=c),c.register;var o={},n=c("iYfAq"),i=c("2KV3o");e(o,n),e(o,i);export{$4a89f93cd5289383$export$fbd245232df17557 as UnitDetailsPanel,$4a89f93cd5289383$export$fc503c39cc5cff43 as LegendPanelHeader,$4a89f93cd5289383$export$ec297f6f9a6ccad0 as UnitDetailsFeature,$4a89f93cd5289383$export$3b11bc38611c5941 as Duration,$4a89f93cd5289383$export$37ebfd237811b1eb as AgeLabel,$1c6e0a5d10814cef$export$6716aecc2c9afbe2 as UnitDetailsPopover,$1c6e0a5d10814cef$export$db1115efab13710d as UnitSelectionPopover};
2
+ //# sourceMappingURL=column-views.68ded006.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,M,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,gB,C,6C,iB,C,6C,kB,C,6C,Q,C,6C,Q,C,6C,kB,C,6C,oB","sources":["<anon>","packages/column-views/src/unit-details/index.ts"],"sourcesContent":["import \"./column-views.6d1551bd.js\";\nimport \"./column-views.34b48ee4.js\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $af300f8688b62310$exports = {};\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\n\nvar $2KV3o = parcelRequire(\"2KV3o\");\n$parcel$exportWildcard($af300f8688b62310$exports, $iYfAq);\n$parcel$exportWildcard($af300f8688b62310$exports, $2KV3o);\n\n\nexport {$4a89f93cd5289383$export$fbd245232df17557 as UnitDetailsPanel, $4a89f93cd5289383$export$fc503c39cc5cff43 as LegendPanelHeader, $4a89f93cd5289383$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $4a89f93cd5289383$export$3b11bc38611c5941 as Duration, $4a89f93cd5289383$export$37ebfd237811b1eb as AgeLabel, $1c6e0a5d10814cef$export$6716aecc2c9afbe2 as UnitDetailsPopover, $1c6e0a5d10814cef$export$db1115efab13710d as UnitSelectionPopover};\n//# sourceMappingURL=column-views.68ded006.js.map\n","export * from \"./panel\";\nexport * from \"./popover\";\n"],"names":["$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$af300f8688b62310$exports","$iYfAq","$2KV3o","$4a89f93cd5289383$export$fbd245232df17557","UnitDetailsPanel","$4a89f93cd5289383$export$fc503c39cc5cff43","LegendPanelHeader","$4a89f93cd5289383$export$ec297f6f9a6ccad0","UnitDetailsFeature","$4a89f93cd5289383$export$3b11bc38611c5941","Duration","$4a89f93cd5289383$export$37ebfd237811b1eb","AgeLabel","$1c6e0a5d10814cef$export$6716aecc2c9afbe2","UnitDetailsPopover","$1c6e0a5d10814cef$export$db1115efab13710d","UnitSelectionPopover"],"version":3,"file":"column-views.68ded006.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ var e,t={};Object.defineProperty(t,"unit-label",{get:()=>e,set:t=>e=t,enumerable:!0,configurable:!0}),e="kMKW0a_unit-label";export{t as default};
2
+ //# sourceMappingURL=column-views.6a0a35e7.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,ICAA,E,E,C,E,O,c,C,E,a,C,I,I,E,I,A,G,E,E,W,C,E,a,C,C,GAAA,EAA+B,2B,K,O","sources":["<anon>","packages/column-views/src/units/composite.module.sass"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $2f9efb5ed6f667c5$exports = {};\n\n$parcel$export($2f9efb5ed6f667c5$exports, \"unit-label\", () => $2f9efb5ed6f667c5$export$66e2544324d5808e, (v) => $2f9efb5ed6f667c5$export$66e2544324d5808e = v);\nvar $2f9efb5ed6f667c5$export$66e2544324d5808e;\n$2f9efb5ed6f667c5$export$66e2544324d5808e = `kMKW0a_unit-label`;\n\n\nexport {$2f9efb5ed6f667c5$exports as default};\n//# sourceMappingURL=column-views.6a0a35e7.js.map\n",null],"names":["$2f9efb5ed6f667c5$export$66e2544324d5808e","$2f9efb5ed6f667c5$exports","Object","defineProperty","get","set","v","enumerable","configurable","default"],"version":3,"file":"column-views.6a0a35e7.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ ._4q2yq_boundary-age-model{width:100%;position:absolute;top:0;left:0}._4q2yq_boundary-age-model-surface{border-top:1px solid #90ee90;position:absolute;left:0;right:0}
2
+ /*# sourceMappingURL=column-views.6a4c2100.css.map */
@@ -0,0 +1 @@
1
+ {"mappings":"ACAA,qEAMA","sources":["column-views.6a4c2100.css","packages/column-views/src/age-model-overlay.module.sass"],"sourcesContent":["._4q2yq_boundary-age-model {\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n._4q2yq_boundary-age-model-surface {\n border-top: 1px solid #90ee90;\n position: absolute;\n left: 0;\n right: 0;\n}\n/*# sourceMappingURL=column-views.6a4c2100.css.map */\n",".boundary-age-model\n top: 0\n left: 0\n position: absolute\n width: 100%\n\n.boundary-age-model-surface\n left: 0\n right: 0\n position: absolute\n border-top: 1px solid lightgreen\n"],"names":[],"version":3,"file":"column-views.6a4c2100.css.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ function e(e,n,l,o){Object.defineProperty(e,n,{get:l,set:o,enumerable:!0,configurable:!0})}var n,l,o,a,p={};e(p,"legend-info-panel",()=>n,e=>n=e),e(p,"legend-json-view",()=>l,e=>l=e),e(p,"legend-panel",()=>o,e=>o=e),e(p,"popover-main",()=>a,e=>a=e),n="mMIlxW_legend-info-panel",l="mMIlxW_legend-json-view",o="mMIlxW_legend-panel",a="mMIlxW_popover-main";export{p as default};
2
+ //# sourceMappingURL=column-views.6a9da051.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICAA,EACA,EACA,EACA,E,E,C,E,E,E,oB,I,E,A,G,E,G,E,E,mB,I,E,A,G,E,G,E,E,e,I,E,A,G,E,G,E,E,e,I,E,A,G,E,GAHA,EAAsC,2BACtC,EAAqC,0BACrC,EAAiC,sBACjC,EAAiC,6B,K,O","sources":["<anon>","packages/column-views/src/unit-details/popover.module.sass"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $883c8f001cfb8960$exports = {};\n\n$parcel$export($883c8f001cfb8960$exports, \"legend-info-panel\", () => $883c8f001cfb8960$export$bf3f08f04957302d, (v) => $883c8f001cfb8960$export$bf3f08f04957302d = v);\n$parcel$export($883c8f001cfb8960$exports, \"legend-json-view\", () => $883c8f001cfb8960$export$259f01a14528542c, (v) => $883c8f001cfb8960$export$259f01a14528542c = v);\n$parcel$export($883c8f001cfb8960$exports, \"legend-panel\", () => $883c8f001cfb8960$export$5ccc34f744545e5c, (v) => $883c8f001cfb8960$export$5ccc34f744545e5c = v);\n$parcel$export($883c8f001cfb8960$exports, \"popover-main\", () => $883c8f001cfb8960$export$85b6d6914dbd94dc, (v) => $883c8f001cfb8960$export$85b6d6914dbd94dc = v);\nvar $883c8f001cfb8960$export$bf3f08f04957302d;\nvar $883c8f001cfb8960$export$259f01a14528542c;\nvar $883c8f001cfb8960$export$5ccc34f744545e5c;\nvar $883c8f001cfb8960$export$85b6d6914dbd94dc;\n$883c8f001cfb8960$export$bf3f08f04957302d = `mMIlxW_legend-info-panel`;\n$883c8f001cfb8960$export$259f01a14528542c = `mMIlxW_legend-json-view`;\n$883c8f001cfb8960$export$5ccc34f744545e5c = `mMIlxW_legend-panel`;\n$883c8f001cfb8960$export$85b6d6914dbd94dc = `mMIlxW_popover-main`;\n\n\nexport {$883c8f001cfb8960$exports as default};\n//# sourceMappingURL=column-views.6a9da051.js.map\n",null],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$883c8f001cfb8960$export$bf3f08f04957302d","$883c8f001cfb8960$export$259f01a14528542c","$883c8f001cfb8960$export$5ccc34f744545e5c","$883c8f001cfb8960$export$85b6d6914dbd94dc","$883c8f001cfb8960$exports","default"],"version":3,"file":"column-views.6a9da051.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.a0aac838.js";import{create as e,useStore as r}from"zustand";import{lineIntersect as t}from"@turf/line-intersect";import o from"@turf/distance";import{nearestPointOnLine as n}from"@turf/nearest-point-on-line";import{centroid as i}from"@turf/centroid";import{createContext as a,useState as s,useEffect as l,useContext as u}from"react";import c from"@macrostrat/hyper";import{createComputed as f}from"zustand-computed";function p(e,r,t,o){Object.defineProperty(e,r,{get:t,set:o,enumerable:!0,configurable:!0})}var d=globalThis,m={},g={},b=d.parcelRequirea149;null==b&&((b=function(e){if(e in m)return m[e].exports;if(e in g){var r=g[e];delete g[e];var t={id:e,exports:{}};return m[e]=t,r.call(t.exports,t,t.exports),t.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,r){g[e]=r},d.parcelRequirea149=b),b.register;var C={};p(C,"ColumnCorrelationProvider",()=>P),p(C,"useCorrelationMapStore",()=>x);var v=b("lgTAP");let L=a(null),y=f(e=>{var r,a,s,l;return{focusedColumns:(r=e.columns,a=e.focusedLine,null==r||null==a||a.coordinates.length<2?[]:function(e,r){var t,a;let s=e.map(e=>i(e.geometry)),l=s.map(e=>n(r,e)),u=l.map(e=>o(e.geometry.coordinates,r.coordinates[0]));return t=e.map((e,r)=>({...e,properties:{...e.properties,centroid:s[r],nearestPointOnLine:l[r],distanceAlongLine:u[r]}})),a=e=>e.properties.distanceAlongLine,t.sort((e,r)=>a(e)-a(r))}((s=r,l=a,null==s||null==l?[]:s.filter(e=>{let r=e.geometry;return null!=r&&("Polygon"==r.type||"MultiPolygon"==r.type)&&t(l,r).features.length>0})),a))}});function P({children:t,columns:o,projectID:n,inProcess:i,focusedLine:a,onSelectColumns:u}){let[f]=s(()=>e(y((e,r)=>({focusedLine:a,columns:null,onClickMap(t,o){let n=r(),i=t.originalEvent.shiftKey,a=n.focusedLine?.coordinates??[];a.length>=2&&!i&&(a=[]),e({focusedLine:{type:"LineString",coordinates:[...a,o.coordinates]}})}})))),p=(0,v.useMacrostratColumns)(n,i);l(()=>{null!=p&&f.setState({columns:p})},[p]);let d=r(f,e=>e.focusedColumns),m=r(f,e=>e.focusedLine);return l(()=>{u?.(d,m)},[d,m]),c(L.Provider,{value:f},t)}function x(e){let t=u(L);if(null==t)throw Error("Missing CorrelationMapProvider");return r(t,e)}export{P as ColumnCorrelationProvider,x as useCorrelationMapStore};
2
+ //# sourceMappingURL=column-views.6b441349.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,M,6C,A,Q,U,C,C,Y,C,K,S,A,Q,iB,C,K,sB,A,Q,M,gB,A,Q,sB,C,K,6B,A,Q,Y,C,K,gB,A,Q,iB,C,C,Y,C,C,a,C,C,c,C,K,O,A,Q,M,mB,A,Q,kB,C,K,kB,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,4B,I,G,E,E,yB,I,G,I,E,E,SCwCA,IAAM,EACJ,AAAA,EAAoD,MAOhD,EAAW,AAAA,EAAe,AAAC,QA0E/B,EACA,EAYA,EACA,QAvFO,CAEL,cAAA,EAuEF,EAvE0C,EAAM,OAAO,CAwEvD,EAxEyD,EAAM,WAAW,CA0E1E,AAAI,AAAW,MAAX,GAAmB,AAAQ,MAAR,GAAgB,EAAK,WAAW,CAAC,MAAM,CAAG,EACxD,EAAE,CAEJ,AAkCT,SACE,CAA8B,CAC9B,CAAgB,MAyBF,EAAM,EAvBpB,IAAM,EAAY,EAAQ,GAAG,CAAC,AAAC,GAAQ,AAAA,EAAS,EAAI,QAAQ,GACtD,EAAkB,EAAU,GAAG,CAAC,AAAC,GACrC,AAAA,EAAmB,EAAM,IAErB,EAAY,EAAgB,GAAG,CAAC,AAAC,GACrC,AAAA,EAAS,EAAM,QAAQ,CAAC,WAAW,CAAE,EAAK,WAAW,CAAC,EAAE,GAe1D,OAGc,EAfG,EAAQ,GAAG,CAAC,CAAC,EAAK,IAC1B,CAAA,CACL,GAAG,CAAG,CACN,WAAY,CACV,GAAG,EAAI,UAAU,CACjB,SAAU,CAAS,CAAC,EAAE,CACtB,mBAAoB,CAAe,CAAC,EAAE,CACtC,kBAAmB,CAAS,CAAC,EAAE,AACjC,CACF,CAAA,GAMkB,EAHM,AAAC,GAAM,EAAE,UAAU,CAAC,iBAAiB,CAIxD,EAAK,IAAI,CAAC,CAAC,EAAG,IAAM,EAAS,GAAK,EAAS,GAHpD,GApDE,EAN6B,EAO7B,EAPsC,EAStC,AAAI,AAAW,MAAX,GAAmB,AAAQ,MAAR,EACd,EAAE,CAGJ,EAAQ,MAAM,CAAC,AAAC,IACrB,IAAM,EAAO,EAAI,QAAQ,QAGzB,AAAY,MAAR,GACA,CAAA,AAAa,WAAb,EAAK,IAAI,EAAiB,AAAa,gBAAb,EAAK,IAAI,AAAI,GAGpC,AADc,AAAA,EAAc,EAAM,GACrB,QAAQ,CAAC,MAAM,CAAG,CACxC,IArBE,GA9EF,IAGK,SAAS,EAA0B,CAAA,SACxC,CAAQ,CAAA,QACR,CAAO,CAAA,UACP,CAAS,CAAA,UACT,CAAS,CAAA,YACT,CAAW,CAAA,gBACX,CAAe,CACU,EACzB,GAAM,CAAC,EAAM,CAAG,AAAA,EAAS,IAChB,AAAA,EACL,EAAS,CAAC,EAAK,IACN,CAAA,CACL,YAAA,EACA,QAAS,KACT,WAAW,CAA6B,CAAE,CAAY,EACpD,IAAM,EAAQ,IAER,EAAkB,EAAM,aAAa,CAAC,QAAQ,CAChD,EAAiB,EAAM,WAAW,EAAE,aAAe,EAAE,AAErD,CAAA,EAAe,MAAM,EAAI,GAAK,CAAC,GAEjC,CAAA,EAAiB,EAAE,AAAF,EAEnB,EAAI,CACF,YAAa,CACX,KAAM,aACN,YAAa,IAAI,EAAgB,EAAM,WAAW,CAAC,AACrD,CACF,EACF,CACF,CAAA,KAOA,EAAW,AAAA,CAAA,EAAA,EAAA,oBAAmB,AAAnB,EAAqB,EAAW,GACjD,AAAA,EAAU,KACJ,AAAY,MAAZ,GACF,EAAM,QAAQ,CAAC,CAAE,QAAS,CAAS,EAEvC,EAAG,CAAC,EAAS,EAGb,IAAM,EAAiB,AAAA,EAAS,EAAO,AAAC,GAAU,EAAM,cAAc,EAChE,EAAe,AAAA,EAAS,EAAO,AAAC,GAAU,EAAM,WAAW,EAMjE,OAJA,AAAA,EAAU,KACR,IAAkB,EAAgB,EACpC,EAAG,CAAC,EAAgB,EAAa,EAE1B,AAAA,EAAE,EAAwB,QAAQ,CAAE,CAAE,MAAO,CAAM,EAAG,EAC/D,CAEO,SAAS,EACd,CAA6D,EAE7D,IAAM,EAAW,AAAA,EAAW,GAC5B,GAAI,AAAY,MAAZ,EACF,MAAM,AAAI,MAAM,kCAElB,OAAO,AAAA,EAAS,EAAU,EAC5B,Q,K,yB,C,K,sB","sources":["<anon>","packages/column-views/src/maps/column-correlation/state.ts"],"sourcesContent":["import \"./column-views.a0aac838.js\";\nimport {create as $g7zod$create, useStore as $g7zod$useStore} from \"zustand\";\nimport {lineIntersect as $g7zod$lineIntersect} from \"@turf/line-intersect\";\nimport $g7zod$turfdistance from \"@turf/distance\";\nimport {nearestPointOnLine as $g7zod$nearestPointOnLine} from \"@turf/nearest-point-on-line\";\nimport {centroid as $g7zod$centroid} from \"@turf/centroid\";\nimport {createContext as $g7zod$createContext, useState as $g7zod$useState, useEffect as $g7zod$useEffect, useContext as $g7zod$useContext} from \"react\";\nimport $g7zod$macrostrathyper from \"@macrostrat/hyper\";\nimport {createComputed as $g7zod$createComputed} from \"zustand-computed\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $c36af3ba15da093b$exports = {};\n\n$parcel$export($c36af3ba15da093b$exports, \"ColumnCorrelationProvider\", () => $c36af3ba15da093b$export$72ffe141ebf87ef1);\n$parcel$export($c36af3ba15da093b$exports, \"useCorrelationMapStore\", () => $c36af3ba15da093b$export$21398703d3a9bb4d);\n\n\n\n\n\n\n\n\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nconst $c36af3ba15da093b$var$CorrelationStoreContext = (0, $g7zod$createContext)(null);\n/** A computed store that will automatically update when the state changes */ const $c36af3ba15da093b$var$computed = (0, $g7zod$createComputed)((state)=>{\n return {\n // We compute the focused columns based on columns and focusedLine\n focusedColumns: $c36af3ba15da093b$var$buildCorrelationColumns(state.columns, state.focusedLine)\n };\n});\nfunction $c36af3ba15da093b$export$72ffe141ebf87ef1({ children: children, columns: columns, projectID: projectID, inProcess: inProcess, focusedLine: focusedLine, onSelectColumns: onSelectColumns }) {\n const [store] = (0, $g7zod$useState)(()=>{\n return (0, $g7zod$create)($c36af3ba15da093b$var$computed((set, get)=>{\n return {\n focusedLine: focusedLine,\n columns: null,\n onClickMap (event, point) {\n const state = get();\n // Check if shift key is pressed\n const shiftKeyPressed = event.originalEvent.shiftKey;\n let existingCoords = state.focusedLine?.coordinates ?? [];\n if (existingCoords.length >= 2 && !shiftKeyPressed) // Reset the line to zero length\n existingCoords = [];\n set({\n focusedLine: {\n type: \"LineString\",\n coordinates: [\n ...existingCoords,\n point.coordinates\n ]\n }\n });\n }\n };\n }));\n });\n // Set up the store\n /** TODO: move the fetching of all columns to within the map */ const _columns = (0, $lgTAP.useMacrostratColumns)(projectID, inProcess);\n (0, $g7zod$useEffect)(()=>{\n if (_columns != null) store.setState({\n columns: _columns\n });\n }, [\n _columns\n ]);\n // Kind of an awkward way to do this but we need to allow the selector to run\n const focusedColumns = (0, $g7zod$useStore)(store, (state)=>state.focusedColumns);\n const _focusedLine = (0, $g7zod$useStore)(store, (state)=>state.focusedLine);\n (0, $g7zod$useEffect)(()=>{\n onSelectColumns?.(focusedColumns, _focusedLine);\n }, [\n focusedColumns,\n _focusedLine\n ]);\n return (0, $g7zod$macrostrathyper)($c36af3ba15da093b$var$CorrelationStoreContext.Provider, {\n value: store\n }, children);\n}\nfunction $c36af3ba15da093b$export$21398703d3a9bb4d(selector) {\n const storeApi = (0, $g7zod$useContext)($c36af3ba15da093b$var$CorrelationStoreContext);\n if (storeApi == null) throw new Error(\"Missing CorrelationMapProvider\");\n return (0, $g7zod$useStore)(storeApi, selector);\n}\nfunction $c36af3ba15da093b$var$buildCorrelationColumns(columns, line) {\n if (columns == null || line == null || line.coordinates.length < 2) return [];\n return $c36af3ba15da093b$var$orderColumnsByDistance($c36af3ba15da093b$var$computeIntersectingColumns(columns, line), line);\n}\nfunction $c36af3ba15da093b$var$computeIntersectingColumns(columns, line) {\n if (columns == null || line == null) return [];\n return columns.filter((col)=>{\n const poly = col.geometry;\n // Some in-process datasets seem to have null geometries\n if (poly == null) return false;\n if (poly.type != \"Polygon\" && poly.type != \"MultiPolygon\") return false;\n const intersection = (0, $g7zod$lineIntersect)(line, poly);\n return intersection.features.length > 0;\n });\n}\nfunction $c36af3ba15da093b$var$orderColumnsByDistance(columns, line) {\n const centroids = columns.map((col)=>(0, $g7zod$centroid)(col.geometry));\n const projectedPoints = centroids.map((point)=>(0, $g7zod$nearestPointOnLine)(line, point));\n const distances = projectedPoints.map((point)=>(0, $g7zod$turfdistance)(point.geometry.coordinates, line.coordinates[0]));\n let newColumns = columns.map((col, i)=>{\n return {\n ...col,\n properties: {\n ...col.properties,\n centroid: centroids[i],\n nearestPointOnLine: projectedPoints[i],\n distanceAlongLine: distances[i]\n }\n };\n });\n return $c36af3ba15da093b$var$sorted(newColumns, (d)=>d.properties.distanceAlongLine);\n}\nfunction $c36af3ba15da093b$var$sorted(data, accessor) {\n return data.sort((a, b)=>accessor(a) - accessor(b));\n}\n\n\nexport {$c36af3ba15da093b$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $c36af3ba15da093b$export$21398703d3a9bb4d as useCorrelationMapStore};\n//# sourceMappingURL=column-views.6b441349.js.map\n","import { LineString, Point } from \"geojson\";\nimport { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecord } from \"@macrostrat/api-types\";\n// Turf intersection\nimport { lineIntersect } from \"@turf/line-intersect\";\nimport distance from \"@turf/distance\";\nimport { nearestPointOnLine } from \"@turf/nearest-point-on-line\";\nimport { centroid } from \"@turf/centroid\";\nimport mapboxgl from \"mapbox-gl\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { createComputed } from \"zustand-computed\";\nimport { useMacrostratColumns } from \"../../data-provider/base\";\n\nexport interface CorrelationMapInput {\n columns: ColumnGeoJSONRecord[];\n focusedLine: LineString | null;\n}\n\nexport interface CorrelationMapStore extends CorrelationMapInput {\n onClickMap: (event: mapboxgl.MapMouseEvent, point: Point) => void;\n}\n\nexport interface CorrelationProviderProps extends CorrelationMapInput {\n projectID?: number;\n inProcess?: boolean;\n columns: ColumnGeoJSONRecord[] | null;\n children: ReactNode;\n onSelectColumns?: (\n columns: FocusedColumnGeoJSONRecord[],\n line: LineString | null,\n ) => void;\n}\n\nconst CorrelationStoreContext =\n createContext<StoreApi<CorrelationMapStore> | null>(null);\n\ntype ComputedStore = {\n focusedColumns: FocusedColumnGeoJSONRecord[];\n};\n\n/** A computed store that will automatically update when the state changes */\nconst computed = createComputed((state: CorrelationMapStore): ComputedStore => {\n return {\n // We compute the focused columns based on columns and focusedLine\n focusedColumns: buildCorrelationColumns(state.columns, state.focusedLine),\n };\n}) as any;\n\nexport function ColumnCorrelationProvider({\n children,\n columns,\n projectID,\n inProcess,\n focusedLine,\n onSelectColumns,\n}: CorrelationProviderProps) {\n const [store] = useState(() => {\n return create<CorrelationMapStore & ComputedStore>(\n computed((set, get): CorrelationMapStore => {\n return {\n focusedLine,\n columns: null,\n onClickMap(event: mapboxgl.MapMouseEvent, point: Point) {\n const state = get();\n // Check if shift key is pressed\n const shiftKeyPressed = event.originalEvent.shiftKey;\n let existingCoords = state.focusedLine?.coordinates ?? [];\n\n if (existingCoords.length >= 2 && !shiftKeyPressed) {\n // Reset the line to zero length\n existingCoords = [];\n }\n set({\n focusedLine: {\n type: \"LineString\",\n coordinates: [...existingCoords, point.coordinates],\n },\n });\n },\n };\n }),\n );\n });\n\n // Set up the store\n /** TODO: move the fetching of all columns to within the map */\n const _columns = useMacrostratColumns(projectID, inProcess);\n useEffect(() => {\n if (_columns != null) {\n store.setState({ columns: _columns });\n }\n }, [_columns]);\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n const focusedColumns = useStore(store, (state) => state.focusedColumns);\n const _focusedLine = useStore(store, (state) => state.focusedLine);\n\n useEffect(() => {\n onSelectColumns?.(focusedColumns, _focusedLine);\n }, [focusedColumns, _focusedLine]);\n\n return h(CorrelationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useCorrelationMapStore(\n selector: (state: CorrelationMapStore & ComputedStore) => any,\n) {\n const storeApi = useContext(CorrelationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing CorrelationMapProvider\");\n }\n return useStore(storeApi, selector);\n}\n\nfunction buildCorrelationColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n if (columns == null || line == null || line.coordinates.length < 2) {\n return [];\n }\n return orderColumnsByDistance(\n computeIntersectingColumns(columns, line),\n line,\n );\n}\n\nfunction computeIntersectingColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): ColumnGeoJSONRecord[] {\n if (columns == null || line == null) {\n return [];\n }\n\n return columns.filter((col) => {\n const poly = col.geometry;\n\n // Some in-process datasets seem to have null geometries\n if (poly == null) return false;\n if (poly.type != \"Polygon\" && poly.type != \"MultiPolygon\") return false;\n\n const intersection = lineIntersect(line, poly);\n return intersection.features.length > 0;\n });\n}\n\ninterface FocusedColumnGeoJSONRecord extends ColumnGeoJSONRecord {\n properties: {\n centroid: Point;\n nearestPointOnLine: Point;\n distanceAlongLine: number;\n } & ColumnGeoJSONRecord[\"properties\"];\n}\n\nfunction orderColumnsByDistance(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n const centroids = columns.map((col) => centroid(col.geometry));\n const projectedPoints = centroids.map((point) =>\n nearestPointOnLine(line, point),\n );\n const distances = projectedPoints.map((point) =>\n distance(point.geometry.coordinates, line.coordinates[0]),\n );\n\n let newColumns = columns.map((col, i) => {\n return {\n ...col,\n properties: {\n ...col.properties,\n centroid: centroids[i],\n nearestPointOnLine: projectedPoints[i],\n distanceAlongLine: distances[i],\n },\n };\n });\n\n return sorted(newColumns, (d) => d.properties.distanceAlongLine);\n}\n\nfunction sorted(data, accessor: (d) => number) {\n return data.sort((a, b) => accessor(a) - accessor(b));\n}\n"],"names":["create","$g7zod$create","useStore","$g7zod$useStore","lineIntersect","$g7zod$lineIntersect","$g7zod$turfdistance","nearestPointOnLine","$g7zod$nearestPointOnLine","centroid","$g7zod$centroid","createContext","$g7zod$createContext","useState","$g7zod$useState","useEffect","$g7zod$useEffect","useContext","$g7zod$useContext","$g7zod$macrostrathyper","createComputed","$g7zod$createComputed","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$c36af3ba15da093b$exports","$c36af3ba15da093b$export$72ffe141ebf87ef1","$c36af3ba15da093b$export$21398703d3a9bb4d","$lgTAP","$c36af3ba15da093b$var$CorrelationStoreContext","$c36af3ba15da093b$var$computed","state","columns","line","focusedColumns","focusedLine","coordinates","length","$c36af3ba15da093b$var$orderColumnsByDistance","data","accessor","centroids","map","col","geometry","projectedPoints","point","distances","i","properties","distanceAlongLine","d","sort","a","b","filter","poly","type","intersection","features","children","projectID","inProcess","onSelectColumns","store","onClickMap","event","shiftKeyPressed","originalEvent","shiftKey","existingCoords","_columns","useMacrostratColumns","setState","_focusedLine","Provider","value","selector","storeApi","ColumnCorrelationProvider","useCorrelationMapStore"],"version":3,"file":"column-views.6b441349.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.2a70b9a2.js";import"./column-views.7d45bbeb.js";import{useMemo as e,useCallback as r,useEffect as t}from"react";import{setGeoJSON as n,buildGeoJSONSource as l}from"@macrostrat/mapbox-utils";import{useMapRef as o,useMapStyleOperator as i}from"@macrostrat/mapbox-react";var a=globalThis,u={},s={},c=a.parcelRequirea149;null==c&&((c=function(e){if(e in u)return u[e].exports;if(e in s){var r=s[e];delete s[e];var t={id:e,exports:{}};return u[e]=t,r.call(t.exports,t,t.exports),t.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,r){s[e]=r},a.parcelRequirea149=c),c.register;var p=c("c4zVj"),d=c("iVYEX");function f(l){let{showTriangulation:a=!1}=l,u=(0,p.useColumnNavigationStore)(e=>e.columns),s=(0,p.useColumnNavigationStore)(e=>e.selectedColumn),c=(0,p.useColumnNavigationStore)(e=>e.selectColumn),f=e(()=>u&&0!=u.length?(0,d.buildTriangulation)(u):null,[u]),m=o().current,v=e(()=>{if(null==u||null==f||null==m)return null;let e=u.findIndex(e=>e.properties.col_id==s),r=f.tri.delaunay.neighbors[e];return(0,d.buildKeyMapping)(r,f.centroids,e,e=>{let r=m.project(e);return[r.x,r.y]})},[s,u,f,m]),b=r(e=>{if(null==v)return;let r=v[e.which];if(null!=r)return e.preventDefault(),e.stopPropagation(),c(u[r].id),!1},[v,c]);return t(()=>{if(null==m)return;let e=m.getCanvas();return e.addEventListener("keydown",b),()=>{e.removeEventListener("keydown",b)}},[m,b]),i(e=>{if(null==f||!a)return;let{features:r}=f.tri.links();n(e,"column-links",{type:"FeatureCollection",features:r})},[f,a]),null}function m(e="purple"){return{sources:{"column-links":l()},layers:[{id:"column-links",type:"line",source:"column-links",paint:{"line-color":e,"line-width":1.5}},{id:"column-centers",type:"circle",source:"column-links",paint:{"circle-radius":2,"circle-color":e}}]}}export{f as ColumnKeyboardNavigation,m as buildKeyboardNavigationStyle};
2
+ //# sourceMappingURL=column-views.6b6b756b.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["<anon>","packages/column-views/src/maps/column-navigation/mapbox/keyboard-navigation.ts"],"sourcesContent":["import \"./column-views.2a70b9a2.js\";\nimport \"./column-views.7d45bbeb.js\";\nimport {useMemo as $6HCEc$useMemo, useCallback as $6HCEc$useCallback, useEffect as $6HCEc$useEffect} from \"react\";\nimport {setGeoJSON as $6HCEc$setGeoJSON, buildGeoJSONSource as $6HCEc$buildGeoJSONSource} from \"@macrostrat/mapbox-utils\";\nimport {useMapRef as $6HCEc$useMapRef, useMapStyleOperator as $6HCEc$useMapStyleOperator} from \"@macrostrat/mapbox-react\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\nvar $c4zVj = parcelRequire(\"c4zVj\");\n\nvar $iVYEX = parcelRequire(\"iVYEX\");\nfunction $ee9901df79ff88e8$export$8c41dd563753848(props) {\n /** Keyboard navigation of columns using a Delaunay triangulation */ const { showTriangulation: showTriangulation = false } = props;\n const columns = (0, $c4zVj.useColumnNavigationStore)((state)=>state.columns);\n const col_id = (0, $c4zVj.useColumnNavigationStore)((state)=>state.selectedColumn);\n const selectColumn = (0, $c4zVj.useColumnNavigationStore)((state)=>state.selectColumn);\n const voronoi = (0, $6HCEc$useMemo)(()=>{\n if (!columns || columns.length == 0) return null;\n return (0, $iVYEX.buildTriangulation)(columns);\n }, [\n columns\n ]);\n const mapRef = (0, $6HCEc$useMapRef)();\n const map = mapRef.current;\n const keyMapping = (0, $6HCEc$useMemo)(()=>{\n if (columns == null || voronoi == null || map == null) return null;\n const projection = (d)=>{\n const pt = map.project(d);\n return [\n pt.x,\n pt.y\n ];\n };\n const currentIndex = columns.findIndex((d)=>d.properties.col_id == col_id);\n const neighbors = voronoi.tri.delaunay.neighbors[currentIndex];\n return (0, $iVYEX.buildKeyMapping)(neighbors, voronoi.centroids, currentIndex, projection);\n }, [\n col_id,\n columns,\n voronoi,\n map\n ]);\n const onKeyDown = (0, $6HCEc$useCallback)((event)=>{\n if (keyMapping == null) return;\n const nextColumnIx = keyMapping[event.which];\n if (nextColumnIx == null) return;\n event.preventDefault();\n event.stopPropagation();\n // @ts-ignore\n selectColumn(columns[nextColumnIx].id);\n return false;\n }, [\n keyMapping,\n selectColumn\n ]);\n (0, $6HCEc$useEffect)(()=>{\n if (map == null) return;\n const canvas = map.getCanvas();\n canvas.addEventListener(\"keydown\", onKeyDown);\n return ()=>{\n canvas.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [\n map,\n onKeyDown\n ]);\n (0, $6HCEc$useMapStyleOperator)((map)=>{\n if (voronoi == null || !showTriangulation) return;\n const { features: features } = voronoi.tri.links();\n (0, $6HCEc$setGeoJSON)(map, \"column-links\", {\n type: \"FeatureCollection\",\n features: features\n });\n }, [\n voronoi,\n showTriangulation\n ]);\n //if (neighbors == null) return null;\n //const neighborFeatures = neighbors.map((d) => features[d]);\n return null;\n}\nfunction $ee9901df79ff88e8$export$c613fba0aabeee13(color = \"purple\") {\n return {\n sources: {\n \"column-links\": (0, $6HCEc$buildGeoJSONSource)()\n },\n layers: [\n {\n id: \"column-links\",\n type: \"line\",\n source: \"column-links\",\n paint: {\n \"line-color\": color,\n \"line-width\": 1.5\n }\n },\n {\n id: \"column-centers\",\n type: \"circle\",\n source: \"column-links\",\n paint: {\n \"circle-radius\": 2,\n \"circle-color\": color\n }\n }\n ]\n };\n}\n\n\nexport {$ee9901df79ff88e8$export$8c41dd563753848 as ColumnKeyboardNavigation, $ee9901df79ff88e8$export$c613fba0aabeee13 as buildKeyboardNavigationStyle};\n//# sourceMappingURL=column-views.6b6b756b.js.map\n","import { useCallback, useEffect, useMemo } from \"react\";\nimport { buildGeoJSONSource, setGeoJSON } from \"@macrostrat/mapbox-utils\";\nimport { useMapRef, useMapStyleOperator } from \"@macrostrat/mapbox-react\";\nimport { useColumnNavigationStore } from \"./state\";\nimport {\n buildTriangulation,\n buildKeyMapping,\n} from \"../utils/keyboard-navigation\";\n\ninterface KeyboardNavProps {\n showTriangulation: boolean;\n}\n\nexport function ColumnKeyboardNavigation(props: KeyboardNavProps) {\n /** Keyboard navigation of columns using a Delaunay triangulation */\n const { showTriangulation = false } = props;\n const columns = useColumnNavigationStore((state) => state.columns);\n const col_id = useColumnNavigationStore((state) => state.selectedColumn);\n const selectColumn = useColumnNavigationStore((state) => state.selectColumn);\n\n const voronoi = useMemo(() => {\n if (!columns || columns.length == 0) return null;\n return buildTriangulation(columns);\n }, [columns]);\n\n const mapRef = useMapRef();\n const map = mapRef.current;\n\n const keyMapping = useMemo(() => {\n if (columns == null || voronoi == null || map == null) return null;\n\n const projection = (d) => {\n const pt = map.project(d);\n return [pt.x, pt.y];\n };\n\n const currentIndex = columns.findIndex(\n (d) => d.properties.col_id == col_id,\n );\n\n const neighbors = voronoi.tri.delaunay.neighbors[currentIndex];\n return buildKeyMapping(\n neighbors,\n voronoi.centroids,\n currentIndex,\n projection,\n );\n }, [col_id, columns, voronoi, map]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (keyMapping == null) return;\n const nextColumnIx = keyMapping[event.which];\n if (nextColumnIx == null) return;\n event.preventDefault();\n event.stopPropagation();\n // @ts-ignore\n selectColumn(columns[nextColumnIx].id);\n return false;\n },\n [keyMapping, selectColumn],\n );\n\n useEffect(() => {\n if (map == null) return;\n const canvas = map.getCanvas();\n canvas.addEventListener(\"keydown\", onKeyDown);\n return () => {\n canvas.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [map, onKeyDown]);\n\n useMapStyleOperator(\n (map) => {\n if (voronoi == null || !showTriangulation) return;\n const { features } = voronoi.tri.links();\n\n setGeoJSON(map, \"column-links\", {\n type: \"FeatureCollection\",\n features,\n });\n },\n [voronoi, showTriangulation],\n );\n\n //if (neighbors == null) return null;\n //const neighborFeatures = neighbors.map((d) => features[d]);\n\n return null;\n}\n\nexport function buildKeyboardNavigationStyle(color: string = \"purple\") {\n return {\n sources: {\n \"column-links\": buildGeoJSONSource(),\n //neighbors: buildGeoJSONSource(),\n },\n layers: [\n {\n id: \"column-links\",\n type: \"line\",\n source: \"column-links\",\n paint: {\n \"line-color\": color,\n \"line-width\": 1.5,\n },\n },\n {\n id: \"column-centers\",\n type: \"circle\",\n source: \"column-links\",\n paint: {\n \"circle-radius\": 2,\n \"circle-color\": color,\n },\n },\n ],\n };\n}\n"],"names":["useMemo","$6HCEc$useMemo","useCallback","$6HCEc$useCallback","useEffect","$6HCEc$useEffect","setGeoJSON","$6HCEc$setGeoJSON","buildGeoJSONSource","$6HCEc$buildGeoJSONSource","useMapRef","$6HCEc$useMapRef","useMapStyleOperator","$6HCEc$useMapStyleOperator","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$c4zVj","$iVYEX","$ee9901df79ff88e8$export$8c41dd563753848","props","showTriangulation","columns","useColumnNavigationStore","state","col_id","selectedColumn","selectColumn","voronoi","length","buildTriangulation","map","mapRef","current","keyMapping","currentIndex","findIndex","d","properties","neighbors","tri","delaunay","buildKeyMapping","centroids","pt","project","x","y","onKeyDown","event","nextColumnIx","which","preventDefault","stopPropagation","canvas","getCanvas","addEventListener","removeEventListener","features","links","type","$ee9901df79ff88e8$export$c613fba0aabeee13","color","sources","layers","source","paint","ColumnKeyboardNavigation","buildKeyboardNavigationStyle"],"version":3,"file":"column-views.6b6b756b.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import e from"chroma-js";function l(r,t,o=!1,i=!0,n=null){let{key:p="lith",id_key:u="lith_id"}=n??{},h=r[p];if(null==h)return"gray";let a=h.map(e=>{let l=e.prop;return(null==l||isNaN(l)||l<=0)&&(l=null),{lith_id:e[u],prop:l,color:t?.get(e[u])?.color}}).filter(e=>null!=e.color),c=a.filter(e=>null!=e.prop),d=a.filter(e=>null==e.prop),f=c.reduce((e,l)=>e+l.prop,0);if(f<1&&d.length>0){let e=(1-f)/d.length;d.forEach(l=>{c.push({...l,prop:e})})}if(0==c.length)return null;let g=e.average(c.map(e=>e.color),"lrgb",c.map(e=>e.prop));return i?o?g.set("hsl.l",.2).hex():g.set("hsl.l",.9).hex():g.hex()}Object.defineProperty({},"getMixedUnitColor",{get:()=>l,set:void 0,enumerable:!0,configurable:!0});export{l as getMixedUnitColor};
2
+ //# sourceMappingURL=column-views.6bba8c57.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,O,M,W,CCQO,SAAS,EACd,CAAc,CACd,CAAO,CACP,EAAa,CAAA,CAAK,CAClB,EAAe,CAAA,CAAI,CACnB,EAAsB,IAAI,EAE1B,GAAM,CAAA,IAAE,EAAM,MAAA,CAAA,OAAQ,EAAS,SAAA,CAAW,CAAG,GAAW,CAAC,EACnD,EAAQ,CAAI,CAAC,EAAI,CACvB,GAAI,AAAS,MAAT,EACF,MAAO,OAET,IAAM,EAAW,EACd,GAAG,CAAC,AAAC,IACJ,IAAI,EAAO,EAAE,IAAI,CAIjB,MAHI,CAAA,AAAQ,MAAR,GAAgB,MAAM,IAAS,GAAQ,CAAA,GACzC,CAAA,EAAO,IADT,EAGO,CACL,QAAS,CAAC,CAAC,EAAO,CAClB,KAAA,EACA,MAAO,GAAS,IAAI,CAAC,CAAC,EAAO,GAAG,KAClC,CACF,GACC,MAAM,CAAC,AAAC,GAAM,AAAW,MAAX,EAAE,KAAK,EAElB,EAAgB,EAAS,MAAM,CAAC,AAAC,GAAM,AAAU,MAAV,EAAE,IAAI,EAC7C,EAAmB,EAAS,MAAM,CAAC,AAAC,GAAM,AAAU,MAAV,EAAE,IAAI,EAEhD,EAAY,EAAc,MAAM,CAAC,CAAC,EAAK,IAAM,EAAM,EAAE,IAAI,CAAE,GACjE,GAAI,EAAY,GAAK,EAAiB,MAAM,CAAG,EAAG,CAGhD,IAAM,EAAY,AAFI,CAAA,EAAI,CAA1B,EAEkC,EAAiB,MAAM,CACzD,EAAiB,OAAO,CAAC,AAAC,IACxB,EAAc,IAAI,CAAC,CACjB,GAAG,CAAC,CACJ,KAAM,CACR,EACF,EACF,CAEA,GAAI,AAAwB,GAAxB,EAAc,MAAM,CACtB,OAAO,KAIT,IAAM,EAAY,AAAA,EAAO,OAAO,CAC9B,EAAc,GAAG,CAAC,AAAC,GAAM,EAAE,KAAK,EAChC,OACA,EAAc,GAAG,CAAC,AAAC,GAAM,EAAE,IAAI,UAGjC,AAAK,EAID,EACK,EAAU,GAAG,CAAC,QAAS,IAAK,GAAG,GAE/B,EAAU,GAAG,CAAC,QAAS,IAAK,GAAG,GAN/B,EAAU,GAAG,EAQxB,C,O,c,C,C,E,oB,C,I,I,E,I,K,E,W,C,E,a,C,C,U,K,iB","sources":["<anon>","packages/column-views/src/units/colors.ts"],"sourcesContent":["import $avoTc$chromajs from \"chroma-js\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $0557c7dbdd54c055$exports = {};\n\n$parcel$export($0557c7dbdd54c055$exports, \"getMixedUnitColor\", () => $0557c7dbdd54c055$export$175d3e927f1a9860);\n\nfunction $0557c7dbdd54c055$export$175d3e927f1a9860(unit, lithMap, inDarkMode = false, asBackground = true, keyOpts = null) {\n const { key: key = \"lith\", id_key: id_key = \"lith_id\" } = keyOpts ?? {};\n const liths = unit[key];\n if (liths == null) return \"gray\";\n const lithData = liths.map((d)=>{\n let prop = d.prop;\n if (prop == null || isNaN(prop) || prop <= 0) prop = null;\n return {\n lith_id: d[id_key],\n prop: prop,\n color: lithMap?.get(d[id_key])?.color\n };\n }).filter((d)=>d.color != null);\n const lithsWithProp = lithData.filter((d)=>d.prop != null);\n const lithsWithoutProp = lithData.filter((d)=>d.prop == null);\n const totalProp = lithsWithProp.reduce((sum, d)=>sum + d.prop, 0);\n if (totalProp < 1 && lithsWithoutProp.length > 0) {\n const remainingProp = 1 - totalProp;\n // Distribute remaining proportion equally among liths without prop\n const equalProp = remainingProp / lithsWithoutProp.length;\n lithsWithoutProp.forEach((d)=>{\n lithsWithProp.push({\n ...d,\n prop: equalProp\n });\n });\n }\n if (lithsWithProp.length == 0) return null;\n // Mix colors proportionally\n const baseColor = (0, $avoTc$chromajs).average(lithsWithProp.map((d)=>d.color), \"lrgb\", lithsWithProp.map((d)=>d.prop));\n if (!asBackground) return baseColor.hex();\n if (inDarkMode) return baseColor.set(\"hsl.l\", 0.2).hex();\n else return baseColor.set(\"hsl.l\", 0.9).hex();\n}\n\n\nexport {$0557c7dbdd54c055$export$175d3e927f1a9860 as getMixedUnitColor};\n//# sourceMappingURL=column-views.6bba8c57.js.map\n","import chroma from \"chroma-js\";\nimport { UnitLong } from \"@macrostrat/api-types\";\n\ninterface KeyOptions {\n key?: string;\n id_key?: string;\n}\n\nexport function getMixedUnitColor(\n unit: UnitLong,\n lithMap,\n inDarkMode = false,\n asBackground = true,\n keyOpts: KeyOptions = null,\n): string | null {\n const { key = \"lith\", id_key = \"lith_id\" } = keyOpts ?? {};\n const liths = unit[key];\n if (liths == null) {\n return \"gray\";\n }\n const lithData = liths\n .map((d) => {\n let prop = d.prop;\n if (prop == null || isNaN(prop) || prop <= 0) {\n prop = null;\n }\n return {\n lith_id: d[id_key],\n prop,\n color: lithMap?.get(d[id_key])?.color,\n };\n })\n .filter((d) => d.color != null);\n\n const lithsWithProp = lithData.filter((d) => d.prop != null);\n const lithsWithoutProp = lithData.filter((d) => d.prop == null);\n\n const totalProp = lithsWithProp.reduce((sum, d) => sum + d.prop, 0);\n if (totalProp < 1 && lithsWithoutProp.length > 0) {\n const remainingProp = 1 - totalProp;\n // Distribute remaining proportion equally among liths without prop\n const equalProp = remainingProp / lithsWithoutProp.length;\n lithsWithoutProp.forEach((d) => {\n lithsWithProp.push({\n ...d,\n prop: equalProp,\n });\n });\n }\n\n if (lithsWithProp.length == 0) {\n return null;\n }\n\n // Mix colors proportionally\n const baseColor = chroma.average(\n lithsWithProp.map((d) => d.color),\n \"lrgb\",\n lithsWithProp.map((d) => d.prop),\n );\n\n if (!asBackground) {\n return baseColor.hex();\n }\n\n if (inDarkMode) {\n return baseColor.set(\"hsl.l\", 0.2).hex();\n } else {\n return baseColor.set(\"hsl.l\", 0.9).hex();\n }\n}\n"],"names":["$avoTc$chromajs","$0557c7dbdd54c055$export$175d3e927f1a9860","unit","lithMap","inDarkMode","asBackground","keyOpts","key","id_key","liths","lithData","map","d","prop","isNaN","lith_id","color","get","filter","lithsWithProp","lithsWithoutProp","totalProp","reduce","sum","length","equalProp","remainingProp","forEach","push","baseColor","average","set","hex","Object","defineProperty","s","enumerable","configurable","getMixedUnitColor"],"version":3,"file":"column-views.6bba8c57.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.286d444d.js";import"./column-views.00848c9a.js";import"./column-views.a0aac838.js";import"./column-views.2e4e357d.js";import e from"@macrostrat/hyper";import{JSONView as t}from"@macrostrat/ui-components";import{Button as n,ButtonGroup as i}from"@blueprintjs/core";import{useState as a,useMemo as l}from"react";import{LithologyTagFeature as o,DataField as r,Parenthetical as s,Value as u,ItemList as c,IntervalTag as m}from"@macrostrat/data-components";import d from"classnames";function p(e,t,n,i){Object.defineProperty(e,t,{get:n,set:i,enumerable:!0,configurable:!0})}var f,g=globalThis,b={},v={},h=g.parcelRequirea149;null==h&&((h=function(e){if(e in b)return b[e].exports;if(e in v){var t=v[e];delete v[e];var n={id:e,exports:{}};return b[e]=n,t.call(n.exports,n,n.exports),n.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){v[e]=t},g.parcelRequirea149=h),h.register;var _={};p(_,"UnitDetailsPanel",()=>C),p(_,"LegendPanelHeader",()=>j),p(_,"UnitDetailsFeature",()=>w),p(_,"Duration",()=>A),p(_,"AgeLabel",()=>H);var k=h("lMX1H"),y=h("6vCA4"),F=h("lgTAP"),x=h("jiUaC");let D=e.styled(k&&k.__esModule?k.default:k);function C({unit:e,onClose:i,className:l,features:o=new Set(["adjacent-units","outcrop-type","json-toggle","depth-range"]),lithologyFeatures:r,actions:s,selectUnit:u,columnUnits:c,onClickItem:m}){let[p,f]=a(!1),g=null;g=p?D(t,{data:e,showRoot:!1}):D(U,{unit:e,features:o,lithologyFeatures:r,onClickItem:m});let b=(0,x.defaultNameFunction)(e),v=null;return o.has("json-toggle")&&(v=D(n,{icon:"code",small:!0,minimal:!0,key:"json-view-toggle",className:d("json-view-toggle",{enabled:f}),onClick(e){f(!p),e.stopPropagation()}})),D("div.unit-details-panel",{className:l},[D(j,{onClose:i,title:b,id:e.unit_id,actions:s,hiddenActions:v}),D("div.unit-details-content-holder",g)])}function j({title:e,id:t,onClose:a,actions:l=null,hiddenActions:o}){return D("header.legend-panel-header",[D("div.title-container",[D.if(null!=e)("h3",e),D.if(null!=o)("div.hidden-actions",o)]),D("div.spacer"),D.if(null!=t)("code",t),D.if(null!=l)(i,{minimal:!0},l),D.if(null!=a)(n,{icon:"cross",minimal:!0,small:!0,onClick(){a()}})])}var w=((f={}).AdjacentUnits="adjacent-units",f.Color="color",f.OutcropType="outcrop-type",f.JSONToggle="json-toggle",f.DepthRange="depth-range",f);function U({unit:e,selectUnit:t,columnUnits:n,lithologyFeatures:i=new Set([o.Proportion,o.Attributes]),features:a=new Set(["adjacent-units","outcrop-type"]),onClickItem:c,getItemHref:m}){var d,p,f,g,b;let v,h,_,k=(0,F.useMacrostratDefs)("lithologies"),x=(0,F.useMacrostratDefs)("environments"),C=(d=e.environ,p=x,d.map(e=>({...p?.get(e.environ_id)??{},...e}))),j=(f=e.lith??[],g=k,f.map(e=>({...g?.get(e.lith_id)??{},...e})));l(()=>{let e=new Map;for(let t of n??[])e.set(t.unit_id,t);return e},[n]);let w=null;if(a.has("outcrop-type")){let t=e.outcrop;"both"==t&&(t="surface and subsurface"),w=D(r,{label:"Outcrop",value:t})}let U=null,[$,H]=(v=(b=e).min_thick??0,h=b.max_thick??b.min_thick??0,_="m",0==v&&0==h?["Unknown",null]:(v<.8&&h<1.2?(v*=100,h*=100,_="cm"):v>800&&h>1200&&(v/=1e3,h/=1e3,_="km"),v==h)?[R(v),_]:[O(v,h),_]);a.has("depth-range")&&null!=e.t_pos&&null!=e.b_pos&&e.min_thick==e.max_thick&&0!=e.min_thick&&(U=D(r,{unit:"m",label:e.t_pos<e.b_pos?"Depth":"Height",value:O(e.b_pos,e.t_pos),children:D(s,D(u,{value:$,unit:H}))})),U??(U=D(r,{label:"Thickness",value:$,unit:H}));let I=null;return"color"in e&&(I=D("div.color-swatch",{style:{backgroundColor:e.color}})),D("div.unit-details-content",[U,D(y.LithologyList,{label:"Lithology",lithologies:j,features:i,getItemHref:m,onClickItem:c}),D(N,{unit:e},[D(s,D(A,{value:e.b_age-e.t_age})),D(M,{unit:e,onClickItem:c})]),D(y.EnvironmentsList,{environments:C,onClickItem:c,getItemHref:m}),D.if(null!=e.strat_name_id)(r,{label:"Stratigraphic name"},D("span.strat-name-id",e.strat_name_id)),w,D.if(a.has("adjacent-units"))([D(r,{label:"Above"},D(L,{units:e.units_above,selectUnit:t})),D(r,{label:"Below"},D(L,{units:e.units_below,selectUnit:t}))]),I,D(r,{label:"Source",inline:!0},D(S,{refs:e.refs}))])}function S({refs:e}){let t=(0,F.useMacrostratData)("refs",e);return null==t||0===t.length?null:1==t.length?D($,{data:t[0],tag:"span"}):D("ul.refs",t.map((e,t)=>D($,{data:e,tag:"li",key:t})))}function $({data:e,tag:t="p"}){return D(t,{className:"citation"},[D("span.authors",e.author),", ",D("span.year",e.pub_year),", ",D("span.title",e.ref)])}function N({unit:e,children:t}){var n;let i,a,l,[o,s,u]=(i=(n=e).b_age,a=n.t_age,l="Ma",i<.8&&a<1.2?(i*=1e3,a*=1e3,l="ka"):i>800&&a>1200&&(i/=1e3,a/=1e3,l="Ga"),[i,a,l]);return D(r,{label:"Age",value:O(o,s),unit:u},t)}function H({age:e,maximumFractionDigits:t=2,minimumFractionDigits:n=0,className:i}){var a;let l,[o,r]=(l="Ma",(a=e)<.8?(l="ka",(a*=1e3)<5&&(l="yr",a*=1e3)):a>1e3&&(l="Ga",a/=1e3),[a,l]);return D(u,{value:o.toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:n}),unit:r,className:i})}function A({value:e,maximumFractionDigits:t=2,minimumFractionDigits:n=0}){let i="Myr";return e<.8?(i="kyr",(e*=1e3)<5&&(i="yr",e*=1e3)):e>1e3&&(i="Gyr",e/=1e3),D(u,{value:e.toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:n}),unit:i})}function L({units:e,selectUnit:t}){let n=e.filter(e=>0!=e);if(0===n.length)return D("span.no-units","None");let i="span";return null!=t&&(i="a"),D(c,{className:"unit-id-list"},n.map(e=>D(i,{className:"unit-id",onClick(){t?.(e.id)},key:e.id},e)))}function M({unit:e,onClickItem:t}){let n=e.b_int_id,i=e.t_int_id,a=e.b_prop??0,l=e.t_prop??1,o=(0,F.useMacrostratDefs)("intervals"),r={...o?.get(n)??{},id:n,name:e.b_int_name},s=null,u=o?.get(i)??{},c=D(P,{value:l});(n!==i||0!==a||1!==l)&&(s=D(P,{value:a})),n===i&&(0!==a||1!==l)&&(s=D("span.joint-proportion",[s,D("span.sep","to"),c]));let d=null!=t,p=e=>{t&&t({event:e,data:r})};return D("div.interval-proportions",[D(m,{className:d?"clickable":"",onClick:d?p:void 0,interval:r,prefix:s}),D.if(n!=i)("span.discourage-break",[D("span.sep","to"),D(m,{className:d?"clickable":"",onClick:d?p:void 0,interval:{...u,id:i,name:e.t_int_name},prefix:c})])])}let I=e=>null==e?null:e.toFixed(1);function P({value:e}){let t=null;return D("span.proportion",0==e?"base":1==e?"top":I(100*e)+"%")}function O(e,t,n=null){return null==e||null==t?null:e===t?e.toFixed(n):`${R(e,n)}\u{2013}${R(t,n)}`}function R(e,t=null){return null==t?e.toLocaleString():t>=0?e.toFixed(t):t<0?(e/Math.pow(10,-t)).toFixed(0)+"0".repeat(-t):void 0}export{C as UnitDetailsPanel,j as LegendPanelHeader,w as UnitDetailsFeature,A as Duration,H as AgeLabel};
2
+ //# sourceMappingURL=column-views.6d1551bd.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,Y,C,K,2B,A,Q,U,C,C,e,C,K,mB,A,Q,Y,C,C,W,C,K,O,A,Q,uB,C,C,a,C,C,iB,C,C,S,C,C,Y,C,C,e,C,K,6B,A,Q,M,Y,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICoIY,E,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,mB,I,G,E,E,oB,I,G,E,E,qB,I,G,E,E,W,I,G,E,E,W,I,G,I,E,E,S,E,E,S,E,E,S,E,E,SAxGZ,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAEhB,SAAS,EAAiB,CAAA,KAC/B,CAAI,CAAA,QACJ,CAAO,CAAA,UACP,CAAS,CAAA,SACT,EAAW,IAAI,IAAwB,C,iB,e,c,cAKtC,CAAA,CAAA,kBACD,CAAiB,CAAA,QACjB,CAAO,CAAA,WACP,CAAU,CAAA,YACV,CAAW,CAAA,YACX,CAAW,CAYZ,EACC,GAAM,CAAC,EAAU,EAAY,CAAG,AAAA,EAAS,CAAA,GAErC,EAAU,KAEZ,EADE,EACQ,EAAE,EAAU,CAAE,KAAM,EAAM,SAAU,CAAA,CAAM,GAE1C,EAAE,EAAoB,CAC9B,KAAA,EACA,SAAA,EACA,kBAAA,EACA,YAAA,CACF,GAGF,IAAI,EAAQ,AAAA,CAAA,EAAA,EAAA,mBAAkB,AAAlB,EAAoB,GAE5B,EAAgB,KAepB,OAdI,EAAS,GAAG,CAAA,gBACd,CAAA,EAAgB,EAAE,EAAQ,CACxB,KAAM,OACN,MAAO,CAAA,EACP,QAAS,CAAA,EACT,IAAK,mBACL,UAAW,AAAA,EAAW,mBAAoB,CAAE,QAAS,CAAY,GACjE,QAAQ,CAAG,EACT,EAAY,CAAC,GACb,EAAI,e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","sources":["<anon>","packages/column-views/src/unit-details/panel.ts"],"sourcesContent":["import \"./column-views.286d444d.js\";\nimport \"./column-views.00848c9a.js\";\nimport \"./column-views.a0aac838.js\";\nimport \"./column-views.2e4e357d.js\";\nimport $c0aFQ$macrostrathyper from \"@macrostrat/hyper\";\nimport {JSONView as $c0aFQ$JSONView} from \"@macrostrat/ui-components\";\nimport {Button as $c0aFQ$Button, ButtonGroup as $c0aFQ$ButtonGroup} from \"@blueprintjs/core\";\nimport {useState as $c0aFQ$useState, useMemo as $c0aFQ$useMemo} from \"react\";\nimport {LithologyTagFeature as $c0aFQ$LithologyTagFeature, DataField as $c0aFQ$DataField, Parenthetical as $c0aFQ$Parenthetical, Value as $c0aFQ$Value, ItemList as $c0aFQ$ItemList, IntervalTag as $c0aFQ$IntervalTag} from \"@macrostrat/data-components\";\nimport $c0aFQ$classnames from \"classnames\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $4a89f93cd5289383$exports = {};\n\n$parcel$export($4a89f93cd5289383$exports, \"UnitDetailsPanel\", () => $4a89f93cd5289383$export$fbd245232df17557);\n$parcel$export($4a89f93cd5289383$exports, \"LegendPanelHeader\", () => $4a89f93cd5289383$export$fc503c39cc5cff43);\n$parcel$export($4a89f93cd5289383$exports, \"UnitDetailsFeature\", () => $4a89f93cd5289383$export$ec297f6f9a6ccad0);\n$parcel$export($4a89f93cd5289383$exports, \"Duration\", () => $4a89f93cd5289383$export$3b11bc38611c5941);\n$parcel$export($4a89f93cd5289383$exports, \"AgeLabel\", () => $4a89f93cd5289383$export$37ebfd237811b1eb);\n\n\nvar $lMX1H = parcelRequire(\"lMX1H\");\n\n\n\n\n\nvar $6vCA4 = parcelRequire(\"6vCA4\");\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\n\nvar $jiUaC = parcelRequire(\"jiUaC\");\n\nconst $4a89f93cd5289383$var$h = (0, $c0aFQ$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($lMX1H))));\nfunction $4a89f93cd5289383$export$fbd245232df17557({ unit: unit, onClose: onClose, className: className, features: features = new Set([\n \"adjacent-units\",\n \"outcrop-type\",\n \"json-toggle\",\n \"depth-range\"\n]), lithologyFeatures: lithologyFeatures, actions: actions, selectUnit: selectUnit, columnUnits: columnUnits, onClickItem: onClickItem }) {\n const [showJSON, setShowJSON] = (0, $c0aFQ$useState)(false);\n let content = null;\n if (showJSON) content = $4a89f93cd5289383$var$h((0, $c0aFQ$JSONView), {\n data: unit,\n showRoot: false\n });\n else content = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitDetailsContent, {\n unit: unit,\n features: features,\n lithologyFeatures: lithologyFeatures,\n onClickItem: onClickItem\n });\n let title = (0, $jiUaC.defaultNameFunction)(unit);\n let hiddenActions = null;\n if (features.has(\"json-toggle\")) hiddenActions = $4a89f93cd5289383$var$h((0, $c0aFQ$Button), {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: (0, $c0aFQ$classnames)(\"json-view-toggle\", {\n enabled: setShowJSON\n }),\n onClick (evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n }\n });\n return $4a89f93cd5289383$var$h(\"div.unit-details-panel\", {\n className: className\n }, [\n $4a89f93cd5289383$var$h($4a89f93cd5289383$export$fc503c39cc5cff43, {\n onClose: onClose,\n title: title,\n id: unit.unit_id,\n actions: actions,\n hiddenActions: hiddenActions\n }),\n $4a89f93cd5289383$var$h(\"div.unit-details-content-holder\", content)\n ]);\n}\nfunction $4a89f93cd5289383$export$fc503c39cc5cff43({ title: title, id: id, onClose: onClose, actions: actions = null, hiddenActions: hiddenActions }) {\n return $4a89f93cd5289383$var$h(\"header.legend-panel-header\", [\n $4a89f93cd5289383$var$h(\"div.title-container\", [\n $4a89f93cd5289383$var$h.if(title != null)(\"h3\", title),\n $4a89f93cd5289383$var$h.if(hiddenActions != null)(\"div.hidden-actions\", hiddenActions)\n ]),\n $4a89f93cd5289383$var$h(\"div.spacer\"),\n $4a89f93cd5289383$var$h.if(id != null)(\"code\", id),\n $4a89f93cd5289383$var$h.if(actions != null)((0, $c0aFQ$ButtonGroup), {\n minimal: true\n }, actions),\n $4a89f93cd5289383$var$h.if(onClose != null)((0, $c0aFQ$Button), {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick () {\n onClose();\n }\n })\n ]);\n}\nvar $4a89f93cd5289383$export$ec297f6f9a6ccad0 = /*#__PURE__*/ function(UnitDetailsFeature) {\n UnitDetailsFeature[\"AdjacentUnits\"] = \"adjacent-units\";\n UnitDetailsFeature[\"Color\"] = \"color\";\n UnitDetailsFeature[\"OutcropType\"] = \"outcrop-type\";\n UnitDetailsFeature[\"JSONToggle\"] = \"json-toggle\";\n UnitDetailsFeature[\"DepthRange\"] = \"depth-range\";\n return UnitDetailsFeature;\n}({});\nfunction $4a89f93cd5289383$var$UnitDetailsContent({ unit: unit, selectUnit: selectUnit, columnUnits: columnUnits, lithologyFeatures: lithologyFeatures = new Set([\n (0, $c0aFQ$LithologyTagFeature).Proportion,\n (0, $c0aFQ$LithologyTagFeature).Attributes\n]), features: features = new Set([\n \"adjacent-units\",\n \"outcrop-type\"\n]), onClickItem: onClickItem, getItemHref: getItemHref }) {\n const lithMap = (0, $lgTAP.useMacrostratDefs)(\"lithologies\");\n const envMap = (0, $lgTAP.useMacrostratDefs)(\"environments\");\n const environments = $4a89f93cd5289383$var$enhanceEnvironments(unit.environ, envMap);\n const lithologies = $4a89f93cd5289383$var$enhanceLithologies(unit.lith ?? [], lithMap);\n // Create a lookup table of units if provided\n const columnUnitsMap = (0, $c0aFQ$useMemo)(()=>{\n const map = new Map();\n for (const colUnit of columnUnits ?? [])map.set(colUnit.unit_id, colUnit);\n return map;\n }, [\n columnUnits\n ]);\n let outcropField = null;\n if (features.has(\"outcrop-type\")) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") outcrop = \"surface and subsurface\";\n outcropField = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Outcrop\",\n value: outcrop\n });\n }\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = $4a89f93cd5289383$var$getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (features.has(\"depth-range\") && unit.t_pos != null && unit.b_pos != null && unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n thicknessOrHeightRange = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n unit: u1,\n label: label,\n value: $4a89f93cd5289383$var$formatRange(unit.b_pos, unit.t_pos),\n children: $4a89f93cd5289383$var$h((0, $c0aFQ$Parenthetical), $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: thickness,\n unit: thicknessUnit\n }))\n });\n }\n thicknessOrHeightRange ?? (thicknessOrHeightRange = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit\n }));\n /** We are trying to move away from passing the \"color\" parameter in the API */ let colorSwatch = null;\n if (\"color\" in unit) {\n const unit1 = unit;\n colorSwatch = $4a89f93cd5289383$var$h(\"div.color-swatch\", {\n style: {\n backgroundColor: unit1.color\n }\n });\n }\n return $4a89f93cd5289383$var$h(\"div.unit-details-content\", [\n thicknessOrHeightRange,\n $4a89f93cd5289383$var$h((0, $6vCA4.LithologyList), {\n label: \"Lithology\",\n lithologies: lithologies,\n features: lithologyFeatures,\n getItemHref: getItemHref,\n onClickItem: onClickItem\n }),\n $4a89f93cd5289383$var$h($4a89f93cd5289383$var$AgeField, {\n unit: unit\n }, [\n $4a89f93cd5289383$var$h((0, $c0aFQ$Parenthetical), $4a89f93cd5289383$var$h($4a89f93cd5289383$export$3b11bc38611c5941, {\n value: unit.b_age - unit.t_age\n })),\n $4a89f93cd5289383$var$h($4a89f93cd5289383$var$IntervalProportions, {\n unit: unit,\n onClickItem: onClickItem\n })\n ]),\n $4a89f93cd5289383$var$h((0, $6vCA4.EnvironmentsList), {\n environments: environments,\n onClickItem: onClickItem,\n getItemHref: getItemHref\n }),\n $4a89f93cd5289383$var$h.if(unit.strat_name_id != null)((0, $c0aFQ$DataField), {\n label: \"Stratigraphic name\"\n }, $4a89f93cd5289383$var$h(\"span.strat-name-id\", unit.strat_name_id)),\n outcropField,\n $4a89f93cd5289383$var$h.if(features.has(\"adjacent-units\"))([\n $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Above\"\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitIDList, {\n units: unit.units_above,\n selectUnit: selectUnit\n })),\n $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Below\"\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitIDList, {\n units: unit.units_below,\n selectUnit: selectUnit\n }))\n ]),\n colorSwatch,\n $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Source\",\n inline: true\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$BibInfo, {\n refs: unit.refs\n }))\n ]);\n}\nfunction $4a89f93cd5289383$var$getThickness(unit) {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n if (minThickness == 0 && maxThickness == 0) return [\n \"Unknown\",\n null\n ];\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n if (minThickness == maxThickness) return [\n $4a89f93cd5289383$var$formatSignificance(minThickness),\n _unit\n ];\n return [\n $4a89f93cd5289383$var$formatRange(minThickness, maxThickness),\n _unit\n ];\n}\nfunction $4a89f93cd5289383$var$ThicknessField({ unit: unit, label: label = \"Thickness\" }) {\n const [value, thicknessUnit] = $4a89f93cd5289383$var$getThickness(unit);\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: label,\n value: value,\n unit: thicknessUnit\n });\n}\nfunction $4a89f93cd5289383$var$BibInfo({ refs: refs }) {\n const refData = (0, $lgTAP.useMacrostratData)(\"refs\", refs);\n if (refData == null || refData.length === 0) return null;\n if (refData.length == 1) return $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Citation, {\n data: refData[0],\n tag: \"span\"\n });\n return $4a89f93cd5289383$var$h(\"ul.refs\", refData.map((data, i)=>$4a89f93cd5289383$var$h($4a89f93cd5289383$var$Citation, {\n data: data,\n tag: \"li\",\n key: i\n })));\n}\nfunction $4a89f93cd5289383$var$Citation({ data: data, tag: tag = \"p\" }) {\n return $4a89f93cd5289383$var$h(tag, {\n className: \"citation\"\n }, [\n $4a89f93cd5289383$var$h(\"span.authors\", data.author),\n \", \",\n $4a89f93cd5289383$var$h(\"span.year\", data.pub_year),\n \", \",\n $4a89f93cd5289383$var$h(\"span.title\", data.ref)\n ]);\n}\nfunction $4a89f93cd5289383$var$AgeField({ unit: unit, children: children }) {\n const [b_age, t_age, _unit] = $4a89f93cd5289383$var$getAgeRange(unit);\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Age\",\n value: $4a89f93cd5289383$var$formatRange(b_age, t_age),\n unit: _unit\n }, children);\n}\nfunction $4a89f93cd5289383$var$getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n return [\n b_age,\n t_age,\n unit\n ];\n}\nfunction $4a89f93cd5289383$var$getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */ let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n return [\n value,\n unit\n ];\n}\nfunction $4a89f93cd5289383$export$37ebfd237811b1eb({ age: age, maximumFractionDigits: maximumFractionDigits = 2, minimumFractionDigits: minimumFractionDigits = 0, className: className }) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */ const [value, unit] = $4a89f93cd5289383$var$getAge(age);\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits: maximumFractionDigits,\n minimumFractionDigits: minimumFractionDigits\n });\n return $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: _value,\n unit: unit,\n className: className\n });\n}\nfunction $4a89f93cd5289383$export$3b11bc38611c5941({ value: value, maximumFractionDigits: maximumFractionDigits = 2, minimumFractionDigits: minimumFractionDigits = 0 }) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits: maximumFractionDigits,\n minimumFractionDigits: minimumFractionDigits\n });\n return $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: _value,\n unit: unit\n });\n}\nfunction $4a89f93cd5289383$var$enhanceEnvironments(environments, envMap) {\n return environments.map((env)=>{\n return {\n ...envMap?.get(env.environ_id) ?? {},\n ...env\n };\n });\n}\nfunction $4a89f93cd5289383$var$enhanceLithologies(lithologies, lithMap) {\n return lithologies.map((lith)=>{\n return {\n ...lithMap?.get(lith.lith_id) ?? {},\n ...lith\n };\n });\n}\nfunction $4a89f93cd5289383$var$UnitIDList({ units: units, selectUnit: selectUnit }) {\n const u1 = units.filter((d)=>d != 0);\n if (u1.length === 0) return $4a89f93cd5289383$var$h(\"span.no-units\", \"None\");\n let tag = \"span\";\n if (selectUnit != null) tag = \"a\";\n return $4a89f93cd5289383$var$h((0, $c0aFQ$ItemList), {\n className: \"unit-id-list\"\n }, u1.map((unit)=>{\n return $4a89f93cd5289383$var$h(tag, {\n className: \"unit-id\",\n onClick () {\n selectUnit?.(unit.id);\n },\n key: unit.id\n }, unit);\n }));\n}\nfunction $4a89f93cd5289383$var$IntervalProportions({ unit: unit, onClickItem: onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n const intervalMap = (0, $lgTAP.useMacrostratDefs)(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n const interval0 = {\n ...int0,\n id: i0,\n name: unit.b_int_name\n };\n let p0 = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1 = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Proportion, {\n value: t_prop\n });\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) // We have a single interval with undefined proportions\n p0 = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Proportion, {\n value: b_prop\n });\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) p0 = $4a89f93cd5289383$var$h(\"span.joint-proportion\", [\n p0,\n $4a89f93cd5289383$var$h(\"span.sep\", \"to\"),\n p1\n ]);\n const clickable = onClickItem != null;\n const handleClick = (event)=>{\n if (onClickItem) onClickItem({\n event: event,\n data: interval0\n });\n };\n return $4a89f93cd5289383$var$h(\"div.interval-proportions\", [\n $4a89f93cd5289383$var$h((0, $c0aFQ$IntervalTag), {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0\n }),\n $4a89f93cd5289383$var$h.if(i0 != i1)(\"span.discourage-break\", [\n $4a89f93cd5289383$var$h(\"span.sep\", \"to\"),\n $4a89f93cd5289383$var$h((0, $c0aFQ$IntervalTag), {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name\n },\n prefix: p1\n })\n ])\n ]);\n}\nconst $4a89f93cd5289383$var$formatProportion = (d)=>{\n if (d == null) return null;\n return d.toFixed(1);\n};\nfunction $4a89f93cd5289383$var$Proportion({ value: value }) {\n let content = null;\n if (value == 0) content = \"base\";\n else if (value == 1) content = \"top\";\n else content = $4a89f93cd5289383$var$formatProportion(value * 100) + \"%\";\n return $4a89f93cd5289383$var$h(\"span.proportion\", content);\n}\nfunction $4a89f93cd5289383$var$formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) return min.toFixed(precision);\n return `${$4a89f93cd5289383$var$formatSignificance(min, precision)}\\u{2013}${$4a89f93cd5289383$var$formatSignificance(max, precision)}`;\n}\nfunction $4a89f93cd5289383$var$formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n if (precision == null) return value.toLocaleString();\n if (precision >= 0) return value.toFixed(precision);\n if (precision < 0) return (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision);\n}\n\n\nexport {$4a89f93cd5289383$export$fbd245232df17557 as UnitDetailsPanel, $4a89f93cd5289383$export$fc503c39cc5cff43 as LegendPanelHeader, $4a89f93cd5289383$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $4a89f93cd5289383$export$3b11bc38611c5941 as Duration, $4a89f93cd5289383$export$37ebfd237811b1eb as AgeLabel};\n//# sourceMappingURL=column-views.6d1551bd.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./panel.module.sass\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { Button, ButtonGroup } from \"@blueprintjs/core\";\nimport { ReactNode, useMemo, useState } from \"react\";\nimport {\n DataField,\n // EnvironmentsList,\n IntervalShort,\n IntervalTag,\n ItemList,\n // LithologyList,\n LithologyTagFeature,\n Parenthetical,\n Value,\n} from \"@macrostrat/data-components\";\nimport { LithologyList, EnvironmentsList } from \"../../../data-components/src\";\nimport { useMacrostratData, useMacrostratDefs } from \"../data-provider\";\nimport {\n Environment,\n UnitLong,\n UnitLongFull,\n Lithology,\n Interval,\n} from \"@macrostrat/api-types\";\nimport { defaultNameFunction } from \"../units/names\";\nimport classNames from \"classnames\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPanel({\n unit,\n onClose,\n className,\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n UnitDetailsFeature.JSONToggle,\n UnitDetailsFeature.DepthRange,\n ]),\n lithologyFeatures,\n actions,\n selectUnit,\n columnUnits,\n onClickItem,\n}: {\n unit: any;\n onClose?: any;\n showLithologyProportions?: boolean;\n className?: string;\n actions?: ReactNode;\n features?: Set<UnitDetailsFeature>;\n lithologyFeatures?: Set<LithologyTagFeature>;\n columnUnits?: UnitLong[];\n selectUnit?: (unitID: number) => void;\n onClickItem?: (item: any) => void;\n}) {\n const [showJSON, setShowJSON] = useState(false);\n\n let content = null;\n if (showJSON) {\n content = h(JSONView, { data: unit, showRoot: false });\n } else {\n content = h(UnitDetailsContent, {\n unit,\n features,\n lithologyFeatures,\n onClickItem,\n });\n }\n\n let title = defaultNameFunction(unit);\n\n let hiddenActions = null;\n if (features.has(UnitDetailsFeature.JSONToggle)) {\n hiddenActions = h(Button, {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: classNames(\"json-view-toggle\", { enabled: setShowJSON }),\n onClick(evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n },\n });\n }\n\n return h(\"div.unit-details-panel\", { className }, [\n h(LegendPanelHeader, {\n onClose,\n title,\n id: unit.unit_id,\n actions,\n hiddenActions,\n }),\n h(\"div.unit-details-content-holder\", content),\n ]);\n}\n\nexport function LegendPanelHeader({\n title,\n id,\n onClose,\n actions = null,\n hiddenActions,\n}: {\n title?: string | null;\n id?: number | null;\n onClose?: () => void;\n actions?: ReactNode | null;\n hiddenActions?: ReactNode | null;\n}) {\n return h(\"header.legend-panel-header\", [\n h(\"div.title-container\", [\n h.if(title != null)(\"h3\", title),\n h.if(hiddenActions != null)(\"div.hidden-actions\", hiddenActions),\n ]),\n h(\"div.spacer\"),\n h.if(id != null)(\"code\", id),\n h.if(actions != null)(ButtonGroup, { minimal: true }, actions),\n h.if(onClose != null)(Button, {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick() {\n onClose();\n },\n }),\n ]);\n}\n\nexport enum UnitDetailsFeature {\n AdjacentUnits = \"adjacent-units\",\n Color = \"color\",\n OutcropType = \"outcrop-type\",\n JSONToggle = \"json-toggle\",\n DepthRange = \"depth-range\",\n}\n\nfunction UnitDetailsContent({\n unit,\n selectUnit,\n columnUnits,\n lithologyFeatures = new Set([\n LithologyTagFeature.Proportion,\n LithologyTagFeature.Attributes,\n ]),\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n ]),\n onClickItem,\n getItemHref,\n}: {\n unit: UnitLong;\n selectUnit?: (unitID: number) => void;\n columnUnits?: UnitLong[];\n lithologyFeatures?: Set<LithologyTagFeature>;\n features?: Set<UnitDetailsFeature>;\n onClickItem?: (\n event: MouseEvent,\n item: Lithology | Environment | UnitLong | Interval,\n ) => void;\n getItemHref?: (item: Lithology | Environment | UnitLong) => string | null;\n}) {\n const lithMap = useMacrostratDefs(\"lithologies\");\n const envMap = useMacrostratDefs(\"environments\");\n\n const environments = enhanceEnvironments(unit.environ, envMap);\n const lithologies = enhanceLithologies(unit.lith ?? [], lithMap);\n\n // Create a lookup table of units if provided\n const columnUnitsMap = useMemo(() => {\n const map = new Map<number, UnitLong>();\n for (const colUnit of columnUnits ?? []) {\n map.set(colUnit.unit_id, colUnit);\n }\n return map;\n }, [columnUnits]);\n\n let outcropField = null;\n if (features.has(UnitDetailsFeature.OutcropType)) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") {\n outcrop = \"surface and subsurface\";\n }\n outcropField = h(DataField, {\n label: \"Outcrop\",\n value: outcrop,\n });\n }\n\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (\n features.has(UnitDetailsFeature.DepthRange) &&\n unit.t_pos != null &&\n unit.b_pos != null &&\n unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n\n thicknessOrHeightRange = h(DataField, {\n unit: u1,\n label,\n value: formatRange(unit.b_pos, unit.t_pos),\n children: h(\n Parenthetical,\n h(Value, { value: thickness, unit: thicknessUnit }),\n ),\n });\n }\n thicknessOrHeightRange ??= h(DataField, {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit,\n });\n\n /** We are trying to move away from passing the \"color\" parameter in the API */\n let colorSwatch: ReactNode = null;\n if (\"color\" in unit) {\n const unit1 = unit as UnitLongFull;\n colorSwatch = h(\"div.color-swatch\", {\n style: { backgroundColor: unit1.color },\n });\n }\n\n return h(\"div.unit-details-content\", [\n thicknessOrHeightRange,\n h(LithologyList, {\n label: \"Lithology\",\n lithologies,\n features: lithologyFeatures,\n getItemHref,\n onClickItem,\n }),\n h(AgeField, { unit }, [\n h(Parenthetical, h(Duration, { value: unit.b_age - unit.t_age })),\n h(IntervalProportions, {\n unit,\n onClickItem,\n }),\n ]),\n h(EnvironmentsList, {\n environments,\n onClickItem,\n getItemHref,\n }),\n h.if(unit.strat_name_id != null)(\n DataField,\n {\n label: \"Stratigraphic name\",\n },\n h(\"span.strat-name-id\", unit.strat_name_id),\n ),\n outcropField,\n h.if(features.has(UnitDetailsFeature.AdjacentUnits))([\n h(\n DataField,\n { label: \"Above\" },\n h(UnitIDList, { units: unit.units_above, selectUnit }),\n ),\n h(\n DataField,\n { label: \"Below\" },\n h(UnitIDList, { units: unit.units_below, selectUnit }),\n ),\n ]),\n colorSwatch,\n h(\n DataField,\n { label: \"Source\", inline: true },\n h(BibInfo, { refs: unit.refs }),\n ),\n ]);\n}\n\nfunction getThickness(unit): [string, string] {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n\n if (minThickness == 0 && maxThickness == 0) {\n return [\"Unknown\", null];\n }\n\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n\n if (minThickness == maxThickness) {\n return [formatSignificance(minThickness), _unit];\n }\n\n return [formatRange(minThickness, maxThickness), _unit];\n}\n\nfunction ThicknessField({ unit, label = \"Thickness\" }) {\n const [value, thicknessUnit] = getThickness(unit);\n return h(DataField, {\n label,\n value,\n unit: thicknessUnit,\n });\n}\n\nfunction BibInfo({ refs }) {\n const refData = useMacrostratData(\"refs\", refs);\n\n if (refData == null || refData.length === 0) {\n return null;\n }\n\n if (refData.length == 1) {\n return h(Citation, { data: refData[0], tag: \"span\" });\n }\n\n return h(\n \"ul.refs\",\n refData.map((data, i) => h(Citation, { data, tag: \"li\", key: i })),\n );\n}\n\nfunction Citation({ data, tag = \"p\" }) {\n return h(tag, { className: \"citation\" }, [\n h(\"span.authors\", data.author),\n \", \",\n h(\"span.year\", data.pub_year),\n \", \",\n h(\"span.title\", data.ref),\n ]);\n}\n\nfunction AgeField({ unit, children }) {\n const [b_age, t_age, _unit] = getAgeRange(unit);\n\n return h(\n DataField,\n {\n label: \"Age\",\n value: formatRange(b_age, t_age),\n unit: _unit,\n },\n children,\n );\n}\n\nfunction getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n\n return [b_age, t_age, unit];\n}\n\nfunction getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */\n let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n\n return [value, unit];\n}\n\nexport function AgeLabel({\n age,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n className,\n}: {\n age: number;\n className?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n}) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */\n const [value, unit] = getAge(age);\n\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit, className });\n}\n\nexport function Duration({\n value,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n}) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit });\n}\n\nfunction enhanceEnvironments(\n environments: Partial<Environment>[],\n envMap: Map<number, Environment>,\n) {\n return environments.map((env) => {\n return {\n ...(envMap?.get(env.environ_id) ?? {}),\n ...env,\n };\n });\n}\n\nfunction enhanceLithologies(\n lithologies: Partial<UnitLong[\"lith\"]>,\n lithMap: Map<number, any>,\n) {\n return lithologies.map((lith) => {\n return {\n ...(lithMap?.get(lith.lith_id) ?? {}), // get lithology details\n ...lith, // override with the unit's specific lithology data\n };\n });\n}\n\nfunction UnitIDList({ units, selectUnit }) {\n const u1 = units.filter((d) => d != 0);\n\n if (u1.length === 0) {\n return h(\"span.no-units\", \"None\");\n }\n\n let tag = \"span\";\n if (selectUnit != null) {\n tag = \"a\";\n }\n\n return h(\n ItemList,\n { className: \"unit-id-list\" },\n u1.map((unit) => {\n return h(\n tag,\n\n {\n className: \"unit-id\",\n onClick() {\n selectUnit?.(unit.id);\n },\n key: unit.id,\n },\n unit,\n );\n }),\n );\n}\n\nfunction IntervalProportions({ unit, onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n\n const intervalMap = useMacrostratDefs(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n\n const interval0: IntervalShort = {\n ...int0,\n id: i0,\n name: unit.b_int_name,\n };\n\n let p0: ReactNode = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1: ReactNode = h(Proportion, { value: t_prop });\n\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) {\n // We have a single interval with undefined proportions\n p0 = h(Proportion, { value: b_prop });\n }\n\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) {\n p0 = h(\"span.joint-proportion\", [p0, h(\"span.sep\", \"to\"), p1]);\n }\n\n const clickable = onClickItem != null;\n\n const handleClick = (event: MouseEvent) => {\n if (onClickItem) {\n onClickItem({ event, data: interval0 });\n }\n };\n\n return h(\"div.interval-proportions\", [\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0,\n }),\n h.if(i0 != i1)(\"span.discourage-break\", [\n h(\"span.sep\", \"to\"),\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name,\n },\n prefix: p1,\n }),\n ]),\n ]);\n}\n\nconst formatProportion = (d) => {\n if (d == null) return null;\n return d.toFixed(1);\n};\n\nfunction Proportion({ value }) {\n let content = null;\n if (value == 0) {\n content = \"base\";\n } else if (value == 1) {\n content = \"top\";\n } else {\n content = formatProportion(value * 100) + \"%\";\n }\n\n return h(\"span.proportion\", content);\n}\n\nfunction formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) {\n return min.toFixed(precision);\n }\n\n return `${formatSignificance(min, precision)}–${formatSignificance(\n max,\n precision,\n )}`;\n}\n\nfunction formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n\n if (precision == null) {\n return value.toLocaleString();\n }\n if (precision >= 0) {\n return value.toFixed(precision);\n }\n if (precision < 0) {\n return (\n (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision)\n );\n }\n}\n"],"names":["$c0aFQ$macrostrathyper","JSONView","$c0aFQ$JSONView","Button","$c0aFQ$Button","ButtonGroup","$c0aFQ$ButtonGroup","useState","$c0aFQ$useState","useMemo","$c0aFQ$useMemo","LithologyTagFeature","$c0aFQ$LithologyTagFeature","DataField","$c0aFQ$DataField","Parenthetical","$c0aFQ$Parenthetical","Value","$c0aFQ$Value","ItemList","$c0aFQ$ItemList","IntervalTag","$c0aFQ$IntervalTag","$c0aFQ$classnames","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","UnitDetailsFeature","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$4a89f93cd5289383$exports","$4a89f93cd5289383$export$fbd245232df17557","$4a89f93cd5289383$export$fc503c39cc5cff43","$4a89f93cd5289383$export$ec297f6f9a6ccad0","$4a89f93cd5289383$export$3b11bc38611c5941","$4a89f93cd5289383$export$37ebfd237811b1eb","$lMX1H","$6vCA4","$lgTAP","$jiUaC","$4a89f93cd5289383$var$h","styled","a","__esModule","default","unit","onClose","className","features","Set","lithologyFeatures","actions","selectUnit","columnUnits","onClickItem","showJSON","setShowJSON","content","data","showRoot","$4a89f93cd5289383$var$UnitDetailsContent","title","defaultNameFunction","hiddenActions","has","icon","small","minimal","key","enabled","onClick","evt","stopPropagation","unit_id","if","Proportion","Attributes","getItemHref","environments","envMap","lithologies","lithMap","minThickness","maxThickness","_unit","useMacrostratDefs","environ","map","env","environ_id","lith","lith_id","Map","colUnit","outcropField","outcrop","label","value","thicknessOrHeightRange","thickness","thicknessUnit","min_thick","max_thick","$4a89f93cd5289383$var$formatSignificance","$4a89f93cd5289383$var$formatRange","t_pos","b_pos","children","colorSwatch","style","backgroundColor","unit1","color","LithologyList","$4a89f93cd5289383$var$AgeField","b_age","t_age","$4a89f93cd5289383$var$IntervalProportions","EnvironmentsList","strat_name_id","$4a89f93cd5289383$var$UnitIDList","units","units_above","units_below","inline","$4a89f93cd5289383$var$BibInfo","refs","refData","useMacrostratData","length","$4a89f93cd5289383$var$Citation","tag","i","author","pub_year","ref","age","maximumFractionDigits","minimumFractionDigits","toLocaleString","u1","filter","d","i0","b_int_id","i1","t_int_id","b_prop","t_prop","intervalMap","interval0","name","b_int_name","p0","int1","p1","$4a89f93cd5289383$var$Proportion","clickable","handleClick","event","undefined","interval","prefix","t_int_name","$4a89f93cd5289383$var$formatProportion","toFixed","min","max","precision","Math","pow","repeat","UnitDetailsPanel","LegendPanelHeader","Duration","AgeLabel"],"version":3,"file":"column-views.6d1551bd.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.8cfed88b.js";import"./column-views.78d3f3c5.js";import"./column-views.a501cea0.js";import"./column-views.cf90f63d.js";import"./column-views.3345cd7a.js";import e from"@macrostrat/hyper";import{useMemo as t}from"react";var n=globalThis,i={},o={},l=n.parcelRequirea149;null==l&&((l=function(e){if(e in i)return i[e].exports;if(e in o){var t=o[e];delete o[e];var n={id:e,exports:{}};return i[e]=n,t.call(n.exports,n,n.exports),n.exports}var l=Error("Cannot find module '"+e+"'");throw l.code="MODULE_NOT_FOUND",l}).register=function(e,t){o[e]=t},n.parcelRequirea149=l),l.register,Object.defineProperty({},"PBDBFossilsColumn",{get:()=>_,set:void 0,enumerable:!0,configurable:!0});var r=l("iWhRv"),a=l("wtIgl"),u=l("dx7no"),s=l("6KYbn"),c=l("jDygK");let d=e.styled(c&&c.__esModule?c.default:c);function f(e){let{note:t,spacing:n}=e,{data:i,unit:o}=t,l=i,r=null;if(i.length>5){let e=i.length-5;l=i.slice(0,5),r=d("li.too-many",`and ${e} more`)}return d("ul.fossil-collections",[l.map(e=>d("li.collection",{key:e.cltn_id},[d(m,{collection:e})])),r])}function m({collection:e}){return d("a.link-id",{href:`https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${e.cltn_id}`},e.cltn_name)}let p=e=>t=>t.unit_id==e.unit_id;function _({columnID:e,color:n="magenta"}){let i=(0,u.useFossilData)({col_id:e}),{axisType:o,units:l}=(0,a.useMacrostratColumnData)(),c=t(()=>{if(null==i||null==l)return[];let e=Array.from(i.values()).map(e=>({data:e,unit:l.find(p(e[0]))})).filter(e=>null!=e.unit);return e.sort((e,t)=>l.indexOf(e.unit)-l.indexOf(t.unit)),e.map(e=>{let{unit:t,data:n}=e,i=(0,r.getUnitHeightRange)(t,o);return{top_height:i[1],height:i[0],data:n,unit:t,id:t.unit_id}})},[i,l]),m=t(()=>e=>d(f,{color:n,...e}),[500,n]);return null==i||null==l?null:d("div.dz-spectra",d(s.ColumnNotes,{width:500,paddingLeft:40,notes:c,noteComponent:m}))}export{_ as PBDBFossilsColumn};
2
+ //# sourceMappingURL=column-views.6da49480.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,W,C,K,O,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,oB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCUA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAgBvB,SAAS,EAAW,CAAsB,EACxC,GAAM,CAAA,KAAE,CAAI,CAAA,QAAE,CAAO,CAAE,CAAG,EACpB,CAAA,KAAE,CAAI,CAAA,KAAE,CAAI,CAAE,CAAG,EAEnB,EAAK,EAEL,EAAU,KACd,GAAI,EAAK,MAAM,CAAG,EAAG,CACnB,IAAM,EAAI,EAAK,MAAM,CAAG,EACxB,EAAK,EAAK,KAAK,CAAC,EAAG,GACnB,EAAU,EAAE,cAAe,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAC5C,CAEA,OAAO,EAAE,wBAAyB,CAChC,EAAG,GAAG,CAAC,AAAC,GACC,EAAE,gBAAiB,CAAE,IAAK,EAAE,OAAO,AAAC,EAAG,CAC5C,EAAE,EAAoB,CAAE,WAAY,CAAE,GACvC,GAEH,EACD,CACH,CAEA,SAAS,EAAmB,CAAA,WAAE,CAAU,CAAkC,EACxE,OAAO,EACL,YACA,CACE,KAAM,CAAC,mEAAmE,EAAE,EAAW,OAAO,CAAA,CAAE,AAClG,EACA,EAAW,SAAS,CAExB,CAEA,IAAM,EAAe,AAAC,GAAO,AAAC,GAAM,EAAE,OAAO,EAAI,EAAG,OAAO,CAEpD,SAAS,EAAkB,CAAA,SAAE,CAAQ,CAAA,MAAE,EAAQ,SAAA,CAAW,EAC/D,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,CAAE,OAAQ,CAAS,GACxC,CAAA,SAAE,CAAQ,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEtB,EAAe,AAAA,EAAQ,KAC3B,GAAI,AAAQ,MAAR,GAAgB,AAAS,MAAT,EAAe,MAAO,EAAE,CAC5C,IAAI,EAAc,MAAM,IAAI,CAAC,EAAK,MAAM,IACrC,GAAG,CAAC,AAAC,GACG,CAAA,CACL,KAAM,EACN,KAAM,EAAM,IAAI,CAAC,EAAa,CAAC,CAAC,EAAE,EACpC,CAAA,GAED,MAAM,CAAC,AAAC,GAAM,AAAU,MAAV,EAAE,IAAI,EAQvB,OANA,EAAY,IAAI,CAAC,CAAC,EAAG,IAGZ,AAFI,EAAM,OAAO,CAAC,EAAE,IAAI,EACpB,EAAM,OAAO,CAAC,EAAE,IAAI,GAI1B,EAAY,GAAG,CAAC,AAAC,IACtB,GAAM,CAAA,KAAE,CAAI,CAAA,KAAE,CAAI,CAAE,CAAG,EACjB,EAAc,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAM,GAE7C,MAAO,CACL,WAAY,CAAW,CAAC,EAAE,CAC1B,OAAQ,CAAW,CAAC,EAAE,CACtB,KAAA,EACA,KAAA,EACA,GAAI,EAAK,OAAO,AAClB,CACF,EACF,EAAG,CAAC,EAAM,EAAM,EAKV,EAAgB,AAAA,EAAQ,IACrB,AAAC,GACC,EAAE,EAAY,CACnB,MAAA,EACA,GAAG,CAAK,AACV,GAED,CAVW,IAUH,EAAM,SAEjB,AAAI,AAAQ,MAAR,GAAgB,AAAS,MAAT,EAAsB,KAEnC,EACL,iBACA,EAAE,EAAA,WAAU,CAAG,CACb,MAjBU,IAkBV,YAjBgB,GAkBhB,MAAA,EACA,cAAA,CACF,GAEJ,Q,K,iB","sources":["<anon>","packages/column-views/src/facets/fossils/index.ts"],"sourcesContent":["import \"./column-views.8cfed88b.js\";\nimport \"./column-views.78d3f3c5.js\";\nimport \"./column-views.a501cea0.js\";\nimport \"./column-views.cf90f63d.js\";\nimport \"./column-views.3345cd7a.js\";\nimport $2jHE4$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $2jHE4$useMemo} from \"react\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $ea2f112131e22f14$exports = {};\n\n$parcel$export($ea2f112131e22f14$exports, \"PBDBFossilsColumn\", () => $ea2f112131e22f14$export$554267114407ef68);\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\n\nvar $dx7no = parcelRequire(\"dx7no\");\n\nvar $6KYbn = parcelRequire(\"6KYbn\");\n\n\nvar $jDygK = parcelRequire(\"jDygK\");\nconst $ea2f112131e22f14$var$h = (0, $2jHE4$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($jDygK))));\nfunction $ea2f112131e22f14$var$FossilInfo(props) {\n const { note: note, spacing: spacing } = props;\n const { data: data, unit: unit } = note;\n let d1 = data;\n let tooMany = null;\n if (data.length > 5) {\n const n = data.length - 5;\n d1 = data.slice(0, 5);\n tooMany = $ea2f112131e22f14$var$h(\"li.too-many\", `and ${n} more`);\n }\n return $ea2f112131e22f14$var$h(\"ul.fossil-collections\", [\n d1.map((d)=>{\n return $ea2f112131e22f14$var$h(\"li.collection\", {\n key: d.cltn_id\n }, [\n $ea2f112131e22f14$var$h($ea2f112131e22f14$var$PBDBCollectionLink, {\n collection: d\n })\n ]);\n }),\n tooMany\n ]);\n}\nfunction $ea2f112131e22f14$var$PBDBCollectionLink({ collection: collection }) {\n return $ea2f112131e22f14$var$h(\"a.link-id\", {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${collection.cltn_id}`\n }, collection.cltn_name);\n}\nconst $ea2f112131e22f14$var$matchingUnit = (dz)=>(d)=>d.unit_id == dz.unit_id;\nfunction $ea2f112131e22f14$export$554267114407ef68({ columnID: columnID, color: color = \"magenta\" }) {\n const data = (0, $dx7no.useFossilData)({\n col_id: columnID\n });\n const { axisType: axisType, units: units } = (0, $wtIgl.useMacrostratColumnData)();\n const notes = (0, $2jHE4$useMemo)(()=>{\n if (data == null || units == null) return [];\n let unitRefData = Array.from(data.values()).map((d)=>{\n return {\n data: d,\n unit: units.find($ea2f112131e22f14$var$matchingUnit(d[0]))\n };\n }).filter((d)=>d.unit != null);\n unitRefData.sort((a, b)=>{\n const v1 = units.indexOf(a.unit);\n const v2 = units.indexOf(b.unit);\n return v1 - v2;\n });\n return unitRefData.map((d)=>{\n const { unit: unit, data: data } = d;\n const heightRange = (0, $iWhRv.getUnitHeightRange)(unit, axisType);\n return {\n top_height: heightRange[1],\n height: heightRange[0],\n data: data,\n unit: unit,\n id: unit.unit_id\n };\n });\n }, [\n data,\n units\n ]);\n const width = 500;\n const paddingLeft = 40;\n const noteComponent = (0, $2jHE4$useMemo)(()=>{\n return (props)=>{\n return $ea2f112131e22f14$var$h($ea2f112131e22f14$var$FossilInfo, {\n color: color,\n ...props\n });\n };\n }, [\n width,\n color\n ]);\n if (data == null || units == null) return null;\n return $ea2f112131e22f14$var$h(\"div.dz-spectra\", $ea2f112131e22f14$var$h((0, $6KYbn.ColumnNotes), {\n width: width,\n paddingLeft: paddingLeft,\n notes: notes,\n noteComponent: noteComponent\n }));\n}\n\n\nexport {$ea2f112131e22f14$export$554267114407ef68 as PBDBFossilsColumn};\n//# sourceMappingURL=column-views.6da49480.js.map\n","import { getUnitHeightRange } from \"../../prepare-units\";\nimport { useMacrostratColumnData } from \"../../data-provider\";\nimport hyper from \"@macrostrat/hyper\";\nimport { PBDBCollection, useFossilData } from \"./provider\";\nimport { useMacrostratUnits } from \"../../data-provider\";\nimport { ColumnNotes } from \"../../notes\";\nimport { useMemo } from \"react\";\nimport type { IUnit } from \"../../units\";\nimport styles from \"./index.module.sass\";\n\nconst h = hyper.styled(styles);\n\ninterface FossilItemProps {\n note: {\n data: PBDBCollection[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\nfunction FossilInfo(props: FossilItemProps) {\n const { note, spacing } = props;\n const { data, unit } = note;\n\n let d1 = data;\n\n let tooMany = null;\n if (data.length > 5) {\n const n = data.length - 5;\n d1 = data.slice(0, 5);\n tooMany = h(\"li.too-many\", `and ${n} more`);\n }\n\n return h(\"ul.fossil-collections\", [\n d1.map((d) => {\n return h(\"li.collection\", { key: d.cltn_id }, [\n h(PBDBCollectionLink, { collection: d }),\n ]);\n }),\n tooMany,\n ]);\n}\n\nfunction PBDBCollectionLink({ collection }: { collection: PBDBCollection }) {\n return h(\n \"a.link-id\",\n {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${collection.cltn_id}`,\n },\n collection.cltn_name,\n );\n}\n\nconst matchingUnit = (dz) => (d) => d.unit_id == dz.unit_id;\n\nexport function PBDBFossilsColumn({ columnID, color = \"magenta\" }) {\n const data = useFossilData({ col_id: columnID });\n const { axisType, units } = useMacrostratColumnData();\n\n const notes: any[] = useMemo(() => {\n if (data == null || units == null) return [];\n let unitRefData = Array.from(data.values())\n .map((d) => {\n return {\n data: d,\n unit: units.find(matchingUnit(d[0])),\n };\n })\n .filter((d) => d.unit != null);\n\n unitRefData.sort((a, b) => {\n const v1 = units.indexOf(a.unit);\n const v2 = units.indexOf(b.unit);\n return v1 - v2;\n });\n\n return unitRefData.map((d) => {\n const { unit, data } = d;\n const heightRange = getUnitHeightRange(unit, axisType);\n\n return {\n top_height: heightRange[1],\n height: heightRange[0],\n data,\n unit,\n id: unit.unit_id,\n };\n });\n }, [data, units]);\n\n const width = 500;\n const paddingLeft = 40;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(FossilInfo, {\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n if (data == null || units == null) return null;\n\n return h(\n \"div.dz-spectra\",\n h(ColumnNotes, {\n width,\n paddingLeft,\n notes,\n noteComponent,\n }),\n );\n}\n"],"names":["$2jHE4$macrostrathyper","useMemo","$2jHE4$useMemo","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$ea2f112131e22f14$export$554267114407ef68","set","s","enumerable","configurable","$iWhRv","$wtIgl","$dx7no","$6KYbn","$jDygK","$ea2f112131e22f14$var$h","styled","a","__esModule","default","$ea2f112131e22f14$var$FossilInfo","props","note","spacing","data","unit","d1","tooMany","length","n","slice","map","d","key","cltn_id","$ea2f112131e22f14$var$PBDBCollectionLink","collection","href","cltn_name","$ea2f112131e22f14$var$matchingUnit","dz","unit_id","columnID","color","useFossilData","col_id","axisType","units","useMacrostratColumnData","notes","unitRefData","Array","from","values","find","filter","sort","b","v1","indexOf","heightRange","getUnitHeightRange","top_height","height","noteComponent","ColumnNotes","width","paddingLeft","PBDBFossilsColumn"],"version":3,"file":"column-views.6da49480.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ function e(e,r,a,h){Object.defineProperty(e,r,{get:a,set:h,enumerable:!0,configurable:!0})}var r,a,h,i,c,n,_,t={};e(t,"active",()=>r,e=>r=e),e(t,"badge",()=>a,e=>a=e),e(t,"hierarchy-children",()=>h,e=>h=e),e(t,"hierarchy-container",()=>i,e=>i=e),e(t,"hierarchy-link",()=>c,e=>c=e),e(t,"hierarchy-name",()=>n,e=>n=e),e(t,"name-hierarchy",()=>_,e=>_=e),r="_4LY9uG_active",a="_4LY9uG_badge",h="_4LY9uG_hierarchy-children",i="_4LY9uG_hierarchy-container",c="_4LY9uG_hierarchy-link",n="_4LY9uG_hierarchy-name",_="_4LY9uG_name-hierarchy";export{t as default};
2
+ //# sourceMappingURL=column-views.71c48a11.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICAA,EACA,EACA,EACA,EACA,EACA,EACA,E,E,C,E,E,E,S,I,E,A,G,E,G,E,E,Q,I,E,A,G,E,G,E,E,qB,I,E,A,G,E,G,E,E,sB,I,E,A,G,E,G,E,E,iB,I,E,A,G,E,G,E,E,iB,I,E,A,G,E,G,E,E,iB,I,E,A,G,E,GANA,EAA2B,iBAC3B,EAA0B,gBAC1B,EAAuC,6BACvC,EAAwC,8BACxC,EAAmC,yBACnC,EAAmC,yBACnC,EAAmC,gC,K,O","sources":["<anon>","packages/data-components/src/components/hierarchy/hierarchy.module.scss"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $a0b3f1511b3f6bbb$exports = {};\n\n$parcel$export($a0b3f1511b3f6bbb$exports, \"active\", () => $a0b3f1511b3f6bbb$export$89da14300d534261, (v) => $a0b3f1511b3f6bbb$export$89da14300d534261 = v);\n$parcel$export($a0b3f1511b3f6bbb$exports, \"badge\", () => $a0b3f1511b3f6bbb$export$4aebd143f31d0c0d, (v) => $a0b3f1511b3f6bbb$export$4aebd143f31d0c0d = v);\n$parcel$export($a0b3f1511b3f6bbb$exports, \"hierarchy-children\", () => $a0b3f1511b3f6bbb$export$cc4443ebd8b740a3, (v) => $a0b3f1511b3f6bbb$export$cc4443ebd8b740a3 = v);\n$parcel$export($a0b3f1511b3f6bbb$exports, \"hierarchy-container\", () => $a0b3f1511b3f6bbb$export$f266b53bda8bab82, (v) => $a0b3f1511b3f6bbb$export$f266b53bda8bab82 = v);\n$parcel$export($a0b3f1511b3f6bbb$exports, \"hierarchy-link\", () => $a0b3f1511b3f6bbb$export$ce8c2851835b2e37, (v) => $a0b3f1511b3f6bbb$export$ce8c2851835b2e37 = v);\n$parcel$export($a0b3f1511b3f6bbb$exports, \"hierarchy-name\", () => $a0b3f1511b3f6bbb$export$d5dd8498a46f5e6e, (v) => $a0b3f1511b3f6bbb$export$d5dd8498a46f5e6e = v);\n$parcel$export($a0b3f1511b3f6bbb$exports, \"name-hierarchy\", () => $a0b3f1511b3f6bbb$export$fe0a38b978e97b8a, (v) => $a0b3f1511b3f6bbb$export$fe0a38b978e97b8a = v);\nvar $a0b3f1511b3f6bbb$export$89da14300d534261;\nvar $a0b3f1511b3f6bbb$export$4aebd143f31d0c0d;\nvar $a0b3f1511b3f6bbb$export$cc4443ebd8b740a3;\nvar $a0b3f1511b3f6bbb$export$f266b53bda8bab82;\nvar $a0b3f1511b3f6bbb$export$ce8c2851835b2e37;\nvar $a0b3f1511b3f6bbb$export$d5dd8498a46f5e6e;\nvar $a0b3f1511b3f6bbb$export$fe0a38b978e97b8a;\n$a0b3f1511b3f6bbb$export$89da14300d534261 = `_4LY9uG_active`;\n$a0b3f1511b3f6bbb$export$4aebd143f31d0c0d = `_4LY9uG_badge`;\n$a0b3f1511b3f6bbb$export$cc4443ebd8b740a3 = `_4LY9uG_hierarchy-children`;\n$a0b3f1511b3f6bbb$export$f266b53bda8bab82 = `_4LY9uG_hierarchy-container`;\n$a0b3f1511b3f6bbb$export$ce8c2851835b2e37 = `_4LY9uG_hierarchy-link`;\n$a0b3f1511b3f6bbb$export$d5dd8498a46f5e6e = `_4LY9uG_hierarchy-name`;\n$a0b3f1511b3f6bbb$export$fe0a38b978e97b8a = `_4LY9uG_name-hierarchy`;\n\n\nexport {$a0b3f1511b3f6bbb$exports as default};\n//# sourceMappingURL=column-views.71c48a11.js.map\n",null],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$a0b3f1511b3f6bbb$export$89da14300d534261","$a0b3f1511b3f6bbb$export$4aebd143f31d0c0d","$a0b3f1511b3f6bbb$export$cc4443ebd8b740a3","$a0b3f1511b3f6bbb$export$f266b53bda8bab82","$a0b3f1511b3f6bbb$export$ce8c2851835b2e37","$a0b3f1511b3f6bbb$export$d5dd8498a46f5e6e","$a0b3f1511b3f6bbb$export$fe0a38b978e97b8a","$a0b3f1511b3f6bbb$exports","default"],"version":3,"file":"column-views.71c48a11.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.82cf7c0d.js";import"./column-views.04407342.js";import"./column-views.78d3f3c5.js";import"./column-views.eea80478.js";import{useMemo as e}from"react";import t from"@macrostrat/hyper";import a from"classnames";import{AxisBottom as r}from"@visx/axis";import{referenceMeasuresToColumn as o}from"@macrostrat/stratigraphy-utils";import{useColumnLayout as s,SVG as l,ColumnLayoutProvider as i}from"@macrostrat/column-components";import{scaleLinear as n}from"d3-scale";function c(e,t,a,r){Object.defineProperty(e,t,{get:a,set:r,enumerable:!0,configurable:!0})}var u=globalThis,m={},p={},d=u.parcelRequirea149;null==d&&((d=function(e){if(e in m)return m[e].exports;if(e in p){var t=p[e];delete p[e];var a={id:e,exports:{}};return m[e]=a,t.call(a.exports,a,a.exports),a.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){p[e]=t},u.parcelRequirea149=d),d.register;var f={};c(f,"IsotopesDataset",()=>_),c(f,"IsotopesColumn",()=>H);var g=d("62IHc"),h=d("l5EV6"),v=d("wtIgl"),x=d("6nrRo");let k=t.styled(x&&x.__esModule?x.default:x);function b(e){let{value:t,className:r,labelBottom:o,labelOffset:l,...i}=e,{sections:n}=(0,v.useMacrostratColumnData)(),{xScale:c}=s(),u=c(t);return k("g.tick",{transform:`translate(${u})`,className:r=a(r,{zero:0===t}),key:t},[k("g.tick-lines",n.map(t=>{let{scaleInfo:a}=t,r=a.offset,o=r+a.pixelHeight;return k("line",{y1:r,y2:o,strokeDasharray:e.strokeDasharray,strokeWidth:1})}))])}function _(t){let{parameter:a,color:r="dodgerblue"}=t,s=(0,v.useMacrostratUnits)(),l=(0,g.useMeasurementData)()??[],i=e(()=>{var e=o(s,l.filter(e=>e.measurement===a));let t=[];for(let a of e){let e=a.measure_value.map((e,t)=>({value:e,age:a.measure_age[t],position:a.measure_position[t],unit_id:a.unit_id,sample_id:a.sample_no[t],measurement:a.measurement}));Array.prototype.push.apply(t,e)}return t},[l,a,s]);return k(h.IsotopesDataArea,{getHeight:e=>e.age},k("g.data-points",i.map(e=>k(h.IsotopeDataPoint,{datum:e,fill:r}))))}function H(t){let{width:a=120,domain:r=[-14,6],parameter:o,label:s,color:c="dodgerblue",children:u=null,transform:m,getHeight:p,showAxis:d=!0,tickValues:f,nTicks:g=6,...h}=t,{totalHeight:x}=(0,v.useMacrostratColumnData)(),b=u;null==u&&null!=o&&(b=k(_,{parameter:o,color:c,getHeight:p}));let H=e(()=>n().domain(r).range([0,a]),[r,a]),S=f??H.ticks(g);return k("div.isotopes-column",[k(l,{height:x,innerWidth:a,paddingH:15},k(i,{width:a,xScale:H},k("g.isotopes-column",{className:o,transform:m},[k(w,{xScale:H,tickValues:S,width:a,...h}),b]))),k.if(d)(y,{width:a,label:s??o,xScale:H,tickValues:S,...h})])}function y(e){let{label:t,xScale:a,width:o,showAxis:s=!0,tickValues:i,...n}=e;return k("div.isotopes-scale-axis",[k(l,{innerWidth:o,height:45,paddingH:15},[k(r,{scale:a,tickLength:5,tickValues:i,stroke:"var(--column-stroke-color)",tickStroke:"var(--column-stroke-color)",...n,label:t})])])}function w(e){let{tickValues:t,xScale:a}=e;return k("g.scale-lines",t.map(e=>k(b,{value:e})))}export{_ as IsotopesDataset,H as IsotopesColumn};
2
+ //# sourceMappingURL=column-views.7350ac73.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,W,C,K,O,A,Q,M,mB,A,Q,M,Y,A,Q,c,C,K,Y,A,Q,6B,C,K,gC,A,Q,mB,C,C,O,C,C,wB,C,K,+B,A,Q,e,C,K,U,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,kB,I,G,E,E,iB,I,G,I,E,E,S,E,E,S,E,E,S,E,E,SCwBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GA8BvB,SAAS,EAAU,CAAqB,EACtC,GAAI,CAAA,MAAE,CAAK,CAAA,UAAE,CAAS,CAAA,YAAE,CAAW,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EACxD,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEf,CAAA,OAAE,CAAM,CAAE,CAAG,AAAA,IACb,EAAI,EAAO,GAGjB,OAAO,EAAE,SAAU,CAAE,UAFH,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAEH,UADhC,EAAY,AAAA,EAAW,EAAW,CAAE,KAAM,AAAU,IAAV,CAAY,GACX,IAAK,CAAM,EAAG,CACvD,EACE,eACA,EAAS,GAAG,CAAC,AAAC,IACZ,GAAM,CAAA,UAAE,CAAS,CAAE,CAAG,EAChB,EAAK,EAAU,MAAM,CACrB,EAAK,EAAK,EAAU,WAAW,CACrC,OAAO,EAAE,OAAQ,CACf,GAAA,EACA,GAAA,EACA,gBAAiB,EAAM,eAAe,CACtC,YAAa,CACf,EACF,IAEH,CACH,CAoCA,SAAS,EAAgB,CAAK,EAC5B,GAAM,CAAA,UAAE,CAAS,CAAA,MAAE,EAAQ,YAAA,CAAc,CAAG,EACtC,EAAQ,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,IACR,EAAW,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,KAAwB,EAAE,CAErC,EAAS,AAAA,EAAQ,SAvCH,EAyCE,AAAA,EAA0B,EADjC,EAAS,MAAM,CAAC,AAAC,GAAM,EAAE,WAAW,GAAK,IAvCxD,IAAI,EAAS,EAAE,CACf,IAAK,IAAM,KAAQ,EAAU,CAC3B,IAAM,EAAO,EAAK,aAAa,CAAC,GAAG,CAAC,CAAC,EAAG,IAC/B,CAAA,CACL,MAAO,EACP,IAAK,EAAK,WAAW,CAAC,EAAE,CACxB,SAAU,EAAK,gBAAgB,CAAC,EAAE,CAClC,QAAS,EAAK,OAAO,CACrB,UAAW,EAAK,SAAS,CAAC,EAAE,CAC5B,YAAa,EAAK,WAAW,AAC/B,CAAA,GAEF,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAQ,EACrC,CACA,OAAO,CA4BP,EAAG,CAAC,EAAU,EAAW,EAAM,EAE/B,OAAO,EACL,EAAA,gBAAe,CACf,CACE,UAAA,AAAU,GACD,EAAE,GAAG,AAEhB,EACA,EACE,gBACA,EAAO,GAAG,CAAC,AAAC,GACH,EAAE,EAAA,gBAAe,CAAG,CACzB,MAAO,EACP,KAAM,CACR,KAIR,CAEA,SAAS,EACP,CAA0D,EAE1D,GAAM,CAAA,MACJ,EAAQ,GAAA,CAAA,OACR,EAAS,CAAC,IAAK,EAAE,CAAA,UACjB,CAAS,CAAA,MACT,CAAK,CAAA,MACL,EAAQ,YAAA,CAAA,SACR,EAAW,IAAA,CAAA,UACX,CAAS,CAAA,UACT,CAAS,CAAA,SACT,EAAW,CAAA,CAAA,CACX,WAAY,CAAS,CAAA,OACrB,EAAS,CAAA,CACT,GAAG,EACJ,CAAG,EAEE,CAAA,YAAE,CAAW,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEpB,EAAiB,CACjB,AAAY,OAAZ,GAAoB,AAAa,MAAb,GACtB,CAAA,EAAY,EAAE,EAAiB,CAAE,UAAA,EAAW,MAAA,EAAO,UAAA,CAAU,EAAA,EAG/D,IAAM,EAAS,AAAA,EACb,IAAM,AAAA,IAAc,MAAM,CAAC,GAAQ,KAAK,CAAC,CAAC,EAAG,EAAM,EACnD,CAAC,EAAQ,EAAM,EAGX,EAAa,GAAa,EAAO,KAAK,CAAC,GAE7C,OAAO,EAAE,sBAAuB,CAC9B,EACE,EACA,CACE,OAAQ,EACR,WAAY,EACZ,SAAU,EACZ,EACA,EACE,EACA,CAAE,MAAA,EAAO,OAAA,CAAO,EAChB,EAAE,oBAAqB,CAAE,UAAW,EAAW,UAAA,CAAU,EAAG,CAC1D,EAAE,EAAkB,CAClB,OAAA,EACA,WAAA,EACA,MAAA,EACA,GAAG,CAAI,AACT,GACA,EACD,IAGL,EAAE,EAAE,CAAC,GAAU,EAAiB,CAC9B,MAAA,EACA,MAAO,GAAS,EAChB,OAAA,EACA,WAAA,EACA,GAAG,CAAI,AACT,GACD,CACH,CAEA,SAAS,EAAgB,CAAK,EAC5B,GAAM,CAAA,MAAE,CAAK,CAAA,OAAE,CAAM,CAAA,MAAE,CAAK,CAAA,SAAE,EAAW,CAAA,CAAA,CAAA,WAAM,CAAU,CAAE,GAAG,EAAM,CAAG,EAEvE,OAAO,EAAE,0BAA2B,CAClC,EACE,EACA,CACE,WAAY,EACZ,OAAQ,GACR,SAAU,EACZ,EACA,CACE,EAAE,EAAY,CACZ,MAAO,EACP,WAAY,EACZ,WAAA,EACA,OAAQ,6BACR,WAAY,6BACZ,GAAG,CAAI,CACP,MAAA,CACF,GACD,EAEJ,CACH,CAEA,SAAS,EAAiB,CAAK,EAC7B,GAAM,CAAA,WAAE,CAAU,CAAA,OAAE,CAAM,CAAE,CAAG,EAE/B,OAAO,EACL,gBACA,EAAW,GAAG,CAAC,AAAC,GACP,EAAE,EAAW,CAAE,MAAA,CAAM,IAGlC,Q,K,e,C,K,c","sources":["<anon>","packages/column-views/src/facets/carbon-isotopes/isotopes-column.ts"],"sourcesContent":["import \"./column-views.82cf7c0d.js\";\nimport \"./column-views.04407342.js\";\nimport \"./column-views.78d3f3c5.js\";\nimport \"./column-views.eea80478.js\";\nimport {useMemo as $2wsb4$useMemo} from \"react\";\nimport $2wsb4$macrostrathyper from \"@macrostrat/hyper\";\nimport $2wsb4$classnames from \"classnames\";\nimport {AxisBottom as $2wsb4$AxisBottom} from \"@visx/axis\";\nimport {referenceMeasuresToColumn as $2wsb4$referenceMeasuresToColumn} from \"@macrostrat/stratigraphy-utils\";\nimport {useColumnLayout as $2wsb4$useColumnLayout, SVG as $2wsb4$SVG, ColumnLayoutProvider as $2wsb4$ColumnLayoutProvider} from \"@macrostrat/column-components\";\nimport {scaleLinear as $2wsb4$scaleLinear} from \"d3-scale\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $5ccf8f2b270f7458$exports = {};\n\n$parcel$export($5ccf8f2b270f7458$exports, \"IsotopesDataset\", () => $5ccf8f2b270f7458$export$c69bd0285aa5d775);\n$parcel$export($5ccf8f2b270f7458$exports, \"IsotopesColumn\", () => $5ccf8f2b270f7458$export$5d8aa8022c284748);\n\n\n\n\n\nvar $62IHc = parcelRequire(\"62IHc\");\n\nvar $l5EV6 = parcelRequire(\"l5EV6\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $6nrRo = parcelRequire(\"6nrRo\");\n\nconst $5ccf8f2b270f7458$var$h = (0, $2wsb4$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($6nrRo))));\nfunction $5ccf8f2b270f7458$var$IsotopeText({ datum: datum, text: text, ...rest }) {\n const { pointLocator: pointLocator } = (0, $l5EV6.useDataLocator)();\n const [x, y] = pointLocator(datum);\n return $5ccf8f2b270f7458$var$h(\"text\", {\n x: x,\n y: y,\n ...rest\n }, text);\n}\nfunction $5ccf8f2b270f7458$var$ScaleLine(props) {\n let { value: value, className: className, labelBottom: labelBottom, labelOffset: labelOffset, ...rest } = props;\n const { sections: sections } = (0, $wtIgl.useMacrostratColumnData)();\n const { xScale: xScale } = (0, $2wsb4$useColumnLayout)();\n const x = xScale(value);\n const transform = `translate(${x})`;\n className = (0, $2wsb4$classnames)(className, {\n zero: value === 0\n });\n return $5ccf8f2b270f7458$var$h(\"g.tick\", {\n transform: transform,\n className: className,\n key: value\n }, [\n $5ccf8f2b270f7458$var$h(\"g.tick-lines\", sections.map((d)=>{\n const { scaleInfo: scaleInfo } = d;\n const y1 = scaleInfo.offset;\n const y2 = y1 + scaleInfo.pixelHeight;\n return $5ccf8f2b270f7458$var$h(\"line\", {\n y1: y1,\n y2: y2,\n strokeDasharray: props.strokeDasharray,\n strokeWidth: 1\n });\n }))\n ]);\n}\nfunction $5ccf8f2b270f7458$var$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}\nfunction $5ccf8f2b270f7458$export$c69bd0285aa5d775(props) {\n const { parameter: parameter, color: color = \"dodgerblue\" } = props;\n const units = (0, $wtIgl.useMacrostratUnits)();\n const measures = (0, $62IHc.useMeasurementData)() ?? [];\n const points = (0, $2wsb4$useMemo)(()=>{\n const data = measures.filter((d)=>d.measurement === parameter);\n const refMeasures = (0, $2wsb4$referenceMeasuresToColumn)(units, data);\n return $5ccf8f2b270f7458$var$unnestPoints(refMeasures);\n }, [\n measures,\n parameter,\n units\n ]);\n return $5ccf8f2b270f7458$var$h((0, $l5EV6.IsotopesDataArea), {\n getHeight (d) {\n return d.age;\n }\n }, $5ccf8f2b270f7458$var$h(\"g.data-points\", points.map((d)=>{\n return $5ccf8f2b270f7458$var$h((0, $l5EV6.IsotopeDataPoint), {\n datum: d,\n fill: color\n });\n })));\n}\nfunction $5ccf8f2b270f7458$export$5d8aa8022c284748(props) {\n const { width: width = 120, domain: domain = [\n -14,\n 6\n ], parameter: parameter, label: label, color: color = \"dodgerblue\", children: children = null, transform: transform, getHeight: getHeight, showAxis: showAxis = true, tickValues: _tickVals, nTicks: nTicks = 6, ...rest } = props;\n const { totalHeight: totalHeight } = (0, $wtIgl.useMacrostratColumnData)();\n let _children = children;\n if (children == null && parameter != null) _children = $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$export$c69bd0285aa5d775, {\n parameter: parameter,\n color: color,\n getHeight: getHeight\n });\n const xScale = (0, $2wsb4$useMemo)(()=>(0, $2wsb4$scaleLinear)().domain(domain).range([\n 0,\n width\n ]), [\n domain,\n width\n ]);\n const tickValues = _tickVals ?? xScale.ticks(nTicks);\n return $5ccf8f2b270f7458$var$h(\"div.isotopes-column\", [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$SVG), {\n height: totalHeight,\n innerWidth: width,\n paddingH: 15\n }, $5ccf8f2b270f7458$var$h((0, $2wsb4$ColumnLayoutProvider), {\n width: width,\n xScale: xScale\n }, $5ccf8f2b270f7458$var$h(\"g.isotopes-column\", {\n className: parameter,\n transform: transform\n }, [\n $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$var$ColumnScaleLines, {\n xScale: xScale,\n tickValues: tickValues,\n width: width,\n ...rest\n }),\n _children\n ]))),\n $5ccf8f2b270f7458$var$h.if(showAxis)($5ccf8f2b270f7458$var$ColumnScaleAxis, {\n width: width,\n label: label ?? parameter,\n xScale: xScale,\n tickValues: tickValues,\n ...rest\n })\n ]);\n}\nfunction $5ccf8f2b270f7458$var$ColumnScaleAxis(props) {\n const { label: label, xScale: xScale, width: width, showAxis: showAxis = true, tickValues: tickValues, ...rest } = props;\n return $5ccf8f2b270f7458$var$h(\"div.isotopes-scale-axis\", [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$SVG), {\n innerWidth: width,\n height: 45,\n paddingH: 15\n }, [\n $5ccf8f2b270f7458$var$h((0, $2wsb4$AxisBottom), {\n scale: xScale,\n tickLength: 5,\n tickValues: tickValues,\n stroke: \"var(--column-stroke-color)\",\n tickStroke: \"var(--column-stroke-color)\",\n ...rest,\n label: label\n })\n ])\n ]);\n}\nfunction $5ccf8f2b270f7458$var$ColumnScaleLines(props) {\n const { tickValues: tickValues, xScale: xScale } = props;\n return $5ccf8f2b270f7458$var$h(\"g.scale-lines\", tickValues.map((value)=>{\n return $5ccf8f2b270f7458$var$h($5ccf8f2b270f7458$var$ScaleLine, {\n value: value\n });\n }));\n}\n\n\nexport {$5ccf8f2b270f7458$export$c69bd0285aa5d775 as IsotopesDataset, $5ccf8f2b270f7458$export$5d8aa8022c284748 as IsotopesColumn};\n//# sourceMappingURL=column-views.7350ac73.js.map\n","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":["useMemo","$2wsb4$useMemo","$2wsb4$macrostrathyper","$2wsb4$classnames","AxisBottom","$2wsb4$AxisBottom","referenceMeasuresToColumn","$2wsb4$referenceMeasuresToColumn","useColumnLayout","$2wsb4$useColumnLayout","SVG","$2wsb4$SVG","ColumnLayoutProvider","$2wsb4$ColumnLayoutProvider","scaleLinear","$2wsb4$scaleLinear","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$5ccf8f2b270f7458$exports","$5ccf8f2b270f7458$export$c69bd0285aa5d775","$5ccf8f2b270f7458$export$5d8aa8022c284748","$62IHc","$l5EV6","$wtIgl","$6nrRo","$5ccf8f2b270f7458$var$h","styled","a","__esModule","default","$5ccf8f2b270f7458$var$ScaleLine","props","value","className","labelBottom","labelOffset","rest","sections","useMacrostratColumnData","xScale","x","transform","zero","key","map","d","scaleInfo","y1","offset","y2","pixelHeight","strokeDasharray","strokeWidth","parameter","color","units","useMacrostratUnits","measures","useMeasurementData","points","filter","measurement","meas","vals","measure_value","i","age","measure_age","position","measure_position","unit_id","sample_id","sample_no","Array","prototype","push","apply","IsotopesDataArea","getHeight","IsotopeDataPoint","datum","fill","width","domain","label","children","showAxis","tickValues","_tickVals","nTicks","totalHeight","_children","range","ticks","height","innerWidth","paddingH","$5ccf8f2b270f7458$var$ColumnScaleLines","if","$5ccf8f2b270f7458$var$ColumnScaleAxis","scale","tickLength","stroke","tickStroke","IsotopesDataset","IsotopesColumn"],"version":3,"file":"column-views.7350ac73.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.8cfed88b.js";import{group as e}from"d3-array";import{ColumnAxisType as t}from"@macrostrat/column-components";import{compareAgeRanges as n}from"@macrostrat/stratigraphy-utils";var i=globalThis,r={},a={},o=i.parcelRequirea149;null==o&&((o=function(e){if(e in r)return r[e].exports;if(e in a){var t=a[e];delete a[e];var n={id:e,exports:{}};return r[e]=n,t.call(n.exports,n,n.exports),n.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){a[e]=t},i.parcelRequirea149=o),o.register;var s=o("iWhRv");function g(e,n=t.AGE){let i=e.units.map((...e)=>(function(e,n,i,r=t.AGE){let a=i.filter(t=>t.unit_id!=e.unit_id&&(0,s.unitsOverlap)(e,t,r)),o=(0,s.getUnitHeightRange)(e,r),g=a.some(e=>(0,s.getUnitHeightRange)(e,r)[0]<o[0]+.001),u=0;return 1==a.length&&(u=1),{...e,bottomOverlap:g,column:u,overlappingUnits:a.map(e=>e.unit_id)}})(...e,0));for(let r of i){let a=i.filter(e=>r.overlappingUnits.includes(e.unit_id)).map(e=>e.column);if(a.includes(r.column)){let e=0;for(;a.includes(e);)e++;r.column=e}if(n==t.AGE){let[t,i]=(0,s.getUnitHeightRange)(r,n);t>e.b_age&&(r.b_clip_pos=e.b_age),i<e.t_age&&(r.t_clip_pos=e.t_age)}}return i}function u(i,r=t.AGE){if(r!=t.AGE)return function(e,i=t.AGE){let r=[];for(let t of e){let e=(0,s.getUnitHeightRange)(t,i),a=r.find(t=>n(e,t.heightRange));null==a?r.push({heightRange:e,units:[t]}):(a.units.push(t),a.heightRange=[Math.max(a.heightRange[0],e[0]),Math.min(a.heightRange[1],e[1])])}return r.map((e,t)=>{let[n,i]=l(e.units);return{section_id:-t,t_age:i,b_age:n,units:e.units}})}(i,r);let a=Array.from(e(i,e=>e.section_id)),o=(0,s.createUnitSorter)(r),g=a.map(([e,t])=>{let[n,i]=l(t);return t.sort(o),{section_id:e,t_age:i,b_age:n,units:t}}),p=(0,s.createUnitSorter)(t.AGE);return g.sort(p),g}function l(e){let t=e.map(e=>e.t_age);return[Math.max(...e.map(e=>e.b_age)),Math.min(...t)]}function p(e){let[t,...n]=e,i=[t];for(let e of n){let t=i[i.length-1];if(t.b_age<e.t_age||t.t_age>e.b_age){i.push(e);continue}t.section_id=[...(0,s.ensureArray)(t.section_id),...(0,s.ensureArray)(e.section_id)],t.units.push(...e.units),t.b_age=Math.max(t.b_age,e.b_age),t.t_age=Math.min(t.t_age,e.t_age)}return i}export{g as preprocessUnits,u as groupUnitsIntoSections,l as getSectionAgeRange,p as mergeOverlappingSections};
2
+ //# sourceMappingURL=column-views.755f726e.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["<anon>","packages/column-views/src/prepare-units/helpers.ts"],"sourcesContent":["import \"./column-views.8cfed88b.js\";\nimport {group as $lOZ4A$group} from \"d3-array\";\nimport {ColumnAxisType as $lOZ4A$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {compareAgeRanges as $lOZ4A$compareAgeRanges} from \"@macrostrat/stratigraphy-utils\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nconst $57278f42f24b59e5$var$dt = 0.001;\nfunction $57278f42f24b59e5$export$55543e159517d62d(section, axisType = (0, $lOZ4A$ColumnAxisType).AGE) {\n /** Preprocess units to add overlapping units and columns. */ const units = section.units;\n let divisions = units.map((...args)=>$57278f42f24b59e5$var$extendDivision(...args, axisType));\n for (let d of divisions){\n const overlappingUnits = divisions.filter((u)=>d.overlappingUnits.includes(u.unit_id));\n // Overlapping columns\n const columns = overlappingUnits.map((d)=>d.column);\n if (columns.includes(d.column)) {\n let col = 0;\n // Go through columns to find a better index\n while(columns.includes(col))col++;\n d.column = col;\n }\n // If unit overlaps the edges of a section, set the clip positions\n if (axisType == (0, $lOZ4A$ColumnAxisType).AGE) {\n const [b_pos, t_pos] = (0, $iWhRv.getUnitHeightRange)(d, axisType);\n if (b_pos > section.b_age) d.b_clip_pos = section.b_age;\n if (t_pos < section.t_age) d.t_clip_pos = section.t_age;\n }\n }\n // TODO: we may want to re-enable this simpler processing for sections,\n // but we want it to be less universally applied.\n // if (axisType != ColumnAxisType.AGE) {\n // return preprocessSectionUnits(divisions, axisType);\n // }\n //\n return divisions;\n}\nfunction $57278f42f24b59e5$var$extendDivision(unit, i, divisions, axisType = (0, $lOZ4A$ColumnAxisType).AGE) {\n const overlappingUnits = divisions.filter((d)=>d.unit_id != unit.unit_id && (0, $iWhRv.unitsOverlap)(unit, d, axisType));\n const u_pos = (0, $iWhRv.getUnitHeightRange)(unit, axisType);\n const bottomOverlap = overlappingUnits.some((d)=>{\n const d_pos = (0, $iWhRv.getUnitHeightRange)(d, axisType);\n // Check if the unit is below the current unit\n return d_pos[0] < u_pos[0] + $57278f42f24b59e5$var$dt;\n });\n let column = 0;\n if (overlappingUnits.length == 1) column = 1;\n return {\n ...unit,\n bottomOverlap: bottomOverlap,\n column: column,\n overlappingUnits: overlappingUnits.map((d)=>d.unit_id)\n };\n}\nfunction $57278f42f24b59e5$export$dfbd00399d639b4c(units, axisType = (0, $lOZ4A$ColumnAxisType).AGE) {\n if (axisType != (0, $lOZ4A$ColumnAxisType).AGE) return $57278f42f24b59e5$var$groupUnitsIntoSectionByOverlap(units, axisType);\n /** Group units into sections by section_id.\n * This works for large-scale Macrostrat columns, where units are grouped by section_id.\n * */ let groups = Array.from((0, $lOZ4A$group)(units, (d)=>d.section_id));\n const unitComparator = (0, $iWhRv.createUnitSorter)(axisType);\n const groups1 = groups.map(([section_id, sectionUnits])=>{\n const [b_age, t_age] = $57278f42f24b59e5$export$8093438ec3e4c6fd(sectionUnits);\n // sort units by position\n sectionUnits.sort(unitComparator);\n return {\n section_id: section_id,\n t_age: t_age,\n b_age: b_age,\n units: sectionUnits\n };\n });\n // Sort sections by increasing top age, then increasing bottom age.\n // Sections have no relative ordinal position other than age...\n const compareSections = (0, $iWhRv.createUnitSorter)((0, $lOZ4A$ColumnAxisType).AGE);\n groups1.sort(compareSections);\n return groups1;\n}\nfunction $57278f42f24b59e5$var$groupUnitsIntoSectionByOverlap(units, axisType = (0, $lOZ4A$ColumnAxisType).AGE) {\n /** Group units into sections by overlap.\n * This creates \"synthetic\" sections that correspond to packages bound by scale gaps.\n * This is most useful in the height and depth domains, where gaps (e.g., missing core) are\n * common.\n * */ // Start with each unit as its own \"section\", and progressively merge...\n const sectionList = [];\n for (const unit of units){\n // Check if the unit overlaps with any existing section\n const heightRange = (0, $iWhRv.getUnitHeightRange)(unit, axisType);\n let section = sectionList.find((s)=>(0, $lOZ4A$compareAgeRanges)(heightRange, s.heightRange));\n if (section == null) // No overlap, create a new section\n sectionList.push({\n heightRange: heightRange,\n units: [\n unit\n ]\n });\n else {\n // Overlap, merge the unit into the section\n section.units.push(unit);\n // Update the height range\n section.heightRange = [\n Math.max(section.heightRange[0], heightRange[0]),\n Math.min(section.heightRange[1], heightRange[1])\n ];\n }\n }\n // We should have a section for each unit, now we can convert to SectionInfo\n // Ages have to be really actually ages, not heights\n return sectionList.map((section, i)=>{\n const [b_age, t_age] = $57278f42f24b59e5$export$8093438ec3e4c6fd(section.units);\n return {\n // Negative section IDs are used to indicate that these are synthetic sections\n section_id: -i,\n t_age: t_age,\n b_age: b_age,\n units: section.units\n };\n });\n}\nfunction $57278f42f24b59e5$export$8093438ec3e4c6fd(units) {\n /** Get the overall age range of a set of units. */ const t_ages = units.map((d)=>d.t_age);\n const b_ages = units.map((d)=>d.b_age);\n const t_age = Math.min(...t_ages);\n const b_age = Math.max(...b_ages);\n return [\n b_age,\n t_age\n ];\n}\nfunction $57278f42f24b59e5$export$e7bb744b9be37f3d(sections) {\n /** Columns can have sections that overlap in time. Here, we merge overlapping\n * sections into a single section to correctly render gap-bound packages.\n */ const [firstSection, ...rest] = sections;\n const newSections = [\n firstSection\n ];\n for (const section of rest){\n const lastSection = newSections[newSections.length - 1];\n if (lastSection.b_age < section.t_age || lastSection.t_age > section.b_age) {\n // No overlap, add the section as normal\n newSections.push(section);\n continue;\n }\n // Overlap, merge the sections\n lastSection.section_id = [\n ...(0, $iWhRv.ensureArray)(lastSection.section_id),\n ...(0, $iWhRv.ensureArray)(section.section_id)\n ];\n lastSection.units.push(...section.units);\n lastSection.b_age = Math.max(lastSection.b_age, section.b_age);\n lastSection.t_age = Math.min(lastSection.t_age, section.t_age);\n }\n return newSections;\n}\nfunction $57278f42f24b59e5$var$preprocessSectionUnits(units, axisType = (0, $lOZ4A$ColumnAxisType).DEPTH) {\n /** Preprocess units for a \"section\" column type, which is guaranteed to be simpler. */ // We have to assume the units are ordered...\n let thickness = 0;\n return units.map((unit, i)=>{\n let u1 = $57278f42f24b59e5$var$preprocessSectionUnit(unit, i, units, thickness, axisType);\n thickness += Math.abs(u1.t_pos - u1.b_pos);\n return u1;\n });\n}\nfunction $57278f42f24b59e5$var$preprocessSectionUnit(unit, i, units, accumulatedThickness = 0, axisType = (0, $lOZ4A$ColumnAxisType).DEPTH) {\n /** Preprocess a single unit for a \"section\" column type.\n * No provision for overlapping units.\n * */ let b_pos = unit.b_pos;\n let t_pos = unit.t_pos;\n if (b_pos == t_pos && axisType == (0, $lOZ4A$ColumnAxisType).ORDINAL) t_pos = t_pos - 1;\n let unit_name = unit.unit_name;\n // eODP columns sometimes have overlapping core sections, which are encoded in the name field\n // Match eODP section names\n const match = unit.unit_name.match(/^(\\d+(\\.\\d+)?)-(\\d+(\\.\\d+)?): (.+)/);\n if (match) {\n // These values should already be set if we've used the show_positions flag\n t_pos ?? (t_pos = (0, $iWhRv.ensureRealFloat)(match[1]));\n b_pos ?? (b_pos = (0, $iWhRv.ensureRealFloat)(match[3]));\n unit_name = match[5];\n }\n return {\n ...unit,\n b_pos: (0, $iWhRv.ensureRealFloat)(b_pos),\n t_pos: (0, $iWhRv.ensureRealFloat)(t_pos),\n unit_name: unit_name,\n bottomOverlap: false,\n overlappingUnits: []\n };\n}\n\n\nexport {$57278f42f24b59e5$export$55543e159517d62d as preprocessUnits, $57278f42f24b59e5$export$dfbd00399d639b4c as groupUnitsIntoSections, $57278f42f24b59e5$export$8093438ec3e4c6fd as getSectionAgeRange, $57278f42f24b59e5$export$e7bb744b9be37f3d as mergeOverlappingSections};\n//# sourceMappingURL=column-views.755f726e.js.map\n","import type { BaseUnit, UnitLong } from \"@macrostrat/api-types\";\nimport { group } from \"d3-array\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport {\n unitsOverlap,\n getUnitHeightRange,\n createUnitSorter,\n ensureArray,\n ensureRealFloat,\n PossiblyClippedUnit,\n} from \"./utils\";\nimport { compareAgeRanges } from \"@macrostrat/stratigraphy-utils\";\n\nconst dt = 0.001;\n\nexport interface StratigraphicPackage {\n /** A collection of stratigraphic information organized in time, corresponding\n * to single or multiple columns. */\n t_age: number;\n b_age: number;\n}\n\nexport interface SectionInfo<T extends UnitLong = ExtUnit>\n extends StratigraphicPackage {\n /** A time-bounded part of a single stratigraphic column. */\n section_id: number | number[];\n units: T[];\n}\n\nexport interface ExtUnit extends UnitLong {\n bottomOverlap: boolean;\n overlappingUnits: number[];\n column?: number;\n /* Positions (ages or heights) where the unit is clipped to its containing section.\n * This is relevant if we are filtering by age/height/depth range.\n */\n t_clip_pos?: number;\n b_clip_pos?: number;\n}\n\nexport function preprocessUnits<T extends UnitLong = UnitLong>(\n section: SectionInfo<T>,\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n): ExtUnit[] {\n /** Preprocess units to add overlapping units and columns. */\n const units = section.units;\n let divisions = units.map((...args) => extendDivision(...args, axisType));\n for (let d of divisions) {\n const overlappingUnits = divisions.filter((u) =>\n d.overlappingUnits.includes(u.unit_id),\n );\n\n // Overlapping columns\n const columns = overlappingUnits.map((d) => d.column);\n\n if (columns.includes(d.column)) {\n let col = 0;\n // Go through columns to find a better index\n while (columns.includes(col)) {\n col++;\n }\n d.column = col;\n }\n\n // If unit overlaps the edges of a section, set the clip positions\n if (axisType == ColumnAxisType.AGE) {\n const [b_pos, t_pos] = getUnitHeightRange(d, axisType);\n if (b_pos > section.b_age) {\n d.b_clip_pos = section.b_age;\n }\n if (t_pos < section.t_age) {\n d.t_clip_pos = section.t_age;\n }\n }\n }\n\n // TODO: we may want to re-enable this simpler processing for sections,\n // but we want it to be less universally applied.\n // if (axisType != ColumnAxisType.AGE) {\n // return preprocessSectionUnits(divisions, axisType);\n // }\n //\n return divisions;\n}\n\nfunction extendDivision(\n unit: UnitLong,\n i: number,\n divisions: UnitLong[],\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n): ExtUnit {\n const overlappingUnits = divisions.filter(\n (d) => d.unit_id != unit.unit_id && unitsOverlap(unit, d, axisType),\n );\n const u_pos = getUnitHeightRange(unit, axisType);\n const bottomOverlap = overlappingUnits.some((d) => {\n const d_pos = getUnitHeightRange(d, axisType);\n // Check if the unit is below the current unit\n return d_pos[0] < u_pos[0] + dt;\n });\n let column = 0;\n if (overlappingUnits.length == 1) {\n column = 1;\n }\n\n return {\n ...unit,\n bottomOverlap,\n column,\n overlappingUnits: overlappingUnits.map((d) => d.unit_id),\n };\n}\n\nexport function groupUnitsIntoSections<T extends UnitLong>(\n units: T[],\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n): SectionInfo<T>[] {\n if (axisType != ColumnAxisType.AGE) {\n return groupUnitsIntoSectionByOverlap(units, axisType);\n }\n\n /** Group units into sections by section_id.\n * This works for large-scale Macrostrat columns, where units are grouped by section_id.\n * */\n let groups = Array.from(group(units, (d) => d.section_id));\n const unitComparator = createUnitSorter(axisType);\n\n const groups1 = groups.map(([section_id, sectionUnits]) => {\n const [b_age, t_age] = getSectionAgeRange(sectionUnits);\n // sort units by position\n sectionUnits.sort(unitComparator);\n return { section_id, t_age, b_age, units: sectionUnits };\n });\n // Sort sections by increasing top age, then increasing bottom age.\n // Sections have no relative ordinal position other than age...\n const compareSections = createUnitSorter(ColumnAxisType.AGE) as (\n a: StratigraphicPackage,\n b: StratigraphicPackage,\n ) => number;\n groups1.sort(compareSections);\n return groups1;\n}\n\ninterface WorkingSection {\n units: UnitLong[];\n // Position or age\n heightRange?: [number, number];\n}\n\nfunction groupUnitsIntoSectionByOverlap<T extends UnitLong>(\n units: T[],\n axisType: ColumnAxisType = ColumnAxisType.AGE,\n): SectionInfo<T>[] {\n /** Group units into sections by overlap.\n * This creates \"synthetic\" sections that correspond to packages bound by scale gaps.\n * This is most useful in the height and depth domains, where gaps (e.g., missing core) are\n * common.\n * */\n // Start with each unit as its own \"section\", and progressively merge...\n const sectionList: WorkingSection[] = [];\n for (const unit of units) {\n // Check if the unit overlaps with any existing section\n const heightRange = getUnitHeightRange(unit, axisType);\n let section: WorkingSection | undefined = sectionList.find((s) =>\n compareAgeRanges(heightRange, s.heightRange),\n );\n if (section == null) {\n // No overlap, create a new section\n sectionList.push({\n heightRange,\n units: [unit],\n });\n } else {\n // Overlap, merge the unit into the section\n section.units.push(unit);\n // Update the height range\n section.heightRange = [\n Math.max(section.heightRange[0], heightRange[0]),\n Math.min(section.heightRange[1], heightRange[1]),\n ];\n }\n }\n // We should have a section for each unit, now we can convert to SectionInfo\n // Ages have to be really actually ages, not heights\n\n return sectionList.map((section, i) => {\n const [b_age, t_age] = getSectionAgeRange(section.units);\n return {\n // Negative section IDs are used to indicate that these are synthetic sections\n section_id: -i,\n t_age: t_age,\n b_age: b_age,\n units: section.units as T[],\n };\n });\n}\n\nexport function getSectionAgeRange(units: BaseUnit[]): [number, number] {\n /** Get the overall age range of a set of units. */\n const t_ages = units.map((d) => d.t_age);\n const b_ages = units.map((d) => d.b_age);\n const t_age = Math.min(...t_ages);\n const b_age = Math.max(...b_ages);\n return [b_age, t_age];\n}\n\nexport function mergeOverlappingSections<T extends UnitLong>(\n sections: SectionInfo<T>[],\n): SectionInfo<T>[] {\n /** Columns can have sections that overlap in time. Here, we merge overlapping\n * sections into a single section to correctly render gap-bound packages.\n */\n const [firstSection, ...rest] = sections;\n const newSections = [firstSection];\n for (const section of rest) {\n const lastSection = newSections[newSections.length - 1];\n if (\n lastSection.b_age < section.t_age ||\n lastSection.t_age > section.b_age\n ) {\n // No overlap, add the section as normal\n newSections.push(section);\n continue;\n }\n\n // Overlap, merge the sections\n lastSection.section_id = [\n ...ensureArray(lastSection.section_id),\n ...ensureArray(section.section_id),\n ];\n lastSection.units.push(...section.units);\n lastSection.b_age = Math.max(lastSection.b_age, section.b_age);\n lastSection.t_age = Math.min(lastSection.t_age, section.t_age);\n }\n return newSections;\n}\n\nfunction preprocessSectionUnits(\n units: UnitLong[],\n axisType: ColumnAxisType = ColumnAxisType.DEPTH,\n): ExtUnit[] {\n /** Preprocess units for a \"section\" column type, which is guaranteed to be simpler. */\n // We have to assume the units are ordered...\n let thickness = 0;\n return units.map((unit, i) => {\n let u1 = preprocessSectionUnit(unit, i, units, thickness, axisType);\n thickness += Math.abs(u1.t_pos - u1.b_pos);\n return u1;\n });\n}\n\nfunction preprocessSectionUnit(\n unit: UnitLong,\n i: number,\n units: UnitLong[],\n accumulatedThickness: number = 0,\n axisType: ColumnAxisType = ColumnAxisType.DEPTH,\n): ExtUnit {\n /** Preprocess a single unit for a \"section\" column type.\n * No provision for overlapping units.\n * */\n\n let b_pos = unit.b_pos;\n let t_pos = unit.t_pos;\n\n if (b_pos == t_pos && axisType == ColumnAxisType.ORDINAL) {\n t_pos = t_pos - 1;\n }\n\n let unit_name = unit.unit_name;\n\n // eODP columns sometimes have overlapping core sections, which are encoded in the name field\n // Match eODP section names\n const match = unit.unit_name.match(/^(\\d+(\\.\\d+)?)-(\\d+(\\.\\d+)?): (.+)/);\n\n if (match) {\n // These values should already be set if we've used the show_positions flag\n t_pos ??= ensureRealFloat(match[1]);\n b_pos ??= ensureRealFloat(match[3]);\n unit_name = match[5];\n }\n\n return {\n ...unit,\n b_pos: ensureRealFloat(b_pos),\n t_pos: ensureRealFloat(t_pos),\n unit_name,\n bottomOverlap: false,\n overlappingUnits: [],\n };\n}\n"],"names":["group","$lOZ4A$group","ColumnAxisType","$lOZ4A$ColumnAxisType","compareAgeRanges","$lOZ4A$compareAgeRanges","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$iWhRv","$57278f42f24b59e5$export$55543e159517d62d","section","axisType","AGE","divisions","units","map","args","$57278f42f24b59e5$var$extendDivision","unit","i","overlappingUnits","filter","d","unit_id","unitsOverlap","u_pos","getUnitHeightRange","bottomOverlap","some","d_pos","column","length","columns","u","includes","col","b_pos","t_pos","b_age","b_clip_pos","t_age","t_clip_pos","$57278f42f24b59e5$export$dfbd00399d639b4c","$57278f42f24b59e5$var$groupUnitsIntoSectionByOverlap","sectionList","heightRange","find","s","push","Math","max","min","$57278f42f24b59e5$export$8093438ec3e4c6fd","section_id","groups","Array","from","unitComparator","createUnitSorter","groups1","sectionUnits","sort","compareSections","t_ages","$57278f42f24b59e5$export$e7bb744b9be37f3d","sections","firstSection","rest","newSections","lastSection","ensureArray","preprocessUnits","groupUnitsIntoSections","getSectionAgeRange","mergeOverlappingSections"],"version":3,"file":"column-views.755f726e.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.2e4e357d.js";import"./column-views.b773edb8.js";import"./column-views.6a0a35e7.js";import"./column-views.78d3f3c5.js";import"./column-views.10a2bad6.js";import{hyperStyled as e}from"@macrostrat/hyper";import{LithologyColumn as t,SVG as n,ColumnContext as o}from"@macrostrat/column-components";import{createContext as a,useState as i,useRef as r,useCallback as l,useContext as s,useEffect as c}from"react";function d(e,t,n,o){Object.defineProperty(e,t,{get:n,set:o,enumerable:!0,configurable:!0})}var u=globalThis,p={},m={},f=u.parcelRequirea149;null==f&&((f=function(e){if(e in p)return p[e].exports;if(e in m){var t=m[e];delete m[e];var n={id:e,exports:{}};return p[e]=n,t.call(n.exports,n,n.exports),n.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){m[e]=t},u.parcelRequirea149=f),f.register;var b={};d(b,"LabelTrackerProvider",()=>S),d(b,"TrackedLabeledUnit",()=>y),d(b,"CompositeUnitComponent",()=>w),d(b,"CompositeUnitsColumn",()=>L),d(b,"AnnotatedUnitsColumn",()=>P),d(b,"SectionLabelsColumn",()=>T),d(b,"compositeScale",()=>N),d(b,"ColumnNotesProvider",()=>F);var C=f("jiUaC"),v=f("1n4Pb"),x=f("45u6B"),h=f("wtIgl"),$=f("a3mb1");let g=e(x&&x.__esModule?x.default:x),U=a(null),H=a(null),_=e=>e.unit_id;function S(e){let{children:t,units:n,findUnitID:o=_}=e,[a,s]=i(null),c=r({}),d=l((e,t)=>{let a=o(e);c.current[a]=t,Object.keys(c.current).length==n.length&&s(n.filter(e=>{let t=o(e);return!1==c.current[t]}))},[c,n,o]);return g(U.Provider,{value:d},g(H.Provider,{value:a},t))}function y({division:e,nameForDivision:t=C.defaultNameFunction,...n}){let o=s(U);return g(v.LabeledUnit,{division:e,label:t(e),onLabelUpdated(t,n){o?.(e,n)},...n})}let w=y;function L(e){let{width:n,unitComponent:o=y,unitComponentProps:a,clipToFrame:i,...r}=e;return g(t,{width:n,clipToFrame:i},[g(v.UnitBoxes,{unitComponent:o,unitComponentProps:a,...r})])}function P(e){return c(()=>{console.warn("AnnotatedUnitsColumn is deprecated and currently renders a no-op for transition purposes")},[]),null}function T(e){let{width:t=300,noteMode:o="unlabeled",labelOffset:a=30,noteComponent:i,shouldRenderNote:r}=e,{sections:l,totalHeight:c,axisType:d}=(0,h.useMacrostratColumnData)(),u=s(H),p=N(l),m=(0,$.useUnitSelectionDispatch)();return g("div.section-labels-column",[g(F,{units:[],scale:p,totalHeight:c,axisType:d},g(n,{height:c,innerWidth:t-4,paddingH:1,paddingLeft:3},g(C.UnitNamesColumn,{divisions:"unlabeled"==o?u:void 0,paddingLeft:a,width:t,noteComponent:i,shouldRenderNote:r,scale:p,onClickNote(e){m(e.data,null,null)}})))])}function N(e,t={}){let{clamped:n=!0}=t,o=e.map(e=>{let{scaleInfo:t}=e;return t.scale.copy().clamp(n)}),a=e=>{let t=o.find(t=>t.domain()[0]<=e&&e<=t.domain()[1]);return t?t(e):NaN};return a.copy=()=>a,a.domain=()=>[o[0].domain()[0],o[o.length-1].domain()[1]],a}function F(e){let{children:t,scale:n,totalHeight:a,pixelScale:i}=e,{axisType:r}=(0,h.useMacrostratColumnData)();return g(o.Provider,{value:{divisions:[],scale:n,scaleClamped:n,pixelHeight:a,pixelsPerMeter:i,axisType:r,zoom:1}},t)}export{S as LabelTrackerProvider,y as TrackedLabeledUnit,w as CompositeUnitComponent,L as CompositeUnitsColumn,P as AnnotatedUnitsColumn,T as SectionLabelsColumn,N as compositeScale,F as ColumnNotesProvider};
2
+ //# sourceMappingURL=column-views.770d2c95.js.map