@macrostrat/column-views 2.4.2 → 2.4.3

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 (192) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/esm/{column-views.1b5bf0c6.js → column-views.0b3c0d18.js} +5 -2
  3. package/dist/esm/column-views.0b3c0d18.js.map +1 -0
  4. package/dist/esm/{column-views.88b2418b.js → column-views.0ed9da35.js} +3 -3
  5. package/dist/esm/{column-views.88b2418b.js.map → column-views.0ed9da35.js.map} +1 -1
  6. package/dist/esm/{column-views.82eb5026.js → column-views.0faf79a9.js} +3 -3
  7. package/dist/esm/{column-views.82eb5026.js.map → column-views.0faf79a9.js.map} +1 -1
  8. package/dist/esm/{column-views.8ce33ec6.js → column-views.19539293.js} +2 -2
  9. package/dist/esm/{column-views.8ce33ec6.js.map → column-views.19539293.js.map} +1 -1
  10. package/dist/esm/{column-views.ce5251f7.js → column-views.1af3ec1f.js} +2 -2
  11. package/dist/esm/{column-views.ce5251f7.js.map → column-views.1af3ec1f.js.map} +1 -1
  12. package/dist/esm/{column-views.1ef55568.js → column-views.2a0010a3.js} +3 -3
  13. package/dist/esm/{column-views.1ef55568.js.map → column-views.2a0010a3.js.map} +1 -1
  14. package/dist/esm/{column-views.f35c4621.js → column-views.334c3947.js} +2 -2
  15. package/dist/esm/{column-views.f35c4621.js.map → column-views.334c3947.js.map} +1 -1
  16. package/dist/esm/{column-views.c93b63db.js → column-views.337b40a2.js} +3 -3
  17. package/dist/esm/{column-views.c93b63db.js.map → column-views.337b40a2.js.map} +1 -1
  18. package/dist/esm/{column-views.633c42a3.js → column-views.33d35a44.js} +25 -3
  19. package/dist/esm/column-views.33d35a44.js.map +1 -0
  20. package/dist/esm/{column-views.c1e507e6.js → column-views.362aae9a.js} +2 -2
  21. package/dist/esm/{column-views.c1e507e6.js.map → column-views.362aae9a.js.map} +1 -1
  22. package/dist/esm/{column-views.083fb787.js → column-views.4252a555.js} +5 -5
  23. package/dist/esm/{column-views.083fb787.js.map → column-views.4252a555.js.map} +1 -1
  24. package/dist/esm/{column-views.99cb1c41.js → column-views.45c70ba4.js} +3 -3
  25. package/dist/esm/{column-views.99cb1c41.js.map → column-views.45c70ba4.js.map} +1 -1
  26. package/dist/esm/{column-views.40d3688c.js → column-views.47b7d9ca.js} +2 -2
  27. package/dist/esm/{column-views.40d3688c.js.map → column-views.47b7d9ca.js.map} +1 -1
  28. package/dist/esm/{column-views.b4e1236d.js → column-views.47ca059d.js} +3 -3
  29. package/dist/esm/column-views.47ca059d.js.map +1 -0
  30. package/dist/esm/{column-views.3090f246.js → column-views.636d6553.js} +2 -2
  31. package/dist/esm/{column-views.3090f246.js.map → column-views.636d6553.js.map} +1 -1
  32. package/dist/esm/{column-views.a94e99a2.js → column-views.64f6ddd3.js} +2 -2
  33. package/dist/esm/{column-views.a94e99a2.js.map → column-views.64f6ddd3.js.map} +1 -1
  34. package/dist/esm/{column-views.88436022.js → column-views.6519a353.js} +2 -2
  35. package/dist/esm/{column-views.88436022.js.map → column-views.6519a353.js.map} +1 -1
  36. package/dist/esm/{column-views.18655508.js → column-views.6cff6659.js} +4 -4
  37. package/dist/esm/{column-views.18655508.js.map → column-views.6cff6659.js.map} +1 -1
  38. package/dist/esm/{column-views.fedccce9.js → column-views.70387120.js} +2 -2
  39. package/dist/esm/{column-views.fedccce9.js.map → column-views.70387120.js.map} +1 -1
  40. package/dist/esm/{column-views.3ae8f23d.js → column-views.74837922.js} +2 -2
  41. package/dist/esm/{column-views.3ae8f23d.js.map → column-views.74837922.js.map} +1 -1
  42. package/dist/esm/{column-views.e885211d.js → column-views.7bfb4318.js} +2 -2
  43. package/dist/esm/{column-views.e885211d.js.map → column-views.7bfb4318.js.map} +1 -1
  44. package/dist/esm/{column-views.f56e604d.js → column-views.7dc53f1b.js} +4 -4
  45. package/dist/esm/{column-views.f56e604d.js.map → column-views.7dc53f1b.js.map} +1 -1
  46. package/dist/esm/{column-views.ab2cc6cb.js → column-views.85df21ec.js} +11 -10
  47. package/dist/esm/column-views.85df21ec.js.map +1 -0
  48. package/dist/esm/{column-views.4e9b8594.js → column-views.87c589b7.js} +2 -2
  49. package/dist/esm/{column-views.4e9b8594.js.map → column-views.87c589b7.js.map} +1 -1
  50. package/dist/esm/{column-views.77322764.js → column-views.8da2b857.js} +2 -2
  51. package/dist/esm/{column-views.77322764.js.map → column-views.8da2b857.js.map} +1 -1
  52. package/dist/esm/{column-views.b957dc19.js → column-views.8fb37de7.js} +2 -2
  53. package/dist/esm/{column-views.b957dc19.js.map → column-views.8fb37de7.js.map} +1 -1
  54. package/dist/esm/{column-views.d4e50f74.js → column-views.905ddea0.js} +3 -3
  55. package/dist/esm/{column-views.d4e50f74.js.map → column-views.905ddea0.js.map} +1 -1
  56. package/dist/esm/{column-views.91c18fe3.js → column-views.9512c5d5.js} +10 -10
  57. package/dist/esm/{column-views.91c18fe3.js.map → column-views.9512c5d5.js.map} +1 -1
  58. package/dist/esm/{column-views.85d57d04.js → column-views.9905b91c.js} +4 -4
  59. package/dist/esm/{column-views.85d57d04.js.map → column-views.9905b91c.js.map} +1 -1
  60. package/dist/esm/{column-views.275ba52b.js → column-views.a4f394fe.js} +2 -2
  61. package/dist/esm/{column-views.275ba52b.js.map → column-views.a4f394fe.js.map} +1 -1
  62. package/dist/esm/{column-views.dd2d5a6d.js → column-views.b2142cd8.js} +5 -5
  63. package/dist/esm/{column-views.dd2d5a6d.js.map → column-views.b2142cd8.js.map} +1 -1
  64. package/dist/esm/{column-views.6f0d4f3a.js → column-views.b7cf0da2.js} +2 -2
  65. package/dist/esm/{column-views.6f0d4f3a.js.map → column-views.b7cf0da2.js.map} +1 -1
  66. package/dist/esm/{column-views.af4278f0.js → column-views.b88d4bbe.js} +3 -3
  67. package/dist/esm/{column-views.af4278f0.js.map → column-views.b88d4bbe.js.map} +1 -1
  68. package/dist/esm/{column-views.5ec7294d.js → column-views.c750a6df.js} +3 -3
  69. package/dist/esm/{column-views.5ec7294d.js.map → column-views.c750a6df.js.map} +1 -1
  70. package/dist/esm/{column-views.fc4860bd.js → column-views.cb1cc9f2.js} +4 -4
  71. package/dist/esm/{column-views.fc4860bd.js.map → column-views.cb1cc9f2.js.map} +1 -1
  72. package/dist/esm/{column-views.f904e6d7.js → column-views.ce000969.js} +3 -3
  73. package/dist/esm/{column-views.f904e6d7.js.map → column-views.ce000969.js.map} +1 -1
  74. package/dist/esm/{column-views.ee2fd38f.js → column-views.d7740949.js} +3 -3
  75. package/dist/esm/{column-views.ee2fd38f.js.map → column-views.d7740949.js.map} +1 -1
  76. package/dist/esm/{column-views.088a0274.js → column-views.d7e6bf67.js} +2 -2
  77. package/dist/esm/{column-views.088a0274.js.map → column-views.d7e6bf67.js.map} +1 -1
  78. package/dist/esm/{column-views.e6882667.js → column-views.dac0a3bb.js} +5 -5
  79. package/dist/esm/{column-views.e6882667.js.map → column-views.dac0a3bb.js.map} +1 -1
  80. package/dist/esm/{column-views.11353c2c.js → column-views.e13a0a76.js} +4 -4
  81. package/dist/esm/{column-views.11353c2c.js.map → column-views.e13a0a76.js.map} +1 -1
  82. package/dist/esm/{column-views.5e830e7c.js → column-views.ea08f667.js} +8 -8
  83. package/dist/esm/{column-views.5e830e7c.js.map → column-views.ea08f667.js.map} +1 -1
  84. package/dist/esm/{column-views.bc83a85d.js → column-views.fe42d2fc.js} +2 -2
  85. package/dist/esm/{column-views.bc83a85d.js.map → column-views.fe42d2fc.js.map} +1 -1
  86. package/dist/esm/index.d.ts.map +1 -1
  87. package/dist/esm/index.js +11 -11
  88. package/dist/node/column-views.048fdcaf.js +2 -0
  89. package/dist/node/column-views.048fdcaf.js.map +1 -0
  90. package/dist/node/{column-views.796fc1de.js → column-views.04a72b35.js} +2 -2
  91. package/dist/node/{column-views.796fc1de.js.map → column-views.04a72b35.js.map} +1 -1
  92. package/dist/node/{column-views.94c8ce3e.js → column-views.0619e2da.js} +2 -2
  93. package/dist/node/{column-views.94c8ce3e.js.map → column-views.0619e2da.js.map} +1 -1
  94. package/dist/node/{column-views.66663668.js → column-views.0af5912d.js} +2 -2
  95. package/dist/node/{column-views.66663668.js.map → column-views.0af5912d.js.map} +1 -1
  96. package/dist/node/{column-views.eecdc727.js → column-views.0d254fd3.js} +2 -2
  97. package/dist/node/{column-views.eecdc727.js.map → column-views.0d254fd3.js.map} +1 -1
  98. package/dist/node/{column-views.54f7a243.js → column-views.109cb0c8.js} +2 -2
  99. package/dist/node/{column-views.54f7a243.js.map → column-views.109cb0c8.js.map} +1 -1
  100. package/dist/node/{column-views.f4063bc8.js → column-views.15b5cecc.js} +2 -2
  101. package/dist/node/{column-views.f4063bc8.js.map → column-views.15b5cecc.js.map} +1 -1
  102. package/dist/node/{column-views.6f0cb059.js → column-views.183745c0.js} +2 -2
  103. package/dist/node/{column-views.6f0cb059.js.map → column-views.183745c0.js.map} +1 -1
  104. package/dist/node/{column-views.080781ca.js → column-views.2e2158f5.js} +2 -2
  105. package/dist/node/{column-views.080781ca.js.map → column-views.2e2158f5.js.map} +1 -1
  106. package/dist/node/{column-views.f93b4175.js → column-views.306acd3f.js} +2 -2
  107. package/dist/node/{column-views.f93b4175.js.map → column-views.306acd3f.js.map} +1 -1
  108. package/dist/node/{column-views.0818254f.js → column-views.31153f29.js} +2 -2
  109. package/dist/node/{column-views.0818254f.js.map → column-views.31153f29.js.map} +1 -1
  110. package/dist/node/{column-views.6051e986.js → column-views.31da008b.js} +2 -2
  111. package/dist/node/{column-views.6051e986.js.map → column-views.31da008b.js.map} +1 -1
  112. package/dist/node/column-views.40e758b3.js +2 -0
  113. package/dist/node/column-views.40e758b3.js.map +1 -0
  114. package/dist/node/{column-views.ffbffec7.js → column-views.4a28d695.js} +2 -2
  115. package/dist/node/{column-views.ffbffec7.js.map → column-views.4a28d695.js.map} +1 -1
  116. package/dist/node/{column-views.d30231cb.js → column-views.5987bc26.js} +2 -2
  117. package/dist/node/{column-views.d30231cb.js.map → column-views.5987bc26.js.map} +1 -1
  118. package/dist/node/{column-views.784bac2a.js → column-views.5bb858c9.js} +2 -2
  119. package/dist/node/{column-views.784bac2a.js.map → column-views.5bb858c9.js.map} +1 -1
  120. package/dist/node/{column-views.fe7a5452.js → column-views.5cbada24.js} +2 -2
  121. package/dist/node/{column-views.fe7a5452.js.map → column-views.5cbada24.js.map} +1 -1
  122. package/dist/node/{column-views.8c00beb4.js → column-views.5fcd2be6.js} +2 -2
  123. package/dist/node/{column-views.8c00beb4.js.map → column-views.5fcd2be6.js.map} +1 -1
  124. package/dist/node/{column-views.bdf05ed4.js → column-views.78b2d234.js} +2 -2
  125. package/dist/node/{column-views.bdf05ed4.js.map → column-views.78b2d234.js.map} +1 -1
  126. package/dist/node/{column-views.5908556a.js → column-views.8bee789c.js} +2 -2
  127. package/dist/node/{column-views.5908556a.js.map → column-views.8bee789c.js.map} +1 -1
  128. package/dist/node/{column-views.18e86c2d.js → column-views.90c36c0b.js} +2 -2
  129. package/dist/node/{column-views.18e86c2d.js.map → column-views.90c36c0b.js.map} +1 -1
  130. package/dist/node/{column-views.87d31e0a.js → column-views.a2476e39.js} +2 -2
  131. package/dist/node/{column-views.87d31e0a.js.map → column-views.a2476e39.js.map} +1 -1
  132. package/dist/node/{column-views.39b71a38.js → column-views.a8f5ee28.js} +2 -2
  133. package/dist/node/{column-views.39b71a38.js.map → column-views.a8f5ee28.js.map} +1 -1
  134. package/dist/node/{column-views.5f3f8ccf.js → column-views.ad60c02f.js} +2 -2
  135. package/dist/node/{column-views.5f3f8ccf.js.map → column-views.ad60c02f.js.map} +1 -1
  136. package/dist/node/{column-views.72c3c6e7.js → column-views.add5e42b.js} +2 -2
  137. package/dist/node/{column-views.72c3c6e7.js.map → column-views.add5e42b.js.map} +1 -1
  138. package/dist/node/{column-views.4d8fc443.js → column-views.aff55599.js} +2 -2
  139. package/dist/node/{column-views.4d8fc443.js.map → column-views.aff55599.js.map} +1 -1
  140. package/dist/node/{column-views.4d573ded.js → column-views.b2e5f823.js} +2 -2
  141. package/dist/node/{column-views.4d573ded.js.map → column-views.b2e5f823.js.map} +1 -1
  142. package/dist/node/{column-views.64fc40d6.js → column-views.b57e5e6e.js} +2 -2
  143. package/dist/node/{column-views.64fc40d6.js.map → column-views.b57e5e6e.js.map} +1 -1
  144. package/dist/node/{column-views.a596b1f5.js → column-views.ba9108fe.js} +2 -2
  145. package/dist/node/column-views.ba9108fe.js.map +1 -0
  146. package/dist/node/{column-views.b6613ab0.js → column-views.c16a19fb.js} +2 -2
  147. package/dist/node/{column-views.b6613ab0.js.map → column-views.c16a19fb.js.map} +1 -1
  148. package/dist/node/{column-views.74fcfb9c.js → column-views.c3097d9a.js} +2 -2
  149. package/dist/node/{column-views.74fcfb9c.js.map → column-views.c3097d9a.js.map} +1 -1
  150. package/dist/node/{column-views.fa5ee6de.js → column-views.c4c15e2b.js} +2 -2
  151. package/dist/node/{column-views.fa5ee6de.js.map → column-views.c4c15e2b.js.map} +1 -1
  152. package/dist/node/{column-views.58b336f1.js → column-views.c651b684.js} +2 -2
  153. package/dist/node/{column-views.58b336f1.js.map → column-views.c651b684.js.map} +1 -1
  154. package/dist/node/{column-views.447008d0.js → column-views.cf41a6d7.js} +2 -2
  155. package/dist/node/{column-views.447008d0.js.map → column-views.cf41a6d7.js.map} +1 -1
  156. package/dist/node/{column-views.5fd6e11a.js → column-views.d22bf15c.js} +2 -2
  157. package/dist/node/{column-views.5fd6e11a.js.map → column-views.d22bf15c.js.map} +1 -1
  158. package/dist/node/{column-views.5c02450b.js → column-views.d737de1e.js} +2 -2
  159. package/dist/node/{column-views.5c02450b.js.map → column-views.d737de1e.js.map} +1 -1
  160. package/dist/node/{column-views.0d48f51d.js → column-views.da902c44.js} +2 -2
  161. package/dist/node/{column-views.0d48f51d.js.map → column-views.da902c44.js.map} +1 -1
  162. package/dist/node/{column-views.003e0c17.js → column-views.e0e20136.js} +2 -2
  163. package/dist/node/{column-views.003e0c17.js.map → column-views.e0e20136.js.map} +1 -1
  164. package/dist/node/{column-views.7e895e1a.js → column-views.ec0087a2.js} +2 -2
  165. package/dist/node/{column-views.7e895e1a.js.map → column-views.ec0087a2.js.map} +1 -1
  166. package/dist/node/{column-views.375529b1.js → column-views.f2e82230.js} +2 -2
  167. package/dist/node/{column-views.375529b1.js.map → column-views.f2e82230.js.map} +1 -1
  168. package/dist/node/{column-views.d86e6c7d.js → column-views.fb3ed7cc.js} +2 -2
  169. package/dist/node/{column-views.d86e6c7d.js.map → column-views.fb3ed7cc.js.map} +1 -1
  170. package/dist/node/column-views.fcb243a2.js +2 -0
  171. package/dist/node/column-views.fcb243a2.js.map +1 -0
  172. package/dist/node/index.js +1 -1
  173. package/dist/node/index.js.map +1 -1
  174. package/package.json +1 -1
  175. package/src/correlation-chart/stories/correlation-chart.stories.ts +1 -24
  176. package/src/correlation-chart/stories/utils.ts +24 -0
  177. package/src/maps/_shared/styles.ts +12 -2
  178. package/src/maps/column-navigation/mapbox/index.ts +1 -0
  179. package/src/prepare-units/composite-scale.ts +9 -1
  180. package/src/prepare-units/helpers.ts +2 -2
  181. package/src/unit-details/panel.ts +15 -7
  182. package/dist/esm/column-views.1b5bf0c6.js.map +0 -1
  183. package/dist/esm/column-views.633c42a3.js.map +0 -1
  184. package/dist/esm/column-views.ab2cc6cb.js.map +0 -1
  185. package/dist/esm/column-views.b4e1236d.js.map +0 -1
  186. package/dist/node/column-views.021a6961.js +0 -2
  187. package/dist/node/column-views.021a6961.js.map +0 -1
  188. package/dist/node/column-views.139b0855.js +0 -2
  189. package/dist/node/column-views.139b0855.js.map +0 -1
  190. package/dist/node/column-views.5e73411d.js +0 -2
  191. package/dist/node/column-views.5e73411d.js.map +0 -1
  192. package/dist/node/column-views.a596b1f5.js.map +0 -1
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,gB,C,6C,mB,C,6C,a","sources":["<anon>","packages/column-views/src/correlation-chart/index.ts"],"sourcesContent":["import \"./column-views.58b336f1.js\";\nimport \"./column-views.ebb44b7d.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 $53af365ed50b7b69$exports = {};\n\nvar $ccQ40 = parcelRequire(\"ccQ40\");\n\nvar $dd0Et = parcelRequire(\"dd0Et\");\n$parcel$exportWildcard($53af365ed50b7b69$exports, $ccQ40);\n$parcel$exportWildcard($53af365ed50b7b69$exports, $dd0Et);\n\n\nexport {$25f1fcddbe40b91f$export$9ebf875c09445bec as CorrelationChart, $7e37f2a9ef0a1013$export$77c3cc7a57c6db5f as parseLineFromString, $7e37f2a9ef0a1013$export$8c53992169ff5301 as stringifyLine};\n//# sourceMappingURL=column-views.4d573ded.js.map\n","export * from \"./main\";\nexport * from \"./hash-string\";\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","$53af365ed50b7b69$exports","$ccQ40","$dd0Et","$25f1fcddbe40b91f$export$9ebf875c09445bec","CorrelationChart","$7e37f2a9ef0a1013$export$77c3cc7a57c6db5f","parseLineFromString","$7e37f2a9ef0a1013$export$8c53992169ff5301","stringifyLine"],"version":3,"file":"column-views.4d573ded.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,gB,C,6C,mB,C,6C,a","sources":["<anon>","packages/column-views/src/correlation-chart/index.ts"],"sourcesContent":["import \"./column-views.c651b684.js\";\nimport \"./column-views.ebb44b7d.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 $53af365ed50b7b69$exports = {};\n\nvar $ccQ40 = parcelRequire(\"ccQ40\");\n\nvar $dd0Et = parcelRequire(\"dd0Et\");\n$parcel$exportWildcard($53af365ed50b7b69$exports, $ccQ40);\n$parcel$exportWildcard($53af365ed50b7b69$exports, $dd0Et);\n\n\nexport {$25f1fcddbe40b91f$export$9ebf875c09445bec as CorrelationChart, $7e37f2a9ef0a1013$export$77c3cc7a57c6db5f as parseLineFromString, $7e37f2a9ef0a1013$export$8c53992169ff5301 as stringifyLine};\n//# sourceMappingURL=column-views.b2e5f823.js.map\n","export * from \"./main\";\nexport * from \"./hash-string\";\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","$53af365ed50b7b69$exports","$ccQ40","$dd0Et","$25f1fcddbe40b91f$export$9ebf875c09445bec","CorrelationChart","$7e37f2a9ef0a1013$export$77c3cc7a57c6db5f","parseLineFromString","$7e37f2a9ef0a1013$export$8c53992169ff5301","stringifyLine"],"version":3,"file":"column-views.b2e5f823.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.e7e26765.js";import"./column-views.080781ca.js";import"./column-views.7b6e7d82.js";import"./column-views.cdcce702.js";import"./column-views.dbb4a46b.js";import"./column-views.6bba8c57.js";import{ColumnAxisType as e,ColumnContext as t,ColumnLayoutContext as o,useColumn as i,useGeologicPattern as a,zigZagBoxPath as n,ForeignObject as r,PatternDefsProvider as l}from"@macrostrat/column-components";import{SizeAwareLabel as s}from"@macrostrat/ui-components";import c from"@macrostrat/hyper";import{useContext as u,forwardRef as d,useMemo as m}from"react";import p from"classnames";var f=globalThis,b={},h={},g=f.parcelRequirea149;null==g&&((g=function(e){if(e in b)return b[e].exports;if(e in h){var t=h[e];delete h[e];var o={id:e,exports:{}};return b[e]=o,t.call(o.exports,o,o.exports),o.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){h[e]=t},f.parcelRequirea149=g),g.register;var v=g("5VyZI"),x=g("lgTAP"),w=g("5SO8b"),y=g("klU0I"),C=g("iWhRv"),_=g("bfmPX");let T=c.styled(y&&y.__esModule?y.default:y);function F(i,a={}){let{widthFraction:n=1,axisType:r=e.AGE,padding:l=0}=a,{scale:s}=u(t),{width:c}=u(o),[d,m]=(0,C.getUnitHeightRange)(i,r),p=s(m),f=Math.abs(s(d)-p);return{x:c*(1-n)-l,y:p-l,height:f+2*l,width:n*c+2*l}}function k(e){let{division:t,children:o,className:a,widthFraction:n=1,axisType:r,nColumns:l,...s}=e,{axisType:c}=i(),u=(0,x.useLithologies)(),d={...F(t,{widthFraction:n,axisType:c}),...s},m=(0,_.getMixedUnitColor)(t,u,null,!1),[p,f,b]=(0,w.useUnitSelectionTarget)(t);return T("g.unit",{className:a,style:{"--column-unit-background-color":m,"--column-stroke-color":m}},[T("rect.unit.background",{ref:p,...d,fill:m,fillOpacity:.8,stroke:m,onClick:b}),T.if(f)("rect.selection-overlay",d)])}function N(e){let{division:t,children:o,fill:n,defaultFill:r="transparent",className:l,widthFraction:s=1,backgroundColor:c,patternColor:u,patternID:d,axisType:m,...f}=e,{axisType:b}=i(),h=null!=t.t_clip_pos,g=null!=t.b_clip_pos,x={...F(t,{widthFraction:s,axisType:b}),...f,overflowTop:h,overflowBottom:g},y=d??(0,v.resolveID)(t),C=n??a(y,r),_=p(l,{colored:null!=c}),[k,N,U]=(0,w.useUnitSelectionTarget)(t);return T("g.unit",{className:_,style:{"--column-unit-background-color":c}},[T(H,{...x,fill:c,onClick:U,className:"background"}),T(H,{ref:k,...x,fill:C,onClick:U,className:"unit"}),T.if(N)(H,{...x,className:"selection-overlay"}),o])}let H=d((e,t)=>{let{x:o,y:i,width:a,height:r,overflowTop:l=!1,overflowBottom:s=!1,...c}=e;return l||s?T("path",{d:n(o,i,a,r,l,s),ref:t,...c}):T("rect",{x:o,y:i,width:a,height:r,ref:t,...c})});function U(e){let{division:t,label:o,onLabelUpdated:a,widthFraction:n,showLabel:l=!0,backgroundColor:c,patternID:u,axisType:d,...m}=e,{axisType:p}=i(),f={...F(t,{widthFraction:n,axisType:p}),...m},{width:b,height:h}=f;return T(N,{className:"labeled-unit",division:t,backgroundColor:c,patternID:u,...f},[T.if(l)(r,{...f,className:"unit-label-container"},T(s,{className:"unit-overlay",labelClassName:"unit-label",style:{width:b,height:h},label:o,onVisibilityChanged(e){a(o,e)}}))])}function $(e){let{unitComponent:o=N,unitComponentProps:i={}}=e,{divisions:a}=u(t);if(0==a.length)return console.warn("No divisions found in column context"),null;let n=m(()=>a.map((e,t)=>T(o,{division:e,key:e.unit_id,...i})),[a,o,i]);return T(l,{resolveID:v.resolveID,scalePattern:v.scalePattern},T("g.divisions",n))}export{k as MinimalUnit,N as Unit,U as LabeledUnit,$ as UnitBoxes};
2
- //# sourceMappingURL=column-views.64fc40d6.js.map
1
+ import"./column-views.e7e26765.js";import"./column-views.2e2158f5.js";import"./column-views.7b6e7d82.js";import"./column-views.cdcce702.js";import"./column-views.dbb4a46b.js";import"./column-views.6bba8c57.js";import{ColumnAxisType as e,ColumnContext as t,ColumnLayoutContext as o,useColumn as i,useGeologicPattern as a,zigZagBoxPath as n,ForeignObject as r,PatternDefsProvider as l}from"@macrostrat/column-components";import{SizeAwareLabel as s}from"@macrostrat/ui-components";import c from"@macrostrat/hyper";import{useContext as u,forwardRef as d,useMemo as m}from"react";import p from"classnames";var f=globalThis,b={},h={},g=f.parcelRequirea149;null==g&&((g=function(e){if(e in b)return b[e].exports;if(e in h){var t=h[e];delete h[e];var o={id:e,exports:{}};return b[e]=o,t.call(o.exports,o,o.exports),o.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){h[e]=t},f.parcelRequirea149=g),g.register;var v=g("5VyZI"),x=g("lgTAP"),w=g("5SO8b"),y=g("klU0I"),C=g("iWhRv"),_=g("bfmPX");let T=c.styled(y&&y.__esModule?y.default:y);function F(i,a={}){let{widthFraction:n=1,axisType:r=e.AGE,padding:l=0}=a,{scale:s}=u(t),{width:c}=u(o),[d,m]=(0,C.getUnitHeightRange)(i,r),p=s(m),f=Math.abs(s(d)-p);return{x:c*(1-n)-l,y:p-l,height:f+2*l,width:n*c+2*l}}function k(e){let{division:t,children:o,className:a,widthFraction:n=1,axisType:r,nColumns:l,...s}=e,{axisType:c}=i(),u=(0,x.useLithologies)(),d={...F(t,{widthFraction:n,axisType:c}),...s},m=(0,_.getMixedUnitColor)(t,u,null,!1),[p,f,b]=(0,w.useUnitSelectionTarget)(t);return T("g.unit",{className:a,style:{"--column-unit-background-color":m,"--column-stroke-color":m}},[T("rect.unit.background",{ref:p,...d,fill:m,fillOpacity:.8,stroke:m,onClick:b}),T.if(f)("rect.selection-overlay",d)])}function N(e){let{division:t,children:o,fill:n,defaultFill:r="transparent",className:l,widthFraction:s=1,backgroundColor:c,patternColor:u,patternID:d,axisType:m,...f}=e,{axisType:b}=i(),h=null!=t.t_clip_pos,g=null!=t.b_clip_pos,x={...F(t,{widthFraction:s,axisType:b}),...f,overflowTop:h,overflowBottom:g},y=d??(0,v.resolveID)(t),C=n??a(y,r),_=p(l,{colored:null!=c}),[k,N,U]=(0,w.useUnitSelectionTarget)(t);return T("g.unit",{className:_,style:{"--column-unit-background-color":c}},[T(H,{...x,fill:c,onClick:U,className:"background"}),T(H,{ref:k,...x,fill:C,onClick:U,className:"unit"}),T.if(N)(H,{...x,className:"selection-overlay"}),o])}let H=d((e,t)=>{let{x:o,y:i,width:a,height:r,overflowTop:l=!1,overflowBottom:s=!1,...c}=e;return l||s?T("path",{d:n(o,i,a,r,l,s),ref:t,...c}):T("rect",{x:o,y:i,width:a,height:r,ref:t,...c})});function U(e){let{division:t,label:o,onLabelUpdated:a,widthFraction:n,showLabel:l=!0,backgroundColor:c,patternID:u,axisType:d,...m}=e,{axisType:p}=i(),f={...F(t,{widthFraction:n,axisType:p}),...m},{width:b,height:h}=f;return T(N,{className:"labeled-unit",division:t,backgroundColor:c,patternID:u,...f},[T.if(l)(r,{...f,className:"unit-label-container"},T(s,{className:"unit-overlay",labelClassName:"unit-label",style:{width:b,height:h},label:o,onVisibilityChanged(e){a(o,e)}}))])}function $(e){let{unitComponent:o=N,unitComponentProps:i={}}=e,{divisions:a}=u(t);if(0==a.length)return console.warn("No divisions found in column context"),null;let n=m(()=>a.map((e,t)=>T(o,{division:e,key:e.unit_id,...i})),[a,o,i]);return T(l,{resolveID:v.resolveID,scalePattern:v.scalePattern},T("g.divisions",n))}export{k as MinimalUnit,N as Unit,U as LabeledUnit,$ as UnitBoxes};
2
+ //# sourceMappingURL=column-views.b57e5e6e.js.map
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,kB,C,C,iB,C,C,uB,C,C,a,C,C,sB,C,C,iB,C,C,iB,C,C,uB,C,K,+B,A,Q,kB,C,K,2B,A,Q,M,mB,A,Q,c,C,C,c,C,C,W,C,K,O,A,Q,M,Y,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCsBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAkCvB,SAAS,EACP,CAAe,CACf,EAA2B,CAAC,CAAC,EAE7B,GAAM,CAAA,cACJ,EAAgB,CAAA,CAAA,SAChB,EAAW,AAAA,EAAe,GAAG,CAAA,QAC7B,EAAU,CAAA,CACX,CAAG,EACE,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,EAAW,GACvB,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,EAAW,GAEvB,CAAC,EAAc,EAAU,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAU,GAEzD,EAAI,EAAM,GACV,EAAS,KAAK,GAAG,CAAC,EAAM,GAAgB,GAE9C,MAAO,CACL,EAAG,EAAS,CAAA,EAAI,CAAA,EAAiB,EACjC,EAAG,EAAI,EACP,OAAQ,EAAS,AAAU,EAAV,EACjB,MAAO,EAAgB,EAAQ,AAAU,EAAV,CACjC,CACF,CAEO,SAAS,EAAY,CAAK,EAC/B,GAAM,CACJ,SAAU,CAAC,CAAA,SACX,CAAQ,CAAA,UACR,CAAS,CAAA,cACT,EAAgB,CAAA,CAChB,SAAU,CAAC,CACX,SAAU,CAAE,CACZ,GAAG,EACJ,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,IACf,EAAU,AAAA,CAAA,EAAA,EAAA,cAAa,AAAb,IACV,EAAS,CACb,GAAG,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","sources":["<anon>","packages/column-views/src/units/boxes.ts"],"sourcesContent":["import \"./column-views.e7e26765.js\";\nimport \"./column-views.080781ca.js\";\nimport \"./column-views.7b6e7d82.js\";\nimport \"./column-views.cdcce702.js\";\nimport \"./column-views.dbb4a46b.js\";\nimport \"./column-views.6bba8c57.js\";\nimport {ColumnAxisType as $jfrfr$ColumnAxisType, ColumnContext as $jfrfr$ColumnContext, ColumnLayoutContext as $jfrfr$ColumnLayoutContext, useColumn as $jfrfr$useColumn, useGeologicPattern as $jfrfr$useGeologicPattern, zigZagBoxPath as $jfrfr$zigZagBoxPath, ForeignObject as $jfrfr$ForeignObject, PatternDefsProvider as $jfrfr$PatternDefsProvider} from \"@macrostrat/column-components\";\nimport {SizeAwareLabel as $jfrfr$SizeAwareLabel} from \"@macrostrat/ui-components\";\nimport $jfrfr$macrostrathyper from \"@macrostrat/hyper\";\nimport {useContext as $jfrfr$useContext, forwardRef as $jfrfr$forwardRef, useMemo as $jfrfr$useMemo} from \"react\";\nimport $jfrfr$classnames from \"classnames\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\n\nvar $5VyZI = parcelRequire(\"5VyZI\");\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nvar $5SO8b = parcelRequire(\"5SO8b\");\n\nvar $klU0I = parcelRequire(\"klU0I\");\n\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $bfmPX = parcelRequire(\"bfmPX\");\nconst $82e068a44c11e855$var$h = (0, $jfrfr$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($klU0I))));\nfunction $82e068a44c11e855$var$useUnitRect(division, options = {}) {\n const { widthFraction: widthFraction = 1, axisType: axisType = (0, $jfrfr$ColumnAxisType).AGE, padding: padding = 0 } = options;\n const { scale: scale } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnContext));\n const { width: width } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnLayoutContext));\n const [bottomHeight, topHeight] = (0, $iWhRv.getUnitHeightRange)(division, axisType);\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2\n };\n}\nfunction $82e068a44c11e855$export$d54fdbabca27e53(props) {\n const { division: d, children: children, className: className, widthFraction: widthFraction = 1, axisType: _, nColumns: __, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const lithMap = (0, $lgTAP.useLithologies)();\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(d, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds\n };\n const backgroundColor = (0, $bfmPX.getMixedUnitColor)(d, lithMap, null, false);\n const [ref, selected, onClick] = (0, $5SO8b.useUnitSelectionTarget)(d);\n return $82e068a44c11e855$var$h(\"g.unit\", {\n className: className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor\n }\n }, [\n $82e068a44c11e855$var$h(\"rect.unit.background\", {\n ref: ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick: onClick\n }),\n $82e068a44c11e855$var$h.if(selected)(\"rect.selection-overlay\", bounds)\n ]);\n}\nfunction $82e068a44c11e855$export$1d8b9ae22d404866(props) {\n const { division: d, children: children, fill: fill, defaultFill: defaultFill = \"transparent\", className: className, widthFraction: widthFraction = 1, backgroundColor: backgroundColor, patternColor: patternColor, patternID: patternID, axisType: _, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(d, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom\n };\n const _patternID = patternID ?? (0, $5VyZI.resolveID)(d);\n let _fill = fill ?? (0, $jfrfr$useGeologicPattern)(_patternID, defaultFill);\n const hasBackgroundColor = backgroundColor != null;\n const _className = (0, $jfrfr$classnames)(className, {\n colored: hasBackgroundColor\n });\n const [ref, selected, onClick] = (0, $5SO8b.useUnitSelectionTarget)(d);\n return $82e068a44c11e855$var$h(\"g.unit\", {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor\n }\n }, [\n $82e068a44c11e855$var$h($82e068a44c11e855$var$UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick: onClick,\n className: \"background\"\n }),\n $82e068a44c11e855$var$h($82e068a44c11e855$var$UnitRect, {\n ref: ref,\n ...bounds,\n fill: _fill,\n onClick: //mask,\n onClick,\n className: \"unit\"\n }),\n $82e068a44c11e855$var$h.if(selected)($82e068a44c11e855$var$UnitRect, {\n ...bounds,\n className: \"selection-overlay\"\n }),\n //defs,\n children\n ]);\n}\nconst $82e068a44c11e855$var$UnitRect = (0, $jfrfr$forwardRef)((props, ref)=>{\n const { x: x, y: y, width: width, height: height, overflowTop: overflowTop = false, overflowBottom: overflowBottom = false, ...rest } = props;\n if (!overflowTop && !overflowBottom) return $82e068a44c11e855$var$h(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n ref: ref,\n ...rest\n });\n else {\n const d = (0, $jfrfr$zigZagBoxPath)(x, y, width, height, overflowTop, overflowBottom);\n return $82e068a44c11e855$var$h(\"path\", {\n d: d,\n ref: ref,\n ...rest\n });\n }\n});\nfunction $82e068a44c11e855$export$b4f0ca233b98f9af(props) {\n const { division: division, label: label, onLabelUpdated: onLabelUpdated, widthFraction: widthFraction, showLabel: showLabel = true, backgroundColor: backgroundColor, patternID: patternID, axisType: _, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(division, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds\n };\n const { width: width, height: height } = bounds;\n return $82e068a44c11e855$var$h($82e068a44c11e855$export$1d8b9ae22d404866, {\n className: \"labeled-unit\",\n division: division,\n backgroundColor: backgroundColor,\n patternID: patternID,\n ...bounds\n }, [\n $82e068a44c11e855$var$h.if(showLabel)((0, $jfrfr$ForeignObject), {\n ...bounds,\n className: \"unit-label-container\"\n }, $82e068a44c11e855$var$h((0, $jfrfr$SizeAwareLabel), {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: {\n width: width,\n height: height\n },\n label: label,\n onVisibilityChanged (viz) {\n onLabelUpdated(label, viz);\n }\n }))\n ]);\n}\nfunction $82e068a44c11e855$export$5d1cdfabe8dc8085(props) {\n const { unitComponent: unitComponent = $82e068a44c11e855$export$1d8b9ae22d404866, unitComponentProps: unitComponentProps = {} } = props;\n const { divisions: divisions } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnContext));\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n const children = (0, $jfrfr$useMemo)(()=>{\n return divisions.map((division, i)=>{\n // @ts-ignore\n return $82e068a44c11e855$var$h(unitComponent, {\n division: division,\n key: division.unit_id,\n ...unitComponentProps\n });\n });\n }, [\n divisions,\n unitComponent,\n unitComponentProps\n ]);\n return $82e068a44c11e855$var$h((0, $jfrfr$PatternDefsProvider), {\n resolveID: $5VyZI.resolveID,\n scalePattern: $5VyZI.scalePattern\n }, $82e068a44c11e855$var$h(\"g.divisions\", children));\n}\n\n\nexport {$82e068a44c11e855$export$d54fdbabca27e53 as MinimalUnit, $82e068a44c11e855$export$1d8b9ae22d404866 as Unit, $82e068a44c11e855$export$b4f0ca233b98f9af as LabeledUnit, $82e068a44c11e855$export$5d1cdfabe8dc8085 as UnitBoxes};\n//# sourceMappingURL=column-views.64fc40d6.js.map\n","import {\n ColumnAxisType,\n ColumnContext,\n ColumnLayoutContext,\n ForeignObject,\n PatternDefsProvider,\n useColumn,\n useGeologicPattern,\n zigZagBoxPath,\n} from \"@macrostrat/column-components\";\nimport { SizeAwareLabel, Clickable } from \"@macrostrat/ui-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport { forwardRef, ReactNode, useContext, useMemo } from \"react\";\nimport { resolveID, scalePattern } from \"./resolvers\";\nimport { useUnitSelectionTarget, useLithologies } from \"../data-provider\";\nimport { IUnit } from \"./types\";\nimport styles from \"./boxes.module.sass\";\nimport classNames from \"classnames\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { getMixedUnitColor } from \"./colors\";\nimport type { RectBounds } from \"./types\";\n\nconst h = hyper.styled(styles);\n\ninterface UnitRectOptions {\n widthFraction?: number;\n axisType?: ColumnAxisType;\n // Padding to create overflow for zig-zags or other ornamented edges\n padding?: number;\n}\n\ninterface UnitProps extends Clickable, Partial<RectBounds>, UnitRectOptions {\n division: IUnit;\n resolveID?(IUnit): string;\n UUID?: string;\n defaultFill?: string;\n widthFraction?: number;\n children?: ReactNode;\n className?: string;\n fill?: string;\n backgroundColor?: string;\n patternColor?: string;\n patternID?: string | number;\n}\n\nexport interface LabeledUnitProps\n extends UnitRectOptions, Clickable, Partial<RectBounds> {\n division: IUnit;\n patternID?: string | number;\n label: string;\n onLabelUpdated?(label: string, shown: boolean);\n halfWidth?: boolean;\n showLabel?: boolean;\n backgroundColor?: string;\n}\n\nfunction useUnitRect(\n division: IUnit,\n options: UnitRectOptions = {},\n): RectBounds {\n const {\n widthFraction = 1,\n axisType = ColumnAxisType.AGE,\n padding = 0,\n } = options;\n const { scale } = useContext(ColumnContext);\n const { width } = useContext(ColumnLayoutContext);\n\n const [bottomHeight, topHeight] = getUnitHeightRange(division, axisType);\n\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2,\n };\n}\n\nexport function MinimalUnit(props) {\n const {\n division: d,\n children,\n className,\n widthFraction = 1,\n axisType: _, // not sure why this is brought in...\n nColumns: __,\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const lithMap = useLithologies();\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n };\n\n const backgroundColor = getMixedUnitColor(d, lithMap, null, false);\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor,\n },\n },\n [\n h(\"rect.unit.background\", {\n ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick,\n }),\n h.if(selected)(\"rect.selection-overlay\", bounds),\n ],\n );\n}\n\nfunction Unit(props: UnitProps) {\n const {\n division: d,\n children,\n fill,\n defaultFill = \"transparent\",\n className,\n widthFraction = 1,\n backgroundColor,\n patternColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom,\n };\n const _patternID = patternID ?? resolveID(d);\n let _fill = fill ?? useGeologicPattern(_patternID, defaultFill);\n\n const hasBackgroundColor = backgroundColor != null;\n\n const _className = classNames(className, { colored: hasBackgroundColor });\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n },\n },\n [\n h(UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick,\n className: \"background\",\n }),\n h(UnitRect, {\n ref,\n ...bounds,\n fill: _fill,\n //mask,\n onClick,\n className: \"unit\",\n }),\n h.if(selected)(UnitRect, { ...bounds, className: \"selection-overlay\" }),\n //defs,\n children,\n ],\n );\n}\n\ninterface UnitRectProps {\n x: number;\n y: number;\n width: number;\n height: number;\n className: string;\n // Used to determine if the rect should have a zig-zag edge on the top or bottom\n overflowTop?: boolean;\n overflowBottom?: boolean;\n [key: string]: any;\n}\n\nconst UnitRect = forwardRef((props: UnitRectProps, ref) => {\n const {\n x,\n y,\n width,\n height,\n overflowTop = false,\n overflowBottom = false,\n ...rest\n } = props;\n\n if (!overflowTop && !overflowBottom) {\n return h(\"rect\", {\n x,\n y,\n width,\n height,\n ref,\n ...rest,\n });\n } else {\n const d = zigZagBoxPath(x, y, width, height, overflowTop, overflowBottom);\n return h(\"path\", {\n d,\n ref,\n ...rest,\n });\n }\n});\n\nfunction LabeledUnit(props: LabeledUnitProps) {\n const {\n division,\n label,\n onLabelUpdated,\n widthFraction,\n showLabel = true,\n backgroundColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const bounds = {\n ...useUnitRect(division, { widthFraction, axisType }),\n ...baseBounds,\n };\n const { width, height } = bounds;\n return h(\n Unit,\n {\n className: \"labeled-unit\",\n division,\n backgroundColor,\n patternID,\n ...bounds,\n },\n [\n h.if(showLabel)(\n ForeignObject,\n { ...bounds, className: \"unit-label-container\" },\n h(SizeAwareLabel, {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: { width, height },\n label,\n onVisibilityChanged(viz) {\n onLabelUpdated(label, viz);\n },\n }),\n ),\n ],\n );\n}\n\nfunction UnitBoxes<T>(props: {\n unitComponent: React.FunctionComponent<{ division: T }>;\n unitComponentProps?: any;\n transformDivisions?(divisions: T[]): T[];\n transformDivision?: (\n division: any,\n index: number,\n divisions: any[],\n ) => T | null;\n}) {\n const { unitComponent = Unit, unitComponentProps = {} } = props;\n const { divisions } = useContext(ColumnContext);\n\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n\n const children = useMemo(() => {\n return divisions.map((division: any, i) => {\n // @ts-ignore\n return h(unitComponent, {\n division,\n key: division.unit_id,\n ...unitComponentProps,\n });\n });\n }, [divisions, unitComponent, unitComponentProps]);\n\n return h(\n PatternDefsProvider,\n { resolveID, scalePattern },\n h(\"g.divisions\", children),\n );\n}\n\nexport { LabeledUnit, Unit, UnitBoxes, UnitProps };\n"],"names":["ColumnAxisType","$jfrfr$ColumnAxisType","ColumnContext","$jfrfr$ColumnContext","ColumnLayoutContext","$jfrfr$ColumnLayoutContext","useColumn","$jfrfr$useColumn","useGeologicPattern","$jfrfr$useGeologicPattern","zigZagBoxPath","$jfrfr$zigZagBoxPath","ForeignObject","$jfrfr$ForeignObject","PatternDefsProvider","$jfrfr$PatternDefsProvider","SizeAwareLabel","$jfrfr$SizeAwareLabel","$jfrfr$macrostrathyper","useContext","$jfrfr$useContext","forwardRef","$jfrfr$forwardRef","useMemo","$jfrfr$useMemo","$jfrfr$classnames","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$5VyZI","$lgTAP","$5SO8b","$klU0I","$iWhRv","$bfmPX","$82e068a44c11e855$var$h","styled","a","__esModule","default","$82e068a44c11e855$var$useUnitRect","division","options","widthFraction","axisType","AGE","padding","scale","width","bottomHeight","topHeight","getUnitHeightRange","y","height","Math","abs","x","$82e068a44c11e855$export$d54fdbabca27e53","props","d","children","className","_","nColumns","__","baseBounds","lithMap","useLithologies","bounds","backgroundColor","getMixedUnitColor","ref","selected","onClick","useUnitSelectionTarget","style","fill","fillOpacity","stroke","if","$82e068a44c11e855$export$1d8b9ae22d404866","defaultFill","patternColor","patternID","hasOverflowTop","t_clip_pos","hasOverflowBottom","b_clip_pos","overflowTop","overflowBottom","_patternID","resolveID","_fill","_className","colored","$82e068a44c11e855$var$UnitRect","rest","$82e068a44c11e855$export$b4f0ca233b98f9af","label","onLabelUpdated","showLabel","labelClassName","onVisibilityChanged","viz","$82e068a44c11e855$export$5d1cdfabe8dc8085","unitComponent","unitComponentProps","divisions","length","console","warn","map","i","key","unit_id","scalePattern","MinimalUnit","Unit","LabeledUnit","UnitBoxes"],"version":3,"file":"column-views.64fc40d6.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,kB,C,C,iB,C,C,uB,C,C,a,C,C,sB,C,C,iB,C,C,iB,C,C,uB,C,K,+B,A,Q,kB,C,K,2B,A,Q,M,mB,A,Q,c,C,C,c,C,C,W,C,K,O,A,Q,M,Y,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCsBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAkCvB,SAAS,EACP,CAAe,CACf,EAA2B,CAAC,CAAC,EAE7B,GAAM,CAAA,cACJ,EAAgB,CAAA,CAAA,SAChB,EAAW,AAAA,EAAe,GAAG,CAAA,QAC7B,EAAU,CAAA,CACX,CAAG,EACE,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,EAAW,GACvB,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,EAAW,GAEvB,CAAC,EAAc,EAAU,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAU,GAEzD,EAAI,EAAM,GACV,EAAS,KAAK,GAAG,CAAC,EAAM,GAAgB,GAE9C,MAAO,CACL,EAAG,EAAS,CAAA,EAAI,CAAA,EAAiB,EACjC,EAAG,EAAI,EACP,OAAQ,EAAS,AAAU,EAAV,EACjB,MAAO,EAAgB,EAAQ,AAAU,EAAV,CACjC,CACF,CAEO,SAAS,EAAY,CAAK,EAC/B,GAAM,CACJ,SAAU,CAAC,CAAA,SACX,CAAQ,CAAA,UACR,CAAS,CAAA,cACT,EAAgB,CAAA,CAChB,SAAU,CAAC,CACX,SAAU,CAAE,CACZ,GAAG,EACJ,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,IACf,EAAU,AAAA,CAAA,EAAA,EAAA,cAAa,AAAb,IACV,EAAS,CACb,GAAG,EAAY,EAAG,CAAE,cAAA,EAAe,SAAA,CAAS,EAAE,CAC9C,GAAG,CAAU,AACf,EAEM,EAAkB,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,EAAG,EAAS,KAAM,CAAA,GAEtD,CAAC,EAAK,EAAU,EAAQ,CAAG,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,GAExD,OAAO,EACL,SACA,CACE,UAAA,EACA,MAAO,CACL,iCAAkC,EAClC,wBAAyB,CAC3B,CACF,EACA,CACE,EAAE,uBAAwB,CACxB,IAAA,EACA,GAAG,CAAM,CACT,KAAM,EACN,YAAa,GACb,OAAQ,EACR,QAAA,CACF,GACA,EAAE,EAAE,CAAC,GAAU,yBAA0B,GAC1C,CAEL,CAEA,SAAS,EAAK,CAAgB,EAC5B,GAAM,CACJ,SAAU,CAAC,CAAA,SACX,CAAQ,CAAA,KACR,CAAI,CAAA,YACJ,EAAc,aAAA,CAAA,UACd,CAAS,CAAA,cACT,EAAgB,CAAA,CAAA,gBAChB,CAAe,CAAA,aACf,CAAY,CAAA,UACZ,CAAS,CACT,SAAU,CAAC,CACX,GAAG,EACJ,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,IAEf,EAAiB,AAAgB,MAAhB,EAAE,UAAU,CAC7B,EAAoB,AAAgB,MAAhB,EAAE,UAAU,CAEhC,EAAS,CACb,GAAG,EAAY,EAAG,CAAE,cAAA,EAAe,SAAA,CAAS,EAAE,CAC9C,GAAG,CAAU,CACb,YAAa,EACb,eAAgB,CAClB,EACM,EAAa,GAAa,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,GACtC,EAAQ,GAAQ,AAAA,EAAmB,EAAY,GAI7C,EAAa,AAAA,EAAW,EAAW,CAAE,QAFhB,AAAmB,MAAnB,CAE4C,GAEjE,CAAC,EAAK,EAAU,EAAQ,CAAG,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,GAExD,OAAO,EACL,SACA,CACE,UAAW,EACX,MAAO,CACL,iCAAkC,CACpC,CACF,EACA,CACE,EAAE,EAAU,CACV,GAAG,CAAM,CACT,KAAM,EACN,QAAA,EACA,UAAW,YACb,GACA,EAAE,EAAU,CACV,IAAA,EACA,GAAG,CAAM,CACT,KAAM,EAEN,QAAA,EACA,UAAW,MACb,GACA,EAAE,EAAE,CAAC,GAAU,EAAU,CAAE,GAAG,CAAM,CAAE,UAAW,mBAAoB,GAErE,EACD,CAEL,CAcA,IAAM,EAAW,AAAA,EAAW,CAAC,EAAsB,KACjD,GAAM,CAAA,EACJ,CAAC,CAAA,EACD,CAAC,CAAA,MACD,CAAK,CAAA,OACL,CAAM,CAAA,YACN,EAAc,CAAA,CAAA,CAAA,eACd,EAAiB,CAAA,CAAA,CACjB,GAAG,EACJ,CAAG,SAEJ,AAAI,AAAC,GAAgB,EAWZ,EAAE,OAAQ,CACf,EAFQ,AAAA,EAAc,EAAG,EAAG,EAAO,EAAQ,EAAa,GAGxD,IAAA,EACA,GAAG,CAAI,AACT,GAdO,EAAE,OAAQ,CACf,EAAA,EACA,EAAA,EACA,MAAA,EACA,OAAA,EACA,IAAA,EACA,GAAG,CAAI,AACT,EASJ,GAEA,SAAS,EAAY,CAAuB,EAC1C,GAAM,CAAA,SACJ,CAAQ,CAAA,MACR,CAAK,CAAA,eACL,CAAc,CAAA,cACd,CAAa,CAAA,UACb,EAAY,CAAA,CAAA,CAAA,gBACZ,CAAe,CAAA,UACf,CAAS,CACT,SAAU,CAAC,CACX,GAAG,EACJ,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,IACf,EAAS,CACb,GAAG,EAAY,EAAU,CAAE,cAAA,EAAe,SAAA,CAAS,EAAE,CACrD,GAAG,CAAU,AACf,EACM,CAAA,MAAE,CAAK,CAAA,OAAE,CAAM,CAAE,CAAG,EAC1B,OAAO,EACL,EACA,CACE,UAAW,eACX,SAAA,EACA,gBAAA,EACA,UAAA,EACA,GAAG,CAAM,AACX,EACA,CACE,EAAE,EAAE,CAAC,GACH,EACA,CAAE,GAAG,CAAM,CAAE,UAAW,sBAAuB,EAC/C,EAAE,EAAgB,CAChB,UAAW,eACX,eAAgB,aAChB,MAAO,CAAE,MAAA,EAAO,OAAA,CAAO,EACvB,MAAA,EACA,oBAAoB,CAAG,EACrB,EAAe,EAAO,EACxB,CACF,IAEH,CAEL,CAEA,SAAS,EAAa,CASrB,EACC,GAAM,CAAA,cAAE,EAAgB,CAAA,CAAA,mBAAM,EAAqB,CAAC,CAAA,CAAG,CAAG,EACpD,CAAA,UAAE,CAAS,CAAE,CAAG,AAAA,EAAW,GAEjC,GAAI,AAAoB,GAApB,EAAU,MAAM,CAElB,OADA,QAAQ,IAAI,CAAC,wCACN,KAGT,IAAM,EAAW,AAAA,EAAQ,IAChB,EAAU,GAAG,CAAC,CAAC,EAAe,IAE5B,EAAE,EAAe,CACtB,SAAA,EACA,IAAK,EAAS,OAAO,CACrB,GAAG,CAAkB,AACvB,IAED,CAAC,EAAW,EAAe,EAAmB,EAEjD,OAAO,EACL,EACA,CAAE,UAAA,EAAA,SAAA,CAAW,aAAA,EAAA,YAAA,AAAa,EAC1B,EAAE,cAAe,GAErB,Q,K,W,C,K,I,C,K,W,C,K,S","sources":["<anon>","packages/column-views/src/units/boxes.ts"],"sourcesContent":["import \"./column-views.e7e26765.js\";\nimport \"./column-views.2e2158f5.js\";\nimport \"./column-views.7b6e7d82.js\";\nimport \"./column-views.cdcce702.js\";\nimport \"./column-views.dbb4a46b.js\";\nimport \"./column-views.6bba8c57.js\";\nimport {ColumnAxisType as $jfrfr$ColumnAxisType, ColumnContext as $jfrfr$ColumnContext, ColumnLayoutContext as $jfrfr$ColumnLayoutContext, useColumn as $jfrfr$useColumn, useGeologicPattern as $jfrfr$useGeologicPattern, zigZagBoxPath as $jfrfr$zigZagBoxPath, ForeignObject as $jfrfr$ForeignObject, PatternDefsProvider as $jfrfr$PatternDefsProvider} from \"@macrostrat/column-components\";\nimport {SizeAwareLabel as $jfrfr$SizeAwareLabel} from \"@macrostrat/ui-components\";\nimport $jfrfr$macrostrathyper from \"@macrostrat/hyper\";\nimport {useContext as $jfrfr$useContext, forwardRef as $jfrfr$forwardRef, useMemo as $jfrfr$useMemo} from \"react\";\nimport $jfrfr$classnames from \"classnames\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\n\nvar $5VyZI = parcelRequire(\"5VyZI\");\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\nvar $5SO8b = parcelRequire(\"5SO8b\");\n\nvar $klU0I = parcelRequire(\"klU0I\");\n\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $bfmPX = parcelRequire(\"bfmPX\");\nconst $82e068a44c11e855$var$h = (0, $jfrfr$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($klU0I))));\nfunction $82e068a44c11e855$var$useUnitRect(division, options = {}) {\n const { widthFraction: widthFraction = 1, axisType: axisType = (0, $jfrfr$ColumnAxisType).AGE, padding: padding = 0 } = options;\n const { scale: scale } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnContext));\n const { width: width } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnLayoutContext));\n const [bottomHeight, topHeight] = (0, $iWhRv.getUnitHeightRange)(division, axisType);\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2\n };\n}\nfunction $82e068a44c11e855$export$d54fdbabca27e53(props) {\n const { division: d, children: children, className: className, widthFraction: widthFraction = 1, axisType: _, nColumns: __, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const lithMap = (0, $lgTAP.useLithologies)();\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(d, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds\n };\n const backgroundColor = (0, $bfmPX.getMixedUnitColor)(d, lithMap, null, false);\n const [ref, selected, onClick] = (0, $5SO8b.useUnitSelectionTarget)(d);\n return $82e068a44c11e855$var$h(\"g.unit\", {\n className: className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor\n }\n }, [\n $82e068a44c11e855$var$h(\"rect.unit.background\", {\n ref: ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick: onClick\n }),\n $82e068a44c11e855$var$h.if(selected)(\"rect.selection-overlay\", bounds)\n ]);\n}\nfunction $82e068a44c11e855$export$1d8b9ae22d404866(props) {\n const { division: d, children: children, fill: fill, defaultFill: defaultFill = \"transparent\", className: className, widthFraction: widthFraction = 1, backgroundColor: backgroundColor, patternColor: patternColor, patternID: patternID, axisType: _, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(d, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom\n };\n const _patternID = patternID ?? (0, $5VyZI.resolveID)(d);\n let _fill = fill ?? (0, $jfrfr$useGeologicPattern)(_patternID, defaultFill);\n const hasBackgroundColor = backgroundColor != null;\n const _className = (0, $jfrfr$classnames)(className, {\n colored: hasBackgroundColor\n });\n const [ref, selected, onClick] = (0, $5SO8b.useUnitSelectionTarget)(d);\n return $82e068a44c11e855$var$h(\"g.unit\", {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor\n }\n }, [\n $82e068a44c11e855$var$h($82e068a44c11e855$var$UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick: onClick,\n className: \"background\"\n }),\n $82e068a44c11e855$var$h($82e068a44c11e855$var$UnitRect, {\n ref: ref,\n ...bounds,\n fill: _fill,\n onClick: //mask,\n onClick,\n className: \"unit\"\n }),\n $82e068a44c11e855$var$h.if(selected)($82e068a44c11e855$var$UnitRect, {\n ...bounds,\n className: \"selection-overlay\"\n }),\n //defs,\n children\n ]);\n}\nconst $82e068a44c11e855$var$UnitRect = (0, $jfrfr$forwardRef)((props, ref)=>{\n const { x: x, y: y, width: width, height: height, overflowTop: overflowTop = false, overflowBottom: overflowBottom = false, ...rest } = props;\n if (!overflowTop && !overflowBottom) return $82e068a44c11e855$var$h(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n ref: ref,\n ...rest\n });\n else {\n const d = (0, $jfrfr$zigZagBoxPath)(x, y, width, height, overflowTop, overflowBottom);\n return $82e068a44c11e855$var$h(\"path\", {\n d: d,\n ref: ref,\n ...rest\n });\n }\n});\nfunction $82e068a44c11e855$export$b4f0ca233b98f9af(props) {\n const { division: division, label: label, onLabelUpdated: onLabelUpdated, widthFraction: widthFraction, showLabel: showLabel = true, backgroundColor: backgroundColor, patternID: patternID, axisType: _, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(division, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds\n };\n const { width: width, height: height } = bounds;\n return $82e068a44c11e855$var$h($82e068a44c11e855$export$1d8b9ae22d404866, {\n className: \"labeled-unit\",\n division: division,\n backgroundColor: backgroundColor,\n patternID: patternID,\n ...bounds\n }, [\n $82e068a44c11e855$var$h.if(showLabel)((0, $jfrfr$ForeignObject), {\n ...bounds,\n className: \"unit-label-container\"\n }, $82e068a44c11e855$var$h((0, $jfrfr$SizeAwareLabel), {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: {\n width: width,\n height: height\n },\n label: label,\n onVisibilityChanged (viz) {\n onLabelUpdated(label, viz);\n }\n }))\n ]);\n}\nfunction $82e068a44c11e855$export$5d1cdfabe8dc8085(props) {\n const { unitComponent: unitComponent = $82e068a44c11e855$export$1d8b9ae22d404866, unitComponentProps: unitComponentProps = {} } = props;\n const { divisions: divisions } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnContext));\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n const children = (0, $jfrfr$useMemo)(()=>{\n return divisions.map((division, i)=>{\n // @ts-ignore\n return $82e068a44c11e855$var$h(unitComponent, {\n division: division,\n key: division.unit_id,\n ...unitComponentProps\n });\n });\n }, [\n divisions,\n unitComponent,\n unitComponentProps\n ]);\n return $82e068a44c11e855$var$h((0, $jfrfr$PatternDefsProvider), {\n resolveID: $5VyZI.resolveID,\n scalePattern: $5VyZI.scalePattern\n }, $82e068a44c11e855$var$h(\"g.divisions\", children));\n}\n\n\nexport {$82e068a44c11e855$export$d54fdbabca27e53 as MinimalUnit, $82e068a44c11e855$export$1d8b9ae22d404866 as Unit, $82e068a44c11e855$export$b4f0ca233b98f9af as LabeledUnit, $82e068a44c11e855$export$5d1cdfabe8dc8085 as UnitBoxes};\n//# sourceMappingURL=column-views.b57e5e6e.js.map\n","import {\n ColumnAxisType,\n ColumnContext,\n ColumnLayoutContext,\n ForeignObject,\n PatternDefsProvider,\n useColumn,\n useGeologicPattern,\n zigZagBoxPath,\n} from \"@macrostrat/column-components\";\nimport { SizeAwareLabel, Clickable } from \"@macrostrat/ui-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport { forwardRef, ReactNode, useContext, useMemo } from \"react\";\nimport { resolveID, scalePattern } from \"./resolvers\";\nimport { useUnitSelectionTarget, useLithologies } from \"../data-provider\";\nimport { IUnit } from \"./types\";\nimport styles from \"./boxes.module.sass\";\nimport classNames from \"classnames\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { getMixedUnitColor } from \"./colors\";\nimport type { RectBounds } from \"./types\";\n\nconst h = hyper.styled(styles);\n\ninterface UnitRectOptions {\n widthFraction?: number;\n axisType?: ColumnAxisType;\n // Padding to create overflow for zig-zags or other ornamented edges\n padding?: number;\n}\n\ninterface UnitProps extends Clickable, Partial<RectBounds>, UnitRectOptions {\n division: IUnit;\n resolveID?(IUnit): string;\n UUID?: string;\n defaultFill?: string;\n widthFraction?: number;\n children?: ReactNode;\n className?: string;\n fill?: string;\n backgroundColor?: string;\n patternColor?: string;\n patternID?: string | number;\n}\n\nexport interface LabeledUnitProps\n extends UnitRectOptions, Clickable, Partial<RectBounds> {\n division: IUnit;\n patternID?: string | number;\n label: string;\n onLabelUpdated?(label: string, shown: boolean);\n halfWidth?: boolean;\n showLabel?: boolean;\n backgroundColor?: string;\n}\n\nfunction useUnitRect(\n division: IUnit,\n options: UnitRectOptions = {},\n): RectBounds {\n const {\n widthFraction = 1,\n axisType = ColumnAxisType.AGE,\n padding = 0,\n } = options;\n const { scale } = useContext(ColumnContext);\n const { width } = useContext(ColumnLayoutContext);\n\n const [bottomHeight, topHeight] = getUnitHeightRange(division, axisType);\n\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2,\n };\n}\n\nexport function MinimalUnit(props) {\n const {\n division: d,\n children,\n className,\n widthFraction = 1,\n axisType: _, // not sure why this is brought in...\n nColumns: __,\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const lithMap = useLithologies();\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n };\n\n const backgroundColor = getMixedUnitColor(d, lithMap, null, false);\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor,\n },\n },\n [\n h(\"rect.unit.background\", {\n ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick,\n }),\n h.if(selected)(\"rect.selection-overlay\", bounds),\n ],\n );\n}\n\nfunction Unit(props: UnitProps) {\n const {\n division: d,\n children,\n fill,\n defaultFill = \"transparent\",\n className,\n widthFraction = 1,\n backgroundColor,\n patternColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom,\n };\n const _patternID = patternID ?? resolveID(d);\n let _fill = fill ?? useGeologicPattern(_patternID, defaultFill);\n\n const hasBackgroundColor = backgroundColor != null;\n\n const _className = classNames(className, { colored: hasBackgroundColor });\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n },\n },\n [\n h(UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick,\n className: \"background\",\n }),\n h(UnitRect, {\n ref,\n ...bounds,\n fill: _fill,\n //mask,\n onClick,\n className: \"unit\",\n }),\n h.if(selected)(UnitRect, { ...bounds, className: \"selection-overlay\" }),\n //defs,\n children,\n ],\n );\n}\n\ninterface UnitRectProps {\n x: number;\n y: number;\n width: number;\n height: number;\n className: string;\n // Used to determine if the rect should have a zig-zag edge on the top or bottom\n overflowTop?: boolean;\n overflowBottom?: boolean;\n [key: string]: any;\n}\n\nconst UnitRect = forwardRef((props: UnitRectProps, ref) => {\n const {\n x,\n y,\n width,\n height,\n overflowTop = false,\n overflowBottom = false,\n ...rest\n } = props;\n\n if (!overflowTop && !overflowBottom) {\n return h(\"rect\", {\n x,\n y,\n width,\n height,\n ref,\n ...rest,\n });\n } else {\n const d = zigZagBoxPath(x, y, width, height, overflowTop, overflowBottom);\n return h(\"path\", {\n d,\n ref,\n ...rest,\n });\n }\n});\n\nfunction LabeledUnit(props: LabeledUnitProps) {\n const {\n division,\n label,\n onLabelUpdated,\n widthFraction,\n showLabel = true,\n backgroundColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const bounds = {\n ...useUnitRect(division, { widthFraction, axisType }),\n ...baseBounds,\n };\n const { width, height } = bounds;\n return h(\n Unit,\n {\n className: \"labeled-unit\",\n division,\n backgroundColor,\n patternID,\n ...bounds,\n },\n [\n h.if(showLabel)(\n ForeignObject,\n { ...bounds, className: \"unit-label-container\" },\n h(SizeAwareLabel, {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: { width, height },\n label,\n onVisibilityChanged(viz) {\n onLabelUpdated(label, viz);\n },\n }),\n ),\n ],\n );\n}\n\nfunction UnitBoxes<T>(props: {\n unitComponent: React.FunctionComponent<{ division: T }>;\n unitComponentProps?: any;\n transformDivisions?(divisions: T[]): T[];\n transformDivision?: (\n division: any,\n index: number,\n divisions: any[],\n ) => T | null;\n}) {\n const { unitComponent = Unit, unitComponentProps = {} } = props;\n const { divisions } = useContext(ColumnContext);\n\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n\n const children = useMemo(() => {\n return divisions.map((division: any, i) => {\n // @ts-ignore\n return h(unitComponent, {\n division,\n key: division.unit_id,\n ...unitComponentProps,\n });\n });\n }, [divisions, unitComponent, unitComponentProps]);\n\n return h(\n PatternDefsProvider,\n { resolveID, scalePattern },\n h(\"g.divisions\", children),\n );\n}\n\nexport { LabeledUnit, Unit, UnitBoxes, UnitProps };\n"],"names":["ColumnAxisType","$jfrfr$ColumnAxisType","ColumnContext","$jfrfr$ColumnContext","ColumnLayoutContext","$jfrfr$ColumnLayoutContext","useColumn","$jfrfr$useColumn","useGeologicPattern","$jfrfr$useGeologicPattern","zigZagBoxPath","$jfrfr$zigZagBoxPath","ForeignObject","$jfrfr$ForeignObject","PatternDefsProvider","$jfrfr$PatternDefsProvider","SizeAwareLabel","$jfrfr$SizeAwareLabel","$jfrfr$macrostrathyper","useContext","$jfrfr$useContext","forwardRef","$jfrfr$forwardRef","useMemo","$jfrfr$useMemo","$jfrfr$classnames","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$5VyZI","$lgTAP","$5SO8b","$klU0I","$iWhRv","$bfmPX","$82e068a44c11e855$var$h","styled","a","__esModule","default","$82e068a44c11e855$var$useUnitRect","division","options","widthFraction","axisType","AGE","padding","scale","width","bottomHeight","topHeight","getUnitHeightRange","y","height","Math","abs","x","$82e068a44c11e855$export$d54fdbabca27e53","props","d","children","className","_","nColumns","__","baseBounds","lithMap","useLithologies","bounds","backgroundColor","getMixedUnitColor","ref","selected","onClick","useUnitSelectionTarget","style","fill","fillOpacity","stroke","if","$82e068a44c11e855$export$1d8b9ae22d404866","defaultFill","patternColor","patternID","hasOverflowTop","t_clip_pos","hasOverflowBottom","b_clip_pos","overflowTop","overflowBottom","_patternID","resolveID","_fill","_className","colored","$82e068a44c11e855$var$UnitRect","rest","$82e068a44c11e855$export$b4f0ca233b98f9af","label","onLabelUpdated","showLabel","labelClassName","onVisibilityChanged","viz","$82e068a44c11e855$export$5d1cdfabe8dc8085","unitComponent","unitComponentProps","divisions","length","console","warn","map","i","key","unit_id","scalePattern","MinimalUnit","Unit","LabeledUnit","UnitBoxes"],"version":3,"file":"column-views.b57e5e6e.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.dbb4a46b.js";import"./column-views.5a9331a9.js";import"./column-views.7f9c7448.js";import{ColumnAxisType as e}from"@macrostrat/column-components";import{scaleLinear as t}from"d3-scale";var a=globalThis,n={},l={},i=a.parcelRequirea149;null==i&&((i=function(e){if(e in n)return n[e].exports;if(e in l){var t=l[e];delete l[e];var a={id:e,exports:{}};return n[e]=a,t.call(a.exports,a,a.exports),a.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){l[e]=t},a.parcelRequirea149=i),i.register;var o=i("iWhRv"),r=i("dcPBY"),s=i("76iYI");function c(e,t){let a=t/2,n=0,l=[];for(let i of e){let{domain:e,scale:o}=i,[r,s]=e,c=`package-${r}-${s}`;l.push({...f(i,a),key:c,offset:a,paddingTop:a-n}),a=(n=a+Math.abs(o(r)-o(s)))+t}return{totalHeight:a+=t/2,sections:l}}function p(e,t){let{totalHeight:a,sections:n}=c(e.map(e=>e.scaleInfo),t),l=[];for(let t in e){let a=e[t],i=n[t];l.push({...a,key:i.key,scaleInfo:i})}return{totalHeight:a,sections:l}}function u(e,t){return e.map(e=>m(e,t))}function m(t,a){let{t_age:n,b_age:l,t_pos:i,b_pos:c,units:p}=t,u=null;u=a.axisType==e.AGE?[l,n]:[c,i];let m=function(t,a){let n,{targetUnitHeight:l=20,minPixelScale:i=.2,axisType:c,minSectionHeight:p,scale:u,hybridScale:m}=a,h=a.domain??function(t,a){if(null==a)throw Error("Axis type is not set");if(a===e.AGE){let e=Math.min(...t.map(e=>e.t_age));return[Math.max(...t.map(e=>e.b_age)),e]}if(a==e.DEPTH||a==e.ORDINAL){let e=Math.min(...t.map(e=>e.t_pos));return[Math.max(...t.map(e=>e.b_pos)),e]}if(a==e.HEIGHT){let e=Math.max(...t.map(e=>e.t_pos));return[Math.min(...t.map(e=>e.b_pos)),e]}}(t,c),g=Math.abs(h[0]-h[1]),b=a.pixelScale;return null!=m?(m.type===s.HybridScaleType.EquidistantSurfaces&&(b??(b=l)),(0,r.buildHybridScale)(m,t,h,{pixelOffset:0,pixelScale:b})):(null==u?(null==b&&(b=Math.max(l/function(e,t){let a=e.map(e=>{let[a,n]=(0,o.getUnitHeightRange)(e,t);return Math.abs(a-n)});return a.reduce((e,t)=>e+t,0)/a.length}(t,c),i)),b=(n=Math.max(g*b,p??l??0))/g):n=Math.abs(u(h[0])-u(h[1])),f({scale:u,domain:h,pixelHeight:n,pixelScale:b},0))}(p,{...a,domain:u});return{...t,scaleInfo:m}}function f(e,a=0){let n,{domain:l,pixelScale:i,pixelHeight:o,scale:r,heightScale:s}=e;if(null==r&&null==i)throw Error("Either scale or pixelScale must be provided");if(null==r)n=t().domain([l[1],l[0]]).range([a,o+a]);else{let e=r.domain(),t=r.range();n=r.copy().domain(e).range(t.map(e=>e+a))}n.clamp();let c=null;if(null!=s){let e=r.range();(c=s.copy().range(e.map(e=>e+a))).clamp()}return{domain:l,pixelScale:i,pixelHeight:o,scale:n,heightScale:c}}function h(e,a=!1){let n=[],l=null;for(let i of e){let e=i.scaleInfo.scale.copy().clamp(!0);if(n.push(e),null!=l&&a){let a=l.domain(),i=l.range(),o=e.domain(),r=e.range(),s=t().domain([a[a.length-1],o[0]]).range([i[i.length-1],r[0]]).clamp(!0);n.push(s)}l=e}let i=e=>{for(let t of n){let a=t.domain();if(e>=a[0]&&e<=a[a.length-1])return t(e)}return null};return i.copy=()=>h(e,a),i.domain=()=>{let t=e.flatMap(e=>e.scaleInfo.domain);return t[0]<t[t.length-1]?[Math.min(...t),Math.max(...t)]:[Math.max(...t),Math.min(...t)]},i.invert=e=>{for(let t of n){let a=t.range();if(e>Math.min(...a)&&e<=Math.max(...a))return console.log("Inverting scale at pixel height",e),t.invert(e)}return null},i.clamp=e=>{for(let t of n)t.clamp(e)},i}function g(t,a,n){let l=[],i=null;for(let r of t){let t;if(null==i){i=r;continue}t=n.axisType!==e.AGE?[r.t_pos,i.b_pos]:[r.t_age,i.b_age];let s=e=>Math.abs(e[0]-e[1]);if(Math.min(s(t.map(r.scaleInfo.scale)),s(t.map(i.scaleInfo.scale)))<a){let t,a;n.axisType==e.AGE||n.axisType==e.DEPTH?(t=Math.min(i.t_pos,r.t_pos),a=Math.max(i.b_pos,r.b_pos)):(t=Math.max(i.t_pos,r.t_pos),a=Math.min(i.b_pos,r.b_pos)),i=m({units:[...i.units,...r.units],section_id:[...(0,o.ensureArray)(i.section_id),...(0,o.ensureArray)(r.section_id)],t_age:Math.min(i.t_age,r.t_age),b_age:Math.max(i.b_age,r.b_age),t_pos:t,b_pos:a},n)}else l.push(i),i=r}return null!=i&&l.push(i),l}export{c as buildCompositeScaleInfo,f as createPackageScale,p as finalizeSectionHeights,u as computeSectionHeights,h as createCompositeScale,g as collapseUnconformitiesByPixelHeight};
2
- //# sourceMappingURL=column-views.a596b1f5.js.map
1
+ import"./column-views.dbb4a46b.js";import"./column-views.5a9331a9.js";import"./column-views.7f9c7448.js";import{ColumnAxisType as e}from"@macrostrat/column-components";import{scaleLinear as t}from"d3-scale";var a=globalThis,n={},l={},i=a.parcelRequirea149;null==i&&((i=function(e){if(e in n)return n[e].exports;if(e in l){var t=l[e];delete l[e];var a={id:e,exports:{}};return n[e]=a,t.call(a.exports,a,a.exports),a.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){l[e]=t},a.parcelRequirea149=i),i.register;var o=i("iWhRv"),r=i("dcPBY"),s=i("76iYI");function c(e,t){let a=t/2,n=0,l=[];for(let i of e){let{domain:e,scale:o}=i,[r,s]=e,c=`package-${r}-${s}`;l.push({...f(i,a),key:c,offset:a,paddingTop:a-n}),a=(n=a+Math.abs(o(r)-o(s)))+t}return{totalHeight:a+=t/2,sections:l}}function p(e,t){let{totalHeight:a,sections:n}=c(e.map(e=>e.scaleInfo),t),l=[];for(let t in e){let a=e[t],i=n[t];l.push({...a,key:i.key,scaleInfo:i})}return{totalHeight:a,sections:l}}function u(e,t){return e.map(e=>m(e,t))}function m(t,a){let{t_age:n,b_age:l,t_pos:i,b_pos:c,units:p}=t,u=null;u=a.axisType==e.AGE?[l,n]:[c,i];let m=function(t,a){let n,{targetUnitHeight:l=20,minPixelScale:i=.2,axisType:c,minSectionHeight:p,scale:u,hybridScale:m}=a,h=a.domain??function(t,a){if(null==a)throw Error("Axis type is not set");if(a===e.AGE){let e=Math.min(...t.map(e=>e.t_age));return[Math.max(...t.map(e=>e.b_age)),e]}if(a==e.DEPTH||a==e.ORDINAL){let e=Math.min(...t.map(e=>e.t_pos));return[Math.max(...t.map(e=>e.b_pos)),e]}if(a==e.HEIGHT){let e=Math.max(...t.map(e=>e.t_pos));return[Math.min(...t.map(e=>e.b_pos)),e]}}(t,c),g=Math.abs(h[0]-h[1]),b=a.pixelScale;return null!=m?(m.type===s.HybridScaleType.EquidistantSurfaces&&(b??(b=l)),(0,r.buildHybridScale)(m,t,h,{pixelOffset:0,pixelScale:b})):(null==u?(null==b&&(b=Math.max(l/function(e,t){let a=e.map(e=>{let[a,n]=(0,o.getUnitHeightRange)(e,t);return Math.abs(a-n)});return a.reduce((e,t)=>e+t,0)/a.length}(t,c),i)),b=(n=Math.max(g*b,p??l??0))/g):n=Math.abs(u(h[0])-u(h[1])),f({scale:u,domain:h,pixelHeight:n,pixelScale:b},0))}(p,{...a,domain:u});return{...t,scaleInfo:m}}function f(e,a=0){let n,{domain:l,pixelScale:i,pixelHeight:o,scale:r,heightScale:s}=e;if(null==r&&null==i)throw Error("Either scale or pixelScale must be provided");if(null==r)n=t().domain([l[1],l[0]]).range([a,o+a]);else{let e=r.domain(),t=r.range();n=r.copy().domain(e).range(t.map(e=>e+a))}n.clamp();let c=null;if(null!=s){let e=r.range();(c=s.copy().range(e.map(e=>e+a))).clamp()}return{domain:l,pixelScale:i,pixelHeight:o,scale:n,heightScale:c}}function h(e,a=!1){let n=[],l=null;for(let i of e){let e=i.scaleInfo.scale.copy().clamp(!0);if(n.push(e),null!=l&&a){let a=l.domain(),i=l.range(),o=e.domain(),r=e.range(),s=t().domain([a[a.length-1],o[0]]).range([i[i.length-1],r[0]]).clamp(!0);n.push(s)}l=e}let i=e=>{for(let t of n){let a=t.domain();if(a[0]<a[a.length-1]&&e>=a[0]&&e<=a[a.length-1]||e<=a[0]&&e>=a[a.length-1])return t(e)}return null};return i.copy=()=>h(e,a),i.domain=()=>{let t=e.flatMap(e=>e.scaleInfo.domain);return t[0]<t[t.length-1]?[Math.min(...t),Math.max(...t)]:[Math.max(...t),Math.min(...t)]},i.invert=e=>{for(let t of n){let a=t.range();if(e>Math.min(...a)&&e<=Math.max(...a))return console.log("Inverting scale at pixel height",e),t.invert(e)}return null},i.clamp=e=>{for(let t of n)t.clamp(e)},i}function g(t,a,n){let l=[],i=null;for(let r of t){let t;if(null==i){i=r;continue}t=n.axisType!==e.AGE?[r.t_pos,i.b_pos]:[r.t_age,i.b_age];let s=e=>Math.abs(e[0]-e[1]);if(Math.min(s(t.map(r.scaleInfo.scale)),s(t.map(i.scaleInfo.scale)))<a){let t,a;n.axisType==e.AGE||n.axisType==e.DEPTH?(t=Math.min(i.t_pos,r.t_pos),a=Math.max(i.b_pos,r.b_pos)):(t=Math.max(i.t_pos,r.t_pos),a=Math.min(i.b_pos,r.b_pos)),i=m({units:[...i.units,...r.units],section_id:[...(0,o.ensureArray)(i.section_id),...(0,o.ensureArray)(r.section_id)],t_age:Math.min(i.t_age,r.t_age),b_age:Math.max(i.b_age,r.b_age),t_pos:t,b_pos:a},n)}else l.push(i),i=r}return null!=i&&l.push(i),l}export{c as buildCompositeScaleInfo,f as createPackageScale,p as finalizeSectionHeights,u as computeSectionHeights,h as createCompositeScale,g as collapseUnconformitiesByPixelHeight};
2
+ //# sourceMappingURL=column-views.ba9108fe.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["<anon>","packages/column-views/src/prepare-units/composite-scale.ts"],"sourcesContent":["import \"./column-views.dbb4a46b.js\";\nimport \"./column-views.5a9331a9.js\";\nimport \"./column-views.7f9c7448.js\";\nimport {ColumnAxisType as $d6XP3$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {scaleLinear as $d6XP3$scaleLinear} from \"d3-scale\";\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\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\n\nvar $dcPBY = parcelRequire(\"dcPBY\");\n\nvar $76iYI = parcelRequire(\"76iYI\");\nfunction $8054a162cb094378$export$e7184dd8bb3302ed(inputScales, unconformityHeight) {\n /** Finalize the heights of sections, including the heights of unconformities\n * between them.\n */ let totalHeight = unconformityHeight / 2;\n let lastSectionTopHeight = 0;\n const packages2 = [];\n for (const group of inputScales){\n const { domain: domain, scale: scale } = group;\n const [b_age, t_age] = domain;\n const key = `package-${b_age}-${t_age}`;\n packages2.push({\n ...$8054a162cb094378$export$d6235b492bceb8c5(group, totalHeight),\n key: key,\n offset: totalHeight,\n // Unconformity height above this particular section\n paddingTop: totalHeight - lastSectionTopHeight\n });\n const pixelHeight = Math.abs(scale(b_age) - scale(t_age));\n lastSectionTopHeight = totalHeight + pixelHeight;\n totalHeight = lastSectionTopHeight + unconformityHeight;\n }\n totalHeight += unconformityHeight / 2;\n return {\n totalHeight: totalHeight,\n sections: packages2\n };\n}\nfunction $8054a162cb094378$export$67442a0f5bef147b(sections, unconformityHeight) {\n /** Finalize the heights of sections, including the heights of unconformities\n * between them.\n */ const sectionScales = sections.map((d)=>d.scaleInfo);\n const { totalHeight: totalHeight, sections: packages } = $8054a162cb094378$export$e7184dd8bb3302ed(sectionScales, unconformityHeight);\n // This could perhaps be simplified.\n const sections1 = [];\n for(const i in sections){\n const group = sections[i];\n const scaleInfo = packages[i];\n sections1.push({\n ...group,\n key: scaleInfo.key,\n scaleInfo: scaleInfo\n });\n }\n return {\n totalHeight: totalHeight,\n sections: sections1\n };\n}\nfunction $8054a162cb094378$export$7d3f3129a1a4b84e(sections, opts) {\n return sections.map((group)=>{\n return $8054a162cb094378$var$addScaleToSection(group, opts);\n });\n}\nfunction $8054a162cb094378$var$addScaleToSection(group, opts) {\n const { t_age: t_age, b_age: b_age, t_pos: t_pos, b_pos: b_pos, units: units } = group;\n let _range = null;\n // if t_age and b_age are set for a group, use them to define the range...\n if (opts.axisType == (0, $d6XP3$ColumnAxisType).AGE) _range = [\n b_age,\n t_age\n ];\n else _range = [\n b_pos,\n t_pos\n ];\n const scaleInfo = $8054a162cb094378$var$buildSectionScale(units, {\n ...opts,\n domain: _range\n });\n return {\n ...group,\n scaleInfo: scaleInfo\n };\n}\nfunction $8054a162cb094378$var$buildSectionScale(data, opts) {\n const { targetUnitHeight: targetUnitHeight = 20, minPixelScale: minPixelScale = 0.2, axisType: axisType, minSectionHeight: minSectionHeight, scale: scale, hybridScale: hybridScale } = opts;\n const domain = opts.domain ?? $8054a162cb094378$var$findSectionHeightRange(data, axisType);\n const dAge = Math.abs(domain[0] - domain[1]);\n let _pixelScale = opts.pixelScale;\n let pixelHeight;\n if (hybridScale != null) {\n /** In an equidistant surfaces scale, we want to determine the heights of surfaces\n * and then distribute units evenly between them.\n * This is somewhat like an ordinal scale\n */ if (hybridScale.type === (0, $76iYI.HybridScaleType).EquidistantSurfaces) _pixelScale ?? (_pixelScale = targetUnitHeight);\n return (0, $dcPBY.buildHybridScale)(hybridScale, data, domain, {\n pixelOffset: 0,\n pixelScale: _pixelScale\n });\n }\n if (scale == null) {\n if (_pixelScale == null) {\n const avgAgeRange = $8054a162cb094378$var$findAverageUnitHeight(data, axisType);\n // Get pixel height necessary to render average unit at target height\n _pixelScale = Math.max(targetUnitHeight / avgAgeRange, minPixelScale);\n // OLD METHOD that cares about overall section height vs. individual unit height\n // 0.2 pixel per myr is the floor scale\n //const targetHeight = targetUnitHeight * data.length;\n // 1 pixel per myr is the floor scale\n //_pixelScale = Math.max(targetHeight / dAge, minPixelScale);\n }\n let height = dAge * _pixelScale;\n // If height is less than minSectionHeight, set it to minSectionHeight\n const _minSectionHeight = minSectionHeight ?? targetUnitHeight ?? 0;\n pixelHeight = Math.max(height, _minSectionHeight);\n _pixelScale = pixelHeight / dAge;\n } else // If a scale is provided, use it to compute pixel height\n pixelHeight = Math.abs(scale(domain[0]) - scale(domain[1]));\n return $8054a162cb094378$export$d6235b492bceb8c5({\n scale: scale,\n domain: domain,\n pixelHeight: pixelHeight,\n pixelScale: _pixelScale\n }, 0);\n}\nfunction $8054a162cb094378$export$d6235b492bceb8c5(def, offset = 0) {\n /** Build a section scale */ // Domain should be oriented from bottom to top, but scale is oriented from top to bottom\n const { domain: domain, pixelScale: pixelScale, pixelHeight: pixelHeight, scale: scale, heightScale: heightScale } = def;\n if (scale == null && pixelScale == null) throw new Error(\"Either scale or pixelScale must be provided\");\n let _scale;\n if (scale == null) _scale = (0, $d6XP3$scaleLinear)().domain([\n domain[1],\n domain[0]\n ]).range([\n offset,\n pixelHeight + offset\n ]);\n else {\n const domain0 = scale.domain();\n const range0 = scale.range();\n _scale = scale.copy().domain(domain0).range(range0.map((d)=>d + offset));\n }\n _scale.clamp();\n let _heightScale = null;\n if (heightScale != null) {\n // Adjust height scale as well\n const range0 = scale.range();\n _heightScale = heightScale.copy().range(range0.map((d)=>d + offset));\n _heightScale.clamp();\n }\n return {\n domain: domain,\n pixelScale: pixelScale,\n pixelHeight: pixelHeight,\n scale: _scale,\n // Internal details for hybrid scales. TODO: improve this\n heightScale: _heightScale\n };\n}\nfunction $8054a162cb094378$var$findSectionHeightRange(data, axisType) {\n if (axisType == null) throw new Error(\"Axis type is not set\");\n if (axisType === (0, $d6XP3$ColumnAxisType).AGE) {\n const t_age = Math.min(...data.map((d)=>d.t_age));\n const b_age = Math.max(...data.map((d)=>d.b_age));\n return [\n b_age,\n t_age\n ];\n } else if (axisType == (0, $d6XP3$ColumnAxisType).DEPTH || axisType == (0, $d6XP3$ColumnAxisType).ORDINAL) {\n const t_pos = Math.min(...data.map((d)=>d.t_pos));\n const b_pos = Math.max(...data.map((d)=>d.b_pos));\n return [\n b_pos,\n t_pos\n ];\n } else if (axisType == (0, $d6XP3$ColumnAxisType).HEIGHT) {\n const t_pos = Math.max(...data.map((d)=>d.t_pos));\n const b_pos = Math.min(...data.map((d)=>d.b_pos));\n return [\n b_pos,\n t_pos\n ];\n }\n}\nfunction $8054a162cb094378$var$findAverageUnitHeight(data, axisType) {\n const unitHeights = data.map((d)=>{\n const [b_pos, t_pos] = (0, $iWhRv.getUnitHeightRange)(d, axisType);\n return Math.abs(b_pos - t_pos);\n });\n return unitHeights.reduce((a, b)=>a + b, 0) / unitHeights.length;\n}\nfunction $8054a162cb094378$export$3ada7641926a616d(sections, interpolateUnconformities = false) {\n /** Create a scale that works across multiple packages */ const scales = [];\n let lastScale = null;\n for (const section of sections){\n const _scale = section.scaleInfo.scale.copy().clamp(true);\n scales.push(_scale);\n if (lastScale != null && interpolateUnconformities) {\n // Add a new scale that interpolates between lastScale and _scale\n const lastDomain = lastScale.domain();\n const lastRange = lastScale.range();\n const currentDomain = _scale.domain();\n const currentRange = _scale.range();\n const interpScale = (0, $d6XP3$scaleLinear)().domain([\n lastDomain[lastDomain.length - 1],\n currentDomain[0]\n ]).range([\n lastRange[lastRange.length - 1],\n currentRange[0]\n ]).clamp(true);\n scales.push(interpScale);\n }\n lastScale = _scale;\n }\n const scale = (age)=>{\n for (const s of scales){\n const domain = s.domain();\n if (domain[0] < domain[domain.length - 1] && age >= domain[0] && age <= domain[domain.length - 1]) // Age axes\n return s(age);\n else if (age <= domain[0] && age >= domain[domain.length - 1]) // Normal axes like height\n return s(age);\n }\n return null;\n };\n scale.copy = ()=>{\n return $8054a162cb094378$export$3ada7641926a616d(sections, interpolateUnconformities);\n };\n scale.domain = ()=>{\n /** Return the domain of the scale */ const vals = sections.flatMap((d)=>d.scaleInfo.domain);\n if (vals[0] < vals[vals.length - 1]) // age axes\n return [\n Math.min(...vals),\n Math.max(...vals)\n ];\n // Normal axes like height\n return [\n Math.max(...vals),\n Math.min(...vals)\n ];\n };\n scale.invert = (pixelHeight)=>{\n /** Invert the scale to get the age at a given pixel height */ // Iterate through the sections to find the correct one\n for (const scale of scales){\n const range = scale.range();\n if (pixelHeight > Math.min(...range) && pixelHeight <= Math.max(...range)) {\n console.log(\"Inverting scale at pixel height\", pixelHeight);\n return scale.invert(pixelHeight);\n }\n }\n return null;\n };\n scale.clamp = (clamp)=>{\n /** Clamp all constituent scales */ for (const s of scales)s.clamp(clamp);\n };\n return scale;\n}\nfunction $8054a162cb094378$export$edbf01b435c75274(sections, threshold, opts) {\n const newSections = [];\n let currentSection = null;\n for (const nextSection of sections){\n if (currentSection == null) {\n currentSection = nextSection;\n continue;\n }\n let heights;\n let pxHeights;\n if (opts.axisType !== (0, $d6XP3$ColumnAxisType).AGE) heights = [\n nextSection.t_pos,\n currentSection.b_pos\n ];\n else heights = [\n nextSection.t_age,\n currentSection.b_age\n ];\n const _diff = (vals)=>{\n return Math.abs(vals[0] - vals[1]);\n };\n pxHeights = [\n _diff(heights.map(nextSection.scaleInfo.scale)),\n _diff(heights.map(currentSection.scaleInfo.scale))\n ];\n const pxHeight = Math.min(...pxHeights);\n if (pxHeight < threshold) {\n let t_pos;\n let b_pos;\n if (opts.axisType == (0, $d6XP3$ColumnAxisType).AGE || opts.axisType == (0, $d6XP3$ColumnAxisType).DEPTH) {\n t_pos = Math.min(currentSection.t_pos, nextSection.t_pos);\n b_pos = Math.max(currentSection.b_pos, nextSection.b_pos);\n } else {\n t_pos = Math.max(currentSection.t_pos, nextSection.t_pos);\n b_pos = Math.min(currentSection.b_pos, nextSection.b_pos);\n }\n // We need to merge the sections\n const compositeSection0 = {\n units: [\n ...currentSection.units,\n ...nextSection.units\n ],\n section_id: [\n ...(0, $iWhRv.ensureArray)(currentSection.section_id),\n ...(0, $iWhRv.ensureArray)(nextSection.section_id)\n ],\n t_age: Math.min(currentSection.t_age, nextSection.t_age),\n b_age: Math.max(currentSection.b_age, nextSection.b_age),\n t_pos: t_pos,\n b_pos: b_pos\n };\n currentSection = $8054a162cb094378$var$addScaleToSection(compositeSection0, opts);\n } else {\n // We need to keep the section\n newSections.push(currentSection);\n currentSection = nextSection;\n }\n }\n if (currentSection != null) newSections.push(currentSection);\n return newSections;\n}\n\n\nexport {$8054a162cb094378$export$e7184dd8bb3302ed as buildCompositeScaleInfo, $8054a162cb094378$export$d6235b492bceb8c5 as createPackageScale, $8054a162cb094378$export$67442a0f5bef147b as finalizeSectionHeights, $8054a162cb094378$export$7d3f3129a1a4b84e as computeSectionHeights, $8054a162cb094378$export$3ada7641926a616d as createCompositeScale, $8054a162cb094378$export$edbf01b435c75274 as collapseUnconformitiesByPixelHeight};\n//# sourceMappingURL=column-views.ba9108fe.js.map\n","import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { ensureArray, getUnitHeightRange } from \"./utils\";\nimport { ScaleContinuousNumeric, scaleLinear } from \"d3-scale\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { buildHybridScale } from \"./dynamic-scales\";\nimport { ExtUnit, HybridScaleType, SectionInfo } from \"./types\";\nimport type {\n ColumnScaleOptions,\n CompositeColumnData,\n CompositeScaleData,\n PackageLayoutData,\n PackageScaleInfo,\n PackageScaleLayoutData,\n SectionScaleOptions,\n} from \"./types\";\n\n// Composite scale information augmented with units in each package\n\nexport function buildCompositeScaleInfo(\n inputScales: PackageScaleInfo[],\n unconformityHeight: number,\n): CompositeScaleData {\n /** Finalize the heights of sections, including the heights of unconformities\n * between them.\n */\n\n let totalHeight = unconformityHeight / 2;\n let lastSectionTopHeight = 0;\n\n const packages2: PackageScaleLayoutData[] = [];\n for (const group of inputScales) {\n const { domain, scale } = group;\n const [b_age, t_age] = domain;\n const key = `package-${b_age}-${t_age}`;\n\n packages2.push({\n ...createPackageScale(group, totalHeight),\n key,\n offset: totalHeight,\n // Unconformity height above this particular section\n paddingTop: totalHeight - lastSectionTopHeight,\n });\n\n const pixelHeight = Math.abs(scale(b_age) - scale(t_age));\n lastSectionTopHeight = totalHeight + pixelHeight;\n totalHeight = lastSectionTopHeight + unconformityHeight;\n }\n totalHeight += unconformityHeight / 2;\n return {\n totalHeight,\n sections: packages2,\n };\n}\n\nexport function finalizeSectionHeights<T extends UnitLong>(\n sections: SectionInfoWithScale<T>[],\n unconformityHeight: number,\n): CompositeColumnData<T> {\n /** Finalize the heights of sections, including the heights of unconformities\n * between them.\n */\n\n const sectionScales = sections.map((d) => d.scaleInfo);\n\n const { totalHeight, sections: packages } = buildCompositeScaleInfo(\n sectionScales,\n unconformityHeight,\n );\n\n // This could perhaps be simplified.\n const sections1: PackageLayoutData<T>[] = [];\n for (const i in sections) {\n const group = sections[i];\n const scaleInfo = packages[i];\n sections1.push({\n ...group,\n key: scaleInfo.key,\n scaleInfo,\n });\n }\n return {\n totalHeight,\n sections: sections1,\n };\n}\n\nexport interface SectionInfoWithScale<\n T extends UnitLong = ExtUnit,\n> extends SectionInfo<T> {\n scaleInfo: PackageScaleInfo;\n}\n\nexport function computeSectionHeights<T extends UnitLong>(\n sections: SectionInfo<T>[],\n opts: ColumnScaleOptions,\n): SectionInfoWithScale<T>[] {\n return sections.map((group) => {\n return addScaleToSection<T>(group, opts);\n });\n}\n\nfunction addScaleToSection<T extends UnitLong = ExtUnit>(\n group: SectionInfo<T>,\n opts: ColumnScaleOptions,\n): SectionInfoWithScale<T> {\n const { t_age, b_age, t_pos, b_pos, units } = group;\n let _range = null;\n // if t_age and b_age are set for a group, use them to define the range...\n if (opts.axisType == ColumnAxisType.AGE) {\n _range = [b_age, t_age];\n } else {\n _range = [b_pos, t_pos];\n }\n\n const scaleInfo = buildSectionScale<T>(units, {\n ...opts,\n domain: _range,\n });\n\n return {\n ...group,\n scaleInfo,\n };\n}\n\nfunction buildSectionScale<T extends UnitLong>(\n data: T[],\n opts: SectionScaleOptions,\n): PackageScaleInfo {\n const {\n targetUnitHeight = 20,\n minPixelScale = 0.2,\n axisType,\n minSectionHeight,\n scale,\n hybridScale,\n } = opts;\n const domain = opts.domain ?? findSectionHeightRange(data, axisType);\n\n const dAge = Math.abs(domain[0] - domain[1]);\n\n let _pixelScale = opts.pixelScale;\n let pixelHeight: number;\n\n if (hybridScale != null) {\n /** In an equidistant surfaces scale, we want to determine the heights of surfaces\n * and then distribute units evenly between them.\n * This is somewhat like an ordinal scale\n */\n if (hybridScale.type === HybridScaleType.EquidistantSurfaces) {\n _pixelScale ??= targetUnitHeight;\n }\n\n return buildHybridScale(hybridScale, data, domain, {\n pixelOffset: 0,\n pixelScale: _pixelScale,\n });\n }\n\n if (scale == null) {\n if (_pixelScale == null) {\n const avgAgeRange = findAverageUnitHeight(data, axisType);\n // Get pixel height necessary to render average unit at target height\n _pixelScale = Math.max(targetUnitHeight / avgAgeRange, minPixelScale);\n\n // OLD METHOD that cares about overall section height vs. individual unit height\n // 0.2 pixel per myr is the floor scale\n //const targetHeight = targetUnitHeight * data.length;\n // 1 pixel per myr is the floor scale\n //_pixelScale = Math.max(targetHeight / dAge, minPixelScale);\n }\n\n let height = dAge * _pixelScale;\n // If height is less than minSectionHeight, set it to minSectionHeight\n const _minSectionHeight = minSectionHeight ?? targetUnitHeight ?? 0;\n pixelHeight = Math.max(height, _minSectionHeight);\n _pixelScale = pixelHeight / dAge;\n } else {\n // If a scale is provided, use it to compute pixel height\n pixelHeight = Math.abs(scale(domain[0]) - scale(domain[1]));\n }\n\n return createPackageScale(\n { scale, domain, pixelHeight, pixelScale: _pixelScale },\n 0,\n );\n}\n\nexport function createPackageScale(\n def: PackageScaleInfo,\n offset: number = 0,\n): PackageScaleInfo {\n /** Build a section scale */\n // Domain should be oriented from bottom to top, but scale is oriented from top to bottom\n const { domain, pixelScale, pixelHeight, scale, heightScale } = def;\n\n if (scale == null && pixelScale == null) {\n throw new Error(\"Either scale or pixelScale must be provided\");\n }\n\n let _scale: ScaleContinuousNumeric<number, number>;\n if (scale == null) {\n _scale = scaleLinear()\n .domain([domain[1], domain[0]])\n .range([offset, pixelHeight + offset]);\n } else {\n const domain0 = scale.domain();\n const range0 = scale.range();\n _scale = scale\n .copy()\n .domain(domain0)\n .range(range0.map((d) => d + offset));\n }\n\n _scale.clamp();\n\n let _heightScale = null;\n if (heightScale != null) {\n // Adjust height scale as well\n const range0 = scale.range();\n _heightScale = heightScale.copy().range(range0.map((d) => d + offset));\n _heightScale.clamp();\n }\n\n return {\n domain,\n pixelScale,\n pixelHeight,\n scale: _scale,\n // Internal details for hybrid scales. TODO: improve this\n heightScale: _heightScale,\n };\n}\n\nfunction findSectionHeightRange(\n data: UnitLong[],\n axisType: ColumnAxisType,\n): [number, number] {\n if (axisType == null) {\n throw new Error(\"Axis type is not set\");\n }\n if (axisType === ColumnAxisType.AGE) {\n const t_age = Math.min(...data.map((d) => d.t_age));\n const b_age = Math.max(...data.map((d) => d.b_age));\n return [b_age, t_age];\n } else if (\n axisType == ColumnAxisType.DEPTH ||\n axisType == ColumnAxisType.ORDINAL\n ) {\n const t_pos = Math.min(...data.map((d) => d.t_pos));\n const b_pos = Math.max(...data.map((d) => d.b_pos));\n return [b_pos, t_pos];\n } else if (axisType == ColumnAxisType.HEIGHT) {\n const t_pos = Math.max(...data.map((d) => d.t_pos));\n const b_pos = Math.min(...data.map((d) => d.b_pos));\n return [b_pos, t_pos];\n }\n}\n\nfunction findAverageUnitHeight(\n data: UnitLong[],\n axisType: ColumnAxisType,\n): number {\n const unitHeights = data.map((d) => {\n const [b_pos, t_pos] = getUnitHeightRange(d, axisType);\n return Math.abs(b_pos - t_pos);\n });\n return unitHeights.reduce((a, b) => a + b, 0) / unitHeights.length;\n}\n\nexport interface CompositeColumnScale {\n (age: number): number | null;\n copy(): CompositeColumnScale;\n domain(): [number, number];\n invert(pixelHeight: number): number | null;\n clamp(clamp: boolean): void;\n}\n\nexport function createCompositeScale(\n sections: PackageLayoutData[],\n interpolateUnconformities: boolean = false,\n): CompositeColumnScale {\n /** Create a scale that works across multiple packages */\n\n const scales: ScaleContinuousNumeric<number, number>[] = [];\n\n let lastScale: ScaleContinuousNumeric<number, number> | null = null;\n for (const section of sections) {\n const _scale = section.scaleInfo.scale.copy().clamp(true);\n scales.push(_scale);\n if (lastScale != null && interpolateUnconformities) {\n // Add a new scale that interpolates between lastScale and _scale\n const lastDomain = lastScale.domain();\n const lastRange = lastScale.range();\n const currentDomain = _scale.domain();\n const currentRange = _scale.range();\n\n const interpScale = scaleLinear()\n .domain([lastDomain[lastDomain.length - 1], currentDomain[0]])\n .range([lastRange[lastRange.length - 1], currentRange[0]])\n .clamp(true);\n scales.push(interpScale);\n }\n lastScale = _scale;\n }\n\n const scale: CompositeColumnScale = (age) => {\n for (const s of scales) {\n const domain = s.domain();\n if (\n domain[0] < domain[domain.length - 1] &&\n age >= domain[0] &&\n age <= domain[domain.length - 1]\n ) {\n // Age axes\n return s(age);\n } else if (age <= domain[0] && age >= domain[domain.length - 1]) {\n // Normal axes like height\n return s(age);\n }\n }\n return null;\n };\n\n scale.copy = () => {\n return createCompositeScale(sections, interpolateUnconformities);\n };\n\n scale.domain = () => {\n /** Return the domain of the scale */\n const vals = sections.flatMap((d) => d.scaleInfo.domain);\n if (vals[0] < vals[vals.length - 1]) {\n // age axes\n return [Math.min(...vals), Math.max(...vals)];\n }\n // Normal axes like height\n return [Math.max(...vals), Math.min(...vals)];\n };\n\n scale.invert = (pixelHeight) => {\n /** Invert the scale to get the age at a given pixel height */\n // Iterate through the sections to find the correct one\n for (const scale of scales) {\n const range = scale.range();\n if (\n pixelHeight > Math.min(...range) &&\n pixelHeight <= Math.max(...range)\n ) {\n console.log(\"Inverting scale at pixel height\", pixelHeight);\n return scale.invert(pixelHeight);\n }\n }\n return null;\n };\n\n scale.clamp = (clamp: boolean) => {\n /** Clamp all constituent scales */\n for (const s of scales) {\n s.clamp(clamp);\n }\n };\n\n return scale;\n}\n\n/** Collapse sections separated by unconformities that are smaller than a given pixel height. */\nexport function collapseUnconformitiesByPixelHeight<T extends UnitLong>(\n sections: SectionInfoWithScale<T>[],\n threshold: number,\n opts: ColumnScaleOptions,\n): SectionInfoWithScale<T>[] {\n const newSections = [];\n let currentSection: SectionInfoWithScale<T> | null = null;\n for (const nextSection of sections) {\n if (currentSection == null) {\n currentSection = nextSection;\n continue;\n }\n let heights: [number, number];\n let pxHeights: [number, number];\n if (opts.axisType !== ColumnAxisType.AGE) {\n heights = [nextSection.t_pos, currentSection.b_pos];\n } else {\n heights = [nextSection.t_age, currentSection.b_age];\n }\n\n const _diff = (vals: number[]) => {\n return Math.abs(vals[0] - vals[1]);\n };\n\n pxHeights = [\n _diff(heights.map(nextSection.scaleInfo.scale)),\n _diff(heights.map(currentSection.scaleInfo.scale)),\n ];\n\n const pxHeight = Math.min(...pxHeights);\n\n if (pxHeight < threshold) {\n let t_pos: number;\n let b_pos: number;\n if (\n opts.axisType == ColumnAxisType.AGE ||\n opts.axisType == ColumnAxisType.DEPTH\n ) {\n t_pos = Math.min(currentSection.t_pos, nextSection.t_pos);\n b_pos = Math.max(currentSection.b_pos, nextSection.b_pos);\n } else {\n t_pos = Math.max(currentSection.t_pos, nextSection.t_pos);\n b_pos = Math.min(currentSection.b_pos, nextSection.b_pos);\n }\n\n // We need to merge the sections\n const compositeSection0: SectionInfo<T> = {\n units: [...currentSection.units, ...nextSection.units],\n section_id: [\n ...ensureArray(currentSection.section_id),\n ...ensureArray(nextSection.section_id),\n ],\n t_age: Math.min(currentSection.t_age, nextSection.t_age),\n b_age: Math.max(currentSection.b_age, nextSection.b_age),\n t_pos,\n b_pos,\n };\n\n currentSection = addScaleToSection(compositeSection0, opts);\n } else {\n // We need to keep the section\n newSections.push(currentSection);\n currentSection = nextSection;\n }\n }\n if (currentSection != null) {\n newSections.push(currentSection);\n }\n\n return newSections;\n}\n"],"names":["ColumnAxisType","$d6XP3$ColumnAxisType","scaleLinear","$d6XP3$scaleLinear","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$iWhRv","$dcPBY","$76iYI","$8054a162cb094378$export$e7184dd8bb3302ed","inputScales","unconformityHeight","totalHeight","lastSectionTopHeight","packages2","group","domain","scale","b_age","t_age","key","push","$8054a162cb094378$export$d6235b492bceb8c5","offset","paddingTop","Math","abs","sections","$8054a162cb094378$export$67442a0f5bef147b","packages","map","d","scaleInfo","sections1","i","$8054a162cb094378$export$7d3f3129a1a4b84e","opts","$8054a162cb094378$var$addScaleToSection","t_pos","b_pos","units","_range","axisType","AGE","$8054a162cb094378$var$buildSectionScale","data","pixelHeight","targetUnitHeight","minPixelScale","minSectionHeight","hybridScale","$8054a162cb094378$var$findSectionHeightRange","min","max","DEPTH","ORDINAL","HEIGHT","dAge","_pixelScale","pixelScale","type","HybridScaleType","EquidistantSurfaces","buildHybridScale","pixelOffset","$8054a162cb094378$var$findAverageUnitHeight","unitHeights","getUnitHeightRange","reduce","a","b","length","def","_scale","heightScale","range","domain0","range0","copy","clamp","_heightScale","$8054a162cb094378$export$3ada7641926a616d","interpolateUnconformities","scales","lastScale","section","lastDomain","lastRange","currentDomain","currentRange","interpScale","age","s","vals","flatMap","invert","console","log","$8054a162cb094378$export$edbf01b435c75274","threshold","newSections","currentSection","nextSection","heights","_diff","pxHeight","section_id","ensureArray","buildCompositeScaleInfo","createPackageScale","finalizeSectionHeights","computeSectionHeights","createCompositeScale","collapseUnconformitiesByPixelHeight"],"version":3,"file":"column-views.ba9108fe.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.e93b3bdb.js";import"./column-views.869c7199.js";import"./column-views.54f7a243.js";import"./column-views.5c02450b.js";import"./column-views.dbb4a46b.js";import{usePlotArea as e,DetritalSpectrumPlot as t,DetritalSeries as r}from"@macrostrat/data-components";import a from"@macrostrat/hyper";import{useMemo as o}from"react";import i from"classnames";import{group as n}from"d3-array";import{NonIdealState as l,Spinner as s}from"@blueprintjs/core";function u(e,t,r,a){Object.defineProperty(e,t,{get:r,set:a,enumerable:!0,configurable:!0})}var m=globalThis,c={},d={},p=m.parcelRequirea149;null==p&&((p=function(e){if(e in c)return c[e].exports;if(e in d){var t=d[e];delete d[e];var r={id:e,exports:{}};return c[e]=r,t.call(r.exports,r,r.exports),r.exports}var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){d[e]=t},m.parcelRequirea149=p),p.register;var f={};u(f,"DetritalColumn",()=>H),u(f,"DetritalGroup",()=>A);var h=p("ehHhC"),g=p("jtfAP"),_=p("kIQUG"),v=p("wtIgl"),w=p("iWhRv");let b=a.styled(g&&g.__esModule?g.default:g);function H({columnID:e,color:t="magenta"}){let r=(0,h.useDetritalMeasurements)({col_id:e}),a=o(()=>e=>b(A,{width:360,height:40,color:t,...e}),[400,t]),{axisType:i,units:u}=(0,v.useMacrostratColumnData)(),m=o(()=>null==r||null==u?null:function(e,t,r){let a=n(e,e=>e.measuremeta_id),o=new Map;for(let e of a.values()){let a=Array.from(new Set(e.map(e=>e.unit_id)));a.sort();let i=a.join("-");if(!o.has(i)){let e=a.map(e=>t.find(t=>t.unit_id===e)).filter(Boolean),n=e.map(e=>{let[t,a]=(0,w.getUnitHeightRange)(e,r);return{height:t,top_height:a}}),l=(0,_.mergeHeightRanges)(n,r);o.set(i,{id:i,data:[],units:e,...l})}o.get(i).data.push(e[0])}return Array.from(o.values())}(r,u,i),[r,u,i]);return null==m?b(l,b(s)):b(_.BaseMeasurementsColumn,{data:m,noteComponent:a,deltaConnectorAttachment:20})}function x({unit:t}){let{xScale:r,height:a}=e(),{t_age:o,b_age:i}=t,n=r(o);return b("rect.depositional-age",{x:n,width:r(i)-n,y:0,height:a})}function A(e){let{note:a,width:o,height:n,color:l,spacing:s}=e,{data:u,units:m}=a;return b("div.detrital-group",{className:i({"hide-axis":(s?.below??100)<60})},[b(t,{width:o,innerHeight:n,showAxisLabels:!0,paddingBottom:40},[m.map(e=>b(x,{unit:e})),u.map(e=>b(r,{bandwidth:20,data:e.measure_value,color:l}))])])}export{H as DetritalColumn,A as DetritalGroup};
2
- //# sourceMappingURL=column-views.b6613ab0.js.map
1
+ import"./column-views.e93b3bdb.js";import"./column-views.869c7199.js";import"./column-views.109cb0c8.js";import"./column-views.d737de1e.js";import"./column-views.dbb4a46b.js";import{usePlotArea as e,DetritalSpectrumPlot as t,DetritalSeries as r}from"@macrostrat/data-components";import a from"@macrostrat/hyper";import{useMemo as o}from"react";import i from"classnames";import{group as n}from"d3-array";import{NonIdealState as l,Spinner as s}from"@blueprintjs/core";function u(e,t,r,a){Object.defineProperty(e,t,{get:r,set:a,enumerable:!0,configurable:!0})}var m=globalThis,c={},d={},p=m.parcelRequirea149;null==p&&((p=function(e){if(e in c)return c[e].exports;if(e in d){var t=d[e];delete d[e];var r={id:e,exports:{}};return c[e]=r,t.call(r.exports,r,r.exports),r.exports}var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=function(e,t){d[e]=t},m.parcelRequirea149=p),p.register;var f={};u(f,"DetritalColumn",()=>H),u(f,"DetritalGroup",()=>A);var h=p("ehHhC"),g=p("jtfAP"),_=p("kIQUG"),v=p("wtIgl"),w=p("iWhRv");let b=a.styled(g&&g.__esModule?g.default:g);function H({columnID:e,color:t="magenta"}){let r=(0,h.useDetritalMeasurements)({col_id:e}),a=o(()=>e=>b(A,{width:360,height:40,color:t,...e}),[400,t]),{axisType:i,units:u}=(0,v.useMacrostratColumnData)(),m=o(()=>null==r||null==u?null:function(e,t,r){let a=n(e,e=>e.measuremeta_id),o=new Map;for(let e of a.values()){let a=Array.from(new Set(e.map(e=>e.unit_id)));a.sort();let i=a.join("-");if(!o.has(i)){let e=a.map(e=>t.find(t=>t.unit_id===e)).filter(Boolean),n=e.map(e=>{let[t,a]=(0,w.getUnitHeightRange)(e,r);return{height:t,top_height:a}}),l=(0,_.mergeHeightRanges)(n,r);o.set(i,{id:i,data:[],units:e,...l})}o.get(i).data.push(e[0])}return Array.from(o.values())}(r,u,i),[r,u,i]);return null==m?b(l,b(s)):b(_.BaseMeasurementsColumn,{data:m,noteComponent:a,deltaConnectorAttachment:20})}function x({unit:t}){let{xScale:r,height:a}=e(),{t_age:o,b_age:i}=t,n=r(o);return b("rect.depositional-age",{x:n,width:r(i)-n,y:0,height:a})}function A(e){let{note:a,width:o,height:n,color:l,spacing:s}=e,{data:u,units:m}=a;return b("div.detrital-group",{className:i({"hide-axis":(s?.below??100)<60})},[b(t,{width:o,innerHeight:n,showAxisLabels:!0,paddingBottom:40},[m.map(e=>b(x,{unit:e})),u.map(e=>b(r,{bandwidth:20,data:e.measure_value,color:l}))])])}export{H as DetritalColumn,A as DetritalGroup};
2
+ //# sourceMappingURL=column-views.c16a19fb.js.map
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,e,C,C,wB,C,C,kB,C,K,6B,A,Q,M,mB,A,Q,W,C,K,O,A,Q,M,Y,A,Q,S,C,K,U,A,Q,iB,C,C,W,C,K,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,iB,I,G,E,E,gB,I,G,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCsBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAqEvB,SAAS,EAAe,CAAA,SAAE,CAAQ,CAAA,MAAE,EAAQ,SAAA,CAAW,EACrD,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,EAAwB,CAAE,OAAQ,CAAS,GAOlD,EAAgB,AAAA,EAAQ,IACrB,AAAC,GACC,EAAE,EAAe,CACtB,MALgB,IAMhB,OAAQ,GACR,MAAA,EACA,GAAG,CAAK,AACV,GAED,CAdW,IAcH,EAAM,EAEX,CAAA,SAAE,CAAQ,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEtB,EAAQ,AAAA,EAAQ,IACpB,AAAI,AAAQ,MAAR,GAAgB,AAAS,MAAT,EAAsB,KACnC,AA3EX,SACE,CAAuB,CACvB,CAAc,CACd,CAAwB,EASxB,IAAM,EAAsB,AAAA,EAAM,EAAM,AAAC,GAAM,EAAE,cAAc,EAEzD,EAAS,IAAI,IAEnB,IAAK,IAAM,KAAgB,EAAoB,MAAM,GAAI,CAGvD,IAAM,EAAM,MAAM,IAAI,CADN,IAAI,IAAI,EAAa,GAAG,CAAC,AAAC,GAAM,EAAE,OAAO,IAEzD,EAAI,IAAI,GAER,IAAM,EAAM,EAAI,IAAI,CAAC,KAErB,GAAI,CAAC,EAAO,GAAG,CAAC,GAAM,CACpB,IAAM,EAAW,EACd,GAAG,CAAC,AAAC,GACG,EAAM,IAAI,CAAC,AAAC,GAAM,EAAE,OAAO,GAAK,IAExC,MAAM,CAAC,SAEJ,EAAY,EAAS,GAAG,CAAC,AAAC,IAC9B,GAAM,CAAC,EAAQ,EAAW,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAM,GACtD,MAAO,CAAE,OAAA,EAAQ,WAAA,CAAW,CAC9B,GAGM,EAAM,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,EAAW,GAEzC,EAAO,GAAG,CAAC,EAAK,CACd,GAAI,EACJ,KAAM,EAAE,CACR,MAAO,EACP,GAAG,CAAG,AACR,EACF,CACA,EAAO,GAAG,CAAC,GAAM,IAAI,CAAC,IAAI,CAAC,CAAY,CAAC,EAAE,CAC5C,CAEA,OAAO,MAAM,IAAI,CAAC,EAAO,MAAM,GACjC,EAyB+B,EAAM,EAAO,GACvC,CAAC,EAAM,EAAO,EAAS,SAE1B,AAAI,AAAS,MAAT,EAAsB,EAAE,EAAe,EAAE,IAEtC,EAAE,EAAA,sBAAqB,CAAG,CAC/B,KAAM,EACN,cAAA,EACA,yBAA0B,EAC5B,EACF,CAEA,SAAS,EAAgB,CAAA,KAAE,CAAI,CAAE,EAC/B,GAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAE,CAAG,AAAA,IAErB,CAAA,MAAE,CAAK,CAAA,MAAE,CAAK,CAAE,CAAG,EACnB,EAAI,EAAO,GAGjB,OAAO,EAAE,wBAAyB,CAAE,EAAA,EAAG,MAAO,AAFnC,EAAO,GAEiC,EAAG,EAAG,EAAG,OAAA,CAAO,EACrE,CAEA,SAAS,EAAc,CAAwB,EAC7C,GAAM,CAAA,KAAE,CAAI,CAAA,MAAE,CAAK,CAAA,OAAE,CAAM,CAAA,MAAE,CAAK,CAAA,QAAE,CAAO,CAAE,CAAG,EAC1C,CAAA,KAAE,CAAI,CAAA,MAAE,CAAK,CAAE,CAAG,EAOxB,OAAO,EACL,qBACA,CAAE,UAAW,AAAA,EAAW,CAAE,YAJL,AADJ,CAAA,GAAS,OAAS,GAArC,EACoC,EAIoB,EAAG,EACzD,CACE,EACE,EACA,CAAE,MAAA,EAAO,YAAa,EAAQ,eAAgB,CAAA,EAAM,cAAe,EAAG,EACtE,CACE,EAAM,GAAG,CAAC,AAAC,GACF,EAAE,EAAiB,CAAE,KAAA,CAAK,IAEnC,EAAK,GAAG,CAAC,AAAC,GACD,EAAE,EAAgB,CACvB,UAAW,GACX,KAAM,EAAE,aAAa,CACrB,MApBG,CAqBL,IAEH,EAEJ,CAEL,Q,K,c,C,K,a","sources":["<anon>","packages/column-views/src/facets/detrital-zircon/index.ts"],"sourcesContent":["import \"./column-views.e93b3bdb.js\";\nimport \"./column-views.869c7199.js\";\nimport \"./column-views.54f7a243.js\";\nimport \"./column-views.5c02450b.js\";\nimport \"./column-views.dbb4a46b.js\";\nimport {usePlotArea as $9VOFI$usePlotArea, DetritalSpectrumPlot as $9VOFI$DetritalSpectrumPlot, DetritalSeries as $9VOFI$DetritalSeries} from \"@macrostrat/data-components\";\nimport $9VOFI$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $9VOFI$useMemo} from \"react\";\nimport $9VOFI$classnames from \"classnames\";\nimport {group as $9VOFI$group} from \"d3-array\";\nimport {NonIdealState as $9VOFI$NonIdealState, Spinner as $9VOFI$Spinner} from \"@blueprintjs/core\";\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 $68f55e74a5c97233$exports = {};\n\n$parcel$export($68f55e74a5c97233$exports, \"DetritalColumn\", () => $68f55e74a5c97233$export$f176396e104db8d5);\n$parcel$export($68f55e74a5c97233$exports, \"DetritalGroup\", () => $68f55e74a5c97233$export$1b3047373cd1c8c7);\n\n\n\nvar $ehHhC = parcelRequire(\"ehHhC\");\n\n\nvar $jtfAP = parcelRequire(\"jtfAP\");\n\n\nvar $kIQUG = parcelRequire(\"kIQUG\");\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nconst $68f55e74a5c97233$var$h = (0, $9VOFI$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($jtfAP))));\nfunction $68f55e74a5c97233$var$prepareDetritalData(data, units, axisType) {\n /** Right now measurement data could be duplicated if there are multiple units linked to the same\n * measuremeta_id. THis happens because matches to units might be at a lower rank (e.g, if the column\n * contains Formations but the measurements are linked to a Group). To handle this, we group by measuremeta_id\n * and then create unique keys based on the set of units linked to each measurement.\n */ // Group data by measuremeta_id\n const measurementsGrouped = (0, $9VOFI$group)(data, (d)=>d.measuremeta_id);\n const resMap = new Map();\n for (const measurements of measurementsGrouped.values()){\n // Get a list of unique unit_ids for this measurement\n const unitIDs = new Set(measurements.map((m)=>m.unit_id));\n const ids = Array.from(unitIDs);\n ids.sort();\n // Key is unique to the set of units\n const key = ids.join(\"-\");\n if (!resMap.has(key)) {\n const unitData = ids.map((id)=>{\n return units.find((u)=>u.unit_id === id);\n }).filter(Boolean);\n const positions = unitData.map((unit)=>{\n const [height, top_height] = (0, $iWhRv.getUnitHeightRange)(unit, axisType);\n return {\n height: height,\n top_height: top_height\n };\n });\n // merge positions (note: we could also have multiple separate notes per measurement)\n const pos = (0, $kIQUG.mergeHeightRanges)(positions, axisType);\n resMap.set(key, {\n id: key,\n data: [],\n units: unitData,\n ...pos\n });\n }\n resMap.get(key).data.push(measurements[0]);\n }\n return Array.from(resMap.values());\n}\nfunction $68f55e74a5c97233$export$f176396e104db8d5({ columnID: columnID, color: color = \"magenta\" }) {\n const data = (0, $ehHhC.useDetritalMeasurements)({\n col_id: columnID\n });\n const width = 400;\n const paddingLeft = 40;\n const spectrumWidth = width - paddingLeft;\n const noteComponent = (0, $9VOFI$useMemo)(()=>{\n return (props)=>{\n return $68f55e74a5c97233$var$h($68f55e74a5c97233$export$1b3047373cd1c8c7, {\n width: spectrumWidth,\n height: 40,\n color: color,\n ...props\n });\n };\n }, [\n width,\n color\n ]);\n const { axisType: axisType, units: units } = (0, $wtIgl.useMacrostratColumnData)();\n const data1 = (0, $9VOFI$useMemo)(()=>{\n if (data == null || units == null) return null;\n return $68f55e74a5c97233$var$prepareDetritalData(data, units, axisType);\n }, [\n data,\n units,\n axisType\n ]);\n if (data1 == null) return $68f55e74a5c97233$var$h((0, $9VOFI$NonIdealState), $68f55e74a5c97233$var$h((0, $9VOFI$Spinner)));\n return $68f55e74a5c97233$var$h((0, $kIQUG.BaseMeasurementsColumn), {\n data: data1,\n noteComponent: noteComponent,\n deltaConnectorAttachment: 20\n });\n}\nfunction $68f55e74a5c97233$var$DepositionalAge({ unit: unit }) {\n const { xScale: xScale, height: height } = (0, $9VOFI$usePlotArea)();\n const { t_age: t_age, b_age: b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n return $68f55e74a5c97233$var$h(\"rect.depositional-age\", {\n x: x,\n width: x1 - x,\n y: 0,\n height: height\n });\n}\nfunction $68f55e74a5c97233$export$1b3047373cd1c8c7(props) {\n const { note: note, width: width, height: height, color: color, spacing: spacing } = props;\n const { data: data, units: units } = note;\n const _color = color;\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n return $68f55e74a5c97233$var$h(\"div.detrital-group\", {\n className: (0, $9VOFI$classnames)({\n \"hide-axis\": hideAxisLabels\n })\n }, [\n $68f55e74a5c97233$var$h((0, $9VOFI$DetritalSpectrumPlot), {\n width: width,\n innerHeight: height,\n showAxisLabels: true,\n paddingBottom: 40\n }, [\n units.map((unit)=>{\n return $68f55e74a5c97233$var$h($68f55e74a5c97233$var$DepositionalAge, {\n unit: unit\n });\n }),\n data.map((d)=>{\n return $68f55e74a5c97233$var$h((0, $9VOFI$DetritalSeries), {\n bandwidth: 20,\n data: d.measure_value,\n color: _color\n });\n })\n ])\n ]);\n}\n\n\nexport {$68f55e74a5c97233$export$f176396e104db8d5 as DetritalColumn, $68f55e74a5c97233$export$1b3047373cd1c8c7 as DetritalGroup};\n//# sourceMappingURL=column-views.b6613ab0.js.map\n","import {\n DetritalSpectrumPlot,\n DetritalSeries,\n usePlotArea,\n} from \"@macrostrat/data-components\";\nimport type { IUnit } from \"../../units/types\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useDetritalMeasurements, MeasurementInfo } from \"./provider\";\nimport { useMemo } from \"react\";\nimport styles from \"./index.module.sass\";\nimport classNames from \"classnames\";\nimport {\n BaseMeasurementsColumn,\n mergeHeightRanges,\n ColumnMeasurementData,\n} from \"../measurements\";\nimport { group } from \"d3-array\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { useMacrostratColumnData } from \"../../data-provider\";\nimport { getUnitHeightRange } from \"../../prepare-units\";\nimport { NonIdealState, Spinner } from \"@blueprintjs/core\";\n\nconst h = hyper.styled(styles);\n\ninterface DetritalItemProps {\n note: DZMeasurementInfo;\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\ninterface DZMeasurementInfo extends ColumnMeasurementData<MeasurementInfo[]> {\n units: IUnit[];\n}\n\nfunction prepareDetritalData(\n data: MeasurementInfo[],\n units: IUnit[],\n axisType: ColumnAxisType,\n) {\n /** Right now measurement data could be duplicated if there are multiple units linked to the same\n * measuremeta_id. THis happens because matches to units might be at a lower rank (e.g, if the column\n * contains Formations but the measurements are linked to a Group). To handle this, we group by measuremeta_id\n * and then create unique keys based on the set of units linked to each measurement.\n */\n\n // Group data by measuremeta_id\n const measurementsGrouped = group(data, (d) => d.measuremeta_id);\n\n const resMap = new Map<string, DZMeasurementInfo>();\n\n for (const measurements of measurementsGrouped.values()) {\n // Get a list of unique unit_ids for this measurement\n const unitIDs = new Set(measurements.map((m) => m.unit_id));\n const ids = Array.from(unitIDs);\n ids.sort();\n // Key is unique to the set of units\n const key = ids.join(\"-\");\n\n if (!resMap.has(key)) {\n const unitData = ids\n .map((id) => {\n return units.find((u) => u.unit_id === id);\n })\n .filter(Boolean);\n\n const positions = unitData.map((unit) => {\n const [height, top_height] = getUnitHeightRange(unit, axisType);\n return { height, top_height };\n });\n\n // merge positions (note: we could also have multiple separate notes per measurement)\n const pos = mergeHeightRanges(positions, axisType);\n\n resMap.set(key, {\n id: key,\n data: [],\n units: unitData as IUnit[],\n ...pos,\n });\n }\n resMap.get(key)!.data.push(measurements[0]);\n }\n\n return Array.from(resMap.values());\n}\n\nfunction DetritalColumn({ columnID, color = \"magenta\" }) {\n const data = useDetritalMeasurements({ col_id: columnID });\n\n const width = 400;\n const paddingLeft = 40;\n\n const spectrumWidth = width - paddingLeft;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(DetritalGroup, {\n width: spectrumWidth,\n height: 40,\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n const { axisType, units } = useMacrostratColumnData();\n\n const data1 = useMemo(() => {\n if (data == null || units == null) return null;\n return prepareDetritalData(data, units, axisType);\n }, [data, units, axisType]);\n\n if (data1 == null) return h(NonIdealState, h(Spinner));\n\n return h(BaseMeasurementsColumn, {\n data: data1,\n noteComponent,\n deltaConnectorAttachment: 20,\n });\n}\n\nfunction DepositionalAge({ unit }) {\n const { xScale, height } = usePlotArea();\n\n const { t_age, b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n\n return h(\"rect.depositional-age\", { x, width: x1 - x, y: 0, height });\n}\n\nfunction DetritalGroup(props: DetritalItemProps) {\n const { note, width, height, color, spacing } = props;\n const { data, units } = note;\n\n const _color = color;\n\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n\n return h(\n \"div.detrital-group\",\n { className: classNames({ \"hide-axis\": hideAxisLabels }) },\n [\n h(\n DetritalSpectrumPlot,\n { width, innerHeight: height, showAxisLabels: true, paddingBottom: 40 },\n [\n units.map((unit) => {\n return h(DepositionalAge, { unit });\n }),\n data.map((d) => {\n return h(DetritalSeries, {\n bandwidth: 20,\n data: d.measure_value,\n color: _color,\n });\n }),\n ],\n ),\n ],\n );\n}\n\nexport { DetritalColumn, DetritalGroup };\n"],"names":["usePlotArea","$9VOFI$usePlotArea","DetritalSpectrumPlot","$9VOFI$DetritalSpectrumPlot","DetritalSeries","$9VOFI$DetritalSeries","$9VOFI$macrostrathyper","useMemo","$9VOFI$useMemo","$9VOFI$classnames","group","$9VOFI$group","NonIdealState","$9VOFI$NonIdealState","Spinner","$9VOFI$Spinner","$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","$68f55e74a5c97233$exports","$68f55e74a5c97233$export$f176396e104db8d5","$68f55e74a5c97233$export$1b3047373cd1c8c7","$ehHhC","$jtfAP","$kIQUG","$wtIgl","$iWhRv","$68f55e74a5c97233$var$h","styled","a","__esModule","default","columnID","color","data","useDetritalMeasurements","col_id","noteComponent","props","width","height","axisType","units","useMacrostratColumnData","data1","$68f55e74a5c97233$var$prepareDetritalData","measurementsGrouped","d","measuremeta_id","resMap","Map","measurements","values","ids","Array","from","Set","map","m","unit_id","sort","key","join","has","unitData","find","u","filter","Boolean","positions","unit","top_height","getUnitHeightRange","pos","mergeHeightRanges","push","BaseMeasurementsColumn","deltaConnectorAttachment","$68f55e74a5c97233$var$DepositionalAge","xScale","t_age","b_age","x","x1","y","note","spacing","className","spaceBelow","below","innerHeight","showAxisLabels","paddingBottom","bandwidth","measure_value","DetritalColumn","DetritalGroup"],"version":3,"file":"column-views.b6613ab0.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,e,C,C,wB,C,C,kB,C,K,6B,A,Q,M,mB,A,Q,W,C,K,O,A,Q,M,Y,A,Q,S,C,K,U,A,Q,iB,C,C,W,C,K,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,iB,I,G,E,E,gB,I,G,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCsBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAqEvB,SAAS,EAAe,CAAA,SAAE,CAAQ,CAAA,MAAE,EAAQ,SAAA,CAAW,EACrD,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,EAAwB,CAAE,OAAQ,CAAS,GAOlD,EAAgB,AAAA,EAAQ,IACrB,AAAC,GACC,EAAE,EAAe,CACtB,MALgB,IAMhB,OAAQ,GACR,MAAA,EACA,GAAG,CAAK,AACV,GAED,CAdW,IAcH,EAAM,EAEX,CAAA,SAAE,CAAQ,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEtB,EAAQ,AAAA,EAAQ,IACpB,AAAI,AAAQ,MAAR,GAAgB,AAAS,MAAT,EAAsB,KACnC,AA3EX,SACE,CAAuB,CACvB,CAAc,CACd,CAAwB,EASxB,IAAM,EAAsB,AAAA,EAAM,EAAM,AAAC,GAAM,EAAE,cAAc,EAEzD,EAAS,IAAI,IAEnB,IAAK,IAAM,KAAgB,EAAoB,MAAM,GAAI,CAGvD,IAAM,EAAM,MAAM,IAAI,CADN,IAAI,IAAI,EAAa,GAAG,CAAC,AAAC,GAAM,EAAE,OAAO,IAEzD,EAAI,IAAI,GAER,IAAM,EAAM,EAAI,IAAI,CAAC,KAErB,GAAI,CAAC,EAAO,GAAG,CAAC,GAAM,CACpB,IAAM,EAAW,EACd,GAAG,CAAC,AAAC,GACG,EAAM,IAAI,CAAC,AAAC,GAAM,EAAE,OAAO,GAAK,IAExC,MAAM,CAAC,SAEJ,EAAY,EAAS,GAAG,CAAC,AAAC,IAC9B,GAAM,CAAC,EAAQ,EAAW,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAM,GACtD,MAAO,CAAE,OAAA,EAAQ,WAAA,CAAW,CAC9B,GAGM,EAAM,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,EAAW,GAEzC,EAAO,GAAG,CAAC,EAAK,CACd,GAAI,EACJ,KAAM,EAAE,CACR,MAAO,EACP,GAAG,CAAG,AACR,EACF,CACA,EAAO,GAAG,CAAC,GAAM,IAAI,CAAC,IAAI,CAAC,CAAY,CAAC,EAAE,CAC5C,CAEA,OAAO,MAAM,IAAI,CAAC,EAAO,MAAM,GACjC,EAyB+B,EAAM,EAAO,GACvC,CAAC,EAAM,EAAO,EAAS,SAE1B,AAAI,AAAS,MAAT,EAAsB,EAAE,EAAe,EAAE,IAEtC,EAAE,EAAA,sBAAqB,CAAG,CAC/B,KAAM,EACN,cAAA,EACA,yBAA0B,EAC5B,EACF,CAEA,SAAS,EAAgB,CAAA,KAAE,CAAI,CAAE,EAC/B,GAAM,CAAA,OAAE,CAAM,CAAA,OAAE,CAAM,CAAE,CAAG,AAAA,IAErB,CAAA,MAAE,CAAK,CAAA,MAAE,CAAK,CAAE,CAAG,EACnB,EAAI,EAAO,GAGjB,OAAO,EAAE,wBAAyB,CAAE,EAAA,EAAG,MAAO,AAFnC,EAAO,GAEiC,EAAG,EAAG,EAAG,OAAA,CAAO,EACrE,CAEA,SAAS,EAAc,CAAwB,EAC7C,GAAM,CAAA,KAAE,CAAI,CAAA,MAAE,CAAK,CAAA,OAAE,CAAM,CAAA,MAAE,CAAK,CAAA,QAAE,CAAO,CAAE,CAAG,EAC1C,CAAA,KAAE,CAAI,CAAA,MAAE,CAAK,CAAE,CAAG,EAOxB,OAAO,EACL,qBACA,CAAE,UAAW,AAAA,EAAW,CAAE,YAJL,AADJ,CAAA,GAAS,OAAS,GAArC,EACoC,EAIoB,EAAG,EACzD,CACE,EACE,EACA,CAAE,MAAA,EAAO,YAAa,EAAQ,eAAgB,CAAA,EAAM,cAAe,EAAG,EACtE,CACE,EAAM,GAAG,CAAC,AAAC,GACF,EAAE,EAAiB,CAAE,KAAA,CAAK,IAEnC,EAAK,GAAG,CAAC,AAAC,GACD,EAAE,EAAgB,CACvB,UAAW,GACX,KAAM,EAAE,aAAa,CACrB,MApBG,CAqBL,IAEH,EAEJ,CAEL,Q,K,c,C,K,a","sources":["<anon>","packages/column-views/src/facets/detrital-zircon/index.ts"],"sourcesContent":["import \"./column-views.e93b3bdb.js\";\nimport \"./column-views.869c7199.js\";\nimport \"./column-views.109cb0c8.js\";\nimport \"./column-views.d737de1e.js\";\nimport \"./column-views.dbb4a46b.js\";\nimport {usePlotArea as $9VOFI$usePlotArea, DetritalSpectrumPlot as $9VOFI$DetritalSpectrumPlot, DetritalSeries as $9VOFI$DetritalSeries} from \"@macrostrat/data-components\";\nimport $9VOFI$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $9VOFI$useMemo} from \"react\";\nimport $9VOFI$classnames from \"classnames\";\nimport {group as $9VOFI$group} from \"d3-array\";\nimport {NonIdealState as $9VOFI$NonIdealState, Spinner as $9VOFI$Spinner} from \"@blueprintjs/core\";\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 $68f55e74a5c97233$exports = {};\n\n$parcel$export($68f55e74a5c97233$exports, \"DetritalColumn\", () => $68f55e74a5c97233$export$f176396e104db8d5);\n$parcel$export($68f55e74a5c97233$exports, \"DetritalGroup\", () => $68f55e74a5c97233$export$1b3047373cd1c8c7);\n\n\n\nvar $ehHhC = parcelRequire(\"ehHhC\");\n\n\nvar $jtfAP = parcelRequire(\"jtfAP\");\n\n\nvar $kIQUG = parcelRequire(\"kIQUG\");\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nconst $68f55e74a5c97233$var$h = (0, $9VOFI$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($jtfAP))));\nfunction $68f55e74a5c97233$var$prepareDetritalData(data, units, axisType) {\n /** Right now measurement data could be duplicated if there are multiple units linked to the same\n * measuremeta_id. THis happens because matches to units might be at a lower rank (e.g, if the column\n * contains Formations but the measurements are linked to a Group). To handle this, we group by measuremeta_id\n * and then create unique keys based on the set of units linked to each measurement.\n */ // Group data by measuremeta_id\n const measurementsGrouped = (0, $9VOFI$group)(data, (d)=>d.measuremeta_id);\n const resMap = new Map();\n for (const measurements of measurementsGrouped.values()){\n // Get a list of unique unit_ids for this measurement\n const unitIDs = new Set(measurements.map((m)=>m.unit_id));\n const ids = Array.from(unitIDs);\n ids.sort();\n // Key is unique to the set of units\n const key = ids.join(\"-\");\n if (!resMap.has(key)) {\n const unitData = ids.map((id)=>{\n return units.find((u)=>u.unit_id === id);\n }).filter(Boolean);\n const positions = unitData.map((unit)=>{\n const [height, top_height] = (0, $iWhRv.getUnitHeightRange)(unit, axisType);\n return {\n height: height,\n top_height: top_height\n };\n });\n // merge positions (note: we could also have multiple separate notes per measurement)\n const pos = (0, $kIQUG.mergeHeightRanges)(positions, axisType);\n resMap.set(key, {\n id: key,\n data: [],\n units: unitData,\n ...pos\n });\n }\n resMap.get(key).data.push(measurements[0]);\n }\n return Array.from(resMap.values());\n}\nfunction $68f55e74a5c97233$export$f176396e104db8d5({ columnID: columnID, color: color = \"magenta\" }) {\n const data = (0, $ehHhC.useDetritalMeasurements)({\n col_id: columnID\n });\n const width = 400;\n const paddingLeft = 40;\n const spectrumWidth = width - paddingLeft;\n const noteComponent = (0, $9VOFI$useMemo)(()=>{\n return (props)=>{\n return $68f55e74a5c97233$var$h($68f55e74a5c97233$export$1b3047373cd1c8c7, {\n width: spectrumWidth,\n height: 40,\n color: color,\n ...props\n });\n };\n }, [\n width,\n color\n ]);\n const { axisType: axisType, units: units } = (0, $wtIgl.useMacrostratColumnData)();\n const data1 = (0, $9VOFI$useMemo)(()=>{\n if (data == null || units == null) return null;\n return $68f55e74a5c97233$var$prepareDetritalData(data, units, axisType);\n }, [\n data,\n units,\n axisType\n ]);\n if (data1 == null) return $68f55e74a5c97233$var$h((0, $9VOFI$NonIdealState), $68f55e74a5c97233$var$h((0, $9VOFI$Spinner)));\n return $68f55e74a5c97233$var$h((0, $kIQUG.BaseMeasurementsColumn), {\n data: data1,\n noteComponent: noteComponent,\n deltaConnectorAttachment: 20\n });\n}\nfunction $68f55e74a5c97233$var$DepositionalAge({ unit: unit }) {\n const { xScale: xScale, height: height } = (0, $9VOFI$usePlotArea)();\n const { t_age: t_age, b_age: b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n return $68f55e74a5c97233$var$h(\"rect.depositional-age\", {\n x: x,\n width: x1 - x,\n y: 0,\n height: height\n });\n}\nfunction $68f55e74a5c97233$export$1b3047373cd1c8c7(props) {\n const { note: note, width: width, height: height, color: color, spacing: spacing } = props;\n const { data: data, units: units } = note;\n const _color = color;\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n return $68f55e74a5c97233$var$h(\"div.detrital-group\", {\n className: (0, $9VOFI$classnames)({\n \"hide-axis\": hideAxisLabels\n })\n }, [\n $68f55e74a5c97233$var$h((0, $9VOFI$DetritalSpectrumPlot), {\n width: width,\n innerHeight: height,\n showAxisLabels: true,\n paddingBottom: 40\n }, [\n units.map((unit)=>{\n return $68f55e74a5c97233$var$h($68f55e74a5c97233$var$DepositionalAge, {\n unit: unit\n });\n }),\n data.map((d)=>{\n return $68f55e74a5c97233$var$h((0, $9VOFI$DetritalSeries), {\n bandwidth: 20,\n data: d.measure_value,\n color: _color\n });\n })\n ])\n ]);\n}\n\n\nexport {$68f55e74a5c97233$export$f176396e104db8d5 as DetritalColumn, $68f55e74a5c97233$export$1b3047373cd1c8c7 as DetritalGroup};\n//# sourceMappingURL=column-views.c16a19fb.js.map\n","import {\n DetritalSpectrumPlot,\n DetritalSeries,\n usePlotArea,\n} from \"@macrostrat/data-components\";\nimport type { IUnit } from \"../../units/types\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useDetritalMeasurements, MeasurementInfo } from \"./provider\";\nimport { useMemo } from \"react\";\nimport styles from \"./index.module.sass\";\nimport classNames from \"classnames\";\nimport {\n BaseMeasurementsColumn,\n mergeHeightRanges,\n ColumnMeasurementData,\n} from \"../measurements\";\nimport { group } from \"d3-array\";\nimport { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { useMacrostratColumnData } from \"../../data-provider\";\nimport { getUnitHeightRange } from \"../../prepare-units\";\nimport { NonIdealState, Spinner } from \"@blueprintjs/core\";\n\nconst h = hyper.styled(styles);\n\ninterface DetritalItemProps {\n note: DZMeasurementInfo;\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\ninterface DZMeasurementInfo extends ColumnMeasurementData<MeasurementInfo[]> {\n units: IUnit[];\n}\n\nfunction prepareDetritalData(\n data: MeasurementInfo[],\n units: IUnit[],\n axisType: ColumnAxisType,\n) {\n /** Right now measurement data could be duplicated if there are multiple units linked to the same\n * measuremeta_id. THis happens because matches to units might be at a lower rank (e.g, if the column\n * contains Formations but the measurements are linked to a Group). To handle this, we group by measuremeta_id\n * and then create unique keys based on the set of units linked to each measurement.\n */\n\n // Group data by measuremeta_id\n const measurementsGrouped = group(data, (d) => d.measuremeta_id);\n\n const resMap = new Map<string, DZMeasurementInfo>();\n\n for (const measurements of measurementsGrouped.values()) {\n // Get a list of unique unit_ids for this measurement\n const unitIDs = new Set(measurements.map((m) => m.unit_id));\n const ids = Array.from(unitIDs);\n ids.sort();\n // Key is unique to the set of units\n const key = ids.join(\"-\");\n\n if (!resMap.has(key)) {\n const unitData = ids\n .map((id) => {\n return units.find((u) => u.unit_id === id);\n })\n .filter(Boolean);\n\n const positions = unitData.map((unit) => {\n const [height, top_height] = getUnitHeightRange(unit, axisType);\n return { height, top_height };\n });\n\n // merge positions (note: we could also have multiple separate notes per measurement)\n const pos = mergeHeightRanges(positions, axisType);\n\n resMap.set(key, {\n id: key,\n data: [],\n units: unitData as IUnit[],\n ...pos,\n });\n }\n resMap.get(key)!.data.push(measurements[0]);\n }\n\n return Array.from(resMap.values());\n}\n\nfunction DetritalColumn({ columnID, color = \"magenta\" }) {\n const data = useDetritalMeasurements({ col_id: columnID });\n\n const width = 400;\n const paddingLeft = 40;\n\n const spectrumWidth = width - paddingLeft;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(DetritalGroup, {\n width: spectrumWidth,\n height: 40,\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n const { axisType, units } = useMacrostratColumnData();\n\n const data1 = useMemo(() => {\n if (data == null || units == null) return null;\n return prepareDetritalData(data, units, axisType);\n }, [data, units, axisType]);\n\n if (data1 == null) return h(NonIdealState, h(Spinner));\n\n return h(BaseMeasurementsColumn, {\n data: data1,\n noteComponent,\n deltaConnectorAttachment: 20,\n });\n}\n\nfunction DepositionalAge({ unit }) {\n const { xScale, height } = usePlotArea();\n\n const { t_age, b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n\n return h(\"rect.depositional-age\", { x, width: x1 - x, y: 0, height });\n}\n\nfunction DetritalGroup(props: DetritalItemProps) {\n const { note, width, height, color, spacing } = props;\n const { data, units } = note;\n\n const _color = color;\n\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n\n return h(\n \"div.detrital-group\",\n { className: classNames({ \"hide-axis\": hideAxisLabels }) },\n [\n h(\n DetritalSpectrumPlot,\n { width, innerHeight: height, showAxisLabels: true, paddingBottom: 40 },\n [\n units.map((unit) => {\n return h(DepositionalAge, { unit });\n }),\n data.map((d) => {\n return h(DetritalSeries, {\n bandwidth: 20,\n data: d.measure_value,\n color: _color,\n });\n }),\n ],\n ),\n ],\n );\n}\n\nexport { DetritalColumn, DetritalGroup };\n"],"names":["usePlotArea","$9VOFI$usePlotArea","DetritalSpectrumPlot","$9VOFI$DetritalSpectrumPlot","DetritalSeries","$9VOFI$DetritalSeries","$9VOFI$macrostrathyper","useMemo","$9VOFI$useMemo","$9VOFI$classnames","group","$9VOFI$group","NonIdealState","$9VOFI$NonIdealState","Spinner","$9VOFI$Spinner","$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","$68f55e74a5c97233$exports","$68f55e74a5c97233$export$f176396e104db8d5","$68f55e74a5c97233$export$1b3047373cd1c8c7","$ehHhC","$jtfAP","$kIQUG","$wtIgl","$iWhRv","$68f55e74a5c97233$var$h","styled","a","__esModule","default","columnID","color","data","useDetritalMeasurements","col_id","noteComponent","props","width","height","axisType","units","useMacrostratColumnData","data1","$68f55e74a5c97233$var$prepareDetritalData","measurementsGrouped","d","measuremeta_id","resMap","Map","measurements","values","ids","Array","from","Set","map","m","unit_id","sort","key","join","has","unitData","find","u","filter","Boolean","positions","unit","top_height","getUnitHeightRange","pos","mergeHeightRanges","push","BaseMeasurementsColumn","deltaConnectorAttachment","$68f55e74a5c97233$var$DepositionalAge","xScale","t_age","b_age","x","x1","y","note","spacing","className","spaceBelow","below","innerHeight","showAxisLabels","paddingBottom","bandwidth","measure_value","DetritalColumn","DetritalGroup"],"version":3,"file":"column-views.c16a19fb.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.1261be59.js";import"./column-views.f93b4175.js";import"./column-views.5c02450b.js";import"./column-views.7b6e7d82.js";import"./column-views.5e73411d.js";import"./column-views.ffbffec7.js";import"./column-views.0818254f.js";import"./column-views.5f3f8ccf.js";import"./column-views.7f9c7448.js";import"./column-views.5fd6e11a.js";import{ColumnAxisType as e}from"@macrostrat/column-components";import{hyperStyled as o}from"@macrostrat/hyper";import{extractPadding as n,useDarkMode as t,Box as i}from"@macrostrat/ui-components";import l from"classnames";import{useCallback as a}from"react";import{NonIdealState as s}from"@blueprintjs/core";import{DataField as r}from"@macrostrat/data-components";function c(e,o,n,t){Object.defineProperty(e,o,{get:n,set:t,enumerable:!0,configurable:!0})}var m=globalThis,u={},p={},d=m.parcelRequirea149;null==d&&((d=function(e){if(e in u)return u[e].exports;if(e in p){var o=p[e];delete p[e];var n={id:e,exports:{}};return u[e]=n,o.call(n.exports,n,n.exports),n.exports}var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}).register=function(e,o){p[e]=o},m.parcelRequirea149=d),d.register;var f={};c(f,"Column",()=>y),c(f,"ColumnContainer",()=>E),c(f,"ColumnBasicInfo",()=>R);var b=d("7YHvf"),g=d("7tWYE"),h=d("wtIgl"),v=d("5SO8b"),_=d("iYfAq"),x=d("2KV3o"),S=d("7exMg"),C=d("4hG2H"),H=d("76iYI"),w=d("610tc");let A=o(b&&b.__esModule?b.default:b);function y(o){let{showUnitPopover:n=!1,keyboardNavigation:t=!1,mergeSections:i,onUnitSelected:l,selectedUnit:a,children:r,units:c,t_age:m,b_age:u,t_pos:p,b_pos:d,unconformityHeight:f=30,targetUnitHeight:b=20,pixelScale:g,minPixelScale:_=.2,minSectionHeight:S=50,collapseSmallUnconformities:y=!0,allowUnitSelection:E=!1,hybridScale:R,scale:M,axisType:F,...$}=o,j=b,T=S,N=_;null!=g&&(j=null,T=0,N=g);let L=F??e.AGE,O=C.CompositeAgeAxis;R?.type===H.HybridScaleType.ApproximateHeight&&L!=e.AGE&&(O=C.ApproximateHeightAxis,L=e.AGE);let{sections:I,units:D,totalHeight:P}=(0,w.usePreparedColumnUnits)(c,{axisType:L,t_age:m,b_age:u,t_pos:p,b_pos:d,mergeSections:i,targetUnitHeight:j,unconformityHeight:f,pixelScale:g,minPixelScale:N,minSectionHeight:T,collapseSmallUnconformities:y,scale:M,hybridScale:R});return 0===I.length?A("div.column-container.empty",A(s,{title:"Empty column",description:"No sections found in this column.",icon:"warning-sign"})):A(h.MacrostratColumnDataProvider,{units:D,sections:I,totalHeight:P,axisType:L,allowUnitSelection:n||E,onUnitSelected:l,selectedUnit:a},A(U,{ageAxisComponent:O,...$},[r,A.if(n)(x.UnitSelectionPopover),A.if(t)(v.UnitKeyboardNavigation,{units:D})]))}function U(o){let t=n(o),i={"--column-padding-top":`${t.paddingTop}px`,"--column-padding-bottom":`${t.paddingBottom}px`,"--column-padding-left":`${t.paddingLeft}px`,"--column-padding-right":`${t.paddingRight}px`},{unitComponent:l=g.UnitComponent,unconformityLabels:s="minimal",showLabels:r=!0,width:c=300,columnWidth:m=150,showLabelColumn:u=!0,className:p,clipUnits:d=!1,children:f,showTimescale:b,timescaleLevels:_,maxInternalColumns:x,onMouseOver:H,ageAxisComponent:w=C.CompositeAgeAxis}=o,{axisType:y}=(0,h.useMacrostratColumnData)(),U=(0,v.useColumnRef)(),R=!1,M=!1;!0===s||"prominent"===s?M=!0:"minimal"===s&&(R=!0);let F=m;F>c&&(F=c);let $=u;F>c-10&&($=!1);let j=b??!0;return null!=_&&(j=!0),j=y==e.AGE&&j,A(E,{...function(e=null){let o=(0,v.useUnitSelectionDispatch)(),n=a(e=>{o?.(null,null)},[o]),t=(0,h.useCompositeScale)(),i=a(o=>{let n=t.invert(o.clientY-o.currentTarget.getBoundingClientRect().top);e?.(null,n,o)},[t,e]),l=a(()=>{e?.(null,null,null)},[e]);return null==e?{onClick:n,onMouseOver:void 0,onMouseMove:void 0,onMouseOut:void 0}:{onMouseOver:i,onMouseMove:i,onMouseOut:l,onClick:n}}(H),style:i,className:p},A("div.column",{ref:U},[A(w),A.if(j)(S.CompositeTimescale,{levels:_,unconformityLabels:R}),A(S.SectionsColumn,{unitComponent:l,showLabels:r,width:c,columnWidth:F,showLabelColumn:$,clipUnits:d,unconformityLabels:M,maxInternalColumns:x}),f]))}function E(e){let{className:o,...n}=e,a=t();return A(i,{className:l(o,{"dark-mode":a?.isEnabled??!1},"column-container"),...n})}function R({data:e,showColumnID:o=!0,showReferences:n=!0}){return null==e?null:A("div.column-info",[A("div.column-title-row",[A("h2",e.col_name),A.if(o)("h4",A(_.Identifier,{id:e.col_id}))]),A(r,{row:!0,label:"Group",value:e.col_group}),A.if(n)(_.ReferencesField,{refs:e.refs,inline:!1,row:!1,className:"column-refs"})])}export{y as Column,E as ColumnContainer,R as ColumnBasicInfo};
2
- //# sourceMappingURL=column-views.74fcfb9c.js.map
1
+ import"./column-views.1261be59.js";import"./column-views.306acd3f.js";import"./column-views.d737de1e.js";import"./column-views.7b6e7d82.js";import"./column-views.048fdcaf.js";import"./column-views.4a28d695.js";import"./column-views.31153f29.js";import"./column-views.ad60c02f.js";import"./column-views.7f9c7448.js";import"./column-views.d22bf15c.js";import{ColumnAxisType as e}from"@macrostrat/column-components";import{hyperStyled as o}from"@macrostrat/hyper";import{extractPadding as n,useDarkMode as t,Box as i}from"@macrostrat/ui-components";import l from"classnames";import{useCallback as a}from"react";import{NonIdealState as s}from"@blueprintjs/core";import{DataField as r}from"@macrostrat/data-components";function c(e,o,n,t){Object.defineProperty(e,o,{get:n,set:t,enumerable:!0,configurable:!0})}var m=globalThis,u={},p={},d=m.parcelRequirea149;null==d&&((d=function(e){if(e in u)return u[e].exports;if(e in p){var o=p[e];delete p[e];var n={id:e,exports:{}};return u[e]=n,o.call(n.exports,n,n.exports),n.exports}var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}).register=function(e,o){p[e]=o},m.parcelRequirea149=d),d.register;var f={};c(f,"Column",()=>y),c(f,"ColumnContainer",()=>E),c(f,"ColumnBasicInfo",()=>R);var b=d("7YHvf"),g=d("7tWYE"),h=d("wtIgl"),v=d("5SO8b"),_=d("iYfAq"),x=d("2KV3o"),S=d("7exMg"),C=d("4hG2H"),H=d("76iYI"),w=d("610tc");let A=o(b&&b.__esModule?b.default:b);function y(o){let{showUnitPopover:n=!1,keyboardNavigation:t=!1,mergeSections:i,onUnitSelected:l,selectedUnit:a,children:r,units:c,t_age:m,b_age:u,t_pos:p,b_pos:d,unconformityHeight:f=30,targetUnitHeight:b=20,pixelScale:g,minPixelScale:_=.2,minSectionHeight:S=50,collapseSmallUnconformities:y=!0,allowUnitSelection:E=!1,hybridScale:R,scale:M,axisType:F,...$}=o,j=b,T=S,N=_;null!=g&&(j=null,T=0,N=g);let L=F??e.AGE,O=C.CompositeAgeAxis;R?.type===H.HybridScaleType.ApproximateHeight&&L!=e.AGE&&(O=C.ApproximateHeightAxis,L=e.AGE);let{sections:I,units:D,totalHeight:P}=(0,w.usePreparedColumnUnits)(c,{axisType:L,t_age:m,b_age:u,t_pos:p,b_pos:d,mergeSections:i,targetUnitHeight:j,unconformityHeight:f,pixelScale:g,minPixelScale:N,minSectionHeight:T,collapseSmallUnconformities:y,scale:M,hybridScale:R});return 0===I.length?A("div.column-container.empty",A(s,{title:"Empty column",description:"No sections found in this column.",icon:"warning-sign"})):A(h.MacrostratColumnDataProvider,{units:D,sections:I,totalHeight:P,axisType:L,allowUnitSelection:n||E,onUnitSelected:l,selectedUnit:a},A(U,{ageAxisComponent:O,...$},[r,A.if(n)(x.UnitSelectionPopover),A.if(t)(v.UnitKeyboardNavigation,{units:D})]))}function U(o){let t=n(o),i={"--column-padding-top":`${t.paddingTop}px`,"--column-padding-bottom":`${t.paddingBottom}px`,"--column-padding-left":`${t.paddingLeft}px`,"--column-padding-right":`${t.paddingRight}px`},{unitComponent:l=g.UnitComponent,unconformityLabels:s="minimal",showLabels:r=!0,width:c=300,columnWidth:m=150,showLabelColumn:u=!0,className:p,clipUnits:d=!1,children:f,showTimescale:b,timescaleLevels:_,maxInternalColumns:x,onMouseOver:H,ageAxisComponent:w=C.CompositeAgeAxis}=o,{axisType:y}=(0,h.useMacrostratColumnData)(),U=(0,v.useColumnRef)(),R=!1,M=!1;!0===s||"prominent"===s?M=!0:"minimal"===s&&(R=!0);let F=m;F>c&&(F=c);let $=u;F>c-10&&($=!1);let j=b??!0;return null!=_&&(j=!0),j=y==e.AGE&&j,A(E,{...function(e=null){let o=(0,v.useUnitSelectionDispatch)(),n=a(e=>{o?.(null,null)},[o]),t=(0,h.useCompositeScale)(),i=a(o=>{let n=t.invert(o.clientY-o.currentTarget.getBoundingClientRect().top);e?.(null,n,o)},[t,e]),l=a(()=>{e?.(null,null,null)},[e]);return null==e?{onClick:n,onMouseOver:void 0,onMouseMove:void 0,onMouseOut:void 0}:{onMouseOver:i,onMouseMove:i,onMouseOut:l,onClick:n}}(H),style:i,className:p},A("div.column",{ref:U},[A(w),A.if(j)(S.CompositeTimescale,{levels:_,unconformityLabels:R}),A(S.SectionsColumn,{unitComponent:l,showLabels:r,width:c,columnWidth:F,showLabelColumn:$,clipUnits:d,unconformityLabels:M,maxInternalColumns:x}),f]))}function E(e){let{className:o,...n}=e,a=t();return A(i,{className:l(o,{"dark-mode":a?.isEnabled??!1},"column-container"),...n})}function R({data:e,showColumnID:o=!0,showReferences:n=!0}){return null==e?null:A("div.column-info",[A("div.column-title-row",[A("h2",e.col_name),A.if(o)("h4",A(_.Identifier,{id:e.col_id}))]),A(r,{row:!0,label:"Group",value:e.col_group}),A.if(n)(_.ReferencesField,{refs:e.refs,inline:!1,row:!1,className:"column-refs"})])}export{y as Column,E as ColumnContainer,R as ColumnBasicInfo};
2
+ //# sourceMappingURL=column-views.c3097d9a.js.map
@@ -1 +1 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,kB,C,K,+B,A,Q,e,C,K,mB,A,Q,kB,C,C,e,C,C,O,C,K,2B,A,Q,M,Y,A,Q,e,C,K,O,A,Q,iB,C,K,mB,A,Q,a,C,K,6B,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,S,I,G,E,E,kB,I,G,E,E,kB,I,G,I,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,S,E,E,SCkDA,IAAM,EAAI,AAAA,E,AAAY,G,AAAA,E,U,C,AAAA,E,O,CAAA,GA0Cf,SAAS,EAAO,CAAkB,EACvC,GAAM,CAAA,gBACJ,EAAkB,CAAA,CAAA,CAAA,mBAClB,EAAqB,CAAA,CAAA,CAAA,cACrB,CAAa,CAAA,eACb,CAAc,CAAA,aACd,CAAY,CAAA,SACZ,CAAQ,CACR,MAAO,CAAQ,CAAA,MACf,CAAK,CAAA,MACL,CAAK,CAAA,MACL,CAAK,CAAA,MACL,CAAK,CAAA,mBACL,EAAqB,EAAA,CAAA,iBACrB,EAAmB,EAAA,CAAA,WACnB,CAAU,CAAA,cACV,EAAgB,EAAA,CAAA,iBAChB,EAAmB,EAAA,CAAA,4BACnB,EAA8B,CAAA,CAAA,CAAA,mBAC9B,EAAqB,CAAA,CAAA,CAAA,YACrB,CAAW,CAAA,MACX,CAAK,CAAA,SACL,CAAQ,CACR,GAAG,EACJ,CAAG,EAIA,EAAoB,EACpB,EAAoB,EACpB,EAAiB,CACH,OAAd,IACF,EAAoB,KACpB,EAAoB,EACpB,EAAiB,GAInB,IAAI,EAAY,GAAY,AAAA,EAAe,GAAG,CAC1C,EAAmB,EAAA,gBAAe,CAE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","sources":["<anon>","packages/column-views/src/column.ts"],"sourcesContent":["import \"./column-views.1261be59.js\";\nimport \"./column-views.f93b4175.js\";\nimport \"./column-views.5c02450b.js\";\nimport \"./column-views.7b6e7d82.js\";\nimport \"./column-views.5e73411d.js\";\nimport \"./column-views.ffbffec7.js\";\nimport \"./column-views.0818254f.js\";\nimport \"./column-views.5f3f8ccf.js\";\nimport \"./column-views.7f9c7448.js\";\nimport \"./column-views.5fd6e11a.js\";\nimport {ColumnAxisType as $6sU8d$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {hyperStyled as $6sU8d$hyperStyled} from \"@macrostrat/hyper\";\nimport {extractPadding as $6sU8d$extractPadding, useDarkMode as $6sU8d$useDarkMode, Box as $6sU8d$Box} from \"@macrostrat/ui-components\";\nimport $6sU8d$classnames from \"classnames\";\nimport {useCallback as $6sU8d$useCallback} from \"react\";\nimport {NonIdealState as $6sU8d$NonIdealState} from \"@blueprintjs/core\";\nimport {DataField as $6sU8d$DataField} from \"@macrostrat/data-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 $4721fb147cb3f5e1$exports = {};\n\n$parcel$export($4721fb147cb3f5e1$exports, \"Column\", () => $4721fb147cb3f5e1$export$816b5d811295e6bc);\n$parcel$export($4721fb147cb3f5e1$exports, \"ColumnContainer\", () => $4721fb147cb3f5e1$export$2194471aa3d52446);\n$parcel$export($4721fb147cb3f5e1$exports, \"ColumnBasicInfo\", () => $4721fb147cb3f5e1$export$fcdf79c491a4504f);\n\n\n\n\n\n\nvar $7YHvf = parcelRequire(\"7YHvf\");\n\nvar $7tWYE = parcelRequire(\"7tWYE\");\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nvar $5SO8b = parcelRequire(\"5SO8b\");\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\nvar $2KV3o = parcelRequire(\"2KV3o\");\n\nvar $7exMg = parcelRequire(\"7exMg\");\n\nvar $4hG2H = parcelRequire(\"4hG2H\");\n\nvar $76iYI = parcelRequire(\"76iYI\");\nvar $610tc = parcelRequire(\"610tc\");\n\n\nconst $4721fb147cb3f5e1$var$h = (0, $6sU8d$hyperStyled)((0, (/*@__PURE__*/$parcel$interopDefault($7YHvf))));\nfunction $4721fb147cb3f5e1$export$816b5d811295e6bc(props) {\n const { showUnitPopover: showUnitPopover = false, keyboardNavigation: keyboardNavigation = false, mergeSections: mergeSections, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit, children: children, units: rawUnits, t_age: t_age, b_age: b_age, t_pos: t_pos, b_pos: b_pos, unconformityHeight: unconformityHeight = 30, targetUnitHeight: targetUnitHeight = 20, pixelScale: pixelScale, minPixelScale: minPixelScale = 0.2, minSectionHeight: minSectionHeight = 50, collapseSmallUnconformities: collapseSmallUnconformities = true, allowUnitSelection: allowUnitSelection = false, hybridScale: hybridScale, scale: scale, axisType: axisType, ...rest } = props;\n /* Make pixelScale and targetUnitHeight mutually exclusive. PixelScale implies\n * standardization of scales in all sections */ let _targetUnitHeight = targetUnitHeight;\n let _minSectionHeight = minSectionHeight;\n let _minPixelScale = minPixelScale;\n if (pixelScale != null) {\n _targetUnitHeight = null;\n _minSectionHeight = 0;\n _minPixelScale = pixelScale;\n }\n // Handle special cases for hybrid scales (WIP, we need to regularize this)\n let _axisType = axisType ?? (0, $6sU8d$ColumnAxisType).AGE;\n let ageAxisComponent = (0, $4hG2H.CompositeAgeAxis);\n if (hybridScale?.type === (0, $76iYI.HybridScaleType).ApproximateHeight && _axisType != (0, $6sU8d$ColumnAxisType).AGE) {\n // Use approximate height axis for non-age columns if a non-age axis type is requested\n ageAxisComponent = (0, $4hG2H.ApproximateHeightAxis);\n _axisType = (0, $6sU8d$ColumnAxisType).AGE;\n }\n const { sections: sections, units: units, totalHeight: totalHeight } = (0, $610tc.usePreparedColumnUnits)(rawUnits, {\n axisType: _axisType,\n t_age: t_age,\n b_age: b_age,\n t_pos: t_pos,\n b_pos: b_pos,\n mergeSections: mergeSections,\n targetUnitHeight: _targetUnitHeight,\n unconformityHeight: unconformityHeight,\n pixelScale: pixelScale,\n minPixelScale: _minPixelScale,\n minSectionHeight: _minSectionHeight,\n collapseSmallUnconformities: collapseSmallUnconformities,\n scale: // TODO: consider unifying scale and hybridScale options\n scale,\n hybridScale: hybridScale\n });\n if (sections.length === 0) return $4721fb147cb3f5e1$var$h(\"div.column-container.empty\", $4721fb147cb3f5e1$var$h((0, $6sU8d$NonIdealState), {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\"\n }));\n return $4721fb147cb3f5e1$var$h((0, $wtIgl.MacrostratColumnDataProvider), {\n units: units,\n sections: sections,\n totalHeight: totalHeight,\n axisType: _axisType,\n allowUnitSelection: showUnitPopover || allowUnitSelection,\n onUnitSelected: onUnitSelected,\n selectedUnit: selectedUnit\n }, $4721fb147cb3f5e1$var$h($4721fb147cb3f5e1$var$ColumnInner, {\n ageAxisComponent: ageAxisComponent,\n ...rest\n }, [\n children,\n $4721fb147cb3f5e1$var$h.if(showUnitPopover)((0, $2KV3o.UnitSelectionPopover)),\n $4721fb147cb3f5e1$var$h.if(keyboardNavigation)((0, $5SO8b.UnitKeyboardNavigation), {\n units: units\n })\n ]));\n}\nfunction $4721fb147cb3f5e1$var$ColumnInner(props) {\n const padding = (0, $6sU8d$extractPadding)(props);\n // TODO: integrate padding vars more closely with the rest of the spacing (right now padding is a bit ad-hoc)\n const paddingVars = {\n \"--column-padding-top\": `${padding.paddingTop}px`,\n \"--column-padding-bottom\": `${padding.paddingBottom}px`,\n \"--column-padding-left\": `${padding.paddingLeft}px`,\n \"--column-padding-right\": `${padding.paddingRight}px`\n };\n const { unitComponent: unitComponent = (0, $7tWYE.UnitComponent), unconformityLabels: unconformityLabels = \"minimal\", showLabels: showLabels = true, width: _width = 300, columnWidth: _columnWidth = 150, showLabelColumn: _showLabelColumn = true, className: className, clipUnits: clipUnits = false, children: children, showTimescale: showTimescale, timescaleLevels: timescaleLevels, maxInternalColumns: maxInternalColumns, onMouseOver: onMouseOver, ageAxisComponent: ageAxisComponent = (0, $4hG2H.CompositeAgeAxis) } = props;\n const { axisType: axisType } = (0, $wtIgl.useMacrostratColumnData)();\n const columnRef = (0, $5SO8b.useColumnRef)();\n // Coalesce unconformity label setting to a boolean\n let _timescaleUnconformityLabels = false;\n let _sectionUnconformityLabels = false;\n if (unconformityLabels === true || unconformityLabels === \"prominent\") _sectionUnconformityLabels = true;\n else if (unconformityLabels === \"minimal\") _timescaleUnconformityLabels = true;\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) columnWidth = width;\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) showLabelColumn = false;\n let _showTimescale = showTimescale ?? true;\n if (timescaleLevels != null) _showTimescale = true;\n _showTimescale = axisType == (0, $6sU8d$ColumnAxisType).AGE && _showTimescale;\n return $4721fb147cb3f5e1$var$h($4721fb147cb3f5e1$export$2194471aa3d52446, {\n ...$4721fb147cb3f5e1$var$useMouseEventHandlers(onMouseOver),\n style: paddingVars,\n className: className\n }, $4721fb147cb3f5e1$var$h(\"div.column\", {\n ref: columnRef\n }, [\n $4721fb147cb3f5e1$var$h(ageAxisComponent),\n $4721fb147cb3f5e1$var$h.if(_showTimescale)((0, $7exMg.CompositeTimescale), {\n levels: timescaleLevels,\n unconformityLabels: _timescaleUnconformityLabels\n }),\n $4721fb147cb3f5e1$var$h((0, $7exMg.SectionsColumn), {\n unitComponent: unitComponent,\n showLabels: showLabels,\n width: width,\n columnWidth: columnWidth,\n showLabelColumn: showLabelColumn,\n clipUnits: clipUnits,\n unconformityLabels: _sectionUnconformityLabels,\n maxInternalColumns: maxInternalColumns\n }),\n children\n ]));\n}\nfunction $4721fb147cb3f5e1$var$useMouseEventHandlers(_onMouseOver = null) {\n /** Click event handler */ // Click handler for unit selection\n const dispatch = (0, $5SO8b.useUnitSelectionDispatch)();\n const onClick = (0, $6sU8d$useCallback)((evt)=>{\n dispatch?.(null, null);\n }, [\n dispatch\n ]);\n /** Hover event handlers */ const scale = (0, $wtIgl.useCompositeScale)();\n const onMouseOver = (0, $6sU8d$useCallback)((evt)=>{\n const height = scale.invert(evt.clientY - evt.currentTarget.getBoundingClientRect().top);\n _onMouseOver?.(null, height, evt);\n }, [\n scale,\n _onMouseOver\n ]);\n const onMouseOut = (0, $6sU8d$useCallback)(()=>{\n _onMouseOver?.(null, null, null);\n }, [\n _onMouseOver\n ]);\n if (_onMouseOver == null) return {\n onClick: onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined\n };\n return {\n onMouseOver: onMouseOver,\n onMouseMove: onMouseOver,\n onMouseOut: onMouseOut,\n onClick: onClick\n };\n}\nfunction $4721fb147cb3f5e1$export$2194471aa3d52446(props) {\n const { className: className, ...rest } = props;\n const darkMode = (0, $6sU8d$useDarkMode)();\n return $4721fb147cb3f5e1$var$h((0, $6sU8d$Box), {\n className: (0, $6sU8d$classnames)(className, {\n \"dark-mode\": darkMode?.isEnabled ?? false\n }, \"column-container\"),\n ...rest\n });\n}\nfunction $4721fb147cb3f5e1$export$fcdf79c491a4504f({ data: data, showColumnID: showColumnID = true, showReferences: showReferences = true }) {\n if (data == null) return null;\n return $4721fb147cb3f5e1$var$h(\"div.column-info\", [\n $4721fb147cb3f5e1$var$h(\"div.column-title-row\", [\n $4721fb147cb3f5e1$var$h(\"h2\", data.col_name),\n $4721fb147cb3f5e1$var$h.if(showColumnID)(\"h4\", $4721fb147cb3f5e1$var$h((0, $iYfAq.Identifier), {\n id: data.col_id\n }))\n ]),\n $4721fb147cb3f5e1$var$h((0, $6sU8d$DataField), {\n row: true,\n label: \"Group\",\n value: data.col_group\n }),\n $4721fb147cb3f5e1$var$h.if(showReferences)((0, $iYfAq.ReferencesField), {\n refs: data.refs,\n inline: false,\n row: false,\n className: \"column-refs\"\n })\n ]);\n}\n\n\nexport {$4721fb147cb3f5e1$export$816b5d811295e6bc as Column, $4721fb147cb3f5e1$export$2194471aa3d52446 as ColumnContainer, $4721fb147cb3f5e1$export$fcdf79c491a4504f as ColumnBasicInfo};\n//# sourceMappingURL=column-views.74fcfb9c.js.map\n","import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n Box,\n extractPadding,\n Padding,\n useDarkMode,\n} from \"@macrostrat/ui-components\";\nimport classNames from \"classnames\";\nimport {\n HTMLAttributes,\n useCallback,\n CSSProperties,\n ComponentType,\n} from \"react\";\nimport styles from \"./column.module.sass\";\nimport { UnitComponent } from \"./units\";\nimport {\n UnitKeyboardNavigation,\n useColumnRef,\n useUnitSelectionDispatch,\n} from \"./data-provider\";\n\nimport {\n Identifier,\n ReferencesField,\n UnitSelectionPopover,\n} from \"./unit-details\";\nimport {\n MacrostratColumnDataProvider,\n useCompositeScale,\n useMacrostratColumnData,\n} from \"./data-provider\";\nimport {\n SectionSharedProps,\n CompositeTimescale,\n SectionsColumn,\n} from \"./section\";\nimport { ApproximateHeightAxis, CompositeAgeAxis } from \"./age-axis\";\nimport {\n MergeSectionsMode,\n usePreparedColumnUnits,\n HybridScaleType,\n ColumnHeightScaleOptions,\n} from \"./prepare-units\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { NonIdealState } from \"@blueprintjs/core\";\nimport { DataField } from \"@macrostrat/data-components\";\nimport { ScaleContinuousNumeric } from \"d3-scale\";\n\nconst h = hyperStyled(styles);\n\ninterface BaseColumnProps extends Omit<\n SectionSharedProps,\n \"unconformityLabels\"\n> {\n className?: string;\n showLabelColumn?: boolean;\n keyboardNavigation?: boolean;\n showLabels?: boolean;\n maxInternalColumns?: number;\n // Timescale properties\n showTimescale?: boolean;\n timescaleLevels?: number | [number, number];\n unconformityLabels?: boolean | UnconformityLabelPlacement;\n onMouseOver?: (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n ) => void;\n}\n\nexport type UnconformityLabelPlacement = \"minimal\" | \"prominent\" | \"none\";\n\nexport interface ColumnProps\n extends Padding, BaseColumnProps, ColumnHeightScaleOptions {\n // Macrostrat units\n units: UnitLong[];\n t_age?: number;\n b_age?: number;\n t_pos?: number;\n b_pos?: number;\n mergeSections?: MergeSectionsMode;\n showUnitPopover?: boolean;\n allowUnitSelection?: boolean;\n selectedUnit?: number | null;\n onUnitSelected?: (unitID: number | null, unit: any) => void;\n // Unconformity height in pixels\n unconformityHeight?: number;\n scale?: ScaleContinuousNumeric<number, number>;\n}\n\nexport function Column(props: ColumnProps) {\n const {\n showUnitPopover = false,\n keyboardNavigation = false,\n mergeSections,\n onUnitSelected,\n selectedUnit,\n children,\n units: rawUnits,\n t_age,\n b_age,\n t_pos,\n b_pos,\n unconformityHeight = 30,\n targetUnitHeight = 20,\n pixelScale,\n minPixelScale = 0.2,\n minSectionHeight = 50,\n collapseSmallUnconformities = true,\n allowUnitSelection = false,\n hybridScale,\n scale,\n axisType,\n ...rest\n } = props;\n\n /* Make pixelScale and targetUnitHeight mutually exclusive. PixelScale implies\n * standardization of scales in all sections */\n let _targetUnitHeight = targetUnitHeight;\n let _minSectionHeight = minSectionHeight;\n let _minPixelScale = minPixelScale;\n if (pixelScale != null) {\n _targetUnitHeight = null;\n _minSectionHeight = 0;\n _minPixelScale = pixelScale;\n }\n\n // Handle special cases for hybrid scales (WIP, we need to regularize this)\n let _axisType = axisType ?? ColumnAxisType.AGE;\n let ageAxisComponent = CompositeAgeAxis;\n if (\n hybridScale?.type === HybridScaleType.ApproximateHeight &&\n _axisType != ColumnAxisType.AGE\n ) {\n // Use approximate height axis for non-age columns if a non-age axis type is requested\n ageAxisComponent = ApproximateHeightAxis;\n _axisType = ColumnAxisType.AGE;\n }\n\n const { sections, units, totalHeight } = usePreparedColumnUnits(rawUnits, {\n axisType: _axisType,\n t_age,\n b_age,\n t_pos,\n b_pos,\n mergeSections,\n targetUnitHeight: _targetUnitHeight,\n unconformityHeight,\n pixelScale,\n minPixelScale: _minPixelScale,\n minSectionHeight: _minSectionHeight,\n collapseSmallUnconformities,\n // TODO: consider unifying scale and hybridScale options\n scale,\n hybridScale,\n });\n\n if (sections.length === 0) {\n return h(\n \"div.column-container.empty\",\n h(NonIdealState, {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\",\n }),\n );\n }\n\n return h(\n MacrostratColumnDataProvider,\n {\n units,\n sections,\n totalHeight,\n axisType: _axisType,\n allowUnitSelection: showUnitPopover || allowUnitSelection,\n onUnitSelected,\n selectedUnit,\n },\n h(ColumnInner, { ageAxisComponent, ...rest }, [\n children,\n h.if(showUnitPopover)(UnitSelectionPopover),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),\n ]),\n );\n}\n\ninterface ColumnInnerProps extends BaseColumnProps {\n ageAxisComponent?: ComponentType;\n}\n\nfunction ColumnInner(props: ColumnInnerProps) {\n const padding = extractPadding(props);\n\n // TODO: integrate padding vars more closely with the rest of the spacing (right now padding is a bit ad-hoc)\n const paddingVars: any = {\n \"--column-padding-top\": `${padding.paddingTop}px`,\n \"--column-padding-bottom\": `${padding.paddingBottom}px`,\n \"--column-padding-left\": `${padding.paddingLeft}px`,\n \"--column-padding-right\": `${padding.paddingRight}px`,\n };\n\n const {\n unitComponent = UnitComponent,\n unconformityLabels = \"minimal\",\n showLabels = true,\n width: _width = 300,\n columnWidth: _columnWidth = 150,\n showLabelColumn: _showLabelColumn = true,\n className,\n clipUnits = false,\n children,\n showTimescale,\n timescaleLevels,\n maxInternalColumns,\n onMouseOver,\n ageAxisComponent = CompositeAgeAxis,\n } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n const columnRef = useColumnRef();\n\n // Coalesce unconformity label setting to a boolean\n let _timescaleUnconformityLabels = false;\n let _sectionUnconformityLabels = false;\n if (unconformityLabels === true || unconformityLabels === \"prominent\") {\n _sectionUnconformityLabels = true;\n } else if (unconformityLabels === \"minimal\") {\n _timescaleUnconformityLabels = true;\n }\n\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) {\n columnWidth = width;\n }\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) {\n showLabelColumn = false;\n }\n\n let _showTimescale = showTimescale ?? true;\n if (timescaleLevels != null) {\n _showTimescale = true;\n }\n _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;\n\n return h(\n ColumnContainer,\n {\n ...useMouseEventHandlers(onMouseOver),\n style: paddingVars,\n className,\n },\n h(\"div.column\", { ref: columnRef }, [\n h(ageAxisComponent),\n h.if(_showTimescale)(CompositeTimescale, {\n levels: timescaleLevels,\n unconformityLabels: _timescaleUnconformityLabels,\n }),\n h(SectionsColumn, {\n unitComponent,\n showLabels,\n width,\n columnWidth,\n showLabelColumn,\n clipUnits,\n unconformityLabels: _sectionUnconformityLabels,\n maxInternalColumns,\n }),\n children,\n ]),\n );\n}\n\ntype ColumnMouseOverHandler = (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n) => void;\n\nfunction useMouseEventHandlers(\n _onMouseOver: ColumnMouseOverHandler | null = null,\n) {\n /** Click event handler */\n\n // Click handler for unit selection\n const dispatch = useUnitSelectionDispatch();\n const onClick = useCallback(\n (evt) => {\n dispatch?.(null, null);\n },\n [dispatch],\n );\n\n /** Hover event handlers */\n const scale = useCompositeScale();\n\n const onMouseOver = useCallback(\n (evt) => {\n const height = scale.invert(\n evt.clientY - evt.currentTarget.getBoundingClientRect().top,\n );\n _onMouseOver?.(null, height, evt);\n },\n [scale, _onMouseOver],\n );\n\n const onMouseOut = useCallback(() => {\n _onMouseOver?.(null, null, null);\n }, [_onMouseOver]);\n\n if (_onMouseOver == null) {\n return {\n onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined,\n };\n }\n\n return { onMouseOver, onMouseMove: onMouseOver, onMouseOut, onClick };\n}\n\nexport interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n style?: CSSProperties;\n}\n\nexport function ColumnContainer(props: ColumnContainerProps) {\n const { className, ...rest } = props;\n const darkMode = useDarkMode();\n\n return h(Box, {\n className: classNames(\n className,\n {\n \"dark-mode\": darkMode?.isEnabled ?? false,\n },\n \"column-container\",\n ),\n ...rest,\n });\n}\n\nexport function ColumnBasicInfo({\n data,\n showColumnID = true,\n showReferences = true,\n}) {\n if (data == null) return null;\n return h(\"div.column-info\", [\n h(\"div.column-title-row\", [\n h(\"h2\", data.col_name),\n h.if(showColumnID)(\"h4\", h(Identifier, { id: data.col_id })),\n ]),\n h(DataField, { row: true, label: \"Group\", value: data.col_group }),\n h.if(showReferences)(ReferencesField, {\n refs: data.refs,\n inline: false,\n row: false,\n className: \"column-refs\",\n }),\n ]);\n}\n"],"names":["ColumnAxisType","$6sU8d$ColumnAxisType","hyperStyled","$6sU8d$hyperStyled","extractPadding","$6sU8d$extractPadding","useDarkMode","$6sU8d$useDarkMode","Box","$6sU8d$Box","$6sU8d$classnames","useCallback","$6sU8d$useCallback","NonIdealState","$6sU8d$NonIdealState","DataField","$6sU8d$DataField","$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","$4721fb147cb3f5e1$exports","$4721fb147cb3f5e1$export$816b5d811295e6bc","$4721fb147cb3f5e1$export$2194471aa3d52446","$4721fb147cb3f5e1$export$fcdf79c491a4504f","$7YHvf","$7tWYE","$wtIgl","$5SO8b","$iYfAq","$2KV3o","$7exMg","$4hG2H","$76iYI","$610tc","$4721fb147cb3f5e1$var$h","a","__esModule","default","props","showUnitPopover","keyboardNavigation","mergeSections","onUnitSelected","selectedUnit","children","units","rawUnits","t_age","b_age","t_pos","b_pos","unconformityHeight","targetUnitHeight","pixelScale","minPixelScale","minSectionHeight","collapseSmallUnconformities","allowUnitSelection","hybridScale","scale","axisType","rest","_targetUnitHeight","_minSectionHeight","_minPixelScale","_axisType","AGE","ageAxisComponent","CompositeAgeAxis","type","HybridScaleType","ApproximateHeight","ApproximateHeightAxis","sections","totalHeight","usePreparedColumnUnits","length","title","description","icon","MacrostratColumnDataProvider","$4721fb147cb3f5e1$var$ColumnInner","if","UnitSelectionPopover","UnitKeyboardNavigation","padding","paddingVars","paddingTop","paddingBottom","paddingLeft","paddingRight","unitComponent","UnitComponent","unconformityLabels","showLabels","width","_width","columnWidth","_columnWidth","showLabelColumn","_showLabelColumn","className","clipUnits","showTimescale","timescaleLevels","maxInternalColumns","onMouseOver","useMacrostratColumnData","columnRef","useColumnRef","_timescaleUnconformityLabels","_sectionUnconformityLabels","_showTimescale","$4721fb147cb3f5e1$var$useMouseEventHandlers","_onMouseOver","dispatch","useUnitSelectionDispatch","onClick","evt","useCompositeScale","height","invert","clientY","currentTarget","getBoundingClientRect","top","onMouseOut","undefined","onMouseMove","style","ref","CompositeTimescale","levels","SectionsColumn","darkMode","isEnabled","data","showColumnID","showReferences","col_name","Identifier","col_id","row","label","value","col_group","ReferencesField","refs","inline","Column","ColumnContainer","ColumnBasicInfo"],"version":3,"file":"column-views.74fcfb9c.js.map","sourceRoot":"../../../../"}
1
+ {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,kB,C,K,+B,A,Q,e,C,K,mB,A,Q,kB,C,C,e,C,C,O,C,K,2B,A,Q,M,Y,A,Q,e,C,K,O,A,Q,iB,C,K,mB,A,Q,a,C,K,6B,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,S,I,G,E,E,kB,I,G,E,E,kB,I,G,I,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,S,E,E,SCkDA,IAAM,EAAI,AAAA,E,AAAY,G,AAAA,E,U,C,AAAA,E,O,CAAA,GA0Cf,SAAS,EAAO,CAAkB,EACvC,GAAM,CAAA,gBACJ,EAAkB,CAAA,CAAA,CAAA,mBAClB,EAAqB,CAAA,CAAA,CAAA,cACrB,CAAa,CAAA,eACb,CAAc,CAAA,aACd,CAAY,CAAA,SACZ,CAAQ,CACR,MAAO,CAAQ,CAAA,MACf,CAAK,CAAA,MACL,CAAK,CAAA,MACL,CAAK,CAAA,MACL,CAAK,CAAA,mBACL,EAAqB,EAAA,CAAA,iBACrB,EAAmB,EAAA,CAAA,WACnB,CAAU,CAAA,cACV,EAAgB,EAAA,CAAA,iBAChB,EAAmB,EAAA,CAAA,4BACnB,EAA8B,CAAA,CAAA,CAAA,mBAC9B,EAAqB,CAAA,CAAA,CAAA,YACrB,CAAW,CAAA,MACX,CAAK,CAAA,SACL,CAAQ,CACR,GAAG,EACJ,CAAG,EAIA,EAAoB,EACpB,EAAoB,EACpB,EAAiB,CACH,OAAd,IACF,EAAoB,KACpB,EAAoB,EACpB,EAAiB,GAInB,IAAI,EAAY,GAAY,AAAA,EAAe,GAAG,CAC1C,EAAmB,EAAA,gBAAe,CAEpC,GAAa,OAAS,AAAA,EAAA,eAAc,CAAE,iBAAiB,EACvD,GAAa,AAAA,EAAe,GAAG,GAG/B,EAAmB,EAAA,qBAAoB,CACvC,EAAY,AAAA,EAAe,GAAG,EAGhC,GAAM,CAAA,SAAE,CAAQ,CAAA,MAAE,CAAK,CAAA,YAAE,CAAW,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,sBAAqB,AAArB,EAAuB,EAAU,CACxE,SAAU,EACV,MAAA,EACA,MAAA,EACA,MAAA,EACA,MAAA,EACA,cAAA,EACA,iBAAkB,EAClB,mBAAA,EACA,WAAA,EACA,cAAe,EACf,iBAAkB,EAClB,4BAAA,EAEA,MAAA,EACA,YAAA,CACF,UAEA,AAAI,AAAoB,IAApB,EAAS,MAAM,CACV,EACL,6BACA,EAAE,EAAe,CACf,MAAO,eACP,YAAa,oCACb,KAAM,cACR,IAIG,EACL,EAAA,4BAA2B,CAC3B,CACE,MAAA,EACA,SAAA,EACA,YAAA,EACA,SAAU,EACV,mBAAoB,GAAmB,EACvC,eAAA,EACA,aAAA,CACF,EACA,EAAE,EAAa,CAAE,iBAAA,EAAkB,GAAG,CAAI,AAAC,EAAG,CAC5C,EACA,EAAE,EAAE,CAAC,GAAiB,EAAA,oBAAmB,EACzC,EAAE,EAAE,CAAC,GAAoB,EAAA,sBAAqB,CAAG,CAAE,MAAA,CAAM,GAC1D,EAEL,CAMA,SAAS,EAAY,CAAuB,EAC1C,IAAM,EAAU,AAAA,EAAe,GAGzB,EAAmB,CACvB,uBAAwB,CAAA,EAAG,EAAQ,UAAU,CAAC,EAAE,CAAC,CACjD,0BAA2B,CAAA,EAAG,EAAQ,aAAa,CAAC,EAAE,CAAC,CACvD,wBAAyB,CAAA,EAAG,EAAQ,WAAW,CAAC,EAAE,CAAC,CACnD,yBAA0B,CAAA,EAAG,EAAQ,YAAY,CAAC,EAAE,CAAC,AACvD,EAEM,CAAA,cACJ,EAAgB,EAAA,aAAY,AAAA,CAAA,mBAC5B,EAAqB,SAAA,CAAA,WACrB,EAAa,CAAA,CAAA,CACb,MAAO,EAAS,GAAG,CACnB,YAAa,EAAe,GAAG,CAC/B,gBAAiB,EAAmB,CAAA,CAAI,CAAA,UACxC,CAAS,CAAA,UACT,EAAY,CAAA,CAAA,CAAA,SACZ,CAAQ,CAAA,cACR,CAAa,CAAA,gBACb,CAAe,CAAA,mBACf,CAAkB,CAAA,YAClB,CAAW,CAAA,iBACX,EAAmB,EAAA,gBAAe,AAAA,CACnC,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEf,EAAY,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,IAGd,EAA+B,CAAA,EAC/B,EAA6B,CAAA,CAC7B,AAAuB,EAAA,IAAvB,GAA+B,AAAuB,cAAvB,EACjC,EAA6B,CAAA,EACpB,AAAuB,YAAvB,GACT,CAAA,EAA+B,CAAA,CAD1B,EAKP,IAAI,EAAc,CACd,CAAA,EAFQ,GAGV,CAAA,EAHU,CAEZ,EAGA,IAAI,EAAkB,CAClB,CAAA,EAAc,AANN,EAMc,IACxB,CAAA,EAAkB,CAAA,CADpB,EAIA,IAAI,EAAiB,GAAiB,CAAA,EAMtC,OALI,AAAmB,MAAnB,GACF,CAAA,EAAiB,CAAA,CADnB,EAGA,EAAiB,GAAY,AAAA,EAAe,GAAG,EAAI,EAE5C,EACL,EACA,CACE,GAAG,AA+BT,SACE,EAA8C,IAAI,EAKlD,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,wBAAuB,AAAvB,IACX,EAAU,AAAA,EACd,AAAC,IACC,IAAW,KAAM,KACnB,EACA,CAAC,EAAS,EAIN,EAAQ,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,IAER,EAAc,AAAA,EAClB,AAAC,IACC,IAAM,EAAS,EAAM,MAAM,CACzB,EAAI,OAAO,CAAG,EAAI,aAAa,CAAC,qBAAqB,GAAG,GAAG,EAE7D,IAAe,KAAM,EAAQ,EAC/B,EACA,CAAC,EAAO,EAAa,EAGjB,EAAa,AAAA,EAAY,KAC7B,IAAe,KAAM,KAAM,KAC7B,EAAG,CAAC,EAAa,SAEjB,AAAI,AAAgB,MAAhB,EACK,CACL,QAAA,EACA,YAAa,KAAA,EACb,YAAa,KAAA,EACb,WAAY,KAAA,CACd,EAGK,CAAE,YAAA,EAAa,YAAa,EAAa,WAAA,EAAY,QAAA,CAAQ,CACtE,EAxE+B,EAAY,CACrC,MAAO,EACP,UAAA,CACF,EACA,EAAE,aAAc,CAAE,IAAK,CAAU,EAAG,CAClC,EAAE,GACF,EAAE,EAAE,CAAC,GAAgB,EAAA,kBAAiB,CAAG,CACvC,OAAQ,EACR,mBAAoB,CACtB,GACA,EAAE,EAAA,cAAa,CAAG,CAChB,cAAA,EACA,WAAA,EACA,MAhCM,EAiCN,YAAA,EACA,gBAAA,EACA,UAAA,EACA,mBAAoB,EACpB,mBAAA,CACF,GACA,EACD,EAEL,CAwDO,SAAS,EAAgB,CAA2B,EACzD,GAAM,CAAA,UAAE,CAAS,CAAE,GAAG,EAAM,CAAG,EACzB,EAAW,AAAA,IAEjB,OAAO,EAAE,EAAK,CACZ,UAAW,AAAA,EACT,EACA,CACE,YAAa,GAAU,WAAa,CAAA,CACtC,EACA,oBAEF,GAAG,CAAI,AACT,EACF,CAEO,SAAS,EAAgB,CAAA,KAC9B,CAAI,CAAA,aACJ,EAAe,CAAA,CAAA,CAAA,eACf,EAAiB,CAAA,CAAA,CAClB,SACC,AAAI,AAAQ,MAAR,EAAqB,KAClB,EAAE,kBAAmB,CAC1B,EAAE,uBAAwB,CACxB,EAAE,KAAM,EAAK,QAAQ,EACrB,EAAE,EAAE,CAAC,GAAc,KAAM,EAAE,EAAA,UAAS,CAAG,CAAE,GAAI,EAAK,MAAM,AAAC,IAC1D,EACD,EAAE,EAAW,CAAE,IAAK,CAAA,EAAM,MAAO,QAAS,MAAO,EAAK,SAAS,AAAC,GAChE,EAAE,EAAE,CAAC,GAAgB,EAAA,eAAc,CAAG,CACpC,KAAM,EAAK,IAAI,CACf,OAAQ,CAAA,EACR,IAAK,CAAA,EACL,UAAW,aACb,GACD,CACH,Q,K,M,C,K,e,C,K,e","sources":["<anon>","packages/column-views/src/column.ts"],"sourcesContent":["import \"./column-views.1261be59.js\";\nimport \"./column-views.306acd3f.js\";\nimport \"./column-views.d737de1e.js\";\nimport \"./column-views.7b6e7d82.js\";\nimport \"./column-views.048fdcaf.js\";\nimport \"./column-views.4a28d695.js\";\nimport \"./column-views.31153f29.js\";\nimport \"./column-views.ad60c02f.js\";\nimport \"./column-views.7f9c7448.js\";\nimport \"./column-views.d22bf15c.js\";\nimport {ColumnAxisType as $6sU8d$ColumnAxisType} from \"@macrostrat/column-components\";\nimport {hyperStyled as $6sU8d$hyperStyled} from \"@macrostrat/hyper\";\nimport {extractPadding as $6sU8d$extractPadding, useDarkMode as $6sU8d$useDarkMode, Box as $6sU8d$Box} from \"@macrostrat/ui-components\";\nimport $6sU8d$classnames from \"classnames\";\nimport {useCallback as $6sU8d$useCallback} from \"react\";\nimport {NonIdealState as $6sU8d$NonIdealState} from \"@blueprintjs/core\";\nimport {DataField as $6sU8d$DataField} from \"@macrostrat/data-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 $4721fb147cb3f5e1$exports = {};\n\n$parcel$export($4721fb147cb3f5e1$exports, \"Column\", () => $4721fb147cb3f5e1$export$816b5d811295e6bc);\n$parcel$export($4721fb147cb3f5e1$exports, \"ColumnContainer\", () => $4721fb147cb3f5e1$export$2194471aa3d52446);\n$parcel$export($4721fb147cb3f5e1$exports, \"ColumnBasicInfo\", () => $4721fb147cb3f5e1$export$fcdf79c491a4504f);\n\n\n\n\n\n\nvar $7YHvf = parcelRequire(\"7YHvf\");\n\nvar $7tWYE = parcelRequire(\"7tWYE\");\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nvar $5SO8b = parcelRequire(\"5SO8b\");\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\nvar $2KV3o = parcelRequire(\"2KV3o\");\n\nvar $7exMg = parcelRequire(\"7exMg\");\n\nvar $4hG2H = parcelRequire(\"4hG2H\");\n\nvar $76iYI = parcelRequire(\"76iYI\");\nvar $610tc = parcelRequire(\"610tc\");\n\n\nconst $4721fb147cb3f5e1$var$h = (0, $6sU8d$hyperStyled)((0, (/*@__PURE__*/$parcel$interopDefault($7YHvf))));\nfunction $4721fb147cb3f5e1$export$816b5d811295e6bc(props) {\n const { showUnitPopover: showUnitPopover = false, keyboardNavigation: keyboardNavigation = false, mergeSections: mergeSections, onUnitSelected: onUnitSelected, selectedUnit: selectedUnit, children: children, units: rawUnits, t_age: t_age, b_age: b_age, t_pos: t_pos, b_pos: b_pos, unconformityHeight: unconformityHeight = 30, targetUnitHeight: targetUnitHeight = 20, pixelScale: pixelScale, minPixelScale: minPixelScale = 0.2, minSectionHeight: minSectionHeight = 50, collapseSmallUnconformities: collapseSmallUnconformities = true, allowUnitSelection: allowUnitSelection = false, hybridScale: hybridScale, scale: scale, axisType: axisType, ...rest } = props;\n /* Make pixelScale and targetUnitHeight mutually exclusive. PixelScale implies\n * standardization of scales in all sections */ let _targetUnitHeight = targetUnitHeight;\n let _minSectionHeight = minSectionHeight;\n let _minPixelScale = minPixelScale;\n if (pixelScale != null) {\n _targetUnitHeight = null;\n _minSectionHeight = 0;\n _minPixelScale = pixelScale;\n }\n // Handle special cases for hybrid scales (WIP, we need to regularize this)\n let _axisType = axisType ?? (0, $6sU8d$ColumnAxisType).AGE;\n let ageAxisComponent = (0, $4hG2H.CompositeAgeAxis);\n if (hybridScale?.type === (0, $76iYI.HybridScaleType).ApproximateHeight && _axisType != (0, $6sU8d$ColumnAxisType).AGE) {\n // Use approximate height axis for non-age columns if a non-age axis type is requested\n ageAxisComponent = (0, $4hG2H.ApproximateHeightAxis);\n _axisType = (0, $6sU8d$ColumnAxisType).AGE;\n }\n const { sections: sections, units: units, totalHeight: totalHeight } = (0, $610tc.usePreparedColumnUnits)(rawUnits, {\n axisType: _axisType,\n t_age: t_age,\n b_age: b_age,\n t_pos: t_pos,\n b_pos: b_pos,\n mergeSections: mergeSections,\n targetUnitHeight: _targetUnitHeight,\n unconformityHeight: unconformityHeight,\n pixelScale: pixelScale,\n minPixelScale: _minPixelScale,\n minSectionHeight: _minSectionHeight,\n collapseSmallUnconformities: collapseSmallUnconformities,\n scale: // TODO: consider unifying scale and hybridScale options\n scale,\n hybridScale: hybridScale\n });\n if (sections.length === 0) return $4721fb147cb3f5e1$var$h(\"div.column-container.empty\", $4721fb147cb3f5e1$var$h((0, $6sU8d$NonIdealState), {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\"\n }));\n return $4721fb147cb3f5e1$var$h((0, $wtIgl.MacrostratColumnDataProvider), {\n units: units,\n sections: sections,\n totalHeight: totalHeight,\n axisType: _axisType,\n allowUnitSelection: showUnitPopover || allowUnitSelection,\n onUnitSelected: onUnitSelected,\n selectedUnit: selectedUnit\n }, $4721fb147cb3f5e1$var$h($4721fb147cb3f5e1$var$ColumnInner, {\n ageAxisComponent: ageAxisComponent,\n ...rest\n }, [\n children,\n $4721fb147cb3f5e1$var$h.if(showUnitPopover)((0, $2KV3o.UnitSelectionPopover)),\n $4721fb147cb3f5e1$var$h.if(keyboardNavigation)((0, $5SO8b.UnitKeyboardNavigation), {\n units: units\n })\n ]));\n}\nfunction $4721fb147cb3f5e1$var$ColumnInner(props) {\n const padding = (0, $6sU8d$extractPadding)(props);\n // TODO: integrate padding vars more closely with the rest of the spacing (right now padding is a bit ad-hoc)\n const paddingVars = {\n \"--column-padding-top\": `${padding.paddingTop}px`,\n \"--column-padding-bottom\": `${padding.paddingBottom}px`,\n \"--column-padding-left\": `${padding.paddingLeft}px`,\n \"--column-padding-right\": `${padding.paddingRight}px`\n };\n const { unitComponent: unitComponent = (0, $7tWYE.UnitComponent), unconformityLabels: unconformityLabels = \"minimal\", showLabels: showLabels = true, width: _width = 300, columnWidth: _columnWidth = 150, showLabelColumn: _showLabelColumn = true, className: className, clipUnits: clipUnits = false, children: children, showTimescale: showTimescale, timescaleLevels: timescaleLevels, maxInternalColumns: maxInternalColumns, onMouseOver: onMouseOver, ageAxisComponent: ageAxisComponent = (0, $4hG2H.CompositeAgeAxis) } = props;\n const { axisType: axisType } = (0, $wtIgl.useMacrostratColumnData)();\n const columnRef = (0, $5SO8b.useColumnRef)();\n // Coalesce unconformity label setting to a boolean\n let _timescaleUnconformityLabels = false;\n let _sectionUnconformityLabels = false;\n if (unconformityLabels === true || unconformityLabels === \"prominent\") _sectionUnconformityLabels = true;\n else if (unconformityLabels === \"minimal\") _timescaleUnconformityLabels = true;\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) columnWidth = width;\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) showLabelColumn = false;\n let _showTimescale = showTimescale ?? true;\n if (timescaleLevels != null) _showTimescale = true;\n _showTimescale = axisType == (0, $6sU8d$ColumnAxisType).AGE && _showTimescale;\n return $4721fb147cb3f5e1$var$h($4721fb147cb3f5e1$export$2194471aa3d52446, {\n ...$4721fb147cb3f5e1$var$useMouseEventHandlers(onMouseOver),\n style: paddingVars,\n className: className\n }, $4721fb147cb3f5e1$var$h(\"div.column\", {\n ref: columnRef\n }, [\n $4721fb147cb3f5e1$var$h(ageAxisComponent),\n $4721fb147cb3f5e1$var$h.if(_showTimescale)((0, $7exMg.CompositeTimescale), {\n levels: timescaleLevels,\n unconformityLabels: _timescaleUnconformityLabels\n }),\n $4721fb147cb3f5e1$var$h((0, $7exMg.SectionsColumn), {\n unitComponent: unitComponent,\n showLabels: showLabels,\n width: width,\n columnWidth: columnWidth,\n showLabelColumn: showLabelColumn,\n clipUnits: clipUnits,\n unconformityLabels: _sectionUnconformityLabels,\n maxInternalColumns: maxInternalColumns\n }),\n children\n ]));\n}\nfunction $4721fb147cb3f5e1$var$useMouseEventHandlers(_onMouseOver = null) {\n /** Click event handler */ // Click handler for unit selection\n const dispatch = (0, $5SO8b.useUnitSelectionDispatch)();\n const onClick = (0, $6sU8d$useCallback)((evt)=>{\n dispatch?.(null, null);\n }, [\n dispatch\n ]);\n /** Hover event handlers */ const scale = (0, $wtIgl.useCompositeScale)();\n const onMouseOver = (0, $6sU8d$useCallback)((evt)=>{\n const height = scale.invert(evt.clientY - evt.currentTarget.getBoundingClientRect().top);\n _onMouseOver?.(null, height, evt);\n }, [\n scale,\n _onMouseOver\n ]);\n const onMouseOut = (0, $6sU8d$useCallback)(()=>{\n _onMouseOver?.(null, null, null);\n }, [\n _onMouseOver\n ]);\n if (_onMouseOver == null) return {\n onClick: onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined\n };\n return {\n onMouseOver: onMouseOver,\n onMouseMove: onMouseOver,\n onMouseOut: onMouseOut,\n onClick: onClick\n };\n}\nfunction $4721fb147cb3f5e1$export$2194471aa3d52446(props) {\n const { className: className, ...rest } = props;\n const darkMode = (0, $6sU8d$useDarkMode)();\n return $4721fb147cb3f5e1$var$h((0, $6sU8d$Box), {\n className: (0, $6sU8d$classnames)(className, {\n \"dark-mode\": darkMode?.isEnabled ?? false\n }, \"column-container\"),\n ...rest\n });\n}\nfunction $4721fb147cb3f5e1$export$fcdf79c491a4504f({ data: data, showColumnID: showColumnID = true, showReferences: showReferences = true }) {\n if (data == null) return null;\n return $4721fb147cb3f5e1$var$h(\"div.column-info\", [\n $4721fb147cb3f5e1$var$h(\"div.column-title-row\", [\n $4721fb147cb3f5e1$var$h(\"h2\", data.col_name),\n $4721fb147cb3f5e1$var$h.if(showColumnID)(\"h4\", $4721fb147cb3f5e1$var$h((0, $iYfAq.Identifier), {\n id: data.col_id\n }))\n ]),\n $4721fb147cb3f5e1$var$h((0, $6sU8d$DataField), {\n row: true,\n label: \"Group\",\n value: data.col_group\n }),\n $4721fb147cb3f5e1$var$h.if(showReferences)((0, $iYfAq.ReferencesField), {\n refs: data.refs,\n inline: false,\n row: false,\n className: \"column-refs\"\n })\n ]);\n}\n\n\nexport {$4721fb147cb3f5e1$export$816b5d811295e6bc as Column, $4721fb147cb3f5e1$export$2194471aa3d52446 as ColumnContainer, $4721fb147cb3f5e1$export$fcdf79c491a4504f as ColumnBasicInfo};\n//# sourceMappingURL=column-views.c3097d9a.js.map\n","import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n Box,\n extractPadding,\n Padding,\n useDarkMode,\n} from \"@macrostrat/ui-components\";\nimport classNames from \"classnames\";\nimport {\n HTMLAttributes,\n useCallback,\n CSSProperties,\n ComponentType,\n} from \"react\";\nimport styles from \"./column.module.sass\";\nimport { UnitComponent } from \"./units\";\nimport {\n UnitKeyboardNavigation,\n useColumnRef,\n useUnitSelectionDispatch,\n} from \"./data-provider\";\n\nimport {\n Identifier,\n ReferencesField,\n UnitSelectionPopover,\n} from \"./unit-details\";\nimport {\n MacrostratColumnDataProvider,\n useCompositeScale,\n useMacrostratColumnData,\n} from \"./data-provider\";\nimport {\n SectionSharedProps,\n CompositeTimescale,\n SectionsColumn,\n} from \"./section\";\nimport { ApproximateHeightAxis, CompositeAgeAxis } from \"./age-axis\";\nimport {\n MergeSectionsMode,\n usePreparedColumnUnits,\n HybridScaleType,\n ColumnHeightScaleOptions,\n} from \"./prepare-units\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { NonIdealState } from \"@blueprintjs/core\";\nimport { DataField } from \"@macrostrat/data-components\";\nimport { ScaleContinuousNumeric } from \"d3-scale\";\n\nconst h = hyperStyled(styles);\n\ninterface BaseColumnProps extends Omit<\n SectionSharedProps,\n \"unconformityLabels\"\n> {\n className?: string;\n showLabelColumn?: boolean;\n keyboardNavigation?: boolean;\n showLabels?: boolean;\n maxInternalColumns?: number;\n // Timescale properties\n showTimescale?: boolean;\n timescaleLevels?: number | [number, number];\n unconformityLabels?: boolean | UnconformityLabelPlacement;\n onMouseOver?: (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n ) => void;\n}\n\nexport type UnconformityLabelPlacement = \"minimal\" | \"prominent\" | \"none\";\n\nexport interface ColumnProps\n extends Padding, BaseColumnProps, ColumnHeightScaleOptions {\n // Macrostrat units\n units: UnitLong[];\n t_age?: number;\n b_age?: number;\n t_pos?: number;\n b_pos?: number;\n mergeSections?: MergeSectionsMode;\n showUnitPopover?: boolean;\n allowUnitSelection?: boolean;\n selectedUnit?: number | null;\n onUnitSelected?: (unitID: number | null, unit: any) => void;\n // Unconformity height in pixels\n unconformityHeight?: number;\n scale?: ScaleContinuousNumeric<number, number>;\n}\n\nexport function Column(props: ColumnProps) {\n const {\n showUnitPopover = false,\n keyboardNavigation = false,\n mergeSections,\n onUnitSelected,\n selectedUnit,\n children,\n units: rawUnits,\n t_age,\n b_age,\n t_pos,\n b_pos,\n unconformityHeight = 30,\n targetUnitHeight = 20,\n pixelScale,\n minPixelScale = 0.2,\n minSectionHeight = 50,\n collapseSmallUnconformities = true,\n allowUnitSelection = false,\n hybridScale,\n scale,\n axisType,\n ...rest\n } = props;\n\n /* Make pixelScale and targetUnitHeight mutually exclusive. PixelScale implies\n * standardization of scales in all sections */\n let _targetUnitHeight = targetUnitHeight;\n let _minSectionHeight = minSectionHeight;\n let _minPixelScale = minPixelScale;\n if (pixelScale != null) {\n _targetUnitHeight = null;\n _minSectionHeight = 0;\n _minPixelScale = pixelScale;\n }\n\n // Handle special cases for hybrid scales (WIP, we need to regularize this)\n let _axisType = axisType ?? ColumnAxisType.AGE;\n let ageAxisComponent = CompositeAgeAxis;\n if (\n hybridScale?.type === HybridScaleType.ApproximateHeight &&\n _axisType != ColumnAxisType.AGE\n ) {\n // Use approximate height axis for non-age columns if a non-age axis type is requested\n ageAxisComponent = ApproximateHeightAxis;\n _axisType = ColumnAxisType.AGE;\n }\n\n const { sections, units, totalHeight } = usePreparedColumnUnits(rawUnits, {\n axisType: _axisType,\n t_age,\n b_age,\n t_pos,\n b_pos,\n mergeSections,\n targetUnitHeight: _targetUnitHeight,\n unconformityHeight,\n pixelScale,\n minPixelScale: _minPixelScale,\n minSectionHeight: _minSectionHeight,\n collapseSmallUnconformities,\n // TODO: consider unifying scale and hybridScale options\n scale,\n hybridScale,\n });\n\n if (sections.length === 0) {\n return h(\n \"div.column-container.empty\",\n h(NonIdealState, {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\",\n }),\n );\n }\n\n return h(\n MacrostratColumnDataProvider,\n {\n units,\n sections,\n totalHeight,\n axisType: _axisType,\n allowUnitSelection: showUnitPopover || allowUnitSelection,\n onUnitSelected,\n selectedUnit,\n },\n h(ColumnInner, { ageAxisComponent, ...rest }, [\n children,\n h.if(showUnitPopover)(UnitSelectionPopover),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),\n ]),\n );\n}\n\ninterface ColumnInnerProps extends BaseColumnProps {\n ageAxisComponent?: ComponentType;\n}\n\nfunction ColumnInner(props: ColumnInnerProps) {\n const padding = extractPadding(props);\n\n // TODO: integrate padding vars more closely with the rest of the spacing (right now padding is a bit ad-hoc)\n const paddingVars: any = {\n \"--column-padding-top\": `${padding.paddingTop}px`,\n \"--column-padding-bottom\": `${padding.paddingBottom}px`,\n \"--column-padding-left\": `${padding.paddingLeft}px`,\n \"--column-padding-right\": `${padding.paddingRight}px`,\n };\n\n const {\n unitComponent = UnitComponent,\n unconformityLabels = \"minimal\",\n showLabels = true,\n width: _width = 300,\n columnWidth: _columnWidth = 150,\n showLabelColumn: _showLabelColumn = true,\n className,\n clipUnits = false,\n children,\n showTimescale,\n timescaleLevels,\n maxInternalColumns,\n onMouseOver,\n ageAxisComponent = CompositeAgeAxis,\n } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n const columnRef = useColumnRef();\n\n // Coalesce unconformity label setting to a boolean\n let _timescaleUnconformityLabels = false;\n let _sectionUnconformityLabels = false;\n if (unconformityLabels === true || unconformityLabels === \"prominent\") {\n _sectionUnconformityLabels = true;\n } else if (unconformityLabels === \"minimal\") {\n _timescaleUnconformityLabels = true;\n }\n\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) {\n columnWidth = width;\n }\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) {\n showLabelColumn = false;\n }\n\n let _showTimescale = showTimescale ?? true;\n if (timescaleLevels != null) {\n _showTimescale = true;\n }\n _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;\n\n return h(\n ColumnContainer,\n {\n ...useMouseEventHandlers(onMouseOver),\n style: paddingVars,\n className,\n },\n h(\"div.column\", { ref: columnRef }, [\n h(ageAxisComponent),\n h.if(_showTimescale)(CompositeTimescale, {\n levels: timescaleLevels,\n unconformityLabels: _timescaleUnconformityLabels,\n }),\n h(SectionsColumn, {\n unitComponent,\n showLabels,\n width,\n columnWidth,\n showLabelColumn,\n clipUnits,\n unconformityLabels: _sectionUnconformityLabels,\n maxInternalColumns,\n }),\n children,\n ]),\n );\n}\n\ntype ColumnMouseOverHandler = (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n) => void;\n\nfunction useMouseEventHandlers(\n _onMouseOver: ColumnMouseOverHandler | null = null,\n) {\n /** Click event handler */\n\n // Click handler for unit selection\n const dispatch = useUnitSelectionDispatch();\n const onClick = useCallback(\n (evt) => {\n dispatch?.(null, null);\n },\n [dispatch],\n );\n\n /** Hover event handlers */\n const scale = useCompositeScale();\n\n const onMouseOver = useCallback(\n (evt) => {\n const height = scale.invert(\n evt.clientY - evt.currentTarget.getBoundingClientRect().top,\n );\n _onMouseOver?.(null, height, evt);\n },\n [scale, _onMouseOver],\n );\n\n const onMouseOut = useCallback(() => {\n _onMouseOver?.(null, null, null);\n }, [_onMouseOver]);\n\n if (_onMouseOver == null) {\n return {\n onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined,\n };\n }\n\n return { onMouseOver, onMouseMove: onMouseOver, onMouseOut, onClick };\n}\n\nexport interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n style?: CSSProperties;\n}\n\nexport function ColumnContainer(props: ColumnContainerProps) {\n const { className, ...rest } = props;\n const darkMode = useDarkMode();\n\n return h(Box, {\n className: classNames(\n className,\n {\n \"dark-mode\": darkMode?.isEnabled ?? false,\n },\n \"column-container\",\n ),\n ...rest,\n });\n}\n\nexport function ColumnBasicInfo({\n data,\n showColumnID = true,\n showReferences = true,\n}) {\n if (data == null) return null;\n return h(\"div.column-info\", [\n h(\"div.column-title-row\", [\n h(\"h2\", data.col_name),\n h.if(showColumnID)(\"h4\", h(Identifier, { id: data.col_id })),\n ]),\n h(DataField, { row: true, label: \"Group\", value: data.col_group }),\n h.if(showReferences)(ReferencesField, {\n refs: data.refs,\n inline: false,\n row: false,\n className: \"column-refs\",\n }),\n ]);\n}\n"],"names":["ColumnAxisType","$6sU8d$ColumnAxisType","hyperStyled","$6sU8d$hyperStyled","extractPadding","$6sU8d$extractPadding","useDarkMode","$6sU8d$useDarkMode","Box","$6sU8d$Box","$6sU8d$classnames","useCallback","$6sU8d$useCallback","NonIdealState","$6sU8d$NonIdealState","DataField","$6sU8d$DataField","$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","$4721fb147cb3f5e1$exports","$4721fb147cb3f5e1$export$816b5d811295e6bc","$4721fb147cb3f5e1$export$2194471aa3d52446","$4721fb147cb3f5e1$export$fcdf79c491a4504f","$7YHvf","$7tWYE","$wtIgl","$5SO8b","$iYfAq","$2KV3o","$7exMg","$4hG2H","$76iYI","$610tc","$4721fb147cb3f5e1$var$h","a","__esModule","default","props","showUnitPopover","keyboardNavigation","mergeSections","onUnitSelected","selectedUnit","children","units","rawUnits","t_age","b_age","t_pos","b_pos","unconformityHeight","targetUnitHeight","pixelScale","minPixelScale","minSectionHeight","collapseSmallUnconformities","allowUnitSelection","hybridScale","scale","axisType","rest","_targetUnitHeight","_minSectionHeight","_minPixelScale","_axisType","AGE","ageAxisComponent","CompositeAgeAxis","type","HybridScaleType","ApproximateHeight","ApproximateHeightAxis","sections","totalHeight","usePreparedColumnUnits","length","title","description","icon","MacrostratColumnDataProvider","$4721fb147cb3f5e1$var$ColumnInner","if","UnitSelectionPopover","UnitKeyboardNavigation","padding","paddingVars","paddingTop","paddingBottom","paddingLeft","paddingRight","unitComponent","UnitComponent","unconformityLabels","showLabels","width","_width","columnWidth","_columnWidth","showLabelColumn","_showLabelColumn","className","clipUnits","showTimescale","timescaleLevels","maxInternalColumns","onMouseOver","useMacrostratColumnData","columnRef","useColumnRef","_timescaleUnconformityLabels","_sectionUnconformityLabels","_showTimescale","$4721fb147cb3f5e1$var$useMouseEventHandlers","_onMouseOver","dispatch","useUnitSelectionDispatch","onClick","evt","useCompositeScale","height","invert","clientY","currentTarget","getBoundingClientRect","top","onMouseOut","undefined","onMouseMove","style","ref","CompositeTimescale","levels","SectionsColumn","darkMode","isEnabled","data","showColumnID","showReferences","col_name","Identifier","col_id","row","label","value","col_group","ReferencesField","refs","inline","Column","ColumnContainer","ColumnBasicInfo"],"version":3,"file":"column-views.c3097d9a.js.map","sourceRoot":"../../../../"}
@@ -1,2 +1,2 @@
1
- import"./column-views.080781ca.js";import{create as e,useStore as o}from"zustand";import{createContext as t,useState as r,useMemo as l,useEffect as n,useContext as s}from"react";import u from"@macrostrat/hyper";var a=globalThis,i={},c={},m=a.parcelRequirea149;null==m&&((m=function(e){if(e in i)return i[e].exports;if(e in c){var o=c[e];delete c[e];var t={id:e,exports:{}};return i[e]=t,o.call(t.exports,t,t.exports),t.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,o){c[e]=o},a.parcelRequirea149=m),m.register;var d=m("lgTAP");let C=t(null);function f({children:o,columns:t,columnIDs:s,selectedColumn:a,projectID:i,inProcess:c,onSelectColumn:m,onHoverColumn:f}){(0,d.useMacrostratStore)(e=>e.getColumns);let[p]=r(()=>e((e,o)=>({columns:null,selectedColumn:null,hoveredColumn:null,selectColumn(t){e({selectedColumn:t,hoveredColumn:null});let{columns:r}=o(),l=r?.find(e=>e.id==t);m?.(t,l)},setHoveredColumn(t){e({hoveredColumn:t});let{columns:r}=o(),l=r?.find(e=>e.id==t);f?.(t,l)}}))),v=t??(0,d.useMacrostratColumns)(i,c);return s?.length>0&&(v=l(()=>v?.filter(e=>s.includes(e.properties.col_id)),[s,v])),n(()=>{v?.length>0&&p.setState({columns:v,selectedColumn:a})},[v]),n(()=>{let{selectColumn:e,selectedColumn:o}=p.getState();a!=o&&e(a)},[a]),u(C.Provider,{value:p},o)}function p(e){let t=s(C);if(null==t)throw Error("Missing ColumnNavigationProvider");return o(t,e)}export{f as ColumnNavigationProvider,p as useColumnNavigationStore};
2
- //# sourceMappingURL=column-views.fa5ee6de.js.map
1
+ import"./column-views.2e2158f5.js";import{create as e,useStore as o}from"zustand";import{createContext as t,useState as r,useMemo as l,useEffect as n,useContext as s}from"react";import u from"@macrostrat/hyper";var a=globalThis,i={},c={},m=a.parcelRequirea149;null==m&&((m=function(e){if(e in i)return i[e].exports;if(e in c){var o=c[e];delete c[e];var t={id:e,exports:{}};return i[e]=t,o.call(t.exports,t,t.exports),t.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,o){c[e]=o},a.parcelRequirea149=m),m.register;var d=m("lgTAP");let C=t(null);function f({children:o,columns:t,columnIDs:s,selectedColumn:a,projectID:i,inProcess:c,onSelectColumn:m,onHoverColumn:f}){(0,d.useMacrostratStore)(e=>e.getColumns);let[p]=r(()=>e((e,o)=>({columns:null,selectedColumn:null,hoveredColumn:null,selectColumn(t){e({selectedColumn:t,hoveredColumn:null});let{columns:r}=o(),l=r?.find(e=>e.id==t);m?.(t,l)},setHoveredColumn(t){e({hoveredColumn:t});let{columns:r}=o(),l=r?.find(e=>e.id==t);f?.(t,l)}}))),v=t??(0,d.useMacrostratColumns)(i,c);return s?.length>0&&(v=l(()=>v?.filter(e=>s.includes(e.properties.col_id)),[s,v])),n(()=>{v?.length>0&&p.setState({columns:v,selectedColumn:a})},[v]),n(()=>{let{selectColumn:e,selectedColumn:o}=p.getState();a!=o&&e(a)},[a]),u(C.Provider,{value:p},o)}function p(e){let t=s(C);if(null==t)throw Error("Missing ColumnNavigationProvider");return o(t,e)}export{f as ColumnNavigationProvider,p as useColumnNavigationStore};
2
+ //# sourceMappingURL=column-views.c4c15e2b.js.map