@macrostrat/column-views 2.0.0 → 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 (539) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/{resolvers.36013b49.js → column-views.006d5180.js} +5 -2
  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/{popover.module.c4d6bfb0.css → column-views.16cc7a58.css} +1 -1
  13. package/dist/esm/{popover.module.c4d6bfb0.css.map → column-views.16cc7a58.css.map} +1 -1
  14. package/dist/esm/{selection.f5b0297e.js → column-views.1af9761e.js} +19 -3
  15. package/dist/esm/column-views.1af9761e.js.map +1 -0
  16. package/dist/esm/column-views.1c92b88f.js +16 -0
  17. package/dist/esm/column-views.1c92b88f.js.map +1 -0
  18. package/dist/esm/{store.c4d7a8a4.js → column-views.1e055ed5.js} +6 -5
  19. package/dist/esm/column-views.1e055ed5.js.map +1 -0
  20. package/dist/esm/column-views.210514ec.js +11 -0
  21. package/dist/esm/column-views.210514ec.js.map +1 -0
  22. package/dist/esm/{column.module.a67a6b4c.css → column-views.217078ab.css} +4 -3
  23. package/dist/esm/column-views.217078ab.css.map +1 -0
  24. package/dist/esm/{panel.module.3d2ea3c6.css → column-views.25471fe0.css} +1 -1
  25. package/dist/esm/{panel.module.3d2ea3c6.css.map → column-views.25471fe0.css.map} +1 -1
  26. package/dist/esm/column-views.2c43c055.js +156 -0
  27. package/dist/esm/column-views.2c43c055.js.map +1 -0
  28. package/dist/esm/column-views.2c45a7b5.js +25 -0
  29. package/dist/esm/column-views.2c45a7b5.js.map +1 -0
  30. package/dist/esm/column-views.2ca34210.js +151 -0
  31. package/dist/esm/column-views.2ca34210.js.map +1 -0
  32. package/dist/esm/{unit-details.071cefed.js → column-views.2cb87813.js} +4 -4
  33. package/dist/esm/{unit-details.071cefed.js.map → column-views.2cb87813.js.map} +1 -1
  34. package/dist/esm/{mapbox.cac42eed.js → column-views.2d8e0e0f.js} +10 -9
  35. package/dist/esm/column-views.2d8e0e0f.js.map +1 -0
  36. package/dist/esm/column-views.3048acc1.js +66 -0
  37. package/dist/esm/column-views.3048acc1.js.map +1 -0
  38. package/dist/esm/column-views.3199d35a.css +61 -0
  39. package/dist/esm/column-views.3199d35a.css.map +1 -0
  40. package/dist/esm/{main.module.3dd9500b.css → column-views.338a7a83.css} +1 -1
  41. package/dist/esm/{main.module.3dd9500b.css.map → column-views.338a7a83.css.map} +1 -1
  42. package/dist/esm/{age-model-overlay.module.cd985dcb.js → column-views.3465c8ad.js} +1 -1
  43. package/dist/esm/{age-model-overlay.module.cd985dcb.js.map → column-views.3465c8ad.js.map} +1 -1
  44. package/dist/esm/column-views.34a52db7.js +31 -0
  45. package/dist/esm/column-views.34a52db7.js.map +1 -0
  46. package/dist/esm/{utils.d7a43a2a.js → column-views.39657bbf.js} +1 -1
  47. package/dist/esm/column-views.39657bbf.js.map +1 -0
  48. package/dist/esm/column-views.3b972a9b.css +4 -0
  49. package/dist/esm/{composite.module.69a38fd1.css.map → column-views.3b972a9b.css.map} +1 -1
  50. package/dist/esm/{base.910b80b4.js → column-views.3ba9213d.js} +16 -5
  51. package/dist/esm/column-views.3ba9213d.js.map +1 -0
  52. package/dist/esm/{inset-map.3c18106d.js → column-views.3de4dc43.js} +1 -1
  53. package/dist/esm/{inset-map.3c18106d.js.map → column-views.3de4dc43.js.map} +1 -1
  54. package/dist/esm/column-views.403a7b48.css +24 -0
  55. package/dist/esm/column-views.403a7b48.css.map +1 -0
  56. package/dist/esm/{composite.module.0638e7ee.js → column-views.40cd59b5.js} +1 -1
  57. package/dist/esm/{composite.module.0638e7ee.js.map → column-views.40cd59b5.js.map} +1 -1
  58. package/dist/esm/{column.module.1b776e15.js → column-views.4637f4ce.js} +1 -1
  59. package/dist/esm/column-views.4637f4ce.js.map +1 -0
  60. package/dist/esm/column-views.494447ef.css +2 -0
  61. package/dist/esm/column-views.494447ef.css.map +1 -0
  62. package/dist/esm/column-views.4950ea28.js +28 -0
  63. package/dist/esm/column-views.4950ea28.js.map +1 -0
  64. package/dist/esm/{composite-scale.577bf64a.js → column-views.4ab0ec82.js} +44 -13
  65. package/dist/esm/column-views.4ab0ec82.js.map +1 -0
  66. package/dist/esm/{age-model-overlay.c7226855.js → column-views.4d22c21c.js} +5 -5
  67. package/dist/esm/{age-model-overlay.c7226855.js.map → column-views.4d22c21c.js.map} +1 -1
  68. package/dist/esm/{boxes.module.4ebc7796.js → column-views.4d374a35.js} +1 -1
  69. package/dist/esm/{boxes.module.4ebc7796.js.map → column-views.4d374a35.js.map} +1 -1
  70. package/dist/esm/{keyboard-navigation.a9fc80dd.js → column-views.52a6eb47.js} +3 -3
  71. package/dist/esm/{keyboard-navigation.a9fc80dd.js.map → column-views.52a6eb47.js.map} +1 -1
  72. package/dist/esm/{popover.a810b7bc.js → column-views.52b03330.js} +6 -6
  73. package/dist/esm/{popover.a810b7bc.js.map → column-views.52b03330.js.map} +1 -1
  74. package/dist/esm/column-views.57636733.css +22 -0
  75. package/dist/esm/column-views.57636733.css.map +1 -0
  76. package/dist/esm/{panel.module.386166cc.js → column-views.58b82432.js} +1 -1
  77. package/dist/esm/{panel.module.386166cc.js.map → column-views.58b82432.js.map} +1 -1
  78. package/dist/esm/{main.2e0375a5.js → column-views.59792b70.js} +21 -18
  79. package/dist/esm/column-views.59792b70.js.map +1 -0
  80. package/dist/esm/{svg.4b9a96c1.js → column-views.59bb0cba.js} +2 -3
  81. package/dist/esm/column-views.59bb0cba.js.map +1 -0
  82. package/dist/esm/{correlation-chart.abd8b346.js → column-views.5ae1d963.js} +3 -3
  83. package/dist/esm/{correlation-chart.abd8b346.js.map → column-views.5ae1d963.js.map} +1 -1
  84. package/dist/esm/{fetch.99aec438.js → column-views.5cc09c1d.js} +1 -1
  85. package/dist/esm/column-views.5cc09c1d.js.map +1 -0
  86. package/dist/esm/column-views.5e2dc19d.js +187 -0
  87. package/dist/esm/column-views.5e2dc19d.js.map +1 -0
  88. package/dist/esm/{styles.7bc776d1.js → column-views.633c42a3.js} +2 -1
  89. package/dist/esm/column-views.633c42a3.js.map +1 -0
  90. package/dist/esm/{layers.033d3fb0.js → column-views.6549388a.js} +5 -6
  91. package/dist/esm/column-views.6549388a.js.map +1 -0
  92. package/dist/esm/{panel.598f76a5.js → column-views.66f823ba.js} +66 -15
  93. package/dist/esm/column-views.66f823ba.js.map +1 -0
  94. package/dist/esm/{age-axis.module.3cc91335.js → column-views.686d21ad.js} +10 -1
  95. package/dist/esm/column-views.686d21ad.js.map +1 -0
  96. package/dist/esm/column-views.68afac63.js +90 -0
  97. package/dist/esm/column-views.68afac63.js.map +1 -0
  98. package/dist/esm/column-views.6992ca88.js +25 -0
  99. package/dist/esm/column-views.6992ca88.js.map +1 -0
  100. package/dist/esm/column-views.69c0e90d.js +5 -0
  101. package/dist/esm/column-views.69c0e90d.js.map +1 -0
  102. package/dist/esm/{main.module.c09154b1.js → column-views.6a954628.js} +1 -1
  103. package/dist/esm/{main.module.c09154b1.js.map → column-views.6a954628.js.map} +1 -1
  104. package/dist/esm/{boxes.module.2b5fb18e.css → column-views.6c670c13.css} +1 -1
  105. package/dist/esm/{boxes.module.2b5fb18e.css.map → column-views.6c670c13.css.map} +1 -1
  106. package/dist/esm/{column-nav.5414677c.js → column-views.6d6b73b4.js} +1 -1
  107. package/dist/esm/{column-nav.5414677c.js.map → column-views.6d6b73b4.js.map} +1 -1
  108. package/dist/esm/column-views.708140ab.css +36 -0
  109. package/dist/esm/column-views.708140ab.css.map +1 -0
  110. package/dist/esm/column-views.7631c221.js +13 -0
  111. package/dist/esm/column-views.7631c221.js.map +1 -0
  112. package/dist/esm/{names.a8f2b452.js → column-views.7715e35e.js} +18 -14
  113. package/dist/esm/column-views.7715e35e.js.map +1 -0
  114. package/dist/esm/column-views.7a414dd1.css +56 -0
  115. package/dist/esm/column-views.7a414dd1.css.map +1 -0
  116. package/dist/esm/column-views.7a726ca9.js +24 -0
  117. package/dist/esm/column-views.7a726ca9.js.map +1 -0
  118. package/dist/esm/column-views.7e21d1ec.js +34 -0
  119. package/dist/esm/column-views.7e21d1ec.js.map +1 -0
  120. package/dist/esm/{column-correlation.c8dcfe98.js → column-views.7e350ae2.js} +3 -3
  121. package/dist/esm/{column-correlation.c8dcfe98.js.map → column-views.7e350ae2.js.map} +1 -1
  122. package/dist/esm/column-views.83a557b3.js +11 -0
  123. package/dist/esm/column-views.83a557b3.js.map +1 -0
  124. package/dist/esm/{state.2952cbca.js → column-views.85c6a716.js} +2 -2
  125. package/dist/esm/column-views.85c6a716.js.map +1 -0
  126. package/dist/esm/column-views.86619334.js +9 -0
  127. package/dist/esm/column-views.86619334.js.map +1 -0
  128. package/dist/esm/{age-axis.4a8cf5e6.js → column-views.8833218c.js} +25 -6
  129. package/dist/esm/column-views.8833218c.js.map +1 -0
  130. package/dist/esm/column-views.88984b34.js +92 -0
  131. package/dist/esm/column-views.88984b34.js.map +1 -0
  132. package/dist/esm/{core.91ede078.js → column-views.89b9e542.js} +12 -19
  133. package/dist/esm/column-views.89b9e542.js.map +1 -0
  134. package/dist/esm/column-views.8a1db14e.js +105 -0
  135. package/dist/esm/column-views.8a1db14e.js.map +1 -0
  136. package/dist/esm/column-views.8e7b01d2.js +43 -0
  137. package/dist/esm/column-views.8e7b01d2.js.map +1 -0
  138. package/dist/esm/column-views.8f108485.js +128 -0
  139. package/dist/esm/column-views.8f108485.js.map +1 -0
  140. package/dist/esm/column-views.904b9365.js +57 -0
  141. package/dist/esm/column-views.904b9365.js.map +1 -0
  142. package/dist/esm/column-views.90a863af.js +11 -0
  143. package/dist/esm/column-views.90a863af.js.map +1 -0
  144. package/dist/esm/{column.01d68dd8.js → column-views.91385fdc.js} +69 -32
  145. package/dist/esm/column-views.91385fdc.js.map +1 -0
  146. package/dist/esm/{helpers.2f0a0cb7.js → column-views.9892f825.js} +55 -4
  147. package/dist/esm/column-views.9892f825.js.map +1 -0
  148. package/dist/esm/{colors.395c6db5.js → column-views.9b77388d.js} +6 -5
  149. package/dist/esm/column-views.9b77388d.js.map +1 -0
  150. package/dist/esm/column-views.a582d4b5.js +7 -0
  151. package/dist/esm/column-views.a582d4b5.js.map +1 -0
  152. package/dist/esm/column-views.a7c5ae16.js +25 -0
  153. package/dist/esm/column-views.a7c5ae16.js.map +1 -0
  154. package/dist/esm/{boxes.8292cff2.js → column-views.a91dde4a.js} +14 -13
  155. package/dist/esm/column-views.a91dde4a.js.map +1 -0
  156. package/dist/esm/{_shared.f7eec55a.js → column-views.a94e99a2.js} +3 -3
  157. package/dist/esm/{_shared.f7eec55a.js.map → column-views.a94e99a2.js.map} +1 -1
  158. package/dist/esm/column-views.ad472a38.css +54 -0
  159. package/dist/esm/column-views.ad472a38.css.map +1 -0
  160. package/dist/esm/{age-axis.module.03773a80.css → column-views.b17f793f.css} +21 -1
  161. package/dist/esm/column-views.b17f793f.css.map +1 -0
  162. package/dist/esm/column-views.b2b5f52c.js +19 -0
  163. package/dist/esm/column-views.b2b5f52c.js.map +1 -0
  164. package/dist/esm/column-views.b324842f.css +57 -0
  165. package/dist/esm/column-views.b324842f.css.map +1 -0
  166. package/dist/esm/{state.178ef364.js → column-views.b9fe5176.js} +14 -8
  167. package/dist/esm/column-views.b9fe5176.js.map +1 -0
  168. package/dist/esm/{section.a34d379a.js → column-views.bb46641f.js} +9 -10
  169. package/dist/esm/column-views.bb46641f.js.map +1 -0
  170. package/dist/esm/column-views.bba13f77.css +54 -0
  171. package/dist/esm/column-views.bba13f77.css.map +1 -0
  172. package/dist/esm/{maps.bcdea9c1.js → column-views.bcffe6e5.js} +4 -4
  173. package/dist/esm/{maps.bcdea9c1.js.map → column-views.bcffe6e5.js.map} +1 -1
  174. package/dist/esm/{hash-string.285b37fb.js → column-views.beb54e95.js} +1 -1
  175. package/dist/esm/{hash-string.285b37fb.js.map → column-views.beb54e95.js.map} +1 -1
  176. package/dist/esm/{column-navigation.37cd3245.js → column-views.c25e8b32.js} +3 -3
  177. package/dist/esm/{column-navigation.37cd3245.js.map → column-views.c25e8b32.js.map} +1 -1
  178. package/dist/esm/column-views.c5e108f9.js +34 -0
  179. package/dist/esm/column-views.c5e108f9.js.map +1 -0
  180. package/dist/esm/{prepare-units.6c890a96.js → column-views.c71c321c.js} +12 -12
  181. package/dist/esm/column-views.c71c321c.js.map +1 -0
  182. package/dist/esm/{data-provider.f10c6d0b.js → column-views.c8e2983a.js} +6 -6
  183. package/dist/esm/{data-provider.f10c6d0b.js.map → column-views.c8e2983a.js.map} +1 -1
  184. package/dist/esm/column-views.cae5a0ad.js +37 -0
  185. package/dist/esm/column-views.cae5a0ad.js.map +1 -0
  186. package/dist/esm/{composite.039e4798.js → column-views.d2037465.js} +17 -11
  187. package/dist/esm/column-views.d2037465.js.map +1 -0
  188. package/dist/esm/{keyboard-navigation.6713401b.js → column-views.dc42f5d0.js} +1 -1
  189. package/dist/esm/column-views.dc42f5d0.js.map +1 -0
  190. package/dist/esm/column-views.e20f6a4b.js +124 -0
  191. package/dist/esm/column-views.e20f6a4b.js.map +1 -0
  192. package/dist/esm/{age-model-overlay.module.5d9e78fb.css → column-views.e40b8bfb.css} +1 -1
  193. package/dist/esm/{age-model-overlay.module.5d9e78fb.css.map → column-views.e40b8bfb.css.map} +1 -1
  194. package/dist/esm/column-views.e4975dd6.css +146 -0
  195. package/dist/esm/column-views.e4975dd6.css.map +1 -0
  196. package/dist/esm/column-views.e9f8b2a7.js +20 -0
  197. package/dist/esm/column-views.e9f8b2a7.js.map +1 -0
  198. package/dist/esm/column-views.edeab611.js +204 -0
  199. package/dist/esm/column-views.edeab611.js.map +1 -0
  200. package/dist/esm/{popover.module.c4ba4189.js → column-views.edf77621.js} +1 -1
  201. package/dist/esm/{popover.module.c4ba4189.js.map → column-views.edf77621.js.map} +1 -1
  202. package/dist/esm/{prepare-data.d4284b4a.js → column-views.f08929e2.js} +2 -2
  203. package/dist/esm/column-views.f08929e2.js.map +1 -0
  204. package/dist/esm/column-views.f13a1d6e.js +37 -0
  205. package/dist/esm/column-views.f13a1d6e.js.map +1 -0
  206. package/dist/esm/column-views.f2948ff8.js +101 -0
  207. package/dist/esm/column-views.f2948ff8.js.map +1 -0
  208. package/dist/esm/column-views.f9dab157.js +3 -0
  209. package/dist/esm/column-views.f9dab157.js.map +1 -0
  210. package/dist/esm/column-views.fa19cea0.js +108 -0
  211. package/dist/esm/column-views.fa19cea0.js.map +1 -0
  212. package/dist/esm/index.d.ts +325 -296
  213. package/dist/esm/index.d.ts.map +1 -1
  214. package/dist/esm/index.js +13 -11
  215. package/dist/esm/index.js.map +1 -1
  216. package/dist/node/column-views.007bf6c1.js +2 -0
  217. package/dist/node/column-views.007bf6c1.js.map +1 -0
  218. package/dist/node/column-views.00848c9a.js +2 -0
  219. package/dist/node/column-views.00848c9a.js.map +1 -0
  220. package/dist/node/column-views.0278b7e5.js +2 -0
  221. package/dist/node/column-views.0278b7e5.js.map +1 -0
  222. package/dist/node/column-views.04407342.js +2 -0
  223. package/dist/node/column-views.04407342.js.map +1 -0
  224. package/dist/node/column-views.072d3dcd.js +2 -0
  225. package/dist/node/column-views.072d3dcd.js.map +1 -0
  226. package/dist/node/column-views.0859f5d2.js +2 -0
  227. package/dist/node/column-views.0859f5d2.js.map +1 -0
  228. package/dist/node/column-views.0b579299.css +2 -0
  229. package/dist/node/column-views.0b579299.css.map +1 -0
  230. package/dist/node/column-views.0b72c188.js +2 -0
  231. package/dist/node/column-views.0b72c188.js.map +1 -0
  232. package/dist/node/column-views.1064fcfb.js +2 -0
  233. package/dist/node/column-views.1064fcfb.js.map +1 -0
  234. package/dist/node/column-views.10a2bad6.js +2 -0
  235. package/dist/node/column-views.10a2bad6.js.map +1 -0
  236. package/dist/node/column-views.12864efd.js +2 -0
  237. package/dist/node/column-views.12864efd.js.map +1 -0
  238. package/dist/node/column-views.12a70e9d.js +2 -0
  239. package/dist/node/column-views.12a70e9d.js.map +1 -0
  240. package/dist/node/column-views.139b0855.js +2 -0
  241. package/dist/node/column-views.139b0855.js.map +1 -0
  242. package/dist/node/column-views.1a0b56fc.js +2 -0
  243. package/dist/node/column-views.1a0b56fc.js.map +1 -0
  244. package/dist/node/column-views.1de87649.js +2 -0
  245. package/dist/node/column-views.1de87649.js.map +1 -0
  246. package/dist/node/column-views.22673dc1.js +2 -0
  247. package/dist/node/column-views.22673dc1.js.map +1 -0
  248. package/dist/node/column-views.273ac4a8.js +2 -0
  249. package/dist/node/column-views.273ac4a8.js.map +1 -0
  250. package/dist/node/column-views.28609db2.css +2 -0
  251. package/dist/node/column-views.28609db2.css.map +1 -0
  252. package/dist/node/column-views.286d444d.js +2 -0
  253. package/dist/node/column-views.286d444d.js.map +1 -0
  254. package/dist/node/column-views.2877f398.js +2 -0
  255. package/dist/node/column-views.2877f398.js.map +1 -0
  256. package/dist/node/column-views.2a70b9a2.js +2 -0
  257. package/dist/node/column-views.2a70b9a2.js.map +1 -0
  258. package/dist/node/column-views.2e4e357d.js +2 -0
  259. package/dist/node/column-views.2e4e357d.js.map +1 -0
  260. package/dist/node/column-views.2fa1c4e6.css +2 -0
  261. package/dist/node/column-views.2fa1c4e6.css.map +1 -0
  262. package/dist/node/column-views.33102ceb.js +2 -0
  263. package/dist/node/column-views.33102ceb.js.map +1 -0
  264. package/dist/node/column-views.3345cd7a.js +2 -0
  265. package/dist/node/column-views.3345cd7a.js.map +1 -0
  266. package/dist/node/column-views.33752461.js +2 -0
  267. package/dist/node/column-views.33752461.js.map +1 -0
  268. package/dist/node/column-views.34b48ee4.js +2 -0
  269. package/dist/node/column-views.34b48ee4.js.map +1 -0
  270. package/dist/node/column-views.39d3a0be.js +2 -0
  271. package/dist/node/column-views.39d3a0be.js.map +1 -0
  272. package/dist/node/column-views.3a55ecd7.css +2 -0
  273. package/dist/node/column-views.3a55ecd7.css.map +1 -0
  274. package/dist/node/column-views.3bd09ad6.js +2 -0
  275. package/dist/node/column-views.3bd09ad6.js.map +1 -0
  276. package/dist/node/column-views.3cb3345e.js +2 -0
  277. package/dist/node/column-views.3cb3345e.js.map +1 -0
  278. package/dist/node/column-views.3f3cfcce.js +2 -0
  279. package/dist/node/column-views.3f3cfcce.js.map +1 -0
  280. package/dist/node/column-views.41876859.js +2 -0
  281. package/dist/node/column-views.41876859.js.map +1 -0
  282. package/dist/node/column-views.41d01674.js +2 -0
  283. package/dist/node/column-views.41d01674.js.map +1 -0
  284. package/dist/node/column-views.44b75011.js +2 -0
  285. package/dist/node/column-views.44b75011.js.map +1 -0
  286. package/dist/node/column-views.45168c80.js +2 -0
  287. package/dist/node/column-views.45168c80.js.map +1 -0
  288. package/dist/node/column-views.47f67ad4.js +2 -0
  289. package/dist/node/column-views.47f67ad4.js.map +1 -0
  290. package/dist/node/column-views.4e2bdf9b.js +2 -0
  291. package/dist/node/column-views.4e2bdf9b.js.map +1 -0
  292. package/dist/node/column-views.51fbed89.js +2 -0
  293. package/dist/node/column-views.51fbed89.js.map +1 -0
  294. package/dist/node/column-views.5b6833f0.js +2 -0
  295. package/dist/node/column-views.5b6833f0.js.map +1 -0
  296. package/dist/node/column-views.5c1b0eeb.css +2 -0
  297. package/dist/node/column-views.5c1b0eeb.css.map +1 -0
  298. package/dist/node/column-views.63165cf3.css +2 -0
  299. package/dist/node/column-views.63165cf3.css.map +1 -0
  300. package/dist/node/column-views.65ad6310.css +2 -0
  301. package/dist/node/column-views.65ad6310.css.map +1 -0
  302. package/dist/node/column-views.664dc6c9.js +2 -0
  303. package/dist/node/column-views.664dc6c9.js.map +1 -0
  304. package/dist/node/column-views.68224fdd.css +2 -0
  305. package/dist/node/column-views.68224fdd.css.map +1 -0
  306. package/dist/node/column-views.68ded006.js +2 -0
  307. package/dist/node/column-views.68ded006.js.map +1 -0
  308. package/dist/node/column-views.6a0a35e7.js +2 -0
  309. package/dist/node/column-views.6a0a35e7.js.map +1 -0
  310. package/dist/node/column-views.6a4c2100.css +2 -0
  311. package/dist/node/column-views.6a4c2100.css.map +1 -0
  312. package/dist/node/column-views.6a9da051.js +2 -0
  313. package/dist/node/column-views.6a9da051.js.map +1 -0
  314. package/dist/node/column-views.6b441349.js +2 -0
  315. package/dist/node/column-views.6b441349.js.map +1 -0
  316. package/dist/node/column-views.6b6b756b.js +2 -0
  317. package/dist/node/column-views.6b6b756b.js.map +1 -0
  318. package/dist/node/column-views.6bba8c57.js +2 -0
  319. package/dist/node/column-views.6bba8c57.js.map +1 -0
  320. package/dist/node/column-views.6d1551bd.js +2 -0
  321. package/dist/node/column-views.6d1551bd.js.map +1 -0
  322. package/dist/node/column-views.6da49480.js +2 -0
  323. package/dist/node/column-views.6da49480.js.map +1 -0
  324. package/dist/node/column-views.71c48a11.js +2 -0
  325. package/dist/node/column-views.71c48a11.js.map +1 -0
  326. package/dist/node/column-views.7350ac73.js +2 -0
  327. package/dist/node/column-views.7350ac73.js.map +1 -0
  328. package/dist/node/column-views.755f726e.js +2 -0
  329. package/dist/node/column-views.755f726e.js.map +1 -0
  330. package/dist/node/column-views.770d2c95.js +2 -0
  331. package/dist/node/column-views.770d2c95.js.map +1 -0
  332. package/dist/node/column-views.78d3f3c5.js +2 -0
  333. package/dist/node/column-views.78d3f3c5.js.map +1 -0
  334. package/dist/node/column-views.7b9bd06e.css +2 -0
  335. package/dist/node/column-views.7b9bd06e.css.map +1 -0
  336. package/dist/node/column-views.7be87c6b.js +2 -0
  337. package/dist/node/column-views.7be87c6b.js.map +1 -0
  338. package/dist/node/column-views.7d45bbeb.js +2 -0
  339. package/dist/node/column-views.7d45bbeb.js.map +1 -0
  340. package/dist/node/column-views.7f621850.js +2 -0
  341. package/dist/node/column-views.7f621850.js.map +1 -0
  342. package/dist/node/column-views.82cf7c0d.js +2 -0
  343. package/dist/node/column-views.82cf7c0d.js.map +1 -0
  344. package/dist/node/column-views.869c7199.js +2 -0
  345. package/dist/node/column-views.869c7199.js.map +1 -0
  346. package/dist/node/column-views.8a02b1fe.js +2 -0
  347. package/dist/node/column-views.8a02b1fe.js.map +1 -0
  348. package/dist/node/column-views.8acd24ca.js +2 -0
  349. package/dist/node/column-views.8acd24ca.js.map +1 -0
  350. package/dist/node/column-views.8c00beb4.js +2 -0
  351. package/dist/node/column-views.8c00beb4.js.map +1 -0
  352. package/dist/node/column-views.8cfed88b.js +2 -0
  353. package/dist/node/column-views.8cfed88b.js.map +1 -0
  354. package/dist/node/column-views.8f54691f.js +2 -0
  355. package/dist/node/column-views.8f54691f.js.map +1 -0
  356. package/dist/node/column-views.95411f1b.js +2 -0
  357. package/dist/node/column-views.95411f1b.js.map +1 -0
  358. package/dist/node/column-views.9cb13e51.css +2 -0
  359. package/dist/node/column-views.9cb13e51.css.map +1 -0
  360. package/dist/node/column-views.a0aac838.js +2 -0
  361. package/dist/node/column-views.a0aac838.js.map +1 -0
  362. package/dist/node/column-views.a208338e.js +2 -0
  363. package/dist/node/column-views.a208338e.js.map +1 -0
  364. package/dist/node/column-views.a501cea0.js +2 -0
  365. package/dist/node/column-views.a501cea0.js.map +1 -0
  366. package/dist/node/column-views.a634ac7f.js +2 -0
  367. package/dist/node/column-views.a634ac7f.js.map +1 -0
  368. package/dist/node/column-views.a8ffe072.js +2 -0
  369. package/dist/node/column-views.a8ffe072.js.map +1 -0
  370. package/dist/node/column-views.b169b4b5.css +2 -0
  371. package/dist/node/column-views.b169b4b5.css.map +1 -0
  372. package/dist/node/column-views.b55bd885.css +2 -0
  373. package/dist/node/column-views.b55bd885.css.map +1 -0
  374. package/dist/node/column-views.b773edb8.js +2 -0
  375. package/dist/node/column-views.b773edb8.js.map +1 -0
  376. package/dist/node/column-views.baf032f1.js +2 -0
  377. package/dist/node/column-views.baf032f1.js.map +1 -0
  378. package/dist/node/column-views.bb510980.js +2 -0
  379. package/dist/node/column-views.bb510980.js.map +1 -0
  380. package/dist/node/column-views.c968a185.css +2 -0
  381. package/dist/node/column-views.c968a185.css.map +1 -0
  382. package/dist/node/column-views.ca16625d.js +2 -0
  383. package/dist/node/column-views.ca16625d.js.map +1 -0
  384. package/dist/node/column-views.cd3c430b.js +2 -0
  385. package/dist/node/column-views.cd3c430b.js.map +1 -0
  386. package/dist/node/column-views.cd468adb.css +2 -0
  387. package/dist/node/column-views.cd468adb.css.map +1 -0
  388. package/dist/node/column-views.cdcce702.js +2 -0
  389. package/dist/node/column-views.cdcce702.js.map +1 -0
  390. package/dist/node/column-views.ce6808fe.js +2 -0
  391. package/dist/node/column-views.ce6808fe.js.map +1 -0
  392. package/dist/node/column-views.cf90f63d.js +2 -0
  393. package/dist/node/column-views.cf90f63d.js.map +1 -0
  394. package/dist/node/column-views.d0ee3385.js +2 -0
  395. package/dist/node/column-views.d0ee3385.js.map +1 -0
  396. package/dist/node/column-views.d6708353.js +2 -0
  397. package/dist/node/column-views.d6708353.js.map +1 -0
  398. package/dist/node/column-views.d9bbd6fb.css +2 -0
  399. package/dist/node/column-views.d9bbd6fb.css.map +1 -0
  400. package/dist/node/column-views.dfe9f0a9.js +2 -0
  401. package/dist/node/column-views.dfe9f0a9.js.map +1 -0
  402. package/dist/node/column-views.e52994ea.js +2 -0
  403. package/dist/node/column-views.e52994ea.js.map +1 -0
  404. package/dist/node/column-views.e6720522.js +2 -0
  405. package/dist/node/column-views.e6720522.js.map +1 -0
  406. package/dist/node/column-views.e77dd525.js +2 -0
  407. package/dist/node/column-views.e77dd525.js.map +1 -0
  408. package/dist/node/column-views.e7cd811c.css +2 -0
  409. package/dist/node/column-views.e7cd811c.css.map +1 -0
  410. package/dist/node/column-views.e7e26765.js +2 -0
  411. package/dist/node/column-views.e7e26765.js.map +1 -0
  412. package/dist/node/column-views.e9515ec1.js +2 -0
  413. package/dist/node/column-views.e9515ec1.js.map +1 -0
  414. package/dist/node/column-views.ebb44b7d.js +2 -0
  415. package/dist/node/column-views.ebb44b7d.js.map +1 -0
  416. package/dist/node/column-views.ee8cb107.js +2 -0
  417. package/dist/node/column-views.ee8cb107.js.map +1 -0
  418. package/dist/node/column-views.eea80478.js +2 -0
  419. package/dist/node/column-views.eea80478.js.map +1 -0
  420. package/dist/node/column-views.f7315cbc.css +2 -0
  421. package/dist/node/column-views.f7315cbc.css.map +1 -0
  422. package/dist/node/column-views.f76ba19f.js +2 -0
  423. package/dist/node/column-views.f76ba19f.js.map +1 -0
  424. package/dist/node/column-views.fea32686.js +2 -0
  425. package/dist/node/column-views.fea32686.js.map +1 -0
  426. package/dist/node/index.js +1 -1
  427. package/dist/node/index.js.map +1 -1
  428. package/package.json +23 -23
  429. package/src/age-axis.module.sass +20 -0
  430. package/src/age-axis.ts +25 -3
  431. package/src/age-model-overlay.ts +2 -2
  432. package/src/column.module.sass +3 -3
  433. package/src/column.ts +92 -19
  434. package/src/correlation-chart/main.ts +25 -12
  435. package/src/correlation-chart/prepare-data.ts +6 -6
  436. package/src/correlation-chart/stories/correlation-chart.stories.ts +12 -6
  437. package/src/data-provider/base.ts +20 -11
  438. package/src/data-provider/column-nav.ts +2 -2
  439. package/src/data-provider/fetch.ts +9 -9
  440. package/src/data-provider/store.ts +15 -10
  441. package/src/{carbon-isotopes → facets/carbon-isotopes}/data-area.ts +5 -4
  442. package/src/{carbon-isotopes → facets/carbon-isotopes}/index.ts +0 -1
  443. package/src/facets/carbon-isotopes/isotopes-column.module.sass +31 -0
  444. package/src/{carbon-isotopes → facets/carbon-isotopes}/isotopes-column.ts +119 -87
  445. package/src/facets/detrital-zircon/index.module.sass +22 -0
  446. package/src/facets/detrital-zircon/index.ts +132 -0
  447. package/src/facets/detrital-zircon/provider.ts +51 -0
  448. package/src/facets/fossils/index.module.sass +14 -0
  449. package/src/facets/fossils/index.ts +120 -0
  450. package/src/facets/fossils/provider.ts +80 -0
  451. package/src/facets/index.ts +3 -0
  452. package/src/index.ts +2 -1
  453. package/src/maps/_shared/inset-map.stories.ts +1 -1
  454. package/src/maps/_shared/inset-map.ts +2 -2
  455. package/src/maps/_shared/styles.ts +3 -1
  456. package/src/maps/column-correlation/column-correlation-map.stories.ts +3 -3
  457. package/src/maps/column-correlation/core.ts +17 -26
  458. package/src/maps/column-correlation/state.ts +9 -9
  459. package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +177 -1
  460. package/src/maps/column-navigation/mapbox/index.ts +18 -15
  461. package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +4 -4
  462. package/src/maps/column-navigation/mapbox/state.ts +16 -6
  463. package/src/maps/column-navigation/svg/animated.ts +2 -2
  464. package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +2 -2
  465. package/src/maps/column-navigation/svg/index.ts +2 -4
  466. package/src/maps/column-navigation/svg/layers.ts +5 -7
  467. package/src/maps/column-navigation/utils/keyboard-navigation.ts +1 -1
  468. package/src/notes.ts +49 -0
  469. package/src/prepare-units/composite-scale.ts +73 -25
  470. package/src/prepare-units/helpers.ts +78 -13
  471. package/src/prepare-units/index.ts +17 -17
  472. package/src/prepare-units/utils.ts +7 -7
  473. package/src/section.ts +8 -8
  474. package/src/unit-details/panel.ts +103 -19
  475. package/src/unit-details/popover.ts +5 -5
  476. package/src/units/boxes.ts +20 -10
  477. package/src/units/colors.ts +12 -5
  478. package/src/units/composite.ts +16 -11
  479. package/src/units/index.ts +77 -10
  480. package/src/units/names.ts +19 -16
  481. package/src/units/resolvers.ts +4 -1
  482. package/src/units/selection.ts +44 -11
  483. package/src/units/types.ts +2 -0
  484. package/dist/esm/age-axis.4a8cf5e6.js.map +0 -1
  485. package/dist/esm/age-axis.module.03773a80.css.map +0 -1
  486. package/dist/esm/age-axis.module.3cc91335.js.map +0 -1
  487. package/dist/esm/base.910b80b4.js.map +0 -1
  488. package/dist/esm/boxes.8292cff2.js.map +0 -1
  489. package/dist/esm/carbon-isotopes.10db8285.js +0 -11
  490. package/dist/esm/carbon-isotopes.10db8285.js.map +0 -1
  491. package/dist/esm/colors.395c6db5.js.map +0 -1
  492. package/dist/esm/column.01d68dd8.js.map +0 -1
  493. package/dist/esm/column.a25f8ebd.js +0 -117
  494. package/dist/esm/column.a25f8ebd.js.map +0 -1
  495. package/dist/esm/column.module.1b776e15.js.map +0 -1
  496. package/dist/esm/column.module.7f47d25a.js +0 -34
  497. package/dist/esm/column.module.7f47d25a.js.map +0 -1
  498. package/dist/esm/column.module.a67a6b4c.css.map +0 -1
  499. package/dist/esm/column.module.cbb072df.css +0 -157
  500. package/dist/esm/column.module.cbb072df.css.map +0 -1
  501. package/dist/esm/composite-scale.577bf64a.js.map +0 -1
  502. package/dist/esm/composite.039e4798.js.map +0 -1
  503. package/dist/esm/composite.module.69a38fd1.css +0 -4
  504. package/dist/esm/core.843310d3.js +0 -88
  505. package/dist/esm/core.843310d3.js.map +0 -1
  506. package/dist/esm/core.91ede078.js.map +0 -1
  507. package/dist/esm/data-area.daff8da0.js +0 -86
  508. package/dist/esm/data-area.daff8da0.js.map +0 -1
  509. package/dist/esm/data-provider.1506eb64.js +0 -25
  510. package/dist/esm/data-provider.1506eb64.js.map +0 -1
  511. package/dist/esm/fetch.99aec438.js.map +0 -1
  512. package/dist/esm/helpers.2f0a0cb7.js.map +0 -1
  513. package/dist/esm/isotopes-column.7cb5cc45.js +0 -163
  514. package/dist/esm/isotopes-column.7cb5cc45.js.map +0 -1
  515. package/dist/esm/keyboard-navigation.6713401b.js.map +0 -1
  516. package/dist/esm/layers.033d3fb0.js.map +0 -1
  517. package/dist/esm/main.2e0375a5.js.map +0 -1
  518. package/dist/esm/mapbox.cac42eed.js.map +0 -1
  519. package/dist/esm/names.a8f2b452.js.map +0 -1
  520. package/dist/esm/panel.598f76a5.js.map +0 -1
  521. package/dist/esm/prepare-data.d4284b4a.js.map +0 -1
  522. package/dist/esm/prepare-units.6c890a96.js.map +0 -1
  523. package/dist/esm/resolvers.36013b49.js.map +0 -1
  524. package/dist/esm/section.a34d379a.js.map +0 -1
  525. package/dist/esm/selection.f5b0297e.js.map +0 -1
  526. package/dist/esm/state.178ef364.js.map +0 -1
  527. package/dist/esm/state.2952cbca.js.map +0 -1
  528. package/dist/esm/store.c4d7a8a4.js.map +0 -1
  529. package/dist/esm/styles.7bc776d1.js.map +0 -1
  530. package/dist/esm/svg.4b9a96c1.js.map +0 -1
  531. package/dist/esm/types.0f0b57c9.js +0 -3
  532. package/dist/esm/types.0f0b57c9.js.map +0 -1
  533. package/dist/esm/units.5a4fc058.js +0 -98
  534. package/dist/esm/units.5a4fc058.js.map +0 -1
  535. package/dist/esm/utils.d7a43a2a.js.map +0 -1
  536. package/src/carbon-isotopes/column.module.sass +0 -136
  537. package/src/carbon-isotopes/column.ts +0 -133
  538. package/src/carbon-isotopes/core.ts +0 -81
  539. /package/src/{carbon-isotopes → facets/carbon-isotopes}/data-provider.ts +0 -0
