@macrostrat/column-views 2.1.2 → 2.1.4

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 (230) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/esm/{column-views.813d5bba.js → column-views.02f3732a.js} +9 -5
  3. package/dist/esm/column-views.02f3732a.js.map +1 -0
  4. package/dist/esm/{column-views.c8e2983a.js → column-views.0a159282.js} +4 -4
  5. package/dist/esm/{column-views.c8e2983a.js.map → column-views.0a159282.js.map} +1 -1
  6. package/dist/esm/{column-views.c25e8b32.js → column-views.1f7fb650.js} +3 -3
  7. package/dist/esm/{column-views.c25e8b32.js.map → column-views.1f7fb650.js.map} +1 -1
  8. package/dist/esm/{column-views.bcffe6e5.js → column-views.243da806.js} +3 -3
  9. package/dist/esm/{column-views.bcffe6e5.js.map → column-views.243da806.js.map} +1 -1
  10. package/dist/esm/{column-views.e20f6a4b.js → column-views.2ff3dd8b.js} +2 -2
  11. package/dist/esm/{column-views.e20f6a4b.js.map → column-views.2ff3dd8b.js.map} +1 -1
  12. package/dist/esm/column-views.38a305a0.js +13 -0
  13. package/dist/esm/{column-views.10eba967.js.map → column-views.38a305a0.js.map} +1 -1
  14. package/dist/esm/{column-views.5cc09c1d.js → column-views.3f246167.js} +9 -2
  15. package/dist/esm/column-views.3f246167.js.map +1 -0
  16. package/dist/esm/{column-views.892ce22f.js → column-views.42b89c52.js} +35 -10
  17. package/dist/esm/column-views.42b89c52.js.map +1 -0
  18. package/dist/esm/{column-views.57636733.css → column-views.448c0687.css} +5 -5
  19. package/dist/esm/column-views.448c0687.css.map +1 -0
  20. package/dist/esm/{column-views.afb48e8c.js → column-views.547b2730.js} +8 -8
  21. package/dist/esm/{column-views.afb48e8c.js.map → column-views.547b2730.js.map} +1 -1
  22. package/dist/esm/{column-views.1af9761e.js → column-views.64a84c43.js} +1 -2
  23. package/dist/esm/column-views.64a84c43.js.map +1 -0
  24. package/dist/esm/{column-views.7e350ae2.js → column-views.676cb1d3.js} +3 -3
  25. package/dist/esm/{column-views.7e350ae2.js.map → column-views.676cb1d3.js.map} +1 -1
  26. package/dist/esm/{column-views.28b3eaa0.js → column-views.75ea6dbe.js} +3 -3
  27. package/dist/esm/{column-views.28b3eaa0.js.map → column-views.75ea6dbe.js.map} +1 -1
  28. package/dist/esm/{column-views.b40b2bf6.js → column-views.769fa0ee.js} +2 -2
  29. package/dist/esm/{column-views.b40b2bf6.js.map → column-views.769fa0ee.js.map} +1 -1
  30. package/dist/esm/{column-views.d2037465.js → column-views.775846c9.js} +3 -3
  31. package/dist/esm/{column-views.d2037465.js.map → column-views.775846c9.js.map} +1 -1
  32. package/dist/esm/{column-views.32a83292.js → column-views.77b49a43.js} +7 -7
  33. package/dist/esm/{column-views.32a83292.js.map → column-views.77b49a43.js.map} +1 -1
  34. package/dist/esm/{column-views.89b9e542.js → column-views.78bd3f09.js} +2 -2
  35. package/dist/esm/{column-views.89b9e542.js.map → column-views.78bd3f09.js.map} +1 -1
  36. package/dist/esm/{column-views.3ba9213d.js → column-views.7ca9e1cd.js} +34 -6
  37. package/dist/esm/column-views.7ca9e1cd.js.map +1 -0
  38. package/dist/esm/column-views.8703a35b.js +163 -0
  39. package/dist/esm/column-views.8703a35b.js.map +1 -0
  40. package/dist/esm/{column-views.217078ab.css → column-views.8d4ce558.css} +13 -1
  41. package/dist/esm/column-views.8d4ce558.css.map +1 -0
  42. package/dist/esm/{column-views.85c6a716.js → column-views.8e3dec90.js} +2 -2
  43. package/dist/esm/{column-views.85c6a716.js.map → column-views.8e3dec90.js.map} +1 -1
  44. package/dist/esm/{column-views.52a6eb47.js → column-views.935ef6f7.js} +2 -2
  45. package/dist/esm/{column-views.52a6eb47.js.map → column-views.935ef6f7.js.map} +1 -1
  46. package/dist/esm/column-views.97d542eb.js +37 -0
  47. package/dist/esm/column-views.97d542eb.js.map +1 -0
  48. package/dist/esm/{column-views.6549388a.js → column-views.9e1c82fe.js} +2 -2
  49. package/dist/esm/{column-views.6549388a.js.map → column-views.9e1c82fe.js.map} +1 -1
  50. package/dist/esm/column-views.a195109e.js +60 -0
  51. package/dist/esm/column-views.a195109e.js.map +1 -0
  52. package/dist/esm/{column-views.2ca34210.js → column-views.a6301a41.js} +5 -5
  53. package/dist/esm/{column-views.2ca34210.js.map → column-views.a6301a41.js.map} +1 -1
  54. package/dist/esm/{column-views.2d8e0e0f.js → column-views.ab0380ed.js} +3 -3
  55. package/dist/esm/{column-views.2d8e0e0f.js.map → column-views.ab0380ed.js.map} +1 -1
  56. package/dist/esm/{column-views.1c92b88f.js → column-views.b3c1eb9e.js} +4 -4
  57. package/dist/esm/column-views.b3c1eb9e.js.map +1 -0
  58. package/dist/esm/{column-views.439a26db.css → column-views.b72918ce.css} +45 -20
  59. package/dist/esm/column-views.b72918ce.css.map +1 -0
  60. package/dist/esm/{column-views.0f2121e4.js → column-views.cc5244c4.js} +75 -29
  61. package/dist/esm/column-views.cc5244c4.js.map +1 -0
  62. package/dist/esm/{column-views.4637f4ce.js → column-views.cdadc5c2.js} +4 -1
  63. package/dist/esm/column-views.cdadc5c2.js.map +1 -0
  64. package/dist/esm/{column-views.fef7389f.js → column-views.d48cb0d8.js} +10 -1
  65. package/dist/esm/column-views.d48cb0d8.js.map +1 -0
  66. package/dist/esm/{column-views.b9fe5176.js → column-views.e3b9a317.js} +2 -2
  67. package/dist/esm/{column-views.b9fe5176.js.map → column-views.e3b9a317.js.map} +1 -1
  68. package/dist/esm/{column-views.f13a1d6e.js → column-views.e7ab5af0.js} +2 -2
  69. package/dist/esm/{column-views.f13a1d6e.js.map → column-views.e7ab5af0.js.map} +1 -1
  70. package/dist/esm/{column-views.a91dde4a.js → column-views.f20eb583.js} +5 -56
  71. package/dist/esm/column-views.f20eb583.js.map +1 -0
  72. package/dist/esm/{column-views.59bb0cba.js → column-views.f7523c1d.js} +2 -2
  73. package/dist/esm/{column-views.59bb0cba.js.map → column-views.f7523c1d.js.map} +1 -1
  74. package/dist/esm/column-views.fbc7401f.js +11 -0
  75. package/dist/esm/{column-views.c322a5e7.js.map → column-views.fbc7401f.js.map} +1 -1
  76. package/dist/esm/index.d.ts +77 -13
  77. package/dist/esm/index.d.ts.map +1 -1
  78. package/dist/esm/index.js +10 -10
  79. package/dist/node/column-views.085f4a51.js +2 -0
  80. package/dist/node/column-views.085f4a51.js.map +1 -0
  81. package/dist/node/{column-views.2877f398.js → column-views.0cbd4a3f.js} +2 -2
  82. package/dist/node/{column-views.2877f398.js.map → column-views.0cbd4a3f.js.map} +1 -1
  83. package/dist/node/{column-views.45defa84.js → column-views.0dfc7ef7.js} +2 -2
  84. package/dist/node/{column-views.45defa84.js.map → column-views.0dfc7ef7.js.map} +1 -1
  85. package/dist/node/column-views.2926f656.css +2 -0
  86. package/dist/node/column-views.2926f656.css.map +1 -0
  87. package/dist/node/column-views.2a6b842d.js +2 -0
  88. package/dist/node/column-views.2a6b842d.js.map +1 -0
  89. package/dist/node/{column-views.2a70b9a2.js → column-views.2ca669bc.js} +2 -2
  90. package/dist/node/{column-views.2a70b9a2.js.map → column-views.2ca669bc.js.map} +1 -1
  91. package/dist/node/column-views.2d957a97.js +2 -0
  92. package/dist/node/column-views.2d957a97.js.map +1 -0
  93. package/dist/node/column-views.307661d1.css +2 -0
  94. package/dist/node/column-views.307661d1.css.map +1 -0
  95. package/dist/node/column-views.38357d4a.js +2 -0
  96. package/dist/node/column-views.38357d4a.js.map +1 -0
  97. package/dist/node/column-views.3eeac38d.js +2 -0
  98. package/dist/node/column-views.3eeac38d.js.map +1 -0
  99. package/dist/node/{column-views.7350ac73.js → column-views.42db0bb8.js} +2 -2
  100. package/dist/node/{column-views.7350ac73.js.map → column-views.42db0bb8.js.map} +1 -1
  101. package/dist/node/{column-views.6b6b756b.js → column-views.45fab61b.js} +2 -2
  102. package/dist/node/{column-views.6b6b756b.js.map → column-views.45fab61b.js.map} +1 -1
  103. package/dist/node/{column-views.0220026c.js → column-views.492b4917.js} +2 -2
  104. package/dist/node/{column-views.0220026c.js.map → column-views.492b4917.js.map} +1 -1
  105. package/dist/node/column-views.4ca62e5d.js +2 -0
  106. package/dist/node/column-views.4ca62e5d.js.map +1 -0
  107. package/dist/node/{column-views.3bd09ad6.js → column-views.51bc87ca.js} +2 -2
  108. package/dist/node/{column-views.3bd09ad6.js.map → column-views.51bc87ca.js.map} +1 -1
  109. package/dist/node/{column-views.cf90f63d.js → column-views.58d2f993.js} +2 -2
  110. package/dist/node/{column-views.cf90f63d.js.map → column-views.58d2f993.js.map} +1 -1
  111. package/dist/node/{column-views.5b6833f0.js → column-views.65f091ea.js} +2 -2
  112. package/dist/node/{column-views.5b6833f0.js.map → column-views.65f091ea.js.map} +1 -1
  113. package/dist/node/column-views.6ae7bb69.js +2 -0
  114. package/dist/node/column-views.6ae7bb69.js.map +1 -0
  115. package/dist/node/column-views.6f7a432f.js +2 -0
  116. package/dist/node/column-views.6f7a432f.js.map +1 -0
  117. package/dist/node/{column-views.664dc6c9.js → column-views.7010a03b.js} +2 -2
  118. package/dist/node/{column-views.664dc6c9.js.map → column-views.7010a03b.js.map} +1 -1
  119. package/dist/node/column-views.758b9bc1.js +2 -0
  120. package/dist/node/column-views.758b9bc1.js.map +1 -0
  121. package/dist/node/column-views.80fcf105.js +2 -0
  122. package/dist/node/column-views.80fcf105.js.map +1 -0
  123. package/dist/node/{column-views.ce6808fe.js → column-views.858b5cf4.js} +2 -2
  124. package/dist/node/{column-views.ce6808fe.js.map → column-views.858b5cf4.js.map} +1 -1
  125. package/dist/node/{column-views.f76ba19f.js → column-views.91043465.js} +2 -2
  126. package/dist/node/{column-views.f76ba19f.js.map → column-views.91043465.js.map} +1 -1
  127. package/dist/node/{column-views.770d2c95.js → column-views.976a829b.js} +2 -2
  128. package/dist/node/{column-views.770d2c95.js.map → column-views.976a829b.js.map} +1 -1
  129. package/dist/node/column-views.99fb74c0.js +2 -0
  130. package/dist/node/column-views.99fb74c0.js.map +1 -0
  131. package/dist/node/column-views.9b7a9ae1.js +2 -0
  132. package/dist/node/column-views.9b7a9ae1.js.map +1 -0
  133. package/dist/node/column-views.9de31cdb.js +2 -0
  134. package/dist/node/column-views.9de31cdb.js.map +1 -0
  135. package/dist/node/column-views.a2274834.js +2 -0
  136. package/dist/node/column-views.a2274834.js.map +1 -0
  137. package/dist/node/{column-views.4e2bdf9b.js → column-views.a372c943.js} +2 -2
  138. package/dist/node/{column-views.4e2bdf9b.js.map → column-views.a372c943.js.map} +1 -1
  139. package/dist/node/column-views.a4e6d4ad.js +2 -0
  140. package/dist/node/column-views.a4e6d4ad.js.map +1 -0
  141. package/dist/node/{column-views.39c07f5f.js → column-views.a7256aa7.js} +2 -2
  142. package/dist/node/{column-views.39c07f5f.js.map → column-views.a7256aa7.js.map} +1 -1
  143. package/dist/node/column-views.c4b409e1.css +2 -0
  144. package/dist/node/column-views.c4b409e1.css.map +1 -0
  145. package/dist/node/{column-views.0859f5d2.js → column-views.c7f6fc0a.js} +2 -2
  146. package/dist/node/{column-views.0859f5d2.js.map → column-views.c7f6fc0a.js.map} +1 -1
  147. package/dist/node/column-views.cef1b814.js +2 -0
  148. package/dist/node/column-views.cef1b814.js.map +1 -0
  149. package/dist/node/{column-views.12a70e9d.js → column-views.d9add589.js} +2 -2
  150. package/dist/node/{column-views.12a70e9d.js.map → column-views.d9add589.js.map} +1 -1
  151. package/dist/node/{column-views.39d3a0be.js → column-views.df97f28e.js} +2 -2
  152. package/dist/node/{column-views.39d3a0be.js.map → column-views.df97f28e.js.map} +1 -1
  153. package/dist/node/{column-views.6f0c1134.js → column-views.dfb2361a.js} +2 -2
  154. package/dist/node/{column-views.6f0c1134.js.map → column-views.dfb2361a.js.map} +1 -1
  155. package/dist/node/{column-views.6b441349.js → column-views.e3ba0594.js} +2 -2
  156. package/dist/node/{column-views.6b441349.js.map → column-views.e3ba0594.js.map} +1 -1
  157. package/dist/node/column-views.eeca917f.js +2 -0
  158. package/dist/node/column-views.eeca917f.js.map +1 -0
  159. package/dist/node/index.js +1 -1
  160. package/dist/node/index.js.map +1 -1
  161. package/package.json +10 -10
  162. package/src/age-axis.ts +11 -6
  163. package/src/column.module.sass +9 -0
  164. package/src/column.ts +23 -1
  165. package/src/data-provider/base.ts +50 -3
  166. package/src/data-provider/fetch.ts +15 -0
  167. package/src/facets/fossils/index.module.sass +1 -1
  168. package/src/facets/fossils/index.ts +104 -12
  169. package/src/facets/index.ts +1 -0
  170. package/src/facets/measurements/index.ts +39 -0
  171. package/src/facets/measurements/provider.ts +80 -0
  172. package/src/unit-details/index.ts +1 -0
  173. package/src/unit-details/modal-panel.ts +61 -0
  174. package/src/unit-details/panel.module.sass +41 -17
  175. package/src/unit-details/panel.ts +114 -36
  176. package/src/units/boxes.ts +1 -64
  177. package/src/units/selection.ts +0 -1
  178. package/dist/esm/column-views.0f2121e4.js.map +0 -1
  179. package/dist/esm/column-views.10eba967.js +0 -11
  180. package/dist/esm/column-views.1af9761e.js.map +0 -1
  181. package/dist/esm/column-views.1c92b88f.js.map +0 -1
  182. package/dist/esm/column-views.217078ab.css.map +0 -1
  183. package/dist/esm/column-views.3ba9213d.js.map +0 -1
  184. package/dist/esm/column-views.439a26db.css.map +0 -1
  185. package/dist/esm/column-views.4637f4ce.js.map +0 -1
  186. package/dist/esm/column-views.57636733.css.map +0 -1
  187. package/dist/esm/column-views.5cc09c1d.js.map +0 -1
  188. package/dist/esm/column-views.813d5bba.js.map +0 -1
  189. package/dist/esm/column-views.892ce22f.js.map +0 -1
  190. package/dist/esm/column-views.a91dde4a.js.map +0 -1
  191. package/dist/esm/column-views.c322a5e7.js +0 -9
  192. package/dist/esm/column-views.fa19cea0.js +0 -108
  193. package/dist/esm/column-views.fa19cea0.js.map +0 -1
  194. package/dist/esm/column-views.fef7389f.js.map +0 -1
  195. package/dist/node/column-views.04407342.js +0 -2
  196. package/dist/node/column-views.04407342.js.map +0 -1
  197. package/dist/node/column-views.059a41c1.js +0 -2
  198. package/dist/node/column-views.059a41c1.js.map +0 -1
  199. package/dist/node/column-views.10a2bad6.js +0 -2
  200. package/dist/node/column-views.10a2bad6.js.map +0 -1
  201. package/dist/node/column-views.12414005.js +0 -2
  202. package/dist/node/column-views.12414005.js.map +0 -1
  203. package/dist/node/column-views.1de87649.js +0 -2
  204. package/dist/node/column-views.1de87649.js.map +0 -1
  205. package/dist/node/column-views.3345cd7a.js +0 -2
  206. package/dist/node/column-views.3345cd7a.js.map +0 -1
  207. package/dist/node/column-views.3cb3345e.js +0 -2
  208. package/dist/node/column-views.3cb3345e.js.map +0 -1
  209. package/dist/node/column-views.6da49480.js +0 -2
  210. package/dist/node/column-views.6da49480.js.map +0 -1
  211. package/dist/node/column-views.7f951eeb.js +0 -2
  212. package/dist/node/column-views.7f951eeb.js.map +0 -1
  213. package/dist/node/column-views.9771eb09.css +0 -2
  214. package/dist/node/column-views.9771eb09.css.map +0 -1
  215. package/dist/node/column-views.9f796135.js +0 -2
  216. package/dist/node/column-views.9f796135.js.map +0 -1
  217. package/dist/node/column-views.a0aac838.js +0 -2
  218. package/dist/node/column-views.a0aac838.js.map +0 -1
  219. package/dist/node/column-views.a8ffe072.js +0 -2
  220. package/dist/node/column-views.a8ffe072.js.map +0 -1
  221. package/dist/node/column-views.aa50c532.js +0 -2
  222. package/dist/node/column-views.aa50c532.js.map +0 -1
  223. package/dist/node/column-views.b773edb8.js +0 -2
  224. package/dist/node/column-views.b773edb8.js.map +0 -1
  225. package/dist/node/column-views.cd3c430b.js +0 -2
  226. package/dist/node/column-views.cd3c430b.js.map +0 -1
  227. package/dist/node/column-views.cd468adb.css +0 -2
  228. package/dist/node/column-views.cd468adb.css.map +0 -1
  229. package/dist/node/column-views.d9bbd6fb.css +0 -2
  230. package/dist/node/column-views.d9bbd6fb.css.map +0 -1
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,Q,M,mB,A,Q,gB,C,C,W,C,C,c,C,K,gC,A,Q,gB,C,C,iB,C,K,2B,A,Q,M,W,A,Q,c,C,C,W,C,K,O,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICwEK,E,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,oB,I,G,E,E,iB,I,G,E,E,2B,I,G,E,E,U,I,G,E,E,gB,I,G,E,E,gB,I,G,I,E,E,S,E,E,SAvDL,IAAM,EAAe,CACnB,KAAM,qBACN,OAAQ,SACV,EAEO,SAAS,EAAkB,CAAK,EACrC,GAAM,CAAA,MAAE,EAAQ,CAAA,CAAc,GAAG,EAAQ,CAAG,EACtC,EAAW,AAAA,EAAa,gBAAiB,CAC7C,GAAG,CAAM,CACT,OAAQ,UACR,SAAU,OACZ,UACA,AAAI,AAAO,MAAP,EAAoB,KAEjB,AAAA,EAAE,EAAc,CACrB,UAAW,CAAA,EACX,MAAA,EACA,SAAU,EAAI,QAAQ,EAAE,OAAO,AAAC,GAAM,AAAwB,MAAxB,EAAE,UAAU,CAAC,OAAO,GAAa,EAAE,AAC3E,EACF,CAMA,SAAS,EAAe,CAAK,EAC3B,GAAM,CAAA,SACJ,CAAQ,CAAA,QACR,CAAO,CAAA,MACP,EAAQ,sBAAA,CAAA,cACR,EAAgB,CAAA,CAAA,CACjB,CAAG,EAEE,EAAI,AAAA,EAAO,GAEjB,OAAO,AAAA,EACL,EACA,CACE,UAAW,UACX,UAAW,AAAW,MAAX,EACX,MAAO,CACL,KAAM,EAAE,KAAK,CAAC,IAAK,GAAG,GACtB,OAAQ,EAAE,KAAK,CAAC,IAAK,GAAG,EAC1B,CACF,EACA,GAAU,IAAI,AAAC,GACN,AAAA,EAAE,EAAS,CAChB,GAAI,EAAE,EAAE,EAAI,EAAE,UAAU,CAAC,MAAM,CAC/B,QA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","sources":["<anon>","packages/column-views/src/maps/column-navigation/svg/layers.ts"],"sourcesContent":["import \"./column-views.a8ffe072.js\";\nimport \"./column-views.7d45bbeb.js\";\nimport $jYcXf$macrostrathyper from \"@macrostrat/hyper\";\nimport {FeatureLayer as $jYcXf$FeatureLayer, Feature as $jYcXf$Feature, MapContext as $jYcXf$MapContext} from \"@macrostrat/svg-map-components\";\nimport {useAPIResult as $jYcXf$useAPIResult, useKeyHandler as $jYcXf$useKeyHandler} from \"@macrostrat/ui-components\";\nimport $jYcXf$chromajs from \"chroma-js\";\nimport {useContext as $jYcXf$useContext, useMemo as $jYcXf$useMemo} from \"react\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $372e0c9189556f66$exports = {};\n\n$parcel$export($372e0c9189556f66$exports, \"MeasurementsLayer\", () => $372e0c9189556f66$export$2254347cd20e6080);\n$parcel$export($372e0c9189556f66$exports, \"ColumnFeatures\", () => $372e0c9189556f66$export$f177ff57c101017a);\n$parcel$export($372e0c9189556f66$exports, \"ColumnKeyboardNavigation\", () => $372e0c9189556f66$export$8c41dd563753848);\n$parcel$export($372e0c9189556f66$exports, \"Columns\", () => $372e0c9189556f66$export$f02cc02ad0e0bba3);\n$parcel$export($372e0c9189556f66$exports, \"ColumnCenters\", () => $372e0c9189556f66$export$4d8f6e6df85d9012);\n$parcel$export($372e0c9189556f66$exports, \"CurrentColumn\", () => $372e0c9189556f66$export$b9d912252344e099);\n\n\n\n\n\n\nvar $Piirt = parcelRequire(\"Piirt\");\n\nvar $iVYEX = parcelRequire(\"iVYEX\");\nconst $372e0c9189556f66$var$defaultStyle = {\n fill: \"rgb(239, 180, 249)\",\n stroke: \"magenta\"\n};\nfunction $372e0c9189556f66$export$2254347cd20e6080(props) {\n const { style: style = $372e0c9189556f66$var$defaultStyle, ...params } = props;\n const res = (0, $jYcXf$useAPIResult)(\"/measurements\", {\n ...params,\n format: \"geojson\",\n response: \"light\"\n });\n if (res == null) return null;\n return (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n useCanvas: false,\n style: style,\n features: res.features?.filter((d)=>d.properties.unit_id != null) ?? []\n });\n}\nfunction $372e0c9189556f66$export$f177ff57c101017a(props) {\n const { features: features, onClick: onClick, color: color = \"rgba(150,150,150, 1)\", singleFeature: singleFeature = true } = props;\n const c = (0, $jYcXf$chromajs)(color);\n return (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n className: \"columns\",\n useCanvas: onClick == null,\n style: {\n fill: c.alpha(0.2).css(),\n stroke: c.alpha(0.4).css()\n }\n }, features?.map((f)=>{\n return (0, $jYcXf$macrostrathyper)((0, $jYcXf$Feature), {\n id: f.id ?? f.properties.col_id,\n onClick: onClick,\n feature: f\n });\n }));\n}\nvar $372e0c9189556f66$var$MacrostratStatusCode = /*#__PURE__*/ function(MacrostratStatusCode) {\n MacrostratStatusCode[\"InProcess\"] = \"in process\";\n return MacrostratStatusCode;\n}($372e0c9189556f66$var$MacrostratStatusCode || {});\nfunction $372e0c9189556f66$export$8c41dd563753848(props) {\n /** Keyboard navigation of columns using a Delaunay triangulation */ const { features: features = [], col_id: col_id = null, onChange: onChange, showLayers: showLayers = false, ...projectArgs } = props;\n const { projection: projection } = (0, $jYcXf$useContext)((0, $jYcXf$MapContext));\n const { centroids: centroids, tri: tri } = (0, $jYcXf$useMemo)(()=>(0, $iVYEX.buildTriangulation)(features), [\n features\n ]);\n const currentIndex = (0, $jYcXf$useMemo)(()=>{\n return features.findIndex((d)=>d.properties.col_id == col_id);\n }, [\n features,\n col_id\n ]);\n const neighbors = tri.delaunay.neighbors[currentIndex];\n const keyMapping = (0, $jYcXf$useMemo)(()=>{\n return (0, $iVYEX.buildKeyMapping)(neighbors, centroids, currentIndex, projection);\n }, [\n neighbors,\n currentIndex\n ]);\n (0, $jYcXf$useKeyHandler)((event)=>{\n const nextColumnIx = keyMapping[event.keyCode];\n if (nextColumnIx == null) return;\n // @ts-ignore\n onChange(features[nextColumnIx]);\n }, [\n keyMapping\n ]);\n if (neighbors == null) return null;\n const neighborFeatures = neighbors.map((d)=>features[d]);\n return (0, $jYcXf$macrostrathyper).if(showLayers)([\n (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n features: tri.links().features,\n useCanvas: false,\n style: {\n stroke: \"purple\",\n fill: \"transparent\"\n }\n }),\n (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n features: neighborFeatures,\n useCanvas: false,\n style: {\n stroke: \"rgb(93, 101, 212)\",\n strokeWidth: 3,\n fill: \"rgba(93, 101, 212, 0.5)\"\n }\n }),\n (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n features: [\n {\n type: \"Feature\",\n geometry: {\n type: \"MultiPoint\",\n coordinates: centroids\n }\n }\n ],\n useCanvas: false,\n style: {\n r: 1,\n fill: \"purple\"\n }\n })\n ]);\n}\nconst $372e0c9189556f66$export$f02cc02ad0e0bba3 = (props)=>{\n const { apiRoute: apiRoute = \"/columns\", onChange: onChange, col_id: col_id = null, status_code: status_code, project_id: project_id, color: color, filterColumns: filterColumns, showDebugLayers: showDebugLayers = false, format: format = \"topojson\" } = props;\n let features = (0, $Piirt.useColumnFeatures)({\n apiRoute: apiRoute,\n status_code: status_code,\n project_id: project_id,\n format: format\n });\n if (features == null) return null;\n if (filterColumns != null) features = features.filter(filterColumns);\n return (0, $jYcXf$macrostrathyper)([\n (0, $jYcXf$macrostrathyper)($372e0c9189556f66$export$8c41dd563753848, {\n features: features,\n col_id: col_id,\n onChange: onChange,\n status_code: status_code,\n project_id: project_id,\n showLayers: showDebugLayers\n }),\n (0, $jYcXf$macrostrathyper)($372e0c9189556f66$export$f177ff57c101017a, {\n features: features,\n onClick: onChange,\n color: color\n })\n ]);\n};\nconst $372e0c9189556f66$export$4d8f6e6df85d9012 = (props)=>{\n return (0, $jYcXf$macrostrathyper)($372e0c9189556f66$export$f02cc02ad0e0bba3, {\n apiRoute: \"/defs/columns\",\n ...props\n });\n};\nconst $372e0c9189556f66$export$b9d912252344e099 = (props)=>{\n const { feature: feature } = props;\n return (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n features: [\n feature\n ],\n style: {\n fill: \"rgba(255,0,0,0.4)\",\n stroke: \"rgba(255,0,0,0.6)\",\n strokeWidth: 2\n }\n });\n};\n\n\nexport {$372e0c9189556f66$export$2254347cd20e6080 as MeasurementsLayer, $372e0c9189556f66$export$f177ff57c101017a as ColumnFeatures, $372e0c9189556f66$export$8c41dd563753848 as ColumnKeyboardNavigation, $372e0c9189556f66$export$f02cc02ad0e0bba3 as Columns, $372e0c9189556f66$export$4d8f6e6df85d9012 as ColumnCenters, $372e0c9189556f66$export$b9d912252344e099 as CurrentColumn};\n//# sourceMappingURL=column-views.2877f398.js.map\n","import h from \"@macrostrat/hyper\";\nimport {\n Feature,\n FeatureLayer,\n MapContext,\n} from \"@macrostrat/svg-map-components\";\nimport { useAPIResult, useKeyHandler } from \"@macrostrat/ui-components\";\nimport chroma from \"chroma-js\";\nimport { ExtendedFeature } from \"d3-geo\";\nimport { Polygon } from \"geojson\";\nimport { useContext, useMemo } from \"react\";\nimport { useColumnFeatures } from \"../../../data-provider\";\nimport {\n buildKeyMapping,\n buildTriangulation,\n} from \"../utils/keyboard-navigation\";\n\nconst defaultStyle = {\n fill: \"rgb(239, 180, 249)\",\n stroke: \"magenta\",\n};\n\nexport function MeasurementsLayer(props) {\n const { style = defaultStyle, ...params } = props;\n const res: any = useAPIResult(\"/measurements\", {\n ...params,\n format: \"geojson\",\n response: \"light\",\n });\n if (res == null) return null;\n\n return h(FeatureLayer, {\n useCanvas: false,\n style,\n features: res.features?.filter((d) => d.properties.unit_id != null) ?? [],\n });\n}\n\ntype ColumnProps = { col_id: number };\n\ntype ColumnFeature = ExtendedFeature<Polygon, ColumnProps>;\n\nfunction ColumnFeatures(props) {\n const {\n features,\n onClick,\n color = \"rgba(150,150,150, 1)\",\n singleFeature = true,\n } = props;\n\n const c = chroma(color);\n\n return h(\n FeatureLayer,\n {\n className: \"columns\",\n useCanvas: onClick == null,\n style: {\n fill: c.alpha(0.2).css(),\n stroke: c.alpha(0.4).css(),\n },\n },\n features?.map((f) => {\n return h(Feature, {\n id: f.id ?? f.properties.col_id,\n onClick,\n feature: f,\n });\n }),\n );\n}\n\nenum MacrostratStatusCode {\n InProcess = \"in process\",\n}\n\ninterface ColumnNavProps {\n col_id: number;\n status_code?: MacrostratStatusCode;\n project_id?: number;\n onChange(col_id: number): void;\n}\n\ninterface KeyboardNavProps extends ColumnNavProps {\n features: ColumnFeature[];\n showLayers: boolean;\n}\n\nfunction ColumnKeyboardNavigation(props: KeyboardNavProps) {\n /** Keyboard navigation of columns using a Delaunay triangulation */\n const {\n features = [],\n col_id = null,\n onChange,\n showLayers = false,\n ...projectArgs\n } = props;\n const { projection } = useContext(MapContext);\n const { centroids, tri } = useMemo(\n () => buildTriangulation(features),\n [features],\n );\n\n const currentIndex = useMemo(() => {\n return features.findIndex((d) => d.properties.col_id == col_id);\n }, [features, col_id]);\n\n const neighbors = tri.delaunay.neighbors[currentIndex];\n\n const keyMapping = useMemo(() => {\n return buildKeyMapping(neighbors, centroids, currentIndex, projection);\n }, [neighbors, currentIndex]);\n\n useKeyHandler(\n (event) => {\n const nextColumnIx = keyMapping[event.keyCode];\n if (nextColumnIx == null) return;\n // @ts-ignore\n onChange(features[nextColumnIx]);\n },\n [keyMapping],\n );\n\n if (neighbors == null) return null;\n const neighborFeatures = neighbors.map((d) => features[d]);\n\n return h.if(showLayers)([\n h(FeatureLayer, {\n features: tri.links().features,\n useCanvas: false,\n style: {\n stroke: \"purple\",\n fill: \"transparent\",\n },\n }),\n h(FeatureLayer, {\n features: neighborFeatures,\n useCanvas: false,\n style: {\n stroke: \"rgb(93, 101, 212)\",\n strokeWidth: 3,\n fill: \"rgba(93, 101, 212, 0.5)\",\n },\n }),\n h(FeatureLayer, {\n features: [\n {\n type: \"Feature\",\n geometry: {\n type: \"MultiPoint\",\n coordinates: centroids,\n },\n },\n ],\n useCanvas: false,\n style: {\n r: 1,\n fill: \"purple\",\n },\n }),\n ]);\n}\n\ninterface ColumnExtraInfo {\n apiRoute?: string;\n color?: string;\n filterColumns?(d: ColumnFeature): boolean;\n showDebugLayers?: boolean;\n format?: \"topojson\" | \"geojson\";\n}\n\nconst Columns = (props: ColumnNavProps & ColumnExtraInfo) => {\n const {\n apiRoute = \"/columns\",\n onChange,\n col_id = null,\n status_code,\n project_id,\n color,\n filterColumns,\n showDebugLayers = false,\n format = \"topojson\",\n } = props;\n\n let features: any[] = useColumnFeatures({\n apiRoute,\n status_code,\n project_id,\n format,\n }) as any;\n\n if (features == null) return null;\n\n if (filterColumns != null) {\n features = features.filter(filterColumns);\n }\n\n return h([\n h(ColumnKeyboardNavigation, {\n features,\n col_id,\n onChange,\n status_code,\n project_id,\n showLayers: showDebugLayers,\n }),\n h(ColumnFeatures, { features, onClick: onChange, color }),\n ]);\n};\n\nconst ColumnCenters = (props: ColumnNavProps) => {\n return h(Columns, { apiRoute: \"/defs/columns\", ...props });\n};\n\nconst CurrentColumn = (props) => {\n const { feature } = props;\n return h(FeatureLayer, {\n features: [feature],\n style: {\n fill: \"rgba(255,0,0,0.4)\",\n stroke: \"rgba(255,0,0,0.6)\",\n strokeWidth: 2,\n },\n });\n};\n\nexport {\n Columns,\n CurrentColumn,\n ColumnCenters,\n ColumnFeatures,\n ColumnKeyboardNavigation,\n};\n"],"names":["$jYcXf$macrostrathyper","FeatureLayer","$jYcXf$FeatureLayer","Feature","$jYcXf$Feature","MapContext","$jYcXf$MapContext","useAPIResult","$jYcXf$useAPIResult","useKeyHandler","$jYcXf$useKeyHandler","$jYcXf$chromajs","useContext","$jYcXf$useContext","useMemo","$jYcXf$useMemo","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","MacrostratStatusCode","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$372e0c9189556f66$exports","$372e0c9189556f66$export$2254347cd20e6080","$372e0c9189556f66$export$f177ff57c101017a","$372e0c9189556f66$export$8c41dd563753848","$372e0c9189556f66$export$f02cc02ad0e0bba3","$372e0c9189556f66$export$4d8f6e6df85d9012","$372e0c9189556f66$export$b9d912252344e099","$Piirt","$iVYEX","$372e0c9189556f66$var$defaultStyle","fill","stroke","props","style","params","res","format","response","useCanvas","features","filter","d","properties","unit_id","onClick","color","singleFeature","c","className","alpha","css","map","f","col_id","feature","$372e0c9189556f66$var$MacrostratStatusCode","onChange","showLayers","projectArgs","projection","centroids","tri","buildTriangulation","currentIndex","findIndex","neighbors","delaunay","keyMapping","buildKeyMapping","event","nextColumnIx","keyCode","neighborFeatures","if","links","strokeWidth","type","geometry","coordinates","r","apiRoute","status_code","project_id","filterColumns","showDebugLayers","useColumnFeatures","MeasurementsLayer","ColumnFeatures","ColumnKeyboardNavigation","Columns","ColumnCenters","CurrentColumn"],"version":3,"file":"column-views.2877f398.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,A,Q,M,mB,A,Q,gB,C,C,W,C,C,c,C,K,gC,A,Q,gB,C,C,iB,C,K,2B,A,Q,M,W,A,Q,c,C,C,W,C,K,O,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICwEK,E,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,oB,I,G,E,E,iB,I,G,E,E,2B,I,G,E,E,U,I,G,E,E,gB,I,G,E,E,gB,I,G,I,E,E,S,E,E,SAvDL,IAAM,EAAe,CACnB,KAAM,qBACN,OAAQ,SACV,EAEO,SAAS,EAAkB,CAAK,EACrC,GAAM,CAAA,MAAE,EAAQ,CAAA,CAAc,GAAG,EAAQ,CAAG,EACtC,EAAW,AAAA,EAAa,gBAAiB,CAC7C,GAAG,CAAM,CACT,OAAQ,UACR,SAAU,OACZ,UACA,AAAI,AAAO,MAAP,EAAoB,KAEjB,AAAA,EAAE,EAAc,CACrB,UAAW,CAAA,EACX,MAAA,EACA,SAAU,EAAI,QAAQ,EAAE,OAAO,AAAC,GAAM,AAAwB,MAAxB,EAAE,UAAU,CAAC,OAAO,GAAa,EAAE,AAC3E,EACF,CAMA,SAAS,EAAe,CAAK,EAC3B,GAAM,CAAA,SACJ,CAAQ,CAAA,QACR,CAAO,CAAA,MACP,EAAQ,sBAAA,CAAA,cACR,EAAgB,CAAA,CAAA,CACjB,CAAG,EAEE,EAAI,AAAA,EAAO,GAEjB,OAAO,AAAA,EACL,EACA,CACE,UAAW,UACX,UAAW,AAAW,MAAX,EACX,MAAO,CACL,KAAM,EAAE,KAAK,CAAC,IAAK,GAAG,GACtB,OAAQ,EAAE,KAAK,CAAC,IAAK,GAAG,EAC1B,CACF,EACA,GAAU,IAAI,AAAC,GACN,AAAA,EAAE,EAAS,CAChB,GAAI,EAAE,EAAE,EAAI,EAAE,UAAU,CAAC,MAAM,CAC/B,QA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","sources":["<anon>","packages/column-views/src/maps/column-navigation/svg/layers.ts"],"sourcesContent":["import \"./column-views.38357d4a.js\";\nimport \"./column-views.7d45bbeb.js\";\nimport $jYcXf$macrostrathyper from \"@macrostrat/hyper\";\nimport {FeatureLayer as $jYcXf$FeatureLayer, Feature as $jYcXf$Feature, MapContext as $jYcXf$MapContext} from \"@macrostrat/svg-map-components\";\nimport {useAPIResult as $jYcXf$useAPIResult, useKeyHandler as $jYcXf$useKeyHandler} from \"@macrostrat/ui-components\";\nimport $jYcXf$chromajs from \"chroma-js\";\nimport {useContext as $jYcXf$useContext, useMemo as $jYcXf$useMemo} from \"react\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $372e0c9189556f66$exports = {};\n\n$parcel$export($372e0c9189556f66$exports, \"MeasurementsLayer\", () => $372e0c9189556f66$export$2254347cd20e6080);\n$parcel$export($372e0c9189556f66$exports, \"ColumnFeatures\", () => $372e0c9189556f66$export$f177ff57c101017a);\n$parcel$export($372e0c9189556f66$exports, \"ColumnKeyboardNavigation\", () => $372e0c9189556f66$export$8c41dd563753848);\n$parcel$export($372e0c9189556f66$exports, \"Columns\", () => $372e0c9189556f66$export$f02cc02ad0e0bba3);\n$parcel$export($372e0c9189556f66$exports, \"ColumnCenters\", () => $372e0c9189556f66$export$4d8f6e6df85d9012);\n$parcel$export($372e0c9189556f66$exports, \"CurrentColumn\", () => $372e0c9189556f66$export$b9d912252344e099);\n\n\n\n\n\n\nvar $Piirt = parcelRequire(\"Piirt\");\n\nvar $iVYEX = parcelRequire(\"iVYEX\");\nconst $372e0c9189556f66$var$defaultStyle = {\n fill: \"rgb(239, 180, 249)\",\n stroke: \"magenta\"\n};\nfunction $372e0c9189556f66$export$2254347cd20e6080(props) {\n const { style: style = $372e0c9189556f66$var$defaultStyle, ...params } = props;\n const res = (0, $jYcXf$useAPIResult)(\"/measurements\", {\n ...params,\n format: \"geojson\",\n response: \"light\"\n });\n if (res == null) return null;\n return (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n useCanvas: false,\n style: style,\n features: res.features?.filter((d)=>d.properties.unit_id != null) ?? []\n });\n}\nfunction $372e0c9189556f66$export$f177ff57c101017a(props) {\n const { features: features, onClick: onClick, color: color = \"rgba(150,150,150, 1)\", singleFeature: singleFeature = true } = props;\n const c = (0, $jYcXf$chromajs)(color);\n return (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n className: \"columns\",\n useCanvas: onClick == null,\n style: {\n fill: c.alpha(0.2).css(),\n stroke: c.alpha(0.4).css()\n }\n }, features?.map((f)=>{\n return (0, $jYcXf$macrostrathyper)((0, $jYcXf$Feature), {\n id: f.id ?? f.properties.col_id,\n onClick: onClick,\n feature: f\n });\n }));\n}\nvar $372e0c9189556f66$var$MacrostratStatusCode = /*#__PURE__*/ function(MacrostratStatusCode) {\n MacrostratStatusCode[\"InProcess\"] = \"in process\";\n return MacrostratStatusCode;\n}($372e0c9189556f66$var$MacrostratStatusCode || {});\nfunction $372e0c9189556f66$export$8c41dd563753848(props) {\n /** Keyboard navigation of columns using a Delaunay triangulation */ const { features: features = [], col_id: col_id = null, onChange: onChange, showLayers: showLayers = false, ...projectArgs } = props;\n const { projection: projection } = (0, $jYcXf$useContext)((0, $jYcXf$MapContext));\n const { centroids: centroids, tri: tri } = (0, $jYcXf$useMemo)(()=>(0, $iVYEX.buildTriangulation)(features), [\n features\n ]);\n const currentIndex = (0, $jYcXf$useMemo)(()=>{\n return features.findIndex((d)=>d.properties.col_id == col_id);\n }, [\n features,\n col_id\n ]);\n const neighbors = tri.delaunay.neighbors[currentIndex];\n const keyMapping = (0, $jYcXf$useMemo)(()=>{\n return (0, $iVYEX.buildKeyMapping)(neighbors, centroids, currentIndex, projection);\n }, [\n neighbors,\n currentIndex\n ]);\n (0, $jYcXf$useKeyHandler)((event)=>{\n const nextColumnIx = keyMapping[event.keyCode];\n if (nextColumnIx == null) return;\n // @ts-ignore\n onChange(features[nextColumnIx]);\n }, [\n keyMapping\n ]);\n if (neighbors == null) return null;\n const neighborFeatures = neighbors.map((d)=>features[d]);\n return (0, $jYcXf$macrostrathyper).if(showLayers)([\n (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n features: tri.links().features,\n useCanvas: false,\n style: {\n stroke: \"purple\",\n fill: \"transparent\"\n }\n }),\n (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n features: neighborFeatures,\n useCanvas: false,\n style: {\n stroke: \"rgb(93, 101, 212)\",\n strokeWidth: 3,\n fill: \"rgba(93, 101, 212, 0.5)\"\n }\n }),\n (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n features: [\n {\n type: \"Feature\",\n geometry: {\n type: \"MultiPoint\",\n coordinates: centroids\n }\n }\n ],\n useCanvas: false,\n style: {\n r: 1,\n fill: \"purple\"\n }\n })\n ]);\n}\nconst $372e0c9189556f66$export$f02cc02ad0e0bba3 = (props)=>{\n const { apiRoute: apiRoute = \"/columns\", onChange: onChange, col_id: col_id = null, status_code: status_code, project_id: project_id, color: color, filterColumns: filterColumns, showDebugLayers: showDebugLayers = false, format: format = \"topojson\" } = props;\n let features = (0, $Piirt.useColumnFeatures)({\n apiRoute: apiRoute,\n status_code: status_code,\n project_id: project_id,\n format: format\n });\n if (features == null) return null;\n if (filterColumns != null) features = features.filter(filterColumns);\n return (0, $jYcXf$macrostrathyper)([\n (0, $jYcXf$macrostrathyper)($372e0c9189556f66$export$8c41dd563753848, {\n features: features,\n col_id: col_id,\n onChange: onChange,\n status_code: status_code,\n project_id: project_id,\n showLayers: showDebugLayers\n }),\n (0, $jYcXf$macrostrathyper)($372e0c9189556f66$export$f177ff57c101017a, {\n features: features,\n onClick: onChange,\n color: color\n })\n ]);\n};\nconst $372e0c9189556f66$export$4d8f6e6df85d9012 = (props)=>{\n return (0, $jYcXf$macrostrathyper)($372e0c9189556f66$export$f02cc02ad0e0bba3, {\n apiRoute: \"/defs/columns\",\n ...props\n });\n};\nconst $372e0c9189556f66$export$b9d912252344e099 = (props)=>{\n const { feature: feature } = props;\n return (0, $jYcXf$macrostrathyper)((0, $jYcXf$FeatureLayer), {\n features: [\n feature\n ],\n style: {\n fill: \"rgba(255,0,0,0.4)\",\n stroke: \"rgba(255,0,0,0.6)\",\n strokeWidth: 2\n }\n });\n};\n\n\nexport {$372e0c9189556f66$export$2254347cd20e6080 as MeasurementsLayer, $372e0c9189556f66$export$f177ff57c101017a as ColumnFeatures, $372e0c9189556f66$export$8c41dd563753848 as ColumnKeyboardNavigation, $372e0c9189556f66$export$f02cc02ad0e0bba3 as Columns, $372e0c9189556f66$export$4d8f6e6df85d9012 as ColumnCenters, $372e0c9189556f66$export$b9d912252344e099 as CurrentColumn};\n//# sourceMappingURL=column-views.0cbd4a3f.js.map\n","import h from \"@macrostrat/hyper\";\nimport {\n Feature,\n FeatureLayer,\n MapContext,\n} from \"@macrostrat/svg-map-components\";\nimport { useAPIResult, useKeyHandler } from \"@macrostrat/ui-components\";\nimport chroma from \"chroma-js\";\nimport { ExtendedFeature } from \"d3-geo\";\nimport { Polygon } from \"geojson\";\nimport { useContext, useMemo } from \"react\";\nimport { useColumnFeatures } from \"../../../data-provider\";\nimport {\n buildKeyMapping,\n buildTriangulation,\n} from \"../utils/keyboard-navigation\";\n\nconst defaultStyle = {\n fill: \"rgb(239, 180, 249)\",\n stroke: \"magenta\",\n};\n\nexport function MeasurementsLayer(props) {\n const { style = defaultStyle, ...params } = props;\n const res: any = useAPIResult(\"/measurements\", {\n ...params,\n format: \"geojson\",\n response: \"light\",\n });\n if (res == null) return null;\n\n return h(FeatureLayer, {\n useCanvas: false,\n style,\n features: res.features?.filter((d) => d.properties.unit_id != null) ?? [],\n });\n}\n\ntype ColumnProps = { col_id: number };\n\ntype ColumnFeature = ExtendedFeature<Polygon, ColumnProps>;\n\nfunction ColumnFeatures(props) {\n const {\n features,\n onClick,\n color = \"rgba(150,150,150, 1)\",\n singleFeature = true,\n } = props;\n\n const c = chroma(color);\n\n return h(\n FeatureLayer,\n {\n className: \"columns\",\n useCanvas: onClick == null,\n style: {\n fill: c.alpha(0.2).css(),\n stroke: c.alpha(0.4).css(),\n },\n },\n features?.map((f) => {\n return h(Feature, {\n id: f.id ?? f.properties.col_id,\n onClick,\n feature: f,\n });\n }),\n );\n}\n\nenum MacrostratStatusCode {\n InProcess = \"in process\",\n}\n\ninterface ColumnNavProps {\n col_id: number;\n status_code?: MacrostratStatusCode;\n project_id?: number;\n onChange(col_id: number): void;\n}\n\ninterface KeyboardNavProps extends ColumnNavProps {\n features: ColumnFeature[];\n showLayers: boolean;\n}\n\nfunction ColumnKeyboardNavigation(props: KeyboardNavProps) {\n /** Keyboard navigation of columns using a Delaunay triangulation */\n const {\n features = [],\n col_id = null,\n onChange,\n showLayers = false,\n ...projectArgs\n } = props;\n const { projection } = useContext(MapContext);\n const { centroids, tri } = useMemo(\n () => buildTriangulation(features),\n [features],\n );\n\n const currentIndex = useMemo(() => {\n return features.findIndex((d) => d.properties.col_id == col_id);\n }, [features, col_id]);\n\n const neighbors = tri.delaunay.neighbors[currentIndex];\n\n const keyMapping = useMemo(() => {\n return buildKeyMapping(neighbors, centroids, currentIndex, projection);\n }, [neighbors, currentIndex]);\n\n useKeyHandler(\n (event) => {\n const nextColumnIx = keyMapping[event.keyCode];\n if (nextColumnIx == null) return;\n // @ts-ignore\n onChange(features[nextColumnIx]);\n },\n [keyMapping],\n );\n\n if (neighbors == null) return null;\n const neighborFeatures = neighbors.map((d) => features[d]);\n\n return h.if(showLayers)([\n h(FeatureLayer, {\n features: tri.links().features,\n useCanvas: false,\n style: {\n stroke: \"purple\",\n fill: \"transparent\",\n },\n }),\n h(FeatureLayer, {\n features: neighborFeatures,\n useCanvas: false,\n style: {\n stroke: \"rgb(93, 101, 212)\",\n strokeWidth: 3,\n fill: \"rgba(93, 101, 212, 0.5)\",\n },\n }),\n h(FeatureLayer, {\n features: [\n {\n type: \"Feature\",\n geometry: {\n type: \"MultiPoint\",\n coordinates: centroids,\n },\n },\n ],\n useCanvas: false,\n style: {\n r: 1,\n fill: \"purple\",\n },\n }),\n ]);\n}\n\ninterface ColumnExtraInfo {\n apiRoute?: string;\n color?: string;\n filterColumns?(d: ColumnFeature): boolean;\n showDebugLayers?: boolean;\n format?: \"topojson\" | \"geojson\";\n}\n\nconst Columns = (props: ColumnNavProps & ColumnExtraInfo) => {\n const {\n apiRoute = \"/columns\",\n onChange,\n col_id = null,\n status_code,\n project_id,\n color,\n filterColumns,\n showDebugLayers = false,\n format = \"topojson\",\n } = props;\n\n let features: any[] = useColumnFeatures({\n apiRoute,\n status_code,\n project_id,\n format,\n }) as any;\n\n if (features == null) return null;\n\n if (filterColumns != null) {\n features = features.filter(filterColumns);\n }\n\n return h([\n h(ColumnKeyboardNavigation, {\n features,\n col_id,\n onChange,\n status_code,\n project_id,\n showLayers: showDebugLayers,\n }),\n h(ColumnFeatures, { features, onClick: onChange, color }),\n ]);\n};\n\nconst ColumnCenters = (props: ColumnNavProps) => {\n return h(Columns, { apiRoute: \"/defs/columns\", ...props });\n};\n\nconst CurrentColumn = (props) => {\n const { feature } = props;\n return h(FeatureLayer, {\n features: [feature],\n style: {\n fill: \"rgba(255,0,0,0.4)\",\n stroke: \"rgba(255,0,0,0.6)\",\n strokeWidth: 2,\n },\n });\n};\n\nexport {\n Columns,\n CurrentColumn,\n ColumnCenters,\n ColumnFeatures,\n ColumnKeyboardNavigation,\n};\n"],"names":["$jYcXf$macrostrathyper","FeatureLayer","$jYcXf$FeatureLayer","Feature","$jYcXf$Feature","MapContext","$jYcXf$MapContext","useAPIResult","$jYcXf$useAPIResult","useKeyHandler","$jYcXf$useKeyHandler","$jYcXf$chromajs","useContext","$jYcXf$useContext","useMemo","$jYcXf$useMemo","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","MacrostratStatusCode","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$372e0c9189556f66$exports","$372e0c9189556f66$export$2254347cd20e6080","$372e0c9189556f66$export$f177ff57c101017a","$372e0c9189556f66$export$8c41dd563753848","$372e0c9189556f66$export$f02cc02ad0e0bba3","$372e0c9189556f66$export$4d8f6e6df85d9012","$372e0c9189556f66$export$b9d912252344e099","$Piirt","$iVYEX","$372e0c9189556f66$var$defaultStyle","fill","stroke","props","style","params","res","format","response","useCanvas","features","filter","d","properties","unit_id","onClick","color","singleFeature","c","className","alpha","css","map","f","col_id","feature","$372e0c9189556f66$var$MacrostratStatusCode","onChange","showLayers","projectArgs","projection","centroids","tri","buildTriangulation","currentIndex","findIndex","neighbors","delaunay","keyMapping","buildKeyMapping","event","nextColumnIx","keyCode","neighborFeatures","if","links","strokeWidth","type","geometry","coordinates","r","apiRoute","status_code","project_id","filterColumns","showDebugLayers","useColumnFeatures","MeasurementsLayer","ColumnFeatures","ColumnKeyboardNavigation","Columns","ColumnCenters","CurrentColumn"],"version":3,"file":"column-views.0cbd4a3f.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.f76ba19f.js";import"./column-views.10a2bad6.js";import"./column-views.6f0c1134.js";import"./column-views.fea32686.js";import"./column-views.39c07f5f.js";import"./column-views.1a0b56fc.js";import"./column-views.12414005.js";import"./column-views.b773edb8.js";import"./column-views.059a41c1.js";import e from"@macrostrat/hyper";import{useMemo as n,useRef as t}from"react";import{useInDarkMode as o}from"@macrostrat/ui-components";import i from"classnames";import{SVG as r,ColumnProvider as a,ColumnAxisType as l}from"@macrostrat/column-components";var s=globalThis,c={},m={},u=s.parcelRequirea149;null==u&&((u=function(e){if(e in c)return c[e].exports;if(e in m){var n=m[e];delete m[e];var t={id:e,exports:{}};return c[e]=t,n.call(t.exports,t,t.exports),t.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,n){m[e]=n},s.parcelRequirea149=u),u.register,Object.defineProperty({},"CorrelationChart",{get:()=>_,set:void 0,enumerable:!0,configurable:!0});var f=u("7tWYE"),p=u("a3mb1"),d=u("2KV3o"),b=u("cf1sk"),g=u("7exMg"),C=u("8ldOM"),S=u("4hG2H"),h=u("1n4Pb"),v=u("dMbCm");let H=e.styled(b&&b.__esModule?b.default:b);function _({data:e,columnSpacing:a=0,columnWidth:l=130,unconformityLabels:s=!0,showUnitPopover:c=!0,selectedUnit:m,onUnitSelected:u,unitComponent:f,...b}){let g={targetUnitHeight:10,unconformityHeight:60,minSectionHeight:60,collapseSmallUnconformities:!0},S=n(()=>e?(0,C.buildCorrelationChartData)(e,{...g,...b}):null,[e,...Object.values(b)]),h=t(null),_=n(()=>e?.map(e=>e.units).flat()??[],[e]),U=i({"dark-mode":o()});if(null==S)return null;let{packages:A,scaleInfo:E,nColumns:R}=S;return H(v.ColumnContainer,{className:"correlation-diagram"},H(p.UnitSelectionProvider,{columnRef:h,selectedUnit:m,onUnitSelected:u,units:_},H(w,[H(y,{key:"timescale",scaleInfo:E,unconformityLabels:s}),H("div.main-chart",{ref:h},[H(r,{className:U,innerWidth:(l+a)*R,height:E.totalHeight,paddingH:4},A.map((e,n)=>{let{offset:t,domain:o,pixelScale:i,key:r}=E.packages[n];return H(x,{columnData:e.columnData,key:r,columnWidth:l,columnSpacing:a,offset:t,domain:o,pixelScale:i,unitComponent:f})})),H.if(c)(d.UnitSelectionPopover),H(p.UnitKeyboardNavigation,{units:_})])])))}function x({columnData:e,columnSpacing:n,columnWidth:t,unitComponent:o,offset:i,domain:r,pixelScale:a}){return H("g.package",{transform:`translate(0 ${i})`},[H("g.column-units",[e.map((e,i)=>H(U,{units:e.units,unitComponent:o,width:t,key:i,domain:r,pixelScale:a,offsetLeft:i*(t+n)}))])])}function U(e){let{units:n,width:t=150,offsetLeft:o,domain:i,pixelScale:r,unitComponent:s=f.ColoredUnitComponent}=e;return 0==n.length?null:H("g.section",{transform:`translate(${o} 0)`},H(a,{divisions:n,range:i,pixelsPerMeter:r,axisType:l.AGE},H(h.UnitBoxes,{unitComponent:s,unitComponentProps:{nColumns:2,width:t,showLabel:!1}})))}function w({children:e}){let n=(0,p.useUnitSelectionStore)(e=>e.setSelectedUnit);return H("div.correlation-chart-inner",{onClick(){n(null)}},e)}function y(e){let{scaleInfo:n,unconformityLabels:t=!0}=e;return H("div.column-container.age-axis-container",[H(S.CompositeAgeAxisCore,{...n}),H(g.CompositeTimescaleCore,{...n,unconformityLabels:t})])}export{_ as CorrelationChart};
2
- //# sourceMappingURL=column-views.45defa84.js.map
1
+ import"./column-views.91043465.js";import"./column-views.3eeac38d.js";import"./column-views.dfb2361a.js";import"./column-views.fea32686.js";import"./column-views.a7256aa7.js";import"./column-views.1a0b56fc.js";import"./column-views.4ca62e5d.js";import"./column-views.2d957a97.js";import"./column-views.758b9bc1.js";import e from"@macrostrat/hyper";import{useMemo as n,useRef as t}from"react";import{useInDarkMode as o}from"@macrostrat/ui-components";import i from"classnames";import{SVG as r,ColumnProvider as a,ColumnAxisType as l}from"@macrostrat/column-components";var s=globalThis,c={},m={},u=s.parcelRequirea149;null==u&&((u=function(e){if(e in c)return c[e].exports;if(e in m){var n=m[e];delete m[e];var t={id:e,exports:{}};return c[e]=t,n.call(t.exports,t,t.exports),t.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,n){m[e]=n},s.parcelRequirea149=u),u.register,Object.defineProperty({},"CorrelationChart",{get:()=>_,set:void 0,enumerable:!0,configurable:!0});var f=u("7tWYE"),p=u("a3mb1"),d=u("2KV3o"),b=u("cf1sk"),g=u("7exMg"),C=u("8ldOM"),S=u("4hG2H"),h=u("1n4Pb"),v=u("dMbCm");let H=e.styled(b&&b.__esModule?b.default:b);function _({data:e,columnSpacing:a=0,columnWidth:l=130,unconformityLabels:s=!0,showUnitPopover:c=!0,selectedUnit:m,onUnitSelected:u,unitComponent:f,...b}){let g={targetUnitHeight:10,unconformityHeight:60,minSectionHeight:60,collapseSmallUnconformities:!0},S=n(()=>e?(0,C.buildCorrelationChartData)(e,{...g,...b}):null,[e,...Object.values(b)]),h=t(null),_=n(()=>e?.map(e=>e.units).flat()??[],[e]),U=i({"dark-mode":o()});if(null==S)return null;let{packages:A,scaleInfo:E,nColumns:R}=S;return H(v.ColumnContainer,{className:"correlation-diagram"},H(p.UnitSelectionProvider,{columnRef:h,selectedUnit:m,onUnitSelected:u,units:_},H(w,[H(y,{key:"timescale",scaleInfo:E,unconformityLabels:s}),H("div.main-chart",{ref:h},[H(r,{className:U,innerWidth:(l+a)*R,height:E.totalHeight,paddingH:4},A.map((e,n)=>{let{offset:t,domain:o,pixelScale:i,key:r}=E.packages[n];return H(x,{columnData:e.columnData,key:r,columnWidth:l,columnSpacing:a,offset:t,domain:o,pixelScale:i,unitComponent:f})})),H.if(c)(d.UnitSelectionPopover),H(p.UnitKeyboardNavigation,{units:_})])])))}function x({columnData:e,columnSpacing:n,columnWidth:t,unitComponent:o,offset:i,domain:r,pixelScale:a}){return H("g.package",{transform:`translate(0 ${i})`},[H("g.column-units",[e.map((e,i)=>H(U,{units:e.units,unitComponent:o,width:t,key:i,domain:r,pixelScale:a,offsetLeft:i*(t+n)}))])])}function U(e){let{units:n,width:t=150,offsetLeft:o,domain:i,pixelScale:r,unitComponent:s=f.ColoredUnitComponent}=e;return 0==n.length?null:H("g.section",{transform:`translate(${o} 0)`},H(a,{divisions:n,range:i,pixelsPerMeter:r,axisType:l.AGE},H(h.UnitBoxes,{unitComponent:s,unitComponentProps:{nColumns:2,width:t,showLabel:!1}})))}function w({children:e}){let n=(0,p.useUnitSelectionStore)(e=>e.setSelectedUnit);return H("div.correlation-chart-inner",{onClick(){n(null)}},e)}function y(e){let{scaleInfo:n,unconformityLabels:t=!0}=e;return H("div.column-container.age-axis-container",[H(S.CompositeAgeAxisCore,{...n}),H(g.CompositeTimescaleCore,{...n,unconformityLabels:t})])}export{_ as CorrelationChart};
2
+ //# sourceMappingURL=column-views.0dfc7ef7.js.map
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,W,C,C,U,C,K,O,A,Q,iB,C,K,2B,A,Q,M,Y,A,Q,O,C,C,kB,C,C,kB,C,K,+B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,mB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,SCAA,EAAA,EAAA,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SAoCA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAchB,SAAS,EAAiB,CAAA,KAC/B,CAAI,CAAA,cACJ,EAAgB,CAAA,CAAA,YAChB,EAAc,GAAA,CAAA,mBACd,EAAqB,CAAA,CAAA,CAAA,gBACrB,EAAkB,CAAA,CAAA,CAAA,aAClB,CAAY,CAAA,eACZ,CAAc,CAAA,cACd,CAAa,CACb,GAAG,EACmB,EACtB,IAAM,EAAoB,CACxB,iBAAkB,GAClB,mBAAoB,GACpB,iBAAkB,GAClB,4BAA6B,CAAA,CAC/B,EAEM,EAAY,AAAA,EAAQ,IACxB,AAAK,EACE,AAAA,CAAA,EAAA,EAAA,yBAAwB,AAAxB,EAA0B,EAAM,CACrC,GAAG,CAAiB,CACpB,GAAG,CAAU,AACf,GAJkB,KAKjB,CAAC,KAAS,OAAO,MAAM,CAAC,GAAY,EAEjC,EAAY,AAAA,EAAO,MAGnB,EAAQ,AAAA,EAAQ,IACb,GAAM,IAAI,AAAC,GAAO,EAAG,KAAK,EAAE,QAAU,EAAE,CAC9C,CAAC,EAAK,EAIH,EAAY,AAAA,EAAW,CAC3B,YAHiB,AAAA,GAInB,GAEA,GAAI,AAAa,MAAb,EACF,OAAO,KAGT,GAAM,CAAA,SAAE,CAAQ,CAAA,UAAE,CAAS,CAAA,SAAE,CAAQ,CAAE,CAAG,EAI1C,OAAO,EACL,EAAA,eAAc,CACd,CAAE,UAAW,qBAAsB,EACnC,EACE,EAAA,qBAAoB,CACpB,CAAE,UAAA,EAAW,aAAA,EAAc,eAAA,EAAgB,MAAA,CAAM,EACjD,EAAE,EAAW,CACX,EAAE,EAAiB,CACjB,IAAK,YACL,UAAA,EACA,mBAAA,CACF,GACA,EAAE,iBAAkB,CAAE,IAAK,CAAU,EAAG,CACtC,EACE,EACA,CACE,UAAA,EACA,WAnBM,AAAC,CAAA,EAAc,CAAA,EAAiB,EAoBtC,OAAQ,EAAU,WAAW,CAC7B,SAAU,CACZ,EACA,EAAS,GAAG,CAAC,CAAC,EAAK,KACjB,GAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAA,WAAE,CAAU,CAAA,IAAE,CAAG,CAAE,CAAG,EAAU,QAAQ,CAAC,EAAE,CACjE,OAAO,EAAE,EAAS,CAChB,WAAY,EAAI,UAAU,CAC1B,IAAA,EACA,YAAA,EACA,cAAA,EACA,OAAA,EACA,OAAA,EACA,WAAA,EACA,cAAA,CACF,EACF,IAEF,EAAE,EAAE,CAAC,GAAiB,EAAA,oBAAmB,EAEzC,EAAE,EAAA,sBAAqB,CAAG,CAAE,MAAA,CAAM,GACnC,EACF,GAGP,CAEA,SAAS,EAAQ,CAAA,WACf,CAAU,CAAA,cACV,CAAa,CAAA,YACb,CAAW,CAAA,cACX,CAAa,CAAA,OACb,CAAM,CAAA,OACN,CAAM,CAAA,WACN,CAAU,CACX,EACC,OAAO,EAAE,YAAa,CAAE,UAAW,CAAC,YAAY,EAAE,EAAO,CAAC,CAAC,AAAC,EAAG,CAG7D,EAAE,iBAAkB,CAClB,EAAW,GAAG,CAAC,CAAC,EAAM,IACb,EAAE,EAAQ,CACf,MAAO,EAAK,KAAK,CACjB,cAAA,EACA,MAAO,EACP,IAAK,EACL,OAAA,EACA,WAAA,EACA,WAAY,EAAK,CAAA,EAAc,CAAA,CACjC,IAEH,EACF,CACH,CAgBA,SAAS,EAAO,CAAkB,EAChC,GAAM,CAAA,MACJ,CAAK,CAAA,MACL,EAAQ,GAAA,CAAA,WACR,CAAU,CAAA,OACV,CAAM,CAAA,WACN,CAAU,CAAA,cACV,EAAgB,EAAA,oBAAmB,AAAA,CACpC,CAAG,SAIJ,AAAI,AAAgB,GAAhB,EAAM,MAAM,CACP,KAGF,EACL,YACA,CACE,UAAW,CAAC,UAAU,EAAE,EAAW,GAAG,CAAC,AACzC,EACA,EACE,EACA,CAEE,UAAW,EACX,MAAO,EACP,eAAgB,EAChB,SAAU,AAAA,EAAe,GAAG,AAC9B,EACA,EAAE,EAAA,SAAQ,CAAG,CACX,cAAA,EACA,mBAAoB,CAClB,SAAU,EACV,MAxBY,EAyBZ,UAAW,CAAA,CACb,CACF,IAGN,CAkEA,SAAS,EAAU,CAAA,SAAE,CAAQ,CAAE,EAC7B,IAAM,EAAkB,AAAA,CAAA,EAAA,EAAA,qBAAoB,AAApB,EACtB,AAAC,GAAU,EAAM,eAAe,EAGlC,OAAO,EACL,8BACA,CACE,UACE,EAAgB,KAClB,CACF,EACA,EAEJ,CAQA,SAAS,EAAgB,CAA2B,EAClD,GAAM,CAAA,UAAE,CAAS,CAAA,mBAAE,EAAqB,CAAA,CAAA,CAAM,CAAG,EACjD,OAAO,EAAE,0CAA2C,CAClD,EAAE,EAAA,oBAAmB,CAAG,CAAE,GAAG,CAAS,AAAC,GACvC,EAAE,EAAA,sBAAqB,CAAG,CAAE,GAAG,CAAS,CAAE,mBAAA,CAAmB,GAC9D,CACH,Q,K,gB","sources":["<anon>","packages/column-views/src/correlation-chart/main.ts"],"sourcesContent":["import \"./column-views.f76ba19f.js\";\nimport \"./column-views.10a2bad6.js\";\nimport \"./column-views.6f0c1134.js\";\nimport \"./column-views.fea32686.js\";\nimport \"./column-views.39c07f5f.js\";\nimport \"./column-views.1a0b56fc.js\";\nimport \"./column-views.12414005.js\";\nimport \"./column-views.b773edb8.js\";\nimport \"./column-views.059a41c1.js\";\nimport $8OJSO$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $8OJSO$useMemo, useRef as $8OJSO$useRef} from \"react\";\nimport {useInDarkMode as $8OJSO$useInDarkMode} from \"@macrostrat/ui-components\";\nimport $8OJSO$classnames from \"classnames\";\nimport {SVG as $8OJSO$SVG, ColumnProvider as $8OJSO$ColumnProvider, ColumnAxisType as $8OJSO$ColumnAxisType} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $25f1fcddbe40b91f$exports = {};\n\n$parcel$export($25f1fcddbe40b91f$exports, \"CorrelationChart\", () => $25f1fcddbe40b91f$export$9ebf875c09445bec);\n/** Correlation chart */ \nvar $7tWYE = parcelRequire(\"7tWYE\");\nvar $a3mb1 = parcelRequire(\"a3mb1\");\n\nvar $2KV3o = parcelRequire(\"2KV3o\");\n\n\nvar $cf1sk = parcelRequire(\"cf1sk\");\n\n\n\nvar $7exMg = parcelRequire(\"7exMg\");\n\n\nvar $8ldOM = parcelRequire(\"8ldOM\");\n\nvar $4hG2H = parcelRequire(\"4hG2H\");\n\n\nvar $1n4Pb = parcelRequire(\"1n4Pb\");\n\nvar $dMbCm = parcelRequire(\"dMbCm\");\nconst $25f1fcddbe40b91f$var$h = (0, $8OJSO$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($cf1sk))));\nfunction $25f1fcddbe40b91f$export$9ebf875c09445bec({ data: data, columnSpacing: columnSpacing = 0, columnWidth: columnWidth = 130, unconformityLabels: unconformityLabels = true, showUnitPopover: showUnitPopover = true, selectedUnit: selectedUnit, onUnitSelected: onUnitSelected, unitComponent: unitComponent, ...scaleProps }) {\n const defaultScaleProps = {\n targetUnitHeight: 10,\n unconformityHeight: 60,\n minSectionHeight: 60,\n collapseSmallUnconformities: true\n };\n const chartData = (0, $8OJSO$useMemo)(()=>{\n if (!data) return null;\n return (0, $8ldOM.buildCorrelationChartData)(data, {\n ...defaultScaleProps,\n ...scaleProps\n });\n }, [\n data,\n ...Object.values(scaleProps)\n ]);\n const columnRef = (0, $8OJSO$useRef)(null);\n // A flattened units array is used to support keyboard navigation\n const units = (0, $8OJSO$useMemo)(()=>{\n return data?.map((d0)=>d0.units).flat() ?? [];\n }, [\n data\n ]);\n const inDarkMode = (0, $8OJSO$useInDarkMode)();\n const className = (0, $8OJSO$classnames)({\n \"dark-mode\": inDarkMode\n });\n if (chartData == null) return null;\n const { packages: packages, scaleInfo: scaleInfo, nColumns: nColumns } = chartData;\n const mainWidth = (columnWidth + columnSpacing) * nColumns;\n return $25f1fcddbe40b91f$var$h((0, $dMbCm.ColumnContainer), {\n className: \"correlation-diagram\"\n }, $25f1fcddbe40b91f$var$h((0, $a3mb1.UnitSelectionProvider), {\n columnRef: columnRef,\n selectedUnit: selectedUnit,\n onUnitSelected: onUnitSelected,\n units: units\n }, $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$ChartArea, [\n $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$TimescaleColumn, {\n key: \"timescale\",\n scaleInfo: scaleInfo,\n unconformityLabels: unconformityLabels\n }),\n $25f1fcddbe40b91f$var$h(\"div.main-chart\", {\n ref: columnRef\n }, [\n $25f1fcddbe40b91f$var$h((0, $8OJSO$SVG), {\n className: className,\n innerWidth: mainWidth,\n height: scaleInfo.totalHeight,\n paddingH: 4\n }, packages.map((pkg, i)=>{\n const { offset: offset, domain: domain, pixelScale: pixelScale, key: key } = scaleInfo.packages[i];\n return $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$Package, {\n columnData: pkg.columnData,\n key: key,\n columnWidth: columnWidth,\n columnSpacing: columnSpacing,\n offset: offset,\n domain: domain,\n pixelScale: pixelScale,\n unitComponent: unitComponent\n });\n })),\n $25f1fcddbe40b91f$var$h.if(showUnitPopover)((0, $2KV3o.UnitSelectionPopover)),\n // Navigation only works within a column for now...\n $25f1fcddbe40b91f$var$h((0, $a3mb1.UnitKeyboardNavigation), {\n units: units\n })\n ])\n ])));\n}\nfunction $25f1fcddbe40b91f$var$Package({ columnData: columnData, columnSpacing: columnSpacing, columnWidth: columnWidth, unitComponent: unitComponent, offset: offset, domain: domain, pixelScale: pixelScale }) {\n return $25f1fcddbe40b91f$var$h(\"g.package\", {\n transform: `translate(0 ${offset})`\n }, [\n // Disable the SVG overlay for now\n //h(PackageSVGOverlay, { data, columnSpacing }),\n $25f1fcddbe40b91f$var$h(\"g.column-units\", [\n columnData.map((data, i)=>{\n return $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$Column, {\n units: data.units,\n unitComponent: unitComponent,\n width: columnWidth,\n key: i,\n domain: domain,\n pixelScale: pixelScale,\n offsetLeft: i * (columnWidth + columnSpacing)\n });\n })\n ])\n ]);\n}\nfunction $25f1fcddbe40b91f$var$Column(props) {\n const { units: units, width: width = 150, offsetLeft: offsetLeft, domain: domain, pixelScale: pixelScale, unitComponent: unitComponent = (0, $7tWYE.ColoredUnitComponent) } = props;\n const columnWidth = width;\n if (units.length == 0) return null;\n return $25f1fcddbe40b91f$var$h(\"g.section\", {\n transform: `translate(${offsetLeft} 0)`\n }, $25f1fcddbe40b91f$var$h((0, $8OJSO$ColumnProvider), {\n // Need to tighten up types here...\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n axisType: (0, $8OJSO$ColumnAxisType).AGE\n }, $25f1fcddbe40b91f$var$h((0, $1n4Pb.UnitBoxes), {\n unitComponent: unitComponent,\n unitComponentProps: {\n nColumns: 2,\n width: columnWidth,\n showLabel: false\n }\n })));\n}\nfunction $25f1fcddbe40b91f$var$PackageSVGOverlay({ data: data, columnWidth: columnWidth = 100, columnSpacing: columnSpacing = 0 }) {\n const { b_age: b_age, t_age: t_age, bestPixelScale: bestPixelScale, columnData: columnData } = data;\n const width = (columnWidth + columnSpacing) * columnData.length;\n const height = Math.ceil((b_age - t_age) * bestPixelScale) + 2;\n const extensiveUnits = (0, $8ldOM.findLaterallyExtensiveUnits)(data);\n const scale = (val)=>{\n return (val - t_age) * bestPixelScale;\n };\n return $25f1fcddbe40b91f$var$h(\"div.package-overlay\", {\n style: {\n width: width,\n height: height\n }\n }, extensiveUnits.map((d)=>{\n return $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$LaterallyExtensiveUnit, {\n data: d,\n scale: scale,\n pixelScale: bestPixelScale,\n columnSpacing: columnSpacing\n });\n }));\n}\nfunction $25f1fcddbe40b91f$var$LaterallyExtensiveUnit({ data: data, scale: scale, pixelScale: pixelScale, columnSpacing: columnSpacing }) {\n const { b_age: b_age, t_age: t_age, strat_name_long: strat_name_long, units: units } = data;\n // Build boxes by column groups\n const boxes = (0, $8ldOM.splitStratIntoBoxes)(data);\n return $25f1fcddbe40b91f$var$h(\"div.laterally-extensive-unit\", boxes.map((d, i)=>{\n return $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$StratColSpan, {\n scale: scale,\n data: d,\n pixelScale: pixelScale,\n key: i,\n columnSpacing: columnSpacing\n });\n }));\n}\nfunction $25f1fcddbe40b91f$var$StratColSpan({ data: data, scale: scale, columnWidth: columnWidth = 100, columnSpacing: columnSpacing = 0, pixelScale: pixelScale = 1 }) {\n const { startCol: startCol, endCol: endCol, strat_name_long: strat_name_long, t_age: t_age, b_age: b_age } = data;\n const top = scale(t_age);\n const left = startCol * (columnWidth + columnSpacing);\n const width = (endCol - startCol + 1) * (columnWidth + columnSpacing);\n const height = (b_age - t_age) * pixelScale;\n return $25f1fcddbe40b91f$var$h(\"div.strat-col-span\", {\n style: {\n top: top,\n height: height,\n width: width,\n left: left\n }\n }, strat_name_long);\n}\nfunction $25f1fcddbe40b91f$var$ChartArea({ children: children }) {\n const setSelectedUnit = (0, $a3mb1.useUnitSelectionStore)((state)=>state.setSelectedUnit);\n return $25f1fcddbe40b91f$var$h(\"div.correlation-chart-inner\", {\n onClick () {\n setSelectedUnit(null);\n }\n }, children);\n}\nfunction $25f1fcddbe40b91f$var$TimescaleColumn(props) {\n const { scaleInfo: scaleInfo, unconformityLabels: unconformityLabels = true } = props;\n return $25f1fcddbe40b91f$var$h(\"div.column-container.age-axis-container\", [\n $25f1fcddbe40b91f$var$h((0, $4hG2H.CompositeAgeAxisCore), {\n ...scaleInfo\n }),\n $25f1fcddbe40b91f$var$h((0, $7exMg.CompositeTimescaleCore), {\n ...scaleInfo,\n unconformityLabels: unconformityLabels\n })\n ]);\n}\n\n\nexport {$25f1fcddbe40b91f$export$9ebf875c09445bec as CorrelationChart};\n//# sourceMappingURL=column-views.45defa84.js.map\n","/** Correlation chart */\nimport {\n UnitSelectionProvider,\n UnitKeyboardNavigation,\n useUnitSelectionStore,\n} from \"../units\";\nimport { UnitSelectionPopover } from \"../unit-details\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMemo, useRef } from \"react\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { CompositeTimescaleCore } from \"../section\";\nimport classNames from \"classnames\";\nimport {\n findLaterallyExtensiveUnits,\n splitStratIntoBoxes,\n UnitGroupBox,\n CorrelationChartSettings,\n buildCorrelationChartData,\n} from \"./prepare-data\";\nimport {\n CompositeAgeAxisCore,\n CompositeStratigraphicScaleInfo,\n} from \"../age-axis\";\nimport {\n ColumnAxisType,\n ColumnProvider,\n SVG,\n} from \"@macrostrat/column-components\";\nimport { ColoredUnitComponent } from \"../units\";\nimport { UnitBoxes } from \"../units/boxes\";\nimport { ExtUnit } from \"../prepare-units/helpers\";\nimport { ColumnContainer } from \"../column\";\nimport { ColumnData } from \"../data-provider\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\n\nconst h = hyper.styled(styles);\n\nexport interface CorrelationChartProps extends CorrelationChartSettings {\n data: ColumnData[];\n columnWidth?: number;\n columnSpacing?: number;\n targetUnitHeight?: number;\n unconformityLabels?: boolean;\n selectedUnit?: number | null;\n showUnitPopover?: boolean;\n unitComponent?: any;\n onUnitSelected?: (unitID: number | null, unit: BaseUnit | null) => void;\n}\n\nexport function CorrelationChart({\n data,\n columnSpacing = 0,\n columnWidth = 130,\n unconformityLabels = true,\n showUnitPopover = true,\n selectedUnit,\n onUnitSelected,\n unitComponent,\n ...scaleProps\n}: CorrelationChartProps) {\n const defaultScaleProps = {\n targetUnitHeight: 10,\n unconformityHeight: 60,\n minSectionHeight: 60,\n collapseSmallUnconformities: true,\n };\n\n const chartData = useMemo(() => {\n if (!data) return null;\n return buildCorrelationChartData(data, {\n ...defaultScaleProps,\n ...scaleProps,\n });\n }, [data, ...Object.values(scaleProps)]);\n\n const columnRef = useRef(null);\n\n // A flattened units array is used to support keyboard navigation\n const units = useMemo(() => {\n return data?.map((d0) => d0.units).flat() ?? [];\n }, [data]);\n\n const inDarkMode = useInDarkMode();\n\n const className = classNames({\n \"dark-mode\": inDarkMode,\n });\n\n if (chartData == null) {\n return null;\n }\n\n const { packages, scaleInfo, nColumns } = chartData;\n\n const mainWidth = (columnWidth + columnSpacing) * nColumns;\n\n return h(\n ColumnContainer,\n { className: \"correlation-diagram\" },\n h(\n UnitSelectionProvider,\n { columnRef, selectedUnit, onUnitSelected, units },\n h(ChartArea, [\n h(TimescaleColumn, {\n key: \"timescale\",\n scaleInfo,\n unconformityLabels,\n }),\n h(\"div.main-chart\", { ref: columnRef }, [\n h(\n SVG,\n {\n className,\n innerWidth: mainWidth,\n height: scaleInfo.totalHeight,\n paddingH: 4,\n },\n packages.map((pkg, i) => {\n const { offset, domain, pixelScale, key } = scaleInfo.packages[i];\n return h(Package, {\n columnData: pkg.columnData,\n key,\n columnWidth,\n columnSpacing,\n offset,\n domain,\n pixelScale,\n unitComponent,\n });\n }),\n ),\n h.if(showUnitPopover)(UnitSelectionPopover),\n // Navigation only works within a column for now...\n h(UnitKeyboardNavigation, { units }),\n ]),\n ]),\n ),\n );\n}\n\nfunction Package({\n columnData,\n columnSpacing,\n columnWidth,\n unitComponent,\n offset,\n domain,\n pixelScale,\n}) {\n return h(\"g.package\", { transform: `translate(0 ${offset})` }, [\n // Disable the SVG overlay for now\n //h(PackageSVGOverlay, { data, columnSpacing }),\n h(\"g.column-units\", [\n columnData.map((data, i) => {\n return h(Column, {\n units: data.units,\n unitComponent,\n width: columnWidth,\n key: i,\n domain,\n pixelScale,\n offsetLeft: i * (columnWidth + columnSpacing),\n });\n }),\n ]),\n ]);\n}\n\ninterface ColumnProps {\n units: ExtUnit[];\n unitComponent?: React.FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n columnSpacing?: number;\n targetUnitHeight?: number;\n offsetLeft?: number;\n domain: [number, number];\n pixelScale: number;\n}\n\nfunction Column(props: ColumnProps) {\n const {\n units,\n width = 150,\n offsetLeft,\n domain,\n pixelScale,\n unitComponent = ColoredUnitComponent,\n } = props;\n\n const columnWidth = width;\n\n if (units.length == 0) {\n return null;\n }\n\n return h(\n \"g.section\",\n {\n transform: `translate(${offsetLeft} 0)`,\n },\n h(\n ColumnProvider,\n {\n // Need to tighten up types here...\n divisions: units as any[],\n range: domain,\n pixelsPerMeter: pixelScale, // Actually pixels per myr\n axisType: ColumnAxisType.AGE,\n },\n h(UnitBoxes, {\n unitComponent,\n unitComponentProps: {\n nColumns: 2,\n width: columnWidth,\n showLabel: false,\n },\n }),\n ),\n );\n}\n\nfunction PackageSVGOverlay({ data, columnWidth = 100, columnSpacing = 0 }) {\n const { b_age, t_age, bestPixelScale, columnData } = data;\n\n const width = (columnWidth + columnSpacing) * columnData.length;\n const height = Math.ceil((b_age - t_age) * bestPixelScale) + 2;\n\n const extensiveUnits = findLaterallyExtensiveUnits(data);\n\n const scale = (val: number) => {\n return (val - t_age) * bestPixelScale;\n };\n\n return h(\n \"div.package-overlay\",\n { style: { width, height } },\n extensiveUnits.map((d) => {\n return h(LaterallyExtensiveUnit, {\n data: d,\n scale,\n pixelScale: bestPixelScale,\n columnSpacing,\n });\n }),\n );\n}\n\nfunction LaterallyExtensiveUnit({ data, scale, pixelScale, columnSpacing }) {\n const { b_age, t_age, strat_name_long, units } = data;\n // Build boxes by column groups\n const boxes: UnitGroupBox[] = splitStratIntoBoxes(data);\n\n return h(\n \"div.laterally-extensive-unit\",\n boxes.map((d, i) => {\n return h(StratColSpan, {\n scale,\n data: d,\n pixelScale,\n key: i,\n columnSpacing,\n });\n }),\n );\n}\n\nfunction StratColSpan({\n data,\n scale,\n columnWidth = 100,\n columnSpacing = 0,\n pixelScale = 1,\n}) {\n const { startCol, endCol, strat_name_long, t_age, b_age } = data;\n const top = scale(t_age);\n const left = startCol * (columnWidth + columnSpacing);\n const width = (endCol - startCol + 1) * (columnWidth + columnSpacing);\n const height = (b_age - t_age) * pixelScale;\n return h(\n \"div.strat-col-span\",\n { style: { top, height, width, left } },\n strat_name_long,\n );\n}\n\nfunction ChartArea({ children }) {\n const setSelectedUnit = useUnitSelectionStore(\n (state) => state.setSelectedUnit,\n );\n\n return h(\n \"div.correlation-chart-inner\",\n {\n onClick() {\n setSelectedUnit(null);\n },\n },\n children,\n );\n}\n\ninterface TimescaleColumnProps {\n scaleInfo: CompositeStratigraphicScaleInfo;\n showLabels?: boolean;\n unconformityLabels?: boolean;\n}\n\nfunction TimescaleColumn(props: TimescaleColumnProps) {\n const { scaleInfo, unconformityLabels = true } = props;\n return h(\"div.column-container.age-axis-container\", [\n h(CompositeAgeAxisCore, { ...scaleInfo }),\n h(CompositeTimescaleCore, { ...scaleInfo, unconformityLabels }),\n ]);\n}\n"],"names":["$8OJSO$macrostrathyper","useMemo","$8OJSO$useMemo","useRef","$8OJSO$useRef","useInDarkMode","$8OJSO$useInDarkMode","$8OJSO$classnames","SVG","$8OJSO$SVG","ColumnProvider","$8OJSO$ColumnProvider","ColumnAxisType","$8OJSO$ColumnAxisType","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$25f1fcddbe40b91f$export$9ebf875c09445bec","set","s","enumerable","configurable","$7tWYE","$a3mb1","$2KV3o","$cf1sk","$7exMg","$8ldOM","$4hG2H","$1n4Pb","$dMbCm","$25f1fcddbe40b91f$var$h","styled","a","__esModule","default","data","columnSpacing","columnWidth","unconformityLabels","showUnitPopover","selectedUnit","onUnitSelected","unitComponent","scaleProps","defaultScaleProps","targetUnitHeight","unconformityHeight","minSectionHeight","collapseSmallUnconformities","chartData","buildCorrelationChartData","values","columnRef","units","map","d0","flat","className","packages","scaleInfo","nColumns","ColumnContainer","UnitSelectionProvider","$25f1fcddbe40b91f$var$ChartArea","$25f1fcddbe40b91f$var$TimescaleColumn","key","ref","innerWidth","height","totalHeight","paddingH","pkg","i","offset","domain","pixelScale","$25f1fcddbe40b91f$var$Package","columnData","if","UnitSelectionPopover","UnitKeyboardNavigation","transform","$25f1fcddbe40b91f$var$Column","width","offsetLeft","props","ColoredUnitComponent","length","divisions","range","pixelsPerMeter","axisType","AGE","UnitBoxes","unitComponentProps","showLabel","children","setSelectedUnit","useUnitSelectionStore","state","onClick","CompositeAgeAxisCore","CompositeTimescaleCore","CorrelationChart"],"version":3,"file":"column-views.45defa84.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,W,C,C,U,C,K,O,A,Q,iB,C,K,2B,A,Q,M,Y,A,Q,O,C,C,kB,C,C,kB,C,K,+B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,mB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,SCAA,EAAA,EAAA,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SAoCA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAchB,SAAS,EAAiB,CAAA,KAC/B,CAAI,CAAA,cACJ,EAAgB,CAAA,CAAA,YAChB,EAAc,GAAA,CAAA,mBACd,EAAqB,CAAA,CAAA,CAAA,gBACrB,EAAkB,CAAA,CAAA,CAAA,aAClB,CAAY,CAAA,eACZ,CAAc,CAAA,cACd,CAAa,CACb,GAAG,EACmB,EACtB,IAAM,EAAoB,CACxB,iBAAkB,GAClB,mBAAoB,GACpB,iBAAkB,GAClB,4BAA6B,CAAA,CAC/B,EAEM,EAAY,AAAA,EAAQ,IACxB,AAAK,EACE,AAAA,CAAA,EAAA,EAAA,yBAAwB,AAAxB,EAA0B,EAAM,CACrC,GAAG,CAAiB,CACpB,GAAG,CAAU,AACf,GAJkB,KAKjB,CAAC,KAAS,OAAO,MAAM,CAAC,GAAY,EAEjC,EAAY,AAAA,EAAO,MAGnB,EAAQ,AAAA,EAAQ,IACb,GAAM,IAAI,AAAC,GAAO,EAAG,KAAK,EAAE,QAAU,EAAE,CAC9C,CAAC,EAAK,EAIH,EAAY,AAAA,EAAW,CAC3B,YAHiB,AAAA,GAInB,GAEA,GAAI,AAAa,MAAb,EACF,OAAO,KAGT,GAAM,CAAA,SAAE,CAAQ,CAAA,UAAE,CAAS,CAAA,SAAE,CAAQ,CAAE,CAAG,EAI1C,OAAO,EACL,EAAA,eAAc,CACd,CAAE,UAAW,qBAAsB,EACnC,EACE,EAAA,qBAAoB,CACpB,CAAE,UAAA,EAAW,aAAA,EAAc,eAAA,EAAgB,MAAA,CAAM,EACjD,EAAE,EAAW,CACX,EAAE,EAAiB,CACjB,IAAK,YACL,UAAA,EACA,mBAAA,CACF,GACA,EAAE,iBAAkB,CAAE,IAAK,CAAU,EAAG,CACtC,EACE,EACA,CACE,UAAA,EACA,WAnBM,AAAC,CAAA,EAAc,CAAA,EAAiB,EAoBtC,OAAQ,EAAU,WAAW,CAC7B,SAAU,CACZ,EACA,EAAS,GAAG,CAAC,CAAC,EAAK,KACjB,GAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAA,WAAE,CAAU,CAAA,IAAE,CAAG,CAAE,CAAG,EAAU,QAAQ,CAAC,EAAE,CACjE,OAAO,EAAE,EAAS,CAChB,WAAY,EAAI,UAAU,CAC1B,IAAA,EACA,YAAA,EACA,cAAA,EACA,OAAA,EACA,OAAA,EACA,WAAA,EACA,cAAA,CACF,EACF,IAEF,EAAE,EAAE,CAAC,GAAiB,EAAA,oBAAmB,EAEzC,EAAE,EAAA,sBAAqB,CAAG,CAAE,MAAA,CAAM,GACnC,EACF,GAGP,CAEA,SAAS,EAAQ,CAAA,WACf,CAAU,CAAA,cACV,CAAa,CAAA,YACb,CAAW,CAAA,cACX,CAAa,CAAA,OACb,CAAM,CAAA,OACN,CAAM,CAAA,WACN,CAAU,CACX,EACC,OAAO,EAAE,YAAa,CAAE,UAAW,CAAC,YAAY,EAAE,EAAO,CAAC,CAAC,AAAC,EAAG,CAG7D,EAAE,iBAAkB,CAClB,EAAW,GAAG,CAAC,CAAC,EAAM,IACb,EAAE,EAAQ,CACf,MAAO,EAAK,KAAK,CACjB,cAAA,EACA,MAAO,EACP,IAAK,EACL,OAAA,EACA,WAAA,EACA,WAAY,EAAK,CAAA,EAAc,CAAA,CACjC,IAEH,EACF,CACH,CAgBA,SAAS,EAAO,CAAkB,EAChC,GAAM,CAAA,MACJ,CAAK,CAAA,MACL,EAAQ,GAAA,CAAA,WACR,CAAU,CAAA,OACV,CAAM,CAAA,WACN,CAAU,CAAA,cACV,EAAgB,EAAA,oBAAmB,AAAA,CACpC,CAAG,SAIJ,AAAI,AAAgB,GAAhB,EAAM,MAAM,CACP,KAGF,EACL,YACA,CACE,UAAW,CAAC,UAAU,EAAE,EAAW,GAAG,CAAC,AACzC,EACA,EACE,EACA,CAEE,UAAW,EACX,MAAO,EACP,eAAgB,EAChB,SAAU,AAAA,EAAe,GAAG,AAC9B,EACA,EAAE,EAAA,SAAQ,CAAG,CACX,cAAA,EACA,mBAAoB,CAClB,SAAU,EACV,MAxBY,EAyBZ,UAAW,CAAA,CACb,CACF,IAGN,CAkEA,SAAS,EAAU,CAAA,SAAE,CAAQ,CAAE,EAC7B,IAAM,EAAkB,AAAA,CAAA,EAAA,EAAA,qBAAoB,AAApB,EACtB,AAAC,GAAU,EAAM,eAAe,EAGlC,OAAO,EACL,8BACA,CACE,UACE,EAAgB,KAClB,CACF,EACA,EAEJ,CAQA,SAAS,EAAgB,CAA2B,EAClD,GAAM,CAAA,UAAE,CAAS,CAAA,mBAAE,EAAqB,CAAA,CAAA,CAAM,CAAG,EACjD,OAAO,EAAE,0CAA2C,CAClD,EAAE,EAAA,oBAAmB,CAAG,CAAE,GAAG,CAAS,AAAC,GACvC,EAAE,EAAA,sBAAqB,CAAG,CAAE,GAAG,CAAS,CAAE,mBAAA,CAAmB,GAC9D,CACH,Q,K,gB","sources":["<anon>","packages/column-views/src/correlation-chart/main.ts"],"sourcesContent":["import \"./column-views.91043465.js\";\nimport \"./column-views.3eeac38d.js\";\nimport \"./column-views.dfb2361a.js\";\nimport \"./column-views.fea32686.js\";\nimport \"./column-views.a7256aa7.js\";\nimport \"./column-views.1a0b56fc.js\";\nimport \"./column-views.4ca62e5d.js\";\nimport \"./column-views.2d957a97.js\";\nimport \"./column-views.758b9bc1.js\";\nimport $8OJSO$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $8OJSO$useMemo, useRef as $8OJSO$useRef} from \"react\";\nimport {useInDarkMode as $8OJSO$useInDarkMode} from \"@macrostrat/ui-components\";\nimport $8OJSO$classnames from \"classnames\";\nimport {SVG as $8OJSO$SVG, ColumnProvider as $8OJSO$ColumnProvider, ColumnAxisType as $8OJSO$ColumnAxisType} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $25f1fcddbe40b91f$exports = {};\n\n$parcel$export($25f1fcddbe40b91f$exports, \"CorrelationChart\", () => $25f1fcddbe40b91f$export$9ebf875c09445bec);\n/** Correlation chart */ \nvar $7tWYE = parcelRequire(\"7tWYE\");\nvar $a3mb1 = parcelRequire(\"a3mb1\");\n\nvar $2KV3o = parcelRequire(\"2KV3o\");\n\n\nvar $cf1sk = parcelRequire(\"cf1sk\");\n\n\n\nvar $7exMg = parcelRequire(\"7exMg\");\n\n\nvar $8ldOM = parcelRequire(\"8ldOM\");\n\nvar $4hG2H = parcelRequire(\"4hG2H\");\n\n\nvar $1n4Pb = parcelRequire(\"1n4Pb\");\n\nvar $dMbCm = parcelRequire(\"dMbCm\");\nconst $25f1fcddbe40b91f$var$h = (0, $8OJSO$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($cf1sk))));\nfunction $25f1fcddbe40b91f$export$9ebf875c09445bec({ data: data, columnSpacing: columnSpacing = 0, columnWidth: columnWidth = 130, unconformityLabels: unconformityLabels = true, showUnitPopover: showUnitPopover = true, selectedUnit: selectedUnit, onUnitSelected: onUnitSelected, unitComponent: unitComponent, ...scaleProps }) {\n const defaultScaleProps = {\n targetUnitHeight: 10,\n unconformityHeight: 60,\n minSectionHeight: 60,\n collapseSmallUnconformities: true\n };\n const chartData = (0, $8OJSO$useMemo)(()=>{\n if (!data) return null;\n return (0, $8ldOM.buildCorrelationChartData)(data, {\n ...defaultScaleProps,\n ...scaleProps\n });\n }, [\n data,\n ...Object.values(scaleProps)\n ]);\n const columnRef = (0, $8OJSO$useRef)(null);\n // A flattened units array is used to support keyboard navigation\n const units = (0, $8OJSO$useMemo)(()=>{\n return data?.map((d0)=>d0.units).flat() ?? [];\n }, [\n data\n ]);\n const inDarkMode = (0, $8OJSO$useInDarkMode)();\n const className = (0, $8OJSO$classnames)({\n \"dark-mode\": inDarkMode\n });\n if (chartData == null) return null;\n const { packages: packages, scaleInfo: scaleInfo, nColumns: nColumns } = chartData;\n const mainWidth = (columnWidth + columnSpacing) * nColumns;\n return $25f1fcddbe40b91f$var$h((0, $dMbCm.ColumnContainer), {\n className: \"correlation-diagram\"\n }, $25f1fcddbe40b91f$var$h((0, $a3mb1.UnitSelectionProvider), {\n columnRef: columnRef,\n selectedUnit: selectedUnit,\n onUnitSelected: onUnitSelected,\n units: units\n }, $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$ChartArea, [\n $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$TimescaleColumn, {\n key: \"timescale\",\n scaleInfo: scaleInfo,\n unconformityLabels: unconformityLabels\n }),\n $25f1fcddbe40b91f$var$h(\"div.main-chart\", {\n ref: columnRef\n }, [\n $25f1fcddbe40b91f$var$h((0, $8OJSO$SVG), {\n className: className,\n innerWidth: mainWidth,\n height: scaleInfo.totalHeight,\n paddingH: 4\n }, packages.map((pkg, i)=>{\n const { offset: offset, domain: domain, pixelScale: pixelScale, key: key } = scaleInfo.packages[i];\n return $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$Package, {\n columnData: pkg.columnData,\n key: key,\n columnWidth: columnWidth,\n columnSpacing: columnSpacing,\n offset: offset,\n domain: domain,\n pixelScale: pixelScale,\n unitComponent: unitComponent\n });\n })),\n $25f1fcddbe40b91f$var$h.if(showUnitPopover)((0, $2KV3o.UnitSelectionPopover)),\n // Navigation only works within a column for now...\n $25f1fcddbe40b91f$var$h((0, $a3mb1.UnitKeyboardNavigation), {\n units: units\n })\n ])\n ])));\n}\nfunction $25f1fcddbe40b91f$var$Package({ columnData: columnData, columnSpacing: columnSpacing, columnWidth: columnWidth, unitComponent: unitComponent, offset: offset, domain: domain, pixelScale: pixelScale }) {\n return $25f1fcddbe40b91f$var$h(\"g.package\", {\n transform: `translate(0 ${offset})`\n }, [\n // Disable the SVG overlay for now\n //h(PackageSVGOverlay, { data, columnSpacing }),\n $25f1fcddbe40b91f$var$h(\"g.column-units\", [\n columnData.map((data, i)=>{\n return $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$Column, {\n units: data.units,\n unitComponent: unitComponent,\n width: columnWidth,\n key: i,\n domain: domain,\n pixelScale: pixelScale,\n offsetLeft: i * (columnWidth + columnSpacing)\n });\n })\n ])\n ]);\n}\nfunction $25f1fcddbe40b91f$var$Column(props) {\n const { units: units, width: width = 150, offsetLeft: offsetLeft, domain: domain, pixelScale: pixelScale, unitComponent: unitComponent = (0, $7tWYE.ColoredUnitComponent) } = props;\n const columnWidth = width;\n if (units.length == 0) return null;\n return $25f1fcddbe40b91f$var$h(\"g.section\", {\n transform: `translate(${offsetLeft} 0)`\n }, $25f1fcddbe40b91f$var$h((0, $8OJSO$ColumnProvider), {\n // Need to tighten up types here...\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale,\n axisType: (0, $8OJSO$ColumnAxisType).AGE\n }, $25f1fcddbe40b91f$var$h((0, $1n4Pb.UnitBoxes), {\n unitComponent: unitComponent,\n unitComponentProps: {\n nColumns: 2,\n width: columnWidth,\n showLabel: false\n }\n })));\n}\nfunction $25f1fcddbe40b91f$var$PackageSVGOverlay({ data: data, columnWidth: columnWidth = 100, columnSpacing: columnSpacing = 0 }) {\n const { b_age: b_age, t_age: t_age, bestPixelScale: bestPixelScale, columnData: columnData } = data;\n const width = (columnWidth + columnSpacing) * columnData.length;\n const height = Math.ceil((b_age - t_age) * bestPixelScale) + 2;\n const extensiveUnits = (0, $8ldOM.findLaterallyExtensiveUnits)(data);\n const scale = (val)=>{\n return (val - t_age) * bestPixelScale;\n };\n return $25f1fcddbe40b91f$var$h(\"div.package-overlay\", {\n style: {\n width: width,\n height: height\n }\n }, extensiveUnits.map((d)=>{\n return $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$LaterallyExtensiveUnit, {\n data: d,\n scale: scale,\n pixelScale: bestPixelScale,\n columnSpacing: columnSpacing\n });\n }));\n}\nfunction $25f1fcddbe40b91f$var$LaterallyExtensiveUnit({ data: data, scale: scale, pixelScale: pixelScale, columnSpacing: columnSpacing }) {\n const { b_age: b_age, t_age: t_age, strat_name_long: strat_name_long, units: units } = data;\n // Build boxes by column groups\n const boxes = (0, $8ldOM.splitStratIntoBoxes)(data);\n return $25f1fcddbe40b91f$var$h(\"div.laterally-extensive-unit\", boxes.map((d, i)=>{\n return $25f1fcddbe40b91f$var$h($25f1fcddbe40b91f$var$StratColSpan, {\n scale: scale,\n data: d,\n pixelScale: pixelScale,\n key: i,\n columnSpacing: columnSpacing\n });\n }));\n}\nfunction $25f1fcddbe40b91f$var$StratColSpan({ data: data, scale: scale, columnWidth: columnWidth = 100, columnSpacing: columnSpacing = 0, pixelScale: pixelScale = 1 }) {\n const { startCol: startCol, endCol: endCol, strat_name_long: strat_name_long, t_age: t_age, b_age: b_age } = data;\n const top = scale(t_age);\n const left = startCol * (columnWidth + columnSpacing);\n const width = (endCol - startCol + 1) * (columnWidth + columnSpacing);\n const height = (b_age - t_age) * pixelScale;\n return $25f1fcddbe40b91f$var$h(\"div.strat-col-span\", {\n style: {\n top: top,\n height: height,\n width: width,\n left: left\n }\n }, strat_name_long);\n}\nfunction $25f1fcddbe40b91f$var$ChartArea({ children: children }) {\n const setSelectedUnit = (0, $a3mb1.useUnitSelectionStore)((state)=>state.setSelectedUnit);\n return $25f1fcddbe40b91f$var$h(\"div.correlation-chart-inner\", {\n onClick () {\n setSelectedUnit(null);\n }\n }, children);\n}\nfunction $25f1fcddbe40b91f$var$TimescaleColumn(props) {\n const { scaleInfo: scaleInfo, unconformityLabels: unconformityLabels = true } = props;\n return $25f1fcddbe40b91f$var$h(\"div.column-container.age-axis-container\", [\n $25f1fcddbe40b91f$var$h((0, $4hG2H.CompositeAgeAxisCore), {\n ...scaleInfo\n }),\n $25f1fcddbe40b91f$var$h((0, $7exMg.CompositeTimescaleCore), {\n ...scaleInfo,\n unconformityLabels: unconformityLabels\n })\n ]);\n}\n\n\nexport {$25f1fcddbe40b91f$export$9ebf875c09445bec as CorrelationChart};\n//# sourceMappingURL=column-views.0dfc7ef7.js.map\n","/** Correlation chart */\nimport {\n UnitSelectionProvider,\n UnitKeyboardNavigation,\n useUnitSelectionStore,\n} from \"../units\";\nimport { UnitSelectionPopover } from \"../unit-details\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMemo, useRef } from \"react\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { CompositeTimescaleCore } from \"../section\";\nimport classNames from \"classnames\";\nimport {\n findLaterallyExtensiveUnits,\n splitStratIntoBoxes,\n UnitGroupBox,\n CorrelationChartSettings,\n buildCorrelationChartData,\n} from \"./prepare-data\";\nimport {\n CompositeAgeAxisCore,\n CompositeStratigraphicScaleInfo,\n} from \"../age-axis\";\nimport {\n ColumnAxisType,\n ColumnProvider,\n SVG,\n} from \"@macrostrat/column-components\";\nimport { ColoredUnitComponent } from \"../units\";\nimport { UnitBoxes } from \"../units/boxes\";\nimport { ExtUnit } from \"../prepare-units/helpers\";\nimport { ColumnContainer } from \"../column\";\nimport { ColumnData } from \"../data-provider\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\n\nconst h = hyper.styled(styles);\n\nexport interface CorrelationChartProps extends CorrelationChartSettings {\n data: ColumnData[];\n columnWidth?: number;\n columnSpacing?: number;\n targetUnitHeight?: number;\n unconformityLabels?: boolean;\n selectedUnit?: number | null;\n showUnitPopover?: boolean;\n unitComponent?: any;\n onUnitSelected?: (unitID: number | null, unit: BaseUnit | null) => void;\n}\n\nexport function CorrelationChart({\n data,\n columnSpacing = 0,\n columnWidth = 130,\n unconformityLabels = true,\n showUnitPopover = true,\n selectedUnit,\n onUnitSelected,\n unitComponent,\n ...scaleProps\n}: CorrelationChartProps) {\n const defaultScaleProps = {\n targetUnitHeight: 10,\n unconformityHeight: 60,\n minSectionHeight: 60,\n collapseSmallUnconformities: true,\n };\n\n const chartData = useMemo(() => {\n if (!data) return null;\n return buildCorrelationChartData(data, {\n ...defaultScaleProps,\n ...scaleProps,\n });\n }, [data, ...Object.values(scaleProps)]);\n\n const columnRef = useRef(null);\n\n // A flattened units array is used to support keyboard navigation\n const units = useMemo(() => {\n return data?.map((d0) => d0.units).flat() ?? [];\n }, [data]);\n\n const inDarkMode = useInDarkMode();\n\n const className = classNames({\n \"dark-mode\": inDarkMode,\n });\n\n if (chartData == null) {\n return null;\n }\n\n const { packages, scaleInfo, nColumns } = chartData;\n\n const mainWidth = (columnWidth + columnSpacing) * nColumns;\n\n return h(\n ColumnContainer,\n { className: \"correlation-diagram\" },\n h(\n UnitSelectionProvider,\n { columnRef, selectedUnit, onUnitSelected, units },\n h(ChartArea, [\n h(TimescaleColumn, {\n key: \"timescale\",\n scaleInfo,\n unconformityLabels,\n }),\n h(\"div.main-chart\", { ref: columnRef }, [\n h(\n SVG,\n {\n className,\n innerWidth: mainWidth,\n height: scaleInfo.totalHeight,\n paddingH: 4,\n },\n packages.map((pkg, i) => {\n const { offset, domain, pixelScale, key } = scaleInfo.packages[i];\n return h(Package, {\n columnData: pkg.columnData,\n key,\n columnWidth,\n columnSpacing,\n offset,\n domain,\n pixelScale,\n unitComponent,\n });\n }),\n ),\n h.if(showUnitPopover)(UnitSelectionPopover),\n // Navigation only works within a column for now...\n h(UnitKeyboardNavigation, { units }),\n ]),\n ]),\n ),\n );\n}\n\nfunction Package({\n columnData,\n columnSpacing,\n columnWidth,\n unitComponent,\n offset,\n domain,\n pixelScale,\n}) {\n return h(\"g.package\", { transform: `translate(0 ${offset})` }, [\n // Disable the SVG overlay for now\n //h(PackageSVGOverlay, { data, columnSpacing }),\n h(\"g.column-units\", [\n columnData.map((data, i) => {\n return h(Column, {\n units: data.units,\n unitComponent,\n width: columnWidth,\n key: i,\n domain,\n pixelScale,\n offsetLeft: i * (columnWidth + columnSpacing),\n });\n }),\n ]),\n ]);\n}\n\ninterface ColumnProps {\n units: ExtUnit[];\n unitComponent?: React.FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n columnSpacing?: number;\n targetUnitHeight?: number;\n offsetLeft?: number;\n domain: [number, number];\n pixelScale: number;\n}\n\nfunction Column(props: ColumnProps) {\n const {\n units,\n width = 150,\n offsetLeft,\n domain,\n pixelScale,\n unitComponent = ColoredUnitComponent,\n } = props;\n\n const columnWidth = width;\n\n if (units.length == 0) {\n return null;\n }\n\n return h(\n \"g.section\",\n {\n transform: `translate(${offsetLeft} 0)`,\n },\n h(\n ColumnProvider,\n {\n // Need to tighten up types here...\n divisions: units as any[],\n range: domain,\n pixelsPerMeter: pixelScale, // Actually pixels per myr\n axisType: ColumnAxisType.AGE,\n },\n h(UnitBoxes, {\n unitComponent,\n unitComponentProps: {\n nColumns: 2,\n width: columnWidth,\n showLabel: false,\n },\n }),\n ),\n );\n}\n\nfunction PackageSVGOverlay({ data, columnWidth = 100, columnSpacing = 0 }) {\n const { b_age, t_age, bestPixelScale, columnData } = data;\n\n const width = (columnWidth + columnSpacing) * columnData.length;\n const height = Math.ceil((b_age - t_age) * bestPixelScale) + 2;\n\n const extensiveUnits = findLaterallyExtensiveUnits(data);\n\n const scale = (val: number) => {\n return (val - t_age) * bestPixelScale;\n };\n\n return h(\n \"div.package-overlay\",\n { style: { width, height } },\n extensiveUnits.map((d) => {\n return h(LaterallyExtensiveUnit, {\n data: d,\n scale,\n pixelScale: bestPixelScale,\n columnSpacing,\n });\n }),\n );\n}\n\nfunction LaterallyExtensiveUnit({ data, scale, pixelScale, columnSpacing }) {\n const { b_age, t_age, strat_name_long, units } = data;\n // Build boxes by column groups\n const boxes: UnitGroupBox[] = splitStratIntoBoxes(data);\n\n return h(\n \"div.laterally-extensive-unit\",\n boxes.map((d, i) => {\n return h(StratColSpan, {\n scale,\n data: d,\n pixelScale,\n key: i,\n columnSpacing,\n });\n }),\n );\n}\n\nfunction StratColSpan({\n data,\n scale,\n columnWidth = 100,\n columnSpacing = 0,\n pixelScale = 1,\n}) {\n const { startCol, endCol, strat_name_long, t_age, b_age } = data;\n const top = scale(t_age);\n const left = startCol * (columnWidth + columnSpacing);\n const width = (endCol - startCol + 1) * (columnWidth + columnSpacing);\n const height = (b_age - t_age) * pixelScale;\n return h(\n \"div.strat-col-span\",\n { style: { top, height, width, left } },\n strat_name_long,\n );\n}\n\nfunction ChartArea({ children }) {\n const setSelectedUnit = useUnitSelectionStore(\n (state) => state.setSelectedUnit,\n );\n\n return h(\n \"div.correlation-chart-inner\",\n {\n onClick() {\n setSelectedUnit(null);\n },\n },\n children,\n );\n}\n\ninterface TimescaleColumnProps {\n scaleInfo: CompositeStratigraphicScaleInfo;\n showLabels?: boolean;\n unconformityLabels?: boolean;\n}\n\nfunction TimescaleColumn(props: TimescaleColumnProps) {\n const { scaleInfo, unconformityLabels = true } = props;\n return h(\"div.column-container.age-axis-container\", [\n h(CompositeAgeAxisCore, { ...scaleInfo }),\n h(CompositeTimescaleCore, { ...scaleInfo, unconformityLabels }),\n ]);\n}\n"],"names":["$8OJSO$macrostrathyper","useMemo","$8OJSO$useMemo","useRef","$8OJSO$useRef","useInDarkMode","$8OJSO$useInDarkMode","$8OJSO$classnames","SVG","$8OJSO$SVG","ColumnProvider","$8OJSO$ColumnProvider","ColumnAxisType","$8OJSO$ColumnAxisType","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$25f1fcddbe40b91f$export$9ebf875c09445bec","set","s","enumerable","configurable","$7tWYE","$a3mb1","$2KV3o","$cf1sk","$7exMg","$8ldOM","$4hG2H","$1n4Pb","$dMbCm","$25f1fcddbe40b91f$var$h","styled","a","__esModule","default","data","columnSpacing","columnWidth","unconformityLabels","showUnitPopover","selectedUnit","onUnitSelected","unitComponent","scaleProps","defaultScaleProps","targetUnitHeight","unconformityHeight","minSectionHeight","collapseSmallUnconformities","chartData","buildCorrelationChartData","values","columnRef","units","map","d0","flat","className","packages","scaleInfo","nColumns","ColumnContainer","UnitSelectionProvider","$25f1fcddbe40b91f$var$ChartArea","$25f1fcddbe40b91f$var$TimescaleColumn","key","ref","innerWidth","height","totalHeight","paddingH","pkg","i","offset","domain","pixelScale","$25f1fcddbe40b91f$var$Package","columnData","if","UnitSelectionPopover","UnitKeyboardNavigation","transform","$25f1fcddbe40b91f$var$Column","width","offsetLeft","props","ColoredUnitComponent","length","divisions","range","pixelsPerMeter","axisType","AGE","UnitBoxes","unitComponentProps","showLabel","children","setSelectedUnit","useUnitSelectionStore","state","onClick","CompositeAgeAxisCore","CompositeTimescaleCore","CorrelationChart"],"version":3,"file":"column-views.0dfc7ef7.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ .XUD4UG_legend-panel-header{border-bottom:1px solid var(--panel-rule-color);background-color:var(--panel-secondary-background-color);z-index:50;justify-content:space-between;align-items:center;gap:.5em;min-height:45px;padding:.5em 1em;display:flex;position:sticky;top:0;overflow:hidden}.XUD4UG_legend-panel-header .XUD4UG_title-container{z-index:5;flex-grow:1;align-items:center;gap:.5em;margin:0}.XUD4UG_legend-panel-header .XUD4UG_title-container:hover .XUD4UG_hidden-actions-container{visibility:visible}.XUD4UG_legend-panel-header .XUD4UG_title-container h1,.XUD4UG_legend-panel-header .XUD4UG_title-container h2,.XUD4UG_legend-panel-header .XUD4UG_title-container h3{margin:0;display:inline}.XUD4UG_legend-panel-header .XUD4UG_title-container .XUD4UG_hidden-actions-container{visibility:hidden}.XUD4UG_legend-panel-header .XUD4UG_title-container button{transform:translateY(0)}.XUD4UG_legend-panel-header code{color:var(--secondary-color);font-size:.9em}.XUD4UG_legend-panel-header .XUD4UG_unit-id:before{content:"#";color:var(--secondary-color)}.XUD4UG_legend-panel-header .XUD4UG_spacer{flex:1}.XUD4UG_unit-details-panel{flex-direction:column;display:flex}.XUD4UG_unit-details-panel .XUD4UG_unit-details-content-holder{flex:1;overflow-y:scroll}.XUD4UG_unit-details-content{margin:1em;position:relative}.XUD4UG_proportion,.XUD4UG_sep,.XUD4UG_no-units,.XUD4UG_strat-name-text{color:var(--secondary-color);font-style:italic}.XUD4UG_strat-name-id,.XUD4UG_identifier{font-family:var(--monospace-font);color:var(--secondary-color)}.XUD4UG_strat-name-id:before,.XUD4UG_identifier:before{content:"#";color:var(--tertiary-color)}.XUD4UG_color-swatch{border:1px solid var(--panel-rule-color);border-radius:.2em;width:1em;height:1em;margin-right:.2em;display:inline-block}.XUD4UG_refs{margin:0;padding-left:0;list-style:none}.XUD4UG_interval-proportions{text-align:right;flex-grow:1;width:100%}.XUD4UG_interval-proportions .XUD4UG_discourage-break{white-space:nowrap}.XUD4UG_interval-proportions .XUD4UG_sep{margin:0 .3em}.XUD4UG_clickable{cursor:pointer}.XUD4UG_hidden-actions-container{width:0;min-width:0;display:inline-block;position:relative}.XUD4UG_hidden-actions{background-color:var(--panel-secondary-background-color);z-index:50;align-items:center;gap:.25em;width:fit-content;padding-left:1em;display:flex;position:relative;bottom:0}.XUD4UG_hidden-actions button{color:var(--secondary-color)!important}
2
+ /*# sourceMappingURL=column-views.2926f656.css.map */
@@ -0,0 +1 @@
1
+ {"mappings":"ACAA,8RAaE,+GAOI,8GAEF,6LAGA,uGAEA,mFAGF,6EAGA,4FAKA,kDAGF,8DAGE,wFAIF,0DAIA,uHAIA,wGAIE,+FAIF,6IAQA,qDAKA,qEAIE,yEAEA,uDAGF,iCAGA,4FAOA,mMAUE","sources":["column-views.2926f656.css","packages/column-views/src/unit-details/panel.module.sass"],"sourcesContent":[".XUD4UG_legend-panel-header {\n border-bottom: 1px solid var(--panel-rule-color);\n background-color: var(--panel-secondary-background-color);\n z-index: 50;\n justify-content: space-between;\n align-items: center;\n gap: .5em;\n min-height: 45px;\n padding: .5em 1em;\n display: flex;\n position: sticky;\n top: 0;\n overflow: hidden;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container {\n z-index: 5;\n flex-grow: 1;\n align-items: center;\n gap: .5em;\n margin: 0;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container:hover .XUD4UG_hidden-actions-container {\n visibility: visible;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container h1, .XUD4UG_legend-panel-header .XUD4UG_title-container h2, .XUD4UG_legend-panel-header .XUD4UG_title-container h3 {\n margin: 0;\n display: inline;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container .XUD4UG_hidden-actions-container {\n visibility: hidden;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container button {\n transform: translateY(0);\n}\n\n.XUD4UG_legend-panel-header code {\n color: var(--secondary-color);\n font-size: .9em;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_unit-id:before {\n content: \"#\";\n color: var(--secondary-color);\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_spacer {\n flex: 1;\n}\n\n.XUD4UG_unit-details-panel {\n flex-direction: column;\n display: flex;\n}\n\n.XUD4UG_unit-details-panel .XUD4UG_unit-details-content-holder {\n flex: 1;\n overflow-y: scroll;\n}\n\n.XUD4UG_unit-details-content {\n margin: 1em;\n position: relative;\n}\n\n.XUD4UG_proportion, .XUD4UG_sep, .XUD4UG_no-units, .XUD4UG_strat-name-text {\n color: var(--secondary-color);\n font-style: italic;\n}\n\n.XUD4UG_strat-name-id, .XUD4UG_identifier {\n font-family: var(--monospace-font);\n color: var(--secondary-color);\n}\n\n.XUD4UG_strat-name-id:before, .XUD4UG_identifier:before {\n content: \"#\";\n color: var(--tertiary-color);\n}\n\n.XUD4UG_color-swatch {\n border: 1px solid var(--panel-rule-color);\n border-radius: .2em;\n width: 1em;\n height: 1em;\n margin-right: .2em;\n display: inline-block;\n}\n\n.XUD4UG_refs {\n margin: 0;\n padding-left: 0;\n list-style: none;\n}\n\n.XUD4UG_interval-proportions {\n text-align: right;\n flex-grow: 1;\n width: 100%;\n}\n\n.XUD4UG_interval-proportions .XUD4UG_discourage-break {\n white-space: nowrap;\n}\n\n.XUD4UG_interval-proportions .XUD4UG_sep {\n margin: 0 .3em;\n}\n\n.XUD4UG_clickable {\n cursor: pointer;\n}\n\n.XUD4UG_hidden-actions-container {\n width: 0;\n min-width: 0;\n display: inline-block;\n position: relative;\n}\n\n.XUD4UG_hidden-actions {\n background-color: var(--panel-secondary-background-color);\n z-index: 50;\n align-items: center;\n gap: .25em;\n width: fit-content;\n padding-left: 1em;\n display: flex;\n position: relative;\n bottom: 0;\n}\n\n.XUD4UG_hidden-actions button {\n color: var(--secondary-color) !important;\n}\n/*# sourceMappingURL=column-views.2926f656.css.map */\n",".legend-panel-header\n display: flex\n justify-content: space-between\n align-items: center\n gap: 0.5em\n border-bottom: 1px solid var(--panel-rule-color)\n position: sticky\n top: 0\n background-color: var(--panel-secondary-background-color)\n padding: 0.5em 1em\n z-index: 50\n min-height: 45px\n overflow: hidden\n .title-container\n gap: 0.5em\n align-items: center\n margin: 0\n flex-grow: 1\n z-index: 5\n &:hover\n .hidden-actions-container\n visibility: visible\n h1, h2, h3\n display: inline\n margin: 0\n .hidden-actions-container\n visibility: hidden\n button\n transform: translateY(0px)\n\n code\n font-size: 0.9em\n color: var(--secondary-color)\n .unit-id:before\n content: '#'\n // Tertiary color is too light...\n color: var(--secondary-color)\n\n .spacer\n flex: 1\n\n.unit-details-panel\n display: flex\n flex-direction: column\n .unit-details-content-holder\n flex: 1\n overflow-y: scroll\n\n.unit-details-content\n position: relative\n margin: 1em\n\n.proportion, .sep, .no-units, .strat-name-text\n color: var(--secondary-color)\n font-style: italic\n\n.strat-name-id, .identifier\n font-family: var(--monospace-font)\n color: var(--secondary-color)\n\n &::before\n content: '#'\n color: var(--tertiary-color)\n\n.color-swatch\n width: 1em\n height: 1em\n border-radius: 0.2em\n margin-right: 0.2em\n border: 1px solid var(--panel-rule-color)\n display: inline-block\n\n.refs\n list-style: none\n margin: 0\n padding-left: 0\n\n.interval-proportions\n flex-grow: 1\n width: 100%\n text-align: right\n .discourage-break\n white-space: nowrap\n .sep\n margin: 0 0.3em\n\n.clickable\n cursor: pointer\n\n.hidden-actions-container\n min-width: 0\n display: inline-block\n //margin-right: -5em\n width: 0\n position: relative\n\n.hidden-actions\n padding-left: 1em\n width: fit-content\n display: flex\n align-items: center\n gap: 0.25em\n background-color: var(--panel-secondary-background-color)\n z-index: 50\n position: relative\n bottom: 0\n button\n color: var(--secondary-color) !important\n"],"names":[],"version":3,"file":"column-views.2926f656.css.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.085f4a51.js";import e from"@macrostrat/hyper";import{useAPIResult as r}from"@macrostrat/ui-components";var t=globalThis,n={},a={},o=t.parcelRequirea149;null==o&&((o=function(e){if(e in n)return n[e].exports;if(e in a){var r=a[e];delete a[e];var t={id:e,exports:{}};return n[e]=t,r.call(t.exports,t,t.exports),t.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,r){a[e]=r},t.parcelRequirea149=o),o.register,Object.defineProperty({},"SGPMeasurementsColumn",{get:()=>l,set:void 0,enumerable:!0,configurable:!0});var s=o("3S9SB");function l({columnID:t,color:n="magenta"}){let a=function({col_id:e}){return r("https://dev.macrostrat.org/api/pg/sgp_unit_matches",{col_id:`eq.${e}`},e=>e)}({col_id:t});return null==a?null:e(s.BaseMeasurementsColumn,{data:a,noteComponent:u})}function u(r){let{note:t}=r,n=t?.data?.sgp_samples;return null==n||0===n.length?null:e(s.TruncatedList,{className:"sgp-samples",data:n,itemRenderer:r=>e("span",r.data.name)})}export{l as SGPMeasurementsColumn};
2
+ //# sourceMappingURL=column-views.2a6b842d.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,M,6C,A,Q,M,mB,A,Q,gB,C,K,2B,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,wB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,SCgBO,SAAS,EAAsB,CAAA,SAAE,CAAQ,CAAA,MAAE,EAAQ,SAAA,CAAW,EACnE,IAAM,EAAO,AAbf,SAAoB,CAAA,OAAE,CAAM,CAAE,EAS5B,OARY,AAAA,EACV,qDACA,CACE,OAAQ,CAAC,GAAG,EAAE,EAAA,CAAQ,AACxB,EACA,AAAC,GAAM,EAIX,EAG0B,CAAE,OAAQ,CAAS,UAE3C,AAAI,AAAQ,MAAR,EAAqB,KAElB,AAAA,EAAE,EAAA,sBAAqB,CAAG,CAC/B,KAAA,EACA,cAAe,CACjB,EACF,CAEA,SAAS,EAAe,CAAK,EAC3B,GAAM,CAAA,KAAE,CAAI,CAAE,CAAG,EACX,EAAc,GAAM,MAAM,mBAEhC,AAAI,AAAe,MAAf,GAAuB,AAAuB,IAAvB,EAAY,MAAM,CAAe,KAErD,AAAA,EAAE,EAAA,aAAY,CAAG,CACtB,UAAW,cACX,KAAM,EACN,aAAc,AAAC,GAAM,AAAA,EAAE,OAAQ,EAAE,IAAI,CAAC,IAAI,CAC5C,EACF,Q,K,qB","sources":["<anon>","packages/column-views/src/facets/measurements/index.ts"],"sourcesContent":["import \"./column-views.085f4a51.js\";\nimport $d6zmK$macrostrathyper from \"@macrostrat/hyper\";\nimport {useAPIResult as $d6zmK$useAPIResult} from \"@macrostrat/ui-components\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $30f674067bcc490b$exports = {};\n\n$parcel$export($30f674067bcc490b$exports, \"SGPMeasurementsColumn\", () => $30f674067bcc490b$export$c49cf57576706bab);\n\n\n\nvar $3S9SB = parcelRequire(\"3S9SB\");\nfunction $30f674067bcc490b$var$useSGPData({ col_id: col_id }) {\n const res = (0, $d6zmK$useAPIResult)(\"https://dev.macrostrat.org/api/pg/sgp_unit_matches\", {\n col_id: `eq.${col_id}`\n }, (d)=>d);\n return res;\n}\nfunction $30f674067bcc490b$export$c49cf57576706bab({ columnID: columnID, color: color = \"magenta\" }) {\n const data = $30f674067bcc490b$var$useSGPData({\n col_id: columnID\n });\n if (data == null) return null;\n return (0, $d6zmK$macrostrathyper)((0, $3S9SB.BaseMeasurementsColumn), {\n data: data,\n noteComponent: $30f674067bcc490b$var$SGPSamplesNote\n });\n}\nfunction $30f674067bcc490b$var$SGPSamplesNote(props) {\n const { note: note } = props;\n const sgp_samples = note?.data?.sgp_samples;\n if (sgp_samples == null || sgp_samples.length === 0) return null;\n return (0, $d6zmK$macrostrathyper)((0, $3S9SB.TruncatedList), {\n className: \"sgp-samples\",\n data: sgp_samples,\n itemRenderer: (p)=>(0, $d6zmK$macrostrathyper)(\"span\", p.data.name)\n });\n}\n\n\nexport {$30f674067bcc490b$export$c49cf57576706bab as SGPMeasurementsColumn};\n//# sourceMappingURL=column-views.2a6b842d.js.map\n","import h from \"@macrostrat/hyper\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport { BaseMeasurementsColumn, TruncatedList } from \"../fossils\";\n\nfunction useSGPData({ col_id }) {\n const res = useAPIResult(\n \"https://dev.macrostrat.org/api/pg/sgp_unit_matches\",\n {\n col_id: `eq.${col_id}`,\n },\n (d) => d,\n );\n\n return res;\n}\n\nexport function SGPMeasurementsColumn({ columnID, color = \"magenta\" }) {\n const data = useSGPData({ col_id: columnID });\n\n if (data == null) return null;\n\n return h(BaseMeasurementsColumn, {\n data,\n noteComponent: SGPSamplesNote,\n });\n}\n\nfunction SGPSamplesNote(props) {\n const { note } = props;\n const sgp_samples = note?.data?.sgp_samples;\n\n if (sgp_samples == null || sgp_samples.length === 0) return null;\n\n return h(TruncatedList, {\n className: \"sgp-samples\",\n data: sgp_samples,\n itemRenderer: (p) => h(\"span\", p.data.name),\n });\n}\n"],"names":["$d6zmK$macrostrathyper","useAPIResult","$d6zmK$useAPIResult","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$30f674067bcc490b$export$c49cf57576706bab","set","s","enumerable","configurable","$3S9SB","columnID","color","data","$30f674067bcc490b$var$useSGPData","col_id","d","BaseMeasurementsColumn","noteComponent","$30f674067bcc490b$var$SGPSamplesNote","props","note","sgp_samples","length","TruncatedList","className","itemRenderer","p","name","SGPMeasurementsColumn"],"version":3,"file":"column-views.2a6b842d.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.a0aac838.js";import{create as e,useStore as o}from"zustand";import{createContext as t,useState as r,useMemo as l,useEffect as n,useContext as s}from"react";import u from"@macrostrat/hyper";var a=globalThis,i={},c={},m=a.parcelRequirea149;null==m&&((m=function(e){if(e in i)return i[e].exports;if(e in c){var o=c[e];delete c[e];var t={id:e,exports:{}};return i[e]=t,o.call(t.exports,t,t.exports),t.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,o){c[e]=o},a.parcelRequirea149=m),m.register;var d=m("lgTAP");let C=t(null);function f({children:o,columns:t,columnIDs:s,selectedColumn:a,projectID:i,inProcess:c,onSelectColumn:m,onHoverColumn:f}){(0,d.useMacrostratStore)(e=>e.getColumns);let[p]=r(()=>e((e,o)=>({columns:null,selectedColumn:null,hoveredColumn:null,selectColumn(t){e({selectedColumn:t,hoveredColumn:null});let{columns:r}=o(),l=r?.find(e=>e.id==t);m?.(t,l)},setHoveredColumn(t){e({hoveredColumn:t});let{columns:r}=o(),l=r?.find(e=>e.id==t);f?.(t,l)}}))),v=t??(0,d.useMacrostratColumns)(i,c);return s?.length>0&&(v=l(()=>v?.filter(e=>s.includes(e.properties.col_id)),[s,v])),n(()=>{v?.length>0&&p.setState({columns:v,selectedColumn:a})},[v]),n(()=>{let{selectColumn:e,selectedColumn:o}=p.getState();a!=o&&e(a)},[a]),u(C.Provider,{value:p},o)}function p(e){let t=s(C);if(null==t)throw Error("Missing ColumnNavigationProvider");return o(t,e)}export{f as ColumnNavigationProvider,p as useColumnNavigationStore};
2
- //# sourceMappingURL=column-views.2a70b9a2.js.map
1
+ import"./column-views.9de31cdb.js";import{create as e,useStore as o}from"zustand";import{createContext as t,useState as r,useMemo as l,useEffect as n,useContext as s}from"react";import u from"@macrostrat/hyper";var a=globalThis,i={},c={},m=a.parcelRequirea149;null==m&&((m=function(e){if(e in i)return i[e].exports;if(e in c){var o=c[e];delete c[e];var t={id:e,exports:{}};return i[e]=t,o.call(t.exports,t,t.exports),t.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,o){c[e]=o},a.parcelRequirea149=m),m.register;var d=m("lgTAP");let C=t(null);function f({children:o,columns:t,columnIDs:s,selectedColumn:a,projectID:i,inProcess:c,onSelectColumn:m,onHoverColumn:f}){(0,d.useMacrostratStore)(e=>e.getColumns);let[p]=r(()=>e((e,o)=>({columns:null,selectedColumn:null,hoveredColumn:null,selectColumn(t){e({selectedColumn:t,hoveredColumn:null});let{columns:r}=o(),l=r?.find(e=>e.id==t);m?.(t,l)},setHoveredColumn(t){e({hoveredColumn:t});let{columns:r}=o(),l=r?.find(e=>e.id==t);f?.(t,l)}}))),v=t??(0,d.useMacrostratColumns)(i,c);return s?.length>0&&(v=l(()=>v?.filter(e=>s.includes(e.properties.col_id)),[s,v])),n(()=>{v?.length>0&&p.setState({columns:v,selectedColumn:a})},[v]),n(()=>{let{selectColumn:e,selectedColumn:o}=p.getState();a!=o&&e(a)},[a]),u(C.Provider,{value:p},o)}function p(e){let t=s(C);if(null==t)throw Error("Missing ColumnNavigationProvider");return o(t,e)}export{f as ColumnNavigationProvider,p as useColumnNavigationStore};
2
+ //# sourceMappingURL=column-views.2ca669bc.js.map
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,Q,U,C,C,Y,C,K,S,A,Q,iB,C,C,Y,C,C,W,C,C,a,C,C,c,C,K,O,A,Q,M,mB,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,SCoCA,IAAM,EAAyB,AAAA,EAC7B,MAGK,SAAS,EAAyB,CAAA,SACvC,CAAQ,CAAA,QACR,CAAO,CAAA,UACP,CAAS,CAAA,eACT,CAAc,CAAA,UACd,CAAS,CAAA,UACT,CAAS,CAAA,eACT,CAAc,CAAA,cACd,CAAa,CACW,EACL,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,AAAC,GAAM,EAAE,UAAU,EAEzD,GAAM,CAAC,EAAM,CAAG,AAAA,EAAS,IAChB,AAAA,EAAwB,CAAC,EAAK,IAC5B,CAAA,CACL,QAAS,KACT,eAAgB,KAChB,cAAe,KACf,aAAa,CAAuB,EAClC,EAAI,CAAE,eAAgB,EAAU,cAAe,IAAK,GACpD,GAAM,CAAA,QAAE,CAAO,CAAE,CAAG,IACd,EAAS,GAAS,KAAK,AAAC,GAAM,EAAE,EAAE,EAAI,GAC5C,IAAiB,EAAU,EAC7B,EACA,iBAAiB,CAAuB,EACtC,EAAI,CAAE,cAAe,CAAS,GAC9B,GAAM,CAAA,QAAE,CAAO,CAAE,CAAG,IACd,EAAS,GAAS,KAAK,AAAC,GAAM,EAAE,EAAE,EAAI,GAC5C,IAAgB,EAAU,EAC5B,CACF,CAAA,IAWA,EAAW,GAAW,AAAA,CAAA,EAAA,EAAA,oBAAmB,AAAnB,EAAqB,EAAW,GA0B1D,OAvBI,GAAW,OAAS,GACtB,CAAA,EAAW,AAAA,EAAQ,IACV,GAAU,OAAO,AAAC,GAAM,EAAU,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM,GACpE,CAAC,EAAW,EAAS,CAAA,EAG1B,AAAA,EAAU,KACJ,GAAU,OAAS,GACrB,EAAM,QAAQ,CAAC,CAAE,QAAS,EAAU,eAAA,CAAe,EAEvD,EAAG,CAAC,EAAS,EAIb,AAAA,EAAU,KACR,GAAM,CAAA,aAAE,CAAY,CAAE,eAAgB,CAAuB,CAAE,CAC7D,EAAM,QAAQ,GACZ,GAAkB,GAGtB,EAAa,EACf,EAAG,CAAC,EAAe,EAEZ,AAAA,EAAE,EAAuB,QAAQ,CAAE,CAAE,MAAO,CAAM,EAAG,EAC9D,CAEO,SAAS,EACd,CAAyC,EAEzC,IAAM,EAAW,AAAA,EAAW,GAC5B,GAAI,AAAY,MAAZ,EACF,MAAM,AAAI,MAAM,oCAElB,OAAO,AAAA,EAAS,EAAU,EAC5B,Q,K,wB,C,K,wB","sources":["<anon>","packages/column-views/src/maps/column-navigation/mapbox/state.ts"],"sourcesContent":["import \"./column-views.a0aac838.js\";\nimport {create as $hD7WQ$create, useStore as $hD7WQ$useStore} from \"zustand\";\nimport {createContext as $hD7WQ$createContext, useState as $hD7WQ$useState, useMemo as $hD7WQ$useMemo, useEffect as $hD7WQ$useEffect, useContext as $hD7WQ$useContext} from \"react\";\nimport $hD7WQ$macrostrathyper from \"@macrostrat/hyper\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nconst $811f42ce180ac2d8$var$NavigationStoreContext = (0, $hD7WQ$createContext)(null);\nfunction $811f42ce180ac2d8$export$8da3b11f62ebf019({ children: children, columns: columns, columnIDs: columnIDs, selectedColumn: selectedColumn, projectID: projectID, inProcess: inProcess, onSelectColumn: onSelectColumn, onHoverColumn: onHoverColumn }) {\n const getColumns = (0, $lgTAP.useMacrostratStore)((s)=>s.getColumns);\n const [store] = (0, $hD7WQ$useState)(()=>{\n return (0, $hD7WQ$create)((set, get)=>{\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn (columnID) {\n set({\n selectedColumn: columnID,\n hoveredColumn: null\n });\n const { columns: columns } = get();\n const column = columns?.find((d)=>d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn (columnID) {\n set({\n hoveredColumn: columnID\n });\n const { columns: columns } = get();\n const column = columns?.find((d)=>d.id == columnID);\n onHoverColumn?.(columnID, column);\n }\n };\n });\n });\n // Set up the store\n /** TODO: unify handling of columns between parts of application */ // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n let _columns = columns ?? (0, $lgTAP.useMacrostratColumns)(projectID, inProcess);\n // filter columns if specified\n if (columnIDs?.length > 0) _columns = (0, $hD7WQ$useMemo)(()=>{\n return _columns?.filter((d)=>columnIDs.includes(d.properties.col_id));\n }, [\n columnIDs,\n _columns\n ]);\n (0, $hD7WQ$useEffect)(()=>{\n if (_columns?.length > 0) store.setState({\n columns: _columns,\n selectedColumn: selectedColumn\n });\n }, [\n _columns\n ]);\n // Update selected column if it is changed externally\n // Kind of an awkward way to do this but we need to allow the selector to run\n (0, $hD7WQ$useEffect)(()=>{\n const { selectColumn: selectColumn, selectedColumn: _internalSelectedColumn } = store.getState();\n if (selectedColumn == _internalSelectedColumn) return;\n selectColumn(selectedColumn);\n }, [\n selectedColumn\n ]);\n return (0, $hD7WQ$macrostrathyper)($811f42ce180ac2d8$var$NavigationStoreContext.Provider, {\n value: store\n }, children);\n}\nfunction $811f42ce180ac2d8$export$642c2b57c47ea41(selector) {\n const storeApi = (0, $hD7WQ$useContext)($811f42ce180ac2d8$var$NavigationStoreContext);\n if (storeApi == null) throw new Error(\"Missing ColumnNavigationProvider\");\n return (0, $hD7WQ$useStore)(storeApi, selector);\n}\n\n\nexport {$811f42ce180ac2d8$export$8da3b11f62ebf019 as ColumnNavigationProvider, $811f42ce180ac2d8$export$642c2b57c47ea41 as useColumnNavigationStore};\n//# sourceMappingURL=column-views.2a70b9a2.js.map\n","import { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecordWithID } from \"@macrostrat/api-types\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n useMemo,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n useMacrostratColumns,\n useMacrostratStore,\n} from \"../../../data-provider\";\n\nexport interface NavigationStore {\n columns: ColumnGeoJSONRecordWithID[];\n selectedColumn: number | null;\n hoveredColumn: number | null;\n selectColumn: (columnID: number | null) => void;\n setHoveredColumn: (columnID: number | null) => void;\n}\n\nexport interface NavigationProviderProps {\n projectID?: number;\n inProcess?: boolean;\n selectedColumn?: number | null;\n hoveredColumn?: number | null;\n columns?: ColumnGeoJSONRecordWithID[] | null;\n columnIDs?: number[] | null;\n children: ReactNode;\n onSelectColumn?: (col_id: number | null, column: any) => void;\n onHoverColumn?: (col_id: number | null, column: any) => void;\n}\n\nconst NavigationStoreContext = createContext<StoreApi<NavigationStore> | null>(\n null,\n);\n\nexport function ColumnNavigationProvider({\n children,\n columns,\n columnIDs,\n selectedColumn,\n projectID,\n inProcess,\n onSelectColumn,\n onHoverColumn,\n}: NavigationProviderProps) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n\n const [store] = useState(() => {\n return create<NavigationStore>((set, get): NavigationStore => {\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn(columnID: number | null) {\n set({ selectedColumn: columnID, hoveredColumn: null });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn(columnID: number | null) {\n set({ hoveredColumn: columnID });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onHoverColumn?.(columnID, column);\n },\n };\n });\n });\n\n // Set up the store\n /** TODO: unify handling of columns between parts of application */\n // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n\n let _columns = columns ?? useMacrostratColumns(projectID, inProcess);\n\n // filter columns if specified\n if (columnIDs?.length > 0) {\n _columns = useMemo(() => {\n return _columns?.filter((d) => columnIDs.includes(d.properties.col_id));\n }, [columnIDs, _columns]);\n }\n\n useEffect(() => {\n if (_columns?.length > 0) {\n store.setState({ columns: _columns, selectedColumn });\n }\n }, [_columns]);\n // Update selected column if it is changed externally\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n useEffect(() => {\n const { selectColumn, selectedColumn: _internalSelectedColumn } =\n store.getState();\n if (selectedColumn == _internalSelectedColumn) {\n return;\n }\n selectColumn(selectedColumn);\n }, [selectedColumn]);\n\n return h(NavigationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useColumnNavigationStore(\n selector: (state: NavigationStore) => any,\n) {\n const storeApi = useContext(NavigationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing ColumnNavigationProvider\");\n }\n return useStore(storeApi, selector);\n}\n"],"names":["create","$hD7WQ$create","useStore","$hD7WQ$useStore","createContext","$hD7WQ$createContext","useState","$hD7WQ$useState","useMemo","$hD7WQ$useMemo","useEffect","$hD7WQ$useEffect","useContext","$hD7WQ$useContext","$hD7WQ$macrostrathyper","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$lgTAP","$811f42ce180ac2d8$var$NavigationStoreContext","$811f42ce180ac2d8$export$8da3b11f62ebf019","children","columns","columnIDs","selectedColumn","projectID","inProcess","onSelectColumn","onHoverColumn","useMacrostratStore","s","getColumns","store","set","get","hoveredColumn","selectColumn","columnID","column","find","d","setHoveredColumn","_columns","useMacrostratColumns","length","filter","includes","properties","col_id","setState","_internalSelectedColumn","getState","Provider","value","$811f42ce180ac2d8$export$642c2b57c47ea41","selector","storeApi","ColumnNavigationProvider","useColumnNavigationStore"],"version":3,"file":"column-views.2a70b9a2.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,Q,U,C,C,Y,C,K,S,A,Q,iB,C,C,Y,C,C,W,C,C,a,C,C,c,C,K,O,A,Q,M,mB,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,SCoCA,IAAM,EAAyB,AAAA,EAC7B,MAGK,SAAS,EAAyB,CAAA,SACvC,CAAQ,CAAA,QACR,CAAO,CAAA,UACP,CAAS,CAAA,eACT,CAAc,CAAA,UACd,CAAS,CAAA,UACT,CAAS,CAAA,eACT,CAAc,CAAA,cACd,CAAa,CACW,EACL,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,AAAC,GAAM,EAAE,UAAU,EAEzD,GAAM,CAAC,EAAM,CAAG,AAAA,EAAS,IAChB,AAAA,EAAwB,CAAC,EAAK,IAC5B,CAAA,CACL,QAAS,KACT,eAAgB,KAChB,cAAe,KACf,aAAa,CAAuB,EAClC,EAAI,CAAE,eAAgB,EAAU,cAAe,IAAK,GACpD,GAAM,CAAA,QAAE,CAAO,CAAE,CAAG,IACd,EAAS,GAAS,KAAK,AAAC,GAAM,EAAE,EAAE,EAAI,GAC5C,IAAiB,EAAU,EAC7B,EACA,iBAAiB,CAAuB,EACtC,EAAI,CAAE,cAAe,CAAS,GAC9B,GAAM,CAAA,QAAE,CAAO,CAAE,CAAG,IACd,EAAS,GAAS,KAAK,AAAC,GAAM,EAAE,EAAE,EAAI,GAC5C,IAAgB,EAAU,EAC5B,CACF,CAAA,IAWA,EAAW,GAAW,AAAA,CAAA,EAAA,EAAA,oBAAmB,AAAnB,EAAqB,EAAW,GA0B1D,OAvBI,GAAW,OAAS,GACtB,CAAA,EAAW,AAAA,EAAQ,IACV,GAAU,OAAO,AAAC,GAAM,EAAU,QAAQ,CAAC,EAAE,UAAU,CAAC,MAAM,GACpE,CAAC,EAAW,EAAS,CAAA,EAG1B,AAAA,EAAU,KACJ,GAAU,OAAS,GACrB,EAAM,QAAQ,CAAC,CAAE,QAAS,EAAU,eAAA,CAAe,EAEvD,EAAG,CAAC,EAAS,EAIb,AAAA,EAAU,KACR,GAAM,CAAA,aAAE,CAAY,CAAE,eAAgB,CAAuB,CAAE,CAC7D,EAAM,QAAQ,GACZ,GAAkB,GAGtB,EAAa,EACf,EAAG,CAAC,EAAe,EAEZ,AAAA,EAAE,EAAuB,QAAQ,CAAE,CAAE,MAAO,CAAM,EAAG,EAC9D,CAEO,SAAS,EACd,CAAyC,EAEzC,IAAM,EAAW,AAAA,EAAW,GAC5B,GAAI,AAAY,MAAZ,EACF,MAAM,AAAI,MAAM,oCAElB,OAAO,AAAA,EAAS,EAAU,EAC5B,Q,K,wB,C,K,wB","sources":["<anon>","packages/column-views/src/maps/column-navigation/mapbox/state.ts"],"sourcesContent":["import \"./column-views.9de31cdb.js\";\nimport {create as $hD7WQ$create, useStore as $hD7WQ$useStore} from \"zustand\";\nimport {createContext as $hD7WQ$createContext, useState as $hD7WQ$useState, useMemo as $hD7WQ$useMemo, useEffect as $hD7WQ$useEffect, useContext as $hD7WQ$useContext} from \"react\";\nimport $hD7WQ$macrostrathyper from \"@macrostrat/hyper\";\n\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nconst $811f42ce180ac2d8$var$NavigationStoreContext = (0, $hD7WQ$createContext)(null);\nfunction $811f42ce180ac2d8$export$8da3b11f62ebf019({ children: children, columns: columns, columnIDs: columnIDs, selectedColumn: selectedColumn, projectID: projectID, inProcess: inProcess, onSelectColumn: onSelectColumn, onHoverColumn: onHoverColumn }) {\n const getColumns = (0, $lgTAP.useMacrostratStore)((s)=>s.getColumns);\n const [store] = (0, $hD7WQ$useState)(()=>{\n return (0, $hD7WQ$create)((set, get)=>{\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn (columnID) {\n set({\n selectedColumn: columnID,\n hoveredColumn: null\n });\n const { columns: columns } = get();\n const column = columns?.find((d)=>d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn (columnID) {\n set({\n hoveredColumn: columnID\n });\n const { columns: columns } = get();\n const column = columns?.find((d)=>d.id == columnID);\n onHoverColumn?.(columnID, column);\n }\n };\n });\n });\n // Set up the store\n /** TODO: unify handling of columns between parts of application */ // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n let _columns = columns ?? (0, $lgTAP.useMacrostratColumns)(projectID, inProcess);\n // filter columns if specified\n if (columnIDs?.length > 0) _columns = (0, $hD7WQ$useMemo)(()=>{\n return _columns?.filter((d)=>columnIDs.includes(d.properties.col_id));\n }, [\n columnIDs,\n _columns\n ]);\n (0, $hD7WQ$useEffect)(()=>{\n if (_columns?.length > 0) store.setState({\n columns: _columns,\n selectedColumn: selectedColumn\n });\n }, [\n _columns\n ]);\n // Update selected column if it is changed externally\n // Kind of an awkward way to do this but we need to allow the selector to run\n (0, $hD7WQ$useEffect)(()=>{\n const { selectColumn: selectColumn, selectedColumn: _internalSelectedColumn } = store.getState();\n if (selectedColumn == _internalSelectedColumn) return;\n selectColumn(selectedColumn);\n }, [\n selectedColumn\n ]);\n return (0, $hD7WQ$macrostrathyper)($811f42ce180ac2d8$var$NavigationStoreContext.Provider, {\n value: store\n }, children);\n}\nfunction $811f42ce180ac2d8$export$642c2b57c47ea41(selector) {\n const storeApi = (0, $hD7WQ$useContext)($811f42ce180ac2d8$var$NavigationStoreContext);\n if (storeApi == null) throw new Error(\"Missing ColumnNavigationProvider\");\n return (0, $hD7WQ$useStore)(storeApi, selector);\n}\n\n\nexport {$811f42ce180ac2d8$export$8da3b11f62ebf019 as ColumnNavigationProvider, $811f42ce180ac2d8$export$642c2b57c47ea41 as useColumnNavigationStore};\n//# sourceMappingURL=column-views.2ca669bc.js.map\n","import { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecordWithID } from \"@macrostrat/api-types\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n useMemo,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n useMacrostratColumns,\n useMacrostratStore,\n} from \"../../../data-provider\";\n\nexport interface NavigationStore {\n columns: ColumnGeoJSONRecordWithID[];\n selectedColumn: number | null;\n hoveredColumn: number | null;\n selectColumn: (columnID: number | null) => void;\n setHoveredColumn: (columnID: number | null) => void;\n}\n\nexport interface NavigationProviderProps {\n projectID?: number;\n inProcess?: boolean;\n selectedColumn?: number | null;\n hoveredColumn?: number | null;\n columns?: ColumnGeoJSONRecordWithID[] | null;\n columnIDs?: number[] | null;\n children: ReactNode;\n onSelectColumn?: (col_id: number | null, column: any) => void;\n onHoverColumn?: (col_id: number | null, column: any) => void;\n}\n\nconst NavigationStoreContext = createContext<StoreApi<NavigationStore> | null>(\n null,\n);\n\nexport function ColumnNavigationProvider({\n children,\n columns,\n columnIDs,\n selectedColumn,\n projectID,\n inProcess,\n onSelectColumn,\n onHoverColumn,\n}: NavigationProviderProps) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n\n const [store] = useState(() => {\n return create<NavigationStore>((set, get): NavigationStore => {\n return {\n columns: null,\n selectedColumn: null,\n hoveredColumn: null,\n selectColumn(columnID: number | null) {\n set({ selectedColumn: columnID, hoveredColumn: null });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onSelectColumn?.(columnID, column);\n },\n setHoveredColumn(columnID: number | null) {\n set({ hoveredColumn: columnID });\n const { columns } = get();\n const column = columns?.find((d) => d.id == columnID);\n onHoverColumn?.(columnID, column);\n },\n };\n });\n });\n\n // Set up the store\n /** TODO: unify handling of columns between parts of application */\n // useAsyncEffect(async () => {\n // let _columns = columns ?? (await getColumns(projectID, inProcess));\n // store.setState({ columns: _columns, selectedColumn });\n // }, [projectID, inProcess, columns, getColumns]);\n\n let _columns = columns ?? useMacrostratColumns(projectID, inProcess);\n\n // filter columns if specified\n if (columnIDs?.length > 0) {\n _columns = useMemo(() => {\n return _columns?.filter((d) => columnIDs.includes(d.properties.col_id));\n }, [columnIDs, _columns]);\n }\n\n useEffect(() => {\n if (_columns?.length > 0) {\n store.setState({ columns: _columns, selectedColumn });\n }\n }, [_columns]);\n // Update selected column if it is changed externally\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n useEffect(() => {\n const { selectColumn, selectedColumn: _internalSelectedColumn } =\n store.getState();\n if (selectedColumn == _internalSelectedColumn) {\n return;\n }\n selectColumn(selectedColumn);\n }, [selectedColumn]);\n\n return h(NavigationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useColumnNavigationStore(\n selector: (state: NavigationStore) => any,\n) {\n const storeApi = useContext(NavigationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing ColumnNavigationProvider\");\n }\n return useStore(storeApi, selector);\n}\n"],"names":["create","$hD7WQ$create","useStore","$hD7WQ$useStore","createContext","$hD7WQ$createContext","useState","$hD7WQ$useState","useMemo","$hD7WQ$useMemo","useEffect","$hD7WQ$useEffect","useContext","$hD7WQ$useContext","$hD7WQ$macrostrathyper","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$lgTAP","$811f42ce180ac2d8$var$NavigationStoreContext","$811f42ce180ac2d8$export$8da3b11f62ebf019","children","columns","columnIDs","selectedColumn","projectID","inProcess","onSelectColumn","onHoverColumn","useMacrostratStore","s","getColumns","store","set","get","hoveredColumn","selectColumn","columnID","column","find","d","setHoveredColumn","_columns","useMacrostratColumns","length","filter","includes","properties","col_id","setState","_internalSelectedColumn","getState","Provider","value","$811f42ce180ac2d8$export$642c2b57c47ea41","selector","storeApi","ColumnNavigationProvider","useColumnNavigationStore"],"version":3,"file":"column-views.2ca669bc.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.e7e26765.js";import"./column-views.3eeac38d.js";import"./column-views.cdcce702.js";import"./column-views.8cfed88b.js";import"./column-views.9de31cdb.js";import"./column-views.6bba8c57.js";import{ColumnAxisType as e,ColumnContext as t,ColumnLayoutContext as o,useColumn as i,useGeologicPattern as a,zigZagBoxPath as n,ForeignObject as r,PatternDefsProvider as l}from"@macrostrat/column-components";import{SizeAwareLabel as s}from"@macrostrat/ui-components";import c from"@macrostrat/hyper";import{useContext as u,forwardRef as d,useMemo as m}from"react";import p from"classnames";var f=globalThis,b={},h={},g=f.parcelRequirea149;null==g&&((g=function(e){if(e in b)return b[e].exports;if(e in h){var t=h[e];delete h[e];var o={id:e,exports:{}};return b[e]=o,t.call(o.exports,o,o.exports),o.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){h[e]=t},f.parcelRequirea149=g),g.register;var v=g("5VyZI"),x=g("a3mb1"),w=g("klU0I"),y=g("iWhRv"),C=g("lgTAP"),_=g("bfmPX");let T=c.styled(w&&w.__esModule?w.default:w);function F(i,a={}){let{widthFraction:n=1,axisType:r=e.AGE,padding:l=0}=a,{scale:s}=u(t),{width:c}=u(o),[d,m]=(0,y.getUnitHeightRange)(i,r),p=s(m),f=Math.abs(s(d)-p);return{x:c*(1-n)-l,y:p-l,height:f+2*l,width:n*c+2*l}}function k(e){let{division:t,children:o,className:a,widthFraction:n=1,axisType:r,nColumns:l,...s}=e,{axisType:c}=i(),u=(0,C.useLithologies)(),d={...F(t,{widthFraction:n,axisType:c}),...s},m=(0,_.getMixedUnitColor)(t,u,null,!1),[p,f,b]=(0,x.useUnitSelectionTarget)(t);return T("g.unit",{className:a,style:{"--column-unit-background-color":m,"--column-stroke-color":m}},[T("rect.unit.background",{ref:p,...d,fill:m,fillOpacity:.8,stroke:m,onClick:b}),T.if(f)("rect.selection-overlay",d)])}function N(e){let{division:t,children:o,fill:n,defaultFill:r="transparent",className:l,widthFraction:s=1,backgroundColor:c,patternColor:u,patternID:d,axisType:m,...f}=e,{axisType:b}=i(),h=null!=t.t_clip_pos,g=null!=t.b_clip_pos,w={...F(t,{widthFraction:s,axisType:b}),...f,overflowTop:h,overflowBottom:g},y=d??(0,v.resolveID)(t),C=n??a(y,r),_=p(l,{colored:null!=c}),[k,N,U]=(0,x.useUnitSelectionTarget)(t);return T("g.unit",{className:_,style:{"--column-unit-background-color":c}},[T(H,{...w,fill:c,onClick:U,className:"background"}),T(H,{ref:k,...w,fill:C,onClick:U,className:"unit"}),T.if(N)(H,{...w,className:"selection-overlay"}),o])}let H=d((e,t)=>{let{x:o,y:i,width:a,height:r,overflowTop:l=!1,overflowBottom:s=!1,...c}=e;return l||s?T("path",{d:n(o,i,a,r,l,s),ref:t,...c}):T("rect",{x:o,y:i,width:a,height:r,ref:t,...c})});function U(e){let{division:t,label:o,onLabelUpdated:a,widthFraction:n,showLabel:l=!0,backgroundColor:c,patternID:u,axisType:d,...m}=e,{axisType:p}=i(),f={...F(t,{widthFraction:n,axisType:p}),...m},{width:b,height:h}=f;return T(N,{className:"labeled-unit",division:t,backgroundColor:c,patternID:u,...f},[T.if(l)(r,{...f,className:"unit-label-container"},T(s,{className:"unit-overlay",labelClassName:"unit-label",style:{width:b,height:h},label:o,onVisibilityChanged(e){a(o,e)}}))])}function $(e){let{unitComponent:o=N,unitComponentProps:i={}}=e,{divisions:a}=u(t);if(0==a.length)return console.warn("No divisions found in column context"),null;let n=m(()=>a.map((e,t)=>T(o,{division:e,key:e.unit_id,...i})),[a,o,i]);return T(l,{resolveID:v.resolveID,scalePattern:v.scalePattern},T("g.divisions",n))}export{k as MinimalUnit,N as Unit,U as LabeledUnit,$ as UnitBoxes};
2
+ //# sourceMappingURL=column-views.2d957a97.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,kB,C,C,iB,C,C,uB,C,C,a,C,C,sB,C,C,iB,C,C,iB,C,C,uB,C,K,+B,A,Q,kB,C,K,2B,A,Q,M,mB,A,Q,c,C,C,c,C,C,W,C,K,O,A,Q,M,Y,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCuBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAoCvB,SAAS,EACP,CAAe,CACf,EAA2B,CAAC,CAAC,EAE7B,GAAM,CAAA,cACJ,EAAgB,CAAA,CAAA,SAChB,EAAW,AAAA,EAAe,GAAG,CAAA,QAC7B,EAAU,CAAA,CACX,CAAG,EACE,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,EAAW,GACvB,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,EAAW,GAEvB,CAAC,EAAc,EAAU,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAU,GAEzD,EAAI,EAAM,GACV,EAAS,KAAK,GAAG,CAAC,EAAM,GAAgB,GAE9C,MAAO,CACL,EAAG,EAAS,CAAA,EAAI,CAAA,EAAiB,EACjC,EAAG,EAAI,EACP,OAAQ,EAAS,AAAU,EAAV,EACjB,MAAO,EAAgB,EAAQ,AAAU,EAAV,CACjC,CACF,CAEO,SAAS,EAAY,CAAK,EAC/B,GAAM,CACJ,SAAU,CAAC,CAAA,SACX,CAAQ,CAAA,UACR,CAAS,CAAA,cACT,EAAgB,CAAA,CAChB,SAAU,CAAC,CACX,SAAU,CAAE,CACZ,GAAG,EACJ,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,IACf,EAAU,AAAA,CAAA,EAAA,EAAA,cAAa,AAAb,IACV,EAAS,CACb,GAAG,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","sources":["<anon>","packages/column-views/src/units/boxes.ts"],"sourcesContent":["import \"./column-views.e7e26765.js\";\nimport \"./column-views.3eeac38d.js\";\nimport \"./column-views.cdcce702.js\";\nimport \"./column-views.8cfed88b.js\";\nimport \"./column-views.9de31cdb.js\";\nimport \"./column-views.6bba8c57.js\";\nimport {ColumnAxisType as $jfrfr$ColumnAxisType, ColumnContext as $jfrfr$ColumnContext, ColumnLayoutContext as $jfrfr$ColumnLayoutContext, useColumn as $jfrfr$useColumn, useGeologicPattern as $jfrfr$useGeologicPattern, zigZagBoxPath as $jfrfr$zigZagBoxPath, ForeignObject as $jfrfr$ForeignObject, PatternDefsProvider as $jfrfr$PatternDefsProvider} from \"@macrostrat/column-components\";\nimport {SizeAwareLabel as $jfrfr$SizeAwareLabel} from \"@macrostrat/ui-components\";\nimport $jfrfr$macrostrathyper from \"@macrostrat/hyper\";\nimport {useContext as $jfrfr$useContext, forwardRef as $jfrfr$forwardRef, useMemo as $jfrfr$useMemo} from \"react\";\nimport $jfrfr$classnames from \"classnames\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\n\nvar $5VyZI = parcelRequire(\"5VyZI\");\n\nvar $a3mb1 = parcelRequire(\"a3mb1\");\n\nvar $klU0I = parcelRequire(\"klU0I\");\n\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\n\nvar $bfmPX = parcelRequire(\"bfmPX\");\nconst $82e068a44c11e855$var$h = (0, $jfrfr$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($klU0I))));\nfunction $82e068a44c11e855$var$useUnitRect(division, options = {}) {\n const { widthFraction: widthFraction = 1, axisType: axisType = (0, $jfrfr$ColumnAxisType).AGE, padding: padding = 0 } = options;\n const { scale: scale } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnContext));\n const { width: width } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnLayoutContext));\n const [bottomHeight, topHeight] = (0, $iWhRv.getUnitHeightRange)(division, axisType);\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2\n };\n}\nfunction $82e068a44c11e855$export$d54fdbabca27e53(props) {\n const { division: d, children: children, className: className, widthFraction: widthFraction = 1, axisType: _, nColumns: __, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const lithMap = (0, $lgTAP.useLithologies)();\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(d, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds\n };\n const backgroundColor = (0, $bfmPX.getMixedUnitColor)(d, lithMap, null, false);\n const [ref, selected, onClick] = (0, $a3mb1.useUnitSelectionTarget)(d);\n return $82e068a44c11e855$var$h(\"g.unit\", {\n className: className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor\n }\n }, [\n $82e068a44c11e855$var$h(\"rect.unit.background\", {\n ref: ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick: onClick\n }),\n $82e068a44c11e855$var$h.if(selected)(\"rect.selection-overlay\", bounds)\n ]);\n}\nfunction $82e068a44c11e855$export$1d8b9ae22d404866(props) {\n const { division: d, children: children, fill: fill, defaultFill: defaultFill = \"transparent\", className: className, widthFraction: widthFraction = 1, backgroundColor: backgroundColor, patternColor: patternColor, patternID: patternID, axisType: _, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(d, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom\n };\n const _patternID = patternID ?? (0, $5VyZI.resolveID)(d);\n let _fill = fill ?? (0, $jfrfr$useGeologicPattern)(_patternID, defaultFill);\n const hasBackgroundColor = backgroundColor != null;\n const _className = (0, $jfrfr$classnames)(className, {\n colored: hasBackgroundColor\n });\n const [ref, selected, onClick] = (0, $a3mb1.useUnitSelectionTarget)(d);\n //const key = `unit-${d.unit_id}`;\n return $82e068a44c11e855$var$h(\"g.unit\", {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor\n }\n }, [\n $82e068a44c11e855$var$h($82e068a44c11e855$var$UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick: onClick,\n className: \"background\"\n }),\n $82e068a44c11e855$var$h($82e068a44c11e855$var$UnitRect, {\n ref: ref,\n ...bounds,\n fill: _fill,\n onClick: //mask,\n onClick,\n className: \"unit\"\n }),\n $82e068a44c11e855$var$h.if(selected)($82e068a44c11e855$var$UnitRect, {\n ...bounds,\n className: \"selection-overlay\"\n }),\n //defs,\n children\n ]);\n}\nconst $82e068a44c11e855$var$UnitRect = (0, $jfrfr$forwardRef)((props, ref)=>{\n const { x: x, y: y, width: width, height: height, overflowTop: overflowTop = false, overflowBottom: overflowBottom = false, ...rest } = props;\n if (!overflowTop && !overflowBottom) return $82e068a44c11e855$var$h(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n ref: ref,\n ...rest\n });\n else {\n const d = (0, $jfrfr$zigZagBoxPath)(x, y, width, height, overflowTop, overflowBottom);\n return $82e068a44c11e855$var$h(\"path\", {\n d: d,\n ref: ref,\n ...rest\n });\n }\n});\nfunction $82e068a44c11e855$export$b4f0ca233b98f9af(props) {\n const { division: division, label: label, onLabelUpdated: onLabelUpdated, widthFraction: widthFraction, showLabel: showLabel = true, backgroundColor: backgroundColor, patternID: patternID, axisType: _, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(division, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds\n };\n const { width: width, height: height } = bounds;\n return $82e068a44c11e855$var$h($82e068a44c11e855$export$1d8b9ae22d404866, {\n className: \"labeled-unit\",\n division: division,\n backgroundColor: backgroundColor,\n patternID: patternID,\n ...bounds\n }, [\n $82e068a44c11e855$var$h.if(showLabel)((0, $jfrfr$ForeignObject), {\n ...bounds,\n className: \"unit-label-container\"\n }, $82e068a44c11e855$var$h((0, $jfrfr$SizeAwareLabel), {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: {\n width: width,\n height: height\n },\n label: label,\n onVisibilityChanged (viz) {\n onLabelUpdated(label, viz);\n }\n }))\n ]);\n}\nfunction $82e068a44c11e855$export$5d1cdfabe8dc8085(props) {\n const { unitComponent: unitComponent = $82e068a44c11e855$export$1d8b9ae22d404866, unitComponentProps: unitComponentProps = {} } = props;\n const { divisions: divisions } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnContext));\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n const children = (0, $jfrfr$useMemo)(()=>{\n return divisions.map((division, i)=>{\n // @ts-ignore\n return $82e068a44c11e855$var$h(unitComponent, {\n division: division,\n key: division.unit_id,\n ...unitComponentProps\n });\n });\n }, [\n divisions,\n unitComponent,\n unitComponentProps\n ]);\n return $82e068a44c11e855$var$h((0, $jfrfr$PatternDefsProvider), {\n resolveID: $5VyZI.resolveID,\n scalePattern: $5VyZI.scalePattern\n }, $82e068a44c11e855$var$h(\"g.divisions\", children));\n}\n\n\nexport {$82e068a44c11e855$export$d54fdbabca27e53 as MinimalUnit, $82e068a44c11e855$export$1d8b9ae22d404866 as Unit, $82e068a44c11e855$export$b4f0ca233b98f9af as LabeledUnit, $82e068a44c11e855$export$5d1cdfabe8dc8085 as UnitBoxes};\n//# sourceMappingURL=column-views.2d957a97.js.map\n","import {\n ColumnAxisType,\n ColumnContext,\n ColumnLayoutContext,\n ForeignObject,\n PatternDefsProvider,\n useColumn,\n useGeologicPattern,\n zigZagBoxPath,\n} from \"@macrostrat/column-components\";\nimport { SizeAwareLabel, Clickable } from \"@macrostrat/ui-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport { forwardRef, ReactNode, useContext, useMemo } from \"react\";\nimport { resolveID, scalePattern } from \"./resolvers\";\nimport { useUnitSelectionTarget } from \"./selection\";\nimport { IUnit } from \"./types\";\nimport styles from \"./boxes.module.sass\";\nimport classNames from \"classnames\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { useLithologies } from \"../data-provider\";\nimport { getMixedUnitColor } from \"./colors\";\nimport type { RectBounds } from \"./types\";\n\nconst h = hyper.styled(styles);\n\ninterface UnitRectOptions {\n widthFraction?: number;\n axisType?: ColumnAxisType;\n // Padding to create overflow for zig-zags or other ornamented edges\n padding?: number;\n}\n\ninterface UnitProps extends Clickable, Partial<RectBounds>, UnitRectOptions {\n division: IUnit;\n resolveID?(IUnit): string;\n UUID?: string;\n defaultFill?: string;\n widthFraction?: number;\n children?: ReactNode;\n className?: string;\n fill?: string;\n backgroundColor?: string;\n patternColor?: string;\n patternID?: string | number;\n}\n\nexport interface LabeledUnitProps\n extends UnitRectOptions,\n Clickable,\n Partial<RectBounds> {\n division: IUnit;\n patternID?: string | number;\n label: string;\n onLabelUpdated?(label: string, shown: boolean);\n halfWidth?: boolean;\n showLabel?: boolean;\n backgroundColor?: string;\n}\n\nfunction useUnitRect(\n division: IUnit,\n options: UnitRectOptions = {},\n): RectBounds {\n const {\n widthFraction = 1,\n axisType = ColumnAxisType.AGE,\n padding = 0,\n } = options;\n const { scale } = useContext(ColumnContext);\n const { width } = useContext(ColumnLayoutContext);\n\n const [bottomHeight, topHeight] = getUnitHeightRange(division, axisType);\n\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2,\n };\n}\n\nexport function MinimalUnit(props) {\n const {\n division: d,\n children,\n className,\n widthFraction = 1,\n axisType: _, // not sure why this is brought in...\n nColumns: __,\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const lithMap = useLithologies();\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n };\n\n const backgroundColor = getMixedUnitColor(d, lithMap, null, false);\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor,\n },\n },\n [\n h(\"rect.unit.background\", {\n ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick,\n }),\n h.if(selected)(\"rect.selection-overlay\", bounds),\n ],\n );\n}\n\nfunction Unit(props: UnitProps) {\n const {\n division: d,\n children,\n fill,\n defaultFill = \"transparent\",\n className,\n widthFraction = 1,\n backgroundColor,\n patternColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom,\n };\n const _patternID = patternID ?? resolveID(d);\n let _fill = fill ?? useGeologicPattern(_patternID, defaultFill);\n\n const hasBackgroundColor = backgroundColor != null;\n\n const _className = classNames(className, { colored: hasBackgroundColor });\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n //const key = `unit-${d.unit_id}`;\n\n return h(\n \"g.unit\",\n {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n },\n },\n [\n h(UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick,\n className: \"background\",\n }),\n h(UnitRect, {\n ref,\n ...bounds,\n fill: _fill,\n //mask,\n onClick,\n className: \"unit\",\n }),\n h.if(selected)(UnitRect, { ...bounds, className: \"selection-overlay\" }),\n //defs,\n children,\n ],\n );\n}\n\ninterface UnitRectProps {\n x: number;\n y: number;\n width: number;\n height: number;\n className: string;\n // Used to determine if the rect should have a zig-zag edge on the top or bottom\n overflowTop?: boolean;\n overflowBottom?: boolean;\n [key: string]: any;\n}\n\nconst UnitRect = forwardRef((props: UnitRectProps, ref) => {\n const {\n x,\n y,\n width,\n height,\n overflowTop = false,\n overflowBottom = false,\n ...rest\n } = props;\n\n if (!overflowTop && !overflowBottom) {\n return h(\"rect\", {\n x,\n y,\n width,\n height,\n ref,\n ...rest,\n });\n } else {\n const d = zigZagBoxPath(x, y, width, height, overflowTop, overflowBottom);\n return h(\"path\", {\n d,\n ref,\n ...rest,\n });\n }\n});\n\nfunction LabeledUnit(props: LabeledUnitProps) {\n const {\n division,\n label,\n onLabelUpdated,\n widthFraction,\n showLabel = true,\n backgroundColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const bounds = {\n ...useUnitRect(division, { widthFraction, axisType }),\n ...baseBounds,\n };\n const { width, height } = bounds;\n return h(\n Unit,\n {\n className: \"labeled-unit\",\n division,\n backgroundColor,\n patternID,\n ...bounds,\n },\n [\n h.if(showLabel)(\n ForeignObject,\n { ...bounds, className: \"unit-label-container\" },\n h(SizeAwareLabel, {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: { width, height },\n label,\n onVisibilityChanged(viz) {\n onLabelUpdated(label, viz);\n },\n }),\n ),\n ],\n );\n}\n\nfunction UnitBoxes<T>(props: {\n unitComponent: React.FunctionComponent<{ division: T }>;\n unitComponentProps?: any;\n transformDivisions?(divisions: T[]): T[];\n transformDivision?: (\n division: any,\n index: number,\n divisions: any[],\n ) => T | null;\n}) {\n const { unitComponent = Unit, unitComponentProps = {} } = props;\n const { divisions } = useContext(ColumnContext);\n\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n\n const children = useMemo(() => {\n return divisions.map((division: any, i) => {\n // @ts-ignore\n return h(unitComponent, {\n division,\n key: division.unit_id,\n ...unitComponentProps,\n });\n });\n }, [divisions, unitComponent, unitComponentProps]);\n\n return h(\n PatternDefsProvider,\n { resolveID, scalePattern },\n h(\"g.divisions\", children),\n );\n}\n\nexport { LabeledUnit, Unit, UnitBoxes, UnitProps };\n"],"names":["ColumnAxisType","$jfrfr$ColumnAxisType","ColumnContext","$jfrfr$ColumnContext","ColumnLayoutContext","$jfrfr$ColumnLayoutContext","useColumn","$jfrfr$useColumn","useGeologicPattern","$jfrfr$useGeologicPattern","zigZagBoxPath","$jfrfr$zigZagBoxPath","ForeignObject","$jfrfr$ForeignObject","PatternDefsProvider","$jfrfr$PatternDefsProvider","SizeAwareLabel","$jfrfr$SizeAwareLabel","$jfrfr$macrostrathyper","useContext","$jfrfr$useContext","forwardRef","$jfrfr$forwardRef","useMemo","$jfrfr$useMemo","$jfrfr$classnames","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$5VyZI","$a3mb1","$klU0I","$iWhRv","$lgTAP","$bfmPX","$82e068a44c11e855$var$h","styled","a","__esModule","default","$82e068a44c11e855$var$useUnitRect","division","options","widthFraction","axisType","AGE","padding","scale","width","bottomHeight","topHeight","getUnitHeightRange","y","height","Math","abs","x","$82e068a44c11e855$export$d54fdbabca27e53","props","d","children","className","_","nColumns","__","baseBounds","lithMap","useLithologies","bounds","backgroundColor","getMixedUnitColor","ref","selected","onClick","useUnitSelectionTarget","style","fill","fillOpacity","stroke","if","$82e068a44c11e855$export$1d8b9ae22d404866","defaultFill","patternColor","patternID","hasOverflowTop","t_clip_pos","hasOverflowBottom","b_clip_pos","overflowTop","overflowBottom","_patternID","resolveID","_fill","_className","colored","$82e068a44c11e855$var$UnitRect","rest","$82e068a44c11e855$export$b4f0ca233b98f9af","label","onLabelUpdated","showLabel","labelClassName","onVisibilityChanged","viz","$82e068a44c11e855$export$5d1cdfabe8dc8085","unitComponent","unitComponentProps","divisions","length","console","warn","map","i","key","unit_id","scalePattern","MinimalUnit","Unit","LabeledUnit","UnitBoxes"],"version":3,"file":"column-views.2d957a97.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ .column-container_afc440,body.light-mode .column-container_afc440{--column-background-color:var(--background-color,#fff);--column-stroke-color:var(--text-emphasized-color,#000);--column-text-color:var(--text-emphasized-color,#000)}@media (prefers-color-scheme:dark){body:not(.light-mode) .column-container_afc440{--column-background-color:var(--background-color,#000);--column-stroke-color:var(--text-emphasized-color,#fff);--column-text-color:var(--text-emphasized-color,#fff);color-scheme:dark;color:var(--column-text-color)}body:not(.light-mode) .column-container_afc440 .timescale{color:#000}body:not(.light-mode) .column-container_afc440 svg pattern image{filter:invert()}}body.dark-mode .column-container_afc440{--column-background-color:var(--background-color,#000);--column-stroke-color:var(--text-emphasized-color,#fff);--column-text-color:var(--text-emphasized-color,#fff);color-scheme:dark;color:var(--column-text-color)}body.dark-mode .column-container_afc440 .timescale{color:#000}body.dark-mode .column-container_afc440 svg pattern image{filter:invert()}.column-container_afc440 .column{flex-direction:row;height:fit-content;display:flex;position:relative}.column-container_afc440 g.lithology-column .column-clip-frame{stroke:none}.column-container_afc440 .unit{stroke:var(--column-stroke-color);stroke-width:1px}.column-container_afc440 .selection-overlay{fill:var(--selection-overlay-color,red);fill-opacity:var(--selection-overlay-opacity,.5)}.column-container_afc440 g.lithology-column use.frame{stroke:var(--column-stroke-color);pointer-events:none;stroke-width:1.5px!important}.column-container_afc440 .unit-label{text-align:center}.column-container_afc440 .col-note-label{margin:1px 0;font-size:10px;line-height:9px;border-left:none!important}.column-container_afc440 g.height-range{display:none}.column-container_afc440 .note-inner{border:none;padding:1px}.column-container_afc440 .frame rect{fill:#0000}.column-container_afc440 .default-buttons{width:100%;margin:0 -10px}.column-container_afc440 div.section{flex-direction:row;display:flex}.column-container_afc440 .section .divisions .unit{cursor:pointer}.column-container_afc440 .timescale{width:calc((1.5em + 1.5px)*var(--timescale-level-count,4));--timescale-level-size:1.5em}.timescale-column_afc440{position:relative}.section-main_afc440{margin-bottom:-4px;position:relative}.section-units-container_afc440,.main-column_afc440{position:relative}.unconformity-labels_afc440{pointer-events:none;position:absolute;top:0;left:0}.unconformity_afc440{text-align:center;justify-content:center;align-items:center;font-size:.8em;display:flex;position:absolute;top:0}.unconformity_afc440.giga_afc440{font-size:1em;font-weight:800}.unconformity_afc440.mega_afc440{font-size:.9em;font-weight:700}.unconformity_afc440.large_afc440{font-weight:600}.unconformity_afc440.small_afc440{font-weight:300}.unconformity-text_afc440{width:var(--column-width);color:var(--column-stroke-color);--unit-font-style:normal}.column-title-row_afc440{flex-direction:row;justify-content:space-between;align-items:baseline;gap:1em;display:flex}
2
+ /*# sourceMappingURL=column-views.307661d1.css.map */
@@ -0,0 +1 @@
1
+ {"mappings":"ACAA,uOAWE,mCACE,qQAOI,qEAEA,kFAIN,8PAOE,8DAIF,0EAIE,sGAOA,2EAIA,kFAKA,qI,yIASF,uDAGA,gH,qD,6D,gD,oE,qE,kE,4H,2C,0DAqCF,sEAQE,+E,qIAcA,+D,gE,kDAcA,kD,8G","sources":["column-views.307661d1.css","packages/column-views/src/column.module.sass"],"sourcesContent":[".column-container_afc440, body.light-mode .column-container_afc440 {\n --column-background-color: var(--background-color, #fff);\n --column-stroke-color: var(--text-emphasized-color, #000);\n --column-text-color: var(--text-emphasized-color, #000);\n}\n\n@media (prefers-color-scheme: dark) {\n body:not(.light-mode) .column-container_afc440 {\n --column-background-color: var(--background-color, #000);\n --column-stroke-color: var(--text-emphasized-color, #fff);\n --column-text-color: var(--text-emphasized-color, #fff);\n color-scheme: dark;\n color: var(--column-text-color);\n }\n\n body:not(.light-mode) .column-container_afc440 .timescale {\n color: #000;\n }\n\n body:not(.light-mode) .column-container_afc440 svg pattern image {\n filter: invert();\n }\n}\n\nbody.dark-mode .column-container_afc440 {\n --column-background-color: var(--background-color, #000);\n --column-stroke-color: var(--text-emphasized-color, #fff);\n --column-text-color: var(--text-emphasized-color, #fff);\n color-scheme: dark;\n color: var(--column-text-color);\n}\n\nbody.dark-mode .column-container_afc440 .timescale {\n color: #000;\n}\n\nbody.dark-mode .column-container_afc440 svg pattern image {\n filter: invert();\n}\n\n.column-container_afc440 .column {\n flex-direction: row;\n height: fit-content;\n display: flex;\n position: relative;\n}\n\n.column-container_afc440 g.lithology-column .column-clip-frame {\n stroke: none;\n}\n\n.column-container_afc440 .unit {\n stroke: var(--column-stroke-color);\n stroke-width: 1px;\n}\n\n.column-container_afc440 .selection-overlay {\n fill: var(--selection-overlay-color, red);\n fill-opacity: var(--selection-overlay-opacity, .5);\n}\n\n.column-container_afc440 g.lithology-column use.frame {\n stroke: var(--column-stroke-color);\n pointer-events: none;\n stroke-width: 1.5px !important;\n}\n\n.column-container_afc440 .unit-label {\n text-align: center;\n}\n\n.column-container_afc440 .col-note-label {\n margin: 1px 0;\n font-size: 10px;\n line-height: 9px;\n border-left: none !important;\n}\n\n.column-container_afc440 g.height-range {\n display: none;\n}\n\n.column-container_afc440 .note-inner {\n border: none;\n padding: 1px;\n}\n\n.column-container_afc440 .frame rect {\n fill: #0000;\n}\n\n.column-container_afc440 .default-buttons {\n width: 100%;\n margin: 0 -10px;\n}\n\n.column-container_afc440 div.section {\n flex-direction: row;\n display: flex;\n}\n\n.column-container_afc440 .section .divisions .unit {\n cursor: pointer;\n}\n\n.column-container_afc440 .timescale {\n width: calc((1.5em + 1.5px) * var(--timescale-level-count, 4));\n --timescale-level-size: 1.5em;\n}\n\n.timescale-column_afc440 {\n position: relative;\n}\n\n.section-main_afc440 {\n margin-bottom: -4px;\n position: relative;\n}\n\n.section-units-container_afc440, .main-column_afc440 {\n position: relative;\n}\n\n.unconformity-labels_afc440 {\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.unconformity_afc440 {\n text-align: center;\n justify-content: center;\n align-items: center;\n font-size: .8em;\n display: flex;\n position: absolute;\n top: 0;\n}\n\n.unconformity_afc440.giga_afc440 {\n font-size: 1em;\n font-weight: 800;\n}\n\n.unconformity_afc440.mega_afc440 {\n font-size: .9em;\n font-weight: 700;\n}\n\n.unconformity_afc440.large_afc440 {\n font-weight: 600;\n}\n\n.unconformity_afc440.small_afc440 {\n font-weight: 300;\n}\n\n.unconformity-text_afc440 {\n width: var(--column-width);\n color: var(--column-stroke-color);\n --unit-font-style: normal;\n}\n\n.column-title-row_afc440 {\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n gap: 1em;\n display: flex;\n}\n/*# sourceMappingURL=column-views.307661d1.css.map */\n",".column-container, body:global(.light-mode) .column-container\n --column-background-color: var(--background-color, #fff)\n --column-stroke-color: var(--text-emphasized-color, #000)\n --column-text-color: var(--text-emphasized-color, #000)\n\n/* We have to duplicate the dark mode styles here\n because we want to set them either if the preferred\n color scheme is dark OR if dark mode is explicitly enabled.\n If dark mode is explicitly enabled, we want to override\n the media query. */\n@media (prefers-color-scheme: dark)\n body:not(:global(.light-mode)) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\nbody:global(.dark-mode) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\n.column-container :global\n .column\n display: flex\n flex-direction: row\n position: relative\n height: fit-content\n\n g.lithology-column .column-clip-frame\n stroke: none\n\n .unit\n stroke: var(--column-stroke-color)\n stroke-width: 1px\n\n .selection-overlay\n fill: var(--selection-overlay-color, red)\n fill-opacity: var(--selection-overlay-opacity, 0.5)\n\n g.lithology-column use.frame\n stroke: var(--column-stroke-color)\n stroke-width: 1.5px !important\n pointer-events: none\n\n.column-container :global .unit-label\n text-align: center\n\n.column-container :global .col-note-label\n font-size: 10px\n line-height: 9px\n border-left: none !important\n margin: 1px 0\n\n.column-container :global g.height-range\n display: none\n\n.column-container :global .note-inner\n border: none\n padding: 1px\n\n.column-container :global .frame rect\n fill: transparent\n\n.column-container :global .default-buttons\n width: 100%\n margin: 0 -10px\n\n.column-container :global div.section\n display: flex\n flex-direction: row\n\n.column-container :global .section .divisions .unit\n cursor: pointer\n\n.column-container :global(.timescale)\n width: calc(calc(1.5em + 1.5px) * var(--timescale-level-count, 4))\n --timescale-level-size: 1.5em\n\n.timescale-column\n position: relative\n\n.section-main\n position: relative\n margin-bottom: -4px\n\n.section-units-container\n position: relative\n\n.main-column\n position: relative\n\n.unconformity-labels\n position: absolute\n top: 0\n left: 0\n pointer-events: none\n\n\n.unconformity\n text-align: center\n position: absolute\n top: 0px\n display: flex\n justify-content: center\n align-items: center\n font-size: 0.8em\n &.giga\n font-weight: 800\n font-size: 1em\n &.mega\n font-weight: 600\n font-weight: 700\n font-size: 0.9em\n &.large\n font-weight: 600\n &.small\n font-weight: 300\n\n\n.unconformity-text\n width: var(--column-width)\n color: var(--column-stroke-color)\n --unit-font-style: normal\n\n\n.column-title-row\n display: flex\n flex-direction: row\n gap: 1em\n justify-content: space-between\n align-items: baseline\n"],"names":[],"version":3,"file":"column-views.307661d1.css.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import{joinURL as t,addQueryString as e,useAPIResult as a}from"@macrostrat/ui-components";import n from"cross-fetch";import{feature as o}from"topojson-client";import{geoArea as r}from"d3-geo";function s(t,e,a,n){Object.defineProperty(t,e,{get:a,set:n,enumerable:!0,configurable:!0})}var l={};function c(t,e){return n("https://macrostrat.org/api/v2"+t,e)}async function i(a={}){let{apiBaseURL:o,projectID:s,format:l="topojson",statusCode:c,fetch:u=n}=a,f={format:l};null!=s&&(f={...f,project_id:s}),null!=c&&(f={...f,status_code:c}),null==s&&(f={...f,all:!0});let m="/columns";null!=o&&(m=t(o,m)),m=e(m,f);let p=await u(m,{method:"GET",headers:{"Content-Type":"application/json"}});if(null==p)return null;let h=await p.json();return d[l](h).filter(t=>null!=t.geometry).map(t=>{if(1e-8>r(t.geometry)){let e=t.geometry.coordinates[0][0];t.geometry={type:"Point",coordinates:e}}return t}).map((t,e)=>({id:t.properties?.col_id,...t}))}function u({apiRoute:t="/columns",status_code:e,project_id:n,format:o="geojson"}){let r;null==e&&null==n&&(r=!0);let s=d[o];return a(t,{format:o,all:r,status_code:e,project_id:n},s)}function f(t){return t?.features}s(l,"fetchAllColumns",()=>i),s(l,"useColumnFeatures",()=>u),s(l,"fetchLithologies",()=>p),s(l,"fetchIntervals",()=>h),s(l,"fetchEnvironments",()=>$),s(l,"fetchRefs",()=>g),s(l,"fetchStratNames",()=>j),s(l,"fetchUnits",()=>w),s(l,"fetchColumnUnits",()=>y);let d={topojson:function(t){try{let{data:e}=t.success,{features:a}=o(e,e.objects.output);return a}catch(t){return console.error(t),[]}},geojson:function(t){return f(t?.success?.data)},geojson_bare:f};async function m(t){return null==t?null:(await t.json()).success.data}async function p(t=c){let e=await t("/defs/lithologies?all");return await m(e)}async function h(t,e=c){let a="/defs/intervals";null!=t?a+=`?timescale_id=${t}`:a+="?all";let n=await e(a);return await m(n)}async function $(t=c){let e=await t("/defs/environments?all");return await m(e)}async function g(t,e=c){let a="/defs/refs";if(0==t.length)return[];a+="?ref_id="+t.join(",");let n=await e(a);return await m(n)}async function j(t,e=c){let a="/defs/strat_names";if(0==t.length)return[];a+="?strat_name_id="+t.join(",");let n=await e(a);return await m(n)}async function w(t,e=c){let a=t.map(t=>y(t,e));return await Promise.all(a)}async function y(t,e=c){let a=new URLSearchParams;a.append("response","long"),a.append("col_id",t.toString());let n=await e("/units?"+a.toString()),o=await n.json();if(!o.success)throw Error("Failed to fetch column units");return{columnID:t,units:o.success.data}}export{i as fetchAllColumns,u as useColumnFeatures,p as fetchLithologies,h as fetchIntervals,$ as fetchEnvironments,g as fetchRefs,j as fetchStratNames,w as fetchUnits,y as fetchColumnUnits};
2
+ //# sourceMappingURL=column-views.38357d4a.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["<anon>","packages/column-views/src/data-provider/fetch.ts"],"sourcesContent":["import {joinURL as $iGnPX$joinURL, addQueryString as $iGnPX$addQueryString, useAPIResult as $iGnPX$useAPIResult} from \"@macrostrat/ui-components\";\nimport $iGnPX$crossfetch from \"cross-fetch\";\nimport {feature as $iGnPX$feature} from \"topojson-client\";\nimport {geoArea as $iGnPX$geoArea} from \"d3-geo\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $482a09479937d1e2$exports = {};\n\n$parcel$export($482a09479937d1e2$exports, \"fetchAllColumns\", () => $482a09479937d1e2$export$45bd78cd093090fa);\n$parcel$export($482a09479937d1e2$exports, \"useColumnFeatures\", () => $482a09479937d1e2$export$e3270a4e30e40ff9);\n$parcel$export($482a09479937d1e2$exports, \"fetchLithologies\", () => $482a09479937d1e2$export$1aa679bd5e605f82);\n$parcel$export($482a09479937d1e2$exports, \"fetchIntervals\", () => $482a09479937d1e2$export$5d2ec2e733dfe6c7);\n$parcel$export($482a09479937d1e2$exports, \"fetchEnvironments\", () => $482a09479937d1e2$export$780b4b253712916c);\n$parcel$export($482a09479937d1e2$exports, \"fetchRefs\", () => $482a09479937d1e2$export$cd7bfa0860f58b96);\n$parcel$export($482a09479937d1e2$exports, \"fetchStratNames\", () => $482a09479937d1e2$export$8ea8f45a7ffe4183);\n$parcel$export($482a09479937d1e2$exports, \"fetchUnits\", () => $482a09479937d1e2$export$b97b9bdd6a521298);\n$parcel$export($482a09479937d1e2$exports, \"fetchColumnUnits\", () => $482a09479937d1e2$export$d3d8b0fabcc76c5d);\n\n\n\n\nfunction $482a09479937d1e2$var$defaultFetch(url, options) {\n const baseURL = \"https://macrostrat.org/api/v2\";\n return (0, $iGnPX$crossfetch)(baseURL + url, options);\n}\nasync function $482a09479937d1e2$export$45bd78cd093090fa(options = {}) {\n const { apiBaseURL: apiBaseURL, projectID: projectID, format: format = \"topojson\", statusCode: statusCode, fetch: fetch = (0, $iGnPX$crossfetch) } = options;\n let args = {\n format: format\n };\n if (projectID != null) args = {\n ...args,\n project_id: projectID\n };\n if (statusCode != null) args = {\n ...args,\n status_code: statusCode\n };\n if (projectID == null) args = {\n ...args,\n all: true\n };\n let url = \"/columns\";\n if (apiBaseURL != null) url = (0, $iGnPX$joinURL)(apiBaseURL, url);\n // Try with fetch\n url = (0, $iGnPX$addQueryString)(url, args);\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n if (res == null) return null;\n // Get JSON\n const data = await res.json();\n return $482a09479937d1e2$var$postProcessColumns($482a09479937d1e2$var$columnProcessors[format](data));\n}\nfunction $482a09479937d1e2$export$e3270a4e30e40ff9({ apiRoute: apiRoute = \"/columns\", status_code: status_code, project_id: project_id, format: format = \"geojson\" }) {\n let all = undefined;\n if (status_code == null && project_id == null) all = true;\n const processor = $482a09479937d1e2$var$columnProcessors[format];\n return (0, $iGnPX$useAPIResult)(apiRoute, {\n format: format,\n all: all,\n status_code: status_code,\n project_id: project_id\n }, processor);\n}\nfunction $482a09479937d1e2$var$processGeoJSON(res) {\n return $482a09479937d1e2$var$processGeoJSONBare(res?.success?.data);\n}\nfunction $482a09479937d1e2$var$processGeoJSONBare(res) {\n return res?.features;\n}\nfunction $482a09479937d1e2$var$processTopoJSON(res) {\n try {\n const { data: data } = res.success;\n const { features: f } = (0, $iGnPX$feature)(data, data.objects.output);\n return f;\n } catch (err) {\n console.error(err);\n return [];\n }\n}\nfunction $482a09479937d1e2$var$postProcessColumns(columns) {\n return $482a09479937d1e2$var$promoteColumnIDs($482a09479937d1e2$var$convertSmallAreasToPoints($482a09479937d1e2$var$removeFeaturesWithoutGeometry(columns)));\n}\nfunction $482a09479937d1e2$var$promoteColumnIDs(features) {\n return features.map((f, i)=>{\n return {\n id: f.properties?.col_id,\n ...f\n };\n });\n}\nfunction $482a09479937d1e2$var$removeFeaturesWithoutGeometry(features) {\n return features.filter((f)=>f.geometry != null);\n}\nfunction $482a09479937d1e2$var$convertSmallAreasToPoints(features) {\n return features.map((f)=>{\n // GeoArea takes a long time to run. We are really more worried about points that are zero-area\n if ((0, $iGnPX$geoArea)(f.geometry) < 1e-8) {\n const centroid = f.geometry.coordinates[0][0];\n f.geometry = {\n type: \"Point\",\n coordinates: centroid\n };\n }\n return f;\n });\n}\nconst $482a09479937d1e2$var$columnProcessors = {\n topojson: $482a09479937d1e2$var$processTopoJSON,\n geojson: $482a09479937d1e2$var$processGeoJSON,\n geojson_bare: $482a09479937d1e2$var$processGeoJSONBare\n};\nasync function $482a09479937d1e2$var$unwrapResponse(res) {\n if (res == null) return null;\n const resData = await res.json();\n return resData[\"success\"][\"data\"];\n}\nasync function $482a09479937d1e2$export$1aa679bd5e605f82(fetch = $482a09479937d1e2$var$defaultFetch) {\n const res = await fetch(\"/defs/lithologies?all\");\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$5d2ec2e733dfe6c7(timescaleID, fetch = $482a09479937d1e2$var$defaultFetch) {\n let url = `/defs/intervals`;\n if (timescaleID != null) url += `?timescale_id=${timescaleID}`;\n else url += \"?all\";\n const res = await fetch(url);\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$780b4b253712916c(fetch = $482a09479937d1e2$var$defaultFetch) {\n const res = await fetch(\"/defs/environments?all\");\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$cd7bfa0860f58b96(refs, fetch = $482a09479937d1e2$var$defaultFetch) {\n let url = `/defs/refs`;\n if (refs.length == 0) return [];\n url += \"?ref_id=\" + refs.join(\",\");\n const res = await fetch(url);\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$8ea8f45a7ffe4183(names, fetch = $482a09479937d1e2$var$defaultFetch) {\n let url = `/defs/strat_names`;\n if (names.length == 0) return [];\n url += \"?strat_name_id=\" + names.join(\",\");\n const res = await fetch(url);\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$b97b9bdd6a521298(columns, fetch = $482a09479937d1e2$var$defaultFetch) {\n const promises = columns.map((col_id)=>$482a09479937d1e2$export$d3d8b0fabcc76c5d(col_id, fetch));\n return await Promise.all(promises);\n}\nasync function $482a09479937d1e2$export$d3d8b0fabcc76c5d(col_id, fetch = $482a09479937d1e2$var$defaultFetch) {\n const params = new URLSearchParams();\n params.append(\"response\", \"long\");\n params.append(\"col_id\", col_id.toString());\n const res = await fetch(\"/units?\" + params.toString());\n const data = await res.json();\n if (!data.success) throw new Error(\"Failed to fetch column units\");\n const units = data.success.data;\n return {\n columnID: col_id,\n units: units\n };\n}\n\n\nexport {$482a09479937d1e2$export$45bd78cd093090fa as fetchAllColumns, $482a09479937d1e2$export$e3270a4e30e40ff9 as useColumnFeatures, $482a09479937d1e2$export$1aa679bd5e605f82 as fetchLithologies, $482a09479937d1e2$export$5d2ec2e733dfe6c7 as fetchIntervals, $482a09479937d1e2$export$780b4b253712916c as fetchEnvironments, $482a09479937d1e2$export$cd7bfa0860f58b96 as fetchRefs, $482a09479937d1e2$export$8ea8f45a7ffe4183 as fetchStratNames, $482a09479937d1e2$export$b97b9bdd6a521298 as fetchUnits, $482a09479937d1e2$export$d3d8b0fabcc76c5d as fetchColumnUnits};\n//# sourceMappingURL=column-views.38357d4a.js.map\n","import {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n MacrostratRef,\n StratName,\n StratUnit,\n UnitLong,\n} from \"@macrostrat/api-types\";\nimport {\n addQueryString,\n joinURL,\n useAPIResult,\n} from \"@macrostrat/ui-components\";\nimport crossFetch from \"cross-fetch\";\nimport { feature } from \"topojson-client\";\nimport { geoArea } from \"d3-geo\";\n\nfunction defaultFetch(\n url: string,\n options: RequestInit | undefined = undefined,\n) {\n const baseURL = \"https://macrostrat.org/api/v2\";\n return crossFetch(baseURL + url, options);\n}\n\nexport interface ColumnFetchOptions {\n apiBaseURL?: string;\n projectID?: number;\n statusCode?: \"in process\";\n format?: \"geojson\" | \"topojson\" | \"geojson_bare\";\n fetch?: any;\n}\n\nexport async function fetchAllColumns(\n options: ColumnFetchOptions = {},\n): Promise<ColumnGeoJSONRecord[]> {\n const {\n apiBaseURL,\n projectID,\n format = \"topojson\",\n statusCode,\n fetch = crossFetch,\n } = options;\n\n let args: any = { format };\n if (projectID != null) {\n args = { ...args, project_id: projectID };\n }\n if (statusCode != null) {\n args = { ...args, status_code: statusCode };\n }\n\n if (projectID == null) {\n args = { ...args, all: true };\n }\n\n let url = \"/columns\";\n if (apiBaseURL != null) {\n url = joinURL(apiBaseURL, url);\n }\n\n // Try with fetch\n url = addQueryString(url, args);\n\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (res == null) {\n return null;\n }\n\n // Get JSON\n const data = await res.json();\n return postProcessColumns(columnProcessors[format](data));\n}\n\nexport function useColumnFeatures({\n apiRoute = \"/columns\",\n status_code,\n project_id,\n format = \"geojson\",\n}) {\n let all: boolean = undefined;\n if (status_code == null && project_id == null) {\n all = true;\n }\n\n const processor = columnProcessors[format];\n\n return useAPIResult(\n apiRoute,\n { format, all, status_code, project_id },\n processor,\n );\n}\n\nfunction processGeoJSON(res) {\n return processGeoJSONBare(res?.success?.data);\n}\n\nfunction processGeoJSONBare(res) {\n return res?.features;\n}\n\nfunction processTopoJSON(res) {\n try {\n const { data } = res.success;\n const { features: f } = feature(data, data.objects.output) as any;\n return f;\n } catch (err) {\n console.error(err);\n return [];\n }\n}\n\nfunction postProcessColumns(columns) {\n return promoteColumnIDs(\n convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns)),\n );\n}\n\nfunction promoteColumnIDs(\n features: ColumnGeoJSONRecord[],\n): ColumnGeoJSONRecordWithID[] {\n return features.map((f, i) => {\n return {\n id: f.properties?.col_id,\n ...f,\n };\n });\n}\n\nfunction removeFeaturesWithoutGeometry(features) {\n return features.filter((f) => f.geometry != null);\n}\n\nfunction convertSmallAreasToPoints(features) {\n return features.map((f) => {\n // GeoArea takes a long time to run. We are really more worried about points that are zero-area\n if (geoArea(f.geometry) < 1e-8) {\n const centroid = f.geometry.coordinates[0][0];\n f.geometry = {\n type: \"Point\",\n coordinates: centroid,\n };\n }\n return f;\n });\n}\n\nconst columnProcessors = {\n topojson: processTopoJSON,\n geojson: processGeoJSON,\n geojson_bare: processGeoJSONBare,\n};\n\nasync function unwrapResponse(res) {\n if (res == null) {\n return null;\n }\n const resData = await res.json();\n return resData[\"success\"][\"data\"];\n}\n\nexport async function fetchLithologies(fetch = defaultFetch) {\n const res = await fetch(\"/defs/lithologies?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchIntervals(\n timescaleID: number | null,\n fetch = defaultFetch,\n) {\n let url = `/defs/intervals`;\n if (timescaleID != null) {\n url += `?timescale_id=${timescaleID}`;\n } else {\n url += \"?all\";\n }\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport async function fetchEnvironments(fetch = defaultFetch) {\n const res = await fetch(\"/defs/environments?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchRefs(\n refs: number[],\n fetch = defaultFetch,\n): Promise<MacrostratRef[]> {\n let url = `/defs/refs`;\n if (refs.length == 0) {\n return [];\n }\n url += \"?ref_id=\" + refs.join(\",\");\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport async function fetchStratNames(\n names: number[],\n fetch = defaultFetch,\n): Promise<StratName[]> {\n let url = `/defs/strat_names`;\n if (names.length == 0) {\n return [];\n }\n url += \"?strat_name_id=\" + names.join(\",\");\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport type ColumnData = {\n units: UnitLong[];\n columnID: number;\n};\n\nexport async function fetchUnits(\n columns: number[],\n fetch = defaultFetch,\n): Promise<ColumnData[]> {\n const promises = columns.map((col_id) => fetchColumnUnits(col_id, fetch));\n return await Promise.all(promises);\n}\n\nexport async function fetchColumnUnits(\n col_id: number,\n fetch = defaultFetch,\n): Promise<ColumnData> {\n const params = new URLSearchParams();\n params.append(\"response\", \"long\");\n params.append(\"col_id\", col_id.toString());\n const res = await fetch(\"/units\" + \"?\" + params.toString());\n const data = await res.json();\n if (!data.success) {\n throw new Error(\"Failed to fetch column units\");\n }\n const units = data.success.data;\n return { columnID: col_id, units };\n}\n"],"names":["joinURL","$iGnPX$joinURL","addQueryString","$iGnPX$addQueryString","useAPIResult","$iGnPX$useAPIResult","$iGnPX$crossfetch","feature","$iGnPX$feature","geoArea","$iGnPX$geoArea","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$482a09479937d1e2$exports","$482a09479937d1e2$var$defaultFetch","url","options","baseURL","$482a09479937d1e2$export$45bd78cd093090fa","apiBaseURL","projectID","format","statusCode","fetch","args","project_id","status_code","all","res","method","headers","data","json","features","$482a09479937d1e2$var$columnProcessors","filter","f","geometry","map","centroid","coordinates","type","i","id","properties","col_id","$482a09479937d1e2$export$e3270a4e30e40ff9","apiRoute","processor","$482a09479937d1e2$var$processGeoJSONBare","$482a09479937d1e2$export$1aa679bd5e605f82","$482a09479937d1e2$export$5d2ec2e733dfe6c7","$482a09479937d1e2$export$780b4b253712916c","$482a09479937d1e2$export$cd7bfa0860f58b96","$482a09479937d1e2$export$8ea8f45a7ffe4183","$482a09479937d1e2$export$b97b9bdd6a521298","$482a09479937d1e2$export$d3d8b0fabcc76c5d","topojson","success","objects","output","err","console","error","geojson","geojson_bare","$482a09479937d1e2$var$unwrapResponse","resData","timescaleID","refs","length","join","names","columns","promises","Promise","params","URLSearchParams","append","toString","Error","columnID","units","fetchAllColumns","useColumnFeatures","fetchLithologies","fetchIntervals","fetchEnvironments","fetchRefs","fetchStratNames","fetchUnits","fetchColumnUnits"],"version":3,"file":"column-views.38357d4a.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import e from"@macrostrat/hyper";import{useKeyHandler as t}from"@macrostrat/ui-components";import{createContext as n,useContext as i,useState as l,useEffect as u,useRef as o,useCallback as r}from"react";import{useStore as d,createStore as a}from"zustand";function c(e,t,n,i){Object.defineProperty(e,t,{get:n,set:i,enumerable:!0,configurable:!0})}var s={};c(s,"useUnitSelectionDispatch",()=>U),c(s,"useUnitSelectionStore",()=>p),c(s,"useSelectedUnit",()=>S),c(s,"UnitSelectionProvider",()=>g),c(s,"useUnitSelectionTarget",()=>$),c(s,"UnitKeyboardNavigation",()=>h);let f=n(null);function U(){let e=i(f);return null==e?()=>{}:d(e,e=>e.onUnitSelected)}function p(e){let t=i(f);return null==t?null:d(t,e)}function S(){return p(e=>e.selectedUnitData)}function g(t){let[n]=l(()=>a(e=>({selectedUnit:null,selectedUnitData:null,overlayPosition:null,setSelectedUnit(t){if(null==t)return void e({selectedUnit:null,selectedUnitData:null});"number"==typeof t?e({selectedUnit:t,selectedUnitData:null}):"unit_id"in t&&e({selectedUnit:t.unit_id,selectedUnitData:t})},onUnitSelected:(n,i,l)=>{let u=t.columnRef?.current,o=null;if(t.onClickedColumn){let e={unitID:n?.unit_id,unit:n,target:i,height:u?.getBoundingClientRect().height||0};t.onClickedColumn(e,l)}if(null!=n&&null!=u&&null!=i){let e=u.getBoundingClientRect(),t=i.getBoundingClientRect();o={x:t.left-e.left,y:t.top-e.top,width:t.width,height:t.height}}return t.onUnitSelected?.(n?.unit_id,n),e({selectedUnit:n?.unit_id,selectedUnitData:n,overlayPosition:o})}}))),{units:i,selectedUnit:o}=t;return u(()=>{if(null!=o){let e=i?.find(e=>e.unit_id===o);n.setState({selectedUnit:o,selectedUnitData:e})}else n.setState({selectedUnit:null,selectedUnitData:null})},[o,i]),e(f.Provider,{value:n},t.children)}function $(e){let t=o(),n=S(),i=p(e=>e.onUnitSelected),l=n?.unit_id==e.unit_id,d=r(n=>{null!=i&&(i(e,t.current,n),n.stopPropagation())},[e,i]);return u(()=>{l&&null!=i&&(i(e,t.current,null),t.current?.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"}))},[l,i]),[t,l,d]}function h({units:e}){let n=S(),i=U(),l=e.findIndex(e=>e.unit_id===n?.unit_id),u={38:l-1,40:l+1};return t(t=>{let n=u[t.keyCode];null==n||n<0||n>=e.length||(i(e[n],null,null),t.stopPropagation())},[e,l]),null}export{U as useUnitSelectionDispatch,p as useUnitSelectionStore,S as useSelectedUnit,g as UnitSelectionProvider,$ as useUnitSelectionTarget,h as UnitKeyboardNavigation};
2
+ //# sourceMappingURL=column-views.3eeac38d.js.map