@macrostrat/column-views 2.4.0 → 2.4.2

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 (203) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/esm/{column-views.848349c0.js → column-views.083fb787.js} +5 -5
  3. package/dist/esm/{column-views.848349c0.js.map → column-views.083fb787.js.map} +1 -1
  4. package/dist/esm/{column-views.9d0d78aa.js → column-views.088a0274.js} +2 -2
  5. package/dist/esm/{column-views.9d0d78aa.js.map → column-views.088a0274.js.map} +1 -1
  6. package/dist/esm/{column-views.f046b170.js → column-views.11353c2c.js} +5 -5
  7. package/dist/esm/{column-views.f046b170.js.map → column-views.11353c2c.js.map} +1 -1
  8. package/dist/esm/{column-views.55bce35c.js → column-views.18655508.js} +3 -3
  9. package/dist/esm/{column-views.55bce35c.js.map → column-views.18655508.js.map} +1 -1
  10. package/dist/esm/{column-views.2e517e39.js → column-views.1cd55918.js} +91 -11
  11. package/dist/esm/column-views.1cd55918.js.map +1 -0
  12. package/dist/esm/column-views.1ef55568.js +15 -0
  13. package/dist/esm/{column-views.33daabd5.js.map → column-views.1ef55568.js.map} +1 -1
  14. package/dist/esm/{column-views.3c1cde51.js → column-views.3090f246.js} +22 -4
  15. package/dist/esm/column-views.3090f246.js.map +1 -0
  16. package/dist/esm/{column-views.c92a359e.js → column-views.33796541.js} +2 -2
  17. package/dist/esm/{column-views.c92a359e.js.map → column-views.33796541.js.map} +1 -1
  18. package/dist/esm/{column-views.e21f4e50.js → column-views.3ae8f23d.js} +2 -2
  19. package/dist/esm/{column-views.e21f4e50.js.map → column-views.3ae8f23d.js.map} +1 -1
  20. package/dist/esm/{column-views.fdb3799c.js → column-views.40d3688c.js} +3 -3
  21. package/dist/esm/{column-views.fdb3799c.js.map → column-views.40d3688c.js.map} +1 -1
  22. package/dist/esm/{column-views.45acb682.js → column-views.4e9b8594.js} +8 -7
  23. package/dist/esm/column-views.4e9b8594.js.map +1 -0
  24. package/dist/esm/{column-views.8c296309.js → column-views.5e1c216f.js} +27 -6
  25. package/dist/esm/column-views.5e1c216f.js.map +1 -0
  26. package/dist/esm/{column-views.af89f2b1.js → column-views.5e830e7c.js} +8 -8
  27. package/dist/esm/{column-views.af89f2b1.js.map → column-views.5e830e7c.js.map} +1 -1
  28. package/dist/esm/{column-views.3d33ef0f.js → column-views.5ec7294d.js} +3 -3
  29. package/dist/esm/{column-views.3d33ef0f.js.map → column-views.5ec7294d.js.map} +1 -1
  30. package/dist/esm/{column-views.9b210fb2.js → column-views.6f0d4f3a.js} +2 -2
  31. package/dist/esm/{column-views.9b210fb2.js.map → column-views.6f0d4f3a.js.map} +1 -1
  32. package/dist/esm/{column-views.58b891df.js → column-views.76fb9948.js} +2 -2
  33. package/dist/esm/{column-views.58b891df.js.map → column-views.76fb9948.js.map} +1 -1
  34. package/dist/esm/{column-views.1ef0f7e8.js → column-views.77322764.js} +2 -2
  35. package/dist/esm/{column-views.1ef0f7e8.js.map → column-views.77322764.js.map} +1 -1
  36. package/dist/esm/{column-views.fc4d28d8.js → column-views.85d57d04.js} +4 -4
  37. package/dist/esm/{column-views.fc4d28d8.js.map → column-views.85d57d04.js.map} +1 -1
  38. package/dist/esm/{column-views.1cd57b96.js → column-views.88436022.js} +2 -2
  39. package/dist/esm/{column-views.1cd57b96.js.map → column-views.88436022.js.map} +1 -1
  40. package/dist/esm/{column-views.b7b0be88.js → column-views.88b2418b.js} +3 -3
  41. package/dist/esm/{column-views.b7b0be88.js.map → column-views.88b2418b.js.map} +1 -1
  42. package/dist/esm/{column-views.8c8f3fe0.js → column-views.8ce33ec6.js} +2 -2
  43. package/dist/esm/{column-views.8c8f3fe0.js.map → column-views.8ce33ec6.js.map} +1 -1
  44. package/dist/esm/{column-views.31152763.js → column-views.91c18fe3.js} +20 -11
  45. package/dist/esm/column-views.91c18fe3.js.map +1 -0
  46. package/dist/esm/{column-views.3067c5e3.js → column-views.99cb1c41.js} +3 -3
  47. package/dist/esm/{column-views.3067c5e3.js.map → column-views.99cb1c41.js.map} +1 -1
  48. package/dist/esm/{column-views.b9c4d94c.js → column-views.ab2cc6cb.js} +27 -14
  49. package/dist/esm/column-views.ab2cc6cb.js.map +1 -0
  50. package/dist/esm/{column-views.dda76243.js → column-views.af4278f0.js} +3 -3
  51. package/dist/esm/{column-views.dda76243.js.map → column-views.af4278f0.js.map} +1 -1
  52. package/dist/esm/{column-views.b8933ea2.js → column-views.b957dc19.js} +3 -3
  53. package/dist/esm/{column-views.b8933ea2.js.map → column-views.b957dc19.js.map} +1 -1
  54. package/dist/esm/{column-views.1f954206.js → column-views.bc83a85d.js} +19 -3
  55. package/dist/esm/column-views.bc83a85d.js.map +1 -0
  56. package/dist/esm/{column-views.8168c37d.js → column-views.c1e507e6.js} +2 -2
  57. package/dist/esm/{column-views.8168c37d.js.map → column-views.c1e507e6.js.map} +1 -1
  58. package/dist/esm/{column-views.0f910df6.js → column-views.c93b63db.js} +3 -3
  59. package/dist/esm/column-views.c93b63db.js.map +1 -0
  60. package/dist/esm/{column-views.4e5746da.js → column-views.ce5251f7.js} +2 -2
  61. package/dist/esm/{column-views.4e5746da.js.map → column-views.ce5251f7.js.map} +1 -1
  62. package/dist/esm/{column-views.4099a246.js → column-views.d4e50f74.js} +3 -3
  63. package/dist/esm/{column-views.4099a246.js.map → column-views.d4e50f74.js.map} +1 -1
  64. package/dist/esm/{column-views.b3398cca.js → column-views.dd2d5a6d.js} +5 -5
  65. package/dist/esm/{column-views.b3398cca.js.map → column-views.dd2d5a6d.js.map} +1 -1
  66. package/dist/esm/{column-views.86b879ba.js → column-views.e6882667.js} +5 -5
  67. package/dist/esm/{column-views.86b879ba.js.map → column-views.e6882667.js.map} +1 -1
  68. package/dist/esm/{column-views.1d356b7e.js → column-views.e885211d.js} +2 -2
  69. package/dist/esm/{column-views.1d356b7e.js.map → column-views.e885211d.js.map} +1 -1
  70. package/dist/esm/{column-views.631f55d4.js → column-views.ee2fd38f.js} +3 -3
  71. package/dist/esm/{column-views.631f55d4.js.map → column-views.ee2fd38f.js.map} +1 -1
  72. package/dist/esm/{column-views.df872a2c.js → column-views.f35c4621.js} +2 -2
  73. package/dist/esm/{column-views.df872a2c.js.map → column-views.f35c4621.js.map} +1 -1
  74. package/dist/esm/{column-views.d3a4596e.js → column-views.f56e604d.js} +3 -3
  75. package/dist/esm/{column-views.d3a4596e.js.map → column-views.f56e604d.js.map} +1 -1
  76. package/dist/esm/{column-views.28cab78c.js → column-views.f904e6d7.js} +3 -3
  77. package/dist/esm/{column-views.28cab78c.js.map → column-views.f904e6d7.js.map} +1 -1
  78. package/dist/esm/{column-views.25713aad.js → column-views.fc4860bd.js} +4 -4
  79. package/dist/esm/{column-views.25713aad.js.map → column-views.fc4860bd.js.map} +1 -1
  80. package/dist/esm/{column-views.3c9f5ba9.js → column-views.fedccce9.js} +2 -2
  81. package/dist/esm/{column-views.3c9f5ba9.js.map → column-views.fedccce9.js.map} +1 -1
  82. package/dist/esm/index.d.ts +21 -32
  83. package/dist/esm/index.d.ts.map +1 -1
  84. package/dist/esm/index.js +11 -11
  85. package/dist/node/{column-views.a0e23210.js → column-views.003e0c17.js} +2 -2
  86. package/dist/node/{column-views.a0e23210.js.map → column-views.003e0c17.js.map} +1 -1
  87. package/dist/node/column-views.080781ca.js +2 -0
  88. package/dist/node/column-views.080781ca.js.map +1 -0
  89. package/dist/node/{column-views.dedafcae.js → column-views.0818254f.js} +2 -2
  90. package/dist/node/{column-views.dedafcae.js.map → column-views.0818254f.js.map} +1 -1
  91. package/dist/node/{column-views.f749dbd6.js → column-views.0d48f51d.js} +2 -2
  92. package/dist/node/{column-views.f749dbd6.js.map → column-views.0d48f51d.js.map} +1 -1
  93. package/dist/node/column-views.18e86c2d.js +2 -0
  94. package/dist/node/column-views.18e86c2d.js.map +1 -0
  95. package/dist/node/{column-views.8f5532b0.js → column-views.375529b1.js} +2 -2
  96. package/dist/node/{column-views.8f5532b0.js.map → column-views.375529b1.js.map} +1 -1
  97. package/dist/node/{column-views.bd1481f0.js → column-views.39b71a38.js} +2 -2
  98. package/dist/node/{column-views.bd1481f0.js.map → column-views.39b71a38.js.map} +1 -1
  99. package/dist/node/{column-views.190241c4.js → column-views.447008d0.js} +2 -2
  100. package/dist/node/{column-views.190241c4.js.map → column-views.447008d0.js.map} +1 -1
  101. package/dist/node/{column-views.e4e014cd.js → column-views.4d573ded.js} +2 -2
  102. package/dist/node/{column-views.e4e014cd.js.map → column-views.4d573ded.js.map} +1 -1
  103. package/dist/node/{column-views.a54c0820.js → column-views.4d8fc443.js} +2 -2
  104. package/dist/node/{column-views.a54c0820.js.map → column-views.4d8fc443.js.map} +1 -1
  105. package/dist/node/{column-views.69ddf14d.js → column-views.54f7a243.js} +2 -2
  106. package/dist/node/{column-views.69ddf14d.js.map → column-views.54f7a243.js.map} +1 -1
  107. package/dist/node/column-views.58b336f1.js +2 -0
  108. package/dist/node/column-views.58b336f1.js.map +1 -0
  109. package/dist/node/{column-views.ed7b4c16.js → column-views.5908556a.js} +2 -2
  110. package/dist/node/{column-views.ed7b4c16.js.map → column-views.5908556a.js.map} +1 -1
  111. package/dist/node/{column-views.0980c2a0.js → column-views.5c02450b.js} +2 -2
  112. package/dist/node/{column-views.0980c2a0.js.map → column-views.5c02450b.js.map} +1 -1
  113. package/dist/node/column-views.5e73411d.js +2 -0
  114. package/dist/node/column-views.5e73411d.js.map +1 -0
  115. package/dist/node/{column-views.fcf2be3c.js → column-views.5f3f8ccf.js} +2 -2
  116. package/dist/node/{column-views.fcf2be3c.js.map → column-views.5f3f8ccf.js.map} +1 -1
  117. package/dist/node/{column-views.b7f69f19.js → column-views.6051e986.js} +2 -2
  118. package/dist/node/{column-views.b7f69f19.js.map → column-views.6051e986.js.map} +1 -1
  119. package/dist/node/{column-views.89afd6b3.js → column-views.64fc40d6.js} +2 -2
  120. package/dist/node/{column-views.89afd6b3.js.map → column-views.64fc40d6.js.map} +1 -1
  121. package/dist/node/{column-views.3ce34544.js → column-views.66663668.js} +2 -2
  122. package/dist/node/{column-views.3ce34544.js.map → column-views.66663668.js.map} +1 -1
  123. package/dist/node/{column-views.7ee01d2b.js → column-views.6f0cb059.js} +2 -2
  124. package/dist/node/{column-views.7ee01d2b.js.map → column-views.6f0cb059.js.map} +1 -1
  125. package/dist/node/{column-views.07680def.js → column-views.72c3c6e7.js} +2 -2
  126. package/dist/node/{column-views.07680def.js.map → column-views.72c3c6e7.js.map} +1 -1
  127. package/dist/node/{column-views.6d6a8fde.js → column-views.74fcfb9c.js} +2 -2
  128. package/dist/node/{column-views.6d6a8fde.js.map → column-views.74fcfb9c.js.map} +1 -1
  129. package/dist/node/{column-views.00c19fe8.js → column-views.784bac2a.js} +2 -2
  130. package/dist/node/{column-views.00c19fe8.js.map → column-views.784bac2a.js.map} +1 -1
  131. package/dist/node/{column-views.b3aa406d.js → column-views.796fc1de.js} +2 -2
  132. package/dist/node/{column-views.b3aa406d.js.map → column-views.796fc1de.js.map} +1 -1
  133. package/dist/node/column-views.7b6e7d82.js +2 -0
  134. package/dist/node/column-views.7b6e7d82.js.map +1 -0
  135. package/dist/node/{column-views.00caa49a.js → column-views.7e895e1a.js} +2 -2
  136. package/dist/node/{column-views.00caa49a.js.map → column-views.7e895e1a.js.map} +1 -1
  137. package/dist/node/column-views.87d31e0a.js +2 -0
  138. package/dist/node/column-views.87d31e0a.js.map +1 -0
  139. package/dist/node/{column-views.4e677bc4.js → column-views.94c8ce3e.js} +2 -2
  140. package/dist/node/{column-views.4e677bc4.js.map → column-views.94c8ce3e.js.map} +1 -1
  141. package/dist/node/{column-views.48a3cfa3.js → column-views.951e3e9a.js} +2 -2
  142. package/dist/node/{column-views.48a3cfa3.js.map → column-views.951e3e9a.js.map} +1 -1
  143. package/dist/node/{column-views.97f7f353.js → column-views.b6613ab0.js} +2 -2
  144. package/dist/node/{column-views.97f7f353.js.map → column-views.b6613ab0.js.map} +1 -1
  145. package/dist/node/{column-views.d529d3aa.js → column-views.b762c9a8.js} +2 -2
  146. package/dist/node/{column-views.d529d3aa.js.map → column-views.b762c9a8.js.map} +1 -1
  147. package/dist/node/{column-views.e1481ea6.js → column-views.bdf05ed4.js} +2 -2
  148. package/dist/node/{column-views.e1481ea6.js.map → column-views.bdf05ed4.js.map} +1 -1
  149. package/dist/node/{column-views.1d1d6117.js → column-views.d30231cb.js} +2 -2
  150. package/dist/node/{column-views.1d1d6117.js.map → column-views.d30231cb.js.map} +1 -1
  151. package/dist/node/column-views.d86e6c7d.js +2 -0
  152. package/dist/node/column-views.d86e6c7d.js.map +1 -0
  153. package/dist/node/column-views.db3377d8.js +2 -0
  154. package/dist/node/column-views.db3377d8.js.map +1 -0
  155. package/dist/node/{column-views.60dc38f3.js → column-views.f4063bc8.js} +2 -2
  156. package/dist/node/{column-views.60dc38f3.js.map → column-views.f4063bc8.js.map} +1 -1
  157. package/dist/node/{column-views.9a408bbf.js → column-views.f93b4175.js} +2 -2
  158. package/dist/node/{column-views.9a408bbf.js.map → column-views.f93b4175.js.map} +1 -1
  159. package/dist/node/{column-views.b9900855.js → column-views.fa5ee6de.js} +2 -2
  160. package/dist/node/{column-views.b9900855.js.map → column-views.fa5ee6de.js.map} +1 -1
  161. package/dist/node/{column-views.705f66b1.js → column-views.fe7a5452.js} +2 -2
  162. package/dist/node/{column-views.705f66b1.js.map → column-views.fe7a5452.js.map} +1 -1
  163. package/dist/node/column-views.ffbffec7.js +2 -0
  164. package/dist/node/column-views.ffbffec7.js.map +1 -0
  165. package/dist/node/index.js +1 -1
  166. package/dist/node/index.js.map +1 -1
  167. package/package.json +6 -5
  168. package/src/correlation-chart/main.ts +13 -4
  169. package/src/correlation-chart/stories/correlation-chart.stories.ts +38 -17
  170. package/src/data-provider/base.ts +22 -0
  171. package/src/data-provider/fetch.ts +35 -10
  172. package/src/data-provider/unit-selection.ts +147 -14
  173. package/src/maps/column-correlation/core.ts +1 -1
  174. package/src/maps/column-correlation/state.ts +16 -1
  175. package/src/unit-details/panel.ts +44 -26
  176. package/src/unit-details/popover.ts +13 -5
  177. package/dist/esm/column-views.0f910df6.js.map +0 -1
  178. package/dist/esm/column-views.1f954206.js.map +0 -1
  179. package/dist/esm/column-views.2e517e39.js.map +0 -1
  180. package/dist/esm/column-views.31152763.js.map +0 -1
  181. package/dist/esm/column-views.33daabd5.js +0 -15
  182. package/dist/esm/column-views.3c1cde51.js.map +0 -1
  183. package/dist/esm/column-views.45acb682.js.map +0 -1
  184. package/dist/esm/column-views.8c296309.js.map +0 -1
  185. package/dist/esm/column-views.b9c4d94c.js.map +0 -1
  186. package/dist/node/column-views.1495397b.js +0 -2
  187. package/dist/node/column-views.1495397b.js.map +0 -1
  188. package/dist/node/column-views.26306041.js +0 -2
  189. package/dist/node/column-views.26306041.js.map +0 -1
  190. package/dist/node/column-views.41d72280.js +0 -2
  191. package/dist/node/column-views.41d72280.js.map +0 -1
  192. package/dist/node/column-views.68fe4814.js +0 -2
  193. package/dist/node/column-views.68fe4814.js.map +0 -1
  194. package/dist/node/column-views.7425d37b.js +0 -2
  195. package/dist/node/column-views.7425d37b.js.map +0 -1
  196. package/dist/node/column-views.7714173b.js +0 -2
  197. package/dist/node/column-views.7714173b.js.map +0 -1
  198. package/dist/node/column-views.861b8e3e.js +0 -2
  199. package/dist/node/column-views.861b8e3e.js.map +0 -1
  200. package/dist/node/column-views.bf90c8a3.js +0 -2
  201. package/dist/node/column-views.bf90c8a3.js.map +0 -1
  202. package/dist/node/column-views.bfaf5ddb.js +0 -2
  203. package/dist/node/column-views.bfaf5ddb.js.map +0 -1
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,S,E,E,S,E,E,G,E,E,G,E,E,G,E,E,U,6C,iB,C,6C,c,C,6C,a,C,6C,qB,C,6C,c,C,6C,a,C,6C,e,C,6C,c,C,6C,sB,C,6C,uB,C,6C,kB,C,6C,4B,C,6C,iB,C,6C,sB,C,6C,a,C,6C,yB,C,6C,qB","sources":["<anon>","packages/column-views/src/facets/index.ts"],"sourcesContent":["import \"./column-views.07680def.js\";\nimport \"./column-views.97f7f353.js\";\nimport \"./column-views.00caa49a.js\";\nimport \"./column-views.4e677bc4.js\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $a66a583913c03b09$exports = {};\n\nvar $3S9SB = parcelRequire(\"3S9SB\");\n\nvar $7kahb = parcelRequire(\"7kahb\");\n\nvar $28PcI = parcelRequire(\"28PcI\");\n\nvar $2koQo = parcelRequire(\"2koQo\");\n$parcel$exportWildcard($a66a583913c03b09$exports, $3S9SB);\n$parcel$exportWildcard($a66a583913c03b09$exports, $7kahb);\n$parcel$exportWildcard($a66a583913c03b09$exports, $28PcI);\n$parcel$exportWildcard($a66a583913c03b09$exports, $2koQo);\n\n\nexport {$ea2f112131e22f14$export$554267114407ef68 as PBDBFossilsColumn, $8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType, $8e174c7ae24a4598$export$e6af757fa9780077 as useFossilData, $9cea14fa75e12a56$export$652730986cccff7a as PBDBOccurrencesMatrix, $68f55e74a5c97233$export$f176396e104db8d5 as DetritalColumn, $68f55e74a5c97233$export$1b3047373cd1c8c7 as DetritalGroup, $5ccf8f2b270f7458$export$c69bd0285aa5d775 as IsotopesDataset, $5ccf8f2b270f7458$export$5d8aa8022c284748 as IsotopesColumn, $5cb80f5b33baeaea$export$c644ef985ce7a4c4 as MeasurementDataContext, $5cb80f5b33baeaea$export$5f01d5b342a89841 as MeasurementDataProvider, $5cb80f5b33baeaea$export$8a0335fd9ff72150 as useMeasurementData, $7e05644cbb5d2dbb$export$9d101e1fcb2166a6 as standardizeMeasurementHeight, $7e05644cbb5d2dbb$export$8f2afa8ddee7317e as mergeHeightRanges, $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $7e05644cbb5d2dbb$export$653e47a7a0da0f0d as TruncatedList, $7e05644cbb5d2dbb$export$4e649f790614b299 as groupNotesByPixelDistance, $48680a4cd2abcbe4$export$c49cf57576706bab as SGPMeasurementsColumn};\n//# sourceMappingURL=column-views.a54c0820.js.map\n","export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\n"],"names":["$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$a66a583913c03b09$exports","$3S9SB","$7kahb","$28PcI","$2koQo","$ea2f112131e22f14$export$554267114407ef68","PBDBFossilsColumn","$8e174c7ae24a4598$export$a990c76b38782f57","FossilDataType","$8e174c7ae24a4598$export$e6af757fa9780077","useFossilData","$9cea14fa75e12a56$export$652730986cccff7a","PBDBOccurrencesMatrix","$68f55e74a5c97233$export$f176396e104db8d5","DetritalColumn","$68f55e74a5c97233$export$1b3047373cd1c8c7","DetritalGroup","$5ccf8f2b270f7458$export$c69bd0285aa5d775","IsotopesDataset","$5ccf8f2b270f7458$export$5d8aa8022c284748","IsotopesColumn","$5cb80f5b33baeaea$export$c644ef985ce7a4c4","MeasurementDataContext","$5cb80f5b33baeaea$export$5f01d5b342a89841","MeasurementDataProvider","$5cb80f5b33baeaea$export$8a0335fd9ff72150","useMeasurementData","$7e05644cbb5d2dbb$export$9d101e1fcb2166a6","standardizeMeasurementHeight","$7e05644cbb5d2dbb$export$8f2afa8ddee7317e","mergeHeightRanges","$7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d","BaseMeasurementsColumn","$7e05644cbb5d2dbb$export$653e47a7a0da0f0d","TruncatedList","$7e05644cbb5d2dbb$export$4e649f790614b299","groupNotesByPixelDistance","$48680a4cd2abcbe4$export$c49cf57576706bab","SGPMeasurementsColumn"],"version":3,"file":"column-views.a54c0820.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,S,E,E,S,E,E,G,E,E,G,E,E,G,E,E,U,6C,iB,C,6C,c,C,6C,a,C,6C,qB,C,6C,c,C,6C,a,C,6C,e,C,6C,c,C,6C,sB,C,6C,uB,C,6C,kB,C,6C,4B,C,6C,iB,C,6C,sB,C,6C,a,C,6C,yB,C,6C,qB","sources":["<anon>","packages/column-views/src/facets/index.ts"],"sourcesContent":["import \"./column-views.72c3c6e7.js\";\nimport \"./column-views.b6613ab0.js\";\nimport \"./column-views.7e895e1a.js\";\nimport \"./column-views.94c8ce3e.js\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $a66a583913c03b09$exports = {};\n\nvar $3S9SB = parcelRequire(\"3S9SB\");\n\nvar $7kahb = parcelRequire(\"7kahb\");\n\nvar $28PcI = parcelRequire(\"28PcI\");\n\nvar $2koQo = parcelRequire(\"2koQo\");\n$parcel$exportWildcard($a66a583913c03b09$exports, $3S9SB);\n$parcel$exportWildcard($a66a583913c03b09$exports, $7kahb);\n$parcel$exportWildcard($a66a583913c03b09$exports, $28PcI);\n$parcel$exportWildcard($a66a583913c03b09$exports, $2koQo);\n\n\nexport {$ea2f112131e22f14$export$554267114407ef68 as PBDBFossilsColumn, $8e174c7ae24a4598$export$a990c76b38782f57 as FossilDataType, $8e174c7ae24a4598$export$e6af757fa9780077 as useFossilData, $9cea14fa75e12a56$export$652730986cccff7a as PBDBOccurrencesMatrix, $68f55e74a5c97233$export$f176396e104db8d5 as DetritalColumn, $68f55e74a5c97233$export$1b3047373cd1c8c7 as DetritalGroup, $5ccf8f2b270f7458$export$c69bd0285aa5d775 as IsotopesDataset, $5ccf8f2b270f7458$export$5d8aa8022c284748 as IsotopesColumn, $5cb80f5b33baeaea$export$c644ef985ce7a4c4 as MeasurementDataContext, $5cb80f5b33baeaea$export$5f01d5b342a89841 as MeasurementDataProvider, $5cb80f5b33baeaea$export$8a0335fd9ff72150 as useMeasurementData, $7e05644cbb5d2dbb$export$9d101e1fcb2166a6 as standardizeMeasurementHeight, $7e05644cbb5d2dbb$export$8f2afa8ddee7317e as mergeHeightRanges, $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $7e05644cbb5d2dbb$export$653e47a7a0da0f0d as TruncatedList, $7e05644cbb5d2dbb$export$4e649f790614b299 as groupNotesByPixelDistance, $48680a4cd2abcbe4$export$c49cf57576706bab as SGPMeasurementsColumn};\n//# sourceMappingURL=column-views.4d8fc443.js.map\n","export * from \"./fossils\";\nexport * from \"./detrital-zircon\";\nexport * from \"./carbon-isotopes\";\nexport * from \"./measurements\";\n"],"names":["$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$a66a583913c03b09$exports","$3S9SB","$7kahb","$28PcI","$2koQo","$ea2f112131e22f14$export$554267114407ef68","PBDBFossilsColumn","$8e174c7ae24a4598$export$a990c76b38782f57","FossilDataType","$8e174c7ae24a4598$export$e6af757fa9780077","useFossilData","$9cea14fa75e12a56$export$652730986cccff7a","PBDBOccurrencesMatrix","$68f55e74a5c97233$export$f176396e104db8d5","DetritalColumn","$68f55e74a5c97233$export$1b3047373cd1c8c7","DetritalGroup","$5ccf8f2b270f7458$export$c69bd0285aa5d775","IsotopesDataset","$5ccf8f2b270f7458$export$5d8aa8022c284748","IsotopesColumn","$5cb80f5b33baeaea$export$c644ef985ce7a4c4","MeasurementDataContext","$5cb80f5b33baeaea$export$5f01d5b342a89841","MeasurementDataProvider","$5cb80f5b33baeaea$export$8a0335fd9ff72150","useMeasurementData","$7e05644cbb5d2dbb$export$9d101e1fcb2166a6","standardizeMeasurementHeight","$7e05644cbb5d2dbb$export$8f2afa8ddee7317e","mergeHeightRanges","$7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d","BaseMeasurementsColumn","$7e05644cbb5d2dbb$export$653e47a7a0da0f0d","TruncatedList","$7e05644cbb5d2dbb$export$4e649f790614b299","groupNotesByPixelDistance","$48680a4cd2abcbe4$export$c49cf57576706bab","SGPMeasurementsColumn"],"version":3,"file":"column-views.4d8fc443.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.012fa10c.js";import"./column-views.dbb4a46b.js";import"./column-views.a0e23210.js";import e from"@macrostrat/hyper";import{ColumnAxisType as t}from"@macrostrat/column-components";function n(e,t,n,i){Object.defineProperty(e,t,{get:n,set:i,enumerable:!0,configurable:!0})}var i=globalThis,o={},r={},a=i.parcelRequirea149;null==a&&((a=function(e){if(e in o)return o[e].exports;if(e in r){var t=r[e];delete r[e];var n={id:e,exports:{}};return o[e]=n,t.call(n.exports,n,n.exports),n.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){r[e]=t},i.parcelRequirea149=a),a.register;var h={};n(h,"standardizeMeasurementHeight",()=>m),n(h,"mergeHeightRanges",()=>g),n(h,"BaseMeasurementsColumn",()=>p),n(h,"TruncatedList",()=>c),n(h,"groupNotesByPixelDistance",()=>f);var l=a("ff1AM"),s=a("iWhRv"),u=a("6KYbn");let d=e.styled(l&&l.__esModule?l.default:l);function m(e,t,n){if("height"in e)return e;let i=t.find(t=>t.unit_id===e.unit_id);if(null==i)return null;if(null!=e.unit_rel_pos){let t=(0,s.getPositionWithinUnit)(e.unit_rel_pos,i,n);return null==t?null:{height:t}}{let[e,t]=(0,s.getUnitHeightRange)(i,n);return{height:e,top_height:t}}}function g(e,n){let i,o,r=[];for(let t of e)r.push(t.height),null!=t.top_height&&r.push(t.top_height);return(n===t.AGE||n===t.DEPTH?(i=Math.max(...r),o=Math.min(...r)):(i=Math.min(...r),o=Math.max(...r)),o===i)?{height:i}:{height:i,top_height:o}}function p({data:e,noteComponent:t,width:n=500,paddingLeft:i=40,className:o,deltaConnectorAttachment:r,focusedNoteComponent:a}){return null==e?null:d("div.measurements-column",{className:o},d(u.ColumnNotes,{width:n,paddingLeft:i,notes:e,noteComponent:t,deltaConnectorAttachment:r,focusedNoteComponent:a}))}function c({data:e,className:t,maxItems:n=5,itemRenderer:i=e=>d("span",e.data)}){let o=null,r=e;if(e.length>n){let t=e.length-n;r=e.slice(0,n),o=d("li.too-many",`and ${t} more`)}return d("ul.truncated-list",{className:t},[r.map((e,t)=>d("li.element",{key:t},d(i,{data:e}))),o])}function f(e,n,i,o){if(0===e.length||o<=0)return e;i===t.AGE||i===t.DEPTH?e.sort((e,t)=>t.height-e.height):e.sort((e,t)=>e.height-t.height);let r=[],a=null,h=1/0;for(let l of e)if(h-n(l.top_height??l.height)<=o){if(null==a)throw Error("Current group is null when it shouldn't be");a.data.push(...l.data);let e=l.top_height??l.height;i===t.AGE||i===t.DEPTH?a.top_height=Math.min(a.top_height,e):a.top_height=Math.max(a.top_height,e),a.id=`${a.height}-${a.top_height}`}else h=n((a={...l,data:[...l.data]}).height)??n(a.top_height)??1/0,r.push(a);return r}export{m as standardizeMeasurementHeight,g as mergeHeightRanges,p as BaseMeasurementsColumn,c as TruncatedList,f as groupNotesByPixelDistance};
2
- //# sourceMappingURL=column-views.69ddf14d.js.map
1
+ import"./column-views.012fa10c.js";import"./column-views.dbb4a46b.js";import"./column-views.003e0c17.js";import e from"@macrostrat/hyper";import{ColumnAxisType as t}from"@macrostrat/column-components";function n(e,t,n,i){Object.defineProperty(e,t,{get:n,set:i,enumerable:!0,configurable:!0})}var i=globalThis,o={},r={},a=i.parcelRequirea149;null==a&&((a=function(e){if(e in o)return o[e].exports;if(e in r){var t=r[e];delete r[e];var n={id:e,exports:{}};return o[e]=n,t.call(n.exports,n,n.exports),n.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){r[e]=t},i.parcelRequirea149=a),a.register;var h={};n(h,"standardizeMeasurementHeight",()=>m),n(h,"mergeHeightRanges",()=>g),n(h,"BaseMeasurementsColumn",()=>p),n(h,"TruncatedList",()=>c),n(h,"groupNotesByPixelDistance",()=>f);var l=a("ff1AM"),s=a("iWhRv"),u=a("6KYbn");let d=e.styled(l&&l.__esModule?l.default:l);function m(e,t,n){if("height"in e)return e;let i=t.find(t=>t.unit_id===e.unit_id);if(null==i)return null;if(null!=e.unit_rel_pos){let t=(0,s.getPositionWithinUnit)(e.unit_rel_pos,i,n);return null==t?null:{height:t}}{let[e,t]=(0,s.getUnitHeightRange)(i,n);return{height:e,top_height:t}}}function g(e,n){let i,o,r=[];for(let t of e)r.push(t.height),null!=t.top_height&&r.push(t.top_height);return(n===t.AGE||n===t.DEPTH?(i=Math.max(...r),o=Math.min(...r)):(i=Math.min(...r),o=Math.max(...r)),o===i)?{height:i}:{height:i,top_height:o}}function p({data:e,noteComponent:t,width:n=500,paddingLeft:i=40,className:o,deltaConnectorAttachment:r,focusedNoteComponent:a}){return null==e?null:d("div.measurements-column",{className:o},d(u.ColumnNotes,{width:n,paddingLeft:i,notes:e,noteComponent:t,deltaConnectorAttachment:r,focusedNoteComponent:a}))}function c({data:e,className:t,maxItems:n=5,itemRenderer:i=e=>d("span",e.data)}){let o=null,r=e;if(e.length>n){let t=e.length-n;r=e.slice(0,n),o=d("li.too-many",`and ${t} more`)}return d("ul.truncated-list",{className:t},[r.map((e,t)=>d("li.element",{key:t},d(i,{data:e}))),o])}function f(e,n,i,o){if(0===e.length||o<=0)return e;i===t.AGE||i===t.DEPTH?e.sort((e,t)=>t.height-e.height):e.sort((e,t)=>e.height-t.height);let r=[],a=null,h=1/0;for(let l of e)if(h-n(l.top_height??l.height)<=o){if(null==a)throw Error("Current group is null when it shouldn't be");a.data.push(...l.data);let e=l.top_height??l.height;i===t.AGE||i===t.DEPTH?a.top_height=Math.min(a.top_height,e):a.top_height=Math.max(a.top_height,e),a.id=`${a.height}-${a.top_height}`}else h=n((a={...l,data:[...l.data]}).height)??n(a.top_height)??1/0,r.push(a);return r}export{m as standardizeMeasurementHeight,g as mergeHeightRanges,p as BaseMeasurementsColumn,c as TruncatedList,f as groupNotesByPixelDistance};
2
+ //# sourceMappingURL=column-views.54f7a243.js.map
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,kB,C,K,+B,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,+B,I,G,E,E,oB,I,G,E,E,yB,I,G,E,E,gB,I,G,E,E,4B,I,G,I,E,E,S,E,E,S,E,E,SCUA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAkChB,SAAS,EACd,CAAmC,CACnC,CAAiB,CACjB,CAAwB,EAKxB,GAAI,WAAY,EACd,OAAO,EAET,IAAM,EAAO,EAAM,IAAI,CAAC,AAAC,GAAM,EAAE,OAAO,GAAK,EAAI,OAAO,EACxD,GAAI,AAAQ,MAAR,EACF,OAAO,KAET,GAAI,AAAoB,MAApB,EAAI,YAAY,CAAU,CAC5B,IAAM,EAAM,AAAA,CAAA,EAAA,EAAA,qBAAoB,AAApB,EAAsB,EAAI,YAAY,CAAE,EAAM,UAC1D,AAAI,AAAO,MAAP,EAAoB,KACjB,CAAE,OAAQ,CAAI,CACvB,CAAO,CACL,GAAM,CAAC,EAAQ,EAAW,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAM,GACtD,MAAO,CAAE,OAAA,EAAQ,WAAA,CAAW,CAC9B,CACF,CAEO,SAAS,EACd,CAA6B,CAC7B,CAAwB,EAGxB,IASI,EACA,EAVE,EAAU,EAAE,CAElB,IAAK,IAAM,KAAK,EACd,EAAQ,IAAI,CAAC,EAAE,MAAM,EACjB,AAAgB,MAAhB,EAAE,UAAU,EACd,EAAQ,IAAI,CAAC,EAAE,UAAU,QAc7B,CARI,IAAa,AAAA,EAAe,GAAG,EAAI,IAAa,AAAA,EAAe,KAAK,EACtE,EAAS,KAAK,GAAG,IAAI,GACrB,EAAa,KAAK,GAAG,IAAI,KAEzB,EAAS,KAAK,GAAG,IAAI,GACrB,EAAa,KAAK,GAAG,IAAI,IAGvB,IAAe,GACV,CAAE,OAAA,CAAO,EAEX,CAAE,OAAA,EAAQ,WAAA,CAAW,CAC9B,CAOO,SAAS,EAAuB,CAAA,KACrC,CAAI,CAAA,cACJ,CAAa,CAAA,MACb,EAAQ,GAAA,CAAA,YACR,EAAc,EAAA,CAAA,UACd,CAAS,CAAA,yBACT,CAAwB,CAAA,qBACxB,CAAoB,CACa,SACjC,AAAI,AAAQ,MAAR,EAAqB,KAElB,EACL,0BACA,CAAE,UAAA,CAAU,EACZ,EAAE,EAAA,WAAU,CAAG,CACb,MAAA,EACA,YAAA,EACA,MAAO,EACP,cAAA,EACA,yBAAA,EACA,qBAAA,CACF,GAEJ,CASO,SAAS,EAAc,CAAA,KAC5B,CAAI,CAAA,UACJ,CAAS,CAAA,SACT,EAAW,CAAA,CAAA,aACX,EAAe,AAAC,GAAM,EAAE,OAAQ,EAAE,IAAI,CAAA,CACnB,EACnB,IAAI,EAAU,KACV,EAAK,EACT,GAAI,EAAK,MAAM,CAAG,EAAU,CAC1B,IAAM,EAAI,EAAK,MAAM,CAAG,EACxB,EAAK,EAAK,KAAK,CAAC,EAAG,GACnB,EAAU,EAAE,cAAe,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAC5C,CAEA,OAAO,EAAE,oBAAqB,CAAE,UAAA,CAAU,EAAG,CAC3C,EAAG,GAAG,CAAC,CAAC,EAAG,IACF,EAAE,aAAc,CAAE,IAAK,CAAE,EAAG,EAAE,EAAc,CAAE,KAAM,CAAE,KAE/D,EACD,CACH,CAEO,SAAS,EACd,CAAkC,CAClC,CAA2B,CAC3B,CAAwB,CACxB,CAAqB,EAKrB,GAAI,AAAgB,IAAhB,EAAK,MAAM,EAAU,GAAiB,EAAG,OAAO,CAChD,CAAA,IAAa,AAAA,EAAe,GAAG,EAAI,IAAa,AAAA,EAAe,KAAK,CACtE,EAAK,IAAI,CAAC,CAAC,EAAG,IAAM,EAAE,MAAM,CAAG,EAAE,MAAM,EAGvC,EAAK,IAAI,CAAC,CAAC,EAAG,IAAM,EAAE,MAAM,CAAG,EAAE,MAAM,EAGzC,IAAM,EAA4C,EAAE,CAChD,EAAkD,KAClD,EAA+B,IAEnC,IAAK,IAAM,KAAK,EASd,GAAI,AAFa,EAAuB,EAAM,EAAE,UAAU,EAAI,EAAE,MAAM,GAEtD,EAAe,CAC7B,GAAI,AAAgB,MAAhB,EACF,MAAM,AAAI,MAAM,8CAGlB,EAAa,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAEhC,IAAM,EAAa,EAAE,UAAU,EAAI,EAAE,MAAM,AAEzC,CAAA,IAAa,AAAA,EAAe,GAAG,EAC/B,IAAa,AAAA,EAAe,KAAK,CAGjC,EAAa,UAAU,CAAG,KAAK,GAAG,CAAC,EAAa,UAAU,CAAE,GAE5D,EAAa,UAAU,CAAG,KAAK,GAAG,CAAC,EAAa,UAAU,CAAE,GAE9D,EAAa,EAAE,CAAG,CAAA,EAAG,EAAa,MAAM,CAAC,CAAC,EAAE,EAAa,UAAU,CAAA,CAAE,AACvE,MAGE,EACE,EAAM,AAFR,CAAA,EAAe,CAAE,GAAG,CAAC,CAAE,KAAM,IAAI,EAAE,IAAI,CAAC,AAAC,CAAA,EAEpB,MAAM,GACzB,EAAM,EAAa,UAAU,GAC7B,IACF,EAAY,IAAI,CAAC,GAIrB,OAAO,CACT,Q,K,4B,C,K,iB,C,K,sB,C,K,a,C,K,yB","sources":["<anon>","packages/column-views/src/facets/measurements/base.ts"],"sourcesContent":["import \"./column-views.012fa10c.js\";\nimport \"./column-views.dbb4a46b.js\";\nimport \"./column-views.a0e23210.js\";\nimport $7Z3it$macrostrathyper from \"@macrostrat/hyper\";\nimport {ColumnAxisType as $7Z3it$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 $7e05644cbb5d2dbb$exports = {};\n\n$parcel$export($7e05644cbb5d2dbb$exports, \"standardizeMeasurementHeight\", () => $7e05644cbb5d2dbb$export$9d101e1fcb2166a6);\n$parcel$export($7e05644cbb5d2dbb$exports, \"mergeHeightRanges\", () => $7e05644cbb5d2dbb$export$8f2afa8ddee7317e);\n$parcel$export($7e05644cbb5d2dbb$exports, \"BaseMeasurementsColumn\", () => $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d);\n$parcel$export($7e05644cbb5d2dbb$exports, \"TruncatedList\", () => $7e05644cbb5d2dbb$export$653e47a7a0da0f0d);\n$parcel$export($7e05644cbb5d2dbb$exports, \"groupNotesByPixelDistance\", () => $7e05644cbb5d2dbb$export$4e649f790614b299);\n\n\nvar $ff1AM = parcelRequire(\"ff1AM\");\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $6KYbn = parcelRequire(\"6KYbn\");\n\nconst $7e05644cbb5d2dbb$var$h = (0, $7Z3it$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($ff1AM))));\nfunction $7e05644cbb5d2dbb$export$9d101e1fcb2166a6(pos, units, axisType) {\n /** Get a standardized height representation from position information for\n * a measurement\n */ if (\"height\" in pos) return pos;\n const unit = units.find((u)=>u.unit_id === pos.unit_id);\n if (unit == null) return null;\n if (pos.unit_rel_pos != null) {\n const res = (0, $iWhRv.getPositionWithinUnit)(pos.unit_rel_pos, unit, axisType);\n if (res == null) return null;\n return {\n height: res\n };\n } else {\n const [height, top_height] = (0, $iWhRv.getUnitHeightRange)(unit, axisType);\n return {\n height: height,\n top_height: top_height\n };\n }\n}\nfunction $7e05644cbb5d2dbb$export$8f2afa8ddee7317e(data, axisType) {\n /** Merge multiple height ranges into a single range */ const heights = [];\n for (const d of data){\n heights.push(d.height);\n if (d.top_height != null) heights.push(d.top_height);\n }\n let height;\n let top_height;\n if (axisType === (0, $7Z3it$ColumnAxisType).AGE || axisType === (0, $7Z3it$ColumnAxisType).DEPTH) {\n height = Math.max(...heights);\n top_height = Math.min(...heights);\n } else {\n height = Math.min(...heights);\n top_height = Math.max(...heights);\n }\n if (top_height === height) return {\n height: height\n };\n return {\n height: height,\n top_height: top_height\n };\n}\nfunction $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d({ data: data, noteComponent: noteComponent, width: width = 500, paddingLeft: paddingLeft = 40, className: className, deltaConnectorAttachment: deltaConnectorAttachment, focusedNoteComponent: focusedNoteComponent }) {\n if (data == null) return null;\n return $7e05644cbb5d2dbb$var$h(\"div.measurements-column\", {\n className: className\n }, $7e05644cbb5d2dbb$var$h((0, $6KYbn.ColumnNotes), {\n width: width,\n paddingLeft: paddingLeft,\n notes: data,\n noteComponent: noteComponent,\n deltaConnectorAttachment: deltaConnectorAttachment,\n focusedNoteComponent: focusedNoteComponent\n }));\n}\nfunction $7e05644cbb5d2dbb$export$653e47a7a0da0f0d({ data: data, className: className, maxItems: maxItems = 5, itemRenderer: itemRenderer = (p)=>$7e05644cbb5d2dbb$var$h(\"span\", p.data) }) {\n let tooMany = null;\n let d1 = data;\n if (data.length > maxItems) {\n const n = data.length - maxItems;\n d1 = data.slice(0, maxItems);\n tooMany = $7e05644cbb5d2dbb$var$h(\"li.too-many\", `and ${n} more`);\n }\n return $7e05644cbb5d2dbb$var$h(\"ul.truncated-list\", {\n className: className\n }, [\n d1.map((d, i)=>{\n return $7e05644cbb5d2dbb$var$h(\"li.element\", {\n key: i\n }, $7e05644cbb5d2dbb$var$h(itemRenderer, {\n data: d\n }));\n }),\n tooMany\n ]);\n}\nfunction $7e05644cbb5d2dbb$export$4e649f790614b299(data, scale, axisType, groupDistance) {\n /** Group notes that are within a certain pixel distance of each other\n * in display space\n */ if (data.length === 0 || groupDistance <= 0) return data;\n if (axisType === (0, $7Z3it$ColumnAxisType).AGE || axisType === (0, $7Z3it$ColumnAxisType).DEPTH) data.sort((a, b)=>b.height - a.height);\n else // Sort data by height (ascending up the column)\n data.sort((a, b)=>a.height - b.height);\n const groupedData = [];\n let currentGroup = null;\n let currentGroupPosition = Infinity;\n for (const d of data){\n // Check distance from current max position\n // Pixels go up as we go down in the section\n // The _top_ of the next group must be within groupDistance of the\n // _bottom_ of the current group. This makes sure that we don't collapse\n // groups that are separated by a large distance\n const distance = currentGroupPosition - scale(d.top_height ?? d.height);\n if (distance <= groupDistance) {\n if (currentGroup == null) throw new Error(\"Current group is null when it shouldn't be\");\n // Merge into current group\n currentGroup.data.push(...d.data);\n // Update height range\n const top_height = d.top_height ?? d.height;\n if (axisType === (0, $7Z3it$ColumnAxisType).AGE || axisType === (0, $7Z3it$ColumnAxisType).DEPTH) // Inverted axis\n currentGroup.top_height = Math.min(currentGroup.top_height, top_height);\n else currentGroup.top_height = Math.max(currentGroup.top_height, top_height);\n currentGroup.id = `${currentGroup.height}-${currentGroup.top_height}`;\n } else {\n // Start a new group\n currentGroup = {\n ...d,\n data: [\n ...d.data\n ]\n };\n currentGroupPosition = scale(currentGroup.height) ?? scale(currentGroup.top_height) ?? Infinity;\n groupedData.push(currentGroup);\n }\n }\n return groupedData;\n}\n\n\nexport {$7e05644cbb5d2dbb$export$9d101e1fcb2166a6 as standardizeMeasurementHeight, $7e05644cbb5d2dbb$export$8f2afa8ddee7317e as mergeHeightRanges, $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $7e05644cbb5d2dbb$export$653e47a7a0da0f0d as TruncatedList, $7e05644cbb5d2dbb$export$4e649f790614b299 as groupNotesByPixelDistance};\n//# sourceMappingURL=column-views.69ddf14d.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./base.module.sass\";\nimport {\n type CompositeColumnScale,\n getPositionWithinUnit,\n getUnitHeightRange,\n} from \"../../prepare-units\";\nimport { ColumnNotes } from \"../../notes\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nconst h = hyper.styled(styles);\n\ntype GetHeightRangeFn<T> = (\n data: T,\n unit: UnitLong | null,\n axisType: ColumnAxisType,\n) => MeasurementHeightData;\n\nexport interface BaseMeasurementsColumnProps<T> {\n data: T[];\n noteComponent?: any;\n width?: number;\n paddingLeft?: number;\n className?: string;\n // TODO: these props are confusing\n getUnitID?: (d: T) => number | string;\n isMatchingUnit?: (d: T, unit: UnitLong) => boolean;\n getHeightRange?: GetHeightRangeFn<T>;\n deltaConnectorAttachment?: number;\n focusedNoteComponent?: any;\n}\n\nexport interface ColumnMeasurementData<T = any> extends MeasurementHeightData {\n data: T;\n id: string | number;\n}\n\ntype MeasurementPositionInformation =\n | MeasurementHeightData\n | {\n unit_id: number;\n unit_rel_pos?: number;\n };\n\nexport function standardizeMeasurementHeight(\n pos: MeasurementPositionInformation,\n units: UnitLong[],\n axisType: ColumnAxisType,\n): MeasurementHeightData | null {\n /** Get a standardized height representation from position information for\n * a measurement\n */\n if (\"height\" in pos) {\n return pos;\n }\n const unit = units.find((u) => u.unit_id === pos.unit_id);\n if (unit == null) {\n return null;\n }\n if (pos.unit_rel_pos != null) {\n const res = getPositionWithinUnit(pos.unit_rel_pos, unit, axisType);\n if (res == null) return null;\n return { height: res };\n } else {\n const [height, top_height] = getUnitHeightRange(unit, axisType);\n return { height, top_height };\n }\n}\n\nexport function mergeHeightRanges(\n data: MeasurementHeightData[],\n axisType: ColumnAxisType,\n): MeasurementHeightData {\n /** Merge multiple height ranges into a single range */\n const heights = [];\n\n for (const d of data) {\n heights.push(d.height);\n if (d.top_height != null) {\n heights.push(d.top_height);\n }\n }\n\n let height: number;\n let top_height: number;\n if (axisType === ColumnAxisType.AGE || axisType === ColumnAxisType.DEPTH) {\n height = Math.max(...heights);\n top_height = Math.min(...heights);\n } else {\n height = Math.min(...heights);\n top_height = Math.max(...heights);\n }\n\n if (top_height === height) {\n return { height };\n }\n return { height, top_height };\n}\n\nexport type MeasurementHeightData = {\n height: number;\n top_height?: number | null;\n};\n\nexport function BaseMeasurementsColumn({\n data,\n noteComponent,\n width = 500,\n paddingLeft = 40,\n className,\n deltaConnectorAttachment,\n focusedNoteComponent,\n}: BaseMeasurementsColumnProps<any>) {\n if (data == null) return null;\n\n return h(\n \"div.measurements-column\",\n { className },\n h(ColumnNotes, {\n width,\n paddingLeft,\n notes: data,\n noteComponent,\n deltaConnectorAttachment,\n focusedNoteComponent,\n }),\n );\n}\n\ninterface TruncatedListProps {\n data: any[];\n className?: string;\n maxItems?: number;\n itemRenderer?: (props: { data: any }) => any;\n}\n\nexport function TruncatedList({\n data,\n className,\n maxItems = 5,\n itemRenderer = (p) => h(\"span\", p.data),\n}: TruncatedListProps) {\n let tooMany = null;\n let d1 = data;\n if (data.length > maxItems) {\n const n = data.length - maxItems;\n d1 = data.slice(0, maxItems);\n tooMany = h(\"li.too-many\", `and ${n} more`);\n }\n\n return h(\"ul.truncated-list\", { className }, [\n d1.map((d, i) => {\n return h(\"li.element\", { key: i }, h(itemRenderer, { data: d }));\n }),\n tooMany,\n ]);\n}\n\nexport function groupNotesByPixelDistance<T = any>(\n data: ColumnMeasurementData<T[]>[],\n scale: CompositeColumnScale,\n axisType: ColumnAxisType,\n groupDistance: number,\n) {\n /** Group notes that are within a certain pixel distance of each other\n * in display space\n */\n if (data.length === 0 || groupDistance <= 0) return data;\n if (axisType === ColumnAxisType.AGE || axisType === ColumnAxisType.DEPTH) {\n data.sort((a, b) => b.height - a.height);\n } else {\n // Sort data by height (ascending up the column)\n data.sort((a, b) => a.height - b.height);\n }\n\n const groupedData: ColumnMeasurementData<T[]>[] = [];\n let currentGroup: ColumnMeasurementData<T[]> | null = null;\n let currentGroupPosition: number = Infinity;\n\n for (const d of data) {\n // Check distance from current max position\n // Pixels go up as we go down in the section\n\n // The _top_ of the next group must be within groupDistance of the\n // _bottom_ of the current group. This makes sure that we don't collapse\n // groups that are separated by a large distance\n const distance = currentGroupPosition - scale(d.top_height ?? d.height);\n\n if (distance <= groupDistance) {\n if (currentGroup == null) {\n throw new Error(\"Current group is null when it shouldn't be\");\n }\n // Merge into current group\n currentGroup.data.push(...d.data);\n // Update height range\n const top_height = d.top_height ?? d.height;\n if (\n axisType === ColumnAxisType.AGE ||\n axisType === ColumnAxisType.DEPTH\n ) {\n // Inverted axis\n currentGroup.top_height = Math.min(currentGroup.top_height, top_height);\n } else {\n currentGroup.top_height = Math.max(currentGroup.top_height, top_height);\n }\n currentGroup.id = `${currentGroup.height}-${currentGroup.top_height}`;\n } else {\n // Start a new group\n currentGroup = { ...d, data: [...d.data] };\n currentGroupPosition =\n scale(currentGroup.height) ??\n scale(currentGroup.top_height) ??\n Infinity;\n groupedData.push(currentGroup);\n }\n }\n\n return groupedData;\n}\n"],"names":["$7Z3it$macrostrathyper","ColumnAxisType","$7Z3it$ColumnAxisType","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$7e05644cbb5d2dbb$exports","$7e05644cbb5d2dbb$export$9d101e1fcb2166a6","$7e05644cbb5d2dbb$export$8f2afa8ddee7317e","$7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d","$7e05644cbb5d2dbb$export$653e47a7a0da0f0d","$7e05644cbb5d2dbb$export$4e649f790614b299","$ff1AM","$iWhRv","$6KYbn","$7e05644cbb5d2dbb$var$h","styled","a","__esModule","default","pos","units","axisType","unit","find","u","unit_id","unit_rel_pos","res","getPositionWithinUnit","height","top_height","getUnitHeightRange","data","heights","d","push","AGE","DEPTH","Math","max","min","noteComponent","width","paddingLeft","className","deltaConnectorAttachment","focusedNoteComponent","ColumnNotes","notes","maxItems","itemRenderer","p","tooMany","d1","length","slice","map","i","key","scale","groupDistance","sort","b","groupedData","currentGroup","currentGroupPosition","Infinity","distance","standardizeMeasurementHeight","mergeHeightRanges","BaseMeasurementsColumn","TruncatedList","groupNotesByPixelDistance"],"version":3,"file":"column-views.69ddf14d.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,kB,C,K,+B,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,+B,I,G,E,E,oB,I,G,E,E,yB,I,G,E,E,gB,I,G,E,E,4B,I,G,I,E,E,S,E,E,S,E,E,SCUA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAkChB,SAAS,EACd,CAAmC,CACnC,CAAiB,CACjB,CAAwB,EAKxB,GAAI,WAAY,EACd,OAAO,EAET,IAAM,EAAO,EAAM,IAAI,CAAC,AAAC,GAAM,EAAE,OAAO,GAAK,EAAI,OAAO,EACxD,GAAI,AAAQ,MAAR,EACF,OAAO,KAET,GAAI,AAAoB,MAApB,EAAI,YAAY,CAAU,CAC5B,IAAM,EAAM,AAAA,CAAA,EAAA,EAAA,qBAAoB,AAApB,EAAsB,EAAI,YAAY,CAAE,EAAM,UAC1D,AAAI,AAAO,MAAP,EAAoB,KACjB,CAAE,OAAQ,CAAI,CACvB,CAAO,CACL,GAAM,CAAC,EAAQ,EAAW,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAM,GACtD,MAAO,CAAE,OAAA,EAAQ,WAAA,CAAW,CAC9B,CACF,CAEO,SAAS,EACd,CAA6B,CAC7B,CAAwB,EAGxB,IASI,EACA,EAVE,EAAU,EAAE,CAElB,IAAK,IAAM,KAAK,EACd,EAAQ,IAAI,CAAC,EAAE,MAAM,EACjB,AAAgB,MAAhB,EAAE,UAAU,EACd,EAAQ,IAAI,CAAC,EAAE,UAAU,QAc7B,CARI,IAAa,AAAA,EAAe,GAAG,EAAI,IAAa,AAAA,EAAe,KAAK,EACtE,EAAS,KAAK,GAAG,IAAI,GACrB,EAAa,KAAK,GAAG,IAAI,KAEzB,EAAS,KAAK,GAAG,IAAI,GACrB,EAAa,KAAK,GAAG,IAAI,IAGvB,IAAe,GACV,CAAE,OAAA,CAAO,EAEX,CAAE,OAAA,EAAQ,WAAA,CAAW,CAC9B,CAOO,SAAS,EAAuB,CAAA,KACrC,CAAI,CAAA,cACJ,CAAa,CAAA,MACb,EAAQ,GAAA,CAAA,YACR,EAAc,EAAA,CAAA,UACd,CAAS,CAAA,yBACT,CAAwB,CAAA,qBACxB,CAAoB,CACa,SACjC,AAAI,AAAQ,MAAR,EAAqB,KAElB,EACL,0BACA,CAAE,UAAA,CAAU,EACZ,EAAE,EAAA,WAAU,CAAG,CACb,MAAA,EACA,YAAA,EACA,MAAO,EACP,cAAA,EACA,yBAAA,EACA,qBAAA,CACF,GAEJ,CASO,SAAS,EAAc,CAAA,KAC5B,CAAI,CAAA,UACJ,CAAS,CAAA,SACT,EAAW,CAAA,CAAA,aACX,EAAe,AAAC,GAAM,EAAE,OAAQ,EAAE,IAAI,CAAA,CACnB,EACnB,IAAI,EAAU,KACV,EAAK,EACT,GAAI,EAAK,MAAM,CAAG,EAAU,CAC1B,IAAM,EAAI,EAAK,MAAM,CAAG,EACxB,EAAK,EAAK,KAAK,CAAC,EAAG,GACnB,EAAU,EAAE,cAAe,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAC5C,CAEA,OAAO,EAAE,oBAAqB,CAAE,UAAA,CAAU,EAAG,CAC3C,EAAG,GAAG,CAAC,CAAC,EAAG,IACF,EAAE,aAAc,CAAE,IAAK,CAAE,EAAG,EAAE,EAAc,CAAE,KAAM,CAAE,KAE/D,EACD,CACH,CAEO,SAAS,EACd,CAAkC,CAClC,CAA2B,CAC3B,CAAwB,CACxB,CAAqB,EAKrB,GAAI,AAAgB,IAAhB,EAAK,MAAM,EAAU,GAAiB,EAAG,OAAO,CAChD,CAAA,IAAa,AAAA,EAAe,GAAG,EAAI,IAAa,AAAA,EAAe,KAAK,CACtE,EAAK,IAAI,CAAC,CAAC,EAAG,IAAM,EAAE,MAAM,CAAG,EAAE,MAAM,EAGvC,EAAK,IAAI,CAAC,CAAC,EAAG,IAAM,EAAE,MAAM,CAAG,EAAE,MAAM,EAGzC,IAAM,EAA4C,EAAE,CAChD,EAAkD,KAClD,EAA+B,IAEnC,IAAK,IAAM,KAAK,EASd,GAAI,AAFa,EAAuB,EAAM,EAAE,UAAU,EAAI,EAAE,MAAM,GAEtD,EAAe,CAC7B,GAAI,AAAgB,MAAhB,EACF,MAAM,AAAI,MAAM,8CAGlB,EAAa,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAEhC,IAAM,EAAa,EAAE,UAAU,EAAI,EAAE,MAAM,AAEzC,CAAA,IAAa,AAAA,EAAe,GAAG,EAC/B,IAAa,AAAA,EAAe,KAAK,CAGjC,EAAa,UAAU,CAAG,KAAK,GAAG,CAAC,EAAa,UAAU,CAAE,GAE5D,EAAa,UAAU,CAAG,KAAK,GAAG,CAAC,EAAa,UAAU,CAAE,GAE9D,EAAa,EAAE,CAAG,CAAA,EAAG,EAAa,MAAM,CAAC,CAAC,EAAE,EAAa,UAAU,CAAA,CAAE,AACvE,MAGE,EACE,EAAM,AAFR,CAAA,EAAe,CAAE,GAAG,CAAC,CAAE,KAAM,IAAI,EAAE,IAAI,CAAC,AAAC,CAAA,EAEpB,MAAM,GACzB,EAAM,EAAa,UAAU,GAC7B,IACF,EAAY,IAAI,CAAC,GAIrB,OAAO,CACT,Q,K,4B,C,K,iB,C,K,sB,C,K,a,C,K,yB","sources":["<anon>","packages/column-views/src/facets/measurements/base.ts"],"sourcesContent":["import \"./column-views.012fa10c.js\";\nimport \"./column-views.dbb4a46b.js\";\nimport \"./column-views.003e0c17.js\";\nimport $7Z3it$macrostrathyper from \"@macrostrat/hyper\";\nimport {ColumnAxisType as $7Z3it$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 $7e05644cbb5d2dbb$exports = {};\n\n$parcel$export($7e05644cbb5d2dbb$exports, \"standardizeMeasurementHeight\", () => $7e05644cbb5d2dbb$export$9d101e1fcb2166a6);\n$parcel$export($7e05644cbb5d2dbb$exports, \"mergeHeightRanges\", () => $7e05644cbb5d2dbb$export$8f2afa8ddee7317e);\n$parcel$export($7e05644cbb5d2dbb$exports, \"BaseMeasurementsColumn\", () => $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d);\n$parcel$export($7e05644cbb5d2dbb$exports, \"TruncatedList\", () => $7e05644cbb5d2dbb$export$653e47a7a0da0f0d);\n$parcel$export($7e05644cbb5d2dbb$exports, \"groupNotesByPixelDistance\", () => $7e05644cbb5d2dbb$export$4e649f790614b299);\n\n\nvar $ff1AM = parcelRequire(\"ff1AM\");\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $6KYbn = parcelRequire(\"6KYbn\");\n\nconst $7e05644cbb5d2dbb$var$h = (0, $7Z3it$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($ff1AM))));\nfunction $7e05644cbb5d2dbb$export$9d101e1fcb2166a6(pos, units, axisType) {\n /** Get a standardized height representation from position information for\n * a measurement\n */ if (\"height\" in pos) return pos;\n const unit = units.find((u)=>u.unit_id === pos.unit_id);\n if (unit == null) return null;\n if (pos.unit_rel_pos != null) {\n const res = (0, $iWhRv.getPositionWithinUnit)(pos.unit_rel_pos, unit, axisType);\n if (res == null) return null;\n return {\n height: res\n };\n } else {\n const [height, top_height] = (0, $iWhRv.getUnitHeightRange)(unit, axisType);\n return {\n height: height,\n top_height: top_height\n };\n }\n}\nfunction $7e05644cbb5d2dbb$export$8f2afa8ddee7317e(data, axisType) {\n /** Merge multiple height ranges into a single range */ const heights = [];\n for (const d of data){\n heights.push(d.height);\n if (d.top_height != null) heights.push(d.top_height);\n }\n let height;\n let top_height;\n if (axisType === (0, $7Z3it$ColumnAxisType).AGE || axisType === (0, $7Z3it$ColumnAxisType).DEPTH) {\n height = Math.max(...heights);\n top_height = Math.min(...heights);\n } else {\n height = Math.min(...heights);\n top_height = Math.max(...heights);\n }\n if (top_height === height) return {\n height: height\n };\n return {\n height: height,\n top_height: top_height\n };\n}\nfunction $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d({ data: data, noteComponent: noteComponent, width: width = 500, paddingLeft: paddingLeft = 40, className: className, deltaConnectorAttachment: deltaConnectorAttachment, focusedNoteComponent: focusedNoteComponent }) {\n if (data == null) return null;\n return $7e05644cbb5d2dbb$var$h(\"div.measurements-column\", {\n className: className\n }, $7e05644cbb5d2dbb$var$h((0, $6KYbn.ColumnNotes), {\n width: width,\n paddingLeft: paddingLeft,\n notes: data,\n noteComponent: noteComponent,\n deltaConnectorAttachment: deltaConnectorAttachment,\n focusedNoteComponent: focusedNoteComponent\n }));\n}\nfunction $7e05644cbb5d2dbb$export$653e47a7a0da0f0d({ data: data, className: className, maxItems: maxItems = 5, itemRenderer: itemRenderer = (p)=>$7e05644cbb5d2dbb$var$h(\"span\", p.data) }) {\n let tooMany = null;\n let d1 = data;\n if (data.length > maxItems) {\n const n = data.length - maxItems;\n d1 = data.slice(0, maxItems);\n tooMany = $7e05644cbb5d2dbb$var$h(\"li.too-many\", `and ${n} more`);\n }\n return $7e05644cbb5d2dbb$var$h(\"ul.truncated-list\", {\n className: className\n }, [\n d1.map((d, i)=>{\n return $7e05644cbb5d2dbb$var$h(\"li.element\", {\n key: i\n }, $7e05644cbb5d2dbb$var$h(itemRenderer, {\n data: d\n }));\n }),\n tooMany\n ]);\n}\nfunction $7e05644cbb5d2dbb$export$4e649f790614b299(data, scale, axisType, groupDistance) {\n /** Group notes that are within a certain pixel distance of each other\n * in display space\n */ if (data.length === 0 || groupDistance <= 0) return data;\n if (axisType === (0, $7Z3it$ColumnAxisType).AGE || axisType === (0, $7Z3it$ColumnAxisType).DEPTH) data.sort((a, b)=>b.height - a.height);\n else // Sort data by height (ascending up the column)\n data.sort((a, b)=>a.height - b.height);\n const groupedData = [];\n let currentGroup = null;\n let currentGroupPosition = Infinity;\n for (const d of data){\n // Check distance from current max position\n // Pixels go up as we go down in the section\n // The _top_ of the next group must be within groupDistance of the\n // _bottom_ of the current group. This makes sure that we don't collapse\n // groups that are separated by a large distance\n const distance = currentGroupPosition - scale(d.top_height ?? d.height);\n if (distance <= groupDistance) {\n if (currentGroup == null) throw new Error(\"Current group is null when it shouldn't be\");\n // Merge into current group\n currentGroup.data.push(...d.data);\n // Update height range\n const top_height = d.top_height ?? d.height;\n if (axisType === (0, $7Z3it$ColumnAxisType).AGE || axisType === (0, $7Z3it$ColumnAxisType).DEPTH) // Inverted axis\n currentGroup.top_height = Math.min(currentGroup.top_height, top_height);\n else currentGroup.top_height = Math.max(currentGroup.top_height, top_height);\n currentGroup.id = `${currentGroup.height}-${currentGroup.top_height}`;\n } else {\n // Start a new group\n currentGroup = {\n ...d,\n data: [\n ...d.data\n ]\n };\n currentGroupPosition = scale(currentGroup.height) ?? scale(currentGroup.top_height) ?? Infinity;\n groupedData.push(currentGroup);\n }\n }\n return groupedData;\n}\n\n\nexport {$7e05644cbb5d2dbb$export$9d101e1fcb2166a6 as standardizeMeasurementHeight, $7e05644cbb5d2dbb$export$8f2afa8ddee7317e as mergeHeightRanges, $7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d as BaseMeasurementsColumn, $7e05644cbb5d2dbb$export$653e47a7a0da0f0d as TruncatedList, $7e05644cbb5d2dbb$export$4e649f790614b299 as groupNotesByPixelDistance};\n//# sourceMappingURL=column-views.54f7a243.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./base.module.sass\";\nimport {\n type CompositeColumnScale,\n getPositionWithinUnit,\n getUnitHeightRange,\n} from \"../../prepare-units\";\nimport { ColumnNotes } from \"../../notes\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nconst h = hyper.styled(styles);\n\ntype GetHeightRangeFn<T> = (\n data: T,\n unit: UnitLong | null,\n axisType: ColumnAxisType,\n) => MeasurementHeightData;\n\nexport interface BaseMeasurementsColumnProps<T> {\n data: T[];\n noteComponent?: any;\n width?: number;\n paddingLeft?: number;\n className?: string;\n // TODO: these props are confusing\n getUnitID?: (d: T) => number | string;\n isMatchingUnit?: (d: T, unit: UnitLong) => boolean;\n getHeightRange?: GetHeightRangeFn<T>;\n deltaConnectorAttachment?: number;\n focusedNoteComponent?: any;\n}\n\nexport interface ColumnMeasurementData<T = any> extends MeasurementHeightData {\n data: T;\n id: string | number;\n}\n\ntype MeasurementPositionInformation =\n | MeasurementHeightData\n | {\n unit_id: number;\n unit_rel_pos?: number;\n };\n\nexport function standardizeMeasurementHeight(\n pos: MeasurementPositionInformation,\n units: UnitLong[],\n axisType: ColumnAxisType,\n): MeasurementHeightData | null {\n /** Get a standardized height representation from position information for\n * a measurement\n */\n if (\"height\" in pos) {\n return pos;\n }\n const unit = units.find((u) => u.unit_id === pos.unit_id);\n if (unit == null) {\n return null;\n }\n if (pos.unit_rel_pos != null) {\n const res = getPositionWithinUnit(pos.unit_rel_pos, unit, axisType);\n if (res == null) return null;\n return { height: res };\n } else {\n const [height, top_height] = getUnitHeightRange(unit, axisType);\n return { height, top_height };\n }\n}\n\nexport function mergeHeightRanges(\n data: MeasurementHeightData[],\n axisType: ColumnAxisType,\n): MeasurementHeightData {\n /** Merge multiple height ranges into a single range */\n const heights = [];\n\n for (const d of data) {\n heights.push(d.height);\n if (d.top_height != null) {\n heights.push(d.top_height);\n }\n }\n\n let height: number;\n let top_height: number;\n if (axisType === ColumnAxisType.AGE || axisType === ColumnAxisType.DEPTH) {\n height = Math.max(...heights);\n top_height = Math.min(...heights);\n } else {\n height = Math.min(...heights);\n top_height = Math.max(...heights);\n }\n\n if (top_height === height) {\n return { height };\n }\n return { height, top_height };\n}\n\nexport type MeasurementHeightData = {\n height: number;\n top_height?: number | null;\n};\n\nexport function BaseMeasurementsColumn({\n data,\n noteComponent,\n width = 500,\n paddingLeft = 40,\n className,\n deltaConnectorAttachment,\n focusedNoteComponent,\n}: BaseMeasurementsColumnProps<any>) {\n if (data == null) return null;\n\n return h(\n \"div.measurements-column\",\n { className },\n h(ColumnNotes, {\n width,\n paddingLeft,\n notes: data,\n noteComponent,\n deltaConnectorAttachment,\n focusedNoteComponent,\n }),\n );\n}\n\ninterface TruncatedListProps {\n data: any[];\n className?: string;\n maxItems?: number;\n itemRenderer?: (props: { data: any }) => any;\n}\n\nexport function TruncatedList({\n data,\n className,\n maxItems = 5,\n itemRenderer = (p) => h(\"span\", p.data),\n}: TruncatedListProps) {\n let tooMany = null;\n let d1 = data;\n if (data.length > maxItems) {\n const n = data.length - maxItems;\n d1 = data.slice(0, maxItems);\n tooMany = h(\"li.too-many\", `and ${n} more`);\n }\n\n return h(\"ul.truncated-list\", { className }, [\n d1.map((d, i) => {\n return h(\"li.element\", { key: i }, h(itemRenderer, { data: d }));\n }),\n tooMany,\n ]);\n}\n\nexport function groupNotesByPixelDistance<T = any>(\n data: ColumnMeasurementData<T[]>[],\n scale: CompositeColumnScale,\n axisType: ColumnAxisType,\n groupDistance: number,\n) {\n /** Group notes that are within a certain pixel distance of each other\n * in display space\n */\n if (data.length === 0 || groupDistance <= 0) return data;\n if (axisType === ColumnAxisType.AGE || axisType === ColumnAxisType.DEPTH) {\n data.sort((a, b) => b.height - a.height);\n } else {\n // Sort data by height (ascending up the column)\n data.sort((a, b) => a.height - b.height);\n }\n\n const groupedData: ColumnMeasurementData<T[]>[] = [];\n let currentGroup: ColumnMeasurementData<T[]> | null = null;\n let currentGroupPosition: number = Infinity;\n\n for (const d of data) {\n // Check distance from current max position\n // Pixels go up as we go down in the section\n\n // The _top_ of the next group must be within groupDistance of the\n // _bottom_ of the current group. This makes sure that we don't collapse\n // groups that are separated by a large distance\n const distance = currentGroupPosition - scale(d.top_height ?? d.height);\n\n if (distance <= groupDistance) {\n if (currentGroup == null) {\n throw new Error(\"Current group is null when it shouldn't be\");\n }\n // Merge into current group\n currentGroup.data.push(...d.data);\n // Update height range\n const top_height = d.top_height ?? d.height;\n if (\n axisType === ColumnAxisType.AGE ||\n axisType === ColumnAxisType.DEPTH\n ) {\n // Inverted axis\n currentGroup.top_height = Math.min(currentGroup.top_height, top_height);\n } else {\n currentGroup.top_height = Math.max(currentGroup.top_height, top_height);\n }\n currentGroup.id = `${currentGroup.height}-${currentGroup.top_height}`;\n } else {\n // Start a new group\n currentGroup = { ...d, data: [...d.data] };\n currentGroupPosition =\n scale(currentGroup.height) ??\n scale(currentGroup.top_height) ??\n Infinity;\n groupedData.push(currentGroup);\n }\n }\n\n return groupedData;\n}\n"],"names":["$7Z3it$macrostrathyper","ColumnAxisType","$7Z3it$ColumnAxisType","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$7e05644cbb5d2dbb$exports","$7e05644cbb5d2dbb$export$9d101e1fcb2166a6","$7e05644cbb5d2dbb$export$8f2afa8ddee7317e","$7e05644cbb5d2dbb$export$ce5c4f2fdf4e644d","$7e05644cbb5d2dbb$export$653e47a7a0da0f0d","$7e05644cbb5d2dbb$export$4e649f790614b299","$ff1AM","$iWhRv","$6KYbn","$7e05644cbb5d2dbb$var$h","styled","a","__esModule","default","pos","units","axisType","unit","find","u","unit_id","unit_rel_pos","res","getPositionWithinUnit","height","top_height","getUnitHeightRange","data","heights","d","push","AGE","DEPTH","Math","max","min","noteComponent","width","paddingLeft","className","deltaConnectorAttachment","focusedNoteComponent","ColumnNotes","notes","maxItems","itemRenderer","p","tooMany","d1","length","slice","map","i","key","scale","groupDistance","sort","b","groupedData","currentGroup","currentGroupPosition","Infinity","distance","standardizeMeasurementHeight","mergeHeightRanges","BaseMeasurementsColumn","TruncatedList","groupNotesByPixelDistance"],"version":3,"file":"column-views.54f7a243.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.7b6e7d82.js";import"./column-views.5c02450b.js";import"./column-views.5e73411d.js";import"./column-views.ffbffec7.js";import"./column-views.fea32686.js";import"./column-views.0818254f.js";import"./column-views.eecdc727.js";import"./column-views.5f3f8ccf.js";import"./column-views.f93b4175.js";import"./column-views.64fc40d6.js";import"./column-views.74fcfb9c.js";import e from"@macrostrat/hyper";import{useMemo as t}from"react";import{useInDarkMode as n}from"@macrostrat/ui-components";import o from"classnames";import{SVG as i,ColumnProvider as a,ColumnAxisType as r}from"@macrostrat/column-components";var l=globalThis,s={},c={},m=l.parcelRequirea149;null==m&&((m=function(e){if(e in s)return s[e].exports;if(e in c){var t=c[e];delete c[e];var n={id:e,exports:{}};return s[e]=n,t.call(n.exports,n,n.exports),n.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){c[e]=t},l.parcelRequirea149=m),m.register,Object.defineProperty({},"CorrelationChart",{get:()=>x,set:void 0,enumerable:!0,configurable:!0});var u=m("5SO8b"),p=m("wtIgl"),f=m("iYfAq"),d=m("2KV3o"),b=m("cf1sk"),g=m("7exMg"),C=m("8ldOM"),h=m("4hG2H"),S=m("7tWYE"),H=m("1n4Pb"),v=m("dMbCm");let _=e.styled(b&&b.__esModule?b.default:b);function U({children:e}){return _("div.main-chart",{ref:(0,u.useColumnRef)()},e)}let w=new Set([f.UnitDetailsFeature.AdjacentUnits,f.UnitDetailsFeature.OutcropType,f.UnitDetailsFeature.DepthRange,f.UnitDetailsFeature.ColumnName]);function x({data:e,columnSpacing:a=0,columnWidth:r=130,unconformityLabels:l=!0,showUnitPopover:s=!0,selectedUnit:c,onUnitSelected:m,unitComponent:f,...b}){let g={targetUnitHeight:10,unconformityHeight:60,minSectionHeight:60,collapseSmallUnconformities:!0},h=t(()=>e?(0,C.buildCorrelationChartData)(e,{...g,...b}):null,[e,...Object.values(b)]),S=t(()=>e?.map(e=>e.units).flat()??[],[e]),H=o({"dark-mode":n()});if(null==h)return null;let{packages:x,scaleInfo:y,nColumns:R}=h;return _(v.ColumnContainer,{className:"correlation-diagram"},_(p.UnitSelectionProvider,{selectedUnit:c,onUnitSelected:m,units:S},_(F,[_(E,{key:"timescale",scaleInfo:y,unconformityLabels:l}),_(U,[_(i,{className:H,innerWidth:(r+a)*R,height:y.totalHeight,paddingH:4},x.map((e,t)=>{let{offset:n,domain:o,pixelScale:i,scale:l,key:s}=y.packages[t];return _(A,{columnData:e.columnData,key:s,columnWidth:r,columnSpacing:a,offset:n,domain:o,pixelScale:i,scale:l,unitComponent:f})})),_.if(s)(d.UnitSelectionPopover,{features:w}),_(u.UnitKeyboardNavigation,{columnData:e})])])))}function A({columnData:e,columnSpacing:t,columnWidth:n,unitComponent:o,offset:i,domain:a,pixelScale:r,scale:l}){return _("g.package",{transform:`translate(0 ${i})`},[_("g.column-units",[e.map((e,i)=>_(y,{units:e.units,unitComponent:o,width:n,key:i,domain:a,pixelScale:r,scale:l,offsetLeft:i*(n+t)}))])])}function y(e){let{units:t,width:n=150,offsetLeft:o,domain:i,pixelScale:l,scale:s,unitComponent:c=S.ColoredUnitComponent}=e;return 0==t.length?null:_("g.section",{transform:`translate(${o} 0)`},_(a,{divisions:t,range:i,scale:s,pixelsPerMeter:l,axisType:r.AGE},_(H.UnitBoxes,{unitComponent:c,unitComponentProps:{nColumns:2,width:n,showLabel:!1}})))}function F({children:e}){let t=(0,u.useUnitSelectionDispatch)();return _("div.correlation-chart-inner",{onClick(){t(null,null)}},e)}function E(e){let{scaleInfo:t,unconformityLabels:n=!0}=e;return _("div.column-container.age-axis-container",[_(h.CompositeAgeAxisCore,{...t}),_(g.CompositeTimescaleCore,{...t,unconformityLabels:n})])}export{x as CorrelationChart};
2
+ //# sourceMappingURL=column-views.58b336f1.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,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,W,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,S,E,E,S,E,E,SAsCA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAcvB,SAAS,EAAc,CAAA,SAAE,CAAQ,CAAE,EAEjC,OAAO,EAAE,iBAAkB,CAAE,IADX,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,GAC0B,EAAG,EACjD,CAEA,IAAM,EAAsB,IAAI,IAAI,CAClC,AAAA,EAAA,kBAAiB,CAAE,aAAa,CAChC,AAAA,EAAA,kBAAiB,CAAE,WAAW,CAC9B,AAAA,EAAA,kBAAiB,CAAE,UAAU,CAC7B,AAAA,EAAA,kBAAiB,CAAE,UAAU,CAC9B,EAEM,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,CAAi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","sources":["<anon>","packages/column-views/src/correlation-chart/main.ts"],"sourcesContent":["import \"./column-views.7b6e7d82.js\";\nimport \"./column-views.5c02450b.js\";\nimport \"./column-views.5e73411d.js\";\nimport \"./column-views.ffbffec7.js\";\nimport \"./column-views.fea32686.js\";\nimport \"./column-views.0818254f.js\";\nimport \"./column-views.eecdc727.js\";\nimport \"./column-views.5f3f8ccf.js\";\nimport \"./column-views.f93b4175.js\";\nimport \"./column-views.64fc40d6.js\";\nimport \"./column-views.74fcfb9c.js\";\nimport $8OJSO$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $8OJSO$useMemo} 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 $5SO8b = parcelRequire(\"5SO8b\");\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\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 $7tWYE = parcelRequire(\"7tWYE\");\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$var$MainChartArea({ children: children }) {\n const columnRef = (0, $5SO8b.useColumnRef)();\n return $25f1fcddbe40b91f$var$h(\"div.main-chart\", {\n ref: columnRef\n }, children);\n}\nconst $25f1fcddbe40b91f$var$unitPopoverFeatures = new Set([\n (0, $iYfAq.UnitDetailsFeature).AdjacentUnits,\n (0, $iYfAq.UnitDetailsFeature).OutcropType,\n (0, $iYfAq.UnitDetailsFeature).DepthRange,\n (0, $iYfAq.UnitDetailsFeature).ColumnName\n]);\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 // 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, $wtIgl.UnitSelectionProvider), {\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($25f1fcddbe40b91f$var$MainChartArea, [\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, scale: scale, 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 scale: scale,\n unitComponent: unitComponent\n });\n })),\n $25f1fcddbe40b91f$var$h.if(showUnitPopover)((0, $2KV3o.UnitSelectionPopover), {\n features: $25f1fcddbe40b91f$var$unitPopoverFeatures\n }),\n // Navigation only works within a column for now...\n $25f1fcddbe40b91f$var$h((0, $5SO8b.UnitKeyboardNavigation), {\n columnData: data\n })\n ])\n ])));\n}\nfunction $25f1fcddbe40b91f$var$Package({ columnData: columnData, columnSpacing: columnSpacing, columnWidth: columnWidth, unitComponent: unitComponent, offset: offset, domain: domain, pixelScale: pixelScale, scale: scale }) {\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 scale: scale,\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, scale: scale, 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 scale: scale,\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, $5SO8b.useUnitSelectionDispatch)();\n return $25f1fcddbe40b91f$var$h(\"div.correlation-chart-inner\", {\n onClick () {\n setSelectedUnit(null, 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.58b336f1.js.map\n","/** Correlation chart */\nimport {\n UnitSelectionProvider,\n UnitKeyboardNavigation,\n useUnitSelectionDispatch,\n useColumnRef,\n} from \"../data-provider\";\nimport { UnitDetailsFeature, UnitSelectionPopover } from \"../unit-details\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./main.module.sass\";\nimport { useMemo } from \"react\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { CompositeTimescaleCore } from \"../section\";\nimport classNames from \"classnames\";\nimport {\n findLaterallyExtensiveUnits,\n splitStratIntoBoxes,\n UnitGroupBox,\n CorrelationChartSettings,\n buildCorrelationChartData,\n} from \"./prepare-data\";\nimport {\n CompositeAgeAxisCore,\n CompositeStratigraphicScaleInfo,\n} from \"../age-axis\";\nimport {\n ColumnAxisType,\n ColumnProvider,\n SVG,\n} from \"@macrostrat/column-components\";\nimport { ColoredUnitComponent } from \"../units\";\nimport { UnitBoxes } from \"../units/boxes\";\nimport { ColumnContainer } from \"../column\";\nimport { ColumnData } from \"../data-provider\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\nimport { ScaleContinuousNumeric } from \"d3-scale\";\nimport { ExtUnit } from \"../prepare-units/types\";\n\nconst h = hyper.styled(styles);\n\nexport interface CorrelationChartProps extends CorrelationChartSettings {\n data: ColumnData[];\n columnWidth?: number;\n columnSpacing?: number;\n targetUnitHeight?: number;\n unconformityLabels?: boolean;\n selectedUnit?: number | null;\n showUnitPopover?: boolean;\n unitComponent?: any;\n onUnitSelected?: (unitID: number | null, unit: BaseUnit | null) => void;\n}\n\nfunction MainChartArea({ children }) {\n const columnRef = useColumnRef();\n return h(\"div.main-chart\", { ref: columnRef }, children);\n}\n\nconst unitPopoverFeatures = new Set([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n UnitDetailsFeature.DepthRange,\n UnitDetailsFeature.ColumnName,\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 // 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 { selectedUnit, onUnitSelected, units },\n h(ChartArea, [\n h(TimescaleColumn, {\n key: \"timescale\",\n scaleInfo,\n unconformityLabels,\n }),\n h(MainChartArea, [\n h(\n SVG,\n {\n className,\n innerWidth: mainWidth,\n height: scaleInfo.totalHeight,\n paddingH: 4,\n },\n packages.map((pkg, i) => {\n const { offset, domain, pixelScale, scale, key } =\n scaleInfo.packages[i];\n return h(Package, {\n columnData: pkg.columnData,\n key,\n columnWidth,\n columnSpacing,\n offset,\n domain,\n pixelScale,\n scale,\n unitComponent,\n });\n }),\n ),\n h.if(showUnitPopover)(UnitSelectionPopover, {\n features: unitPopoverFeatures,\n }),\n // Navigation only works within a column for now...\n h(UnitKeyboardNavigation, { columnData: data }),\n ]),\n ]),\n ),\n );\n}\n\nfunction Package({\n columnData,\n columnSpacing,\n columnWidth,\n unitComponent,\n offset,\n domain,\n pixelScale,\n scale,\n}) {\n return h(\"g.package\", { transform: `translate(0 ${offset})` }, [\n // Disable the SVG overlay for now\n //h(PackageSVGOverlay, { data, columnSpacing }),\n h(\"g.column-units\", [\n columnData.map((data, i) => {\n return h(Column, {\n units: data.units,\n unitComponent,\n width: columnWidth,\n key: i,\n domain,\n pixelScale,\n scale,\n offsetLeft: i * (columnWidth + columnSpacing),\n });\n }),\n ]),\n ]);\n}\n\ninterface ColumnProps {\n units: ExtUnit[];\n unitComponent?: React.FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n columnSpacing?: number;\n targetUnitHeight?: number;\n offsetLeft?: number;\n domain: [number, number];\n pixelScale: number;\n scale?: ScaleContinuousNumeric<number, number>;\n}\n\nfunction Column(props: ColumnProps) {\n const {\n units,\n width = 150,\n offsetLeft,\n domain,\n pixelScale,\n scale,\n unitComponent = ColoredUnitComponent,\n } = props;\n\n const columnWidth = width;\n\n if (units.length == 0) {\n return null;\n }\n\n return h(\n \"g.section\",\n {\n transform: `translate(${offsetLeft} 0)`,\n },\n h(\n ColumnProvider,\n {\n // Need to tighten up types here...\n divisions: units as any[],\n range: domain,\n scale,\n pixelsPerMeter: pixelScale, // Actually pixels per myr\n axisType: ColumnAxisType.AGE,\n },\n h(UnitBoxes, {\n unitComponent,\n unitComponentProps: {\n nColumns: 2,\n width: columnWidth,\n showLabel: false,\n },\n }),\n ),\n );\n}\n\nfunction PackageSVGOverlay({ data, columnWidth = 100, columnSpacing = 0 }) {\n const { b_age, t_age, bestPixelScale, columnData } = data;\n\n const width = (columnWidth + columnSpacing) * columnData.length;\n const height = Math.ceil((b_age - t_age) * bestPixelScale) + 2;\n\n const extensiveUnits = findLaterallyExtensiveUnits(data);\n\n const scale = (val: number) => {\n return (val - t_age) * bestPixelScale;\n };\n\n return h(\n \"div.package-overlay\",\n { style: { width, height } },\n extensiveUnits.map((d) => {\n return h(LaterallyExtensiveUnit, {\n data: d,\n scale,\n pixelScale: bestPixelScale,\n columnSpacing,\n });\n }),\n );\n}\n\nfunction LaterallyExtensiveUnit({ data, scale, pixelScale, columnSpacing }) {\n const { b_age, t_age, strat_name_long, units } = data;\n // Build boxes by column groups\n const boxes: UnitGroupBox[] = splitStratIntoBoxes(data);\n\n return h(\n \"div.laterally-extensive-unit\",\n boxes.map((d, i) => {\n return h(StratColSpan, {\n scale,\n data: d,\n pixelScale,\n key: i,\n columnSpacing,\n });\n }),\n );\n}\n\nfunction StratColSpan({\n data,\n scale,\n columnWidth = 100,\n columnSpacing = 0,\n pixelScale = 1,\n}) {\n const { startCol, endCol, strat_name_long, t_age, b_age } = data;\n const top = scale(t_age);\n const left = startCol * (columnWidth + columnSpacing);\n const width = (endCol - startCol + 1) * (columnWidth + columnSpacing);\n const height = (b_age - t_age) * pixelScale;\n return h(\n \"div.strat-col-span\",\n { style: { top, height, width, left } },\n strat_name_long,\n );\n}\n\nfunction ChartArea({ children }) {\n const setSelectedUnit = useUnitSelectionDispatch();\n\n return h(\n \"div.correlation-chart-inner\",\n {\n onClick() {\n setSelectedUnit(null, 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","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","$5SO8b","$wtIgl","$iYfAq","$2KV3o","$cf1sk","$7exMg","$8ldOM","$4hG2H","$7tWYE","$1n4Pb","$dMbCm","$25f1fcddbe40b91f$var$h","styled","a","__esModule","default","$25f1fcddbe40b91f$var$MainChartArea","children","ref","useColumnRef","$25f1fcddbe40b91f$var$unitPopoverFeatures","Set","UnitDetailsFeature","AdjacentUnits","OutcropType","DepthRange","ColumnName","data","columnSpacing","columnWidth","unconformityLabels","showUnitPopover","selectedUnit","onUnitSelected","unitComponent","scaleProps","defaultScaleProps","targetUnitHeight","unconformityHeight","minSectionHeight","collapseSmallUnconformities","chartData","buildCorrelationChartData","values","units","map","d0","flat","className","packages","scaleInfo","nColumns","ColumnContainer","UnitSelectionProvider","$25f1fcddbe40b91f$var$ChartArea","$25f1fcddbe40b91f$var$TimescaleColumn","key","innerWidth","height","totalHeight","paddingH","pkg","i","offset","domain","pixelScale","scale","$25f1fcddbe40b91f$var$Package","columnData","if","UnitSelectionPopover","features","UnitKeyboardNavigation","transform","$25f1fcddbe40b91f$var$Column","width","offsetLeft","props","ColoredUnitComponent","length","divisions","range","pixelsPerMeter","axisType","AGE","UnitBoxes","unitComponentProps","showLabel","setSelectedUnit","useUnitSelectionDispatch","onClick","CompositeAgeAxisCore","CompositeTimescaleCore","CorrelationChart"],"version":3,"file":"column-views.58b336f1.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.0980c2a0.js";import{line as e}from"d3-shape";import{createContext as t,useContext as r}from"react";import o from"@macrostrat/hyper";import{ColumnLayoutContext as a}from"@macrostrat/column-components";var n=globalThis,l={},c={},i=n.parcelRequirea149;null==i&&((i=function(e){if(e in l)return l[e].exports;if(e in c){var t=c[e];delete c[e];var r={id:e,exports:{}};return l[e]=r,t.call(r.exports,r,r.exports),r.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){c[e]=t},n.parcelRequirea149=i),i.register;var s=i("wtIgl");let u=function(e){let{xScale:t,scale:r,getHeight:o,...a}=e;return function(e,a=0){let n=o(e);return((e,t)=>{let r=e.domain();return r[0]<t<r[1]})(r,n)?[t(e.value),r(n)]:null}},p=t(null),d=function(t){let n=r(a)?.xScale,l=(0,s.useCompositeScale)(),{corrected:c,system:i,children:d,getHeight:m,clipY:f=!1}=t;null==m&&(m=function(e){return null==e.height&&console.log(e),e.height});let b=u({xScale:n,scale:l,corrected:c,system:i,getHeight:m}),x="avg_"+i;c&&(x+="_corr");let g=e().x(e=>n(e[x])).y(e=>l(e.height));return o(p.Provider,{value:{pointLocator:b,lineLocator:g,corrected:c,system:i,clipY:f}},o("g.data",d))},m=function(e){let{pointLocator:t}=r(p),{datum:a,strokeWidth:n,...l}=e,c=t(a);if(null==c)return null;let[i,s]=c;return o("circle",{key:a.sample_id,cx:i,cy:s,r:2,...l})},f=function(e){let{values:t,...a}=e,{lineLocator:n}=r(p);return o("path",{d:n(t),fill:"transparent",...a})},b=()=>r(p);export{d as IsotopesDataArea,m as IsotopeDataPoint,f as IsotopeDataLine,b as useDataLocator};
2
- //# sourceMappingURL=column-views.ed7b4c16.js.map
1
+ import"./column-views.5c02450b.js";import{line as e}from"d3-shape";import{createContext as t,useContext as r}from"react";import o from"@macrostrat/hyper";import{ColumnLayoutContext as a}from"@macrostrat/column-components";var n=globalThis,l={},c={},i=n.parcelRequirea149;null==i&&((i=function(e){if(e in l)return l[e].exports;if(e in c){var t=c[e];delete c[e];var r={id:e,exports:{}};return l[e]=r,t.call(r.exports,r,r.exports),r.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){c[e]=t},n.parcelRequirea149=i),i.register;var s=i("wtIgl");let u=function(e){let{xScale:t,scale:r,getHeight:o,...a}=e;return function(e,a=0){let n=o(e);return((e,t)=>{let r=e.domain();return r[0]<t<r[1]})(r,n)?[t(e.value),r(n)]:null}},p=t(null),d=function(t){let n=r(a)?.xScale,l=(0,s.useCompositeScale)(),{corrected:c,system:i,children:d,getHeight:m,clipY:f=!1}=t;null==m&&(m=function(e){return null==e.height&&console.log(e),e.height});let b=u({xScale:n,scale:l,corrected:c,system:i,getHeight:m}),x="avg_"+i;c&&(x+="_corr");let g=e().x(e=>n(e[x])).y(e=>l(e.height));return o(p.Provider,{value:{pointLocator:b,lineLocator:g,corrected:c,system:i,clipY:f}},o("g.data",d))},m=function(e){let{pointLocator:t}=r(p),{datum:a,strokeWidth:n,...l}=e,c=t(a);if(null==c)return null;let[i,s]=c;return o("circle",{key:a.sample_id,cx:i,cy:s,r:2,...l})},f=function(e){let{values:t,...a}=e,{lineLocator:n}=r(p);return o("path",{d:n(t),fill:"transparent",...a})},b=()=>r(p);export{d as IsotopesDataArea,m as IsotopeDataPoint,f as IsotopeDataLine,b as useDataLocator};
2
+ //# sourceMappingURL=column-views.5908556a.js.map
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,Q,Q,C,K,U,A,Q,iB,C,C,c,C,K,O,A,Q,M,mB,A,Q,uB,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,I,E,E,SCWA,IAAM,EAAqB,SAAU,CAAI,EACvC,GAAM,CAAA,OAAE,CAAM,CAAA,MAAE,CAAK,CAAA,UAAE,CAAS,CAAE,GAAG,EAAM,CAAG,EAC9C,OAAO,SAAU,CAAC,CAAE,EAAI,CAAC,EACvB,IAAM,EAAS,EAAU,SACzB,AAAK,AATQ,CAAA,CAAC,EAAO,KACvB,IAAM,EAAS,EAAM,MAAM,GAC3B,OAAO,CAAM,CAAC,EAAE,CAAG,EAAM,CAAM,CAAC,EAAE,AACpC,CAAA,EAMkB,EAAO,GACd,CAAC,EAAO,EAAE,KAAK,EAAG,EAAM,GAAQ,CADF,IAEvC,CACF,EAEM,EAAsB,AAAA,EAAc,MAWpC,EAAmB,SAAU,CAAoB,EACrD,IAAM,EAAS,AAAA,EAAW,IAAsB,OAE1C,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAEV,CAAA,UAAE,CAAS,CAAA,OAAE,CAAM,CAAA,SAAE,CAAQ,CAAA,UAAE,CAAS,CAAA,MAAE,EAAQ,CAAA,CAAA,CAAO,CAAG,CAC5D,AAAa,OAAb,GACF,CAAA,EAAY,SAAU,CAAC,EAIrB,OAHI,AAAY,MAAZ,EAAE,MAAM,EACV,QAAQ,GAAG,CAAC,GAEP,EAAE,MAAM,AACjB,CAAA,EAIF,IAAM,EAAe,EAAmB,CACtC,OAAA,EACA,MAAA,EACA,UAAA,EACA,OAAA,EACA,UAAA,CACF,GAEI,EAAS,OAAS,CAClB,CAAA,GACF,CAAA,GAAU,OADZ,EAGA,IAAM,EAAc,AAAA,IACjB,CAAC,CAAC,AAAC,GAAM,EAAO,CAAC,CAAC,EAAO,GAEzB,CAAC,CAAC,AAAC,GAAM,EAAM,EAAE,MAAM,GAG1B,OAAO,AAAA,EAAE,EAAoB,QAAQ,CAAE,CAAE,MAD3B,CAAE,aAAA,EAAc,YAAA,EAAa,UAAA,EAAW,OAAA,EAAQ,MAAA,CAAM,CACrB,EAAG,AAAA,EAAE,SAAU,GAChE,EAEM,EAAmB,SAAU,CAAK,EACtC,GAAM,CAAA,aAAE,CAAY,CAAE,CAAG,AAAA,EAAW,GAC9B,CAAA,MAAE,CAAK,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EAClC,EAAM,EAAa,GACzB,GAAI,AAAO,MAAP,EAAa,OAAO,KACxB,GAAM,CAAC,EAAI,EAAG,CAAG,EAEjB,OAAO,AAAA,EAAE,SAAU,CACjB,IAAK,EAAM,SAAS,CACpB,GAAA,EACA,GAAA,EACA,EAAG,EACH,GAAG,CAAI,AACT,EACF,EAEM,EAAkB,SAAU,CAAK,EACrC,GAAM,CAAE,OAAQ,CAAU,CAAE,GAAG,EAAM,CAAG,EAClC,CAAA,YAAE,CAAW,CAAE,CAAG,AAAA,EAAW,GACnC,OAAO,AAAA,EAAE,OAAQ,CACf,EAAG,EAAY,GACf,KAAM,cACN,GAAG,CAAI,AACT,EACF,EAEM,EAAiB,IAAM,AAAA,EAAW,U,K,gB,C,K,gB,C,K,e,C,K,c","sources":["<anon>","packages/column-views/src/facets/carbon-isotopes/data-area.ts"],"sourcesContent":["import \"./column-views.0980c2a0.js\";\nimport {line as $5eSmp$line} from \"d3-shape\";\nimport {createContext as $5eSmp$createContext, useContext as $5eSmp$useContext} from \"react\";\nimport $5eSmp$macrostrathyper from \"@macrostrat/hyper\";\nimport {ColumnLayoutContext as $5eSmp$ColumnLayoutContext} from \"@macrostrat/column-components\";\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 $wtIgl = parcelRequire(\"wtIgl\");\nconst $561e9bb965350dc6$var$inDomain = (scale, num)=>{\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\nconst $561e9bb965350dc6$var$createPointLocator = function(opts) {\n const { xScale: xScale, scale: scale, getHeight: getHeight, ...rest } = opts;\n return function(d, s = 0) {\n const height = getHeight(d);\n if (!$561e9bb965350dc6$var$inDomain(scale, height)) return null;\n return [\n xScale(d.value),\n scale(height)\n ];\n };\n};\nconst $561e9bb965350dc6$var$IsotopesDataContext = (0, $5eSmp$createContext)(null);\nconst $561e9bb965350dc6$export$309ef8546e07d921 = function(props) {\n const xScale = (0, $5eSmp$useContext)((0, $5eSmp$ColumnLayoutContext))?.xScale;\n const scale = (0, $wtIgl.useCompositeScale)();\n let { corrected: corrected, system: system, children: children, getHeight: getHeight, clipY: clipY = false } = props;\n if (getHeight == null) getHeight = function(d) {\n if (d.height == null) console.log(d);\n return d.height;\n };\n // Handlers for creating points and lines\n const pointLocator = $561e9bb965350dc6$var$createPointLocator({\n xScale: xScale,\n scale: scale,\n corrected: corrected,\n system: system,\n getHeight: getHeight\n });\n let column = \"avg_\" + system;\n if (corrected) column += \"_corr\";\n const lineLocator = (0, $5eSmp$line)().x((d)=>xScale(d[column]))// @ts-ignore\n .y((d)=>scale(d.height));\n const value = {\n pointLocator: pointLocator,\n lineLocator: lineLocator,\n corrected: corrected,\n system: system,\n clipY: clipY\n };\n return (0, $5eSmp$macrostrathyper)($561e9bb965350dc6$var$IsotopesDataContext.Provider, {\n value: value\n }, (0, $5eSmp$macrostrathyper)(\"g.data\", children));\n};\nconst $561e9bb965350dc6$export$4cb5d059db4e2bd = function(props) {\n const { pointLocator: pointLocator } = (0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n const { datum: datum, strokeWidth: strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n return (0, $5eSmp$macrostrathyper)(\"circle\", {\n key: datum.sample_id,\n cx: cx,\n cy: cy,\n r: 2,\n ...rest\n });\n};\nconst $561e9bb965350dc6$export$628a3ef6eb9c3a89 = function(props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator: lineLocator } = (0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n return (0, $5eSmp$macrostrathyper)(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest\n });\n};\nconst $561e9bb965350dc6$export$919dbb10b6b5b75 = ()=>(0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n\n\nexport {$561e9bb965350dc6$export$309ef8546e07d921 as IsotopesDataArea, $561e9bb965350dc6$export$4cb5d059db4e2bd as IsotopeDataPoint, $561e9bb965350dc6$export$628a3ef6eb9c3a89 as IsotopeDataLine, $561e9bb965350dc6$export$919dbb10b6b5b75 as useDataLocator};\n//# sourceMappingURL=column-views.ed7b4c16.js.map\n","import { line } from \"d3-shape\";\nimport { createContext, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { ColumnLayoutContext } from \"@macrostrat/column-components\";\nimport { useCompositeScale } from \"../../data-provider\";\n\nconst inDomain = (scale, num) => {\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\n\nconst createPointLocator = function (opts) {\n const { xScale, scale, getHeight, ...rest } = opts;\n return function (d, s = 0) {\n const height = getHeight(d);\n if (!inDomain(scale, height)) return null;\n return [xScale(d.value), scale(height)];\n };\n};\n\nconst IsotopesDataContext = createContext(null);\n\nexport interface DataAreaProps {\n clipY: boolean;\n parameter: string;\n corrected: boolean;\n system: string;\n children: React.ReactNode;\n getHeight?: Function;\n}\n\nconst IsotopesDataArea = function (props: DataAreaProps) {\n const xScale = useContext(ColumnLayoutContext)?.xScale;\n\n const scale = useCompositeScale();\n\n let { corrected, system, children, getHeight, clipY = false } = props;\n if (getHeight == null) {\n getHeight = function (d) {\n if (d.height == null) {\n console.log(d);\n }\n return d.height;\n };\n }\n\n // Handlers for creating points and lines\n const pointLocator = createPointLocator({\n xScale,\n scale,\n corrected,\n system,\n getHeight,\n });\n\n let column = \"avg_\" + system;\n if (corrected) {\n column += \"_corr\";\n }\n const lineLocator = line()\n .x((d) => xScale(d[column]))\n // @ts-ignore\n .y((d) => scale(d.height));\n\n const value = { pointLocator, lineLocator, corrected, system, clipY };\n return h(IsotopesDataContext.Provider, { value }, h(\"g.data\", children));\n};\n\nconst IsotopeDataPoint = function (props) {\n const { pointLocator } = useContext(IsotopesDataContext);\n const { datum, strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n\n return h(\"circle\", {\n key: datum.sample_id,\n cx,\n cy,\n r: 2,\n ...rest,\n });\n};\n\nconst IsotopeDataLine = function (props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator } = useContext(IsotopesDataContext);\n return h(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest,\n });\n};\n\nconst useDataLocator = () => useContext(IsotopesDataContext);\n\nexport { IsotopesDataArea, IsotopeDataPoint, IsotopeDataLine, useDataLocator };\n"],"names":["line","$5eSmp$line","createContext","$5eSmp$createContext","useContext","$5eSmp$useContext","$5eSmp$macrostrathyper","ColumnLayoutContext","$5eSmp$ColumnLayoutContext","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$wtIgl","$561e9bb965350dc6$var$createPointLocator","opts","xScale","scale","getHeight","rest","d","s","height","$561e9bb965350dc6$var$inDomain","num","domain","value","$561e9bb965350dc6$var$IsotopesDataContext","$561e9bb965350dc6$export$309ef8546e07d921","props","useCompositeScale","corrected","system","children","clipY","console","log","pointLocator","column","lineLocator","x","y","Provider","$561e9bb965350dc6$export$4cb5d059db4e2bd","datum","strokeWidth","loc","cx","cy","key","sample_id","r","$561e9bb965350dc6$export$628a3ef6eb9c3a89","values","lineValues","fill","$561e9bb965350dc6$export$919dbb10b6b5b75","IsotopesDataArea","IsotopeDataPoint","IsotopeDataLine","useDataLocator"],"version":3,"file":"column-views.ed7b4c16.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,Q,Q,C,K,U,A,Q,iB,C,C,c,C,K,O,A,Q,M,mB,A,Q,uB,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,I,E,E,SCWA,IAAM,EAAqB,SAAU,CAAI,EACvC,GAAM,CAAA,OAAE,CAAM,CAAA,MAAE,CAAK,CAAA,UAAE,CAAS,CAAE,GAAG,EAAM,CAAG,EAC9C,OAAO,SAAU,CAAC,CAAE,EAAI,CAAC,EACvB,IAAM,EAAS,EAAU,SACzB,AAAK,AATQ,CAAA,CAAC,EAAO,KACvB,IAAM,EAAS,EAAM,MAAM,GAC3B,OAAO,CAAM,CAAC,EAAE,CAAG,EAAM,CAAM,CAAC,EAAE,AACpC,CAAA,EAMkB,EAAO,GACd,CAAC,EAAO,EAAE,KAAK,EAAG,EAAM,GAAQ,CADF,IAEvC,CACF,EAEM,EAAsB,AAAA,EAAc,MAWpC,EAAmB,SAAU,CAAoB,EACrD,IAAM,EAAS,AAAA,EAAW,IAAsB,OAE1C,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAEV,CAAA,UAAE,CAAS,CAAA,OAAE,CAAM,CAAA,SAAE,CAAQ,CAAA,UAAE,CAAS,CAAA,MAAE,EAAQ,CAAA,CAAA,CAAO,CAAG,CAC5D,AAAa,OAAb,GACF,CAAA,EAAY,SAAU,CAAC,EAIrB,OAHI,AAAY,MAAZ,EAAE,MAAM,EACV,QAAQ,GAAG,CAAC,GAEP,EAAE,MAAM,AACjB,CAAA,EAIF,IAAM,EAAe,EAAmB,CACtC,OAAA,EACA,MAAA,EACA,UAAA,EACA,OAAA,EACA,UAAA,CACF,GAEI,EAAS,OAAS,CAClB,CAAA,GACF,CAAA,GAAU,OADZ,EAGA,IAAM,EAAc,AAAA,IACjB,CAAC,CAAC,AAAC,GAAM,EAAO,CAAC,CAAC,EAAO,GAEzB,CAAC,CAAC,AAAC,GAAM,EAAM,EAAE,MAAM,GAG1B,OAAO,AAAA,EAAE,EAAoB,QAAQ,CAAE,CAAE,MAD3B,CAAE,aAAA,EAAc,YAAA,EAAa,UAAA,EAAW,OAAA,EAAQ,MAAA,CAAM,CACrB,EAAG,AAAA,EAAE,SAAU,GAChE,EAEM,EAAmB,SAAU,CAAK,EACtC,GAAM,CAAA,aAAE,CAAY,CAAE,CAAG,AAAA,EAAW,GAC9B,CAAA,MAAE,CAAK,CAAA,YAAE,CAAW,CAAE,GAAG,EAAM,CAAG,EAClC,EAAM,EAAa,GACzB,GAAI,AAAO,MAAP,EAAa,OAAO,KACxB,GAAM,CAAC,EAAI,EAAG,CAAG,EAEjB,OAAO,AAAA,EAAE,SAAU,CACjB,IAAK,EAAM,SAAS,CACpB,GAAA,EACA,GAAA,EACA,EAAG,EACH,GAAG,CAAI,AACT,EACF,EAEM,EAAkB,SAAU,CAAK,EACrC,GAAM,CAAE,OAAQ,CAAU,CAAE,GAAG,EAAM,CAAG,EAClC,CAAA,YAAE,CAAW,CAAE,CAAG,AAAA,EAAW,GACnC,OAAO,AAAA,EAAE,OAAQ,CACf,EAAG,EAAY,GACf,KAAM,cACN,GAAG,CAAI,AACT,EACF,EAEM,EAAiB,IAAM,AAAA,EAAW,U,K,gB,C,K,gB,C,K,e,C,K,c","sources":["<anon>","packages/column-views/src/facets/carbon-isotopes/data-area.ts"],"sourcesContent":["import \"./column-views.5c02450b.js\";\nimport {line as $5eSmp$line} from \"d3-shape\";\nimport {createContext as $5eSmp$createContext, useContext as $5eSmp$useContext} from \"react\";\nimport $5eSmp$macrostrathyper from \"@macrostrat/hyper\";\nimport {ColumnLayoutContext as $5eSmp$ColumnLayoutContext} from \"@macrostrat/column-components\";\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 $wtIgl = parcelRequire(\"wtIgl\");\nconst $561e9bb965350dc6$var$inDomain = (scale, num)=>{\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\nconst $561e9bb965350dc6$var$createPointLocator = function(opts) {\n const { xScale: xScale, scale: scale, getHeight: getHeight, ...rest } = opts;\n return function(d, s = 0) {\n const height = getHeight(d);\n if (!$561e9bb965350dc6$var$inDomain(scale, height)) return null;\n return [\n xScale(d.value),\n scale(height)\n ];\n };\n};\nconst $561e9bb965350dc6$var$IsotopesDataContext = (0, $5eSmp$createContext)(null);\nconst $561e9bb965350dc6$export$309ef8546e07d921 = function(props) {\n const xScale = (0, $5eSmp$useContext)((0, $5eSmp$ColumnLayoutContext))?.xScale;\n const scale = (0, $wtIgl.useCompositeScale)();\n let { corrected: corrected, system: system, children: children, getHeight: getHeight, clipY: clipY = false } = props;\n if (getHeight == null) getHeight = function(d) {\n if (d.height == null) console.log(d);\n return d.height;\n };\n // Handlers for creating points and lines\n const pointLocator = $561e9bb965350dc6$var$createPointLocator({\n xScale: xScale,\n scale: scale,\n corrected: corrected,\n system: system,\n getHeight: getHeight\n });\n let column = \"avg_\" + system;\n if (corrected) column += \"_corr\";\n const lineLocator = (0, $5eSmp$line)().x((d)=>xScale(d[column]))// @ts-ignore\n .y((d)=>scale(d.height));\n const value = {\n pointLocator: pointLocator,\n lineLocator: lineLocator,\n corrected: corrected,\n system: system,\n clipY: clipY\n };\n return (0, $5eSmp$macrostrathyper)($561e9bb965350dc6$var$IsotopesDataContext.Provider, {\n value: value\n }, (0, $5eSmp$macrostrathyper)(\"g.data\", children));\n};\nconst $561e9bb965350dc6$export$4cb5d059db4e2bd = function(props) {\n const { pointLocator: pointLocator } = (0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n const { datum: datum, strokeWidth: strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n return (0, $5eSmp$macrostrathyper)(\"circle\", {\n key: datum.sample_id,\n cx: cx,\n cy: cy,\n r: 2,\n ...rest\n });\n};\nconst $561e9bb965350dc6$export$628a3ef6eb9c3a89 = function(props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator: lineLocator } = (0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n return (0, $5eSmp$macrostrathyper)(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest\n });\n};\nconst $561e9bb965350dc6$export$919dbb10b6b5b75 = ()=>(0, $5eSmp$useContext)($561e9bb965350dc6$var$IsotopesDataContext);\n\n\nexport {$561e9bb965350dc6$export$309ef8546e07d921 as IsotopesDataArea, $561e9bb965350dc6$export$4cb5d059db4e2bd as IsotopeDataPoint, $561e9bb965350dc6$export$628a3ef6eb9c3a89 as IsotopeDataLine, $561e9bb965350dc6$export$919dbb10b6b5b75 as useDataLocator};\n//# sourceMappingURL=column-views.5908556a.js.map\n","import { line } from \"d3-shape\";\nimport { createContext, useContext } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { ColumnLayoutContext } from \"@macrostrat/column-components\";\nimport { useCompositeScale } from \"../../data-provider\";\n\nconst inDomain = (scale, num) => {\n const domain = scale.domain();\n return domain[0] < num < domain[1];\n};\n\nconst createPointLocator = function (opts) {\n const { xScale, scale, getHeight, ...rest } = opts;\n return function (d, s = 0) {\n const height = getHeight(d);\n if (!inDomain(scale, height)) return null;\n return [xScale(d.value), scale(height)];\n };\n};\n\nconst IsotopesDataContext = createContext(null);\n\nexport interface DataAreaProps {\n clipY: boolean;\n parameter: string;\n corrected: boolean;\n system: string;\n children: React.ReactNode;\n getHeight?: Function;\n}\n\nconst IsotopesDataArea = function (props: DataAreaProps) {\n const xScale = useContext(ColumnLayoutContext)?.xScale;\n\n const scale = useCompositeScale();\n\n let { corrected, system, children, getHeight, clipY = false } = props;\n if (getHeight == null) {\n getHeight = function (d) {\n if (d.height == null) {\n console.log(d);\n }\n return d.height;\n };\n }\n\n // Handlers for creating points and lines\n const pointLocator = createPointLocator({\n xScale,\n scale,\n corrected,\n system,\n getHeight,\n });\n\n let column = \"avg_\" + system;\n if (corrected) {\n column += \"_corr\";\n }\n const lineLocator = line()\n .x((d) => xScale(d[column]))\n // @ts-ignore\n .y((d) => scale(d.height));\n\n const value = { pointLocator, lineLocator, corrected, system, clipY };\n return h(IsotopesDataContext.Provider, { value }, h(\"g.data\", children));\n};\n\nconst IsotopeDataPoint = function (props) {\n const { pointLocator } = useContext(IsotopesDataContext);\n const { datum, strokeWidth, ...rest } = props;\n const loc = pointLocator(datum);\n if (loc == null) return null;\n const [cx, cy] = loc;\n\n return h(\"circle\", {\n key: datum.sample_id,\n cx,\n cy,\n r: 2,\n ...rest,\n });\n};\n\nconst IsotopeDataLine = function (props) {\n const { values: lineValues, ...rest } = props;\n const { lineLocator } = useContext(IsotopesDataContext);\n return h(\"path\", {\n d: lineLocator(lineValues),\n fill: \"transparent\",\n ...rest,\n });\n};\n\nconst useDataLocator = () => useContext(IsotopesDataContext);\n\nexport { IsotopesDataArea, IsotopeDataPoint, IsotopeDataLine, useDataLocator };\n"],"names":["line","$5eSmp$line","createContext","$5eSmp$createContext","useContext","$5eSmp$useContext","$5eSmp$macrostrathyper","ColumnLayoutContext","$5eSmp$ColumnLayoutContext","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$wtIgl","$561e9bb965350dc6$var$createPointLocator","opts","xScale","scale","getHeight","rest","d","s","height","$561e9bb965350dc6$var$inDomain","num","domain","value","$561e9bb965350dc6$var$IsotopesDataContext","$561e9bb965350dc6$export$309ef8546e07d921","props","useCompositeScale","corrected","system","children","clipY","console","log","pointLocator","column","lineLocator","x","y","Provider","$561e9bb965350dc6$export$4cb5d059db4e2bd","datum","strokeWidth","loc","cx","cy","key","sample_id","r","$561e9bb965350dc6$export$628a3ef6eb9c3a89","values","lineValues","fill","$561e9bb965350dc6$export$919dbb10b6b5b75","IsotopesDataArea","IsotopeDataPoint","IsotopeDataLine","useDataLocator"],"version":3,"file":"column-views.5908556a.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.a596b1f5.js";import"./column-views.861b8e3e.js";import"./column-views.a0969fc8.js";import{useMemo as e,createContext as t,useContext as o}from"react";import r from"@macrostrat/hyper";function n(e,t,o,r){Object.defineProperty(e,t,{get:o,set:r,enumerable:!0,configurable:!0})}var a=globalThis,i={},c={},s=a.parcelRequirea149;null==s&&((s=function(e){if(e in i)return i[e].exports;if(e in c){var t=c[e];delete c[e];var o={id:e,exports:{}};return i[e]=o,t.call(o.exports,o,o.exports),o.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){c[e]=t},a.parcelRequirea149=s),s.register;var l={};n(l,"MacrostratColumnStateProvider",()=>p),n(l,"MacrostratColumnDataProvider",()=>f),n(l,"UnitSelectionProvider",()=>U),n(l,"useMacrostratColumnData",()=>S),n(l,"useMacrostratUnits",()=>$),n(l,"useColumnUnitsMap",()=>v),n(l,"useCompositeScale",()=>x);var u=s("bBAza"),d=s("5SO8b"),m=s("gjmI8");function p({children:t,units:o,allowUnitSelection:n=!1,onUnitSelected:a,selectedUnit:i}){let c=e(()=>!!n||null!=i||null!=a,[]),s=[[m.columnUnitsAtom,o],[d.allowUnitSelectionAtom,c],[d.selectedUnitIDAtom,i]],l=null;return c&&(l=r(d.UnitSelectionCallbackManager,{onUnitSelected:a})),r(m.ScopedProvider,{atoms:s},[l,t])}let b=t(null);function f({children:t,units:o,sections:n,totalHeight:a,axisType:i,allowUnitSelection:c,onUnitSelected:s,selectedUnit:l}){let u=e(()=>({units:o,sections:n,totalHeight:a,axisType:i}),[o,n,a,i]);return r(p,{units:o,allowUnitSelection:c,onUnitSelected:s,selectedUnit:l},r(b.Provider,{value:u},t))}function U(e){return r(p,{...e,allowUnitSelection:!0})}function S(){let e=o(b);if(!e)throw Error("useMacrostratColumnData must be used within a MacrostratColumnDataProvider");return e}function $(){return m.scope.useAtomValue(m.columnUnitsAtom)}function v(){try{return m.scope.useAtomValue(m.columnUnitsMapAtom)}catch{return null}}function x(){let t=S();return e(()=>(0,u.createCompositeScale)(t.sections,!0),[t.sections])}export{p as MacrostratColumnStateProvider,f as MacrostratColumnDataProvider,U as UnitSelectionProvider,S as useMacrostratColumnData,$ as useMacrostratUnits,v as useColumnUnitsMap,x as useCompositeScale};
2
- //# sourceMappingURL=column-views.0980c2a0.js.map
1
+ import"./column-views.a596b1f5.js";import"./column-views.7b6e7d82.js";import"./column-views.a0969fc8.js";import{useMemo as e,createContext as t,useContext as o}from"react";import r from"@macrostrat/hyper";function n(e,t,o,r){Object.defineProperty(e,t,{get:o,set:r,enumerable:!0,configurable:!0})}var a=globalThis,i={},c={},s=a.parcelRequirea149;null==s&&((s=function(e){if(e in i)return i[e].exports;if(e in c){var t=c[e];delete c[e];var o={id:e,exports:{}};return i[e]=o,t.call(o.exports,o,o.exports),o.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){c[e]=t},a.parcelRequirea149=s),s.register;var l={};n(l,"MacrostratColumnStateProvider",()=>p),n(l,"MacrostratColumnDataProvider",()=>f),n(l,"UnitSelectionProvider",()=>U),n(l,"useMacrostratColumnData",()=>S),n(l,"useMacrostratUnits",()=>$),n(l,"useColumnUnitsMap",()=>v),n(l,"useCompositeScale",()=>x);var u=s("bBAza"),d=s("5SO8b"),m=s("gjmI8");function p({children:t,units:o,allowUnitSelection:n=!1,onUnitSelected:a,selectedUnit:i}){let c=e(()=>!!n||null!=i||null!=a,[]),s=[[m.columnUnitsAtom,o],[d.allowUnitSelectionAtom,c],[d.selectedUnitIDAtom,i]],l=null;return c&&(l=r(d.UnitSelectionCallbackManager,{onUnitSelected:a})),r(m.ScopedProvider,{atoms:s},[l,t])}let b=t(null);function f({children:t,units:o,sections:n,totalHeight:a,axisType:i,allowUnitSelection:c,onUnitSelected:s,selectedUnit:l}){let u=e(()=>({units:o,sections:n,totalHeight:a,axisType:i}),[o,n,a,i]);return r(p,{units:o,allowUnitSelection:c,onUnitSelected:s,selectedUnit:l},r(b.Provider,{value:u},t))}function U(e){return r(p,{...e,allowUnitSelection:!0})}function S(){let e=o(b);if(!e)throw Error("useMacrostratColumnData must be used within a MacrostratColumnDataProvider");return e}function $(){return m.scope.useAtomValue(m.columnUnitsAtom)}function v(){try{return m.scope.useAtomValue(m.columnUnitsMapAtom)}catch{return null}}function x(){let t=S();return e(()=>(0,u.createCompositeScale)(t.sections,!0),[t.sections])}export{p as MacrostratColumnStateProvider,f as MacrostratColumnDataProvider,U as UnitSelectionProvider,S as useMacrostratColumnData,$ as useMacrostratUnits,v as useColumnUnitsMap,x as useCompositeScale};
2
+ //# sourceMappingURL=column-views.5c02450b.js.map
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,W,C,C,iB,C,C,c,C,K,O,A,Q,M,mB,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,gC,I,G,E,E,+B,I,G,E,E,wB,I,G,E,E,0B,I,G,E,E,qB,I,G,E,E,oB,I,G,E,E,oB,I,G,I,E,E,S,E,E,S,E,E,SCgCO,SAAS,EAAkD,CAAA,SAChE,CAAQ,CAAA,MACR,CAAK,CAAA,mBACL,EAAqB,CAAA,CAAA,CAAA,eACrB,CAAc,CAAA,aACd,CAAY,CACgB,EAS5B,IAAM,EAAkB,AAAA,EAAQ,IAC9B,EAAI,GAGG,AAAgB,MAAhB,GAAwB,AAAkB,MAAlB,EAC9B,EAAE,EAEC,EAAmB,CACvB,CAAC,EAAA,eAAc,CAAG,EAAM,CACxB,CAAC,EAAA,sBAAqB,CAAG,EAAgB,CACzC,CAAC,EAAA,kBAAiB,CAAG,EAAa,CACnC,CAEG,EAA+B,KAKnC,OAJI,GACF,CAAA,EAAoB,AAAA,EAAE,EAAA,4BAA2B,CAAG,CAAE,eAAA,CAAe,EAAA,EAGhE,AAAA,EACL,EAAA,cAAa,CACb,CACE,MAAO,CACT,EACA,CAAC,EAAmB,EAAS,CAEjC,CAeA,IAAM,EACJ,AAAA,EAAgD,MAE3C,SAAS,EAAiD,CAAA,SAC/D,CAAQ,CAAA,MACR,CAAK,CAAA,SACL,CAAQ,CAAA,YACR,CAAW,CAAA,SACX,CAAQ,CAAA,mBACR,CAAkB,CAAA,eAClB,CAAc,CAAA,aACd,CAAY,CACe,EAY3B,IAAM,EAAQ,AAAA,EAAQ,IAEb,CAAA,CACL,MAAA,EACA,SAAA,EACA,YAAA,EACA,SAAA,CACF,CAAA,EACC,CAAC,EAAO,EAAU,EAAa,EAAS,EAE3C,OAAO,AAAA,EACL,EACA,CACE,MAAA,EACA,mBAAA,EACA,eAAA,EACA,aAAA,CACF,EACA,AAAA,EAAE,EAA4B,QAAQ,CAAE,CAAE,MAAA,CAAM,EAAG,GAEvD,CAEO,SAAS,EAAsB,CAAoC,EAIxE,OAAO,AAAA,EAAE,EAA+B,CACtC,GAAG,CAAK,CACR,mBAAoB,CAAA,CACtB,EACF,CAEO,SAAS,IACd,IAAM,EAAM,AAAA,EAAW,GACvB,GAAI,CAAC,EACH,MAAM,AAAI,MACR,8EAGJ,OAAO,CACT,CAEO,SAAS,IACd,OAAO,AAAA,EAAA,KAAI,CAAE,YAAY,CAAC,EAAA,eAAc,CAC1C,CAEO,SAAS,IACd,GAAI,CACF,OAAO,AAAA,EAAA,KAAI,CAAE,YAAY,CAAC,EAAA,kBAAiB,CAC7C,CAAE,KAAM,CACN,OAAO,IACT,CACF,CAEO,SAAS,IACd,IAAM,EAAM,IACZ,OAAO,AAAA,EACL,IAAM,AAAA,CAAA,EAAA,EAAA,oBAAmB,AAAnB,EAAqB,EAAI,QAAQ,CAAE,CAAA,GACzC,CAAC,EAAI,QAAQ,CAAC,CAElB,Q,K,6B,C,K,4B,C,K,qB,C,K,uB,C,K,kB,C,K,iB,C,K,iB","sources":["<anon>","packages/column-views/src/data-provider/store.ts"],"sourcesContent":["import \"./column-views.a596b1f5.js\";\nimport \"./column-views.861b8e3e.js\";\nimport \"./column-views.a0969fc8.js\";\nimport {useMemo as $eJc70$useMemo, createContext as $eJc70$createContext, useContext as $eJc70$useContext} from \"react\";\nimport $eJc70$macrostrathyper from \"@macrostrat/hyper\";\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 $91525b65c57a1e5d$exports = {};\n\n$parcel$export($91525b65c57a1e5d$exports, \"MacrostratColumnStateProvider\", () => $91525b65c57a1e5d$export$ef5395089200109b);\n$parcel$export($91525b65c57a1e5d$exports, \"MacrostratColumnDataProvider\", () => $91525b65c57a1e5d$export$7fec7bd80ff9c10e);\n$parcel$export($91525b65c57a1e5d$exports, \"UnitSelectionProvider\", () => $91525b65c57a1e5d$export$f19d75b1d4b676a4);\n$parcel$export($91525b65c57a1e5d$exports, \"useMacrostratColumnData\", () => $91525b65c57a1e5d$export$f8509b7cce386c7d);\n$parcel$export($91525b65c57a1e5d$exports, \"useMacrostratUnits\", () => $91525b65c57a1e5d$export$6fb40844db555b2);\n$parcel$export($91525b65c57a1e5d$exports, \"useColumnUnitsMap\", () => $91525b65c57a1e5d$export$7513be0cfd10d9cc);\n$parcel$export($91525b65c57a1e5d$exports, \"useCompositeScale\", () => $91525b65c57a1e5d$export$a7fc62995ec4f76);\n\n\n\nvar $bBAza = parcelRequire(\"bBAza\");\n\nvar $5SO8b = parcelRequire(\"5SO8b\");\n\nvar $gjmI8 = parcelRequire(\"gjmI8\");\nfunction $91525b65c57a1e5d$export$ef5395089200109b({ children: children, units: units, allowUnitSelection: allowUnitSelection = false, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit }) {\n /** Top-level provider for Macrostrat column data.\n * It is either provided by the Column component itself, or\n * can be hoisted higher in the tree to provide a common data context\n */ /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */ const _allowSelection = (0, $eJc70$useMemo)(()=>{\n if (allowUnitSelection) return true;\n return selectedUnit != null || onUnitSelected != null;\n }, []);\n const atomMap = [\n [\n (0, $gjmI8.columnUnitsAtom),\n units\n ],\n [\n (0, $5SO8b.allowUnitSelectionAtom),\n _allowSelection\n ],\n [\n (0, $5SO8b.selectedUnitIDAtom),\n selectedUnit\n ]\n ];\n let selectionHandlers = null;\n if (_allowSelection) selectionHandlers = (0, $eJc70$macrostrathyper)((0, $5SO8b.UnitSelectionCallbackManager), {\n onUnitSelected: onUnitSelected\n });\n return (0, $eJc70$macrostrathyper)((0, $gjmI8.ScopedProvider), {\n atoms: atomMap\n }, [\n selectionHandlers,\n children\n ]);\n}\nconst $91525b65c57a1e5d$var$MacrostratColumnDataContext = (0, $eJc70$createContext)(null);\nfunction $91525b65c57a1e5d$export$7fec7bd80ff9c10e({ children: children, units: units, sections: sections, totalHeight: totalHeight, axisType: axisType, allowUnitSelection: allowUnitSelection, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit }) {\n /** Internal provider for Macrostrat column data.\n * As a general rule, we want to provide data and column-axis\n * height calculations through the context, since these need to\n * be accessed by any component that lays out information on the\n * column.\n *\n * Cross-axis layout and view configuration (e.g., showing and hiding\n * of different components or labels) should be handled through passing\n * props to the components themselves.\n * */ const value = (0, $eJc70$useMemo)(()=>{\n // For now, change ordinal axis types to age axis types\n return {\n units: units,\n sections: sections,\n totalHeight: totalHeight,\n axisType: axisType\n };\n }, [\n units,\n sections,\n totalHeight,\n axisType\n ]);\n return (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$export$ef5395089200109b, {\n units: units,\n allowUnitSelection: allowUnitSelection,\n onUnitSelected: onUnitSelected,\n selectedUnit: selectedUnit\n }, (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$var$MacrostratColumnDataContext.Provider, {\n value: value\n }, children));\n}\nfunction $91525b65c57a1e5d$export$f19d75b1d4b676a4(props) {\n /* A basic unit selection provider without column data context.\n Mostly for use with the CorrelationChart component.\n */ return (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$export$ef5395089200109b, {\n ...props,\n allowUnitSelection: true\n });\n}\nfunction $91525b65c57a1e5d$export$f8509b7cce386c7d() {\n const ctx = (0, $eJc70$useContext)($91525b65c57a1e5d$var$MacrostratColumnDataContext);\n if (!ctx) throw new Error(\"useMacrostratColumnData must be used within a MacrostratColumnDataProvider\");\n return ctx;\n}\nfunction $91525b65c57a1e5d$export$6fb40844db555b2() {\n return (0, $gjmI8.scope).useAtomValue((0, $gjmI8.columnUnitsAtom));\n}\nfunction $91525b65c57a1e5d$export$7513be0cfd10d9cc() {\n try {\n return (0, $gjmI8.scope).useAtomValue((0, $gjmI8.columnUnitsMapAtom));\n } catch {\n return null;\n }\n}\nfunction $91525b65c57a1e5d$export$a7fc62995ec4f76() {\n const ctx = $91525b65c57a1e5d$export$f8509b7cce386c7d();\n return (0, $eJc70$useMemo)(()=>(0, $bBAza.createCompositeScale)(ctx.sections, true), [\n ctx.sections\n ]);\n}\n\n\nexport {$91525b65c57a1e5d$export$ef5395089200109b as MacrostratColumnStateProvider, $91525b65c57a1e5d$export$7fec7bd80ff9c10e as MacrostratColumnDataProvider, $91525b65c57a1e5d$export$f19d75b1d4b676a4 as UnitSelectionProvider, $91525b65c57a1e5d$export$f8509b7cce386c7d as useMacrostratColumnData, $91525b65c57a1e5d$export$6fb40844db555b2 as useMacrostratUnits, $91525b65c57a1e5d$export$7513be0cfd10d9cc as useColumnUnitsMap, $91525b65c57a1e5d$export$a7fc62995ec4f76 as useCompositeScale};\n//# sourceMappingURL=column-views.0980c2a0.js.map\n","import { createContext, ReactNode, useContext, useMemo } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n CompositeColumnScale,\n createCompositeScale,\n} from \"../prepare-units/composite-scale\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport type { ExtUnit, PackageLayoutData } from \"../prepare-units\";\nimport {\n allowUnitSelectionAtom,\n selectedUnitIDAtom,\n UnitSelectionCallbacks,\n UnitSelectionCallbackManager,\n} from \"./unit-selection\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\nimport {\n AtomMap,\n columnUnitsAtom,\n columnUnitsMapAtom,\n scope,\n ScopedProvider,\n} from \"./core\";\n\nexport interface ColumnStateProviderProps<\n T extends BaseUnit,\n> extends Partial<UnitSelectionCallbacks> {\n children: ReactNode;\n units: T[];\n selectedUnit: number | null;\n allowUnitSelection?: boolean;\n}\n\nexport function MacrostratColumnStateProvider<T extends BaseUnit>({\n children,\n units,\n allowUnitSelection = false,\n onUnitSelected,\n selectedUnit,\n}: ColumnStateProviderProps<T>) {\n /** Top-level provider for Macrostrat column data.\n * It is either provided by the Column component itself, or\n * can be hoisted higher in the tree to provide a common data context\n */\n\n /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */\n const _allowSelection = useMemo(() => {\n if (allowUnitSelection) {\n return true;\n }\n return selectedUnit != null || onUnitSelected != null;\n }, []);\n\n const atomMap: AtomMap = [\n [columnUnitsAtom, units],\n [allowUnitSelectionAtom, _allowSelection],\n [selectedUnitIDAtom, selectedUnit],\n ];\n\n let selectionHandlers: ReactNode = null;\n if (_allowSelection) {\n selectionHandlers = h(UnitSelectionCallbackManager, { onUnitSelected });\n }\n\n return h(\n ScopedProvider,\n {\n atoms: atomMap,\n },\n [selectionHandlers, children],\n );\n}\n\nexport interface MacrostratColumnDataContext<T extends BaseUnit> {\n units: T[];\n sections: PackageLayoutData[];\n totalHeight?: number;\n axisType?: ColumnAxisType;\n allowUnitSelection?: boolean;\n}\n\nexport interface ColumnDataProviderProps<T extends BaseUnit>\n extends MacrostratColumnDataContext<T>, ColumnStateProviderProps<T> {\n children: ReactNode;\n}\n\nconst MacrostratColumnDataContext =\n createContext<MacrostratColumnDataContext<any>>(null);\n\nexport function MacrostratColumnDataProvider<T extends BaseUnit>({\n children,\n units,\n sections,\n totalHeight,\n axisType,\n allowUnitSelection,\n onUnitSelected,\n selectedUnit,\n}: ColumnDataProviderProps<T>) {\n /** Internal provider for Macrostrat column data.\n * As a general rule, we want to provide data and column-axis\n * height calculations through the context, since these need to\n * be accessed by any component that lays out information on the\n * column.\n *\n * Cross-axis layout and view configuration (e.g., showing and hiding\n * of different components or labels) should be handled through passing\n * props to the components themselves.\n * */\n\n const value = useMemo(() => {\n // For now, change ordinal axis types to age axis types\n return {\n units,\n sections,\n totalHeight,\n axisType,\n };\n }, [units, sections, totalHeight, axisType]);\n\n return h(\n MacrostratColumnStateProvider,\n {\n units,\n allowUnitSelection,\n onUnitSelected,\n selectedUnit,\n },\n h(MacrostratColumnDataContext.Provider, { value }, children),\n );\n}\n\nexport function UnitSelectionProvider(props: ColumnStateProviderProps<any>) {\n /* A basic unit selection provider without column data context.\n Mostly for use with the CorrelationChart component.\n */\n return h(MacrostratColumnStateProvider, {\n ...props,\n allowUnitSelection: true,\n });\n}\n\nexport function useMacrostratColumnData() {\n const ctx = useContext(MacrostratColumnDataContext);\n if (!ctx) {\n throw new Error(\n \"useMacrostratColumnData must be used within a MacrostratColumnDataProvider\",\n );\n }\n return ctx;\n}\n\nexport function useMacrostratUnits() {\n return scope.useAtomValue(columnUnitsAtom);\n}\n\nexport function useColumnUnitsMap(): Map<number, ExtUnit> | null {\n try {\n return scope.useAtomValue(columnUnitsMapAtom) as Map<number, ExtUnit>;\n } catch {\n return null;\n }\n}\n\nexport function useCompositeScale(): CompositeColumnScale {\n const ctx = useMacrostratColumnData();\n return useMemo(\n () => createCompositeScale(ctx.sections, true),\n [ctx.sections],\n );\n}\n"],"names":["useMemo","$eJc70$useMemo","createContext","$eJc70$createContext","useContext","$eJc70$useContext","$eJc70$macrostrathyper","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$91525b65c57a1e5d$exports","$91525b65c57a1e5d$export$ef5395089200109b","$91525b65c57a1e5d$export$7fec7bd80ff9c10e","$91525b65c57a1e5d$export$f19d75b1d4b676a4","$91525b65c57a1e5d$export$f8509b7cce386c7d","$91525b65c57a1e5d$export$6fb40844db555b2","$91525b65c57a1e5d$export$7513be0cfd10d9cc","$91525b65c57a1e5d$export$a7fc62995ec4f76","$bBAza","$5SO8b","$gjmI8","children","units","allowUnitSelection","onUnitSelected","selectedUnit","_allowSelection","atomMap","columnUnitsAtom","allowUnitSelectionAtom","selectedUnitIDAtom","selectionHandlers","UnitSelectionCallbackManager","ScopedProvider","atoms","$91525b65c57a1e5d$var$MacrostratColumnDataContext","sections","totalHeight","axisType","value","Provider","props","ctx","scope","useAtomValue","columnUnitsMapAtom","createCompositeScale","MacrostratColumnStateProvider","MacrostratColumnDataProvider","UnitSelectionProvider","useMacrostratColumnData","useMacrostratUnits","useColumnUnitsMap","useCompositeScale"],"version":3,"file":"column-views.0980c2a0.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,W,C,C,iB,C,C,c,C,K,O,A,Q,M,mB,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,gC,I,G,E,E,+B,I,G,E,E,wB,I,G,E,E,0B,I,G,E,E,qB,I,G,E,E,oB,I,G,E,E,oB,I,G,I,E,E,S,E,E,S,E,E,SCgCO,SAAS,EAAkD,CAAA,SAChE,CAAQ,CAAA,MACR,CAAK,CAAA,mBACL,EAAqB,CAAA,CAAA,CAAA,eACrB,CAAc,CAAA,aACd,CAAY,CACgB,EAS5B,IAAM,EAAkB,AAAA,EAAQ,IAC9B,EAAI,GAGG,AAAgB,MAAhB,GAAwB,AAAkB,MAAlB,EAC9B,EAAE,EAEC,EAAmB,CACvB,CAAC,EAAA,eAAc,CAAG,EAAM,CACxB,CAAC,EAAA,sBAAqB,CAAG,EAAgB,CACzC,CAAC,EAAA,kBAAiB,CAAG,EAAa,CACnC,CAEG,EAA+B,KAKnC,OAJI,GACF,CAAA,EAAoB,AAAA,EAAE,EAAA,4BAA2B,CAAG,CAAE,eAAA,CAAe,EAAA,EAGhE,AAAA,EACL,EAAA,cAAa,CACb,CACE,MAAO,CACT,EACA,CAAC,EAAmB,EAAS,CAEjC,CAeA,IAAM,EACJ,AAAA,EAAgD,MAE3C,SAAS,EAAiD,CAAA,SAC/D,CAAQ,CAAA,MACR,CAAK,CAAA,SACL,CAAQ,CAAA,YACR,CAAW,CAAA,SACX,CAAQ,CAAA,mBACR,CAAkB,CAAA,eAClB,CAAc,CAAA,aACd,CAAY,CACe,EAY3B,IAAM,EAAQ,AAAA,EAAQ,IAEb,CAAA,CACL,MAAA,EACA,SAAA,EACA,YAAA,EACA,SAAA,CACF,CAAA,EACC,CAAC,EAAO,EAAU,EAAa,EAAS,EAE3C,OAAO,AAAA,EACL,EACA,CACE,MAAA,EACA,mBAAA,EACA,eAAA,EACA,aAAA,CACF,EACA,AAAA,EAAE,EAA4B,QAAQ,CAAE,CAAE,MAAA,CAAM,EAAG,GAEvD,CAEO,SAAS,EAAsB,CAAoC,EAIxE,OAAO,AAAA,EAAE,EAA+B,CACtC,GAAG,CAAK,CACR,mBAAoB,CAAA,CACtB,EACF,CAEO,SAAS,IACd,IAAM,EAAM,AAAA,EAAW,GACvB,GAAI,CAAC,EACH,MAAM,AAAI,MACR,8EAGJ,OAAO,CACT,CAEO,SAAS,IACd,OAAO,AAAA,EAAA,KAAI,CAAE,YAAY,CAAC,EAAA,eAAc,CAC1C,CAEO,SAAS,IACd,GAAI,CACF,OAAO,AAAA,EAAA,KAAI,CAAE,YAAY,CAAC,EAAA,kBAAiB,CAC7C,CAAE,KAAM,CACN,OAAO,IACT,CACF,CAEO,SAAS,IACd,IAAM,EAAM,IACZ,OAAO,AAAA,EACL,IAAM,AAAA,CAAA,EAAA,EAAA,oBAAmB,AAAnB,EAAqB,EAAI,QAAQ,CAAE,CAAA,GACzC,CAAC,EAAI,QAAQ,CAAC,CAElB,Q,K,6B,C,K,4B,C,K,qB,C,K,uB,C,K,kB,C,K,iB,C,K,iB","sources":["<anon>","packages/column-views/src/data-provider/store.ts"],"sourcesContent":["import \"./column-views.a596b1f5.js\";\nimport \"./column-views.7b6e7d82.js\";\nimport \"./column-views.a0969fc8.js\";\nimport {useMemo as $eJc70$useMemo, createContext as $eJc70$createContext, useContext as $eJc70$useContext} from \"react\";\nimport $eJc70$macrostrathyper from \"@macrostrat/hyper\";\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 $91525b65c57a1e5d$exports = {};\n\n$parcel$export($91525b65c57a1e5d$exports, \"MacrostratColumnStateProvider\", () => $91525b65c57a1e5d$export$ef5395089200109b);\n$parcel$export($91525b65c57a1e5d$exports, \"MacrostratColumnDataProvider\", () => $91525b65c57a1e5d$export$7fec7bd80ff9c10e);\n$parcel$export($91525b65c57a1e5d$exports, \"UnitSelectionProvider\", () => $91525b65c57a1e5d$export$f19d75b1d4b676a4);\n$parcel$export($91525b65c57a1e5d$exports, \"useMacrostratColumnData\", () => $91525b65c57a1e5d$export$f8509b7cce386c7d);\n$parcel$export($91525b65c57a1e5d$exports, \"useMacrostratUnits\", () => $91525b65c57a1e5d$export$6fb40844db555b2);\n$parcel$export($91525b65c57a1e5d$exports, \"useColumnUnitsMap\", () => $91525b65c57a1e5d$export$7513be0cfd10d9cc);\n$parcel$export($91525b65c57a1e5d$exports, \"useCompositeScale\", () => $91525b65c57a1e5d$export$a7fc62995ec4f76);\n\n\n\nvar $bBAza = parcelRequire(\"bBAza\");\n\nvar $5SO8b = parcelRequire(\"5SO8b\");\n\nvar $gjmI8 = parcelRequire(\"gjmI8\");\nfunction $91525b65c57a1e5d$export$ef5395089200109b({ children: children, units: units, allowUnitSelection: allowUnitSelection = false, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit }) {\n /** Top-level provider for Macrostrat column data.\n * It is either provided by the Column component itself, or\n * can be hoisted higher in the tree to provide a common data context\n */ /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */ const _allowSelection = (0, $eJc70$useMemo)(()=>{\n if (allowUnitSelection) return true;\n return selectedUnit != null || onUnitSelected != null;\n }, []);\n const atomMap = [\n [\n (0, $gjmI8.columnUnitsAtom),\n units\n ],\n [\n (0, $5SO8b.allowUnitSelectionAtom),\n _allowSelection\n ],\n [\n (0, $5SO8b.selectedUnitIDAtom),\n selectedUnit\n ]\n ];\n let selectionHandlers = null;\n if (_allowSelection) selectionHandlers = (0, $eJc70$macrostrathyper)((0, $5SO8b.UnitSelectionCallbackManager), {\n onUnitSelected: onUnitSelected\n });\n return (0, $eJc70$macrostrathyper)((0, $gjmI8.ScopedProvider), {\n atoms: atomMap\n }, [\n selectionHandlers,\n children\n ]);\n}\nconst $91525b65c57a1e5d$var$MacrostratColumnDataContext = (0, $eJc70$createContext)(null);\nfunction $91525b65c57a1e5d$export$7fec7bd80ff9c10e({ children: children, units: units, sections: sections, totalHeight: totalHeight, axisType: axisType, allowUnitSelection: allowUnitSelection, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit }) {\n /** Internal provider for Macrostrat column data.\n * As a general rule, we want to provide data and column-axis\n * height calculations through the context, since these need to\n * be accessed by any component that lays out information on the\n * column.\n *\n * Cross-axis layout and view configuration (e.g., showing and hiding\n * of different components or labels) should be handled through passing\n * props to the components themselves.\n * */ const value = (0, $eJc70$useMemo)(()=>{\n // For now, change ordinal axis types to age axis types\n return {\n units: units,\n sections: sections,\n totalHeight: totalHeight,\n axisType: axisType\n };\n }, [\n units,\n sections,\n totalHeight,\n axisType\n ]);\n return (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$export$ef5395089200109b, {\n units: units,\n allowUnitSelection: allowUnitSelection,\n onUnitSelected: onUnitSelected,\n selectedUnit: selectedUnit\n }, (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$var$MacrostratColumnDataContext.Provider, {\n value: value\n }, children));\n}\nfunction $91525b65c57a1e5d$export$f19d75b1d4b676a4(props) {\n /* A basic unit selection provider without column data context.\n Mostly for use with the CorrelationChart component.\n */ return (0, $eJc70$macrostrathyper)($91525b65c57a1e5d$export$ef5395089200109b, {\n ...props,\n allowUnitSelection: true\n });\n}\nfunction $91525b65c57a1e5d$export$f8509b7cce386c7d() {\n const ctx = (0, $eJc70$useContext)($91525b65c57a1e5d$var$MacrostratColumnDataContext);\n if (!ctx) throw new Error(\"useMacrostratColumnData must be used within a MacrostratColumnDataProvider\");\n return ctx;\n}\nfunction $91525b65c57a1e5d$export$6fb40844db555b2() {\n return (0, $gjmI8.scope).useAtomValue((0, $gjmI8.columnUnitsAtom));\n}\nfunction $91525b65c57a1e5d$export$7513be0cfd10d9cc() {\n try {\n return (0, $gjmI8.scope).useAtomValue((0, $gjmI8.columnUnitsMapAtom));\n } catch {\n return null;\n }\n}\nfunction $91525b65c57a1e5d$export$a7fc62995ec4f76() {\n const ctx = $91525b65c57a1e5d$export$f8509b7cce386c7d();\n return (0, $eJc70$useMemo)(()=>(0, $bBAza.createCompositeScale)(ctx.sections, true), [\n ctx.sections\n ]);\n}\n\n\nexport {$91525b65c57a1e5d$export$ef5395089200109b as MacrostratColumnStateProvider, $91525b65c57a1e5d$export$7fec7bd80ff9c10e as MacrostratColumnDataProvider, $91525b65c57a1e5d$export$f19d75b1d4b676a4 as UnitSelectionProvider, $91525b65c57a1e5d$export$f8509b7cce386c7d as useMacrostratColumnData, $91525b65c57a1e5d$export$6fb40844db555b2 as useMacrostratUnits, $91525b65c57a1e5d$export$7513be0cfd10d9cc as useColumnUnitsMap, $91525b65c57a1e5d$export$a7fc62995ec4f76 as useCompositeScale};\n//# sourceMappingURL=column-views.5c02450b.js.map\n","import { createContext, ReactNode, useContext, useMemo } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport {\n CompositeColumnScale,\n createCompositeScale,\n} from \"../prepare-units/composite-scale\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport type { ExtUnit, PackageLayoutData } from \"../prepare-units\";\nimport {\n allowUnitSelectionAtom,\n selectedUnitIDAtom,\n UnitSelectionCallbacks,\n UnitSelectionCallbackManager,\n} from \"./unit-selection\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\nimport {\n AtomMap,\n columnUnitsAtom,\n columnUnitsMapAtom,\n scope,\n ScopedProvider,\n} from \"./core\";\n\nexport interface ColumnStateProviderProps<\n T extends BaseUnit,\n> extends Partial<UnitSelectionCallbacks> {\n children: ReactNode;\n units: T[];\n selectedUnit: number | null;\n allowUnitSelection?: boolean;\n}\n\nexport function MacrostratColumnStateProvider<T extends BaseUnit>({\n children,\n units,\n allowUnitSelection = false,\n onUnitSelected,\n selectedUnit,\n}: ColumnStateProviderProps<T>) {\n /** Top-level provider for Macrostrat column data.\n * It is either provided by the Column component itself, or\n * can be hoisted higher in the tree to provide a common data context\n */\n\n /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */\n const _allowSelection = useMemo(() => {\n if (allowUnitSelection) {\n return true;\n }\n return selectedUnit != null || onUnitSelected != null;\n }, []);\n\n const atomMap: AtomMap = [\n [columnUnitsAtom, units],\n [allowUnitSelectionAtom, _allowSelection],\n [selectedUnitIDAtom, selectedUnit],\n ];\n\n let selectionHandlers: ReactNode = null;\n if (_allowSelection) {\n selectionHandlers = h(UnitSelectionCallbackManager, { onUnitSelected });\n }\n\n return h(\n ScopedProvider,\n {\n atoms: atomMap,\n },\n [selectionHandlers, children],\n );\n}\n\nexport interface MacrostratColumnDataContext<T extends BaseUnit> {\n units: T[];\n sections: PackageLayoutData[];\n totalHeight?: number;\n axisType?: ColumnAxisType;\n allowUnitSelection?: boolean;\n}\n\nexport interface ColumnDataProviderProps<T extends BaseUnit>\n extends MacrostratColumnDataContext<T>, ColumnStateProviderProps<T> {\n children: ReactNode;\n}\n\nconst MacrostratColumnDataContext =\n createContext<MacrostratColumnDataContext<any>>(null);\n\nexport function MacrostratColumnDataProvider<T extends BaseUnit>({\n children,\n units,\n sections,\n totalHeight,\n axisType,\n allowUnitSelection,\n onUnitSelected,\n selectedUnit,\n}: ColumnDataProviderProps<T>) {\n /** Internal provider for Macrostrat column data.\n * As a general rule, we want to provide data and column-axis\n * height calculations through the context, since these need to\n * be accessed by any component that lays out information on the\n * column.\n *\n * Cross-axis layout and view configuration (e.g., showing and hiding\n * of different components or labels) should be handled through passing\n * props to the components themselves.\n * */\n\n const value = useMemo(() => {\n // For now, change ordinal axis types to age axis types\n return {\n units,\n sections,\n totalHeight,\n axisType,\n };\n }, [units, sections, totalHeight, axisType]);\n\n return h(\n MacrostratColumnStateProvider,\n {\n units,\n allowUnitSelection,\n onUnitSelected,\n selectedUnit,\n },\n h(MacrostratColumnDataContext.Provider, { value }, children),\n );\n}\n\nexport function UnitSelectionProvider(props: ColumnStateProviderProps<any>) {\n /* A basic unit selection provider without column data context.\n Mostly for use with the CorrelationChart component.\n */\n return h(MacrostratColumnStateProvider, {\n ...props,\n allowUnitSelection: true,\n });\n}\n\nexport function useMacrostratColumnData() {\n const ctx = useContext(MacrostratColumnDataContext);\n if (!ctx) {\n throw new Error(\n \"useMacrostratColumnData must be used within a MacrostratColumnDataProvider\",\n );\n }\n return ctx;\n}\n\nexport function useMacrostratUnits() {\n return scope.useAtomValue(columnUnitsAtom);\n}\n\nexport function useColumnUnitsMap(): Map<number, ExtUnit> | null {\n try {\n return scope.useAtomValue(columnUnitsMapAtom) as Map<number, ExtUnit>;\n } catch {\n return null;\n }\n}\n\nexport function useCompositeScale(): CompositeColumnScale {\n const ctx = useMacrostratColumnData();\n return useMemo(\n () => createCompositeScale(ctx.sections, true),\n [ctx.sections],\n );\n}\n"],"names":["useMemo","$eJc70$useMemo","createContext","$eJc70$createContext","useContext","$eJc70$useContext","$eJc70$macrostrathyper","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$91525b65c57a1e5d$exports","$91525b65c57a1e5d$export$ef5395089200109b","$91525b65c57a1e5d$export$7fec7bd80ff9c10e","$91525b65c57a1e5d$export$f19d75b1d4b676a4","$91525b65c57a1e5d$export$f8509b7cce386c7d","$91525b65c57a1e5d$export$6fb40844db555b2","$91525b65c57a1e5d$export$7513be0cfd10d9cc","$91525b65c57a1e5d$export$a7fc62995ec4f76","$bBAza","$5SO8b","$gjmI8","children","units","allowUnitSelection","onUnitSelected","selectedUnit","_allowSelection","atomMap","columnUnitsAtom","allowUnitSelectionAtom","selectedUnitIDAtom","selectionHandlers","UnitSelectionCallbackManager","ScopedProvider","atoms","$91525b65c57a1e5d$var$MacrostratColumnDataContext","sections","totalHeight","axisType","value","Provider","props","ctx","scope","useAtomValue","columnUnitsMapAtom","createCompositeScale","MacrostratColumnStateProvider","MacrostratColumnDataProvider","UnitSelectionProvider","useMacrostratColumnData","useMacrostratUnits","useColumnUnitsMap","useCompositeScale"],"version":3,"file":"column-views.5c02450b.js.map","sourceRoot":"../../../../"}
@@ -0,0 +1,2 @@
1
+ import"./column-views.e2562224.js";import"./column-views.5c02450b.js";import"./column-views.080781ca.js";import"./column-views.bdf05ed4.js";import e from"@macrostrat/hyper";import{JSONView as t}from"@macrostrat/ui-components";import{Button as n,ButtonGroup as a}from"@blueprintjs/core";import{useState as i,useMemo as l}from"react";import{LithologyTagFeature as o,DataField as r,Parenthetical as s,Value as u,LithologyList as c,EnvironmentsList as m,ItemList as d,IntervalTag as f}from"@macrostrat/data-components";import p from"classnames";function g(e,t,n,a){Object.defineProperty(e,t,{get:n,set:a,enumerable:!0,configurable:!0})}var _,h=globalThis,b={},v={},k=h.parcelRequirea149;null==k&&((k=function(e){if(e in b)return b[e].exports;if(e in v){var t=v[e];delete v[e];var n={id:e,exports:{}};return b[e]=n,t.call(n.exports,n,n.exports),n.exports}var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){v[e]=t},h.parcelRequirea149=k),k.register;var C={};g(C,"UnitDetailsPanel",()=>$),g(C,"LegendPanelHeader",()=>S),g(C,"UnitDetailsFeature",()=>I),g(C,"Duration",()=>T),g(C,"ReferencesField",()=>j),g(C,"Identifier",()=>O),g(C,"AgeLabel",()=>R),g(C,"ClickableText",()=>P);var D=k("lMX1H"),N=k("wtIgl"),x=k("lgTAP"),F=k("jiUaC");let y=e.styled(D&&D.__esModule?D.default:D);function $({unit:e,onClose:a,className:l,features:o=new Set(["adjacent-units","outcrop-type","json-toggle","depth-range"]),lithologyFeatures:r,actions:s,hiddenActions:u=null,onSelectUnit:c,onClickItem:m}){let[d,f]=i(!1),g=null;g=d?y(t,{data:e,showRoot:!1}):y(w,{unit:e,features:o,lithologyFeatures:r,onClickItem:m,onSelectUnit:c});let _=(0,F.defaultNameFunction)(e);return o.has("json-toggle")&&(u=y([y(n,{icon:"code",small:!0,minimal:!0,key:"json-view-toggle",className:p("json-view-toggle",{enabled:f}),onClick(e){f(!d),e.stopPropagation()}}),u])),y("div.unit-details-panel",{className:l},[y(S,{onClose:a,title:_,id:e.unit_id,actions:s,hiddenActions:u}),y("div.unit-details-content-holder",g)])}function S({title:e,id:t,onClose:i,actions:l=null,hiddenActions:o}){return y("header.legend-panel-header",[y("div.title-container",[y.if(null!=e)("h3",e),y.if(null!=o)("span.hidden-actions-container",y("div.hidden-actions",o))]),y("div.spacer"),y.if(null!=t)("code.unit-id",t),y.if(null!=l)(a,{minimal:!0},l),y.if(null!=i)(n,{icon:"cross",minimal:!0,small:!0,onClick(){i()}})])}var I=((_={}).AdjacentUnits="adjacent-units",_.Color="color",_.OutcropType="outcrop-type",_.JSONToggle="json-toggle",_.DepthRange="depth-range",_.ColumnName="column-name",_);function w({unit:e,onSelectUnit:t,lithologyFeatures:n=new Set([o.Proportion,o.Attributes]),features:a=new Set(["adjacent-units","outcrop-type"]),onClickItem:i,getItemHref:l}){var d,f,p,g,_;let h,b,v,k=(0,x.useMacrostratDefs)("lithologies"),C=(0,x.useMacrostratDefs)("environments"),D=(d=e.environ,f=C,d.map(e=>({...f?.get(e.environ_id)??{},...e}))),N=(p=e.lith??[],g=k,p.map(e=>({...g?.get(e.lith_id)??{},...e}))),F=null;if(a.has("outcrop-type")){let t=e.outcrop;"both"==t&&(t="surface and subsurface"),F=y(r,{label:"Outcrop",value:t})}let $=null,[S,I]=(h=(_=e).min_thick??0,b=_.max_thick??_.min_thick??0,v="m",0==h&&0==b?["Unknown",null]:(h<.8&&b<1.2?(h*=100,b*=100,v="cm"):h>800&&b>1200&&(h/=1e3,b/=1e3,v="km"),h==b)?[V(h),v]:[J(h,b),v]);a.has("depth-range")&&null!=e.t_pos&&null!=e.b_pos&&e.min_thick==e.max_thick&&0!=e.min_thick&&($=y(r,{unit:"m",label:e.t_pos<e.b_pos?"Depth":"Height",value:J(e.b_pos,e.t_pos),children:y(s,y(u,{value:S,unit:I}))})),$??($=y(r,{label:"Thickness",value:S,unit:I}));let w=null;return"color"in e&&a.has("color")&&(w=y("div.color-swatch",{style:{backgroundColor:e.color}})),y("div.unit-details-content",[y.if(a.has("column-name"))(U,{col_id:e.col_id}),$,y(c,{label:"Lithology",lithologies:N,features:n,getItemHref:l,onClickItem:i}),y(L,{unit:e},[y(s,y(T,{value:e.b_age-e.t_age})),y(B,{unit:e,onClickItem:i})]),y(m,{environments:D,onClickItem:i,getItemHref:l}),y.if(null!=e.strat_name_id)(H,{strat_name_id:e.strat_name_id}),F,y.if(a.has("adjacent-units"))([y(r,{label:"Above"},y(E,{units:e.units_above,onSelectUnit:t,showNames:!0})),y(r,{label:"Below"},y(E,{units:e.units_below,onSelectUnit:t,showNames:!0}))]),w,y(j,{refs:e.refs,inline:!0})])}function U({col_id:e,showIdentifier:t=!1}){let n=(0,x.useMacrostratColumnInfo)(e),a=y(O,{id:e}),i=n?.col_name;return null!=i&&(a=y("span.value",[y("span.col-name",i),y.if(t)([" ",y(s,a)])])),y(r,{label:"Column"},a)}function j({refs:e,className:t=null,...n}){return null==e||0===e.length?null:y(r,{label:"References",className:p("refs-field",t),...n},y(M,{refs:e}))}function H({strat_name_id:e,onClickItem:t}){let n=l(()=>[e],[e]),a=(0,x.useMacrostratData)("strat_names",n),i=a?.[0],o=y(O,{id:e}),s=i?.strat_name_long;null!=s&&(o=y("span.strat-name",s));let u=null!=t,c=p({clickable:u});return y(r,{label:"Stratigraphic name"},y(u?"a":"span",{className:c,onClick:n=>t(n,{strat_name_id:e})},o))}function M({refs:e}){let t=(0,x.useMacrostratData)("refs",e);return null==t||0===t.length?null:1==t.length?y(A,{data:t[0],tag:"span",key:t[0].ref_id}):y("ul.refs",t.map((e,t)=>y(A,{data:e,tag:"li",key:e.ref_id})))}function A({data:e,tag:t="p"}){return y(t,{className:"citation"},[y("span.authors",e.author),", ",y("span.year",e.pub_year),", ",y("span.title",e.ref)])}function L({unit:e,children:t}){var n;let a,i,l,[o,s,u]=(a=(n=e).b_age,i=n.t_age,l="Ma",a<.8&&i<1.2?(a*=1e3,i*=1e3,l="ka"):a>800&&i>1200&&(a/=1e3,i/=1e3,l="Ga"),[a,i,l]);return y(r,{label:"Age",value:J(o,s),unit:u},t)}function R({age:e,maximumFractionDigits:t=2,minimumFractionDigits:n=0,className:a}){var i;let l,[o,r]=(l="Ma",(i=e)<.8?(l="ka",(i*=1e3)<5&&(l="yr",i*=1e3)):i>1e3&&(l="Ga",i/=1e3),[i,l]);return y(u,{value:o.toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:n}),unit:r,className:a})}function T({value:e,maximumFractionDigits:t=2,minimumFractionDigits:n=0}){let a="Myr";return e<.8?(a="kyr",(e*=1e3)<5&&(a="yr",e*=1e3)):e>1e3&&(a="Gyr",e/=1e3),y(u,{value:e.toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:n}),unit:a})}function P({onClick:e,className:t,children:n}){return y(null!=e?"a":"span",{onClick:e,className:t},n)}function O({id:e,onClick:t,className:n}){return y(P,{onClick:null!=t?()=>t(e):null,className:p("identifier",n)},e)}function E({units:e,onSelectUnit:t,showNames:n=!1}){let a=(0,N.useColumnUnitsMap)(),i=l(()=>{let t=e.filter(e=>0!=e);return n?t.map(e=>{let t,n=a?.get(e);return null!=n&&(t=(0,F.defaultNameFunction)(n)),{unitID:e,colID:n?.col_id,name:t}}):t.map(e=>({unitID:e}))},[e,a]);return 0===i.length?y("span.no-units","None"):y(d,{className:"units-list"},i.map(e=>y("span.item",y(G,{...e,onSelectUnit:t}))))}function G({unitID:e,colID:t,name:n,onSelectUnit:a}){let i=l(()=>null==a?null:()=>{a(e)},[a]);return null!=n?y(P,{className:"unit-name",onClick:i},n):y(O,{className:"unit-id",onClick:i,key:e,id:e})}function B({unit:e,onClickItem:t}){let n=e.b_int_id,a=e.t_int_id,i=e.b_prop??0,l=e.t_prop??1,o=(0,x.useMacrostratDefs)("intervals"),r={...o?.get(n)??{},id:n,name:e.b_int_name},s=null,u=o?.get(a)??{},c=y(q,{value:l});(n!==a||0!==i||1!==l)&&(s=y(q,{value:i})),n===a&&(0!==i||1!==l)&&(s=y("span.joint-proportion",[s,y("span.sep","to"),c]));let m=null!=t,d=e=>{t&&t(e,r)};return y("div.interval-proportions",[y(f,{className:m?"clickable":"",onClick:m?d:void 0,interval:r,prefix:s}),y.if(n!=a)("span.discourage-break",[y("span.sep","to"),y(f,{className:m?"clickable":"",onClick:m?d:void 0,interval:{...u,id:a,name:e.t_int_name},prefix:c})])])}function q({value:e}){let t=null;if(0==e)t="base";else if(1==e)t="top";else t=(100*e).toFixed(1)+"%";return y("span.proportion",t)}function J(e,t,n=null){return null==e||null==t?null:e===t?e.toFixed(n):`${V(e,n)}\u{2013}${V(t,n)}`}function V(e,t=null){return null==t?e.toLocaleString():t>=0?e.toFixed(t):t<0?(e/Math.pow(10,-t)).toFixed(0)+"0".repeat(-t):void 0}export{$ as UnitDetailsPanel,S as LegendPanelHeader,I as UnitDetailsFeature,T as Duration,j as ReferencesField,O as Identifier,R as AgeLabel,P as ClickableText};
2
+ //# sourceMappingURL=column-views.5e73411d.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,Y,C,K,2B,A,Q,U,C,C,e,C,K,mB,A,Q,Y,C,C,W,C,K,O,A,Q,uB,C,C,a,C,C,iB,C,C,S,C,C,iB,C,C,oB,C,C,Y,C,C,e,C,K,6B,A,Q,M,Y,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,IC+IY,E,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,mB,I,G,E,E,oB,I,G,E,E,qB,I,G,E,E,W,I,G,E,E,kB,I,G,E,E,a,I,G,E,E,W,I,G,E,E,gB,I,G,I,E,E,S,E,E,S,E,E,S,E,E,SA/GZ,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAchB,SAAS,EAAiB,CAAA,KAC/B,CAAI,CAAA,QACJ,CAAO,CAAA,UACP,CAAS,CAAA,SACT,EAAW,IAAI,IAAwB,C,iB,e,c,cAKtC,CAAA,CAAA,kBACD,CAAiB,CAAA,QACjB,CAAO,CAAA,cACP,EAAgB,IAAA,CAAA,aAChB,CAAY,CAAA,YACZ,CAAW,CACW,EACtB,GAAM,CAAC,EAAU,EAAY,CAAG,AAAA,EAAS,CAAA,GAErC,EAAU,KAEZ,EADE,EACQ,EAAE,EAAU,CAAE,KAAM,EAAM,SAAU,CAAA,CAAM,GAE1C,EAAE,EAAoB,CAC9B,KAAA,EACA,SAAA,EACA,kBAAA,EACA,YAAA,EACA,aAAA,CACF,GAGF,IAAI,EAAQ,AAAA,CAAA,EAAA,EAAA,mBAAkB,AAAlB,EAAoB,GAmBhC,OAjBI,EAAS,GAAG,CAAA,gBACd,CAAA,EAAgB,EAAE,CAChB,EAAE,EAAQ,CACR,KAAM,OACN,MAAO,CAAA,EACP,QAAS,CAAA,EACT,IAAK,mBACL,UAAW,AAAA,EAAW,mBAAoB,CAAE,QAAS,CAAY,GACjE,QAAQ,CAAG,EACT,EAAY,CAAC,GACb,EAAI,eAAe,EACrB,CACF,GACA,EACD,CAAA,EAGI,EAAE,yBAA0B,CAAE,UAAA,CAAU,EAAG,CAChD,EAAE,EAAmB,CACnB,QAAA,EACA,MAAA,EACA,GAAI,EAAK,OAAO,CAChB,QAAA,EACA,cAAA,CACF,GACA,EAAE,kCAAmC,GACtC,CACH,CAEO,SAAS,EAAkB,CAAA,MAChC,CAAK,CAAA,GACL,CAAE,CAAA,QACF,CAAO,CAAA,QACP,EAAU,IAAA,CAAA,cACV,CAAa,CAOd,EACC,OAAO,EAAE,6BAA8B,CACrC,EAAE,sBAAuB,CACvB,EAAE,EAAE,CAAC,AAAS,MAAT,GAAe,KAAM,GAC1B,EAAE,EAAE,CAAC,AAAiB,MAAjB,GACH,gCACA,EAAE,qBAAsB,IAE3B,EACD,EAAE,cACF,EAAE,EAAE,CAAC,AAAM,MAAN,GAAY,eAAgB,GACjC,EAAE,EAAE,CAAC,AAAW,MAAX,GAAiB,EAAa,CAAE,QAAS,CAAA,CAAK,EAAG,GACtD,EAAE,EAAE,CAAC,AAAW,MAAX,GAAiB,EAAQ,CAC5B,KAAM,QACN,QAAS,CAAA,EACT,MAAO,CAAA,EACP,UACE,GACF,CACF,GACD,CACH,CAEO,IAAK,G,CAAA,E,C,G,a,C,iB,E,K,C,Q,E,W,C,e,E,U,C,c,E,U,C,c,E,U,C,cAAA,GAmBZ,SAAS,EAAmB,CAAA,KAC1B,CAAI,CAAA,aACJ,CAAY,CAAA,kBACZ,EAAoB,IAAI,IAAI,CAC1B,AAAA,EAAoB,UAAU,CAC9B,AAAA,EAAoB,UAAU,CAC/B,CAAA,CAAA,SACD,EAAW,IAAI,IAAwB,C,iB,eAGtC,CAAA,CAAA,YACD,CAAW,CAAA,YACX,CAAW,CAQZ,MA0WC,EACA,EAWA,EACA,EAxLoB,MAChB,EACA,EACA,EAjME,EAAU,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,eAC5B,EAAS,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,gBAE3B,GAsWN,EAtWyC,EAAK,OAAO,CAuWrD,EAvWuD,EAyWhD,EAAa,GAAG,CAAC,AAAC,GAChB,CAAA,CACL,GAAI,GAAQ,IAAI,EAAI,UAAU,GAAK,CAAC,CAAC,CACrC,GAAG,CAAG,AACR,CAAA,IA5WI,GAiXN,EAjXuC,EAAK,IAAI,EAAI,EAAE,CAkXtD,EAlXwD,EAoXjD,EAAY,GAAG,CAAC,AAAC,GACf,CAAA,CACL,GAAI,GAAS,IAAI,EAAK,OAAO,GAAK,CAAC,CAAC,CACpC,GAAG,CAAI,AACT,CAAA,IAtXE,EAAe,KACnB,GAAI,EAAS,GAAG,CAAA,gBAAkC,CAEhD,IAAI,EAAU,EAAK,OAAO,AACtB,AAAW,CAAA,QAAX,GACF,CAAA,EAAU,wBADZ,EAGA,EAAe,EAAE,EAAW,CAC1B,MAAO,UACP,MAAO,CACT,EACF,CAEA,IAAI,EAAyB,KACvB,CAAC,EAAW,EAAc,EA2K5B,EAAe,CADC,EA1K4B,GA2KxB,SAAS,EAAI,EACjC,EAAe,EAAK,SAAS,EAAI,EAAK,SAAS,EAAI,EACnD,EAAQ,IAEZ,AAAI,AAAgB,GAAhB,GAAqB,AAAgB,GAAhB,EAChB,CAAC,UAAW,KAAK,EAGtB,EAAe,IAAO,EAAe,KAEvC,GAA8B,IAC9B,GAA8B,IAC9B,EAAQ,MACC,EAAe,KAAO,EAAe,OAE9C,GAA8B,IAC9B,GAA8B,IAC9B,EAAQ,MAGN,GAAgB,GACX,CAAC,EAAmB,GAAe,EAAM,CAG3C,CAAC,EAAY,EAAc,GAAe,EAAM,EAhMrD,EAAS,GAAG,CAAA,gBACZ,AAAc,MAAd,EAAK,KAAK,EACV,AAAc,MAAd,EAAK,KAAK,EACV,EAAK,SAAS,EAAI,EAAK,SAAS,EAChC,AAAkB,GAAlB,EAAK,SAAS,EAKd,CAAA,EAAyB,EAAE,EAAW,CACpC,KAHS,IAIT,MALY,EAAK,KAAK,CAAG,EAAK,KAAK,CAAG,QAAU,SAMhD,MAAO,EAAY,EAAK,KAAK,CAAE,EAAK,KAAK,EACzC,SAAU,EACR,EACA,EAAE,EAAO,CAAE,MAAO,EAAW,KAAM,CAAc,GAErD,EAAA,EAEF,GAAA,CAAA,EAA2B,EAAE,EAAW,CACtC,MAAO,YACP,MAAO,EACP,KAAM,CACR,EAAA,EAGA,IAAI,EAAyB,KAQ7B,MAPI,UAAW,GAAQ,EAAS,GAAG,CAAA,UAEjC,CAAA,EAAc,EAAE,mBAAoB,CAClC,MAAO,CAAE,gBAAiB,AAFd,EAEoB,KAAK,AAAC,CACxC,EAAA,EAGK,EAAE,2BAA4B,CACnC,EAAE,EAAE,CAAC,EAAS,GAAG,CAAA,gBAAiC,EAAiB,CACjE,OAAQ,EAAK,MAAM,AACrB,GACA,EACA,EAAE,EAAe,CACf,MAAO,YACP,YAAA,EACA,SAAU,EACV,YAAA,EACA,YAAA,CACF,GACA,EAAE,EAAU,CAAE,KAAA,CAAK,EAAG,CACpB,EAAE,EAAe,EAAE,EAAU,CAAE,MAAO,EAAK,KAAK,CAAG,EAAK,KAAK,AAAC,IAC9D,EAAE,EAAqB,CACrB,KAAA,EACA,YAAA,CACF,GACD,EACD,EAAE,EAAkB,CAClB,aAAA,EACA,YAAA,EACA,YAAA,CACF,GACA,EAAE,EAAE,CAAC,AAAsB,MAAtB,EAAK,aAAa,EAAU,EAAgB,CAC/C,cAAe,EAAK,aAAa,AACnC,GACA,EACA,EAAE,EAAE,CAAC,EAAS,GAAG,CAAA,mBAAoC,CACnD,EACE,EACA,CAAE,MAAO,OAAQ,EACjB,EAAE,EAAY,CACZ,MAAO,EAAK,WAAW,CACvB,aAAA,EACA,UAAW,CAAA,CACb,IAEF,EACE,EACA,CAAE,MAAO,OAAQ,EACjB,EAAE,EAAY,CACZ,MAAO,EAAK,WAAW,CACvB,aAAA,EACA,UAAW,CAAA,CACb,IAEH,EACD,EACA,EAAE,EAAiB,CAAE,KAAM,EAAK,IAAI,CAAE,OAAQ,CAAA,CAAK,GACpD,CACH,CAEA,SAAS,EAAgB,CAAA,OACvB,CAAM,CAAA,eACN,EAAiB,CAAA,CAAA,CAIlB,EACC,IAAM,EAAU,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,EAAwB,GACpC,EAAa,EAAE,EAAY,CAAE,GAAI,CAAO,GACtC,EAAO,GAAS,SAQtB,OAPI,AAAQ,MAAR,GACF,CAAA,EAAQ,EAAE,aAAc,CACtB,EAAE,gBAAiB,GACnB,EAAE,EAAE,CAAC,GAAgB,CAAC,IAAK,EAAE,EAAe,GAAO,EACpD,CAAA,EAGI,EACL,EACA,CACE,MAAO,QACT,EACA,EAEJ,CAEO,SAAS,EAAgB,CAAA,KAAE,CAAI,CAAA,UAAE,EAAY,IAAA,CAAM,GAAG,EAAM,SACjE,AAAI,AAAQ,MAAR,GAAgB,AAAgB,IAAhB,EAAK,MAAM,CACtB,KAGF,EACL,EACA,CACE,MAAO,aACP,UAAW,AAAA,EAAW,aAAc,GACpC,GAAG,CAAI,AACT,EACA,EAAE,EAAS,CAAE,KAAA,CAAK,GAEtB,CAEA,SAAS,EAAe,CAAA,cACtB,CAAa,CAAA,YACb,CAAW,CAIZ,EACC,IAAM,EAAa,AAAA,EAAQ,IAAM,CAAC,EAAc,CAAE,CAAC,EAAc,EAC3D,EAAO,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,cAAe,GACxC,EAAgB,GAAM,CAAC,EAAE,CAC3B,EAAa,EAAE,EAAY,CAAE,GAAI,CAAc,GAC7C,EAAO,GAAe,eACxB,AAAQ,OAAR,GACF,CAAA,EAAQ,EAAE,kBAAmB,EAD/B,EAIA,IAAM,EAAY,AAAe,MAAf,EAEZ,EAAY,AAAA,EAAW,CAC3B,UAAA,CACF,GAEA,OAAO,EACL,EACA,CACE,MAAO,oBACT,EACA,EACE,EAAY,IAAM,OAClB,CACE,UAAA,EACA,QAAS,AAAC,GAAM,EAAY,EAAG,CAAE,cAAA,CAAc,EACjD,EACA,GAGN,CAuCA,SAAS,EAAQ,CAAA,KAAE,CAAI,CAAE,EACvB,IAAM,EAAU,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,OAAQ,UAE1C,AAAI,AAAW,MAAX,GAAmB,AAAmB,IAAnB,EAAQ,MAAM,CAC5B,KAGL,AAAkB,GAAlB,EAAQ,MAAM,CACT,EAAE,EAAU,CACjB,KAAM,CAAO,CAAC,EAAE,CAChB,IAAK,OACL,IAAK,CAAO,CAAC,EAAE,CAAC,MAAM,AACxB,GAGK,EACL,UACA,EAAQ,GAAG,CAAC,CAAC,EAAM,IACjB,EAAE,EAAU,CAAE,KAAA,EAAM,IAAK,KAAM,IAAK,EAAK,MAAM,AAAC,IAGtD,CAEA,SAAS,EAAS,CAAA,KAAE,CAAI,CAAA,IAAE,EAAM,GAAA,CAAK,EACnC,OAAO,EAAE,EAAK,CAAE,UAAW,UAAW,EAAG,CACvC,EAAE,eAAgB,EAAK,MAAM,EAC7B,KACA,EAAE,YAAa,EAAK,QAAQ,EAC5B,KACA,EAAE,aAAc,EAAK,GAAG,EACzB,CACH,CAEA,SAAS,EAAS,CAAA,KAAE,CAAI,CAAA,SAAE,CAAQ,CAAE,MAcf,MACf,EACA,EACA,EAhBE,CAAC,EAAO,EAAO,EAAM,EAcvB,EAAQ,CADO,EAbuB,GAcxB,KAAK,CACnB,EAAQ,EAAM,KAAK,CACnB,EAAO,KAEP,EAAQ,IAAO,EAAQ,KACzB,GAAS,IACT,GAAS,IACT,EAAO,MACE,EAAQ,KAAO,EAAQ,OAChC,GAAS,IACT,GAAS,IACT,EAAO,MAGF,CAAC,EAAO,EAAO,EAAK,EA1B3B,OAAO,EACL,EACA,CACE,MAAO,MACP,MAAO,EAAY,EAAO,GAC1B,KAAM,CACR,EACA,EAEJ,CAsCO,SAAS,EAAS,CAAA,IACvB,CAAG,CAAA,sBACH,EAAwB,CAAA,CAAA,sBACxB,EAAwB,CAAA,CAAA,UACxB,CAAS,CAMV,MA5Be,MAEV,EA8BE,CAAC,EAAO,EAAK,EA9Bf,EAAO,KACP,CAHU,EAgCe,GA7BjB,IACV,EAAO,KACP,CAAA,GAAS,GAAT,EACY,IACV,EAAO,KACP,GAAS,MAEF,EAAQ,MACjB,EAAO,KACP,GAAS,KAGJ,CAAC,EAAO,EAAK,EAwBpB,OAAO,EAAE,EAAO,CAAE,MALH,EAAM,cAAc,CAAC,QAAS,CAC3C,sBAAA,EACA,sBAAA,CACF,GAEiC,KAAA,EAAM,UAAA,CAAU,EACnD,CAEO,SAAS,EAAS,CAAA,MACvB,CAAK,CAAA,sBACL,EAAwB,CAAA,CAAA,sBACxB,EAAwB,CAAA,CACzB,EACC,IAAI,EAAO,MAkBX,OAjBI,EAAQ,IACV,EAAO,MACP,CAAA,GAAS,GAAT,EACY,IACV,EAAO,KACP,GAAS,MAEF,EAAQ,MACjB,EAAO,MACP,GAAS,KAQJ,EAAE,EAAO,CAAE,MALL,EAAM,cAAc,CAAC,QAAS,CACzC,sBAAA,EACA,sBAAA,CACF,GAEiC,KAAA,CAAK,EACxC,CA0BO,SAAS,EAAc,CAAA,QAC5B,CAAO,CAAA,UACP,CAAS,CAAA,SACT,CAAQ,CAKT,EAGC,OAAO,EADK,AAAW,MAAX,EAAkB,IAAM,OACtB,CAAE,QAAA,EAAS,UAAA,CAAU,EAAG,EACxC,CAEO,SAAS,EAAW,CAAA,GACzB,CAAE,CAAA,QACF,CAAO,CAAA,UACP,CAAS,CAKV,EAIC,OAAO,EACL,EACA,CACE,QALa,AAAW,MAAX,EAAkB,IAAM,EAAQ,GAAM,KAMnD,UAAW,AAAA,EAAW,aAAc,EACtC,EACA,EAEJ,CAQA,SAAS,EAAW,CAAA,MAAE,CAAK,CAAA,aAAE,CAAY,CAAA,UAAE,EAAY,CAAA,CAAA,CAAO,EAC5D,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAEX,EAAuB,AAAA,EAAQ,KACnC,IAAM,EAAK,EAAM,MAAM,CAAC,AAAC,GAAM,AAAK,GAAL,UAC/B,AAAI,EACK,EAAG,GAAG,CAAC,AAAC,IACb,IACI,EADE,EAAW,GAAU,IAAI,GAK/B,OAHI,AAAY,MAAZ,GACF,CAAA,EAAO,AAAA,CAAA,EAAA,EAAA,mBAAkB,AAAlB,EAAoB,EAD7B,EAGO,CACL,OAAA,EACA,MAAO,GAAU,OACjB,KAAA,CACF,CACF,GAEO,EAAG,GAAG,CAAC,AAAC,GAAY,CAAA,CAAE,OAAA,CAAO,CAAA,EAExC,EAAG,CAAC,EAAO,EAAS,SAEpB,AAAI,AAAoB,IAApB,EAAS,MAAM,CACV,EAAE,gBAAiB,QAGrB,EACL,EACA,CAAE,UAAW,YAAa,EAC1B,EAAS,GAAG,CAAC,AAAC,GACZ,EAAE,YAAa,EAAE,EAAgB,CAAE,GAAG,CAAI,CAAE,aAAA,CAAa,KAG/D,CAEA,SAAS,EAAe,CAAA,OACtB,CAAM,CAAA,MACN,CAAK,CAAA,KACL,CAAI,CAAA,aACJ,CAAY,CAC2C,EACvD,IAAM,EAAU,AAAA,EAAQ,IACtB,AAAI,AAAgB,MAAhB,EAA6B,KAC1B,KACL,EAAa,EACf,EACC,CAAC,EAAa,SAEjB,AAAI,AAAQ,MAAR,EACK,EACL,EACA,CACE,UAAW,YACX,QAAA,CACF,EACA,GAIG,EAAE,EAAY,CACnB,UAAW,UACX,QAAA,EACA,IAAK,EACL,GAAI,CACN,EACF,CAEA,SAAS,EAAoB,CAAA,KAAE,CAAI,CAAA,YAAE,CAAW,CAAE,EAChD,IAAM,EAAK,EAAK,QAAQ,CAClB,EAAK,EAAK,QAAQ,CACpB,EAAS,EAAK,MAAM,EAAI,EACxB,EAAS,EAAK,MAAM,EAAI,EAEtB,EAAc,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,aAGhC,EAA2B,CAFjC,GAAa,GAAa,IAAI,IAAO,CAAC,CAGpC,CACA,GAAI,EACJ,KAAM,EAAK,UAAU,AACvB,EAEI,EAAgB,KACd,EAAO,GAAa,IAAI,IAAO,CAAC,EAChC,EAAgB,EAAE,EAAY,CAAE,MAAO,CAAO,EAEhD,CAAA,CAAA,IAAO,GAAM,AAAW,IAAX,GAAgB,AAAW,IAAX,CAAW,GAE1C,CAAA,EAAK,EAAE,EAAY,CAAE,MAAO,CAAO,EAAA,EAGjC,IAAO,GAAO,CAAA,AAAW,IAAX,GAAgB,AAAW,IAAX,CAAW,GAC3C,CAAA,EAAK,EAAE,wBAAyB,CAAC,EAAI,EAAE,WAAY,MAAO,EAAG,CAAA,EAG/D,IAAM,EAAY,AAAe,MAAf,EAEZ,EAAc,AAAC,IACf,GACF,EAAY,EAAO,EAEvB,EAEA,OAAO,EAAE,2BAA4B,CACnC,EAAE,EAAa,CACb,UAAW,EAAY,YAAc,GACrC,QAAS,EAAY,EAAc,KAAA,EACnC,SAAU,EACV,OAAQ,CACV,GACA,EAAE,EAAE,CAAC,GAAM,GAAI,wBAAyB,CACtC,EAAE,WAAY,MACd,EAAE,EAAa,CACb,UAAW,EAAY,YAAc,GACrC,QAAS,EAAY,EAAc,KAAA,EACnC,SAAU,CACR,GAAG,CAAI,CACP,GAAI,EACJ,KAAM,EAAK,UAAU,AACvB,EACA,OAAQ,CACV,GACD,EACF,CACH,CAOA,SAAS,EAAW,CAAA,MAAE,CAAK,CAAE,EAC3B,IAAI,EAAU,KACd,GAAI,AAAS,GAAT,EACF,EAAU,YACL,GAAI,AAAS,GAAT,EACT,EAAU,WAEV,EAAU,AAVL,AAUsB,CAAA,AAAQ,IAAR,CAAQ,EAV5B,OAAO,CAAC,GAU2B,IAG5C,OAAO,EAAE,kBAAmB,EAC9B,CAEA,SAAS,EAAY,CAAG,CAAE,CAAG,CAAE,EAAY,IAAI,SAC7C,AAAI,AAAO,MAAP,GAAe,AAAO,MAAP,EAAoB,KACnC,IAAQ,EACH,EAAI,OAAO,CAAC,GAGd,CAAA,EAAG,EAAmB,EAAK,GAAW,QAAC,EAAE,EAC9C,EACA,GAAA,CACC,AACL,CAEA,SAAS,EAAmB,CAAK,CAAE,EAAY,IAAI,SAIjD,AAAI,AAAa,MAAb,EACK,EAAM,cAAc,GAEzB,GAAa,EACR,EAAM,OAAO,CAAC,GAEnB,EAAY,EAEX,AAAA,CAAA,EAAQ,KAAK,GAAG,CAAC,GAAI,CAAC,EAAA,EAAY,OAAO,CAAC,GAAK,IAAI,MAAM,CAAC,CAAC,SAGlE,Q,K,gB,C,K,iB,C,K,kB,C,K,Q,C,K,e,C,K,U,C,K,Q,C,K,a","sources":["<anon>","packages/column-views/src/unit-details/panel.ts"],"sourcesContent":["import \"./column-views.e2562224.js\";\nimport \"./column-views.5c02450b.js\";\nimport \"./column-views.080781ca.js\";\nimport \"./column-views.bdf05ed4.js\";\nimport $c0aFQ$macrostrathyper from \"@macrostrat/hyper\";\nimport {JSONView as $c0aFQ$JSONView} from \"@macrostrat/ui-components\";\nimport {Button as $c0aFQ$Button, ButtonGroup as $c0aFQ$ButtonGroup} from \"@blueprintjs/core\";\nimport {useState as $c0aFQ$useState, useMemo as $c0aFQ$useMemo} from \"react\";\nimport {LithologyTagFeature as $c0aFQ$LithologyTagFeature, DataField as $c0aFQ$DataField, Parenthetical as $c0aFQ$Parenthetical, Value as $c0aFQ$Value, LithologyList as $c0aFQ$LithologyList, EnvironmentsList as $c0aFQ$EnvironmentsList, ItemList as $c0aFQ$ItemList, IntervalTag as $c0aFQ$IntervalTag} from \"@macrostrat/data-components\";\nimport $c0aFQ$classnames from \"classnames\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $4a89f93cd5289383$exports = {};\n\n$parcel$export($4a89f93cd5289383$exports, \"UnitDetailsPanel\", () => $4a89f93cd5289383$export$fbd245232df17557);\n$parcel$export($4a89f93cd5289383$exports, \"LegendPanelHeader\", () => $4a89f93cd5289383$export$fc503c39cc5cff43);\n$parcel$export($4a89f93cd5289383$exports, \"UnitDetailsFeature\", () => $4a89f93cd5289383$export$ec297f6f9a6ccad0);\n$parcel$export($4a89f93cd5289383$exports, \"Duration\", () => $4a89f93cd5289383$export$3b11bc38611c5941);\n$parcel$export($4a89f93cd5289383$exports, \"ReferencesField\", () => $4a89f93cd5289383$export$895d4931dd696e25);\n$parcel$export($4a89f93cd5289383$exports, \"Identifier\", () => $4a89f93cd5289383$export$989167234458594d);\n$parcel$export($4a89f93cd5289383$exports, \"AgeLabel\", () => $4a89f93cd5289383$export$37ebfd237811b1eb);\n$parcel$export($4a89f93cd5289383$exports, \"ClickableText\", () => $4a89f93cd5289383$export$b6867fc5221f9f65);\n\n\nvar $lMX1H = parcelRequire(\"lMX1H\");\n\n\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nvar $lgTAP = parcelRequire(\"lgTAP\");\n\nvar $jiUaC = parcelRequire(\"jiUaC\");\n\nconst $4a89f93cd5289383$var$h = (0, $c0aFQ$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($lMX1H))));\nfunction $4a89f93cd5289383$export$fbd245232df17557({ unit: unit, onClose: onClose, className: className, features: features = new Set([\n \"adjacent-units\",\n \"outcrop-type\",\n \"json-toggle\",\n \"depth-range\"\n]), lithologyFeatures: lithologyFeatures, actions: actions, hiddenActions: hiddenActions = null, onSelectUnit: onSelectUnit, onClickItem: onClickItem }) {\n const [showJSON, setShowJSON] = (0, $c0aFQ$useState)(false);\n let content = null;\n if (showJSON) content = $4a89f93cd5289383$var$h((0, $c0aFQ$JSONView), {\n data: unit,\n showRoot: false\n });\n else content = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitDetailsContent, {\n unit: unit,\n features: features,\n lithologyFeatures: lithologyFeatures,\n onClickItem: onClickItem,\n onSelectUnit: onSelectUnit\n });\n let title = (0, $jiUaC.defaultNameFunction)(unit);\n if (features.has(\"json-toggle\")) hiddenActions = $4a89f93cd5289383$var$h([\n $4a89f93cd5289383$var$h((0, $c0aFQ$Button), {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: (0, $c0aFQ$classnames)(\"json-view-toggle\", {\n enabled: setShowJSON\n }),\n onClick (evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n }\n }),\n hiddenActions\n ]);\n return $4a89f93cd5289383$var$h(\"div.unit-details-panel\", {\n className: className\n }, [\n $4a89f93cd5289383$var$h($4a89f93cd5289383$export$fc503c39cc5cff43, {\n onClose: onClose,\n title: title,\n id: unit.unit_id,\n actions: actions,\n hiddenActions: hiddenActions\n }),\n $4a89f93cd5289383$var$h(\"div.unit-details-content-holder\", content)\n ]);\n}\nfunction $4a89f93cd5289383$export$fc503c39cc5cff43({ title: title, id: id, onClose: onClose, actions: actions = null, hiddenActions: hiddenActions }) {\n return $4a89f93cd5289383$var$h(\"header.legend-panel-header\", [\n $4a89f93cd5289383$var$h(\"div.title-container\", [\n $4a89f93cd5289383$var$h.if(title != null)(\"h3\", title),\n $4a89f93cd5289383$var$h.if(hiddenActions != null)(\"span.hidden-actions-container\", $4a89f93cd5289383$var$h(\"div.hidden-actions\", hiddenActions))\n ]),\n $4a89f93cd5289383$var$h(\"div.spacer\"),\n $4a89f93cd5289383$var$h.if(id != null)(\"code.unit-id\", id),\n $4a89f93cd5289383$var$h.if(actions != null)((0, $c0aFQ$ButtonGroup), {\n minimal: true\n }, actions),\n $4a89f93cd5289383$var$h.if(onClose != null)((0, $c0aFQ$Button), {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick () {\n onClose();\n }\n })\n ]);\n}\nvar $4a89f93cd5289383$export$ec297f6f9a6ccad0 = /*#__PURE__*/ function(UnitDetailsFeature) {\n UnitDetailsFeature[\"AdjacentUnits\"] = \"adjacent-units\";\n UnitDetailsFeature[\"Color\"] = \"color\";\n UnitDetailsFeature[\"OutcropType\"] = \"outcrop-type\";\n UnitDetailsFeature[\"JSONToggle\"] = \"json-toggle\";\n UnitDetailsFeature[\"DepthRange\"] = \"depth-range\";\n UnitDetailsFeature[\"ColumnName\"] = \"column-name\";\n return UnitDetailsFeature;\n}({});\nfunction $4a89f93cd5289383$var$UnitDetailsContent({ unit: unit, onSelectUnit: onSelectUnit, lithologyFeatures: lithologyFeatures = new Set([\n (0, $c0aFQ$LithologyTagFeature).Proportion,\n (0, $c0aFQ$LithologyTagFeature).Attributes\n]), features: features = new Set([\n \"adjacent-units\",\n \"outcrop-type\"\n]), onClickItem: onClickItem, getItemHref: getItemHref }) {\n const lithMap = (0, $lgTAP.useMacrostratDefs)(\"lithologies\");\n const envMap = (0, $lgTAP.useMacrostratDefs)(\"environments\");\n const environments = $4a89f93cd5289383$var$enhanceEnvironments(unit.environ, envMap);\n const lithologies = $4a89f93cd5289383$var$enhanceLithologies(unit.lith ?? [], lithMap);\n let outcropField = null;\n if (features.has(\"outcrop-type\")) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") outcrop = \"surface and subsurface\";\n outcropField = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Outcrop\",\n value: outcrop\n });\n }\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = $4a89f93cd5289383$var$getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (features.has(\"depth-range\") && unit.t_pos != null && unit.b_pos != null && unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n thicknessOrHeightRange = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n unit: u1,\n label: label,\n value: $4a89f93cd5289383$var$formatRange(unit.b_pos, unit.t_pos),\n children: $4a89f93cd5289383$var$h((0, $c0aFQ$Parenthetical), $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: thickness,\n unit: thicknessUnit\n }))\n });\n }\n thicknessOrHeightRange ?? (thicknessOrHeightRange = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit\n }));\n /** We are trying to move away from passing the \"color\" parameter in the API */ let colorSwatch = null;\n if (\"color\" in unit && features.has(\"color\")) {\n const unit1 = unit;\n colorSwatch = $4a89f93cd5289383$var$h(\"div.color-swatch\", {\n style: {\n backgroundColor: unit1.color\n }\n });\n }\n return $4a89f93cd5289383$var$h(\"div.unit-details-content\", [\n $4a89f93cd5289383$var$h.if(features.has(\"column-name\"))($4a89f93cd5289383$var$ColumnNameField, {\n col_id: unit.col_id\n }),\n thicknessOrHeightRange,\n $4a89f93cd5289383$var$h((0, $c0aFQ$LithologyList), {\n label: \"Lithology\",\n lithologies: lithologies,\n features: lithologyFeatures,\n getItemHref: getItemHref,\n onClickItem: onClickItem\n }),\n $4a89f93cd5289383$var$h($4a89f93cd5289383$var$AgeField, {\n unit: unit\n }, [\n $4a89f93cd5289383$var$h((0, $c0aFQ$Parenthetical), $4a89f93cd5289383$var$h($4a89f93cd5289383$export$3b11bc38611c5941, {\n value: unit.b_age - unit.t_age\n })),\n $4a89f93cd5289383$var$h($4a89f93cd5289383$var$IntervalProportions, {\n unit: unit,\n onClickItem: onClickItem\n })\n ]),\n $4a89f93cd5289383$var$h((0, $c0aFQ$EnvironmentsList), {\n environments: environments,\n onClickItem: onClickItem,\n getItemHref: getItemHref\n }),\n $4a89f93cd5289383$var$h.if(unit.strat_name_id != null)($4a89f93cd5289383$var$StratNameField, {\n strat_name_id: unit.strat_name_id\n }),\n outcropField,\n $4a89f93cd5289383$var$h.if(features.has(\"adjacent-units\"))([\n $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Above\"\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitIDList, {\n units: unit.units_above,\n onSelectUnit: onSelectUnit,\n showNames: true\n })),\n $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Below\"\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitIDList, {\n units: unit.units_below,\n onSelectUnit: onSelectUnit,\n showNames: true\n }))\n ]),\n colorSwatch,\n $4a89f93cd5289383$var$h($4a89f93cd5289383$export$895d4931dd696e25, {\n refs: unit.refs,\n inline: true\n })\n ]);\n}\nfunction $4a89f93cd5289383$var$ColumnNameField({ col_id: col_id, showIdentifier: showIdentifier = false }) {\n const colData = (0, $lgTAP.useMacrostratColumnInfo)(col_id);\n let inner = $4a89f93cd5289383$var$h($4a89f93cd5289383$export$989167234458594d, {\n id: col_id\n });\n const name = colData?.col_name;\n if (name != null) inner = $4a89f93cd5289383$var$h(\"span.value\", [\n $4a89f93cd5289383$var$h(\"span.col-name\", name),\n $4a89f93cd5289383$var$h.if(showIdentifier)([\n \" \",\n $4a89f93cd5289383$var$h((0, $c0aFQ$Parenthetical), inner)\n ])\n ]);\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Column\"\n }, inner);\n}\nfunction $4a89f93cd5289383$export$895d4931dd696e25({ refs: refs, className: className = null, ...rest }) {\n if (refs == null || refs.length === 0) return null;\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"References\",\n className: (0, $c0aFQ$classnames)(\"refs-field\", className),\n ...rest\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$BibInfo, {\n refs: refs\n }));\n}\nfunction $4a89f93cd5289383$var$StratNameField({ strat_name_id: strat_name_id, onClickItem: onClickItem }) {\n const stratNames = (0, $c0aFQ$useMemo)(()=>[\n strat_name_id\n ], [\n strat_name_id\n ]);\n const data = (0, $lgTAP.useMacrostratData)(\"strat_names\", stratNames);\n const stratNameData = data?.[0];\n let inner = $4a89f93cd5289383$var$h($4a89f93cd5289383$export$989167234458594d, {\n id: strat_name_id\n });\n const name = stratNameData?.strat_name_long;\n if (name != null) inner = $4a89f93cd5289383$var$h(\"span.strat-name\", name);\n const clickable = onClickItem != null;\n const className = (0, $c0aFQ$classnames)({\n clickable: clickable\n });\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Stratigraphic name\"\n }, $4a89f93cd5289383$var$h(clickable ? \"a\" : \"span\", {\n className: className,\n onClick: (e)=>onClickItem(e, {\n strat_name_id: strat_name_id\n })\n }, inner));\n}\nfunction $4a89f93cd5289383$var$getThickness(unit) {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n if (minThickness == 0 && maxThickness == 0) return [\n \"Unknown\",\n null\n ];\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n if (minThickness == maxThickness) return [\n $4a89f93cd5289383$var$formatSignificance(minThickness),\n _unit\n ];\n return [\n $4a89f93cd5289383$var$formatRange(minThickness, maxThickness),\n _unit\n ];\n}\nfunction $4a89f93cd5289383$var$ThicknessField({ unit: unit, label: label = \"Thickness\" }) {\n const [value, thicknessUnit] = $4a89f93cd5289383$var$getThickness(unit);\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: label,\n value: value,\n unit: thicknessUnit\n });\n}\nfunction $4a89f93cd5289383$var$BibInfo({ refs: refs }) {\n const refData = (0, $lgTAP.useMacrostratData)(\"refs\", refs);\n if (refData == null || refData.length === 0) return null;\n if (refData.length == 1) return $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Citation, {\n data: refData[0],\n tag: \"span\",\n key: refData[0].ref_id\n });\n return $4a89f93cd5289383$var$h(\"ul.refs\", refData.map((data, i)=>$4a89f93cd5289383$var$h($4a89f93cd5289383$var$Citation, {\n data: data,\n tag: \"li\",\n key: data.ref_id\n })));\n}\nfunction $4a89f93cd5289383$var$Citation({ data: data, tag: tag = \"p\" }) {\n return $4a89f93cd5289383$var$h(tag, {\n className: \"citation\"\n }, [\n $4a89f93cd5289383$var$h(\"span.authors\", data.author),\n \", \",\n $4a89f93cd5289383$var$h(\"span.year\", data.pub_year),\n \", \",\n $4a89f93cd5289383$var$h(\"span.title\", data.ref)\n ]);\n}\nfunction $4a89f93cd5289383$var$AgeField({ unit: unit, children: children }) {\n const [b_age, t_age, _unit] = $4a89f93cd5289383$var$getAgeRange(unit);\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Age\",\n value: $4a89f93cd5289383$var$formatRange(b_age, t_age),\n unit: _unit\n }, children);\n}\nfunction $4a89f93cd5289383$var$getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n return [\n b_age,\n t_age,\n unit\n ];\n}\nfunction $4a89f93cd5289383$var$getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */ let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n return [\n value,\n unit\n ];\n}\nfunction $4a89f93cd5289383$export$37ebfd237811b1eb({ age: age, maximumFractionDigits: maximumFractionDigits = 2, minimumFractionDigits: minimumFractionDigits = 0, className: className }) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */ const [value, unit] = $4a89f93cd5289383$var$getAge(age);\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits: maximumFractionDigits,\n minimumFractionDigits: minimumFractionDigits\n });\n return $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: _value,\n unit: unit,\n className: className\n });\n}\nfunction $4a89f93cd5289383$export$3b11bc38611c5941({ value: value, maximumFractionDigits: maximumFractionDigits = 2, minimumFractionDigits: minimumFractionDigits = 0 }) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits: maximumFractionDigits,\n minimumFractionDigits: minimumFractionDigits\n });\n return $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: _value,\n unit: unit\n });\n}\nfunction $4a89f93cd5289383$var$enhanceEnvironments(environments, envMap) {\n return environments.map((env)=>{\n return {\n ...envMap?.get(env.environ_id) ?? {},\n ...env\n };\n });\n}\nfunction $4a89f93cd5289383$var$enhanceLithologies(lithologies, lithMap) {\n return lithologies.map((lith)=>{\n return {\n ...lithMap?.get(lith.lith_id) ?? {},\n ...lith\n };\n });\n}\nfunction $4a89f93cd5289383$export$b6867fc5221f9f65({ onClick: onClick, className: className, children: children }) {\n /** An optionally clickable text element */ const tag = onClick != null ? \"a\" : \"span\";\n return $4a89f93cd5289383$var$h(tag, {\n onClick: onClick,\n className: className\n }, children);\n}\nfunction $4a89f93cd5289383$export$989167234458594d({ id: id, onClick: onClick, className: className }) {\n /** An item that displays a numeric identifier, optionally clickable */ const _onClick = onClick != null ? ()=>onClick(id) : null;\n return $4a89f93cd5289383$var$h($4a89f93cd5289383$export$b6867fc5221f9f65, {\n onClick: _onClick,\n className: (0, $c0aFQ$classnames)(\"identifier\", className)\n }, id);\n}\nfunction $4a89f93cd5289383$var$UnitIDList({ units: units, onSelectUnit: onSelectUnit, showNames: showNames = false }) {\n const unitsMap = (0, $wtIgl.useColumnUnitsMap)();\n const extUnits = (0, $c0aFQ$useMemo)(()=>{\n const u1 = units.filter((d)=>d != 0);\n if (showNames) return u1.map((unitID)=>{\n const unitData = unitsMap?.get(unitID);\n let name = undefined;\n if (unitData != null) name = (0, $jiUaC.defaultNameFunction)(unitData);\n return {\n unitID: unitID,\n colID: unitData?.col_id,\n name: name\n };\n });\n else return u1.map((unitID)=>({\n unitID: unitID\n }));\n }, [\n units,\n unitsMap\n ]);\n if (extUnits.length === 0) return $4a89f93cd5289383$var$h(\"span.no-units\", \"None\");\n return $4a89f93cd5289383$var$h((0, $c0aFQ$ItemList), {\n className: \"units-list\"\n }, extUnits.map((info)=>$4a89f93cd5289383$var$h(\"span.item\", $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitIdentifier, {\n ...info,\n onSelectUnit: onSelectUnit\n }))));\n}\nfunction $4a89f93cd5289383$var$UnitIdentifier({ unitID: unitID, colID: colID, name: name, onSelectUnit: onSelectUnit }) {\n const onClick = (0, $c0aFQ$useMemo)(()=>{\n if (onSelectUnit == null) return null;\n return ()=>{\n onSelectUnit(unitID);\n };\n }, [\n onSelectUnit\n ]);\n if (name != null) return $4a89f93cd5289383$var$h($4a89f93cd5289383$export$b6867fc5221f9f65, {\n className: \"unit-name\",\n onClick: onClick\n }, name);\n return $4a89f93cd5289383$var$h($4a89f93cd5289383$export$989167234458594d, {\n className: \"unit-id\",\n onClick: onClick,\n key: unitID,\n id: unitID\n });\n}\nfunction $4a89f93cd5289383$var$IntervalProportions({ unit: unit, onClickItem: onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n const intervalMap = (0, $lgTAP.useMacrostratDefs)(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n const interval0 = {\n ...int0,\n id: i0,\n name: unit.b_int_name\n };\n let p0 = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1 = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Proportion, {\n value: t_prop\n });\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) // We have a single interval with undefined proportions\n p0 = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Proportion, {\n value: b_prop\n });\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) p0 = $4a89f93cd5289383$var$h(\"span.joint-proportion\", [\n p0,\n $4a89f93cd5289383$var$h(\"span.sep\", \"to\"),\n p1\n ]);\n const clickable = onClickItem != null;\n const handleClick = (event)=>{\n if (onClickItem) onClickItem(event, interval0);\n };\n return $4a89f93cd5289383$var$h(\"div.interval-proportions\", [\n $4a89f93cd5289383$var$h((0, $c0aFQ$IntervalTag), {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0\n }),\n $4a89f93cd5289383$var$h.if(i0 != i1)(\"span.discourage-break\", [\n $4a89f93cd5289383$var$h(\"span.sep\", \"to\"),\n $4a89f93cd5289383$var$h((0, $c0aFQ$IntervalTag), {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name\n },\n prefix: p1\n })\n ])\n ]);\n}\nconst $4a89f93cd5289383$var$formatProportion = (d)=>{\n if (d == null) return null;\n return d.toFixed(1);\n};\nfunction $4a89f93cd5289383$var$Proportion({ value: value }) {\n let content = null;\n if (value == 0) content = \"base\";\n else if (value == 1) content = \"top\";\n else content = $4a89f93cd5289383$var$formatProportion(value * 100) + \"%\";\n return $4a89f93cd5289383$var$h(\"span.proportion\", content);\n}\nfunction $4a89f93cd5289383$var$formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) return min.toFixed(precision);\n return `${$4a89f93cd5289383$var$formatSignificance(min, precision)}\\u{2013}${$4a89f93cd5289383$var$formatSignificance(max, precision)}`;\n}\nfunction $4a89f93cd5289383$var$formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n if (precision == null) return value.toLocaleString();\n if (precision >= 0) return value.toFixed(precision);\n if (precision < 0) return (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision);\n}\n\n\nexport {$4a89f93cd5289383$export$fbd245232df17557 as UnitDetailsPanel, $4a89f93cd5289383$export$fc503c39cc5cff43 as LegendPanelHeader, $4a89f93cd5289383$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $4a89f93cd5289383$export$3b11bc38611c5941 as Duration, $4a89f93cd5289383$export$895d4931dd696e25 as ReferencesField, $4a89f93cd5289383$export$989167234458594d as Identifier, $4a89f93cd5289383$export$37ebfd237811b1eb as AgeLabel, $4a89f93cd5289383$export$b6867fc5221f9f65 as ClickableText};\n//# sourceMappingURL=column-views.5e73411d.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./panel.module.sass\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { Button, ButtonGroup } from \"@blueprintjs/core\";\nimport { ReactNode, useMemo, useState } from \"react\";\nimport {\n DataField,\n EnvironmentsList,\n IntervalShort,\n IntervalTag,\n ItemList,\n LithologyList,\n LithologyTagFeature,\n Parenthetical,\n Value,\n} from \"@macrostrat/data-components\";\nimport {\n useColumnUnitsMap,\n useMacrostratColumnInfo,\n useMacrostratData,\n useMacrostratDefs,\n} from \"../data-provider\";\nimport type {\n Environment,\n UnitLong,\n UnitLongFull,\n Lithology,\n Interval,\n} from \"@macrostrat/api-types\";\nimport { defaultNameFunction } from \"../units/names\";\nimport classNames from \"classnames\";\n\nconst h = hyper.styled(styles);\n\nexport interface UnitDetailsPanelProps {\n unit: any;\n onClose?: any;\n className?: string;\n actions?: ReactNode;\n hiddenActions?: ReactNode;\n features?: Set<UnitDetailsFeature>;\n lithologyFeatures?: Set<LithologyTagFeature>;\n onSelectUnit?: (unitID: number) => void;\n onClickItem?: MacrostratItemClickHandler;\n}\n\nexport function UnitDetailsPanel({\n unit,\n onClose,\n className,\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n UnitDetailsFeature.JSONToggle,\n UnitDetailsFeature.DepthRange,\n ]),\n lithologyFeatures,\n actions,\n hiddenActions = null,\n onSelectUnit,\n onClickItem,\n}: UnitDetailsPanelProps) {\n const [showJSON, setShowJSON] = useState(false);\n\n let content = null;\n if (showJSON) {\n content = h(JSONView, { data: unit, showRoot: false });\n } else {\n content = h(UnitDetailsContent, {\n unit,\n features,\n lithologyFeatures,\n onClickItem,\n onSelectUnit,\n });\n }\n\n let title = defaultNameFunction(unit);\n\n if (features.has(UnitDetailsFeature.JSONToggle)) {\n hiddenActions = h([\n h(Button, {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: classNames(\"json-view-toggle\", { enabled: setShowJSON }),\n onClick(evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n },\n }),\n hiddenActions,\n ]);\n }\n\n return h(\"div.unit-details-panel\", { className }, [\n h(LegendPanelHeader, {\n onClose,\n title,\n id: unit.unit_id,\n actions,\n hiddenActions,\n }),\n h(\"div.unit-details-content-holder\", content),\n ]);\n}\n\nexport function LegendPanelHeader({\n title,\n id,\n onClose,\n actions = null,\n hiddenActions,\n}: {\n title?: string | null;\n id?: number | null;\n onClose?: () => void;\n actions?: ReactNode | null;\n hiddenActions?: ReactNode | null;\n}) {\n return h(\"header.legend-panel-header\", [\n h(\"div.title-container\", [\n h.if(title != null)(\"h3\", title),\n h.if(hiddenActions != null)(\n \"span.hidden-actions-container\",\n h(\"div.hidden-actions\", hiddenActions),\n ),\n ]),\n h(\"div.spacer\"),\n h.if(id != null)(\"code.unit-id\", id),\n h.if(actions != null)(ButtonGroup, { minimal: true }, actions),\n h.if(onClose != null)(Button, {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick() {\n onClose();\n },\n }),\n ]);\n}\n\nexport enum UnitDetailsFeature {\n AdjacentUnits = \"adjacent-units\",\n Color = \"color\",\n OutcropType = \"outcrop-type\",\n JSONToggle = \"json-toggle\",\n DepthRange = \"depth-range\",\n ColumnName = \"column-name\",\n}\n\nexport type MacrostratItemClickHandler = (\n event: MouseEvent,\n item:\n | Lithology\n | Environment\n | UnitLong\n | Interval\n | { strat_name_id: number },\n) => void;\n\nfunction UnitDetailsContent({\n unit,\n onSelectUnit,\n lithologyFeatures = new Set([\n LithologyTagFeature.Proportion,\n LithologyTagFeature.Attributes,\n ]),\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n ]),\n onClickItem,\n getItemHref,\n}: {\n unit: UnitLong;\n onSelectUnit?: (unitID: number) => void;\n lithologyFeatures?: Set<LithologyTagFeature>;\n features?: Set<UnitDetailsFeature>;\n onClickItem?: MacrostratItemClickHandler;\n getItemHref?: (item: Lithology | Environment | UnitLong) => string | null;\n}) {\n const lithMap = useMacrostratDefs(\"lithologies\");\n const envMap = useMacrostratDefs(\"environments\");\n\n const environments = enhanceEnvironments(unit.environ, envMap);\n const lithologies = enhanceLithologies(unit.lith ?? [], lithMap);\n\n let outcropField = null;\n if (features.has(UnitDetailsFeature.OutcropType)) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") {\n outcrop = \"surface and subsurface\";\n }\n outcropField = h(DataField, {\n label: \"Outcrop\",\n value: outcrop,\n });\n }\n\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (\n features.has(UnitDetailsFeature.DepthRange) &&\n unit.t_pos != null &&\n unit.b_pos != null &&\n unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n\n thicknessOrHeightRange = h(DataField, {\n unit: u1,\n label,\n value: formatRange(unit.b_pos, unit.t_pos),\n children: h(\n Parenthetical,\n h(Value, { value: thickness, unit: thicknessUnit }),\n ),\n });\n }\n thicknessOrHeightRange ??= h(DataField, {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit,\n });\n\n /** We are trying to move away from passing the \"color\" parameter in the API */\n let colorSwatch: ReactNode = null;\n if (\"color\" in unit && features.has(UnitDetailsFeature.Color)) {\n const unit1 = unit as UnitLongFull;\n colorSwatch = h(\"div.color-swatch\", {\n style: { backgroundColor: unit1.color },\n });\n }\n\n return h(\"div.unit-details-content\", [\n h.if(features.has(UnitDetailsFeature.ColumnName))(ColumnNameField, {\n col_id: unit.col_id,\n }),\n thicknessOrHeightRange,\n h(LithologyList, {\n label: \"Lithology\",\n lithologies,\n features: lithologyFeatures,\n getItemHref,\n onClickItem,\n }),\n h(AgeField, { unit }, [\n h(Parenthetical, h(Duration, { value: unit.b_age - unit.t_age })),\n h(IntervalProportions, {\n unit,\n onClickItem,\n }),\n ]),\n h(EnvironmentsList, {\n environments,\n onClickItem,\n getItemHref,\n }),\n h.if(unit.strat_name_id != null)(StratNameField, {\n strat_name_id: unit.strat_name_id,\n }),\n outcropField,\n h.if(features.has(UnitDetailsFeature.AdjacentUnits))([\n h(\n DataField,\n { label: \"Above\" },\n h(UnitIDList, {\n units: unit.units_above,\n onSelectUnit,\n showNames: true,\n }),\n ),\n h(\n DataField,\n { label: \"Below\" },\n h(UnitIDList, {\n units: unit.units_below,\n onSelectUnit,\n showNames: true,\n }),\n ),\n ]),\n colorSwatch,\n h(ReferencesField, { refs: unit.refs, inline: true }),\n ]);\n}\n\nfunction ColumnNameField({\n col_id,\n showIdentifier = false,\n}: {\n col_id: number;\n showIdentifier?: boolean;\n}) {\n const colData = useMacrostratColumnInfo(col_id);\n let inner: any = h(Identifier, { id: col_id });\n const name = colData?.col_name;\n if (name != null) {\n inner = h(\"span.value\", [\n h(\"span.col-name\", name),\n h.if(showIdentifier)([\" \", h(Parenthetical, inner)]),\n ]);\n }\n\n return h(\n DataField,\n {\n label: \"Column\",\n },\n inner,\n );\n}\n\nexport function ReferencesField({ refs, className = null, ...rest }) {\n if (refs == null || refs.length === 0) {\n return null;\n }\n\n return h(\n DataField,\n {\n label: \"References\",\n className: classNames(\"refs-field\", className),\n ...rest,\n },\n h(BibInfo, { refs }),\n );\n}\n\nfunction StratNameField({\n strat_name_id,\n onClickItem,\n}: {\n strat_name_id: number;\n onClickItem?: (event: MouseEvent, item: { strat_name_id: number }) => void;\n}) {\n const stratNames = useMemo(() => [strat_name_id], [strat_name_id]);\n const data = useMacrostratData(\"strat_names\", stratNames);\n const stratNameData = data?.[0];\n let inner: any = h(Identifier, { id: strat_name_id });\n const name = stratNameData?.strat_name_long;\n if (name != null) {\n inner = h(\"span.strat-name\", name);\n }\n\n const clickable = onClickItem != null;\n\n const className = classNames({\n clickable,\n });\n\n return h(\n DataField,\n {\n label: \"Stratigraphic name\",\n },\n h(\n clickable ? \"a\" : \"span\",\n {\n className,\n onClick: (e) => onClickItem(e, { strat_name_id }),\n },\n inner,\n ),\n );\n}\n\nfunction getThickness(unit): [string, string] {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n\n if (minThickness == 0 && maxThickness == 0) {\n return [\"Unknown\", null];\n }\n\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n\n if (minThickness == maxThickness) {\n return [formatSignificance(minThickness), _unit];\n }\n\n return [formatRange(minThickness, maxThickness), _unit];\n}\n\nfunction ThicknessField({ unit, label = \"Thickness\" }) {\n const [value, thicknessUnit] = getThickness(unit);\n return h(DataField, {\n label,\n value,\n unit: thicknessUnit,\n });\n}\n\nfunction BibInfo({ refs }) {\n const refData = useMacrostratData(\"refs\", refs);\n\n if (refData == null || refData.length === 0) {\n return null;\n }\n\n if (refData.length == 1) {\n return h(Citation, {\n data: refData[0],\n tag: \"span\",\n key: refData[0].ref_id,\n });\n }\n\n return h(\n \"ul.refs\",\n refData.map((data, i) =>\n h(Citation, { data, tag: \"li\", key: data.ref_id }),\n ),\n );\n}\n\nfunction Citation({ data, tag = \"p\" }) {\n return h(tag, { className: \"citation\" }, [\n h(\"span.authors\", data.author),\n \", \",\n h(\"span.year\", data.pub_year),\n \", \",\n h(\"span.title\", data.ref),\n ]);\n}\n\nfunction AgeField({ unit, children }) {\n const [b_age, t_age, _unit] = getAgeRange(unit);\n\n return h(\n DataField,\n {\n label: \"Age\",\n value: formatRange(b_age, t_age),\n unit: _unit,\n },\n children,\n );\n}\n\nfunction getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n\n return [b_age, t_age, unit];\n}\n\nfunction getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */\n let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n\n return [value, unit];\n}\n\nexport function AgeLabel({\n age,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n className,\n}: {\n age: number;\n className?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n}) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */\n const [value, unit] = getAge(age);\n\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit, className });\n}\n\nexport function Duration({\n value,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n}) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit });\n}\n\nfunction enhanceEnvironments(\n environments: Partial<Environment>[],\n envMap: Map<number, Environment>,\n) {\n return environments.map((env) => {\n return {\n ...(envMap?.get(env.environ_id) ?? {}),\n ...env,\n };\n });\n}\n\nfunction enhanceLithologies(\n lithologies: Partial<UnitLong[\"lith\"]>,\n lithMap: Map<number, any>,\n) {\n return lithologies.map((lith) => {\n return {\n ...(lithMap?.get(lith.lith_id) ?? {}), // get lithology details\n ...lith, // override with the unit's specific lithology data\n };\n });\n}\n\nexport function ClickableText({\n onClick,\n className,\n children,\n}: {\n onClick: () => void;\n className?: string;\n children: ReactNode;\n}) {\n /** An optionally clickable text element */\n const tag = onClick != null ? \"a\" : \"span\";\n return h(tag, { onClick, className }, children);\n}\n\nexport function Identifier({\n id,\n onClick,\n className,\n}: {\n id: number | string;\n onClick?: (id: number | string) => void;\n className?: string;\n}) {\n /** An item that displays a numeric identifier, optionally clickable */\n const _onClick = onClick != null ? () => onClick(id) : null;\n\n return h(\n ClickableText,\n {\n onClick: _onClick,\n className: classNames(\"identifier\", className),\n },\n id,\n );\n}\n\ntype UnitInfo = {\n unitID: number;\n colID?: number;\n name?: string;\n};\n\nfunction UnitIDList({ units, onSelectUnit, showNames = false }) {\n const unitsMap = useColumnUnitsMap();\n\n const extUnits: UnitInfo[] = useMemo(() => {\n const u1 = units.filter((d) => d != 0);\n if (showNames) {\n return u1.map((unitID) => {\n const unitData = unitsMap?.get(unitID);\n let name: string = undefined;\n if (unitData != null) {\n name = defaultNameFunction(unitData);\n }\n return {\n unitID,\n colID: unitData?.col_id,\n name,\n };\n });\n } else {\n return u1.map((unitID) => ({ unitID }));\n }\n }, [units, unitsMap]);\n\n if (extUnits.length === 0) {\n return h(\"span.no-units\", \"None\");\n }\n\n return h(\n ItemList,\n { className: \"units-list\" },\n extUnits.map((info) =>\n h(\"span.item\", h(UnitIdentifier, { ...info, onSelectUnit })),\n ),\n );\n}\n\nfunction UnitIdentifier({\n unitID,\n colID,\n name,\n onSelectUnit,\n}: UnitInfo & { onSelectUnit?: (unitID: number) => void }) {\n const onClick = useMemo(() => {\n if (onSelectUnit == null) return null;\n return () => {\n onSelectUnit(unitID);\n };\n }, [onSelectUnit]);\n\n if (name != null) {\n return h(\n ClickableText,\n {\n className: \"unit-name\",\n onClick,\n },\n name,\n );\n }\n\n return h(Identifier, {\n className: \"unit-id\",\n onClick,\n key: unitID,\n id: unitID,\n });\n}\n\nfunction IntervalProportions({ unit, onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n\n const intervalMap = useMacrostratDefs(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n\n const interval0: IntervalShort = {\n ...int0,\n id: i0,\n name: unit.b_int_name,\n };\n\n let p0: ReactNode = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1: ReactNode = h(Proportion, { value: t_prop });\n\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) {\n // We have a single interval with undefined proportions\n p0 = h(Proportion, { value: b_prop });\n }\n\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) {\n p0 = h(\"span.joint-proportion\", [p0, h(\"span.sep\", \"to\"), p1]);\n }\n\n const clickable = onClickItem != null;\n\n const handleClick = (event: MouseEvent) => {\n if (onClickItem) {\n onClickItem(event, interval0);\n }\n };\n\n return h(\"div.interval-proportions\", [\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0,\n }),\n h.if(i0 != i1)(\"span.discourage-break\", [\n h(\"span.sep\", \"to\"),\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name,\n },\n prefix: p1,\n }),\n ]),\n ]);\n}\n\nconst formatProportion = (d) => {\n if (d == null) return null;\n return d.toFixed(1);\n};\n\nfunction Proportion({ value }) {\n let content = null;\n if (value == 0) {\n content = \"base\";\n } else if (value == 1) {\n content = \"top\";\n } else {\n content = formatProportion(value * 100) + \"%\";\n }\n\n return h(\"span.proportion\", content);\n}\n\nfunction formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) {\n return min.toFixed(precision);\n }\n\n return `${formatSignificance(min, precision)}–${formatSignificance(\n max,\n precision,\n )}`;\n}\n\nfunction formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n\n if (precision == null) {\n return value.toLocaleString();\n }\n if (precision >= 0) {\n return value.toFixed(precision);\n }\n if (precision < 0) {\n return (\n (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision)\n );\n }\n}\n"],"names":["$c0aFQ$macrostrathyper","JSONView","$c0aFQ$JSONView","Button","$c0aFQ$Button","ButtonGroup","$c0aFQ$ButtonGroup","useState","$c0aFQ$useState","useMemo","$c0aFQ$useMemo","LithologyTagFeature","$c0aFQ$LithologyTagFeature","DataField","$c0aFQ$DataField","Parenthetical","$c0aFQ$Parenthetical","Value","$c0aFQ$Value","LithologyList","$c0aFQ$LithologyList","EnvironmentsList","$c0aFQ$EnvironmentsList","ItemList","$c0aFQ$ItemList","IntervalTag","$c0aFQ$IntervalTag","$c0aFQ$classnames","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","UnitDetailsFeature","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$4a89f93cd5289383$exports","$4a89f93cd5289383$export$fbd245232df17557","$4a89f93cd5289383$export$fc503c39cc5cff43","$4a89f93cd5289383$export$ec297f6f9a6ccad0","$4a89f93cd5289383$export$3b11bc38611c5941","$4a89f93cd5289383$export$895d4931dd696e25","$4a89f93cd5289383$export$989167234458594d","$4a89f93cd5289383$export$37ebfd237811b1eb","$4a89f93cd5289383$export$b6867fc5221f9f65","$lMX1H","$wtIgl","$lgTAP","$jiUaC","$4a89f93cd5289383$var$h","styled","a","__esModule","default","unit","onClose","className","features","Set","lithologyFeatures","actions","hiddenActions","onSelectUnit","onClickItem","showJSON","setShowJSON","content","data","showRoot","$4a89f93cd5289383$var$UnitDetailsContent","title","defaultNameFunction","has","icon","small","minimal","key","enabled","onClick","evt","stopPropagation","unit_id","if","Proportion","Attributes","getItemHref","environments","envMap","lithologies","lithMap","minThickness","maxThickness","_unit","useMacrostratDefs","environ","map","env","environ_id","lith","lith_id","outcropField","outcrop","label","value","thicknessOrHeightRange","thickness","thicknessUnit","min_thick","max_thick","$4a89f93cd5289383$var$formatSignificance","$4a89f93cd5289383$var$formatRange","t_pos","b_pos","children","colorSwatch","style","backgroundColor","unit1","color","$4a89f93cd5289383$var$ColumnNameField","col_id","$4a89f93cd5289383$var$AgeField","b_age","t_age","$4a89f93cd5289383$var$IntervalProportions","strat_name_id","$4a89f93cd5289383$var$StratNameField","$4a89f93cd5289383$var$UnitIDList","units","units_above","showNames","units_below","refs","inline","showIdentifier","colData","useMacrostratColumnInfo","inner","name","col_name","rest","length","$4a89f93cd5289383$var$BibInfo","stratNames","useMacrostratData","stratNameData","strat_name_long","clickable","refData","$4a89f93cd5289383$var$Citation","tag","ref_id","i","author","pub_year","ref","age","maximumFractionDigits","minimumFractionDigits","toLocaleString","unitsMap","useColumnUnitsMap","extUnits","u1","filter","d","unitID","unitData","colID","info","$4a89f93cd5289383$var$UnitIdentifier","i0","b_int_id","i1","t_int_id","b_prop","t_prop","intervalMap","interval0","b_int_name","p0","int1","p1","$4a89f93cd5289383$var$Proportion","handleClick","event","undefined","interval","prefix","t_int_name","$4a89f93cd5289383$var$formatProportion","toFixed","min","max","precision","Math","pow","repeat","UnitDetailsPanel","LegendPanelHeader","Duration","ReferencesField","Identifier","AgeLabel","ClickableText"],"version":3,"file":"column-views.5e73411d.js.map","sourceRoot":"../../../../"}