@@ -0,0 +1,43 @@
1
+
2
+ function $parcel$export(e, n, v, s) {
3
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
4
+ }
5
+ var $0d0ee39bbd91096d$exports = {};
6
+
7
+ $parcel$export($0d0ee39bbd91096d$exports, "content", () => $0d0ee39bbd91096d$export$a7db06668cad9adb, (v) => $0d0ee39bbd91096d$export$a7db06668cad9adb = v);
8
+ $parcel$export($0d0ee39bbd91096d$exports, "data-container", () => $0d0ee39bbd91096d$export$10db337eeb771240, (v) => $0d0ee39bbd91096d$export$10db337eeb771240 = v);
9
+ $parcel$export($0d0ee39bbd91096d$exports, "data-field", () => $0d0ee39bbd91096d$export$bb66d3d95d8b38e6, (v) => $0d0ee39bbd91096d$export$bb66d3d95d8b38e6 = v);
10
+ $parcel$export($0d0ee39bbd91096d$exports, "flex", () => $0d0ee39bbd91096d$export$97691fbb80847c19, (v) => $0d0ee39bbd91096d$export$97691fbb80847c19 = v);
11
+ $parcel$export($0d0ee39bbd91096d$exports, "inline", () => $0d0ee39bbd91096d$export$18c8ad048e32c7d5, (v) => $0d0ee39bbd91096d$export$18c8ad048e32c7d5 = v);
12
+ $parcel$export($0d0ee39bbd91096d$exports, "label", () => $0d0ee39bbd91096d$export$1237798dc640739a, (v) => $0d0ee39bbd91096d$export$1237798dc640739a = v);
13
+ $parcel$export($0d0ee39bbd91096d$exports, "parenthetical", () => $0d0ee39bbd91096d$export$1d02494d67adba65, (v) => $0d0ee39bbd91096d$export$1d02494d67adba65 = v);
14
+ $parcel$export($0d0ee39bbd91096d$exports, "sep", () => $0d0ee39bbd91096d$export$5aee1a5bd9743d8f, (v) => $0d0ee39bbd91096d$export$5aee1a5bd9743d8f = v);
15
+ $parcel$export($0d0ee39bbd91096d$exports, "tag-field", () => $0d0ee39bbd91096d$export$1fccac577aeb7179, (v) => $0d0ee39bbd91096d$export$1fccac577aeb7179 = v);
16
+ $parcel$export($0d0ee39bbd91096d$exports, "unit", () => $0d0ee39bbd91096d$export$523c0b569236b342, (v) => $0d0ee39bbd91096d$export$523c0b569236b342 = v);
17
+ $parcel$export($0d0ee39bbd91096d$exports, "value-container", () => $0d0ee39bbd91096d$export$324f6d0320efec31, (v) => $0d0ee39bbd91096d$export$324f6d0320efec31 = v);
18
+ var $0d0ee39bbd91096d$export$a7db06668cad9adb;
19
+ var $0d0ee39bbd91096d$export$10db337eeb771240;
20
+ var $0d0ee39bbd91096d$export$bb66d3d95d8b38e6;
21
+ var $0d0ee39bbd91096d$export$97691fbb80847c19;
22
+ var $0d0ee39bbd91096d$export$18c8ad048e32c7d5;
23
+ var $0d0ee39bbd91096d$export$1237798dc640739a;
24
+ var $0d0ee39bbd91096d$export$1d02494d67adba65;
25
+ var $0d0ee39bbd91096d$export$5aee1a5bd9743d8f;
26
+ var $0d0ee39bbd91096d$export$1fccac577aeb7179;
27
+ var $0d0ee39bbd91096d$export$523c0b569236b342;
28
+ var $0d0ee39bbd91096d$export$324f6d0320efec31;
29
+ $0d0ee39bbd91096d$export$a7db06668cad9adb = `I-a59W_content`;
30
+ $0d0ee39bbd91096d$export$10db337eeb771240 = `I-a59W_data-container`;
31
+ $0d0ee39bbd91096d$export$bb66d3d95d8b38e6 = `I-a59W_data-field`;
32
+ $0d0ee39bbd91096d$export$97691fbb80847c19 = `I-a59W_flex`;
33
+ $0d0ee39bbd91096d$export$18c8ad048e32c7d5 = `I-a59W_inline`;
34
+ $0d0ee39bbd91096d$export$1237798dc640739a = `I-a59W_label`;
35
+ $0d0ee39bbd91096d$export$1d02494d67adba65 = `I-a59W_parenthetical`;
36
+ $0d0ee39bbd91096d$export$5aee1a5bd9743d8f = `I-a59W_sep`;
37
+ $0d0ee39bbd91096d$export$1fccac577aeb7179 = `I-a59W_tag-field`;
38
+ $0d0ee39bbd91096d$export$523c0b569236b342 = `I-a59W_unit`;
39
+ $0d0ee39bbd91096d$export$324f6d0320efec31 = `I-a59W_value-container`;
40
+
41
+
42
+ export {$0d0ee39bbd91096d$exports as default};
43
+ //# sourceMappingURL=column-views.8e7b01d2.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AAVA,4CAA4B,CAAC,cAAc,CAAC;AAC5C,4CAAmC,CAAC,qBAAqB,CAAC;AAC1D,4CAA+B,CAAC,iBAAiB,CAAC;AAClD,4CAAyB,CAAC,WAAW,CAAC;AACtC,4CAA2B,CAAC,aAAa,CAAC;AAC1C,4CAA0B,CAAC,YAAY,CAAC;AACxC,4CAAkC,CAAC,oBAAoB,CAAC;AACxD,4CAAwB,CAAC,UAAU,CAAC;AACpC,4CAA8B,CAAC,gBAAgB,CAAC;AAChD,4CAAyB,CAAC,WAAW,CAAC;AACtC,4CAAoC,CAAC,sBAAsB,CAAC","sources":["packages/data-components/src/components/unit-details/base.module.sass"],"sourcesContent":[".data-field\n margin: 0.5em 0 1em\n &.flex\n display: flex\n flex-flow: row wrap\n align-items: baseline\n justify-content: end\n gap: 0.5em\n .data-container\n text-align: right\n &.inline\n .label\n display: inline-block\n\n .label\n //font-size: 0.9em\n padding-right: 1em\n font-weight: bold\n flex-grow: 1\n display: block\n color: var(--secondary-color)\n text-align: left\n .value-container\n text-align: right\n //font-size: 0.9em\n //display: inline-block\n break-inside: avoid\n\n &.tag-field\n &>*\n margin: 0\n display: block\n\n.unit\n color: var(--text-subtle-color)\n font-style: var(--text-font-style)\n\n.parenthetical\n .content\n color: var(--parenthetical-text-color, var(--text-subtle-color))\n .sep\n color: var(--parenthetical-sep-color, var(--secondary-color))\n .unit\n color: var(--secondary-color)\n"],"names":[],"version":3,"file":"column-views.8e7b01d2.js.map"}
@@ -0,0 +1,128 @@
1
+ import {TagField as $ed781bff07b3e4da$export$c99859d779d8150a} from "./column-views.8a1db14e.js";
2
+ import {Tag as $e969cdc1e0421ee2$export$3288d34c523a1192} from "./column-views.68afac63.js";
3
+ import $3z0k3$macrostrathyper from "@macrostrat/hyper";
4
+ import {useMemo as $3z0k3$useMemo} from "react";
5
+ import $3z0k3$classnames from "classnames";
6
+
7
+
8
+
9
+
10
+
11
+
12
+ var $54f22e1233427546$export$7bf80657e8a4330e = /*#__PURE__*/ function(LithologyTagFeature) {
13
+ LithologyTagFeature["Proportion"] = "proportion";
14
+ LithologyTagFeature["Attributes"] = "attributes";
15
+ return LithologyTagFeature;
16
+ }({});
17
+ function $54f22e1233427546$export$17064b7382e320b2({ data: data, color: color, features: features, onClick: _onClick, ...rest }) {
18
+ let proportion = null;
19
+ const showProportion = features?.has("proportion") ?? false;
20
+ const showAttributes = features?.has("attributes") ?? false;
21
+ if (data.prop != null && showProportion) {
22
+ const prop = Math.round(data.prop * 100);
23
+ proportion = (0, $3z0k3$macrostrathyper)("span.lithology-proportion", `${prop}%`);
24
+ }
25
+ let atts = null;
26
+ if (showAttributes && data.atts != null && data.atts.length > 0) atts = (0, $3z0k3$macrostrathyper)($54f22e1233427546$var$List, {
27
+ className: "lithology-attributes",
28
+ items: data.atts.map((att)=>(0, $3z0k3$macrostrathyper)("span.lithology-attribute", {
29
+ key: att
30
+ }, att)),
31
+ commaSeparated: true
32
+ });
33
+ const onClick = (0, $3z0k3$useMemo)(()=>{
34
+ if (_onClick == null) return null;
35
+ return (event)=>{
36
+ _onClick(event, data);
37
+ };
38
+ }, [
39
+ data,
40
+ _onClick
41
+ ]);
42
+ return (0, $3z0k3$macrostrathyper)((0, $e969cdc1e0421ee2$export$3288d34c523a1192), {
43
+ prefix: atts,
44
+ details: proportion,
45
+ name: data.name,
46
+ className: (0, $3z0k3$classnames)({
47
+ clickable: onClick != null
48
+ }, "lithology-tag"),
49
+ color: color ?? data.color,
50
+ onClick: onClick,
51
+ ...rest
52
+ });
53
+ }
54
+ function $54f22e1233427546$var$List({ items: items, commaSeparated: commaSeparated = false, lastSep: lastSep = null, className: className }) {
55
+ let items1 = items;
56
+ if (commaSeparated) items1 = $54f22e1233427546$var$separateElementsWithCommas(items1, lastSep);
57
+ return (0, $3z0k3$macrostrathyper)("span.list", {
58
+ className: className
59
+ }, items1);
60
+ }
61
+ function $54f22e1233427546$var$separateElementsWithCommas(children, lastSep = null) {
62
+ return children.reduce((acc, el, i)=>{
63
+ if (i > 0) {
64
+ let sep = ", ";
65
+ let className = null;
66
+ if (i === children.length - 1 && lastSep != null) {
67
+ sep += lastSep + " ";
68
+ className = "last-sep";
69
+ }
70
+ acc.push((0, $3z0k3$macrostrathyper)("span.list-sep", {
71
+ className: className
72
+ }, sep));
73
+ }
74
+ acc.push(el);
75
+ return acc;
76
+ }, []);
77
+ }
78
+ function $54f22e1233427546$export$74b2d34b17326341({ label: label, lithologies: lithologies, features: features = new Set([
79
+ "proportion",
80
+ "attributes"
81
+ ]), onClickItem: onClickItem, getItemHref: getItemHref, className: className }) {
82
+ const sortedLiths = (0, $3z0k3$useMemo)(()=>{
83
+ const l1 = [
84
+ ...lithologies
85
+ ];
86
+ l1.sort($54f22e1233427546$var$lithologyComparison);
87
+ return l1;
88
+ }, [
89
+ lithologies
90
+ ]);
91
+ return (0, $3z0k3$macrostrathyper)((0, $ed781bff07b3e4da$export$c99859d779d8150a), {
92
+ label: label,
93
+ className: className
94
+ }, sortedLiths.map((lith)=>{
95
+ let l1 = {
96
+ ...lith
97
+ };
98
+ if (l1.prop == 0) l1.prop = null;
99
+ return (0, $3z0k3$macrostrathyper)($54f22e1233427546$export$17064b7382e320b2, {
100
+ data: l1,
101
+ features: features,
102
+ onClick: onClickItem,
103
+ href: getItemHref?.(lith)
104
+ });
105
+ }));
106
+ }
107
+ function $54f22e1233427546$var$lithologyComparison(a, b) {
108
+ let dx = (b.prop ?? 0) - (a.prop ?? 0);
109
+ if (dx == 0) dx = (b.atts?.length ?? 0) - (a.atts?.length ?? 0);
110
+ if (dx == 0) return a.name.localeCompare(b.name);
111
+ return dx;
112
+ }
113
+ function $54f22e1233427546$export$7370a955ae18866e({ environments: environments, onClickItem: onClickItem, getItemHref: getItemHref, label: label = "Environments" }) {
114
+ return (0, $3z0k3$macrostrathyper)((0, $ed781bff07b3e4da$export$c99859d779d8150a), {
115
+ label: label,
116
+ className: "environments-list"
117
+ }, environments.map((env)=>{
118
+ return (0, $3z0k3$macrostrathyper)($54f22e1233427546$export$17064b7382e320b2, {
119
+ data: env,
120
+ onClick: onClickItem,
121
+ href: getItemHref?.(env)
122
+ });
123
+ }));
124
+ }
125
+
126
+
127
+ export {$54f22e1233427546$export$7bf80657e8a4330e as LithologyTagFeature, $54f22e1233427546$export$17064b7382e320b2 as LithologyTag, $54f22e1233427546$export$74b2d34b17326341 as LithologyList, $54f22e1233427546$export$7370a955ae18866e as EnvironmentsList};
128
+ //# sourceMappingURL=column-views.8f108485.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/data-components/src/components/unit-details/lithology-tag.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { TagField } from \"./base\";\nimport { BaseTagProps, Tag, TagSize } from \"./tag\";\nimport { useMemo } from \"react\";\nimport { Lithology } from \"@macrostrat/api-types\";\nimport classNames from \"classnames\";\n\ninterface LithologyTagProps extends Omit<BaseTagProps, \"onClick\" | \"name\"> {\n data: Lithology;\n className?: string;\n expandOnHover?: boolean;\n size?: TagSize;\n features?: Set<LithologyTagFeature>;\n onClick?: (event: any, data: Lithology) => void;\n}\n\nexport enum LithologyTagFeature {\n Proportion = \"proportion\",\n Attributes = \"attributes\",\n}\n\nexport function LithologyTag({\n data,\n color,\n features,\n onClick: _onClick,\n ...rest\n}: LithologyTagProps) {\n let proportion = null;\n const showProportion = features?.has(LithologyTagFeature.Proportion) ?? false;\n const showAttributes = features?.has(LithologyTagFeature.Attributes) ?? false;\n if (data.prop != null && showProportion) {\n const prop = Math.round(data.prop * 100);\n proportion = h(\"span.lithology-proportion\", `${prop}%`);\n }\n\n let atts = null;\n if (showAttributes && data.atts != null && data.atts.length > 0) {\n atts = h(List, {\n className: \"lithology-attributes\",\n items: data.atts.map((att) =>\n h(\"span.lithology-attribute\", { key: att }, att),\n ),\n commaSeparated: true,\n });\n }\n\n const onClick = useMemo(() => {\n if (_onClick == null) return null;\n return (event: MouseEvent) => {\n _onClick(event, data);\n };\n }, [data, _onClick]);\n\n return h(Tag, {\n prefix: atts,\n details: proportion,\n name: data.name,\n className: classNames({ clickable: onClick != null }, \"lithology-tag\"),\n color: color ?? data.color,\n onClick,\n ...rest,\n });\n}\n\nfunction List({ items, commaSeparated = false, lastSep = null, className }) {\n let items1 = items;\n if (commaSeparated) {\n items1 = separateElementsWithCommas(items1, lastSep);\n }\n return h(\"span.list\", { className }, items1);\n}\n\nfunction separateElementsWithCommas(children: any[], lastSep = null) {\n return children.reduce((acc, el, i) => {\n if (i > 0) {\n let sep = \", \";\n let className = null;\n if (i === children.length - 1 && lastSep != null) {\n sep += lastSep + \" \";\n className = \"last-sep\";\n }\n acc.push(h(\"span.list-sep\", { className }, sep));\n }\n acc.push(el);\n return acc;\n }, []);\n}\n\nexport function LithologyList({\n label,\n lithologies,\n features = new Set([\n LithologyTagFeature.Proportion,\n LithologyTagFeature.Attributes,\n ]),\n onClickItem,\n getItemHref,\n className,\n}: {\n label?: string;\n lithologies: any[];\n features?: Set<LithologyTagFeature>;\n // Optional function to handle click events on each item\n onClickItem?: (event: MouseEvent, data: Lithology) => void;\n // Optional function to get a link location for each item\n getItemHref?: (data: Lithology) => string | null | undefined;\n className?: string;\n}) {\n const sortedLiths = useMemo(() => {\n const l1 = [...lithologies];\n l1.sort(lithologyComparison);\n return l1;\n }, [lithologies]);\n\n return h(\n TagField,\n { label, className },\n sortedLiths.map((lith) => {\n let l1 = { ...lith };\n if (l1.prop == 0) {\n l1.prop = null;\n }\n\n return h(LithologyTag, {\n data: l1,\n features,\n onClick: onClickItem,\n href: getItemHref?.(lith),\n });\n }),\n );\n}\n\nfunction lithologyComparison(a, b) {\n let dx = (b.prop ?? 0) - (a.prop ?? 0);\n if (dx == 0) {\n dx = (b.atts?.length ?? 0) - (a.atts?.length ?? 0);\n }\n if (dx == 0) {\n return a.name.localeCompare(b.name);\n }\n return dx;\n}\n\nexport function EnvironmentsList({\n environments,\n onClickItem,\n getItemHref,\n label = \"Environments\",\n}) {\n return h(\n TagField,\n { label, className: \"environments-list\" },\n environments.map((env: any) => {\n return h(LithologyTag, {\n data: env,\n onClick: onClickItem,\n href: getItemHref?.(env),\n });\n }),\n );\n}\n"],"names":[],"version":3,"file":"column-views.8f108485.js.map"}
@@ -0,0 +1,57 @@
1
+ import {LocationBasicInfo as $e915d4119f4f3a7c$export$bee34b546af763f0} from "./column-views.88984b34.js";
2
+ import $59tLV$macrostrathyper from "@macrostrat/hyper";
3
+
4
+
5
+
6
+ function $037f1983e2bad11c$export$858159b4482ffef5(props) {
7
+ const { checkin: checkin, rockdBaseURL: rockdBaseURL = "https://rockd.org" } = props;
8
+ const { person: person, photo: photo } = checkin;
9
+ let imageURL = null;
10
+ if (photo != null) imageURL = rockdBaseURL + `/api/v1/protected/image/${person}/banner/${photo}`;
11
+ const { title: title, description: description } = $037f1983e2bad11c$export$aeca4f1b554dd6f6(checkin.notes);
12
+ return (0, $59tLV$macrostrathyper)((0, $e915d4119f4f3a7c$export$bee34b546af763f0), {
13
+ title: title,
14
+ year: checkin.year.toString(),
15
+ description: description,
16
+ imageURL: imageURL,
17
+ link: `${rockdBaseURL}/checkin/${checkin.id}`,
18
+ rating: checkin.rating,
19
+ className: "checkin"
20
+ });
21
+ }
22
+ function $037f1983e2bad11c$export$aeca4f1b554dd6f6(notes) {
23
+ // Title and description management taken from the Rockd app
24
+ /** We have a pretty awkward approach to checkin 'notes' that encompasses the
25
+ * concept of title and description. Here we attempt to regularize peoples'
26
+ * notes into a more readable form, as preparation for doing so in a more
27
+ * structured way in the future (perhaps using a database update?).
28
+ */ let title = notes;
29
+ let description = null;
30
+ if (title.length > 60) {
31
+ // See if we can shorten the title
32
+ // We'll try to find the first punctuation mark (.,;:), and cut off there
33
+ let punctuationIndex = title.search(/[.,;:]/);
34
+ if (punctuationIndex > 0) {
35
+ title = $037f1983e2bad11c$var$strip(title.slice(0, punctuationIndex));
36
+ // We leave the actual punctuation mark to the imagination
37
+ description = $037f1983e2bad11c$var$strip(notes.slice(punctuationIndex + 1));
38
+ }
39
+ }
40
+ return {
41
+ title: $037f1983e2bad11c$var$sentenceCase(title),
42
+ description: $037f1983e2bad11c$var$sentenceCase(description)
43
+ };
44
+ }
45
+ function $037f1983e2bad11c$var$strip(input) {
46
+ // Strip leading and trailing whitespace
47
+ return input.replace(/^\s+|\s+$/g, "");
48
+ }
49
+ function $037f1983e2bad11c$var$sentenceCase(input) {
50
+ // Capitalize the first letter of a string
51
+ if (input == null) return null;
52
+ return input.charAt(0).toUpperCase() + input.slice(1);
53
+ }
54
+
55
+
56
+ export {$037f1983e2bad11c$export$858159b4482ffef5 as CheckinListing, $037f1983e2bad11c$export$aeca4f1b554dd6f6 as synthesizeTitleAndDescription};
57
+ //# sourceMappingURL=column-views.904b9365.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;AAiBO,SAAS,0CAAe,KAA0B;IACvD,MAAM,WAAE,OAAO,gBAAE,eAAe,qBAAqB,GAAG;IACxD,MAAM,UAAE,MAAM,SAAE,KAAK,EAAE,GAAG;IAE1B,IAAI,WAAW;IACf,IAAI,SAAS,MACX,WACE,eAAe,CAAC,wBAAwB,EAAE,OAAO,QAAQ,EAAE,OAAO;IAGtE,MAAM,SAAE,KAAK,eAAE,WAAW,EAAE,GAAG,0CAA8B,QAAQ,KAAK;IAE1E,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAgB,GAAG;eAC1B;QACA,MAAM,QAAQ,IAAI,CAAC,QAAQ;qBAC3B;kBACA;QACA,MAAM,GAAG,aAAa,SAAS,EAAE,QAAQ,EAAE,EAAE;QAC7C,QAAQ,QAAQ,MAAM;QACtB,WAAW;IACb;AACF;AAEO,SAAS,0CAA8B,KAAK;IAIjD,4DAA4D;IAC5D;;;;GAIC,GAED,IAAI,QAAQ;IACZ,IAAI,cAAc;IAElB,IAAI,MAAM,MAAM,GAAG,IAAI;QACrB,kCAAkC;QAClC,yEAAyE;QACzE,IAAI,mBAAmB,MAAM,MAAM,CAAC;QACpC,IAAI,mBAAmB,GAAG;YACxB,QAAQ,4BAAM,MAAM,KAAK,CAAC,GAAG;YAC7B,0DAA0D;YAC1D,cAAc,4BAAM,MAAM,KAAK,CAAC,mBAAmB;QACrD;IACF;IACA,OAAO;QACL,OAAO,mCAAa;QACpB,aAAa,mCAAa;IAC5B;AACF;AAEA,SAAS,4BAAM,KAAa;IAC1B,wCAAwC;IACxC,OAAO,MAAM,OAAO,CAAC,cAAc;AACrC;AAEA,SAAS,mCAAa,KAAoB;IACxC,0CAA0C;IAC1C,IAAI,SAAS,MAAM,OAAO;IAC1B,OAAO,MAAM,MAAM,CAAC,GAAG,WAAW,KAAK,MAAM,KAAK,CAAC;AACrD","sources":["packages/data-components/src/field-locations/checkins.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { LocationBasicInfo } from \"./base\";\n\nexport interface CheckinListingData {\n id: number;\n person: number;\n photo: number;\n notes: string;\n rating: number;\n year: number;\n}\n\nexport interface CheckinListingProps {\n checkin: CheckinListingData;\n rockdBaseURL?: string;\n}\n\nexport function CheckinListing(props: CheckinListingProps) {\n const { checkin, rockdBaseURL = \"https://rockd.org\" } = props;\n const { person, photo } = checkin;\n\n let imageURL = null;\n if (photo != null) {\n imageURL =\n rockdBaseURL + `/api/v1/protected/image/${person}/banner/${photo}`;\n }\n\n const { title, description } = synthesizeTitleAndDescription(checkin.notes);\n\n return h(LocationBasicInfo, {\n title,\n year: checkin.year.toString(),\n description,\n imageURL,\n link: `${rockdBaseURL}/checkin/${checkin.id}`,\n rating: checkin.rating,\n className: \"checkin\",\n });\n}\n\nexport function synthesizeTitleAndDescription(notes): {\n title: string | null;\n description: string | null;\n} {\n // Title and description management taken from the Rockd app\n /** We have a pretty awkward approach to checkin 'notes' that encompasses the\n * concept of title and description. Here we attempt to regularize peoples'\n * notes into a more readable form, as preparation for doing so in a more\n * structured way in the future (perhaps using a database update?).\n */\n\n let title = notes;\n let description = null;\n\n if (title.length > 60) {\n // See if we can shorten the title\n // We'll try to find the first punctuation mark (.,;:), and cut off there\n let punctuationIndex = title.search(/[.,;:]/);\n if (punctuationIndex > 0) {\n title = strip(title.slice(0, punctuationIndex));\n // We leave the actual punctuation mark to the imagination\n description = strip(notes.slice(punctuationIndex + 1));\n }\n }\n return {\n title: sentenceCase(title),\n description: sentenceCase(description),\n };\n}\n\nfunction strip(input: string): string {\n // Strip leading and trailing whitespace\n return input.replace(/^\\s+|\\s+$/g, \"\");\n}\n\nfunction sentenceCase(input: string | null): string | null {\n // Capitalize the first letter of a string\n if (input == null) return null;\n return input.charAt(0).toUpperCase() + input.slice(1);\n}\n"],"names":[],"version":3,"file":"column-views.904b9365.js.map"}
@@ -0,0 +1,11 @@
1
+ import {Hierarchy as $d69d268451183cca$export$b3d5c8408bb86dd8, PrevalentTaxa as $0f8616b716a13cdc$export$1cf0bc392c5bec1f, TagSize as $e969cdc1e0421ee2$export$33ced837a1e5dd9, Tag as $e969cdc1e0421ee2$export$3288d34c523a1192, BaseTagList as $e969cdc1e0421ee2$export$253448fb46c13164, ItemList as $e969cdc1e0421ee2$export$168eb813a5fc3f58, LithologyTagFeature as $54f22e1233427546$export$7bf80657e8a4330e, LithologyTag as $54f22e1233427546$export$17064b7382e320b2, LithologyList as $54f22e1233427546$export$74b2d34b17326341, EnvironmentsList as $54f22e1233427546$export$7370a955ae18866e, DataField as $ed781bff07b3e4da$export$6a468d428727394e, Value as $ed781bff07b3e4da$export$4c8d1a57a761ef94, IntervalField as $ed781bff07b3e4da$export$f026c1ff1dfd9085, IntervalTag as $ed781bff07b3e4da$export$cec07089f4042438, TagField as $ed781bff07b3e4da$export$c99859d779d8150a, Parenthetical as $ed781bff07b3e4da$export$bad733389c823cbd} from "./column-views.210514ec.js";
2
+ import {PlotAreaContext as $32f3061f20373cca$export$caa3f53f581a9ba2, usePlotArea as $32f3061f20373cca$export$f1ef8efc9ef6fe0c, DetritalSeries as $32f3061f20373cca$export$67794cfd1e5c82c8, DetritalSpectrumPlot as $32f3061f20373cca$export$c6f0d6e9639e41ac, kernelDensityEstimator as $bcfd78344b9c6927$export$ea0ac076732e930a, kernelEpanechnikov as $32f3061f20373cca$re_export$kernelEpanechnikov, kernelGaussian as $bcfd78344b9c6927$export$71f1fc8906f65514} from "./column-views.2c43c055.js";
3
+ import {CheckinListing as $037f1983e2bad11c$export$858159b4482ffef5, synthesizeTitleAndDescription as $037f1983e2bad11c$export$aeca4f1b554dd6f6, SpotListing as $c3eec7de9bf904cc$export$d4ffce179c2206c0, LocationBasicInfo as $e915d4119f4f3a7c$export$bee34b546af763f0, LocationLink as $e915d4119f4f3a7c$export$97b9ccd15d05bf44, StarRatingComponent as $e915d4119f4f3a7c$export$e6536e97719252ae, RockdWebsiteCheckinList as $500a668ff823147a$export$fc86211e0a3a7d82} from "./column-views.7631c221.js";
4
+
5
+
6
+
7
+
8
+
9
+
10
+ export {$d69d268451183cca$export$b3d5c8408bb86dd8 as Hierarchy, $0f8616b716a13cdc$export$1cf0bc392c5bec1f as PrevalentTaxa, $e969cdc1e0421ee2$export$33ced837a1e5dd9 as TagSize, $e969cdc1e0421ee2$export$3288d34c523a1192 as Tag, $e969cdc1e0421ee2$export$253448fb46c13164 as BaseTagList, $e969cdc1e0421ee2$export$168eb813a5fc3f58 as ItemList, $54f22e1233427546$export$7bf80657e8a4330e as LithologyTagFeature, $54f22e1233427546$export$17064b7382e320b2 as LithologyTag, $54f22e1233427546$export$74b2d34b17326341 as LithologyList, $54f22e1233427546$export$7370a955ae18866e as EnvironmentsList, $ed781bff07b3e4da$export$6a468d428727394e as DataField, $ed781bff07b3e4da$export$4c8d1a57a761ef94 as Value, $ed781bff07b3e4da$export$f026c1ff1dfd9085 as IntervalField, $ed781bff07b3e4da$export$cec07089f4042438 as IntervalTag, $ed781bff07b3e4da$export$c99859d779d8150a as TagField, $ed781bff07b3e4da$export$bad733389c823cbd as Parenthetical, $32f3061f20373cca$export$caa3f53f581a9ba2 as PlotAreaContext, $32f3061f20373cca$export$f1ef8efc9ef6fe0c as usePlotArea, $32f3061f20373cca$export$67794cfd1e5c82c8 as DetritalSeries, $32f3061f20373cca$export$c6f0d6e9639e41ac as DetritalSpectrumPlot, $bcfd78344b9c6927$export$ea0ac076732e930a as kernelDensityEstimator, $32f3061f20373cca$re_export$kernelEpanechnikov as kernelEpanechnikov, $bcfd78344b9c6927$export$71f1fc8906f65514 as kernelGaussian, $037f1983e2bad11c$export$858159b4482ffef5 as CheckinListing, $037f1983e2bad11c$export$aeca4f1b554dd6f6 as synthesizeTitleAndDescription, $c3eec7de9bf904cc$export$d4ffce179c2206c0 as SpotListing, $e915d4119f4f3a7c$export$bee34b546af763f0 as LocationBasicInfo, $e915d4119f4f3a7c$export$97b9ccd15d05bf44 as LocationLink, $e915d4119f4f3a7c$export$e6536e97719252ae as StarRatingComponent, $500a668ff823147a$export$fc86211e0a3a7d82 as RockdWebsiteCheckinList};
11
+ //# sourceMappingURL=column-views.90a863af.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"","sources":["packages/data-components/src/index.ts"],"sourcesContent":["export * from \"./components\";\nexport * from \"./dz-spectrum\";\nexport * from \"./field-locations\";\n"],"names":[],"version":3,"file":"column-views.90a863af.js.map"}
@@ -1,17 +1,17 @@
1
- import $bTsJU$columnmodule1b776e15js from "./column.module.1b776e15.js";
2
- import "./column.module.a67a6b4c.css";
3
- import {UnitComponent as $4c8184c4a7317749$export$48a4cacf2b7a4441} from "./units.5a4fc058.js";
4
- import {UnitKeyboardNavigation as $4d5d1c15f39f6a14$export$70f5ee19650fc7d1, UnitSelectionProvider as $4d5d1c15f39f6a14$export$f19d75b1d4b676a4, useUnitSelectionDispatch as $4d5d1c15f39f6a14$export$77a278d5ca56e309} from "./selection.f5b0297e.js";
5
- import {CompositeTimescale as $7d0f52717c0de7e1$export$db2df5a73a6fbe10, SectionsColumn as $7d0f52717c0de7e1$export$38cb0ab5af8f50d7} from "./section.a34d379a.js";
6
- import {UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./popover.a810b7bc.js";
7
- import {MacrostratColumnDataProvider as $d5074f164411387e$export$7fec7bd80ff9c10e, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./store.c4d7a8a4.js";
8
- import {CompositeAgeAxis as $43794af7643cdf40$export$40b6b0e4520eeb34} from "./age-axis.4a8cf5e6.js";
9
- import {usePreparedColumnUnits as $76e92a964ee11b97$export$206a0cb85295e433} from "./prepare-units.6c890a96.js";
1
+ import $bTsJU$columnviews4637f4cejs from "./column-views.4637f4ce.js";
2
+ import "./column-views.217078ab.css";
3
+ import {UnitComponent as $4c8184c4a7317749$export$48a4cacf2b7a4441} from "./column-views.2ca34210.js";
4
+ import {UnitKeyboardNavigation as $4d5d1c15f39f6a14$export$70f5ee19650fc7d1, UnitSelectionProvider as $4d5d1c15f39f6a14$export$f19d75b1d4b676a4, useUnitSelectionDispatch as $4d5d1c15f39f6a14$export$77a278d5ca56e309} from "./column-views.1af9761e.js";
5
+ import {UnitSelectionPopover as $a9bcb536274d1bf9$export$db1115efab13710d} from "./column-views.52b03330.js";
6
+ import {MacrostratColumnDataProvider as $d5074f164411387e$export$7fec7bd80ff9c10e, useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.1e055ed5.js";
7
+ import {CompositeTimescale as $7d0f52717c0de7e1$export$db2df5a73a6fbe10, SectionsColumn as $7d0f52717c0de7e1$export$38cb0ab5af8f50d7} from "./column-views.bb46641f.js";
8
+ import {CompositeAgeAxis as $43794af7643cdf40$export$40b6b0e4520eeb34} from "./column-views.8833218c.js";
9
+ import {usePreparedColumnUnits as $76e92a964ee11b97$export$206a0cb85295e433} from "./column-views.c71c321c.js";
10
10
  import {ColumnAxisType as $bTsJU$ColumnAxisType} from "@macrostrat/column-components";
11
11
  import {hyperStyled as $bTsJU$hyperStyled} from "@macrostrat/hyper";
12
12
  import {useDarkMode as $bTsJU$useDarkMode} from "@macrostrat/ui-components";
13
13
  import $bTsJU$classnames from "classnames";
14
- import {useRef as $bTsJU$useRef} from "react";
14
+ import {useRef as $bTsJU$useRef, useCallback as $bTsJU$useCallback} from "react";
15
15
  import {NonIdealState as $bTsJU$NonIdealState} from "@blueprintjs/core";
16
16
 
17
17
 
@@ -31,9 +31,9 @@ function $parcel$interopDefault(a) {
31
31
 
32
32
 
33
33
 
34
- const $2118f0266dc7e955$var$h = (0, $bTsJU$hyperStyled)((0, ($parcel$interopDefault($bTsJU$columnmodule1b776e15js))));
34
+ const $2118f0266dc7e955$var$h = (0, $bTsJU$hyperStyled)((0, ($parcel$interopDefault($bTsJU$columnviews4637f4cejs))));
35
35
  function $2118f0266dc7e955$export$816b5d811295e6bc(props) {
36
- const { showUnitPopover: showUnitPopover = false, keyboardNavigation: keyboardNavigation = false, mergeSections: mergeSections, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit, children: children, units: rawUnits, axisType: axisType = (0, $bTsJU$ColumnAxisType).AGE, t_age: t_age, b_age: b_age, unconformityHeight: unconformityHeight = 30, targetUnitHeight: targetUnitHeight = 20, pixelScale: pixelScale, minPixelScale: minPixelScale = 0.2, minSectionHeight: minSectionHeight = 50, collapseSmallUnconformities: collapseSmallUnconformities = true, ...rest } = props;
36
+ const { showUnitPopover: showUnitPopover = false, keyboardNavigation: keyboardNavigation = false, mergeSections: mergeSections, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit, children: children, units: rawUnits, axisType: axisType = (0, $bTsJU$ColumnAxisType).AGE, t_age: t_age, b_age: b_age, unconformityHeight: unconformityHeight = 30, targetUnitHeight: targetUnitHeight = 20, pixelScale: pixelScale, minPixelScale: minPixelScale = 0.2, minSectionHeight: minSectionHeight = 50, collapseSmallUnconformities: collapseSmallUnconformities = true, allowUnitSelection: allowUnitSelection, ...rest } = props;
37
37
  const ref = (0, $bTsJU$useRef)();
38
38
  // Selected item position
39
39
  const { sections: sections, units: units, totalHeight: totalHeight } = (0, $76e92a964ee11b97$export$206a0cb85295e433)(rawUnits, {
@@ -53,17 +53,7 @@ function $2118f0266dc7e955$export$816b5d811295e6bc(props) {
53
53
  description: "No sections found in this column.",
54
54
  icon: "warning-sign"
55
55
  }));
56
- return $2118f0266dc7e955$var$h((0, $d5074f164411387e$export$7fec7bd80ff9c10e), {
57
- units: units,
58
- sections: sections,
59
- totalHeight: totalHeight,
60
- axisType: axisType
61
- }, $2118f0266dc7e955$var$h((0, $4d5d1c15f39f6a14$export$f19d75b1d4b676a4), {
62
- columnRef: ref,
63
- onUnitSelected: onUnitSelected,
64
- selectedUnit: selectedUnit,
65
- units: units
66
- }, $2118f0266dc7e955$var$h($2118f0266dc7e955$var$ColumnInner, {
56
+ let main = $2118f0266dc7e955$var$h($2118f0266dc7e955$var$ColumnInner, {
67
57
  columnRef: ref,
68
58
  ...rest
69
59
  }, [
@@ -72,24 +62,37 @@ function $2118f0266dc7e955$export$816b5d811295e6bc(props) {
72
62
  $2118f0266dc7e955$var$h.if(keyboardNavigation)((0, $4d5d1c15f39f6a14$export$70f5ee19650fc7d1), {
73
63
  units: units
74
64
  })
75
- ])));
65
+ ]);
66
+ /* By default, unit selection is disabled. However, if any related props are passed,
67
+ we enable it.
68
+ */ let _allowUnitSelection = allowUnitSelection ?? false;
69
+ if (showUnitPopover || selectedUnit != null || onUnitSelected != null) _allowUnitSelection = true;
70
+ if (_allowUnitSelection) main = $2118f0266dc7e955$var$h((0, $4d5d1c15f39f6a14$export$f19d75b1d4b676a4), {
71
+ columnRef: ref,
72
+ onUnitSelected: onUnitSelected,
73
+ selectedUnit: selectedUnit,
74
+ units: units
75
+ }, main);
76
+ return $2118f0266dc7e955$var$h((0, $d5074f164411387e$export$7fec7bd80ff9c10e), {
77
+ units: units,
78
+ sections: sections,
79
+ totalHeight: totalHeight,
80
+ axisType: axisType
81
+ }, main);
76
82
  }
77
83
  function $2118f0266dc7e955$var$ColumnInner(props) {
78
- const { unitComponent: unitComponent = (0, $4c8184c4a7317749$export$48a4cacf2b7a4441), unconformityLabels: unconformityLabels = true, showLabels: showLabels = true, width: _width = 300, columnWidth: _columnWidth = 150, showLabelColumn: _showLabelColumn = true, className: className, columnRef: columnRef, clipUnits: clipUnits = false, children: children, showTimescale: showTimescale, timescaleLevels: timescaleLevels, maxInternalColumns: maxInternalColumns } = props;
84
+ const { unitComponent: unitComponent = (0, $4c8184c4a7317749$export$48a4cacf2b7a4441), unconformityLabels: unconformityLabels = true, showLabels: showLabels = true, width: _width = 300, columnWidth: _columnWidth = 150, showLabelColumn: _showLabelColumn = true, className: className, columnRef: columnRef, clipUnits: clipUnits = false, children: children, showTimescale: showTimescale, timescaleLevels: timescaleLevels, maxInternalColumns: maxInternalColumns, onMouseOver: onMouseOver } = props;
79
85
  const { axisType: axisType } = (0, $d5074f164411387e$export$f8509b7cce386c7d)();
80
- const dispatch = (0, $4d5d1c15f39f6a14$export$77a278d5ca56e309)();
81
86
  let width = _width;
82
87
  let columnWidth = _columnWidth;
83
88
  if (columnWidth > width) columnWidth = width;
84
89
  let showLabelColumn = _showLabelColumn;
85
90
  if (columnWidth > width - 10) showLabelColumn = false;
86
- let _showTimescale = showTimescale;
87
- if (timescaleLevels !== null) _showTimescale = true;
91
+ let _showTimescale = showTimescale ?? true;
92
+ if (timescaleLevels != null) _showTimescale = true;
88
93
  _showTimescale = axisType == (0, $bTsJU$ColumnAxisType).AGE && _showTimescale;
89
94
  return $2118f0266dc7e955$var$h($2118f0266dc7e955$export$2194471aa3d52446, {
90
- onClick (evt) {
91
- dispatch?.(null, null, evt);
92
- },
95
+ ...$2118f0266dc7e955$var$useMouseEventHandlers(onMouseOver),
93
96
  className: className
94
97
  }, $2118f0266dc7e955$var$h("div.column", {
95
98
  ref: columnRef
@@ -111,6 +114,40 @@ function $2118f0266dc7e955$var$ColumnInner(props) {
111
114
  children
112
115
  ]));
113
116
  }
117
+ function $2118f0266dc7e955$var$useMouseEventHandlers(_onMouseOver = null) {
118
+ /** Click event handler */ // Click handler for unit selection
119
+ const dispatch = (0, $4d5d1c15f39f6a14$export$77a278d5ca56e309)();
120
+ const onClick = (0, $bTsJU$useCallback)((evt)=>{
121
+ dispatch?.(null, null, evt);
122
+ }, [
123
+ dispatch
124
+ ]);
125
+ /** Hover event handlers */ const scale = (0, $d5074f164411387e$export$a7fc62995ec4f76)();
126
+ const onMouseOver = (0, $bTsJU$useCallback)((evt)=>{
127
+ const height = scale.invert(evt.clientY - evt.currentTarget.getBoundingClientRect().top);
128
+ _onMouseOver?.(null, height, evt);
129
+ }, [
130
+ scale,
131
+ _onMouseOver
132
+ ]);
133
+ const onMouseOut = (0, $bTsJU$useCallback)(()=>{
134
+ _onMouseOver?.(null, null, null);
135
+ }, [
136
+ _onMouseOver
137
+ ]);
138
+ if (_onMouseOver == null) return {
139
+ onClick: onClick,
140
+ onMouseOver: undefined,
141
+ onMouseMove: undefined,
142
+ onMouseOut: undefined
143
+ };
144
+ return {
145
+ onMouseOver: onMouseOver,
146
+ onMouseMove: onMouseOver,
147
+ onMouseOut: onMouseOut,
148
+ onClick: onClick
149
+ };
150
+ }
114
151
  function $2118f0266dc7e955$export$2194471aa3d52446(props) {
115
152
  const { className: className, ...rest } = props;
116
153
  const darkMode = (0, $bTsJU$useDarkMode)();
@@ -124,4 +161,4 @@ function $2118f0266dc7e955$export$2194471aa3d52446(props) {
124
161
 
125
162
 
126
163
  export {$2118f0266dc7e955$export$816b5d811295e6bc as Column, $2118f0266dc7e955$export$2194471aa3d52446 as ColumnContainer};
127
- //# sourceMappingURL=column.01d68dd8.js.map
164
+ //# sourceMappingURL=column-views.91385fdc.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/column-views/src/column.ts"],"sourcesContent":["import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { hyperStyled } from \"@macrostrat/hyper\";\nimport { useDarkMode } from \"@macrostrat/ui-components\";\nimport classNames from \"classnames\";\nimport { RefObject, useRef, HTMLAttributes, useCallback } from \"react\";\nimport styles from \"./column.module.sass\";\nimport {\n UnitSelectionProvider,\n UnitComponent,\n UnitKeyboardNavigation,\n useUnitSelectionDispatch,\n} from \"./units\";\n\nimport { ColumnHeightScaleOptions } from \"./prepare-units/composite-scale\";\nimport { UnitSelectionPopover } from \"./unit-details\";\nimport {\n MacrostratColumnDataProvider,\n useCompositeScale,\n useMacrostratColumnData,\n} from \"./data-provider\";\nimport {\n SectionSharedProps,\n CompositeTimescale,\n SectionsColumn,\n} from \"./section\";\nimport { CompositeAgeAxis } from \"./age-axis\";\nimport { MergeSectionsMode, usePreparedColumnUnits } from \"./prepare-units\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { NonIdealState } from \"@blueprintjs/core\";\n\nconst h = hyperStyled(styles);\n\ninterface BaseColumnProps extends SectionSharedProps {\n className?: string;\n showLabelColumn?: boolean;\n keyboardNavigation?: boolean;\n showLabels?: boolean;\n maxInternalColumns?: number;\n // Timescale properties\n showTimescale?: boolean;\n timescaleLevels?: number | [number, number];\n onMouseOver?: (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n ) => void;\n}\n\nexport interface ColumnProps extends BaseColumnProps, ColumnHeightScaleOptions {\n // Macrostrat units\n units: UnitLong[];\n t_age?: number;\n b_age?: number;\n mergeSections?: MergeSectionsMode;\n showUnitPopover?: boolean;\n allowUnitSelection?: boolean;\n selectedUnit?: number | null;\n onUnitSelected?: (unitID: number | null, unit: any) => void;\n // Unconformity height in pixels\n unconformityHeight?: number;\n}\n\nexport function Column(props: ColumnProps) {\n const {\n showUnitPopover = false,\n keyboardNavigation = false,\n mergeSections,\n onUnitSelected,\n selectedUnit,\n children,\n units: rawUnits,\n axisType = ColumnAxisType.AGE,\n t_age,\n b_age,\n unconformityHeight = 30,\n targetUnitHeight = 20,\n pixelScale,\n minPixelScale = 0.2,\n minSectionHeight = 50,\n collapseSmallUnconformities = true,\n allowUnitSelection,\n ...rest\n } = props;\n const ref = useRef<HTMLElement>();\n // Selected item position\n\n const { sections, units, totalHeight } = usePreparedColumnUnits(rawUnits, {\n axisType,\n t_age,\n b_age,\n mergeSections,\n targetUnitHeight,\n unconformityHeight,\n pixelScale,\n minPixelScale,\n minSectionHeight,\n collapseSmallUnconformities,\n });\n\n if (sections.length === 0) {\n return h(\n \"div.column-container.empty\",\n h(NonIdealState, {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\",\n }),\n );\n }\n\n let main: any = h(ColumnInner, { columnRef: ref, ...rest }, [\n children,\n h.if(showUnitPopover)(UnitSelectionPopover),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),\n ]);\n\n /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */\n let _allowUnitSelection = allowUnitSelection ?? false;\n if (showUnitPopover || selectedUnit != null || onUnitSelected != null) {\n _allowUnitSelection = true;\n }\n\n if (_allowUnitSelection) {\n main = h(\n UnitSelectionProvider,\n {\n columnRef: ref,\n onUnitSelected,\n selectedUnit,\n units,\n },\n main,\n );\n }\n\n return h(\n MacrostratColumnDataProvider,\n { units, sections, totalHeight, axisType },\n main,\n );\n}\n\ninterface ColumnInnerProps extends BaseColumnProps {\n columnRef: RefObject<HTMLElement>;\n}\n\nfunction ColumnInner(props: ColumnInnerProps) {\n const {\n unitComponent = UnitComponent,\n unconformityLabels = true,\n showLabels = true,\n width: _width = 300,\n columnWidth: _columnWidth = 150,\n showLabelColumn: _showLabelColumn = true,\n className,\n columnRef,\n clipUnits = false,\n children,\n showTimescale,\n timescaleLevels,\n maxInternalColumns,\n onMouseOver,\n } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) {\n columnWidth = width;\n }\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) {\n showLabelColumn = false;\n }\n\n let _showTimescale = showTimescale ?? true;\n if (timescaleLevels != null) {\n _showTimescale = true;\n }\n _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;\n\n return h(\n ColumnContainer,\n {\n ...useMouseEventHandlers(onMouseOver),\n className,\n },\n h(\"div.column\", { ref: columnRef }, [\n h(CompositeAgeAxis),\n h.if(_showTimescale)(CompositeTimescale, { levels: timescaleLevels }),\n h(SectionsColumn, {\n unitComponent,\n showLabels,\n width,\n columnWidth,\n showLabelColumn,\n clipUnits,\n unconformityLabels,\n maxInternalColumns,\n }),\n children,\n ]),\n );\n}\n\ntype ColumnMouseOverHandler = (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n) => void;\n\nfunction useMouseEventHandlers(\n _onMouseOver: ColumnMouseOverHandler | null = null,\n) {\n /** Click event handler */\n\n // Click handler for unit selection\n const dispatch = useUnitSelectionDispatch();\n const onClick = useCallback(\n (evt) => {\n dispatch?.(null, null, evt as any);\n },\n [dispatch],\n );\n\n /** Hover event handlers */\n const scale = useCompositeScale();\n\n const onMouseOver = useCallback(\n (evt) => {\n const height = scale.invert(\n evt.clientY - evt.currentTarget.getBoundingClientRect().top,\n );\n _onMouseOver?.(null, height, evt);\n },\n [scale, _onMouseOver],\n );\n\n const onMouseOut = useCallback(() => {\n _onMouseOver?.(null, null, null);\n }, [_onMouseOver]);\n\n if (_onMouseOver == null) {\n return {\n onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined,\n };\n }\n\n return { onMouseOver, onMouseMove: onMouseOver, onMouseOut, onClick };\n}\n\nexport interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\nexport function ColumnContainer(props: ColumnContainerProps) {\n const { className, ...rest } = props;\n const darkMode = useDarkMode();\n\n return h(\"div.column-container\", {\n className: classNames(className, {\n \"dark-mode\": darkMode?.isEnabled ?? false,\n }),\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.91385fdc.js.map"}
@@ -1,6 +1,8 @@
1
- import {createUnitSorter as $b6657fba8924a702$export$ab14c04795685c55, ensureArray as $b6657fba8924a702$export$d0c8ecbd4ed8940c, ensureRealFloat as $b6657fba8924a702$export$97de5b0a6b4e4dac, getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a, unitsOverlap as $b6657fba8924a702$export$f1a15f539858307} from "./utils.d7a43a2a.js";
1
+ import {createUnitSorter as $b6657fba8924a702$export$ab14c04795685c55, ensureArray as $b6657fba8924a702$export$d0c8ecbd4ed8940c, ensureRealFloat as $b6657fba8924a702$export$97de5b0a6b4e4dac, getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a, unitsOverlap as $b6657fba8924a702$export$f1a15f539858307} from "./column-views.39657bbf.js";
2
2
  import {group as $ailTa$group} from "d3-array";
3
3
  import {ColumnAxisType as $ailTa$ColumnAxisType} from "@macrostrat/column-components";
4
+ import {compareAgeRanges as $ailTa$compareAgeRanges} from "@macrostrat/stratigraphy-utils";
5
+
4
6
 
5
7
 
6
8
 
@@ -26,7 +28,12 @@ function $663a0cdd08b02256$export$55543e159517d62d(section, axisType = (0, $ailT
26
28
  if (t_pos < section.t_age) d.t_clip_pos = section.t_age;
27
29
  }
28
30
  }
29
- if (axisType != (0, $ailTa$ColumnAxisType).AGE) return $663a0cdd08b02256$var$preprocessSectionUnits(divisions, axisType);
31
+ // TODO: we may want to re-enable this simpler processing for sections,
32
+ // but we want it to be less universally applied.
33
+ // if (axisType != ColumnAxisType.AGE) {
34
+ // return preprocessSectionUnits(divisions, axisType);
35
+ // }
36
+ //
30
37
  return divisions;
31
38
  }
32
39
  function $663a0cdd08b02256$var$extendDivision(unit, i, divisions, axisType = (0, $ailTa$ColumnAxisType).AGE) {
@@ -47,7 +54,10 @@ function $663a0cdd08b02256$var$extendDivision(unit, i, divisions, axisType = (0,
47
54
  };
48
55
  }
49
56
  function $663a0cdd08b02256$export$dfbd00399d639b4c(units, axisType = (0, $ailTa$ColumnAxisType).AGE) {
50
- let groups = Array.from((0, $ailTa$group)(units, (d)=>d.section_id));
57
+ if (axisType != (0, $ailTa$ColumnAxisType).AGE) return $663a0cdd08b02256$var$groupUnitsIntoSectionByOverlap(units, axisType);
58
+ /** Group units into sections by section_id.
59
+ * This works for large-scale Macrostrat columns, where units are grouped by section_id.
60
+ * */ let groups = Array.from((0, $ailTa$group)(units, (d)=>d.section_id));
51
61
  const unitComparator = (0, $b6657fba8924a702$export$ab14c04795685c55)(axisType);
52
62
  const groups1 = groups.map(([section_id, sectionUnits])=>{
53
63
  const [b_age, t_age] = $663a0cdd08b02256$export$8093438ec3e4c6fd(sectionUnits);
@@ -66,6 +76,47 @@ function $663a0cdd08b02256$export$dfbd00399d639b4c(units, axisType = (0, $ailTa$
66
76
  groups1.sort(compareSections);
67
77
  return groups1;
68
78
  }
79
+ function $663a0cdd08b02256$var$groupUnitsIntoSectionByOverlap(units, axisType = (0, $ailTa$ColumnAxisType).AGE) {
80
+ /** Group units into sections by overlap.
81
+ * This creates "synthetic" sections that correspond to packages bound by scale gaps.
82
+ * This is most useful in the height and depth domains, where gaps (e.g., missing core) are
83
+ * common.
84
+ * */ // Start with each unit as its own "section", and progressively merge...
85
+ const sectionList = [];
86
+ for (const unit of units){
87
+ // Check if the unit overlaps with any existing section
88
+ const heightRange = (0, $b6657fba8924a702$export$70e712e2ac0237a)(unit, axisType);
89
+ let section = sectionList.find((s)=>(0, $ailTa$compareAgeRanges)(heightRange, s.heightRange));
90
+ if (section == null) // No overlap, create a new section
91
+ sectionList.push({
92
+ heightRange: heightRange,
93
+ units: [
94
+ unit
95
+ ]
96
+ });
97
+ else {
98
+ // Overlap, merge the unit into the section
99
+ section.units.push(unit);
100
+ // Update the height range
101
+ section.heightRange = [
102
+ Math.max(section.heightRange[0], heightRange[0]),
103
+ Math.min(section.heightRange[1], heightRange[1])
104
+ ];
105
+ }
106
+ }
107
+ // We should have a section for each unit, now we can convert to SectionInfo
108
+ // Ages have to be really actually ages, not heights
109
+ return sectionList.map((section, i)=>{
110
+ const [b_age, t_age] = $663a0cdd08b02256$export$8093438ec3e4c6fd(section.units);
111
+ return {
112
+ // Negative section IDs are used to indicate that these are synthetic sections
113
+ section_id: -i,
114
+ t_age: t_age,
115
+ b_age: b_age,
116
+ units: section.units
117
+ };
118
+ });
119
+ }
69
120
  function $663a0cdd08b02256$export$8093438ec3e4c6fd(units) {
70
121
  /** Get the overall age range of a set of units. */ const t_ages = units.map((d)=>d.t_age);
71
122
  const b_ages = units.map((d)=>d.b_age);
@@ -138,4 +189,4 @@ function $663a0cdd08b02256$var$preprocessSectionUnit(unit, i, units, accumulated
138
189
 
139
190
 
140
191
  export {$663a0cdd08b02256$export$55543e159517d62d as preprocessUnits, $663a0cdd08b02256$export$dfbd00399d639b4c as groupUnitsIntoSections, $663a0cdd08b02256$export$8093438ec3e4c6fd as getSectionAgeRange, $663a0cdd08b02256$export$e7bb744b9be37f3d as mergeOverlappingSections};
141
- //# sourceMappingURL=helpers.2f0a0cb7.js.map
192
+ //# sourceMappingURL=column-views.9892f825.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/column-views/src/prepare-units/helpers.ts"],"sourcesContent":["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":[],"version":3,"file":"column-views.9892f825.js.map"}
@@ -1,16 +1,17 @@
1
1
  import $kwOHx$chromajs from "chroma-js";
2
2
 
3
3
 
4
- function $6698edd2a743bf07$export$175d3e927f1a9860(unit, lithMap, inDarkMode = false, asBackground = true) {
5
- const liths = unit.lith;
4
+ function $6698edd2a743bf07$export$175d3e927f1a9860(unit, lithMap, inDarkMode = false, asBackground = true, keyOpts = null) {
5
+ const { key: key = "lith", id_key: id_key = "lith_id" } = keyOpts ?? {};
6
+ const liths = unit[key];
6
7
  if (liths == null) return "gray";
7
8
  const lithData = liths.map((d)=>{
8
9
  let prop = d.prop;
9
10
  if (prop == null || isNaN(prop) || prop <= 0) prop = null;
10
11
  return {
11
- lith_id: d.lith_id,
12
+ lith_id: d[id_key],
12
13
  prop: prop,
13
- color: lithMap?.get(d.lith_id)?.color
14
+ color: lithMap?.get(d[id_key])?.color
14
15
  };
15
16
  }).filter((d)=>d.color != null);
16
17
  const lithsWithProp = lithData.filter((d)=>d.prop != null);
@@ -37,4 +38,4 @@ function $6698edd2a743bf07$export$175d3e927f1a9860(unit, lithMap, inDarkMode = f
37
38
 
38
39
 
39
40
  export {$6698edd2a743bf07$export$175d3e927f1a9860 as getMixedUnitColor};
40
- //# sourceMappingURL=colors.395c6db5.js.map
41
+ //# sourceMappingURL=column-views.9b77388d.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;AAQO,SAAS,0CACd,IAAc,EACd,OAAO,EACP,aAAa,KAAK,EAClB,eAAe,IAAI,EACnB,UAAsB,IAAI;IAE1B,MAAM,OAAE,MAAM,gBAAQ,SAAS,WAAW,GAAG,WAAW,CAAC;IACzD,MAAM,QAAQ,IAAI,CAAC,IAAI;IACvB,IAAI,SAAS,MACX,OAAO;IAET,MAAM,WAAW,MACd,GAAG,CAAC,CAAC;QACJ,IAAI,OAAO,EAAE,IAAI;QACjB,IAAI,QAAQ,QAAQ,MAAM,SAAS,QAAQ,GACzC,OAAO;QAET,OAAO;YACL,SAAS,CAAC,CAAC,OAAO;kBAClB;YACA,OAAO,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG;QAClC;IACF,GACC,MAAM,CAAC,CAAC,IAAM,EAAE,KAAK,IAAI;IAE5B,MAAM,gBAAgB,SAAS,MAAM,CAAC,CAAC,IAAM,EAAE,IAAI,IAAI;IACvD,MAAM,mBAAmB,SAAS,MAAM,CAAC,CAAC,IAAM,EAAE,IAAI,IAAI;IAE1D,MAAM,YAAY,cAAc,MAAM,CAAC,CAAC,KAAK,IAAM,MAAM,EAAE,IAAI,EAAE;IACjE,IAAI,YAAY,KAAK,iBAAiB,MAAM,GAAG,GAAG;QAChD,MAAM,gBAAgB,IAAI;QAC1B,mEAAmE;QACnE,MAAM,YAAY,gBAAgB,iBAAiB,MAAM;QACzD,iBAAiB,OAAO,CAAC,CAAC;YACxB,cAAc,IAAI,CAAC;gBACjB,GAAG,CAAC;gBACJ,MAAM;YACR;QACF;IACF;IAEA,IAAI,cAAc,MAAM,IAAI,GAC1B,OAAO;IAGT,4BAA4B;IAC5B,MAAM,YAAY,CAAA,GAAA,eAAK,EAAE,OAAO,CAC9B,cAAc,GAAG,CAAC,CAAC,IAAM,EAAE,KAAK,GAChC,QACA,cAAc,GAAG,CAAC,CAAC,IAAM,EAAE,IAAI;IAGjC,IAAI,CAAC,cACH,OAAO,UAAU,GAAG;IAGtB,IAAI,YACF,OAAO,UAAU,GAAG,CAAC,SAAS,KAAK,GAAG;SAEtC,OAAO,UAAU,GAAG,CAAC,SAAS,KAAK,GAAG;AAE1C","sources":["packages/column-views/src/units/colors.ts"],"sourcesContent":["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":[],"version":3,"file":"column-views.9b77388d.js.map"}