@macrostrat/column-views 2.1.2 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/esm/{column-views.813d5bba.js → column-views.02f3732a.js} +9 -5
  3. package/dist/esm/column-views.02f3732a.js.map +1 -0
  4. package/dist/esm/{column-views.c8e2983a.js → column-views.0a159282.js} +4 -4
  5. package/dist/esm/{column-views.c8e2983a.js.map → column-views.0a159282.js.map} +1 -1
  6. package/dist/esm/{column-views.c25e8b32.js → column-views.1f7fb650.js} +3 -3
  7. package/dist/esm/{column-views.c25e8b32.js.map → column-views.1f7fb650.js.map} +1 -1
  8. package/dist/esm/{column-views.bcffe6e5.js → column-views.243da806.js} +3 -3
  9. package/dist/esm/{column-views.bcffe6e5.js.map → column-views.243da806.js.map} +1 -1
  10. package/dist/esm/{column-views.e20f6a4b.js → column-views.2ff3dd8b.js} +2 -2
  11. package/dist/esm/{column-views.e20f6a4b.js.map → column-views.2ff3dd8b.js.map} +1 -1
  12. package/dist/esm/column-views.38a305a0.js +13 -0
  13. package/dist/esm/{column-views.10eba967.js.map → column-views.38a305a0.js.map} +1 -1
  14. package/dist/esm/{column-views.5cc09c1d.js → column-views.3f246167.js} +9 -2
  15. package/dist/esm/column-views.3f246167.js.map +1 -0
  16. package/dist/esm/{column-views.892ce22f.js → column-views.42b89c52.js} +35 -10
  17. package/dist/esm/column-views.42b89c52.js.map +1 -0
  18. package/dist/esm/{column-views.57636733.css → column-views.448c0687.css} +5 -5
  19. package/dist/esm/column-views.448c0687.css.map +1 -0
  20. package/dist/esm/{column-views.afb48e8c.js → column-views.547b2730.js} +8 -8
  21. package/dist/esm/{column-views.afb48e8c.js.map → column-views.547b2730.js.map} +1 -1
  22. package/dist/esm/{column-views.1af9761e.js → column-views.64a84c43.js} +1 -2
  23. package/dist/esm/column-views.64a84c43.js.map +1 -0
  24. package/dist/esm/{column-views.7e350ae2.js → column-views.676cb1d3.js} +3 -3
  25. package/dist/esm/{column-views.7e350ae2.js.map → column-views.676cb1d3.js.map} +1 -1
  26. package/dist/esm/{column-views.28b3eaa0.js → column-views.75ea6dbe.js} +3 -3
  27. package/dist/esm/{column-views.28b3eaa0.js.map → column-views.75ea6dbe.js.map} +1 -1
  28. package/dist/esm/{column-views.b40b2bf6.js → column-views.769fa0ee.js} +2 -2
  29. package/dist/esm/{column-views.b40b2bf6.js.map → column-views.769fa0ee.js.map} +1 -1
  30. package/dist/esm/{column-views.d2037465.js → column-views.775846c9.js} +3 -3
  31. package/dist/esm/{column-views.d2037465.js.map → column-views.775846c9.js.map} +1 -1
  32. package/dist/esm/{column-views.32a83292.js → column-views.77b49a43.js} +7 -7
  33. package/dist/esm/{column-views.32a83292.js.map → column-views.77b49a43.js.map} +1 -1
  34. package/dist/esm/{column-views.89b9e542.js → column-views.78bd3f09.js} +2 -2
  35. package/dist/esm/{column-views.89b9e542.js.map → column-views.78bd3f09.js.map} +1 -1
  36. package/dist/esm/{column-views.3ba9213d.js → column-views.7ca9e1cd.js} +34 -6
  37. package/dist/esm/column-views.7ca9e1cd.js.map +1 -0
  38. package/dist/esm/column-views.8703a35b.js +163 -0
  39. package/dist/esm/column-views.8703a35b.js.map +1 -0
  40. package/dist/esm/{column-views.217078ab.css → column-views.8d4ce558.css} +13 -1
  41. package/dist/esm/column-views.8d4ce558.css.map +1 -0
  42. package/dist/esm/{column-views.85c6a716.js → column-views.8e3dec90.js} +2 -2
  43. package/dist/esm/{column-views.85c6a716.js.map → column-views.8e3dec90.js.map} +1 -1
  44. package/dist/esm/{column-views.52a6eb47.js → column-views.935ef6f7.js} +2 -2
  45. package/dist/esm/{column-views.52a6eb47.js.map → column-views.935ef6f7.js.map} +1 -1
  46. package/dist/esm/column-views.97d542eb.js +37 -0
  47. package/dist/esm/column-views.97d542eb.js.map +1 -0
  48. package/dist/esm/{column-views.6549388a.js → column-views.9e1c82fe.js} +2 -2
  49. package/dist/esm/{column-views.6549388a.js.map → column-views.9e1c82fe.js.map} +1 -1
  50. package/dist/esm/column-views.a195109e.js +60 -0
  51. package/dist/esm/column-views.a195109e.js.map +1 -0
  52. package/dist/esm/{column-views.2ca34210.js → column-views.a6301a41.js} +5 -5
  53. package/dist/esm/{column-views.2ca34210.js.map → column-views.a6301a41.js.map} +1 -1
  54. package/dist/esm/{column-views.2d8e0e0f.js → column-views.ab0380ed.js} +3 -3
  55. package/dist/esm/{column-views.2d8e0e0f.js.map → column-views.ab0380ed.js.map} +1 -1
  56. package/dist/esm/{column-views.1c92b88f.js → column-views.b3c1eb9e.js} +4 -4
  57. package/dist/esm/column-views.b3c1eb9e.js.map +1 -0
  58. package/dist/esm/{column-views.439a26db.css → column-views.b72918ce.css} +45 -20
  59. package/dist/esm/column-views.b72918ce.css.map +1 -0
  60. package/dist/esm/{column-views.0f2121e4.js → column-views.cc5244c4.js} +75 -29
  61. package/dist/esm/column-views.cc5244c4.js.map +1 -0
  62. package/dist/esm/{column-views.4637f4ce.js → column-views.cdadc5c2.js} +4 -1
  63. package/dist/esm/column-views.cdadc5c2.js.map +1 -0
  64. package/dist/esm/{column-views.fef7389f.js → column-views.d48cb0d8.js} +10 -1
  65. package/dist/esm/column-views.d48cb0d8.js.map +1 -0
  66. package/dist/esm/{column-views.b9fe5176.js → column-views.e3b9a317.js} +2 -2
  67. package/dist/esm/{column-views.b9fe5176.js.map → column-views.e3b9a317.js.map} +1 -1
  68. package/dist/esm/{column-views.f13a1d6e.js → column-views.e7ab5af0.js} +2 -2
  69. package/dist/esm/{column-views.f13a1d6e.js.map → column-views.e7ab5af0.js.map} +1 -1
  70. package/dist/esm/{column-views.a91dde4a.js → column-views.f20eb583.js} +5 -56
  71. package/dist/esm/column-views.f20eb583.js.map +1 -0
  72. package/dist/esm/{column-views.59bb0cba.js → column-views.f7523c1d.js} +2 -2
  73. package/dist/esm/{column-views.59bb0cba.js.map → column-views.f7523c1d.js.map} +1 -1
  74. package/dist/esm/column-views.fbc7401f.js +11 -0
  75. package/dist/esm/{column-views.c322a5e7.js.map → column-views.fbc7401f.js.map} +1 -1
  76. package/dist/esm/index.d.ts +77 -13
  77. package/dist/esm/index.d.ts.map +1 -1
  78. package/dist/esm/index.js +10 -10
  79. package/dist/node/column-views.085f4a51.js +2 -0
  80. package/dist/node/column-views.085f4a51.js.map +1 -0
  81. package/dist/node/{column-views.2877f398.js → column-views.0cbd4a3f.js} +2 -2
  82. package/dist/node/{column-views.2877f398.js.map → column-views.0cbd4a3f.js.map} +1 -1
  83. package/dist/node/{column-views.45defa84.js → column-views.0dfc7ef7.js} +2 -2
  84. package/dist/node/{column-views.45defa84.js.map → column-views.0dfc7ef7.js.map} +1 -1
  85. package/dist/node/column-views.2926f656.css +2 -0
  86. package/dist/node/column-views.2926f656.css.map +1 -0
  87. package/dist/node/column-views.2a6b842d.js +2 -0
  88. package/dist/node/column-views.2a6b842d.js.map +1 -0
  89. package/dist/node/{column-views.2a70b9a2.js → column-views.2ca669bc.js} +2 -2
  90. package/dist/node/{column-views.2a70b9a2.js.map → column-views.2ca669bc.js.map} +1 -1
  91. package/dist/node/column-views.2d957a97.js +2 -0
  92. package/dist/node/column-views.2d957a97.js.map +1 -0
  93. package/dist/node/column-views.307661d1.css +2 -0
  94. package/dist/node/column-views.307661d1.css.map +1 -0
  95. package/dist/node/column-views.38357d4a.js +2 -0
  96. package/dist/node/column-views.38357d4a.js.map +1 -0
  97. package/dist/node/column-views.3eeac38d.js +2 -0
  98. package/dist/node/column-views.3eeac38d.js.map +1 -0
  99. package/dist/node/{column-views.7350ac73.js → column-views.42db0bb8.js} +2 -2
  100. package/dist/node/{column-views.7350ac73.js.map → column-views.42db0bb8.js.map} +1 -1
  101. package/dist/node/{column-views.6b6b756b.js → column-views.45fab61b.js} +2 -2
  102. package/dist/node/{column-views.6b6b756b.js.map → column-views.45fab61b.js.map} +1 -1
  103. package/dist/node/{column-views.0220026c.js → column-views.492b4917.js} +2 -2
  104. package/dist/node/{column-views.0220026c.js.map → column-views.492b4917.js.map} +1 -1
  105. package/dist/node/column-views.4ca62e5d.js +2 -0
  106. package/dist/node/column-views.4ca62e5d.js.map +1 -0
  107. package/dist/node/{column-views.3bd09ad6.js → column-views.51bc87ca.js} +2 -2
  108. package/dist/node/{column-views.3bd09ad6.js.map → column-views.51bc87ca.js.map} +1 -1
  109. package/dist/node/{column-views.cf90f63d.js → column-views.58d2f993.js} +2 -2
  110. package/dist/node/{column-views.cf90f63d.js.map → column-views.58d2f993.js.map} +1 -1
  111. package/dist/node/{column-views.5b6833f0.js → column-views.65f091ea.js} +2 -2
  112. package/dist/node/{column-views.5b6833f0.js.map → column-views.65f091ea.js.map} +1 -1
  113. package/dist/node/column-views.6ae7bb69.js +2 -0
  114. package/dist/node/column-views.6ae7bb69.js.map +1 -0
  115. package/dist/node/column-views.6f7a432f.js +2 -0
  116. package/dist/node/column-views.6f7a432f.js.map +1 -0
  117. package/dist/node/{column-views.664dc6c9.js → column-views.7010a03b.js} +2 -2
  118. package/dist/node/{column-views.664dc6c9.js.map → column-views.7010a03b.js.map} +1 -1
  119. package/dist/node/column-views.758b9bc1.js +2 -0
  120. package/dist/node/column-views.758b9bc1.js.map +1 -0
  121. package/dist/node/column-views.80fcf105.js +2 -0
  122. package/dist/node/column-views.80fcf105.js.map +1 -0
  123. package/dist/node/{column-views.ce6808fe.js → column-views.858b5cf4.js} +2 -2
  124. package/dist/node/{column-views.ce6808fe.js.map → column-views.858b5cf4.js.map} +1 -1
  125. package/dist/node/{column-views.f76ba19f.js → column-views.91043465.js} +2 -2
  126. package/dist/node/{column-views.f76ba19f.js.map → column-views.91043465.js.map} +1 -1
  127. package/dist/node/{column-views.770d2c95.js → column-views.976a829b.js} +2 -2
  128. package/dist/node/{column-views.770d2c95.js.map → column-views.976a829b.js.map} +1 -1
  129. package/dist/node/column-views.99fb74c0.js +2 -0
  130. package/dist/node/column-views.99fb74c0.js.map +1 -0
  131. package/dist/node/column-views.9b7a9ae1.js +2 -0
  132. package/dist/node/column-views.9b7a9ae1.js.map +1 -0
  133. package/dist/node/column-views.9de31cdb.js +2 -0
  134. package/dist/node/column-views.9de31cdb.js.map +1 -0
  135. package/dist/node/column-views.a2274834.js +2 -0
  136. package/dist/node/column-views.a2274834.js.map +1 -0
  137. package/dist/node/{column-views.4e2bdf9b.js → column-views.a372c943.js} +2 -2
  138. package/dist/node/{column-views.4e2bdf9b.js.map → column-views.a372c943.js.map} +1 -1
  139. package/dist/node/column-views.a4e6d4ad.js +2 -0
  140. package/dist/node/column-views.a4e6d4ad.js.map +1 -0
  141. package/dist/node/{column-views.39c07f5f.js → column-views.a7256aa7.js} +2 -2
  142. package/dist/node/{column-views.39c07f5f.js.map → column-views.a7256aa7.js.map} +1 -1
  143. package/dist/node/column-views.c4b409e1.css +2 -0
  144. package/dist/node/column-views.c4b409e1.css.map +1 -0
  145. package/dist/node/{column-views.0859f5d2.js → column-views.c7f6fc0a.js} +2 -2
  146. package/dist/node/{column-views.0859f5d2.js.map → column-views.c7f6fc0a.js.map} +1 -1
  147. package/dist/node/column-views.cef1b814.js +2 -0
  148. package/dist/node/column-views.cef1b814.js.map +1 -0
  149. package/dist/node/{column-views.12a70e9d.js → column-views.d9add589.js} +2 -2
  150. package/dist/node/{column-views.12a70e9d.js.map → column-views.d9add589.js.map} +1 -1
  151. package/dist/node/{column-views.39d3a0be.js → column-views.df97f28e.js} +2 -2
  152. package/dist/node/{column-views.39d3a0be.js.map → column-views.df97f28e.js.map} +1 -1
  153. package/dist/node/{column-views.6f0c1134.js → column-views.dfb2361a.js} +2 -2
  154. package/dist/node/{column-views.6f0c1134.js.map → column-views.dfb2361a.js.map} +1 -1
  155. package/dist/node/{column-views.6b441349.js → column-views.e3ba0594.js} +2 -2
  156. package/dist/node/{column-views.6b441349.js.map → column-views.e3ba0594.js.map} +1 -1
  157. package/dist/node/column-views.eeca917f.js +2 -0
  158. package/dist/node/column-views.eeca917f.js.map +1 -0
  159. package/dist/node/index.js +1 -1
  160. package/dist/node/index.js.map +1 -1
  161. package/package.json +10 -10
  162. package/src/age-axis.ts +11 -6
  163. package/src/column.module.sass +9 -0
  164. package/src/column.ts +23 -1
  165. package/src/data-provider/base.ts +50 -3
  166. package/src/data-provider/fetch.ts +15 -0
  167. package/src/facets/fossils/index.module.sass +1 -1
  168. package/src/facets/fossils/index.ts +104 -12
  169. package/src/facets/index.ts +1 -0
  170. package/src/facets/measurements/index.ts +39 -0
  171. package/src/facets/measurements/provider.ts +80 -0
  172. package/src/unit-details/index.ts +1 -0
  173. package/src/unit-details/modal-panel.ts +61 -0
  174. package/src/unit-details/panel.module.sass +41 -17
  175. package/src/unit-details/panel.ts +114 -36
  176. package/src/units/boxes.ts +1 -64
  177. package/src/units/selection.ts +0 -1
  178. package/dist/esm/column-views.0f2121e4.js.map +0 -1
  179. package/dist/esm/column-views.10eba967.js +0 -11
  180. package/dist/esm/column-views.1af9761e.js.map +0 -1
  181. package/dist/esm/column-views.1c92b88f.js.map +0 -1
  182. package/dist/esm/column-views.217078ab.css.map +0 -1
  183. package/dist/esm/column-views.3ba9213d.js.map +0 -1
  184. package/dist/esm/column-views.439a26db.css.map +0 -1
  185. package/dist/esm/column-views.4637f4ce.js.map +0 -1
  186. package/dist/esm/column-views.57636733.css.map +0 -1
  187. package/dist/esm/column-views.5cc09c1d.js.map +0 -1
  188. package/dist/esm/column-views.813d5bba.js.map +0 -1
  189. package/dist/esm/column-views.892ce22f.js.map +0 -1
  190. package/dist/esm/column-views.a91dde4a.js.map +0 -1
  191. package/dist/esm/column-views.c322a5e7.js +0 -9
  192. package/dist/esm/column-views.fa19cea0.js +0 -108
  193. package/dist/esm/column-views.fa19cea0.js.map +0 -1
  194. package/dist/esm/column-views.fef7389f.js.map +0 -1
  195. package/dist/node/column-views.04407342.js +0 -2
  196. package/dist/node/column-views.04407342.js.map +0 -1
  197. package/dist/node/column-views.059a41c1.js +0 -2
  198. package/dist/node/column-views.059a41c1.js.map +0 -1
  199. package/dist/node/column-views.10a2bad6.js +0 -2
  200. package/dist/node/column-views.10a2bad6.js.map +0 -1
  201. package/dist/node/column-views.12414005.js +0 -2
  202. package/dist/node/column-views.12414005.js.map +0 -1
  203. package/dist/node/column-views.1de87649.js +0 -2
  204. package/dist/node/column-views.1de87649.js.map +0 -1
  205. package/dist/node/column-views.3345cd7a.js +0 -2
  206. package/dist/node/column-views.3345cd7a.js.map +0 -1
  207. package/dist/node/column-views.3cb3345e.js +0 -2
  208. package/dist/node/column-views.3cb3345e.js.map +0 -1
  209. package/dist/node/column-views.6da49480.js +0 -2
  210. package/dist/node/column-views.6da49480.js.map +0 -1
  211. package/dist/node/column-views.7f951eeb.js +0 -2
  212. package/dist/node/column-views.7f951eeb.js.map +0 -1
  213. package/dist/node/column-views.9771eb09.css +0 -2
  214. package/dist/node/column-views.9771eb09.css.map +0 -1
  215. package/dist/node/column-views.9f796135.js +0 -2
  216. package/dist/node/column-views.9f796135.js.map +0 -1
  217. package/dist/node/column-views.a0aac838.js +0 -2
  218. package/dist/node/column-views.a0aac838.js.map +0 -1
  219. package/dist/node/column-views.a8ffe072.js +0 -2
  220. package/dist/node/column-views.a8ffe072.js.map +0 -1
  221. package/dist/node/column-views.aa50c532.js +0 -2
  222. package/dist/node/column-views.aa50c532.js.map +0 -1
  223. package/dist/node/column-views.b773edb8.js +0 -2
  224. package/dist/node/column-views.b773edb8.js.map +0 -1
  225. package/dist/node/column-views.cd3c430b.js +0 -2
  226. package/dist/node/column-views.cd3c430b.js.map +0 -1
  227. package/dist/node/column-views.cd468adb.css +0 -2
  228. package/dist/node/column-views.cd468adb.css.map +0 -1
  229. package/dist/node/column-views.d9bbd6fb.css +0 -2
  230. package/dist/node/column-views.d9bbd6fb.css.map +0 -1
@@ -1,2 +0,0 @@
1
- import"./column-views.8cfed88b.js";import"./column-views.78d3f3c5.js";import"./column-views.a501cea0.js";import"./column-views.cf90f63d.js";import"./column-views.3345cd7a.js";import e from"@macrostrat/hyper";import{useMemo as t}from"react";var n=globalThis,i={},o={},l=n.parcelRequirea149;null==l&&((l=function(e){if(e in i)return i[e].exports;if(e in o){var t=o[e];delete o[e];var n={id:e,exports:{}};return i[e]=n,t.call(n.exports,n,n.exports),n.exports}var l=Error("Cannot find module '"+e+"'");throw l.code="MODULE_NOT_FOUND",l}).register=function(e,t){o[e]=t},n.parcelRequirea149=l),l.register,Object.defineProperty({},"PBDBFossilsColumn",{get:()=>_,set:void 0,enumerable:!0,configurable:!0});var r=l("iWhRv"),a=l("wtIgl"),u=l("dx7no"),s=l("6KYbn"),c=l("jDygK");let d=e.styled(c&&c.__esModule?c.default:c);function f(e){let{note:t,spacing:n}=e,{data:i,unit:o}=t,l=i,r=null;if(i.length>5){let e=i.length-5;l=i.slice(0,5),r=d("li.too-many",`and ${e} more`)}return d("ul.fossil-collections",[l.map(e=>d("li.collection",{key:e.cltn_id},[d(m,{collection:e})])),r])}function m({collection:e}){return d("a.link-id",{href:`https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${e.cltn_id}`},e.cltn_name)}let p=e=>t=>t.unit_id==e.unit_id;function _({columnID:e,color:n="magenta"}){let i=(0,u.useFossilData)({col_id:e}),{axisType:o,units:l}=(0,a.useMacrostratColumnData)(),c=t(()=>{if(null==i||null==l)return[];let e=Array.from(i.values()).map(e=>({data:e,unit:l.find(p(e[0]))})).filter(e=>null!=e.unit);return e.sort((e,t)=>l.indexOf(e.unit)-l.indexOf(t.unit)),e.map(e=>{let{unit:t,data:n}=e,i=(0,r.getUnitHeightRange)(t,o);return{top_height:i[1],height:i[0],data:n,unit:t,id:t.unit_id}})},[i,l]),m=t(()=>e=>d(f,{color:n,...e}),[500,n]);return null==i||null==l?null:d("div.dz-spectra",d(s.ColumnNotes,{width:500,paddingLeft:40,notes:c,noteComponent:m}))}export{_ as PBDBFossilsColumn};
2
- //# sourceMappingURL=column-views.6da49480.js.map
@@ -1 +0,0 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,W,C,K,O,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,O,c,C,C,E,oB,C,I,I,E,I,K,E,W,C,E,a,C,C,G,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCUA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAgBvB,SAAS,EAAW,CAAsB,EACxC,GAAM,CAAA,KAAE,CAAI,CAAA,QAAE,CAAO,CAAE,CAAG,EACpB,CAAA,KAAE,CAAI,CAAA,KAAE,CAAI,CAAE,CAAG,EAEnB,EAAK,EAEL,EAAU,KACd,GAAI,EAAK,MAAM,CAAG,EAAG,CACnB,IAAM,EAAI,EAAK,MAAM,CAAG,EACxB,EAAK,EAAK,KAAK,CAAC,EAAG,GACnB,EAAU,EAAE,cAAe,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAC5C,CAEA,OAAO,EAAE,wBAAyB,CAChC,EAAG,GAAG,CAAC,AAAC,GACC,EAAE,gBAAiB,CAAE,IAAK,EAAE,OAAO,AAAC,EAAG,CAC5C,EAAE,EAAoB,CAAE,WAAY,CAAE,GACvC,GAEH,EACD,CACH,CAEA,SAAS,EAAmB,CAAA,WAAE,CAAU,CAAkC,EACxE,OAAO,EACL,YACA,CACE,KAAM,CAAC,mEAAmE,EAAE,EAAW,OAAO,CAAA,CAAE,AAClG,EACA,EAAW,SAAS,CAExB,CAEA,IAAM,EAAe,AAAC,GAAO,AAAC,GAAM,EAAE,OAAO,EAAI,EAAG,OAAO,CAEpD,SAAS,EAAkB,CAAA,SAAE,CAAQ,CAAA,MAAE,EAAQ,SAAA,CAAW,EAC/D,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,CAAE,OAAQ,CAAS,GACxC,CAAA,SAAE,CAAQ,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,IAEtB,EAAe,AAAA,EAAQ,KAC3B,GAAI,AAAQ,MAAR,GAAgB,AAAS,MAAT,EAAe,MAAO,EAAE,CAC5C,IAAI,EAAc,MAAM,IAAI,CAAC,EAAK,MAAM,IACrC,GAAG,CAAC,AAAC,GACG,CAAA,CACL,KAAM,EACN,KAAM,EAAM,IAAI,CAAC,EAAa,CAAC,CAAC,EAAE,EACpC,CAAA,GAED,MAAM,CAAC,AAAC,GAAM,AAAU,MAAV,EAAE,IAAI,EAQvB,OANA,EAAY,IAAI,CAAC,CAAC,EAAG,IAGZ,AAFI,EAAM,OAAO,CAAC,EAAE,IAAI,EACpB,EAAM,OAAO,CAAC,EAAE,IAAI,GAI1B,EAAY,GAAG,CAAC,AAAC,IACtB,GAAM,CAAA,KAAE,CAAI,CAAA,KAAE,CAAI,CAAE,CAAG,EACjB,EAAc,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAM,GAE7C,MAAO,CACL,WAAY,CAAW,CAAC,EAAE,CAC1B,OAAQ,CAAW,CAAC,EAAE,CACtB,KAAA,EACA,KAAA,EACA,GAAI,EAAK,OAAO,AAClB,CACF,EACF,EAAG,CAAC,EAAM,EAAM,EAKV,EAAgB,AAAA,EAAQ,IACrB,AAAC,GACC,EAAE,EAAY,CACnB,MAAA,EACA,GAAG,CAAK,AACV,GAED,CAVW,IAUH,EAAM,SAEjB,AAAI,AAAQ,MAAR,GAAgB,AAAS,MAAT,EAAsB,KAEnC,EACL,iBACA,EAAE,EAAA,WAAU,CAAG,CACb,MAjBU,IAkBV,YAjBgB,GAkBhB,MAAA,EACA,cAAA,CACF,GAEJ,Q,K,iB","sources":["<anon>","packages/column-views/src/facets/fossils/index.ts"],"sourcesContent":["import \"./column-views.8cfed88b.js\";\nimport \"./column-views.78d3f3c5.js\";\nimport \"./column-views.a501cea0.js\";\nimport \"./column-views.cf90f63d.js\";\nimport \"./column-views.3345cd7a.js\";\nimport $2jHE4$macrostrathyper from \"@macrostrat/hyper\";\nimport {useMemo as $2jHE4$useMemo} from \"react\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $ea2f112131e22f14$exports = {};\n\n$parcel$export($ea2f112131e22f14$exports, \"PBDBFossilsColumn\", () => $ea2f112131e22f14$export$554267114407ef68);\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\n\n\nvar $dx7no = parcelRequire(\"dx7no\");\n\nvar $6KYbn = parcelRequire(\"6KYbn\");\n\n\nvar $jDygK = parcelRequire(\"jDygK\");\nconst $ea2f112131e22f14$var$h = (0, $2jHE4$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($jDygK))));\nfunction $ea2f112131e22f14$var$FossilInfo(props) {\n const { note: note, spacing: spacing } = props;\n const { data: data, unit: unit } = note;\n let d1 = data;\n let tooMany = null;\n if (data.length > 5) {\n const n = data.length - 5;\n d1 = data.slice(0, 5);\n tooMany = $ea2f112131e22f14$var$h(\"li.too-many\", `and ${n} more`);\n }\n return $ea2f112131e22f14$var$h(\"ul.fossil-collections\", [\n d1.map((d)=>{\n return $ea2f112131e22f14$var$h(\"li.collection\", {\n key: d.cltn_id\n }, [\n $ea2f112131e22f14$var$h($ea2f112131e22f14$var$PBDBCollectionLink, {\n collection: d\n })\n ]);\n }),\n tooMany\n ]);\n}\nfunction $ea2f112131e22f14$var$PBDBCollectionLink({ collection: collection }) {\n return $ea2f112131e22f14$var$h(\"a.link-id\", {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${collection.cltn_id}`\n }, collection.cltn_name);\n}\nconst $ea2f112131e22f14$var$matchingUnit = (dz)=>(d)=>d.unit_id == dz.unit_id;\nfunction $ea2f112131e22f14$export$554267114407ef68({ columnID: columnID, color: color = \"magenta\" }) {\n const data = (0, $dx7no.useFossilData)({\n col_id: columnID\n });\n const { axisType: axisType, units: units } = (0, $wtIgl.useMacrostratColumnData)();\n const notes = (0, $2jHE4$useMemo)(()=>{\n if (data == null || units == null) return [];\n let unitRefData = Array.from(data.values()).map((d)=>{\n return {\n data: d,\n unit: units.find($ea2f112131e22f14$var$matchingUnit(d[0]))\n };\n }).filter((d)=>d.unit != null);\n unitRefData.sort((a, b)=>{\n const v1 = units.indexOf(a.unit);\n const v2 = units.indexOf(b.unit);\n return v1 - v2;\n });\n return unitRefData.map((d)=>{\n const { unit: unit, data: data } = d;\n const heightRange = (0, $iWhRv.getUnitHeightRange)(unit, axisType);\n return {\n top_height: heightRange[1],\n height: heightRange[0],\n data: data,\n unit: unit,\n id: unit.unit_id\n };\n });\n }, [\n data,\n units\n ]);\n const width = 500;\n const paddingLeft = 40;\n const noteComponent = (0, $2jHE4$useMemo)(()=>{\n return (props)=>{\n return $ea2f112131e22f14$var$h($ea2f112131e22f14$var$FossilInfo, {\n color: color,\n ...props\n });\n };\n }, [\n width,\n color\n ]);\n if (data == null || units == null) return null;\n return $ea2f112131e22f14$var$h(\"div.dz-spectra\", $ea2f112131e22f14$var$h((0, $6KYbn.ColumnNotes), {\n width: width,\n paddingLeft: paddingLeft,\n notes: notes,\n noteComponent: noteComponent\n }));\n}\n\n\nexport {$ea2f112131e22f14$export$554267114407ef68 as PBDBFossilsColumn};\n//# sourceMappingURL=column-views.6da49480.js.map\n","import { getUnitHeightRange } from \"../../prepare-units\";\nimport { useMacrostratColumnData } from \"../../data-provider\";\nimport hyper from \"@macrostrat/hyper\";\nimport { PBDBCollection, useFossilData } from \"./provider\";\nimport { useMacrostratUnits } from \"../../data-provider\";\nimport { ColumnNotes } from \"../../notes\";\nimport { useMemo } from \"react\";\nimport type { IUnit } from \"../../units\";\nimport styles from \"./index.module.sass\";\n\nconst h = hyper.styled(styles);\n\ninterface FossilItemProps {\n note: {\n data: PBDBCollection[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\nfunction FossilInfo(props: FossilItemProps) {\n const { note, spacing } = props;\n const { data, unit } = note;\n\n let d1 = data;\n\n let tooMany = null;\n if (data.length > 5) {\n const n = data.length - 5;\n d1 = data.slice(0, 5);\n tooMany = h(\"li.too-many\", `and ${n} more`);\n }\n\n return h(\"ul.fossil-collections\", [\n d1.map((d) => {\n return h(\"li.collection\", { key: d.cltn_id }, [\n h(PBDBCollectionLink, { collection: d }),\n ]);\n }),\n tooMany,\n ]);\n}\n\nfunction PBDBCollectionLink({ collection }: { collection: PBDBCollection }) {\n return h(\n \"a.link-id\",\n {\n href: `https://paleobiodb.org/classic/basicCollectionSearch?collection_no=${collection.cltn_id}`,\n },\n collection.cltn_name,\n );\n}\n\nconst matchingUnit = (dz) => (d) => d.unit_id == dz.unit_id;\n\nexport function PBDBFossilsColumn({ columnID, color = \"magenta\" }) {\n const data = useFossilData({ col_id: columnID });\n const { axisType, units } = useMacrostratColumnData();\n\n const notes: any[] = useMemo(() => {\n if (data == null || units == null) return [];\n let unitRefData = Array.from(data.values())\n .map((d) => {\n return {\n data: d,\n unit: units.find(matchingUnit(d[0])),\n };\n })\n .filter((d) => d.unit != null);\n\n unitRefData.sort((a, b) => {\n const v1 = units.indexOf(a.unit);\n const v2 = units.indexOf(b.unit);\n return v1 - v2;\n });\n\n return unitRefData.map((d) => {\n const { unit, data } = d;\n const heightRange = getUnitHeightRange(unit, axisType);\n\n return {\n top_height: heightRange[1],\n height: heightRange[0],\n data,\n unit,\n id: unit.unit_id,\n };\n });\n }, [data, units]);\n\n const width = 500;\n const paddingLeft = 40;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(FossilInfo, {\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n if (data == null || units == null) return null;\n\n return h(\n \"div.dz-spectra\",\n h(ColumnNotes, {\n width,\n paddingLeft,\n notes,\n noteComponent,\n }),\n );\n}\n"],"names":["$2jHE4$macrostrathyper","useMemo","$2jHE4$useMemo","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","Object","defineProperty","get","$ea2f112131e22f14$export$554267114407ef68","set","s","enumerable","configurable","$iWhRv","$wtIgl","$dx7no","$6KYbn","$jDygK","$ea2f112131e22f14$var$h","styled","a","__esModule","default","$ea2f112131e22f14$var$FossilInfo","props","note","spacing","data","unit","d1","tooMany","length","n","slice","map","d","key","cltn_id","$ea2f112131e22f14$var$PBDBCollectionLink","collection","href","cltn_name","$ea2f112131e22f14$var$matchingUnit","dz","unit_id","columnID","color","useFossilData","col_id","axisType","units","useMacrostratColumnData","notes","unitRefData","Array","from","values","find","filter","sort","b","v1","indexOf","heightRange","getUnitHeightRange","top_height","height","noteComponent","ColumnNotes","width","paddingLeft","PBDBFossilsColumn"],"version":3,"file":"column-views.6da49480.js.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- import"./column-views.9f796135.js";import"./column-views.6f0c1134.js";function e(e,r){return Object.keys(r).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})}),e}var r=globalThis,t={},a={},c=r.parcelRequirea149;null==c&&((c=function(e){if(e in t)return t[e].exports;if(e in a){var r=a[e];delete a[e];var c={id:e,exports:{}};return t[e]=c,r.call(c.exports,c,c.exports),c.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,r){a[e]=r},r.parcelRequirea149=c),c.register;var o={},n=c("iYfAq"),i=c("2KV3o");e(o,n),e(o,i);export{$4a89f93cd5289383$export$fbd245232df17557 as UnitDetailsPanel,$4a89f93cd5289383$export$fc503c39cc5cff43 as LegendPanelHeader,$4a89f93cd5289383$export$ec297f6f9a6ccad0 as UnitDetailsFeature,$4a89f93cd5289383$export$3b11bc38611c5941 as Duration,$4a89f93cd5289383$export$37ebfd237811b1eb as AgeLabel,$1c6e0a5d10814cef$export$6716aecc2c9afbe2 as UnitDetailsPopover,$1c6e0a5d10814cef$export$db1115efab13710d as UnitSelectionPopover};
2
- //# sourceMappingURL=column-views.7f951eeb.js.map
@@ -1 +0,0 @@
1
- {"mappings":"A,M,6C,A,O,6C,C,S,E,C,C,C,E,O,O,I,C,G,O,C,S,C,E,Y,G,A,e,G,O,S,C,c,C,I,C,E,I,O,c,C,E,E,C,W,C,E,I,W,O,C,C,E,A,C,E,G,C,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,S,E,E,S,E,E,G,E,E,U,6C,gB,C,6C,iB,C,6C,kB,C,6C,Q,C,6C,Q,C,6C,kB,C,6C,oB","sources":["<anon>","packages/column-views/src/unit-details/index.ts"],"sourcesContent":["import \"./column-views.9f796135.js\";\nimport \"./column-views.6f0c1134.js\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $af300f8688b62310$exports = {};\n\nvar $iYfAq = parcelRequire(\"iYfAq\");\n\nvar $2KV3o = parcelRequire(\"2KV3o\");\n$parcel$exportWildcard($af300f8688b62310$exports, $iYfAq);\n$parcel$exportWildcard($af300f8688b62310$exports, $2KV3o);\n\n\nexport {$4a89f93cd5289383$export$fbd245232df17557 as UnitDetailsPanel, $4a89f93cd5289383$export$fc503c39cc5cff43 as LegendPanelHeader, $4a89f93cd5289383$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $4a89f93cd5289383$export$3b11bc38611c5941 as Duration, $4a89f93cd5289383$export$37ebfd237811b1eb as AgeLabel, $1c6e0a5d10814cef$export$6716aecc2c9afbe2 as UnitDetailsPopover, $1c6e0a5d10814cef$export$db1115efab13710d as UnitSelectionPopover};\n//# sourceMappingURL=column-views.7f951eeb.js.map\n","export * from \"./panel\";\nexport * from \"./popover\";\n"],"names":["$parcel$exportWildcard","dest","source","Object","keys","forEach","key","prototype","hasOwnProperty","call","defineProperty","enumerable","get","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","err","Error","code","register","$af300f8688b62310$exports","$iYfAq","$2KV3o","$4a89f93cd5289383$export$fbd245232df17557","UnitDetailsPanel","$4a89f93cd5289383$export$fc503c39cc5cff43","LegendPanelHeader","$4a89f93cd5289383$export$ec297f6f9a6ccad0","UnitDetailsFeature","$4a89f93cd5289383$export$3b11bc38611c5941","Duration","$4a89f93cd5289383$export$37ebfd237811b1eb","AgeLabel","$1c6e0a5d10814cef$export$6716aecc2c9afbe2","UnitDetailsPopover","$1c6e0a5d10814cef$export$db1115efab13710d","UnitSelectionPopover"],"version":3,"file":"column-views.7f951eeb.js.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- .XUD4UG_legend-panel-header{border-bottom:1px solid var(--panel-rule-color);background-color:var(--panel-secondary-background-color);z-index:50;justify-content:space-between;align-items:baseline;gap:1em;padding:.5em 1em;display:flex;position:sticky;top:0}.XUD4UG_legend-panel-header .XUD4UG_title-container{flex-direction:row;align-items:center;gap:.5em;margin:-.5em 0;display:flex}.XUD4UG_legend-panel-header .XUD4UG_title-container:hover .XUD4UG_hidden-actions{opacity:.5;display:flex}.XUD4UG_legend-panel-header .XUD4UG_title-container h1,.XUD4UG_legend-panel-header .XUD4UG_title-container h2,.XUD4UG_legend-panel-header .XUD4UG_title-container h3{margin:.5em 0}.XUD4UG_legend-panel-header .XUD4UG_title-container .XUD4UG_hidden-actions{display:none}.XUD4UG_legend-panel-header .XUD4UG_title-container button{transform:translateY(0)}.XUD4UG_legend-panel-header code{color:var(--secondary-color);font-size:.9em}.XUD4UG_legend-panel-header .XUD4UG_spacer{flex:1}.XUD4UG_legend-panel-header button{line-height:1.5;transform:translateY(2px)}.XUD4UG_unit-details-panel{flex-direction:column;display:flex}.XUD4UG_unit-details-panel .XUD4UG_unit-details-content-holder{flex:1;overflow-y:scroll}.XUD4UG_unit-details-content{margin:1em;position:relative}.XUD4UG_proportion,.XUD4UG_sep,.XUD4UG_no-units{color:var(--secondary-color);font-style:italic}.XUD4UG_strat-name-id,.XUD4UG_unit-id{font-family:var(--monospace-font);color:var(--secondary-color)}.XUD4UG_strat-name-id:before,.XUD4UG_unit-id:before{content:"#";color:var(--tertiary-color)}.XUD4UG_color-swatch{border:1px solid var(--panel-rule-color);border-radius:.2em;width:1em;height:1em;margin-right:.2em;display:inline-block}.XUD4UG_refs{margin:0;padding-left:0;list-style:none}.XUD4UG_interval-proportions{text-align:right;flex-grow:1;width:100%}.XUD4UG_interval-proportions .XUD4UG_discourage-break{white-space:nowrap}.XUD4UG_interval-proportions .XUD4UG_sep{margin:0 .3em}.XUD4UG_clickable{cursor:pointer}
2
- /*# sourceMappingURL=column-views.9771eb09.css.map */
@@ -1 +0,0 @@
1
- {"mappings":"ACAA,+PAWE,+HAOI,yGAGF,mLAEA,wFAEA,mFAGF,6EAGA,kDAEA,6EAIF,8DAGE,wFAIF,0DAIA,+FAIA,qGAIE,4FAIF,6IAQA,qDAKA,qEAIE,yEAEA,uDAGF","sources":["column-views.9771eb09.css","packages/column-views/src/unit-details/panel.module.sass"],"sourcesContent":[".XUD4UG_legend-panel-header {\n border-bottom: 1px solid var(--panel-rule-color);\n background-color: var(--panel-secondary-background-color);\n z-index: 50;\n justify-content: space-between;\n align-items: baseline;\n gap: 1em;\n padding: .5em 1em;\n display: flex;\n position: sticky;\n top: 0;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container {\n flex-direction: row;\n align-items: center;\n gap: .5em;\n margin: -.5em 0;\n display: flex;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container:hover .XUD4UG_hidden-actions {\n opacity: .5;\n display: flex;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container h1, .XUD4UG_legend-panel-header .XUD4UG_title-container h2, .XUD4UG_legend-panel-header .XUD4UG_title-container h3 {\n margin: .5em 0;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container .XUD4UG_hidden-actions {\n display: none;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_title-container button {\n transform: translateY(0);\n}\n\n.XUD4UG_legend-panel-header code {\n color: var(--secondary-color);\n font-size: .9em;\n}\n\n.XUD4UG_legend-panel-header .XUD4UG_spacer {\n flex: 1;\n}\n\n.XUD4UG_legend-panel-header button {\n line-height: 1.5;\n transform: translateY(2px);\n}\n\n.XUD4UG_unit-details-panel {\n flex-direction: column;\n display: flex;\n}\n\n.XUD4UG_unit-details-panel .XUD4UG_unit-details-content-holder {\n flex: 1;\n overflow-y: scroll;\n}\n\n.XUD4UG_unit-details-content {\n margin: 1em;\n position: relative;\n}\n\n.XUD4UG_proportion, .XUD4UG_sep, .XUD4UG_no-units {\n color: var(--secondary-color);\n font-style: italic;\n}\n\n.XUD4UG_strat-name-id, .XUD4UG_unit-id {\n font-family: var(--monospace-font);\n color: var(--secondary-color);\n}\n\n.XUD4UG_strat-name-id:before, .XUD4UG_unit-id:before {\n content: \"#\";\n color: var(--tertiary-color);\n}\n\n.XUD4UG_color-swatch {\n border: 1px solid var(--panel-rule-color);\n border-radius: .2em;\n width: 1em;\n height: 1em;\n margin-right: .2em;\n display: inline-block;\n}\n\n.XUD4UG_refs {\n margin: 0;\n padding-left: 0;\n list-style: none;\n}\n\n.XUD4UG_interval-proportions {\n text-align: right;\n flex-grow: 1;\n width: 100%;\n}\n\n.XUD4UG_interval-proportions .XUD4UG_discourage-break {\n white-space: nowrap;\n}\n\n.XUD4UG_interval-proportions .XUD4UG_sep {\n margin: 0 .3em;\n}\n\n.XUD4UG_clickable {\n cursor: pointer;\n}\n/*# sourceMappingURL=column-views.9771eb09.css.map */\n",".legend-panel-header\n display: flex\n justify-content: space-between\n align-items: baseline\n gap: 1em\n border-bottom: 1px solid var(--panel-rule-color)\n position: sticky\n top: 0\n background-color: var(--panel-secondary-background-color)\n padding: 0.5em 1em\n z-index: 50\n .title-container\n display: flex\n flex-direction: row\n gap: 0.5em\n align-items: center\n margin: -0.5em 0\n &:hover\n .hidden-actions\n display: flex\n opacity: 0.5\n h1, h2, h3\n margin: 0.5em 0\n .hidden-actions\n display: none\n button\n transform: translateY(0px)\n\n code\n font-size: 0.9em\n color: var(--secondary-color)\n .spacer\n flex: 1\n button\n line-height: 1.5\n transform: translateY(2px)\n\n.unit-details-panel\n display: flex\n flex-direction: column\n .unit-details-content-holder\n flex: 1\n overflow-y: scroll\n\n.unit-details-content\n position: relative\n margin: 1em\n\n.proportion, .sep, .no-units\n color: var(--secondary-color)\n font-style: italic\n\n.strat-name-id, .unit-id\n font-family: var(--monospace-font)\n color: var(--secondary-color)\n\n &::before\n content: '#'\n color: var(--tertiary-color)\n\n.color-swatch\n width: 1em\n height: 1em\n border-radius: 0.2em\n margin-right: 0.2em\n border: 1px solid var(--panel-rule-color)\n display: inline-block\n\n.refs\n list-style: none\n margin: 0\n padding-left: 0\n\n.interval-proportions\n flex-grow: 1\n width: 100%\n text-align: right\n .discourage-break\n white-space: nowrap\n .sep\n margin: 0 0.3em\n\n.clickable\n cursor: pointer"],"names":[],"version":3,"file":"column-views.9771eb09.css.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- import"./column-views.aa50c532.js";import"./column-views.a0aac838.js";import"./column-views.2e4e357d.js";import e from"@macrostrat/hyper";import{JSONView as t}from"@macrostrat/ui-components";import{Button as n,ButtonGroup as i}from"@blueprintjs/core";import{useState as a,useMemo as l}from"react";import{LithologyTagFeature as o,DataField as r,Parenthetical as s,Value as u,LithologyList as c,EnvironmentsList as m,ItemList as d,IntervalTag as p}from"@macrostrat/data-components";import f from"classnames";function g(e,t,n,i){Object.defineProperty(e,t,{get:n,set:i,enumerable:!0,configurable:!0})}var b,_=globalThis,h={},v={},k=_.parcelRequirea149;null==k&&((k=function(e){if(e in h)return h[e].exports;if(e in v){var t=v[e];delete v[e];var n={id:e,exports:{}};return h[e]=n,t.call(n.exports,n,n.exports),n.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){v[e]=t},_.parcelRequirea149=k),k.register;var y={};g(y,"UnitDetailsPanel",()=>U),g(y,"LegendPanelHeader",()=>j),g(y,"UnitDetailsFeature",()=>w),g(y,"Duration",()=>M),g(y,"AgeLabel",()=>H);var F=k("lMX1H"),x=k("lgTAP"),D=k("jiUaC");let C=e.styled(F&&F.__esModule?F.default:F);function U({unit:e,onClose:i,className:l,features:o=new Set(["adjacent-units","outcrop-type","json-toggle","depth-range"]),lithologyFeatures:r,actions:s,selectUnit:u,columnUnits:c,onClickItem:m}){let[d,p]=a(!1),g=null;g=d?C(t,{data:e,showRoot:!1}):C(N,{unit:e,features:o,lithologyFeatures:r,onClickItem:m});let b=(0,D.defaultNameFunction)(e),_=null;return o.has("json-toggle")&&(_=C(n,{icon:"code",small:!0,minimal:!0,key:"json-view-toggle",className:f("json-view-toggle",{enabled:p}),onClick(e){p(!d),e.stopPropagation()}})),C("div.unit-details-panel",{className:l},[C(j,{onClose:i,title:b,id:e.unit_id,actions:s,hiddenActions:_}),C("div.unit-details-content-holder",g)])}function j({title:e,id:t,onClose:a,actions:l=null,hiddenActions:o}){return C("header.legend-panel-header",[C("div.title-container",[C.if(null!=e)("h3",e),C.if(null!=o)("div.hidden-actions",o)]),C("div.spacer"),C.if(null!=t)("code",t),C.if(null!=l)(i,{minimal:!0},l),C.if(null!=a)(n,{icon:"cross",minimal:!0,small:!0,onClick(){a()}})])}var w=((b={}).AdjacentUnits="adjacent-units",b.Color="color",b.OutcropType="outcrop-type",b.JSONToggle="json-toggle",b.DepthRange="depth-range",b);function N({unit:e,selectUnit:t,columnUnits:n,lithologyFeatures:i=new Set([o.Proportion,o.Attributes]),features:a=new Set(["adjacent-units","outcrop-type"]),onClickItem:d,getItemHref:p}){var f,g,b,_,h;let v,k,y,F=(0,x.useMacrostratDefs)("lithologies"),D=(0,x.useMacrostratDefs)("environments"),U=(f=e.environ,g=D,f.map(e=>({...g?.get(e.environ_id)??{},...e}))),j=(b=e.lith??[],_=F,b.map(e=>({..._?.get(e.lith_id)??{},...e})));l(()=>{let e=new Map;for(let t of n??[])e.set(t.unit_id,t);return e},[n]);let w=null;if(a.has("outcrop-type")){let t=e.outcrop;"both"==t&&(t="surface and subsurface"),w=C(r,{label:"Outcrop",value:t})}let N=null,[S,H]=(v=(h=e).min_thick??0,k=h.max_thick??h.min_thick??0,y="m",0==v&&0==k?["Unknown",null]:(v<.8&&k<1.2?(v*=100,k*=100,y="cm"):v>800&&k>1200&&(v/=1e3,k/=1e3,y="km"),v==k)?[R(v),y]:[T(v,k),y]);a.has("depth-range")&&null!=e.t_pos&&null!=e.b_pos&&e.min_thick==e.max_thick&&0!=e.min_thick&&(N=C(r,{unit:"m",label:e.t_pos<e.b_pos?"Depth":"Height",value:T(e.b_pos,e.t_pos),children:C(s,C(u,{value:S,unit:H}))})),N??(N=C(r,{label:"Thickness",value:S,unit:H}));let P=null;return"color"in e&&(P=C("div.color-swatch",{style:{backgroundColor:e.color}})),C("div.unit-details-content",[N,C(c,{label:"Lithology",lithologies:j,features:i,getItemHref:p,onClickItem:d}),C(L,{unit:e},[C(s,C(M,{value:e.b_age-e.t_age})),C(I,{unit:e,onClickItem:d})]),C(m,{environments:U,onClickItem:d,getItemHref:p}),C.if(null!=e.strat_name_id)(r,{label:"Stratigraphic name"},C("span",{className:"strat-name-id"+(d?" clickable":""),onClick:t=>d(t,{strat_name_id:e.strat_name_id})},e.strat_name_id)),w,C.if(a.has("adjacent-units"))([C(r,{label:"Above"},C(A,{units:e.units_above,selectUnit:t})),C(r,{label:"Below"},C(A,{units:e.units_below,selectUnit:t}))]),P,C(r,{label:"Source",inline:!0},C($,{refs:e.refs}))])}function $({refs:e}){let t=(0,x.useMacrostratData)("refs",e);return null==t||0===t.length?null:1==t.length?C(S,{data:t[0],tag:"span"}):C("ul.refs",t.map((e,t)=>C(S,{data:e,tag:"li",key:t})))}function S({data:e,tag:t="p"}){return C(t,{className:"citation"},[C("span.authors",e.author),", ",C("span.year",e.pub_year),", ",C("span.title",e.ref)])}function L({unit:e,children:t}){var n;let i,a,l,[o,s,u]=(i=(n=e).b_age,a=n.t_age,l="Ma",i<.8&&a<1.2?(i*=1e3,a*=1e3,l="ka"):i>800&&a>1200&&(i/=1e3,a/=1e3,l="Ga"),[i,a,l]);return C(r,{label:"Age",value:T(o,s),unit:u},t)}function H({age:e,maximumFractionDigits:t=2,minimumFractionDigits:n=0,className:i}){var a;let l,[o,r]=(l="Ma",(a=e)<.8?(l="ka",(a*=1e3)<5&&(l="yr",a*=1e3)):a>1e3&&(l="Ga",a/=1e3),[a,l]);return C(u,{value:o.toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:n}),unit:r,className:i})}function M({value:e,maximumFractionDigits:t=2,minimumFractionDigits:n=0}){let i="Myr";return e<.8?(i="kyr",(e*=1e3)<5&&(i="yr",e*=1e3)):e>1e3&&(i="Gyr",e/=1e3),C(u,{value:e.toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:n}),unit:i})}function A({units:e,selectUnit:t}){let n=e.filter(e=>0!=e);if(0===n.length)return C("span.no-units","None");let i="span";return null!=t&&(i="a"),C(d,{className:"unit-id-list"},n.map(e=>C(i,{className:"unit-id",onClick(){t?.(e.id)},key:e.id},e)))}function I({unit:e,onClickItem:t}){let n=e.b_int_id,i=e.t_int_id,a=e.b_prop??0,l=e.t_prop??1,o=(0,x.useMacrostratDefs)("intervals"),r={...o?.get(n)??{},id:n,name:e.b_int_name},s=null,u=o?.get(i)??{},c=C(O,{value:l});(n!==i||0!==a||1!==l)&&(s=C(O,{value:a})),n===i&&(0!==a||1!==l)&&(s=C("span.joint-proportion",[s,C("span.sep","to"),c]));let m=null!=t,d=e=>{t&&t(e,r)};return C("div.interval-proportions",[C(p,{className:m?"clickable":"",onClick:m?d:void 0,interval:r,prefix:s}),C.if(n!=i)("span.discourage-break",[C("span.sep","to"),C(p,{className:m?"clickable":"",onClick:m?d:void 0,interval:{...u,id:i,name:e.t_int_name},prefix:c})])])}let P=e=>null==e?null:e.toFixed(1);function O({value:e}){let t=null;return C("span.proportion",0==e?"base":1==e?"top":P(100*e)+"%")}function T(e,t,n=null){return null==e||null==t?null:e===t?e.toFixed(n):`${R(e,n)}\u{2013}${R(t,n)}`}function R(e,t=null){return null==t?e.toLocaleString():t>=0?e.toFixed(t):t<0?(e/Math.pow(10,-t)).toFixed(0)+"0".repeat(-t):void 0}export{U as UnitDetailsPanel,j as LegendPanelHeader,w as UnitDetailsFeature,M as Duration,H as AgeLabel};
2
- //# sourceMappingURL=column-views.9f796135.js.map
@@ -1 +0,0 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,O,6C,A,Q,M,mB,A,Q,Y,C,K,2B,A,Q,U,C,C,e,C,K,mB,A,Q,Y,C,C,W,C,K,O,A,Q,uB,C,C,a,C,C,iB,C,C,S,C,C,iB,C,C,oB,C,C,Y,C,C,e,C,K,6B,A,Q,M,Y,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICmIY,E,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,mB,I,G,E,E,oB,I,G,E,E,qB,I,G,E,E,W,I,G,E,E,W,I,G,I,E,E,S,E,E,S,E,E,SAxGZ,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAEhB,SAAS,EAAiB,CAAA,KAC/B,CAAI,CAAA,QACJ,CAAO,CAAA,UACP,CAAS,CAAA,SACT,EAAW,IAAI,IAAwB,C,iB,e,c,cAKtC,CAAA,CAAA,kBACD,CAAiB,CAAA,QACjB,CAAO,CAAA,WACP,CAAU,CAAA,YACV,CAAW,CAAA,YACX,CAAW,CAYZ,EACC,GAAM,CAAC,EAAU,EAAY,CAAG,AAAA,EAAS,CAAA,GAErC,EAAU,KAEZ,EADE,EACQ,EAAE,EAAU,CAAE,KAAM,EAAM,SAAU,CAAA,CAAM,GAE1C,EAAE,EAAoB,CAC9B,KAAA,EACA,SAAA,EACA,kBAAA,EACA,YAAA,CACF,GAGF,IAAI,EAAQ,AAAA,CAAA,EAAA,EAAA,mBAAkB,AAAlB,EAAoB,GAE5B,EAAgB,KAepB,OAdI,EAAS,GAAG,CAAA,gBACd,CAAA,EAAgB,EAAE,EAAQ,CACxB,KAAM,OACN,MAAO,CAAA,EACP,QAAS,CAAA,EACT,IAAK,mBACL,UAAW,AAAA,EAAW,mBAAoB,CAAE,QAAS,CAAY,GACjE,QAAQ,CAAG,EACT,EAAY,CAAC,GACb,EAAI,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","sources":["<anon>","packages/column-views/src/unit-details/panel.ts"],"sourcesContent":["import \"./column-views.aa50c532.js\";\nimport \"./column-views.a0aac838.js\";\nimport \"./column-views.2e4e357d.js\";\nimport $c0aFQ$macrostrathyper from \"@macrostrat/hyper\";\nimport {JSONView as $c0aFQ$JSONView} from \"@macrostrat/ui-components\";\nimport {Button as $c0aFQ$Button, ButtonGroup as $c0aFQ$ButtonGroup} from \"@blueprintjs/core\";\nimport {useState as $c0aFQ$useState, useMemo as $c0aFQ$useMemo} from \"react\";\nimport {LithologyTagFeature as $c0aFQ$LithologyTagFeature, DataField as $c0aFQ$DataField, Parenthetical as $c0aFQ$Parenthetical, Value as $c0aFQ$Value, LithologyList as $c0aFQ$LithologyList, EnvironmentsList as $c0aFQ$EnvironmentsList, ItemList as $c0aFQ$ItemList, IntervalTag as $c0aFQ$IntervalTag} from \"@macrostrat/data-components\";\nimport $c0aFQ$classnames from \"classnames\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $4a89f93cd5289383$exports = {};\n\n$parcel$export($4a89f93cd5289383$exports, \"UnitDetailsPanel\", () => $4a89f93cd5289383$export$fbd245232df17557);\n$parcel$export($4a89f93cd5289383$exports, \"LegendPanelHeader\", () => $4a89f93cd5289383$export$fc503c39cc5cff43);\n$parcel$export($4a89f93cd5289383$exports, \"UnitDetailsFeature\", () => $4a89f93cd5289383$export$ec297f6f9a6ccad0);\n$parcel$export($4a89f93cd5289383$exports, \"Duration\", () => $4a89f93cd5289383$export$3b11bc38611c5941);\n$parcel$export($4a89f93cd5289383$exports, \"AgeLabel\", () => $4a89f93cd5289383$export$37ebfd237811b1eb);\n\n\nvar $lMX1H = parcelRequire(\"lMX1H\");\n\n\n\n\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\n\nvar $jiUaC = parcelRequire(\"jiUaC\");\n\nconst $4a89f93cd5289383$var$h = (0, $c0aFQ$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($lMX1H))));\nfunction $4a89f93cd5289383$export$fbd245232df17557({ unit: unit, onClose: onClose, className: className, features: features = new Set([\n \"adjacent-units\",\n \"outcrop-type\",\n \"json-toggle\",\n \"depth-range\"\n]), lithologyFeatures: lithologyFeatures, actions: actions, selectUnit: selectUnit, columnUnits: columnUnits, onClickItem: onClickItem }) {\n const [showJSON, setShowJSON] = (0, $c0aFQ$useState)(false);\n let content = null;\n if (showJSON) content = $4a89f93cd5289383$var$h((0, $c0aFQ$JSONView), {\n data: unit,\n showRoot: false\n });\n else content = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitDetailsContent, {\n unit: unit,\n features: features,\n lithologyFeatures: lithologyFeatures,\n onClickItem: onClickItem\n });\n let title = (0, $jiUaC.defaultNameFunction)(unit);\n let hiddenActions = null;\n if (features.has(\"json-toggle\")) hiddenActions = $4a89f93cd5289383$var$h((0, $c0aFQ$Button), {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: (0, $c0aFQ$classnames)(\"json-view-toggle\", {\n enabled: setShowJSON\n }),\n onClick (evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n }\n });\n return $4a89f93cd5289383$var$h(\"div.unit-details-panel\", {\n className: className\n }, [\n $4a89f93cd5289383$var$h($4a89f93cd5289383$export$fc503c39cc5cff43, {\n onClose: onClose,\n title: title,\n id: unit.unit_id,\n actions: actions,\n hiddenActions: hiddenActions\n }),\n $4a89f93cd5289383$var$h(\"div.unit-details-content-holder\", content)\n ]);\n}\nfunction $4a89f93cd5289383$export$fc503c39cc5cff43({ title: title, id: id, onClose: onClose, actions: actions = null, hiddenActions: hiddenActions }) {\n return $4a89f93cd5289383$var$h(\"header.legend-panel-header\", [\n $4a89f93cd5289383$var$h(\"div.title-container\", [\n $4a89f93cd5289383$var$h.if(title != null)(\"h3\", title),\n $4a89f93cd5289383$var$h.if(hiddenActions != null)(\"div.hidden-actions\", hiddenActions)\n ]),\n $4a89f93cd5289383$var$h(\"div.spacer\"),\n $4a89f93cd5289383$var$h.if(id != null)(\"code\", id),\n $4a89f93cd5289383$var$h.if(actions != null)((0, $c0aFQ$ButtonGroup), {\n minimal: true\n }, actions),\n $4a89f93cd5289383$var$h.if(onClose != null)((0, $c0aFQ$Button), {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick () {\n onClose();\n }\n })\n ]);\n}\nvar $4a89f93cd5289383$export$ec297f6f9a6ccad0 = /*#__PURE__*/ function(UnitDetailsFeature) {\n UnitDetailsFeature[\"AdjacentUnits\"] = \"adjacent-units\";\n UnitDetailsFeature[\"Color\"] = \"color\";\n UnitDetailsFeature[\"OutcropType\"] = \"outcrop-type\";\n UnitDetailsFeature[\"JSONToggle\"] = \"json-toggle\";\n UnitDetailsFeature[\"DepthRange\"] = \"depth-range\";\n return UnitDetailsFeature;\n}({});\nfunction $4a89f93cd5289383$var$UnitDetailsContent({ unit: unit, selectUnit: selectUnit, columnUnits: columnUnits, lithologyFeatures: lithologyFeatures = new Set([\n (0, $c0aFQ$LithologyTagFeature).Proportion,\n (0, $c0aFQ$LithologyTagFeature).Attributes\n]), features: features = new Set([\n \"adjacent-units\",\n \"outcrop-type\"\n]), onClickItem: onClickItem, getItemHref: getItemHref }) {\n const lithMap = (0, $lgTAP.useMacrostratDefs)(\"lithologies\");\n const envMap = (0, $lgTAP.useMacrostratDefs)(\"environments\");\n const environments = $4a89f93cd5289383$var$enhanceEnvironments(unit.environ, envMap);\n const lithologies = $4a89f93cd5289383$var$enhanceLithologies(unit.lith ?? [], lithMap);\n // Create a lookup table of units if provided\n const columnUnitsMap = (0, $c0aFQ$useMemo)(()=>{\n const map = new Map();\n for (const colUnit of columnUnits ?? [])map.set(colUnit.unit_id, colUnit);\n return map;\n }, [\n columnUnits\n ]);\n let outcropField = null;\n if (features.has(\"outcrop-type\")) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") outcrop = \"surface and subsurface\";\n outcropField = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Outcrop\",\n value: outcrop\n });\n }\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = $4a89f93cd5289383$var$getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (features.has(\"depth-range\") && unit.t_pos != null && unit.b_pos != null && unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n thicknessOrHeightRange = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n unit: u1,\n label: label,\n value: $4a89f93cd5289383$var$formatRange(unit.b_pos, unit.t_pos),\n children: $4a89f93cd5289383$var$h((0, $c0aFQ$Parenthetical), $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: thickness,\n unit: thicknessUnit\n }))\n });\n }\n thicknessOrHeightRange ?? (thicknessOrHeightRange = $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit\n }));\n /** We are trying to move away from passing the \"color\" parameter in the API */ let colorSwatch = null;\n if (\"color\" in unit) {\n const unit1 = unit;\n colorSwatch = $4a89f93cd5289383$var$h(\"div.color-swatch\", {\n style: {\n backgroundColor: unit1.color\n }\n });\n }\n return $4a89f93cd5289383$var$h(\"div.unit-details-content\", [\n thicknessOrHeightRange,\n $4a89f93cd5289383$var$h((0, $c0aFQ$LithologyList), {\n label: \"Lithology\",\n lithologies: lithologies,\n features: lithologyFeatures,\n getItemHref: getItemHref,\n onClickItem: onClickItem\n }),\n $4a89f93cd5289383$var$h($4a89f93cd5289383$var$AgeField, {\n unit: unit\n }, [\n $4a89f93cd5289383$var$h((0, $c0aFQ$Parenthetical), $4a89f93cd5289383$var$h($4a89f93cd5289383$export$3b11bc38611c5941, {\n value: unit.b_age - unit.t_age\n })),\n $4a89f93cd5289383$var$h($4a89f93cd5289383$var$IntervalProportions, {\n unit: unit,\n onClickItem: onClickItem\n })\n ]),\n $4a89f93cd5289383$var$h((0, $c0aFQ$EnvironmentsList), {\n environments: environments,\n onClickItem: onClickItem,\n getItemHref: getItemHref\n }),\n $4a89f93cd5289383$var$h.if(unit.strat_name_id != null)((0, $c0aFQ$DataField), {\n label: \"Stratigraphic name\"\n }, $4a89f93cd5289383$var$h(\"span\", {\n className: \"strat-name-id\" + (onClickItem ? \" clickable\" : \"\"),\n onClick: (e)=>onClickItem(e, {\n strat_name_id: unit.strat_name_id\n })\n }, unit.strat_name_id)),\n outcropField,\n $4a89f93cd5289383$var$h.if(features.has(\"adjacent-units\"))([\n $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Above\"\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitIDList, {\n units: unit.units_above,\n selectUnit: selectUnit\n })),\n $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Below\"\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$UnitIDList, {\n units: unit.units_below,\n selectUnit: selectUnit\n }))\n ]),\n colorSwatch,\n $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Source\",\n inline: true\n }, $4a89f93cd5289383$var$h($4a89f93cd5289383$var$BibInfo, {\n refs: unit.refs\n }))\n ]);\n}\nfunction $4a89f93cd5289383$var$getThickness(unit) {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n if (minThickness == 0 && maxThickness == 0) return [\n \"Unknown\",\n null\n ];\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n if (minThickness == maxThickness) return [\n $4a89f93cd5289383$var$formatSignificance(minThickness),\n _unit\n ];\n return [\n $4a89f93cd5289383$var$formatRange(minThickness, maxThickness),\n _unit\n ];\n}\nfunction $4a89f93cd5289383$var$ThicknessField({ unit: unit, label: label = \"Thickness\" }) {\n const [value, thicknessUnit] = $4a89f93cd5289383$var$getThickness(unit);\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: label,\n value: value,\n unit: thicknessUnit\n });\n}\nfunction $4a89f93cd5289383$var$BibInfo({ refs: refs }) {\n const refData = (0, $lgTAP.useMacrostratData)(\"refs\", refs);\n if (refData == null || refData.length === 0) return null;\n if (refData.length == 1) return $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Citation, {\n data: refData[0],\n tag: \"span\"\n });\n return $4a89f93cd5289383$var$h(\"ul.refs\", refData.map((data, i)=>$4a89f93cd5289383$var$h($4a89f93cd5289383$var$Citation, {\n data: data,\n tag: \"li\",\n key: i\n })));\n}\nfunction $4a89f93cd5289383$var$Citation({ data: data, tag: tag = \"p\" }) {\n return $4a89f93cd5289383$var$h(tag, {\n className: \"citation\"\n }, [\n $4a89f93cd5289383$var$h(\"span.authors\", data.author),\n \", \",\n $4a89f93cd5289383$var$h(\"span.year\", data.pub_year),\n \", \",\n $4a89f93cd5289383$var$h(\"span.title\", data.ref)\n ]);\n}\nfunction $4a89f93cd5289383$var$AgeField({ unit: unit, children: children }) {\n const [b_age, t_age, _unit] = $4a89f93cd5289383$var$getAgeRange(unit);\n return $4a89f93cd5289383$var$h((0, $c0aFQ$DataField), {\n label: \"Age\",\n value: $4a89f93cd5289383$var$formatRange(b_age, t_age),\n unit: _unit\n }, children);\n}\nfunction $4a89f93cd5289383$var$getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n return [\n b_age,\n t_age,\n unit\n ];\n}\nfunction $4a89f93cd5289383$var$getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */ let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n return [\n value,\n unit\n ];\n}\nfunction $4a89f93cd5289383$export$37ebfd237811b1eb({ age: age, maximumFractionDigits: maximumFractionDigits = 2, minimumFractionDigits: minimumFractionDigits = 0, className: className }) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */ const [value, unit] = $4a89f93cd5289383$var$getAge(age);\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits: maximumFractionDigits,\n minimumFractionDigits: minimumFractionDigits\n });\n return $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: _value,\n unit: unit,\n className: className\n });\n}\nfunction $4a89f93cd5289383$export$3b11bc38611c5941({ value: value, maximumFractionDigits: maximumFractionDigits = 2, minimumFractionDigits: minimumFractionDigits = 0 }) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits: maximumFractionDigits,\n minimumFractionDigits: minimumFractionDigits\n });\n return $4a89f93cd5289383$var$h((0, $c0aFQ$Value), {\n value: _value,\n unit: unit\n });\n}\nfunction $4a89f93cd5289383$var$enhanceEnvironments(environments, envMap) {\n return environments.map((env)=>{\n return {\n ...envMap?.get(env.environ_id) ?? {},\n ...env\n };\n });\n}\nfunction $4a89f93cd5289383$var$enhanceLithologies(lithologies, lithMap) {\n return lithologies.map((lith)=>{\n return {\n ...lithMap?.get(lith.lith_id) ?? {},\n ...lith\n };\n });\n}\nfunction $4a89f93cd5289383$var$UnitIDList({ units: units, selectUnit: selectUnit }) {\n const u1 = units.filter((d)=>d != 0);\n if (u1.length === 0) return $4a89f93cd5289383$var$h(\"span.no-units\", \"None\");\n let tag = \"span\";\n if (selectUnit != null) tag = \"a\";\n return $4a89f93cd5289383$var$h((0, $c0aFQ$ItemList), {\n className: \"unit-id-list\"\n }, u1.map((unit)=>{\n return $4a89f93cd5289383$var$h(tag, {\n className: \"unit-id\",\n onClick () {\n selectUnit?.(unit.id);\n },\n key: unit.id\n }, unit);\n }));\n}\nfunction $4a89f93cd5289383$var$IntervalProportions({ unit: unit, onClickItem: onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n const intervalMap = (0, $lgTAP.useMacrostratDefs)(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n const interval0 = {\n ...int0,\n id: i0,\n name: unit.b_int_name\n };\n let p0 = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1 = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Proportion, {\n value: t_prop\n });\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) // We have a single interval with undefined proportions\n p0 = $4a89f93cd5289383$var$h($4a89f93cd5289383$var$Proportion, {\n value: b_prop\n });\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) p0 = $4a89f93cd5289383$var$h(\"span.joint-proportion\", [\n p0,\n $4a89f93cd5289383$var$h(\"span.sep\", \"to\"),\n p1\n ]);\n const clickable = onClickItem != null;\n const handleClick = (event)=>{\n if (onClickItem) onClickItem(event, interval0);\n };\n return $4a89f93cd5289383$var$h(\"div.interval-proportions\", [\n $4a89f93cd5289383$var$h((0, $c0aFQ$IntervalTag), {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0\n }),\n $4a89f93cd5289383$var$h.if(i0 != i1)(\"span.discourage-break\", [\n $4a89f93cd5289383$var$h(\"span.sep\", \"to\"),\n $4a89f93cd5289383$var$h((0, $c0aFQ$IntervalTag), {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name\n },\n prefix: p1\n })\n ])\n ]);\n}\nconst $4a89f93cd5289383$var$formatProportion = (d)=>{\n if (d == null) return null;\n return d.toFixed(1);\n};\nfunction $4a89f93cd5289383$var$Proportion({ value: value }) {\n let content = null;\n if (value == 0) content = \"base\";\n else if (value == 1) content = \"top\";\n else content = $4a89f93cd5289383$var$formatProportion(value * 100) + \"%\";\n return $4a89f93cd5289383$var$h(\"span.proportion\", content);\n}\nfunction $4a89f93cd5289383$var$formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) return min.toFixed(precision);\n return `${$4a89f93cd5289383$var$formatSignificance(min, precision)}\\u{2013}${$4a89f93cd5289383$var$formatSignificance(max, precision)}`;\n}\nfunction $4a89f93cd5289383$var$formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n if (precision == null) return value.toLocaleString();\n if (precision >= 0) return value.toFixed(precision);\n if (precision < 0) return (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision);\n}\n\n\nexport {$4a89f93cd5289383$export$fbd245232df17557 as UnitDetailsPanel, $4a89f93cd5289383$export$fc503c39cc5cff43 as LegendPanelHeader, $4a89f93cd5289383$export$ec297f6f9a6ccad0 as UnitDetailsFeature, $4a89f93cd5289383$export$3b11bc38611c5941 as Duration, $4a89f93cd5289383$export$37ebfd237811b1eb as AgeLabel};\n//# sourceMappingURL=column-views.9f796135.js.map\n","import hyper from \"@macrostrat/hyper\";\nimport styles from \"./panel.module.sass\";\nimport { JSONView } from \"@macrostrat/ui-components\";\nimport { Button, ButtonGroup } from \"@blueprintjs/core\";\nimport { ReactNode, useMemo, useState } from \"react\";\nimport {\n DataField,\n EnvironmentsList,\n IntervalShort,\n IntervalTag,\n ItemList,\n LithologyList,\n LithologyTagFeature,\n Parenthetical,\n Value,\n} from \"@macrostrat/data-components\";\nimport { useMacrostratData, useMacrostratDefs } from \"../data-provider\";\nimport {\n Environment,\n UnitLong,\n UnitLongFull,\n Lithology,\n Interval,\n} from \"@macrostrat/api-types\";\nimport { defaultNameFunction } from \"../units/names\";\nimport classNames from \"classnames\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPanel({\n unit,\n onClose,\n className,\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n UnitDetailsFeature.JSONToggle,\n UnitDetailsFeature.DepthRange,\n ]),\n lithologyFeatures,\n actions,\n selectUnit,\n columnUnits,\n onClickItem,\n}: {\n unit: any;\n onClose?: any;\n showLithologyProportions?: boolean;\n className?: string;\n actions?: ReactNode;\n features?: Set<UnitDetailsFeature>;\n lithologyFeatures?: Set<LithologyTagFeature>;\n columnUnits?: UnitLong[];\n selectUnit?: (unitID: number) => void;\n onClickItem?: (item: any) => void;\n}) {\n const [showJSON, setShowJSON] = useState(false);\n\n let content = null;\n if (showJSON) {\n content = h(JSONView, { data: unit, showRoot: false });\n } else {\n content = h(UnitDetailsContent, {\n unit,\n features,\n lithologyFeatures,\n onClickItem,\n });\n }\n\n let title = defaultNameFunction(unit);\n\n let hiddenActions = null;\n if (features.has(UnitDetailsFeature.JSONToggle)) {\n hiddenActions = h(Button, {\n icon: \"code\",\n small: true,\n minimal: true,\n key: \"json-view-toggle\",\n className: classNames(\"json-view-toggle\", { enabled: setShowJSON }),\n onClick(evt) {\n setShowJSON(!showJSON);\n evt.stopPropagation();\n },\n });\n }\n\n return h(\"div.unit-details-panel\", { className }, [\n h(LegendPanelHeader, {\n onClose,\n title,\n id: unit.unit_id,\n actions,\n hiddenActions,\n }),\n h(\"div.unit-details-content-holder\", content),\n ]);\n}\n\nexport function LegendPanelHeader({\n title,\n id,\n onClose,\n actions = null,\n hiddenActions,\n}: {\n title?: string | null;\n id?: number | null;\n onClose?: () => void;\n actions?: ReactNode | null;\n hiddenActions?: ReactNode | null;\n}) {\n return h(\"header.legend-panel-header\", [\n h(\"div.title-container\", [\n h.if(title != null)(\"h3\", title),\n h.if(hiddenActions != null)(\"div.hidden-actions\", hiddenActions),\n ]),\n h(\"div.spacer\"),\n h.if(id != null)(\"code\", id),\n h.if(actions != null)(ButtonGroup, { minimal: true }, actions),\n h.if(onClose != null)(Button, {\n icon: \"cross\",\n minimal: true,\n small: true,\n onClick() {\n onClose();\n },\n }),\n ]);\n}\n\nexport enum UnitDetailsFeature {\n AdjacentUnits = \"adjacent-units\",\n Color = \"color\",\n OutcropType = \"outcrop-type\",\n JSONToggle = \"json-toggle\",\n DepthRange = \"depth-range\",\n}\n\nfunction UnitDetailsContent({\n unit,\n selectUnit,\n columnUnits,\n lithologyFeatures = new Set([\n LithologyTagFeature.Proportion,\n LithologyTagFeature.Attributes,\n ]),\n features = new Set<UnitDetailsFeature>([\n UnitDetailsFeature.AdjacentUnits,\n UnitDetailsFeature.OutcropType,\n ]),\n onClickItem,\n getItemHref,\n}: {\n unit: UnitLong;\n selectUnit?: (unitID: number) => void;\n columnUnits?: UnitLong[];\n lithologyFeatures?: Set<LithologyTagFeature>;\n features?: Set<UnitDetailsFeature>;\n onClickItem?: (\n event: MouseEvent,\n item: Lithology | Environment | UnitLong | Interval,\n ) => void;\n getItemHref?: (item: Lithology | Environment | UnitLong) => string | null;\n}) {\n const lithMap = useMacrostratDefs(\"lithologies\");\n const envMap = useMacrostratDefs(\"environments\");\n\n const environments = enhanceEnvironments(unit.environ, envMap);\n const lithologies = enhanceLithologies(unit.lith ?? [], lithMap);\n\n // Create a lookup table of units if provided\n const columnUnitsMap = useMemo(() => {\n const map = new Map<number, UnitLong>();\n for (const colUnit of columnUnits ?? []) {\n map.set(colUnit.unit_id, colUnit);\n }\n return map;\n }, [columnUnits]);\n\n let outcropField = null;\n if (features.has(UnitDetailsFeature.OutcropType)) {\n // Determine outcrop type\n let outcrop = unit.outcrop;\n if (outcrop == \"both\") {\n outcrop = \"surface and subsurface\";\n }\n outcropField = h(DataField, {\n label: \"Outcrop\",\n value: outcrop,\n });\n }\n\n let thicknessOrHeightRange = null;\n const [thickness, thicknessUnit] = getThickness(unit);\n // Proxy for actual heights in t_pos and b_pos\n if (\n features.has(UnitDetailsFeature.DepthRange) &&\n unit.t_pos != null &&\n unit.b_pos != null &&\n unit.min_thick == unit.max_thick && // We have an actual fixed height\n unit.min_thick != 0 // Not a zero thickness\n ) {\n const label = unit.t_pos < unit.b_pos ? \"Depth\" : \"Height\";\n const u1 = \"m\";\n\n thicknessOrHeightRange = h(DataField, {\n unit: u1,\n label,\n value: formatRange(unit.b_pos, unit.t_pos),\n children: h(\n Parenthetical,\n h(Value, { value: thickness, unit: thicknessUnit }),\n ),\n });\n }\n thicknessOrHeightRange ??= h(DataField, {\n label: \"Thickness\",\n value: thickness,\n unit: thicknessUnit,\n });\n\n /** We are trying to move away from passing the \"color\" parameter in the API */\n let colorSwatch: ReactNode = null;\n if (\"color\" in unit) {\n const unit1 = unit as UnitLongFull;\n colorSwatch = h(\"div.color-swatch\", {\n style: { backgroundColor: unit1.color },\n });\n }\n\n return h(\"div.unit-details-content\", [\n thicknessOrHeightRange,\n h(LithologyList, {\n label: \"Lithology\",\n lithologies,\n features: lithologyFeatures,\n getItemHref,\n onClickItem,\n }),\n h(AgeField, { unit }, [\n h(Parenthetical, h(Duration, { value: unit.b_age - unit.t_age })),\n h(IntervalProportions, {\n unit,\n onClickItem,\n }),\n ]),\n h(EnvironmentsList, {\n environments,\n onClickItem,\n getItemHref,\n }),\n h.if(unit.strat_name_id != null)(\n DataField,\n {\n label: \"Stratigraphic name\",\n },\n h(\n \"span\",\n {\n className: \"strat-name-id\" + (onClickItem ? \" clickable\" : \"\"),\n onClick: (e) => onClickItem(e, { strat_name_id: unit.strat_name_id }),\n },\n unit.strat_name_id,\n ),\n ),\n outcropField,\n h.if(features.has(UnitDetailsFeature.AdjacentUnits))([\n h(\n DataField,\n { label: \"Above\" },\n h(UnitIDList, { units: unit.units_above, selectUnit }),\n ),\n h(\n DataField,\n { label: \"Below\" },\n h(UnitIDList, { units: unit.units_below, selectUnit }),\n ),\n ]),\n colorSwatch,\n h(\n DataField,\n { label: \"Source\", inline: true },\n h(BibInfo, { refs: unit.refs }),\n ),\n ]);\n}\n\nfunction getThickness(unit): [string, string] {\n let minThickness = unit.min_thick ?? 0;\n let maxThickness = unit.max_thick ?? unit.min_thick ?? 0;\n let _unit = \"m\";\n\n if (minThickness == 0 && maxThickness == 0) {\n return [\"Unknown\", null];\n }\n\n if (minThickness < 0.8 && maxThickness < 1.2) {\n // Convert to cm\n minThickness = minThickness * 100;\n maxThickness = maxThickness * 100;\n _unit = \"cm\";\n } else if (minThickness > 800 && maxThickness > 1200) {\n // Convert to km\n minThickness = minThickness / 1000;\n maxThickness = maxThickness / 1000;\n _unit = \"km\";\n }\n\n if (minThickness == maxThickness) {\n return [formatSignificance(minThickness), _unit];\n }\n\n return [formatRange(minThickness, maxThickness), _unit];\n}\n\nfunction ThicknessField({ unit, label = \"Thickness\" }) {\n const [value, thicknessUnit] = getThickness(unit);\n return h(DataField, {\n label,\n value,\n unit: thicknessUnit,\n });\n}\n\nfunction BibInfo({ refs }) {\n const refData = useMacrostratData(\"refs\", refs);\n\n if (refData == null || refData.length === 0) {\n return null;\n }\n\n if (refData.length == 1) {\n return h(Citation, { data: refData[0], tag: \"span\" });\n }\n\n return h(\n \"ul.refs\",\n refData.map((data, i) => h(Citation, { data, tag: \"li\", key: i })),\n );\n}\n\nfunction Citation({ data, tag = \"p\" }) {\n return h(tag, { className: \"citation\" }, [\n h(\"span.authors\", data.author),\n \", \",\n h(\"span.year\", data.pub_year),\n \", \",\n h(\"span.title\", data.ref),\n ]);\n}\n\nfunction AgeField({ unit, children }) {\n const [b_age, t_age, _unit] = getAgeRange(unit);\n\n return h(\n DataField,\n {\n label: \"Age\",\n value: formatRange(b_age, t_age),\n unit: _unit,\n },\n children,\n );\n}\n\nfunction getAgeRange(_unit) {\n let b_age = _unit.b_age;\n let t_age = _unit.t_age;\n let unit = \"Ma\";\n\n if (b_age < 0.8 && t_age < 1.2) {\n b_age *= 1000;\n t_age *= 1000;\n unit = \"ka\";\n } else if (b_age > 800 && t_age > 1200) {\n b_age /= 1000;\n t_age /= 1000;\n unit = \"Ga\";\n }\n\n return [b_age, t_age, unit];\n}\n\nfunction getAge(value) {\n /** Get the age value in Ma, ka, or Ga as appropriate */\n let unit = \"Ma\";\n if (value < 0.8) {\n unit = \"ka\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Ga\";\n value /= 1000;\n }\n\n return [value, unit];\n}\n\nexport function AgeLabel({\n age,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n className,\n}: {\n age: number;\n className?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n}) {\n /** Component to display a single age value with unit conversion from\n * Ma to ka or Ga as appropriate.\n */\n const [value, unit] = getAge(age);\n\n const _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit, className });\n}\n\nexport function Duration({\n value,\n maximumFractionDigits = 2,\n minimumFractionDigits = 0,\n}) {\n let unit = \"Myr\";\n if (value < 0.8) {\n unit = \"kyr\";\n value *= 1000;\n if (value < 5) {\n unit = \"yr\";\n value *= 1000;\n }\n } else if (value > 1000) {\n unit = \"Gyr\";\n value /= 1000;\n }\n\n let _value = value.toLocaleString(\"en-US\", {\n maximumFractionDigits,\n minimumFractionDigits,\n });\n\n return h(Value, { value: _value, unit });\n}\n\nfunction enhanceEnvironments(\n environments: Partial<Environment>[],\n envMap: Map<number, Environment>,\n) {\n return environments.map((env) => {\n return {\n ...(envMap?.get(env.environ_id) ?? {}),\n ...env,\n };\n });\n}\n\nfunction enhanceLithologies(\n lithologies: Partial<UnitLong[\"lith\"]>,\n lithMap: Map<number, any>,\n) {\n return lithologies.map((lith) => {\n return {\n ...(lithMap?.get(lith.lith_id) ?? {}), // get lithology details\n ...lith, // override with the unit's specific lithology data\n };\n });\n}\n\nfunction UnitIDList({ units, selectUnit }) {\n const u1 = units.filter((d) => d != 0);\n\n if (u1.length === 0) {\n return h(\"span.no-units\", \"None\");\n }\n\n let tag = \"span\";\n if (selectUnit != null) {\n tag = \"a\";\n }\n\n return h(\n ItemList,\n { className: \"unit-id-list\" },\n u1.map((unit) => {\n return h(\n tag,\n\n {\n className: \"unit-id\",\n onClick() {\n selectUnit?.(unit.id);\n },\n key: unit.id,\n },\n unit,\n );\n }),\n );\n}\n\nfunction IntervalProportions({ unit, onClickItem }) {\n const i0 = unit.b_int_id;\n const i1 = unit.t_int_id;\n let b_prop = unit.b_prop ?? 0;\n let t_prop = unit.t_prop ?? 1;\n\n const intervalMap = useMacrostratDefs(\"intervals\");\n const int0 = intervalMap?.get(i0) ?? {};\n\n const interval0: IntervalShort = {\n ...int0,\n id: i0,\n name: unit.b_int_name,\n };\n\n let p0: ReactNode = null;\n const int1 = intervalMap?.get(i1) ?? {};\n const p1: ReactNode = h(Proportion, { value: t_prop });\n\n if (i0 !== i1 || b_prop !== 0 || t_prop !== 1) {\n // We have a single interval with undefined proportions\n p0 = h(Proportion, { value: b_prop });\n }\n\n if (i0 === i1 && (b_prop !== 0 || t_prop !== 1)) {\n p0 = h(\"span.joint-proportion\", [p0, h(\"span.sep\", \"to\"), p1]);\n }\n\n const clickable = onClickItem != null;\n\n const handleClick = (event: MouseEvent) => {\n if (onClickItem) {\n onClickItem(event, interval0);\n }\n };\n\n return h(\"div.interval-proportions\", [\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: interval0,\n prefix: p0,\n }),\n h.if(i0 != i1)(\"span.discourage-break\", [\n h(\"span.sep\", \"to\"),\n h(IntervalTag, {\n className: clickable ? \"clickable\" : \"\",\n onClick: clickable ? handleClick : undefined,\n interval: {\n ...int1,\n id: i1,\n name: unit.t_int_name,\n },\n prefix: p1,\n }),\n ]),\n ]);\n}\n\nconst formatProportion = (d) => {\n if (d == null) return null;\n return d.toFixed(1);\n};\n\nfunction Proportion({ value }) {\n let content = null;\n if (value == 0) {\n content = \"base\";\n } else if (value == 1) {\n content = \"top\";\n } else {\n content = formatProportion(value * 100) + \"%\";\n }\n\n return h(\"span.proportion\", content);\n}\n\nfunction formatRange(min, max, precision = null) {\n if (min == null || max == null) return null;\n if (min === max) {\n return min.toFixed(precision);\n }\n\n return `${formatSignificance(min, precision)}–${formatSignificance(\n max,\n precision,\n )}`;\n}\n\nfunction formatSignificance(value, precision = null) {\n // Format to preserve a reasonable number of significant figures\n // this could be done with an easier algorithm, probably:\n\n if (precision == null) {\n return value.toLocaleString();\n }\n if (precision >= 0) {\n return value.toFixed(precision);\n }\n if (precision < 0) {\n return (\n (value / Math.pow(10, -precision)).toFixed(0) + \"0\".repeat(-precision)\n );\n }\n}\n"],"names":["$c0aFQ$macrostrathyper","JSONView","$c0aFQ$JSONView","Button","$c0aFQ$Button","ButtonGroup","$c0aFQ$ButtonGroup","useState","$c0aFQ$useState","useMemo","$c0aFQ$useMemo","LithologyTagFeature","$c0aFQ$LithologyTagFeature","DataField","$c0aFQ$DataField","Parenthetical","$c0aFQ$Parenthetical","Value","$c0aFQ$Value","LithologyList","$c0aFQ$LithologyList","EnvironmentsList","$c0aFQ$EnvironmentsList","ItemList","$c0aFQ$ItemList","IntervalTag","$c0aFQ$IntervalTag","$c0aFQ$classnames","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","UnitDetailsFeature","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$4a89f93cd5289383$exports","$4a89f93cd5289383$export$fbd245232df17557","$4a89f93cd5289383$export$fc503c39cc5cff43","$4a89f93cd5289383$export$ec297f6f9a6ccad0","$4a89f93cd5289383$export$3b11bc38611c5941","$4a89f93cd5289383$export$37ebfd237811b1eb","$lMX1H","$lgTAP","$jiUaC","$4a89f93cd5289383$var$h","styled","a","__esModule","default","unit","onClose","className","features","Set","lithologyFeatures","actions","selectUnit","columnUnits","onClickItem","showJSON","setShowJSON","content","data","showRoot","$4a89f93cd5289383$var$UnitDetailsContent","title","defaultNameFunction","hiddenActions","has","icon","small","minimal","key","enabled","onClick","evt","stopPropagation","unit_id","if","Proportion","Attributes","getItemHref","environments","envMap","lithologies","lithMap","minThickness","maxThickness","_unit","useMacrostratDefs","environ","map","env","environ_id","lith","lith_id","Map","colUnit","outcropField","outcrop","label","value","thicknessOrHeightRange","thickness","thicknessUnit","min_thick","max_thick","$4a89f93cd5289383$var$formatSignificance","$4a89f93cd5289383$var$formatRange","t_pos","b_pos","children","colorSwatch","style","backgroundColor","unit1","color","$4a89f93cd5289383$var$AgeField","b_age","t_age","$4a89f93cd5289383$var$IntervalProportions","strat_name_id","$4a89f93cd5289383$var$UnitIDList","units","units_above","units_below","inline","$4a89f93cd5289383$var$BibInfo","refs","refData","useMacrostratData","length","$4a89f93cd5289383$var$Citation","tag","i","author","pub_year","ref","age","maximumFractionDigits","minimumFractionDigits","toLocaleString","u1","filter","d","i0","b_int_id","i1","t_int_id","b_prop","t_prop","intervalMap","interval0","name","b_int_name","p0","int1","p1","$4a89f93cd5289383$var$Proportion","clickable","handleClick","event","undefined","interval","prefix","t_int_name","$4a89f93cd5289383$var$formatProportion","toFixed","min","max","precision","Math","pow","repeat","UnitDetailsPanel","LegendPanelHeader","Duration","AgeLabel"],"version":3,"file":"column-views.9f796135.js.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- import"./column-views.a8ffe072.js";import"./column-views.78d3f3c5.js";import e from"cross-fetch";import{useContext as t,useEffect as r,useMemo as n,useState as o,createContext as s}from"react";import a from"@macrostrat/hyper";import{create as l,useStore as i}from"zustand";import{APIProvider as u}from"@macrostrat/ui-components";import{ColumnProvider as c}from"@macrostrat/column-components";function f(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var m=globalThis,p={},d={},v=m.parcelRequirea149;null==v&&((v=function(e){if(e in p)return p[e].exports;if(e in d){var t=d[e];delete d[e];var r={id:e,exports:{}};return p[e]=r,t.call(r.exports,r,r.exports),r.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,t){d[e]=t},m.parcelRequirea149=v),v.register;var h={};f(h,"useMacrostratStore",()=>M),f(h,"useMacrostratDefs",()=>w),f(h,"useMacrostratColumns",()=>x),f(h,"useMacrostratData",()=>C),f(h,"MacrostratDataProvider",()=>L),f(h,"MacrostratAPIProvider",()=>D),f(h,"MacrostratColumnProvider",()=>y),f(h,"LithologiesProvider",()=>E),f(h,"useLithologies",()=>_),f(h,"useEnvironments",()=>A);var g=v("Piirt"),b=v("wtIgl");function $(t="https://macrostrat.org/api/v2"){return l((r,n)=>{var o,s,a,l,i,u,c,f,m,p;return{baseURL:t,inFlightRequests:new Set,async fetch(r,o){let s=t+r,{inFlightRequests:a}=n();if(a.has(s))return null;a.add(s);let l=await e(s,o);return a.delete(s),l},...(o=r,s=n,{lithologies:null,async getLithologies(e){let{lithologies:t,fetch:r}=s(),n=t;if(null==n){let e=await (0,g.fetchLithologies)(r);if(null==e)return;o({lithologies:n=new Map(e.map(e=>[e.lith_id,e]))})}return null==e?n.values():e.map(e=>n.get(e))}}),...(a=r,l=n,{intervals:null,async getIntervals(e,t){var r,n;let{intervals:o,fetch:s}=l(),i=o;if(null==o||(r=o,n=t,!(null!=r&&(null==n||Array.from(r.values()).some(e=>e.timescale_id==n))))){let e=await (0,g.fetchIntervals)(t,s);if(null==e)return[];let r=o??new Map;for(let t of e)r.set(t.int_id,t);a({intervals:i=r})}return null==e&&null==t?Array.from(i.values()):null!=t?Array.from(i.values()).filter(e=>e.timescale_id==t):e.map(e=>o.get(e))}}),...(i=r,u=n,{environments:null,async getEnvironments(e){let{environments:t,fetch:r}=u(),n=t;if(null==n){let e=await (0,g.fetchEnvironments)(r);if(null==e)return[];i({environments:n=new Map(e.map(e=>[e.environ_id,e]))})}return null==e?n.values():e.map(e=>n.get(e))}}),...(c=r,f=n,{columnFootprints:new Map,async getColumns(e,t){let{columnFootprints:r,baseURL:n,fetch:o}=f(),s=e??-1,a=t;null==e&&(a=!1);let l=r.get(s);if(null==l||l.inProcess!=a){let n=await (0,g.fetchAllColumns)({projectID:e,statusCode:null,fetch:o});if(null==n)return;if(a){let t=await (0,g.fetchAllColumns)({projectID:e,statusCode:"in process",fetch:o});if(null==t)return;n=n.concat(t)}l={project_id:e,inProcess:t,columns:n};let i=new Map(r);i.set(s,l),c({columnFootprints:i})}return l.columns}}),...(m=r,p=n,{refs:new Map,async getRefs(e){let{refs:t,fetch:r}=p(),n=e.filter(e=>!t.has(e));if(0==n.length)return e.map(e=>t.get(e));let o=await (0,g.fetchRefs)(n,r);if(null==o)return[];for(let e of o)t.set(e.ref_id,e);return m({refs:t}),e.map(e=>t.get(e))}})}})}function M(e){let r=t(R);if(null==r)throw Error("Missing MacrostratDataProvider");return"api"===e?r:i(r,e)}let P={lithologies:e=>e.getLithologies,intervals:e=>e.getIntervals,columns:e=>e.getColumns,environments:e=>e.getEnvironments,refs:e=>e.getRefs};function w(e){if("columns"==e)throw Error("Columns are not provided as a map");let t=M(P[e]);return r(()=>{t()},[]),M(t=>t[e])}function x(e,t){let o=M(e=>e.getColumns),s=M(e=>e.columnFootprints),a=s?.get(e??-1);return r(()=>{(null==a||t&&!a.inProcess)&&o(e,t)},[a,t,o]),n(()=>{if(null==a)return null;let e=a.columns;return!t&&a.inProcess&&(e.features=e.features?.filter(e=>"in process"!=e.properties.status)),e},[a,t])}function C(e,...t){let n=M(P[e]),[s,a]=o(null);return r(()=>{n(...t).then(a)},[n,...t]),s}let R=s($());function L(e){let{baseURL:t="https://macrostrat.org/api/v2",children:r}=e,[n]=o(()=>$(t));return a(D,{baseURL:t},a(R.Provider,{value:n},r))}function D({children:e,useDev:t=!1,baseURL:r}){return r??(r=t?"https://dev.macrostrat.org/api/v2":"https://macrostrat.org/api/v2"),a(u,{baseURL:r,unwrapResponse:e=>e.success.data},e)}function y(e){let{axisType:t}=(0,b.useMacrostratColumnData)(),{units:r,domain:n,pixelScale:o,children:s}=e;return a(c,{axisType:t,divisions:r,range:n,pixelsPerMeter:o},s)}function E({children:e}){return r(()=>{console.warn("LithologiesProvider is deprecated. Replace with MacrostratDataProvider")},[]),e}function _(){let e=M(e=>e.getLithologies),t=M(e=>e.lithologies);return r(()=>{null==t&&e()},[t,e]),t}function A(){let e=M(e=>e.getEnvironments),t=M(e=>e.environments);return r(()=>{null==t&&e()},[t,e]),t}export{M as useMacrostratStore,w as useMacrostratDefs,x as useMacrostratColumns,C as useMacrostratData,L as MacrostratDataProvider,D as MacrostratAPIProvider,y as MacrostratColumnProvider,E as LithologiesProvider,_ as useLithologies,A as useEnvironments};
2
- //# sourceMappingURL=column-views.a0aac838.js.map
@@ -1 +0,0 @@
1
- {"mappings":"A,M,6C,A,O,6C,A,Q,M,a,A,Q,c,C,C,a,C,C,W,C,C,Y,C,C,iB,C,K,O,A,Q,M,mB,A,Q,U,C,C,Y,C,K,S,A,Q,e,C,K,2B,A,Q,kB,C,K,+B,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,C,E,E,E,qB,I,G,E,E,oB,I,G,E,E,uB,I,G,E,E,oB,I,G,E,E,yB,I,G,E,E,wB,I,G,E,E,2B,I,G,E,E,sB,I,G,E,E,iB,I,G,E,E,kB,I,G,I,E,E,S,E,E,SC2DA,SAAS,EACP,EAAkB,+BAA+B,EAEjD,OAAO,AAAA,EAAwB,CAAC,EAAK,SAoGP,EAAK,EAsCP,EAAK,EAnBF,EAAK,EAxEV,EAAK,EApBR,EAAK,QA1BnB,CACL,QAAA,EACA,iBAAkB,IAAI,IACtB,MAAM,MAAM,CAAW,CAAE,CAAqB,EAC5C,IAAM,EAAO,EAAU,EAEjB,CAAA,iBAAE,CAAgB,CAAE,CAAG,IAC7B,GAAI,EAAiB,GAAG,CAAC,GACvB,OAAO,KAET,EAAiB,GAAG,CAAC,GAErB,IAAM,EAAM,MAAM,AAAA,EAAU,EAAM,GAGlC,OAFA,EAAiB,MAAM,CAAC,GAEjB,CACT,MAmF0B,EAlFA,EAkFK,EAlFA,EAmF5B,CACL,YAAa,KACb,MAAM,eAAe,CAAoB,EACvC,GAAM,CAAA,YAAE,CAAW,CAAA,MAAE,CAAK,CAAE,CAAG,IAC3B,EAAU,EACd,GAAI,AAAW,MAAX,EAAiB,CACnB,IAAM,EAAO,MAAM,AAAA,CAAA,EAAA,EAAA,gBAAe,AAAf,EAAiB,GACpC,GAAI,AAAQ,MAAR,EAAc,OAElB,EAAI,CAAE,YADN,EAAU,IAAI,IAAI,EAAK,GAAG,CAAC,AAAC,GAAM,CAAC,EAAE,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","sources":["<anon>","packages/column-views/src/data-provider/base.ts"],"sourcesContent":["import \"./column-views.a8ffe072.js\";\nimport \"./column-views.78d3f3c5.js\";\nimport $fUENy$crossfetch from \"cross-fetch\";\nimport {useContext as $fUENy$useContext, useEffect as $fUENy$useEffect, useMemo as $fUENy$useMemo, useState as $fUENy$useState, createContext as $fUENy$createContext} from \"react\";\nimport $fUENy$macrostrathyper from \"@macrostrat/hyper\";\nimport {create as $fUENy$create, useStore as $fUENy$useStore} from \"zustand\";\nimport {APIProvider as $fUENy$APIProvider} from \"@macrostrat/ui-components\";\nimport {ColumnProvider as $fUENy$ColumnProvider} from \"@macrostrat/column-components\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\nvar $8750144f23b92eb9$exports = {};\n\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratStore\", () => $8750144f23b92eb9$export$fb98d5bae3a6800);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratDefs\", () => $8750144f23b92eb9$export$89dd4e5ae4a82373);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratColumns\", () => $8750144f23b92eb9$export$81eaae0b474404fd);\n$parcel$export($8750144f23b92eb9$exports, \"useMacrostratData\", () => $8750144f23b92eb9$export$b9c9fc603d74a555);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratDataProvider\", () => $8750144f23b92eb9$export$690613f93cdc5576);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratAPIProvider\", () => $8750144f23b92eb9$export$3098013bc6cc316d);\n$parcel$export($8750144f23b92eb9$exports, \"MacrostratColumnProvider\", () => $8750144f23b92eb9$export$9e42f9b6e0d67c7d);\n$parcel$export($8750144f23b92eb9$exports, \"LithologiesProvider\", () => $8750144f23b92eb9$export$8492a5cae82b6a70);\n$parcel$export($8750144f23b92eb9$exports, \"useLithologies\", () => $8750144f23b92eb9$export$4d18a90c945d129f);\n$parcel$export($8750144f23b92eb9$exports, \"useEnvironments\", () => $8750144f23b92eb9$export$c6b216bf4c71b61f);\n/** Data provider for information that needs to be loaded in bulk for frontend views */ \n\n\n\n\nvar $Piirt = parcelRequire(\"Piirt\");\n\n\n\nvar $wtIgl = parcelRequire(\"wtIgl\");\nfunction $8750144f23b92eb9$var$createMacrostratStore(baseURL = \"https://macrostrat.org/api/v2\") {\n return (0, $fUENy$create)((set, get)=>{\n return {\n baseURL: baseURL,\n inFlightRequests: new Set(),\n async fetch (url, options) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests: inFlightRequests } = get();\n if (inFlightRequests.has(url1)) return null; // Return null if already in flight\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await (0, $fUENy$crossfetch)(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...$8750144f23b92eb9$var$createLithologiesSlice(set, get),\n ...$8750144f23b92eb9$var$createIntervalsSlice(set, get),\n ...$8750144f23b92eb9$var$createEnvironmentsSlice(set, get),\n ...$8750144f23b92eb9$var$createColumnsSlice(set, get),\n ...$8750144f23b92eb9$var$createRefsSlice(set, get)\n };\n });\n}\nfunction $8750144f23b92eb9$var$createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs (ids) {\n const { refs: refs, fetch: fetch } = get();\n const missing = ids.filter((id)=>!refs.has(id));\n if (missing.length == 0) return ids.map((id)=>refs.get(id));\n const data = await (0, $Piirt.fetchRefs)(missing, fetch);\n if (data == null) return [];\n for (const d of data)refs.set(d.ref_id, d);\n set({\n refs: refs\n });\n return ids.map((id)=>refs.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns (projectID, inProcess) {\n const { columnFootprints: columnFootprints, baseURL: baseURL, fetch: fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n if (projectID == null) // If no project is specified, in process columns cannot be included\n _inProcess = false;\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode = inProcess ? \"in process\" : null;\n let columns = await (0, $Piirt.fetchAllColumns)({\n projectID: projectID,\n statusCode: null,\n fetch: fetch\n });\n if (columns == null) return;\n if (_inProcess) {\n const inProcessColumns = await (0, $Piirt.fetchAllColumns)({\n projectID: projectID,\n statusCode: \"in process\",\n fetch: fetch\n });\n if (inProcessColumns == null) return;\n // Combine active and in-process columns\n columns = columns.concat(inProcessColumns);\n }\n footprints = {\n project_id: projectID,\n inProcess: inProcess,\n columns: columns\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({\n columnFootprints: columnFootprints2\n });\n }\n return footprints.columns;\n }\n };\n}\nfunction $8750144f23b92eb9$var$createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies (ids) {\n const { lithologies: lithologies, fetch: fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await (0, $Piirt.fetchLithologies)(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d)=>[\n d.lith_id,\n d\n ]));\n set({\n lithologies: lithMap\n });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id)=>lithMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments (ids) {\n const { environments: environments, fetch: fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await (0, $Piirt.fetchEnvironments)(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d)=>[\n d.environ_id,\n d\n ]));\n set({\n environments: envMap\n });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id)=>envMap.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals (ids, timescaleID) {\n const { intervals: intervals, fetch: fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !$8750144f23b92eb9$var$includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await (0, $Piirt.fetchIntervals)(timescaleID, fetch);\n if (data == null) return [];\n const intervalMap = intervals ?? new Map();\n for (const d of data)intervalMap.set(d.int_id, d);\n _intervals = intervalMap;\n set({\n intervals: _intervals\n });\n }\n if (ids == null && timescaleID == null) return Array.from(_intervals.values());\n if (timescaleID != null) return Array.from(_intervals.values()).filter((d)=>d.timescale_id == timescaleID);\n return ids.map((id)=>intervals.get(id));\n }\n };\n}\nfunction $8750144f23b92eb9$var$includesTimescale(intervals, timescaleID) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some((d)=>d.timescale_id == timescaleID);\n}\nfunction $8750144f23b92eb9$export$fb98d5bae3a6800(selector) {\n const ctx = (0, $fUENy$useContext)($8750144f23b92eb9$var$MacrostratDataProviderContext);\n if (ctx == null) throw new Error(\"Missing MacrostratDataProvider\");\n if (selector === \"api\") return ctx;\n return (0, $fUENy$useStore)(ctx, selector);\n}\nconst $8750144f23b92eb9$var$dataTypeMapping = {\n lithologies: (store)=>store.getLithologies,\n intervals: (store)=>store.getIntervals,\n columns: (store)=>store.getColumns,\n environments: (store)=>store.getEnvironments,\n refs: (store)=>store.getRefs\n};\nfunction $8750144f23b92eb9$export$89dd4e5ae4a82373(dataType) {\n if (dataType == \"columns\") throw new Error(\"Columns are not provided as a map\");\n const operator = $8750144f23b92eb9$export$fb98d5bae3a6800($8750144f23b92eb9$var$dataTypeMapping[dataType]);\n (0, $fUENy$useEffect)(()=>{\n operator();\n }, []);\n return $8750144f23b92eb9$export$fb98d5bae3a6800((state)=>state[dataType]);\n}\nfunction $8750144f23b92eb9$export$81eaae0b474404fd(projectID, inProcess) {\n const getColumns = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getColumns);\n const columnsMap = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n (0, $fUENy$useEffect)(()=>{\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || inProcess && !colData.inProcess) getColumns(projectID, inProcess);\n // If we've already fetched the columns there's nothing to do...\n }, [\n colData,\n inProcess,\n getColumns\n ]);\n return (0, $fUENy$useMemo)(()=>{\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter((d)=>d.properties.status != \"in process\");\n return columns;\n }, [\n colData,\n inProcess\n ]);\n}\nfunction $8750144f23b92eb9$export$b9c9fc603d74a555(dataType, ...args) {\n const selector = $8750144f23b92eb9$var$dataTypeMapping[dataType];\n const operator = $8750144f23b92eb9$export$fb98d5bae3a6800(selector);\n const [value, setValue] = (0, $fUENy$useState)(null);\n (0, $fUENy$useEffect)(()=>{\n operator(...args).then(setValue);\n }, [\n operator,\n ...args\n ]);\n return value;\n}\n/** By default, we provide a store linked to the production API */ const $8750144f23b92eb9$var$MacrostratDataProviderContext = (0, $fUENy$createContext)($8750144f23b92eb9$var$createMacrostratStore());\nfunction $8750144f23b92eb9$export$690613f93cdc5576(props) {\n const { baseURL: baseURL = \"https://macrostrat.org/api/v2\", children: children } = props;\n const [store] = (0, $fUENy$useState)(()=>$8750144f23b92eb9$var$createMacrostratStore(baseURL));\n return (0, $fUENy$macrostrathyper)($8750144f23b92eb9$export$3098013bc6cc316d, {\n baseURL: baseURL\n }, (0, $fUENy$macrostrathyper)($8750144f23b92eb9$var$MacrostratDataProviderContext.Provider, {\n value: store\n }, children));\n}\nfunction $8750144f23b92eb9$export$3098013bc6cc316d({ children: children, useDev: useDev = false, baseURL: baseURL }) {\n baseURL ?? (baseURL = useDev ? \"https://dev.macrostrat.org/api/v2\" : \"https://macrostrat.org/api/v2\");\n return (0, $fUENy$macrostrathyper)((0, $fUENy$APIProvider), {\n baseURL: baseURL,\n unwrapResponse: (res)=>res.success.data\n }, children);\n}\nfunction $8750144f23b92eb9$export$9e42f9b6e0d67c7d(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */ const { axisType: axisType } = (0, $wtIgl.useMacrostratColumnData)();\n const { units: units, domain: domain, pixelScale: pixelScale, children: children } = props;\n return (0, $fUENy$macrostrathyper)((0, $fUENy$ColumnProvider), {\n axisType: axisType,\n divisions: units,\n range: domain,\n pixelsPerMeter: pixelScale\n }, children);\n}\nfunction $8750144f23b92eb9$export$8492a5cae82b6a70({ children: children }) {\n (0, $fUENy$useEffect)(()=>{\n console.warn(\"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\");\n }, []);\n return children;\n}\nfunction $8750144f23b92eb9$export$4d18a90c945d129f() {\n const getLithologies = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getLithologies);\n const lithologies = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.lithologies);\n (0, $fUENy$useEffect)(()=>{\n if (lithologies == null) getLithologies();\n }, [\n lithologies,\n getLithologies\n ]);\n return lithologies;\n}\nfunction $8750144f23b92eb9$export$c6b216bf4c71b61f() {\n const getEnvironments = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.getEnvironments);\n const environments = $8750144f23b92eb9$export$fb98d5bae3a6800((s)=>s.environments);\n (0, $fUENy$useEffect)(()=>{\n if (environments == null) getEnvironments();\n }, [\n environments,\n getEnvironments\n ]);\n return environments;\n}\n\n\nexport {$8750144f23b92eb9$export$fb98d5bae3a6800 as useMacrostratStore, $8750144f23b92eb9$export$89dd4e5ae4a82373 as useMacrostratDefs, $8750144f23b92eb9$export$81eaae0b474404fd as useMacrostratColumns, $8750144f23b92eb9$export$b9c9fc603d74a555 as useMacrostratData, $8750144f23b92eb9$export$690613f93cdc5576 as MacrostratDataProvider, $8750144f23b92eb9$export$3098013bc6cc316d as MacrostratAPIProvider, $8750144f23b92eb9$export$9e42f9b6e0d67c7d as MacrostratColumnProvider, $8750144f23b92eb9$export$8492a5cae82b6a70 as LithologiesProvider, $8750144f23b92eb9$export$4d18a90c945d129f as useLithologies, $8750144f23b92eb9$export$c6b216bf4c71b61f as useEnvironments};\n//# sourceMappingURL=column-views.a0aac838.js.map\n","/** Data provider for information that needs to be loaded in bulk for frontend views */\nimport baseFetch from \"cross-fetch\";\nimport { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { create, useStore } from \"zustand\";\nimport {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n Environment,\n MacrostratRef,\n} from \"@macrostrat/api-types\";\nimport {\n fetchAllColumns,\n fetchEnvironments,\n fetchIntervals,\n fetchLithologies,\n fetchRefs,\n} from \"./fetch\";\nimport { APIProvider } from \"@macrostrat/ui-components\";\nimport { ColumnProvider } from \"@macrostrat/column-components\";\n\nimport { ReactNode } from \"react\";\nimport { useMacrostratColumnData } from \"./store\";\n\nexport interface MacrostratDataProviderProps {\n baseURL: string;\n children: React.ReactNode;\n}\n\ninterface ColumnFootprintsStorage {\n project_id: number;\n // Whether the \"in process\" flag was used\n inProcess: boolean;\n // The column footprints\n columns: ColumnGeoJSONRecordWithID[];\n}\n\ninterface RefsSlice {\n refs: Map<number, MacrostratRef>;\n inFlightRequests: Set<string>; // Track requests to avoid duplicates\n getRefs(ids: number[]): Promise<MacrostratRef[]>;\n}\n\ninterface MacrostratStore extends RefsSlice {\n baseURL: string;\n fetch: any;\n lithologies: Map<number, any> | null;\n getLithologies(ids: number[] | null): Promise<any>;\n intervals: Map<number, any> | null;\n getIntervals(ids: number[] | null, timescaleID: number | null): Promise<any>;\n environments: Map<number, Environment> | null;\n getEnvironments(ids: number[] | null): Promise<Environment[]>;\n columnFootprints: Map<number, ColumnFootprintsStorage>;\n getColumns(\n projectID: number | null,\n inProcess: boolean,\n ): Promise<ColumnGeoJSONRecord[]>;\n}\n\nfunction createMacrostratStore(\n baseURL: string = \"https://macrostrat.org/api/v2\",\n) {\n return create<MacrostratStore>((set, get): MacrostratStore => {\n return {\n baseURL,\n inFlightRequests: new Set(),\n async fetch(url: string, options?: RequestInit) {\n const url1 = baseURL + url;\n // Avoid duplicate requests\n const { inFlightRequests } = get();\n if (inFlightRequests.has(url1)) {\n return null; // Return null if already in flight\n }\n inFlightRequests.add(url1);\n //set({ inFlightRequests });\n const res = await baseFetch(url1, options);\n inFlightRequests.delete(url1);\n //set({in})\n return res;\n },\n ...createLithologiesSlice(set, get),\n ...createIntervalsSlice(set, get),\n ...createEnvironmentsSlice(set, get),\n ...createColumnsSlice(set, get),\n ...createRefsSlice(set, get),\n };\n });\n}\n\nfunction createRefsSlice(set, get) {\n return {\n refs: new Map(),\n async getRefs(ids: number[]): Promise<MacrostratRef[]> {\n const { refs, fetch } = get();\n const missing = ids.filter((id) => !refs.has(id));\n if (missing.length == 0) {\n return ids.map((id) => refs.get(id));\n }\n const data = await fetchRefs(missing, fetch);\n if (data == null) return [];\n for (const d of data) {\n refs.set(d.ref_id, d);\n }\n set({ refs });\n return ids.map((id) => refs.get(id));\n },\n };\n}\n\nfunction createColumnsSlice(set, get) {\n // Column footprints separated by project\n return {\n columnFootprints: new Map(),\n async getColumns(projectID: number | null, inProcess: boolean) {\n const { columnFootprints, baseURL, fetch } = get();\n const key = projectID ?? -1;\n let _inProcess = inProcess;\n if (projectID == null) {\n // If no project is specified, in process columns cannot be included\n _inProcess = false;\n }\n let footprints = columnFootprints.get(key);\n if (footprints == null || footprints.inProcess != _inProcess) {\n // Fetch the columns\n const statusCode = inProcess ? \"in process\" : null;\n let columns = await fetchAllColumns({\n projectID,\n statusCode: null,\n fetch,\n });\n if (columns == null) {\n return;\n }\n if (_inProcess) {\n const inProcessColumns = await fetchAllColumns({\n projectID,\n statusCode: \"in process\",\n fetch,\n });\n if (inProcessColumns == null) {\n return;\n }\n // Combine active and in-process columns\n columns = columns.concat(inProcessColumns);\n }\n\n footprints = {\n project_id: projectID,\n inProcess,\n columns,\n };\n // We could break multi-project result sets into separate caches here...\n // Copy the original map\n const columnFootprints2 = new Map(columnFootprints);\n columnFootprints2.set(key, footprints);\n set({ columnFootprints: columnFootprints2 });\n }\n return footprints.columns;\n },\n };\n}\n\nfunction createLithologiesSlice(set, get) {\n return {\n lithologies: null,\n async getLithologies(ids: number[] | null) {\n const { lithologies, fetch } = get();\n let lithMap = lithologies;\n if (lithMap == null) {\n const data = await fetchLithologies(fetch);\n if (data == null) return;\n lithMap = new Map(data.map((d) => [d.lith_id, d]));\n set({ lithologies: lithMap });\n }\n // Now get the lithologies\n if (ids == null) return lithMap.values();\n return ids.map((id) => lithMap.get(id));\n },\n };\n}\n\nfunction createEnvironmentsSlice(set, get) {\n return {\n environments: null,\n async getEnvironments(ids: number[] | null): Promise<Environment[]> {\n const { environments, fetch } = get();\n let envMap = environments;\n if (envMap == null) {\n const data = await fetchEnvironments(fetch);\n if (data == null) return [];\n envMap = new Map(data.map((d) => [d.environ_id, d]));\n set({ environments: envMap });\n }\n // Now get the environments\n if (ids == null) return envMap.values();\n return ids.map((id) => envMap.get(id));\n },\n };\n}\n\nfunction createIntervalsSlice(set, get) {\n return {\n intervals: null,\n async getIntervals(ids: number[] | null, timescaleID: number | null) {\n const { intervals, fetch } = get();\n let _intervals = intervals;\n if (intervals == null || !includesTimescale(intervals, timescaleID)) {\n // Fetch the intervals\n const data = await fetchIntervals(timescaleID, fetch);\n if (data == null) {\n return [];\n }\n const intervalMap = intervals ?? new Map();\n for (const d of data) {\n intervalMap.set(d.int_id, d);\n }\n _intervals = intervalMap;\n set({ intervals: _intervals });\n }\n if (ids == null && timescaleID == null)\n return Array.from(_intervals.values());\n if (timescaleID != null) {\n return Array.from(_intervals.values() as any[]).filter(\n (d) => d.timescale_id == timescaleID,\n );\n }\n return ids.map((id) => intervals.get(id));\n },\n };\n}\n\nfunction includesTimescale(intervals: Map<number, any>, timescaleID: number) {\n if (intervals == null) return false;\n if (timescaleID == null) return true;\n return Array.from(intervals.values()).some(\n (d) => d.timescale_id == timescaleID,\n );\n}\n\ntype MacrostratSelector = (store: MacrostratStore) => any;\n\nexport function useMacrostratStore(selector: MacrostratSelector | \"api\") {\n const ctx = useContext(MacrostratDataProviderContext);\n if (ctx == null) {\n throw new Error(\"Missing MacrostratDataProvider\");\n }\n if (selector === \"api\") {\n return ctx;\n }\n\n return useStore(ctx, selector);\n}\n\nconst dataTypeMapping = {\n lithologies: (store) => store.getLithologies,\n intervals: (store) => store.getIntervals,\n columns: (store) => store.getColumns,\n environments: (store) => store.getEnvironments,\n refs: (store) => store.getRefs,\n};\n\nexport function useMacrostratDefs(dataType: string): Map<number, any> | null {\n if (dataType == \"columns\") {\n throw new Error(\"Columns are not provided as a map\");\n }\n const operator = useMacrostratStore(dataTypeMapping[dataType]);\n useEffect(() => {\n operator();\n }, []);\n return useMacrostratStore((state) => state[dataType]);\n}\n\nexport function useMacrostratColumns(\n projectID: number | null,\n inProcess: boolean,\n) {\n const getColumns = useMacrostratStore((s) => s.getColumns);\n const columnsMap = useMacrostratStore((s) => s.columnFootprints);\n const key = projectID ?? -1;\n const colData = columnsMap?.get(key);\n useEffect(() => {\n // Refetch if the columns are not available, or if we have requested inProcess columns where we didn't before\n if (colData == null || (inProcess && !colData.inProcess)) {\n getColumns(projectID, inProcess);\n }\n // If we've already fetched the columns there's nothing to do...\n }, [colData, inProcess, getColumns]);\n\n return useMemo(() => {\n if (colData == null) return null;\n let columns = colData.columns;\n if (!inProcess && colData.inProcess) {\n // Our available set of columns includes 'in process' columns, but we don't want them\n columns.features = columns.features?.filter(\n (d) => d.properties.status != \"in process\",\n );\n }\n return columns;\n }, [colData, inProcess]);\n}\n\nexport function useMacrostratData(dataType: string, ...args: any[]) {\n const selector = dataTypeMapping[dataType];\n const operator = useMacrostratStore(selector);\n\n const [value, setValue] = useState(null);\n\n useEffect(() => {\n operator(...args).then(setValue);\n }, [operator, ...args]);\n\n return value;\n}\n\n/** By default, we provide a store linked to the production API */\nconst MacrostratDataProviderContext = createContext(createMacrostratStore());\n\nexport function MacrostratDataProvider(props: MacrostratDataProviderProps) {\n const { baseURL = \"https://macrostrat.org/api/v2\", children } = props;\n\n const [store] = useState(() => createMacrostratStore(baseURL));\n\n return h(\n MacrostratAPIProvider,\n { baseURL },\n h(MacrostratDataProviderContext.Provider, { value: store }, children),\n );\n}\n\n/** Legacy API provider so useAPIResult can work */\n\ntype APIProviderProps = {\n children: ReactNode;\n useDev?: boolean;\n baseURL?: string;\n};\n\nexport function MacrostratAPIProvider({\n children,\n useDev = false,\n baseURL,\n}: APIProviderProps) {\n baseURL ??= useDev\n ? \"https://dev.macrostrat.org/api/v2\"\n : \"https://macrostrat.org/api/v2\";\n\n return h(\n APIProvider,\n {\n baseURL,\n unwrapResponse: (res) => res.success.data,\n },\n children,\n );\n}\n\nexport function MacrostratColumnProvider(props) {\n /** A column provider specialized the Macrostrat API. Maps more\n * generic concepts to Macrostrat-specific ones.\n */\n\n const { axisType } = useMacrostratColumnData();\n const { units, domain, pixelScale, children } = props;\n return h(\n ColumnProvider,\n { axisType, divisions: units, range: domain, pixelsPerMeter: pixelScale },\n children,\n );\n}\n\n/** This is now a legacy provider */\nexport function LithologiesProvider({ children }) {\n useEffect(() => {\n console.warn(\n \"LithologiesProvider is deprecated. Replace with MacrostratDataProvider\",\n );\n }, []);\n return children;\n}\n\nexport function useLithologies() {\n const getLithologies = useMacrostratStore((s) => s.getLithologies);\n const lithologies = useMacrostratStore((s) => s.lithologies);\n useEffect(() => {\n if (lithologies == null) getLithologies();\n }, [lithologies, getLithologies]);\n return lithologies;\n}\n\nexport function useEnvironments() {\n const getEnvironments = useMacrostratStore((s) => s.getEnvironments);\n const environments = useMacrostratStore((s) => s.environments);\n useEffect(() => {\n if (environments == null) getEnvironments();\n }, [environments, getEnvironments]);\n return environments;\n}\n"],"names":["$fUENy$crossfetch","useContext","$fUENy$useContext","useEffect","$fUENy$useEffect","useMemo","$fUENy$useMemo","useState","$fUENy$useState","createContext","$fUENy$createContext","$fUENy$macrostrathyper","create","$fUENy$create","useStore","$fUENy$useStore","APIProvider","$fUENy$APIProvider","ColumnProvider","$fUENy$ColumnProvider","$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","$8750144f23b92eb9$exports","$8750144f23b92eb9$export$fb98d5bae3a6800","$8750144f23b92eb9$export$89dd4e5ae4a82373","$8750144f23b92eb9$export$81eaae0b474404fd","$8750144f23b92eb9$export$b9c9fc603d74a555","$8750144f23b92eb9$export$690613f93cdc5576","$8750144f23b92eb9$export$3098013bc6cc316d","$8750144f23b92eb9$export$9e42f9b6e0d67c7d","$8750144f23b92eb9$export$8492a5cae82b6a70","$8750144f23b92eb9$export$4d18a90c945d129f","$8750144f23b92eb9$export$c6b216bf4c71b61f","$Piirt","$wtIgl","$8750144f23b92eb9$var$createMacrostratStore","baseURL","inFlightRequests","Set","fetch","url","options","url1","has","add","res","delete","lithologies","getLithologies","ids","lithMap","data","fetchLithologies","Map","map","d","lith_id","values","intervals","getIntervals","timescaleID","_intervals","Array","from","some","timescale_id","fetchIntervals","intervalMap","int_id","filter","environments","getEnvironments","envMap","fetchEnvironments","environ_id","columnFootprints","getColumns","projectID","inProcess","key","_inProcess","footprints","columns","fetchAllColumns","statusCode","inProcessColumns","concat","project_id","columnFootprints2","refs","getRefs","missing","length","fetchRefs","ref_id","selector","ctx","$8750144f23b92eb9$var$MacrostratDataProviderContext","$8750144f23b92eb9$var$dataTypeMapping","store","dataType","operator","state","columnsMap","colData","features","properties","status","args","value","setValue","then","props","children","Provider","useDev","unwrapResponse","success","axisType","useMacrostratColumnData","units","domain","pixelScale","divisions","range","pixelsPerMeter","console","warn","useMacrostratStore","useMacrostratDefs","useMacrostratColumns","useMacrostratData","MacrostratDataProvider","MacrostratAPIProvider","MacrostratColumnProvider","LithologiesProvider","useLithologies","useEnvironments"],"version":3,"file":"column-views.a0aac838.js.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- import{joinURL as t,addQueryString as e,useAPIResult as n}from"@macrostrat/ui-components";import a from"cross-fetch";import{feature as o}from"topojson-client";import{geoArea as r}from"d3-geo";function s(t,e,n,a){Object.defineProperty(t,e,{get:n,set:a,enumerable:!0,configurable:!0})}var l={};function c(t,e){return a("https://macrostrat.org/api/v2"+t,e)}async function i(n={}){let{apiBaseURL:o,projectID:s,format:l="topojson",statusCode:c,fetch:u=a}=n,f={format:l};null!=s&&(f={...f,project_id:s}),null!=c&&(f={...f,status_code:c}),null==s&&(f={...f,all:!0});let p="/columns";null!=o&&(p=t(o,p)),p=e(p,f);let m=await u(p,{method:"GET",headers:{"Content-Type":"application/json"}});if(null==m)return null;let h=await m.json();return d[l](h).filter(t=>null!=t.geometry).map(t=>{if(1e-8>r(t.geometry)){let e=t.geometry.coordinates[0][0];t.geometry={type:"Point",coordinates:e}}return t}).map((t,e)=>({id:t.properties?.col_id,...t}))}function u({apiRoute:t="/columns",status_code:e,project_id:a,format:o="geojson"}){let r;null==e&&null==a&&(r=!0);let s=d[o];return n(t,{format:o,all:r,status_code:e,project_id:a},s)}function f(t){return t?.features}s(l,"fetchAllColumns",()=>i),s(l,"useColumnFeatures",()=>u),s(l,"fetchLithologies",()=>m),s(l,"fetchIntervals",()=>h),s(l,"fetchEnvironments",()=>$),s(l,"fetchRefs",()=>g),s(l,"fetchUnits",()=>j),s(l,"fetchColumnUnits",()=>y);let d={topojson:function(t){try{let{data:e}=t.success,{features:n}=o(e,e.objects.output);return n}catch(t){return console.error(t),[]}},geojson:function(t){return f(t?.success?.data)},geojson_bare:f};async function p(t){return null==t?null:(await t.json()).success.data}async function m(t=c){let e=await t("/defs/lithologies?all");return await p(e)}async function h(t,e=c){let n="/defs/intervals";null!=t?n+=`?timescale_id=${t}`:n+="?all";let a=await e(n);return await p(a)}async function $(t=c){let e=await t("/defs/environments?all");return await p(e)}async function g(t,e=c){let n="/defs/refs";if(0==t.length)return[];n+="?ref_id="+t.join(",");let a=await e(n);return await p(a)}async function j(t,e=c){let n=t.map(t=>y(t,e));return await Promise.all(n)}async function y(t,e=c){let n=new URLSearchParams;n.append("response","long"),n.append("col_id",t.toString());let a=await e("/units?"+n.toString()),o=await a.json();if(!o.success)throw Error("Failed to fetch column units");return{columnID:t,units:o.success.data}}export{i as fetchAllColumns,u as useColumnFeatures,m as fetchLithologies,h as fetchIntervals,$ as fetchEnvironments,g as fetchRefs,j as fetchUnits,y as fetchColumnUnits};
2
- //# sourceMappingURL=column-views.a8ffe072.js.map
@@ -1 +0,0 @@
1
- {"mappings":"A,O,W,C,C,kB,C,C,gB,C,K,2B,A,Q,M,a,A,Q,W,C,K,iB,A,Q,W,C,K,Q,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,C,ECeA,SAAS,EACP,CAAW,CACX,CAA4C,EAG5C,OAAO,AAAA,EAAW,AADF,gCACY,EAAK,EACnC,CAUO,eAAe,EACpB,EAA8B,CAAC,CAAC,EAEhC,GAAM,CAAA,WACJ,CAAU,CAAA,UACV,CAAS,CAAA,OACT,EAAS,UAAA,CAAA,WACT,CAAU,CAAA,MACV,EAAQ,CAAS,CAClB,CAAG,EAEA,EAAY,CAAE,OAAA,CAAO,CACrB,AAAa,OAAb,GACF,CAAA,EAAO,CAAE,GAAG,CAAI,CAAE,WAAY,CAAU,CAAA,EAEtC,AAAc,MAAd,GACF,CAAA,EAAO,CAAE,GAAG,CAAI,CAAE,YAAa,CAAW,CAAA,EAGxC,AAAa,MAAb,GACF,CAAA,EAAO,CAAE,GAAG,CAAI,CAAE,IAAK,CAAA,CAAK,CAAA,EAG9B,IAAI,EAAM,UACN,AAAc,OAAd,GACF,CAAA,EAAM,AAAA,EAAQ,EAAY,EAD5B,EAKA,EAAM,AAAA,EAAe,EAAK,GAE1B,IAAM,EAAM,MAAM,EAAM,EAAK,CAC3B,OAAQ,MACR,QAAS,CACP,eAAgB,kBAClB,CACF,GAEA,GAAI,AAAO,MAAP,EACF,OAAO,KAIT,IAAM,EAAO,MAAM,EAAI,IAAI,GAC3B,OAmDO,AAaA,AAJA,AA5DmB,CAAgB,CAAC,EAAO,CAAC,GA4DnC,MAAM,CAAC,AAAC,GAAM,AAAc,MAAd,EAAE,QAAQ,EAIxB,GAAG,CAAC,AAAC,IAEnB,GAAI,AAAsB,KAAtB,AAAA,EAAQ,EAAE,QAAQ,EAAU,CAC9B,IAAM,EAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,AAC7C,CAAA,EAAE,QAAQ,CAAG,CACX,KAAM,QACN,YAAa,CACf,CACF,CACA,OAAO,CACT,GAvBgB,GAAG,CAAC,CAAC,EAAG,IACf,CAAA,CACL,GAAI,EAAE,UAAU,EAAE,OAClB,GAAG,CAAC,AACN,CAAA,EAtDJ,CAEO,SAAS,EAAkB,CAAA,SAChC,EAAW,UAAA,CAAA,YACX,CAAW,CAAA,WACX,CAAU,CAAA,OACV,EAAS,SAAA,CACV,MACK,CACA,AAAe,OAAf,GAAuB,AAAc,MAAd,GACzB,CAAA,EAAM,CAAA,CADR,EAIA,IAAM,EAAY,CAAgB,CAAC,EAAO,CAE1C,OAAO,AAAA,EACL,EACA,CAAE,OAAA,EAAQ,IAAA,EAAK,YAAA,EAAa,WAAA,CAAW,EACvC,EAEJ,CAMA,SAAS,EAAmB,CAAG,EAC7B,OAAO,GAAK,QACd,C,E,E,kB,I,G,E,E,oB,I,G,E,E,mB,I,G,E,E,iB,I,G,E,E,oB,I,G,E,E,Y,I,G,E,E,a,I,G,E,E,mB,I,GAgDA,IAAM,EAAmB,CACvB,SA/CF,SAAyB,CAAG,EAC1B,GAAI,CACF,GAAM,CAAA,KAAE,CAAI,CAAE,CAAG,EAAI,OAAO,CACtB,CAAE,SAAU,CAAC,CAAE,CAAG,AAAA,EAAQ,EAAM,EAAK,OAAO,CAAC,MAAM,EACzD,OAAO,CACT,CAAE,MAAO,EAAK,CAEZ,OADA,QAAQ,KAAK,CAAC,GACP,EAAE,AACX,CACF,EAuCE,QAxDF,SAAwB,CAAG,EACzB,OAAO,EAAmB,GAAK,SAAS,KAC1C,EAuDE,aAAc,CAChB,EAEA,eAAe,EAAe,CAAG,SAC/B,AAAI,AAAO,MAAP,EACK,KAGF,AADS,CAAA,MAAM,EAAI,IAAI,EAA9B,EACe,OAAU,CAAC,IAAO,AACnC,CAEO,eAAe,EAAiB,EAAQ,CAAY,EACzD,IAAM,EAAM,MAAM,EAAM,yBACxB,OAAO,MAAM,EAAe,EAC9B,CAEO,eAAe,EACpB,CAA0B,CAC1B,EAAQ,CAAY,EAEpB,IAAI,EAAM,iBACN,AAAe,OAAf,EACF,GAAO,CAAC,cAAc,EAAE,EAAA,CAAa,CAErC,GAAO,OAET,IAAM,EAAM,MAAM,EAAM,GACxB,OAAO,MAAM,EAAe,EAC9B,CAEO,eAAe,EAAkB,EAAQ,CAAY,EAC1D,IAAM,EAAM,MAAM,EAAM,0BACxB,OAAO,MAAM,EAAe,EAC9B,CAEO,eAAe,EACpB,CAAc,CACd,EAAQ,CAAY,EAEpB,IAAI,EAAM,aACV,GAAI,AAAe,GAAf,EAAK,MAAM,CACb,MAAO,EAAE,CAEX,GAAO,WAAa,EAAK,IAAI,CAAC,KAC9B,IAAM,EAAM,MAAM,EAAM,GACxB,OAAO,MAAM,EAAe,EAC9B,CAOO,eAAe,EACpB,CAAiB,CACjB,EAAQ,CAAY,EAEpB,IAAM,EAAW,EAAQ,GAAG,CAAC,AAAC,GAAW,EAAiB,EAAQ,IAClE,OAAO,MAAM,QAAQ,GAAG,CAAC,EAC3B,CAEO,eAAe,EACpB,CAAc,CACd,EAAQ,CAAY,EAEpB,IAAM,EAAS,IAAI,gBACnB,EAAO,MAAM,CAAC,WAAY,QAC1B,EAAO,MAAM,CAAC,SAAU,EAAO,QAAQ,IACvC,IAAM,EAAM,MAAM,EAAM,UAAiB,EAAO,QAAQ,IAClD,EAAO,MAAM,EAAI,IAAI,GAC3B,GAAI,CAAC,EAAK,OAAO,CACf,MAAM,AAAI,MAAM,gCAGlB,MAAO,CAAE,SAAU,EAAQ,MADb,EAAK,OAAO,CAAC,IAAI,AACE,CACnC,Q,K,e,C,K,iB,C,K,gB,C,K,c,C,K,iB,C,K,S,C,K,U,C,K,gB","sources":["<anon>","packages/column-views/src/data-provider/fetch.ts"],"sourcesContent":["import {joinURL as $iGnPX$joinURL, addQueryString as $iGnPX$addQueryString, useAPIResult as $iGnPX$useAPIResult} from \"@macrostrat/ui-components\";\nimport $iGnPX$crossfetch from \"cross-fetch\";\nimport {feature as $iGnPX$feature} from \"topojson-client\";\nimport {geoArea as $iGnPX$geoArea} from \"d3-geo\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $482a09479937d1e2$exports = {};\n\n$parcel$export($482a09479937d1e2$exports, \"fetchAllColumns\", () => $482a09479937d1e2$export$45bd78cd093090fa);\n$parcel$export($482a09479937d1e2$exports, \"useColumnFeatures\", () => $482a09479937d1e2$export$e3270a4e30e40ff9);\n$parcel$export($482a09479937d1e2$exports, \"fetchLithologies\", () => $482a09479937d1e2$export$1aa679bd5e605f82);\n$parcel$export($482a09479937d1e2$exports, \"fetchIntervals\", () => $482a09479937d1e2$export$5d2ec2e733dfe6c7);\n$parcel$export($482a09479937d1e2$exports, \"fetchEnvironments\", () => $482a09479937d1e2$export$780b4b253712916c);\n$parcel$export($482a09479937d1e2$exports, \"fetchRefs\", () => $482a09479937d1e2$export$cd7bfa0860f58b96);\n$parcel$export($482a09479937d1e2$exports, \"fetchUnits\", () => $482a09479937d1e2$export$b97b9bdd6a521298);\n$parcel$export($482a09479937d1e2$exports, \"fetchColumnUnits\", () => $482a09479937d1e2$export$d3d8b0fabcc76c5d);\n\n\n\n\nfunction $482a09479937d1e2$var$defaultFetch(url, options) {\n const baseURL = \"https://macrostrat.org/api/v2\";\n return (0, $iGnPX$crossfetch)(baseURL + url, options);\n}\nasync function $482a09479937d1e2$export$45bd78cd093090fa(options = {}) {\n const { apiBaseURL: apiBaseURL, projectID: projectID, format: format = \"topojson\", statusCode: statusCode, fetch: fetch = (0, $iGnPX$crossfetch) } = options;\n let args = {\n format: format\n };\n if (projectID != null) args = {\n ...args,\n project_id: projectID\n };\n if (statusCode != null) args = {\n ...args,\n status_code: statusCode\n };\n if (projectID == null) args = {\n ...args,\n all: true\n };\n let url = \"/columns\";\n if (apiBaseURL != null) url = (0, $iGnPX$joinURL)(apiBaseURL, url);\n // Try with fetch\n url = (0, $iGnPX$addQueryString)(url, args);\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n if (res == null) return null;\n // Get JSON\n const data = await res.json();\n return $482a09479937d1e2$var$postProcessColumns($482a09479937d1e2$var$columnProcessors[format](data));\n}\nfunction $482a09479937d1e2$export$e3270a4e30e40ff9({ apiRoute: apiRoute = \"/columns\", status_code: status_code, project_id: project_id, format: format = \"geojson\" }) {\n let all = undefined;\n if (status_code == null && project_id == null) all = true;\n const processor = $482a09479937d1e2$var$columnProcessors[format];\n return (0, $iGnPX$useAPIResult)(apiRoute, {\n format: format,\n all: all,\n status_code: status_code,\n project_id: project_id\n }, processor);\n}\nfunction $482a09479937d1e2$var$processGeoJSON(res) {\n return $482a09479937d1e2$var$processGeoJSONBare(res?.success?.data);\n}\nfunction $482a09479937d1e2$var$processGeoJSONBare(res) {\n return res?.features;\n}\nfunction $482a09479937d1e2$var$processTopoJSON(res) {\n try {\n const { data: data } = res.success;\n const { features: f } = (0, $iGnPX$feature)(data, data.objects.output);\n return f;\n } catch (err) {\n console.error(err);\n return [];\n }\n}\nfunction $482a09479937d1e2$var$postProcessColumns(columns) {\n return $482a09479937d1e2$var$promoteColumnIDs($482a09479937d1e2$var$convertSmallAreasToPoints($482a09479937d1e2$var$removeFeaturesWithoutGeometry(columns)));\n}\nfunction $482a09479937d1e2$var$promoteColumnIDs(features) {\n return features.map((f, i)=>{\n return {\n id: f.properties?.col_id,\n ...f\n };\n });\n}\nfunction $482a09479937d1e2$var$removeFeaturesWithoutGeometry(features) {\n return features.filter((f)=>f.geometry != null);\n}\nfunction $482a09479937d1e2$var$convertSmallAreasToPoints(features) {\n return features.map((f)=>{\n // GeoArea takes a long time to run. We are really more worried about points that are zero-area\n if ((0, $iGnPX$geoArea)(f.geometry) < 1e-8) {\n const centroid = f.geometry.coordinates[0][0];\n f.geometry = {\n type: \"Point\",\n coordinates: centroid\n };\n }\n return f;\n });\n}\nconst $482a09479937d1e2$var$columnProcessors = {\n topojson: $482a09479937d1e2$var$processTopoJSON,\n geojson: $482a09479937d1e2$var$processGeoJSON,\n geojson_bare: $482a09479937d1e2$var$processGeoJSONBare\n};\nasync function $482a09479937d1e2$var$unwrapResponse(res) {\n if (res == null) return null;\n const resData = await res.json();\n return resData[\"success\"][\"data\"];\n}\nasync function $482a09479937d1e2$export$1aa679bd5e605f82(fetch = $482a09479937d1e2$var$defaultFetch) {\n const res = await fetch(\"/defs/lithologies?all\");\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$5d2ec2e733dfe6c7(timescaleID, fetch = $482a09479937d1e2$var$defaultFetch) {\n let url = `/defs/intervals`;\n if (timescaleID != null) url += `?timescale_id=${timescaleID}`;\n else url += \"?all\";\n const res = await fetch(url);\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$780b4b253712916c(fetch = $482a09479937d1e2$var$defaultFetch) {\n const res = await fetch(\"/defs/environments?all\");\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$cd7bfa0860f58b96(refs, fetch = $482a09479937d1e2$var$defaultFetch) {\n let url = `/defs/refs`;\n if (refs.length == 0) return [];\n url += \"?ref_id=\" + refs.join(\",\");\n const res = await fetch(url);\n return await $482a09479937d1e2$var$unwrapResponse(res);\n}\nasync function $482a09479937d1e2$export$b97b9bdd6a521298(columns, fetch = $482a09479937d1e2$var$defaultFetch) {\n const promises = columns.map((col_id)=>$482a09479937d1e2$export$d3d8b0fabcc76c5d(col_id, fetch));\n return await Promise.all(promises);\n}\nasync function $482a09479937d1e2$export$d3d8b0fabcc76c5d(col_id, fetch = $482a09479937d1e2$var$defaultFetch) {\n const params = new URLSearchParams();\n params.append(\"response\", \"long\");\n params.append(\"col_id\", col_id.toString());\n const res = await fetch(\"/units?\" + params.toString());\n const data = await res.json();\n if (!data.success) throw new Error(\"Failed to fetch column units\");\n const units = data.success.data;\n return {\n columnID: col_id,\n units: units\n };\n}\n\n\nexport {$482a09479937d1e2$export$45bd78cd093090fa as fetchAllColumns, $482a09479937d1e2$export$e3270a4e30e40ff9 as useColumnFeatures, $482a09479937d1e2$export$1aa679bd5e605f82 as fetchLithologies, $482a09479937d1e2$export$5d2ec2e733dfe6c7 as fetchIntervals, $482a09479937d1e2$export$780b4b253712916c as fetchEnvironments, $482a09479937d1e2$export$cd7bfa0860f58b96 as fetchRefs, $482a09479937d1e2$export$b97b9bdd6a521298 as fetchUnits, $482a09479937d1e2$export$d3d8b0fabcc76c5d as fetchColumnUnits};\n//# sourceMappingURL=column-views.a8ffe072.js.map\n","import {\n ColumnGeoJSONRecord,\n ColumnGeoJSONRecordWithID,\n MacrostratRef,\n UnitLong,\n} from \"@macrostrat/api-types\";\nimport {\n addQueryString,\n joinURL,\n useAPIResult,\n} from \"@macrostrat/ui-components\";\nimport crossFetch from \"cross-fetch\";\nimport { feature } from \"topojson-client\";\nimport { geoArea } from \"d3-geo\";\n\nfunction defaultFetch(\n url: string,\n options: RequestInit | undefined = undefined,\n) {\n const baseURL = \"https://macrostrat.org/api/v2\";\n return crossFetch(baseURL + url, options);\n}\n\nexport interface ColumnFetchOptions {\n apiBaseURL?: string;\n projectID?: number;\n statusCode?: \"in process\";\n format?: \"geojson\" | \"topojson\" | \"geojson_bare\";\n fetch?: any;\n}\n\nexport async function fetchAllColumns(\n options: ColumnFetchOptions = {},\n): Promise<ColumnGeoJSONRecord[]> {\n const {\n apiBaseURL,\n projectID,\n format = \"topojson\",\n statusCode,\n fetch = crossFetch,\n } = options;\n\n let args: any = { format };\n if (projectID != null) {\n args = { ...args, project_id: projectID };\n }\n if (statusCode != null) {\n args = { ...args, status_code: statusCode };\n }\n\n if (projectID == null) {\n args = { ...args, all: true };\n }\n\n let url = \"/columns\";\n if (apiBaseURL != null) {\n url = joinURL(apiBaseURL, url);\n }\n\n // Try with fetch\n url = addQueryString(url, args);\n\n const res = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (res == null) {\n return null;\n }\n\n // Get JSON\n const data = await res.json();\n return postProcessColumns(columnProcessors[format](data));\n}\n\nexport function useColumnFeatures({\n apiRoute = \"/columns\",\n status_code,\n project_id,\n format = \"geojson\",\n}) {\n let all: boolean = undefined;\n if (status_code == null && project_id == null) {\n all = true;\n }\n\n const processor = columnProcessors[format];\n\n return useAPIResult(\n apiRoute,\n { format, all, status_code, project_id },\n processor,\n );\n}\n\nfunction processGeoJSON(res) {\n return processGeoJSONBare(res?.success?.data);\n}\n\nfunction processGeoJSONBare(res) {\n return res?.features;\n}\n\nfunction processTopoJSON(res) {\n try {\n const { data } = res.success;\n const { features: f } = feature(data, data.objects.output) as any;\n return f;\n } catch (err) {\n console.error(err);\n return [];\n }\n}\n\nfunction postProcessColumns(columns) {\n return promoteColumnIDs(\n convertSmallAreasToPoints(removeFeaturesWithoutGeometry(columns)),\n );\n}\n\nfunction promoteColumnIDs(\n features: ColumnGeoJSONRecord[],\n): ColumnGeoJSONRecordWithID[] {\n return features.map((f, i) => {\n return {\n id: f.properties?.col_id,\n ...f,\n };\n });\n}\n\nfunction removeFeaturesWithoutGeometry(features) {\n return features.filter((f) => f.geometry != null);\n}\n\nfunction convertSmallAreasToPoints(features) {\n return features.map((f) => {\n // GeoArea takes a long time to run. We are really more worried about points that are zero-area\n if (geoArea(f.geometry) < 1e-8) {\n const centroid = f.geometry.coordinates[0][0];\n f.geometry = {\n type: \"Point\",\n coordinates: centroid,\n };\n }\n return f;\n });\n}\n\nconst columnProcessors = {\n topojson: processTopoJSON,\n geojson: processGeoJSON,\n geojson_bare: processGeoJSONBare,\n};\n\nasync function unwrapResponse(res) {\n if (res == null) {\n return null;\n }\n const resData = await res.json();\n return resData[\"success\"][\"data\"];\n}\n\nexport async function fetchLithologies(fetch = defaultFetch) {\n const res = await fetch(\"/defs/lithologies?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchIntervals(\n timescaleID: number | null,\n fetch = defaultFetch,\n) {\n let url = `/defs/intervals`;\n if (timescaleID != null) {\n url += `?timescale_id=${timescaleID}`;\n } else {\n url += \"?all\";\n }\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport async function fetchEnvironments(fetch = defaultFetch) {\n const res = await fetch(\"/defs/environments?all\");\n return await unwrapResponse(res);\n}\n\nexport async function fetchRefs(\n refs: number[],\n fetch = defaultFetch,\n): Promise<MacrostratRef[]> {\n let url = `/defs/refs`;\n if (refs.length == 0) {\n return [];\n }\n url += \"?ref_id=\" + refs.join(\",\");\n const res = await fetch(url);\n return await unwrapResponse(res);\n}\n\nexport type ColumnData = {\n units: UnitLong[];\n columnID: number;\n};\n\nexport async function fetchUnits(\n columns: number[],\n fetch = defaultFetch,\n): Promise<ColumnData[]> {\n const promises = columns.map((col_id) => fetchColumnUnits(col_id, fetch));\n return await Promise.all(promises);\n}\n\nexport async function fetchColumnUnits(\n col_id: number,\n fetch = defaultFetch,\n): Promise<ColumnData> {\n const params = new URLSearchParams();\n params.append(\"response\", \"long\");\n params.append(\"col_id\", col_id.toString());\n const res = await fetch(\"/units\" + \"?\" + params.toString());\n const data = await res.json();\n if (!data.success) {\n throw new Error(\"Failed to fetch column units\");\n }\n const units = data.success.data;\n return { columnID: col_id, units };\n}\n"],"names":["joinURL","$iGnPX$joinURL","addQueryString","$iGnPX$addQueryString","useAPIResult","$iGnPX$useAPIResult","$iGnPX$crossfetch","feature","$iGnPX$feature","geoArea","$iGnPX$geoArea","$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$482a09479937d1e2$exports","$482a09479937d1e2$var$defaultFetch","url","options","baseURL","$482a09479937d1e2$export$45bd78cd093090fa","apiBaseURL","projectID","format","statusCode","fetch","args","project_id","status_code","all","res","method","headers","data","json","features","$482a09479937d1e2$var$columnProcessors","filter","f","geometry","map","centroid","coordinates","type","i","id","properties","col_id","$482a09479937d1e2$export$e3270a4e30e40ff9","apiRoute","processor","$482a09479937d1e2$var$processGeoJSONBare","$482a09479937d1e2$export$1aa679bd5e605f82","$482a09479937d1e2$export$5d2ec2e733dfe6c7","$482a09479937d1e2$export$780b4b253712916c","$482a09479937d1e2$export$cd7bfa0860f58b96","$482a09479937d1e2$export$b97b9bdd6a521298","$482a09479937d1e2$export$d3d8b0fabcc76c5d","topojson","success","objects","output","err","console","error","geojson","geojson_bare","$482a09479937d1e2$var$unwrapResponse","resData","timescaleID","refs","length","join","columns","promises","Promise","params","URLSearchParams","append","toString","Error","columnID","units","fetchAllColumns","useColumnFeatures","fetchLithologies","fetchIntervals","fetchEnvironments","fetchRefs","fetchUnits","fetchColumnUnits"],"version":3,"file":"column-views.a8ffe072.js.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- function e(e,t,n,i){Object.defineProperty(e,t,{get:n,set:i,enumerable:!0,configurable:!0})}var t,n,i,a,o,r,U,l,s,d,c,p,D,G,X,_,u,b={};e(b,"clickable",()=>t,e=>t=e),e(b,"color-swatch",()=>n,e=>n=e),e(b,"discourage-break",()=>i,e=>i=e),e(b,"hidden-actions",()=>a,e=>a=e),e(b,"interval-proportions",()=>o,e=>o=e),e(b,"legend-panel-header",()=>r,e=>r=e),e(b,"no-units",()=>U,e=>U=e),e(b,"proportion",()=>l,e=>l=e),e(b,"refs",()=>s,e=>s=e),e(b,"sep",()=>d,e=>d=e),e(b,"spacer",()=>c,e=>c=e),e(b,"strat-name-id",()=>p,e=>p=e),e(b,"title-container",()=>D,e=>D=e),e(b,"unit-details-content",()=>G,e=>G=e),e(b,"unit-details-content-holder",()=>X,e=>X=e),e(b,"unit-details-panel",()=>_,e=>_=e),e(b,"unit-id",()=>u,e=>u=e),t="XUD4UG_clickable",n="XUD4UG_color-swatch",i="XUD4UG_discourage-break",a="XUD4UG_hidden-actions",o="XUD4UG_interval-proportions",r="XUD4UG_legend-panel-header",U="XUD4UG_no-units",l="XUD4UG_proportion",s="XUD4UG_refs",d="XUD4UG_sep",c="XUD4UG_spacer",p="XUD4UG_strat-name-id",D="XUD4UG_title-container",G="XUD4UG_unit-details-content",X="XUD4UG_unit-details-content-holder",_="XUD4UG_unit-details-panel",u="XUD4UG_unit-id";export{b as default};
2
- //# sourceMappingURL=column-views.aa50c532.js.map
@@ -1 +0,0 @@
1
- {"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICAA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,E,E,C,E,E,E,Y,I,E,A,G,E,G,E,E,e,I,E,A,G,E,G,E,E,mB,I,E,A,G,E,G,E,E,iB,I,E,A,G,E,G,E,E,uB,I,E,A,G,E,G,E,E,sB,I,E,A,G,E,G,E,E,W,I,E,A,G,E,G,E,E,a,I,E,A,G,E,G,E,E,O,I,E,A,G,E,G,E,E,M,I,E,A,G,E,G,E,E,S,I,E,A,G,E,G,E,E,gB,I,E,A,G,E,G,E,E,kB,I,E,A,G,E,G,E,E,uB,I,E,A,G,E,G,E,E,8B,I,E,A,G,E,G,E,E,qB,I,E,A,G,E,G,E,E,U,I,E,A,G,E,GAhBA,EAA8B,mBAC9B,EAAiC,sBACjC,EAAqC,0BACrC,EAAmC,wBACnC,EAAyC,8BACzC,EAAwC,6BACxC,EAA6B,kBAC7B,EAA+B,oBAC/B,EAAyB,cACzB,EAAwB,aACxB,EAA2B,gBAC3B,EAAkC,uBAClC,EAAoC,yBACpC,EAAyC,8BACzC,EAAgD,qCAChD,EAAuC,4BACvC,EAA4B,wB,K,O","sources":["<anon>","packages/column-views/src/unit-details/panel.module.sass"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $fdcbde10b14fc2b9$exports = {};\n\n$parcel$export($fdcbde10b14fc2b9$exports, \"clickable\", () => $fdcbde10b14fc2b9$export$60d5655c6babb2a0, (v) => $fdcbde10b14fc2b9$export$60d5655c6babb2a0 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"color-swatch\", () => $fdcbde10b14fc2b9$export$def51519e6441a17, (v) => $fdcbde10b14fc2b9$export$def51519e6441a17 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"discourage-break\", () => $fdcbde10b14fc2b9$export$46755bac45eea0a4, (v) => $fdcbde10b14fc2b9$export$46755bac45eea0a4 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"hidden-actions\", () => $fdcbde10b14fc2b9$export$b36b9e25cc36a950, (v) => $fdcbde10b14fc2b9$export$b36b9e25cc36a950 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"interval-proportions\", () => $fdcbde10b14fc2b9$export$ff33e8e065b5d268, (v) => $fdcbde10b14fc2b9$export$ff33e8e065b5d268 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"legend-panel-header\", () => $fdcbde10b14fc2b9$export$ce652ed9af8e3365, (v) => $fdcbde10b14fc2b9$export$ce652ed9af8e3365 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"no-units\", () => $fdcbde10b14fc2b9$export$aff88130074c0d5f, (v) => $fdcbde10b14fc2b9$export$aff88130074c0d5f = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"proportion\", () => $fdcbde10b14fc2b9$export$5a14da41381fe262, (v) => $fdcbde10b14fc2b9$export$5a14da41381fe262 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"refs\", () => $fdcbde10b14fc2b9$export$21666b427502ea6d, (v) => $fdcbde10b14fc2b9$export$21666b427502ea6d = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"sep\", () => $fdcbde10b14fc2b9$export$5aee1a5bd9743d8f, (v) => $fdcbde10b14fc2b9$export$5aee1a5bd9743d8f = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"spacer\", () => $fdcbde10b14fc2b9$export$8cc075c801fd6817, (v) => $fdcbde10b14fc2b9$export$8cc075c801fd6817 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"strat-name-id\", () => $fdcbde10b14fc2b9$export$3ab27000c02e6186, (v) => $fdcbde10b14fc2b9$export$3ab27000c02e6186 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"title-container\", () => $fdcbde10b14fc2b9$export$8a49b8d8484a58d8, (v) => $fdcbde10b14fc2b9$export$8a49b8d8484a58d8 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"unit-details-content\", () => $fdcbde10b14fc2b9$export$1c30616b5f94c6bc, (v) => $fdcbde10b14fc2b9$export$1c30616b5f94c6bc = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"unit-details-content-holder\", () => $fdcbde10b14fc2b9$export$1dcba08cee5317f8, (v) => $fdcbde10b14fc2b9$export$1dcba08cee5317f8 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"unit-details-panel\", () => $fdcbde10b14fc2b9$export$f94e3d1eb82ee550, (v) => $fdcbde10b14fc2b9$export$f94e3d1eb82ee550 = v);\n$parcel$export($fdcbde10b14fc2b9$exports, \"unit-id\", () => $fdcbde10b14fc2b9$export$e22f189945dfce76, (v) => $fdcbde10b14fc2b9$export$e22f189945dfce76 = v);\nvar $fdcbde10b14fc2b9$export$60d5655c6babb2a0;\nvar $fdcbde10b14fc2b9$export$def51519e6441a17;\nvar $fdcbde10b14fc2b9$export$46755bac45eea0a4;\nvar $fdcbde10b14fc2b9$export$b36b9e25cc36a950;\nvar $fdcbde10b14fc2b9$export$ff33e8e065b5d268;\nvar $fdcbde10b14fc2b9$export$ce652ed9af8e3365;\nvar $fdcbde10b14fc2b9$export$aff88130074c0d5f;\nvar $fdcbde10b14fc2b9$export$5a14da41381fe262;\nvar $fdcbde10b14fc2b9$export$21666b427502ea6d;\nvar $fdcbde10b14fc2b9$export$5aee1a5bd9743d8f;\nvar $fdcbde10b14fc2b9$export$8cc075c801fd6817;\nvar $fdcbde10b14fc2b9$export$3ab27000c02e6186;\nvar $fdcbde10b14fc2b9$export$8a49b8d8484a58d8;\nvar $fdcbde10b14fc2b9$export$1c30616b5f94c6bc;\nvar $fdcbde10b14fc2b9$export$1dcba08cee5317f8;\nvar $fdcbde10b14fc2b9$export$f94e3d1eb82ee550;\nvar $fdcbde10b14fc2b9$export$e22f189945dfce76;\n$fdcbde10b14fc2b9$export$60d5655c6babb2a0 = `XUD4UG_clickable`;\n$fdcbde10b14fc2b9$export$def51519e6441a17 = `XUD4UG_color-swatch`;\n$fdcbde10b14fc2b9$export$46755bac45eea0a4 = `XUD4UG_discourage-break`;\n$fdcbde10b14fc2b9$export$b36b9e25cc36a950 = `XUD4UG_hidden-actions`;\n$fdcbde10b14fc2b9$export$ff33e8e065b5d268 = `XUD4UG_interval-proportions`;\n$fdcbde10b14fc2b9$export$ce652ed9af8e3365 = `XUD4UG_legend-panel-header`;\n$fdcbde10b14fc2b9$export$aff88130074c0d5f = `XUD4UG_no-units`;\n$fdcbde10b14fc2b9$export$5a14da41381fe262 = `XUD4UG_proportion`;\n$fdcbde10b14fc2b9$export$21666b427502ea6d = `XUD4UG_refs`;\n$fdcbde10b14fc2b9$export$5aee1a5bd9743d8f = `XUD4UG_sep`;\n$fdcbde10b14fc2b9$export$8cc075c801fd6817 = `XUD4UG_spacer`;\n$fdcbde10b14fc2b9$export$3ab27000c02e6186 = `XUD4UG_strat-name-id`;\n$fdcbde10b14fc2b9$export$8a49b8d8484a58d8 = `XUD4UG_title-container`;\n$fdcbde10b14fc2b9$export$1c30616b5f94c6bc = `XUD4UG_unit-details-content`;\n$fdcbde10b14fc2b9$export$1dcba08cee5317f8 = `XUD4UG_unit-details-content-holder`;\n$fdcbde10b14fc2b9$export$f94e3d1eb82ee550 = `XUD4UG_unit-details-panel`;\n$fdcbde10b14fc2b9$export$e22f189945dfce76 = `XUD4UG_unit-id`;\n\n\nexport {$fdcbde10b14fc2b9$exports as default};\n//# sourceMappingURL=column-views.aa50c532.js.map\n",null],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$fdcbde10b14fc2b9$export$60d5655c6babb2a0","$fdcbde10b14fc2b9$export$def51519e6441a17","$fdcbde10b14fc2b9$export$46755bac45eea0a4","$fdcbde10b14fc2b9$export$b36b9e25cc36a950","$fdcbde10b14fc2b9$export$ff33e8e065b5d268","$fdcbde10b14fc2b9$export$ce652ed9af8e3365","$fdcbde10b14fc2b9$export$aff88130074c0d5f","$fdcbde10b14fc2b9$export$5a14da41381fe262","$fdcbde10b14fc2b9$export$21666b427502ea6d","$fdcbde10b14fc2b9$export$5aee1a5bd9743d8f","$fdcbde10b14fc2b9$export$8cc075c801fd6817","$fdcbde10b14fc2b9$export$3ab27000c02e6186","$fdcbde10b14fc2b9$export$8a49b8d8484a58d8","$fdcbde10b14fc2b9$export$1c30616b5f94c6bc","$fdcbde10b14fc2b9$export$1dcba08cee5317f8","$fdcbde10b14fc2b9$export$f94e3d1eb82ee550","$fdcbde10b14fc2b9$export$e22f189945dfce76","$fdcbde10b14fc2b9$exports","default"],"version":3,"file":"column-views.aa50c532.js.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- import"./column-views.e7e26765.js";import"./column-views.10a2bad6.js";import"./column-views.cdcce702.js";import"./column-views.8cfed88b.js";import"./column-views.a0aac838.js";import"./column-views.6bba8c57.js";import{ColumnAxisType as e,ColumnContext as t,ColumnLayoutContext as o,useColumn as i,useGeologicPattern as a,ForeignObject as n,PatternDefsProvider as l}from"@macrostrat/column-components";import{SizeAwareLabel as r}from"@macrostrat/ui-components";import s from"@macrostrat/hyper";import{useContext as c,forwardRef as u,useMemo as d}from"react";import m from"classnames";import{path as p}from"d3-path";var f=globalThis,b={},h={},g=f.parcelRequirea149;null==g&&((g=function(e){if(e in b)return b[e].exports;if(e in h){var t=h[e];delete h[e];var o={id:e,exports:{}};return b[e]=o,t.call(o.exports,o,o.exports),o.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){h[e]=t},f.parcelRequirea149=g),g.register;var v=g("5VyZI"),x=g("a3mb1"),w=g("klU0I"),y=g("iWhRv"),T=g("lgTAP"),C=g("bfmPX");let _=s.styled(w&&w.__esModule?w.default:w);function F(i,a={}){let{widthFraction:n=1,axisType:l=e.AGE,padding:r=0}=a,{scale:s}=c(t),{width:u}=c(o),[d,m]=(0,y.getUnitHeightRange)(i,l),p=s(m),f=Math.abs(s(d)-p);return{x:u*(1-n)-r,y:p-r,height:f+2*r,width:n*u+2*r}}function k(e){let{division:t,children:o,className:a,widthFraction:n=1,axisType:l,nColumns:r,...s}=e,{axisType:c}=i(),u=(0,T.useLithologies)(),d={...F(t,{widthFraction:n,axisType:c}),...s},m=(0,C.getMixedUnitColor)(t,u,null,!1),[p,f,b]=(0,x.useUnitSelectionTarget)(t);return _("g.unit",{className:a,style:{"--column-unit-background-color":m,"--column-stroke-color":m}},[_("rect.unit.background",{ref:p,...d,fill:m,fillOpacity:.8,stroke:m,onClick:b}),_.if(f)("rect.selection-overlay",d)])}function N(e){let{division:t,children:o,fill:n,defaultFill:l="transparent",className:r,widthFraction:s=1,backgroundColor:c,patternColor:u,patternID:d,axisType:p,...f}=e,{axisType:b}=i(),h=null!=t.t_clip_pos,g=null!=t.b_clip_pos,w={...F(t,{widthFraction:s,axisType:b}),...f,overflowTop:h,overflowBottom:g},y=d??(0,v.resolveID)(t),T=n??a(y,l),C=m(r,{colored:null!=c}),[k,N,U]=(0,x.useUnitSelectionTarget)(t);return _("g.unit",{className:C,style:{"--column-unit-background-color":c}},[_(H,{...w,fill:c,onClick:U,className:"background"}),_(H,{ref:k,...w,fill:T,onClick:U,className:"unit"}),_.if(N)(H,{...w,className:"selection-overlay"}),o])}let H=u((e,t)=>{let{x:o,y:i,width:a,height:n,overflowTop:l=!1,overflowBottom:r=!1,...s}=e;return l||r?_("path",{d:function(e,t,o,i,a,n){let l=p(),r=Math.floor(o/10-.5);l.moveTo(e,t);let s=2,c=o/(r+.5)/4,u=e,d=t,m=(e=!1)=>{u+=c,d-=s,l.lineTo(u,d);let t=e?1:2;u+=c*t,d+=s*t,l.lineTo(u,d),u+=c,d-=s};if(a){for(let e=0;e<r;e++)m();m(!0)}if(l.lineTo(e+o,t),l.lineTo(e+o,t+i),n){c=-c,s=-s,u=e+o,d=t+i;for(let e=0;e<r;e++)m();m(!0)}return l.lineTo(e,t+i),l.closePath(),l.toString()}(o,i,a,n,l,r),ref:t,...s}):_("rect",{x:o,y:i,width:a,height:n,ref:t,...s})});function U(e){let{division:t,label:o,onLabelUpdated:a,widthFraction:l,showLabel:s=!0,backgroundColor:c,patternID:u,axisType:d,...m}=e,{axisType:p}=i(),f={...F(t,{widthFraction:l,axisType:p}),...m},{width:b,height:h}=f;return _(N,{className:"labeled-unit",division:t,backgroundColor:c,patternID:u,...f},[_.if(s)(n,{...f,className:"unit-label-container"},_(r,{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}=c(t);if(0==a.length)return console.warn("No divisions found in column context"),null;let n=d(()=>a.map((e,t)=>_(o,{division:e,key:e.unit_id,...i})),[a,o,i]);return _(l,{resolveID:v.resolveID,scalePattern:v.scalePattern},_("g.divisions",n))}export{k as MinimalUnit,N as Unit,U as LabeledUnit,$ as UnitBoxes};
2
- //# sourceMappingURL=column-views.b773edb8.js.map
@@ -1 +0,0 @@
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,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,A,Q,Q,C,K,S,C,I,E,W,E,C,E,E,C,E,E,E,iB,A,O,I,A,C,E,S,C,E,G,K,E,O,C,C,E,C,O,C,G,K,E,C,I,E,C,C,E,A,Q,C,C,E,C,I,E,C,G,E,Q,C,C,E,O,C,C,E,C,E,E,I,C,E,O,C,E,E,O,E,E,O,A,C,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,Q,C,S,C,C,C,E,C,C,E,C,C,E,E,iB,C,G,E,Q,C,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCuBA,IAAM,EAAI,AAAA,EAAM,MAAM,C,AAAC,G,AAAA,E,U,C,AAAA,E,O,CAAA,GAoCvB,SAAS,EACP,CAAe,CACf,EAA2B,CAAC,CAAC,EAE7B,GAAM,CAAA,cACJ,EAAgB,CAAA,CAAA,SAChB,EAAW,AAAA,EAAe,GAAG,CAAA,QAC7B,EAAU,CAAA,CACX,CAAG,EACE,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,EAAW,GACvB,CAAA,MAAE,CAAK,CAAE,CAAG,AAAA,EAAW,GAEvB,CAAC,EAAc,EAAU,CAAG,AAAA,CAAA,EAAA,EAAA,kBAAiB,AAAjB,EAAmB,EAAU,GAEzD,EAAI,EAAM,GACV,EAAS,KAAK,GAAG,CAAC,EAAM,GAAgB,GAE9C,MAAO,CACL,EAAG,EAAS,CAAA,EAAI,CAAA,EAAiB,EACjC,EAAG,EAAI,EACP,OAAQ,EAAS,AAAU,EAAV,EACjB,MAAO,EAAgB,EAAQ,AAAU,EAAV,CACjC,CACF,CAEO,SAAS,EAAY,CAAK,EAC/B,GAAM,CACJ,SAAU,CAAC,CAAA,SACX,CAAQ,CAAA,UACR,CAAS,CAAA,cACT,EAAgB,CAAA,CAChB,SAAU,CAAC,CACX,SAAU,CAAE,CACZ,GAAG,EACJ,CAAG,EAEE,CAAA,SAAE,CAAQ,CAAE,CAAG,AAAA,IACf,EAAU,AAAA,CAAA,EAAA,EAAA,cAAa,AAAb,IACV,EAAS,CACb,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","sources":["<anon>","packages/column-views/src/units/boxes.ts"],"sourcesContent":["import \"./column-views.e7e26765.js\";\nimport \"./column-views.10a2bad6.js\";\nimport \"./column-views.cdcce702.js\";\nimport \"./column-views.8cfed88b.js\";\nimport \"./column-views.a0aac838.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, 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\";\nimport {path as $jfrfr$path} from \"d3-path\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global = globalThis;\n \nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequirea149\"];\n\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequirea149\"] = parcelRequire;\n}\n\nvar parcelRegister = parcelRequire.register;\n\n\n\n\n\nvar $5VyZI = parcelRequire(\"5VyZI\");\n\nvar $a3mb1 = parcelRequire(\"a3mb1\");\n\nvar $klU0I = parcelRequire(\"klU0I\");\n\n\nvar $iWhRv = parcelRequire(\"iWhRv\");\n\nvar $lgTAP = parcelRequire(\"lgTAP\");\n\nvar $bfmPX = parcelRequire(\"bfmPX\");\n\nconst $82e068a44c11e855$var$h = (0, $jfrfr$macrostrathyper).styled((0, (/*@__PURE__*/$parcel$interopDefault($klU0I))));\nfunction $82e068a44c11e855$var$useUnitRect(division, options = {}) {\n const { widthFraction: widthFraction = 1, axisType: axisType = (0, $jfrfr$ColumnAxisType).AGE, padding: padding = 0 } = options;\n const { scale: scale } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnContext));\n const { width: width } = (0, $jfrfr$useContext)((0, $jfrfr$ColumnLayoutContext));\n const [bottomHeight, topHeight] = (0, $iWhRv.getUnitHeightRange)(division, axisType);\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2\n };\n}\nfunction $82e068a44c11e855$export$d54fdbabca27e53(props) {\n const { division: d, children: children, className: className, widthFraction: widthFraction = 1, axisType: _, nColumns: __, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const lithMap = (0, $lgTAP.useLithologies)();\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(d, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds\n };\n const backgroundColor = (0, $bfmPX.getMixedUnitColor)(d, lithMap, null, false);\n const [ref, selected, onClick] = (0, $a3mb1.useUnitSelectionTarget)(d);\n return $82e068a44c11e855$var$h(\"g.unit\", {\n className: className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor\n }\n }, [\n $82e068a44c11e855$var$h(\"rect.unit.background\", {\n ref: ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick: onClick\n }),\n $82e068a44c11e855$var$h.if(selected)(\"rect.selection-overlay\", bounds)\n ]);\n}\nfunction $82e068a44c11e855$export$1d8b9ae22d404866(props) {\n const { division: d, children: children, fill: fill, defaultFill: defaultFill = \"transparent\", className: className, widthFraction: widthFraction = 1, backgroundColor: backgroundColor, patternColor: patternColor, patternID: patternID, axisType: _, ...baseBounds } = props;\n const { axisType: axisType } = (0, $jfrfr$useColumn)();\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n const bounds = {\n ...$82e068a44c11e855$var$useUnitRect(d, {\n widthFraction: widthFraction,\n axisType: axisType\n }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom\n };\n const _patternID = patternID ?? (0, $5VyZI.resolveID)(d);\n let _fill = fill ?? (0, $jfrfr$useGeologicPattern)(_patternID, defaultFill);\n const hasBackgroundColor = backgroundColor != null;\n const _className = (0, $jfrfr$classnames)(className, {\n colored: hasBackgroundColor\n });\n const [ref, selected, onClick] = (0, $a3mb1.useUnitSelectionTarget)(d);\n //const key = `unit-${d.unit_id}`;\n return $82e068a44c11e855$var$h(\"g.unit\", {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor\n }\n }, [\n $82e068a44c11e855$var$h($82e068a44c11e855$var$UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick: onClick,\n className: \"background\"\n }),\n $82e068a44c11e855$var$h($82e068a44c11e855$var$UnitRect, {\n ref: ref,\n ...bounds,\n fill: _fill,\n onClick: //mask,\n onClick,\n className: \"unit\"\n }),\n $82e068a44c11e855$var$h.if(selected)($82e068a44c11e855$var$UnitRect, {\n ...bounds,\n className: \"selection-overlay\"\n }),\n //defs,\n children\n ]);\n}\nconst $82e068a44c11e855$var$UnitRect = (0, $jfrfr$forwardRef)((props, ref)=>{\n const { x: x, y: y, width: width, height: height, overflowTop: overflowTop = false, overflowBottom: overflowBottom = false, ...rest } = props;\n if (!overflowTop && !overflowBottom) return $82e068a44c11e855$var$h(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n ref: ref,\n ...rest\n });\n else {\n const d = $82e068a44c11e855$var$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$var$zigZagBoxPath(x, y, width, height, top, bottom) {\n const zigZagWidth = 10;\n const zigZagHeight = 4;\n const d = (0, $jfrfr$path)();\n const nZigZags = Math.floor(width / zigZagWidth - 0.5);\n const _zigZagWidth = width / (nZigZags + 0.5);\n d.moveTo(x, y);\n let dy = zigZagHeight / 2;\n // Each zig-zag consists of a short outward motion\n let dx = _zigZagWidth / 4;\n let cx = x;\n let cy = y;\n const doZigZag = (last = false)=>{\n cx += dx;\n cy -= dy;\n d.lineTo(cx, cy);\n let scalar = last ? 1 : 2;\n cx += dx * scalar;\n cy += dy * scalar;\n d.lineTo(cx, cy);\n cx += dx;\n cy -= dy;\n };\n if (top) {\n // Move to the offset\n //d.lineTo(cx, y);\n // Draw the zig-zags\n for(let i = 0; i < nZigZags; i++)doZigZag();\n // Draw the last half zig-zag\n doZigZag(true);\n }\n // Draw the right edge\n d.lineTo(x + width, y);\n d.lineTo(x + width, y + height);\n if (bottom) {\n dx = -dx;\n dy = -dy;\n cx = x + width;\n cy = y + height;\n for(let i = 0; i < nZigZags; i++)doZigZag();\n doZigZag(true);\n }\n // Draw the last line to the left edge\n d.lineTo(x, y + height);\n // Draw the left edge\n d.closePath();\n // Now render the path;\n return d.toString();\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.b773edb8.js.map\n","import {\n ColumnAxisType,\n ColumnContext,\n ColumnLayoutContext,\n ForeignObject,\n PatternDefsProvider,\n useColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { SizeAwareLabel, Clickable } from \"@macrostrat/ui-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport { forwardRef, ReactNode, useContext, useMemo } from \"react\";\nimport { resolveID, scalePattern } from \"./resolvers\";\nimport { useUnitSelectionTarget } from \"./selection\";\nimport { IUnit } from \"./types\";\nimport styles from \"./boxes.module.sass\";\nimport classNames from \"classnames\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { useLithologies } from \"../data-provider\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { path } from \"d3-path\";\nimport type { RectBounds } from \"./types\";\n\nconst h = hyper.styled(styles);\n\ninterface UnitRectOptions {\n widthFraction?: number;\n axisType?: ColumnAxisType;\n // Padding to create overflow for zig-zags or other ornamented edges\n padding?: number;\n}\n\ninterface UnitProps extends Clickable, Partial<RectBounds>, UnitRectOptions {\n division: IUnit;\n resolveID?(IUnit): string;\n UUID?: string;\n defaultFill?: string;\n widthFraction?: number;\n children?: ReactNode;\n className?: string;\n fill?: string;\n backgroundColor?: string;\n patternColor?: string;\n patternID?: string | number;\n}\n\nexport interface LabeledUnitProps\n extends UnitRectOptions,\n Clickable,\n Partial<RectBounds> {\n division: IUnit;\n patternID?: string | number;\n label: string;\n onLabelUpdated?(label: string, shown: boolean);\n halfWidth?: boolean;\n showLabel?: boolean;\n backgroundColor?: string;\n}\n\nfunction useUnitRect(\n division: IUnit,\n options: UnitRectOptions = {},\n): RectBounds {\n const {\n widthFraction = 1,\n axisType = ColumnAxisType.AGE,\n padding = 0,\n } = options;\n const { scale } = useContext(ColumnContext);\n const { width } = useContext(ColumnLayoutContext);\n\n const [bottomHeight, topHeight] = getUnitHeightRange(division, axisType);\n\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2,\n };\n}\n\nexport function MinimalUnit(props) {\n const {\n division: d,\n children,\n className,\n widthFraction = 1,\n axisType: _, // not sure why this is brought in...\n nColumns: __,\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const lithMap = useLithologies();\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n };\n\n const backgroundColor = getMixedUnitColor(d, lithMap, null, false);\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor,\n },\n },\n [\n h(\"rect.unit.background\", {\n ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick,\n }),\n h.if(selected)(\"rect.selection-overlay\", bounds),\n ],\n );\n}\n\nfunction Unit(props: UnitProps) {\n const {\n division: d,\n children,\n fill,\n defaultFill = \"transparent\",\n className,\n widthFraction = 1,\n backgroundColor,\n patternColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom,\n };\n const _patternID = patternID ?? resolveID(d);\n let _fill = fill ?? useGeologicPattern(_patternID, defaultFill);\n\n const hasBackgroundColor = backgroundColor != null;\n\n const _className = classNames(className, { colored: hasBackgroundColor });\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n //const key = `unit-${d.unit_id}`;\n\n return h(\n \"g.unit\",\n {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n },\n },\n [\n h(UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick,\n className: \"background\",\n }),\n h(UnitRect, {\n ref,\n ...bounds,\n fill: _fill,\n //mask,\n onClick,\n className: \"unit\",\n }),\n h.if(selected)(UnitRect, { ...bounds, className: \"selection-overlay\" }),\n //defs,\n children,\n ],\n );\n}\n\ninterface UnitRectProps {\n x: number;\n y: number;\n width: number;\n height: number;\n className: string;\n // Used to determine if the rect should have a zig-zag edge on the top or bottom\n overflowTop?: boolean;\n overflowBottom?: boolean;\n [key: string]: any;\n}\n\nconst UnitRect = forwardRef((props: UnitRectProps, ref) => {\n const {\n x,\n y,\n width,\n height,\n overflowTop = false,\n overflowBottom = false,\n ...rest\n } = props;\n\n if (!overflowTop && !overflowBottom) {\n return h(\"rect\", {\n x,\n y,\n width,\n height,\n ref,\n ...rest,\n });\n } else {\n const d = zigZagBoxPath(x, y, width, height, overflowTop, overflowBottom);\n return h(\"path\", {\n d,\n ref,\n ...rest,\n });\n }\n});\n\nfunction zigZagBoxPath(x, y, width, height, top: boolean, bottom: boolean) {\n const zigZagWidth = 10;\n const zigZagHeight = 4;\n\n const d = path();\n\n const nZigZags = Math.floor(width / zigZagWidth - 0.5);\n const _zigZagWidth = width / (nZigZags + 0.5);\n\n d.moveTo(x, y);\n let dy = zigZagHeight / 2;\n // Each zig-zag consists of a short outward motion\n let dx = _zigZagWidth / 4;\n\n let cx = x;\n let cy = y;\n\n const doZigZag = (last = false) => {\n cx += dx;\n cy -= dy;\n d.lineTo(cx, cy);\n let scalar = last ? 1 : 2;\n cx += dx * scalar;\n cy += dy * scalar;\n d.lineTo(cx, cy);\n cx += dx;\n cy -= dy;\n };\n\n if (top) {\n // Move to the offset\n //d.lineTo(cx, y);\n // Draw the zig-zags\n for (let i = 0; i < nZigZags; i++) {\n doZigZag();\n }\n // Draw the last half zig-zag\n doZigZag(true);\n }\n // Draw the right edge\n d.lineTo(x + width, y);\n d.lineTo(x + width, y + height);\n\n if (bottom) {\n dx = -dx;\n dy = -dy;\n cx = x + width;\n cy = y + height;\n\n for (let i = 0; i < nZigZags; i++) {\n doZigZag();\n }\n doZigZag(true);\n }\n // Draw the last line to the left edge\n d.lineTo(x, y + height);\n // Draw the left edge\n d.closePath();\n\n // Now render the path;\n return d.toString();\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","ForeignObject","$jfrfr$ForeignObject","PatternDefsProvider","$jfrfr$PatternDefsProvider","SizeAwareLabel","$jfrfr$SizeAwareLabel","$jfrfr$macrostrathyper","useContext","$jfrfr$useContext","forwardRef","$jfrfr$forwardRef","useMemo","$jfrfr$useMemo","$jfrfr$classnames","path","$jfrfr$path","$parcel$global","globalThis","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$5VyZI","$a3mb1","$klU0I","$iWhRv","$lgTAP","$bfmPX","$82e068a44c11e855$var$h","styled","a","__esModule","default","$82e068a44c11e855$var$useUnitRect","division","options","widthFraction","axisType","AGE","padding","scale","width","bottomHeight","topHeight","getUnitHeightRange","y","height","Math","abs","x","$82e068a44c11e855$export$d54fdbabca27e53","props","d","children","className","_","nColumns","__","baseBounds","lithMap","useLithologies","bounds","backgroundColor","getMixedUnitColor","ref","selected","onClick","useUnitSelectionTarget","style","fill","fillOpacity","stroke","if","$82e068a44c11e855$export$1d8b9ae22d404866","defaultFill","patternColor","patternID","hasOverflowTop","t_clip_pos","hasOverflowBottom","b_clip_pos","overflowTop","overflowBottom","_patternID","resolveID","_fill","_className","colored","$82e068a44c11e855$var$UnitRect","rest","$82e068a44c11e855$var$zigZagBoxPath","top","bottom","nZigZags","floor","moveTo","dy","zigZagHeight","dx","_zigZagWidth","cx","cy","doZigZag","last","lineTo","scalar","i","closePath","toString","$82e068a44c11e855$export$b4f0ca233b98f9af","label","onLabelUpdated","showLabel","labelClassName","onVisibilityChanged","viz","$82e068a44c11e855$export$5d1cdfabe8dc8085","unitComponent","unitComponentProps","divisions","length","console","warn","map","key","unit_id","scalePattern","MinimalUnit","Unit","LabeledUnit","UnitBoxes"],"version":3,"file":"column-views.b773edb8.js.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- function n(n,c,a,e){Object.defineProperty(n,c,{get:a,set:e,enumerable:!0,configurable:!0})}var c,a,e,o,t,i,f,m,l,r,u,s,_={};n(_,"column-container",()=>c,n=>c=n),n(_,"timescale-column",()=>a,n=>a=n),n(_,"section-main",()=>e,n=>e=n),n(_,"section-units-container",()=>o,n=>o=n),n(_,"main-column",()=>t,n=>t=n),n(_,"unconformity-labels",()=>i,n=>i=n),n(_,"unconformity",()=>f,n=>f=n),n(_,"giga",()=>m,n=>m=n),n(_,"mega",()=>l,n=>l=n),n(_,"large",()=>r,n=>r=n),n(_,"small",()=>u,n=>u=n),n(_,"unconformity-text",()=>s,n=>s=n),c="column-container_afc440",a="timescale-column_afc440",e="section-main_afc440",o="section-units-container_afc440",t="main-column_afc440",i="unconformity-labels_afc440",f="unconformity_afc440",m="giga_afc440",l="mega_afc440",r="large_afc440",u="small_afc440",s="unconformity-text_afc440";export{_ as default};
2
- //# sourceMappingURL=column-views.cd3c430b.js.map
@@ -1 +0,0 @@
1
- {"mappings":"A,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,ICAA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,E,E,C,E,E,E,mB,I,E,A,G,E,G,E,E,mB,I,E,A,G,E,G,E,E,e,I,E,A,G,E,G,E,E,0B,I,E,A,G,E,G,E,E,c,I,E,A,G,E,G,E,E,sB,I,E,A,G,E,G,E,E,e,I,E,A,G,E,G,E,E,O,I,E,A,G,E,G,E,E,O,I,E,A,G,E,G,E,E,Q,I,E,A,G,E,G,E,E,Q,I,E,A,G,E,G,E,E,oB,I,E,A,G,E,GAXA,EAAqC,0BACrC,EAAqC,0BACrC,EAAiC,sBACjC,EAA4C,iCAC5C,EAAgC,qBAChC,EAAwC,6BACxC,EAAiC,sBACjC,EAAyB,cACzB,EAAyB,cACzB,EAA0B,eAC1B,EAA0B,eAC1B,EAAsC,kC,K,O","sources":["<anon>","packages/column-views/src/column.module.sass"],"sourcesContent":["\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $5cefe1c5058d37da$exports = {};\n\n$parcel$export($5cefe1c5058d37da$exports, \"column-container\", () => $5cefe1c5058d37da$export$e908cef0cccb98df, (v) => $5cefe1c5058d37da$export$e908cef0cccb98df = v);\n$parcel$export($5cefe1c5058d37da$exports, \"timescale-column\", () => $5cefe1c5058d37da$export$82c2e1a892d790ab, (v) => $5cefe1c5058d37da$export$82c2e1a892d790ab = v);\n$parcel$export($5cefe1c5058d37da$exports, \"section-main\", () => $5cefe1c5058d37da$export$add6075ee40659c8, (v) => $5cefe1c5058d37da$export$add6075ee40659c8 = v);\n$parcel$export($5cefe1c5058d37da$exports, \"section-units-container\", () => $5cefe1c5058d37da$export$37c0a390e37eb2da, (v) => $5cefe1c5058d37da$export$37c0a390e37eb2da = v);\n$parcel$export($5cefe1c5058d37da$exports, \"main-column\", () => $5cefe1c5058d37da$export$9c88f9a435c40ccb, (v) => $5cefe1c5058d37da$export$9c88f9a435c40ccb = v);\n$parcel$export($5cefe1c5058d37da$exports, \"unconformity-labels\", () => $5cefe1c5058d37da$export$d726faed2da21993, (v) => $5cefe1c5058d37da$export$d726faed2da21993 = v);\n$parcel$export($5cefe1c5058d37da$exports, \"unconformity\", () => $5cefe1c5058d37da$export$7b4a6d978979c0fa, (v) => $5cefe1c5058d37da$export$7b4a6d978979c0fa = v);\n$parcel$export($5cefe1c5058d37da$exports, \"giga\", () => $5cefe1c5058d37da$export$197e40aa3a484017, (v) => $5cefe1c5058d37da$export$197e40aa3a484017 = v);\n$parcel$export($5cefe1c5058d37da$exports, \"mega\", () => $5cefe1c5058d37da$export$580f1e8cf64f2815, (v) => $5cefe1c5058d37da$export$580f1e8cf64f2815 = v);\n$parcel$export($5cefe1c5058d37da$exports, \"large\", () => $5cefe1c5058d37da$export$f09585a853dddd32, (v) => $5cefe1c5058d37da$export$f09585a853dddd32 = v);\n$parcel$export($5cefe1c5058d37da$exports, \"small\", () => $5cefe1c5058d37da$export$3c17b0e969a90510, (v) => $5cefe1c5058d37da$export$3c17b0e969a90510 = v);\n$parcel$export($5cefe1c5058d37da$exports, \"unconformity-text\", () => $5cefe1c5058d37da$export$925235908943319a, (v) => $5cefe1c5058d37da$export$925235908943319a = v);\nvar $5cefe1c5058d37da$export$e908cef0cccb98df;\nvar $5cefe1c5058d37da$export$82c2e1a892d790ab;\nvar $5cefe1c5058d37da$export$add6075ee40659c8;\nvar $5cefe1c5058d37da$export$37c0a390e37eb2da;\nvar $5cefe1c5058d37da$export$9c88f9a435c40ccb;\nvar $5cefe1c5058d37da$export$d726faed2da21993;\nvar $5cefe1c5058d37da$export$7b4a6d978979c0fa;\nvar $5cefe1c5058d37da$export$197e40aa3a484017;\nvar $5cefe1c5058d37da$export$580f1e8cf64f2815;\nvar $5cefe1c5058d37da$export$f09585a853dddd32;\nvar $5cefe1c5058d37da$export$3c17b0e969a90510;\nvar $5cefe1c5058d37da$export$925235908943319a;\n$5cefe1c5058d37da$export$e908cef0cccb98df = \"column-container_afc440\";\n$5cefe1c5058d37da$export$82c2e1a892d790ab = \"timescale-column_afc440\";\n$5cefe1c5058d37da$export$add6075ee40659c8 = \"section-main_afc440\";\n$5cefe1c5058d37da$export$37c0a390e37eb2da = \"section-units-container_afc440\";\n$5cefe1c5058d37da$export$9c88f9a435c40ccb = \"main-column_afc440\";\n$5cefe1c5058d37da$export$d726faed2da21993 = \"unconformity-labels_afc440\";\n$5cefe1c5058d37da$export$7b4a6d978979c0fa = \"unconformity_afc440\";\n$5cefe1c5058d37da$export$197e40aa3a484017 = \"giga_afc440\";\n$5cefe1c5058d37da$export$580f1e8cf64f2815 = \"mega_afc440\";\n$5cefe1c5058d37da$export$f09585a853dddd32 = \"large_afc440\";\n$5cefe1c5058d37da$export$3c17b0e969a90510 = \"small_afc440\";\n$5cefe1c5058d37da$export$925235908943319a = \"unconformity-text_afc440\";\n\n\nexport {$5cefe1c5058d37da$exports as default};\n//# sourceMappingURL=column-views.cd3c430b.js.map\n",null],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$5cefe1c5058d37da$export$e908cef0cccb98df","$5cefe1c5058d37da$export$82c2e1a892d790ab","$5cefe1c5058d37da$export$add6075ee40659c8","$5cefe1c5058d37da$export$37c0a390e37eb2da","$5cefe1c5058d37da$export$9c88f9a435c40ccb","$5cefe1c5058d37da$export$d726faed2da21993","$5cefe1c5058d37da$export$7b4a6d978979c0fa","$5cefe1c5058d37da$export$197e40aa3a484017","$5cefe1c5058d37da$export$580f1e8cf64f2815","$5cefe1c5058d37da$export$f09585a853dddd32","$5cefe1c5058d37da$export$3c17b0e969a90510","$5cefe1c5058d37da$export$925235908943319a","$5cefe1c5058d37da$exports","default"],"version":3,"file":"column-views.cd3c430b.js.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- .VC2fja_fossil-collections{border-left:1px solid var(--column-stroke-color);margin:1px 0;padding-left:.2em;font-size:.9em;list-style:none}.VC2fja_fossil-collections li{display:inline}.VC2fja_fossil-collections li:not(:last-child):after{content:", ";color:var(--secondary-color)}.VC2fja_fossil-collections li.VC2fja_too-many{color:var(--secondary-color);font-style:italic}
2
- /*# sourceMappingURL=column-views.cd468adb.css.map */
@@ -1 +0,0 @@
1
- {"mappings":"ACAA,0IAME,6CAEE,+FAGF","sources":["column-views.cd468adb.css","packages/column-views/src/facets/fossils/index.module.sass"],"sourcesContent":[".VC2fja_fossil-collections {\n border-left: 1px solid var(--column-stroke-color);\n margin: 1px 0;\n padding-left: .2em;\n font-size: .9em;\n list-style: none;\n}\n\n.VC2fja_fossil-collections li {\n display: inline;\n}\n\n.VC2fja_fossil-collections li:not(:last-child):after {\n content: \", \";\n color: var(--secondary-color);\n}\n\n.VC2fja_fossil-collections li.VC2fja_too-many {\n color: var(--secondary-color);\n font-style: italic;\n}\n/*# sourceMappingURL=column-views.cd468adb.css.map */\n",".fossil-collections\n padding-left: 0.2em\n font-size: 0.9em\n list-style: none\n border-left: 1px solid var(--column-stroke-color)\n margin: 1px 0\n li\n display: inline\n &:not(:last-child):after\n content: \", \"\n color: var(--secondary-color)\n li.too-many\n color: var(--secondary-color)\n font-style: italic\n"],"names":[],"version":3,"file":"column-views.cd468adb.css.map","sourceRoot":"../../../../"}
@@ -1,2 +0,0 @@
1
- .column-container_afc440,body.light-mode .column-container_afc440{--column-background-color:var(--background-color,#fff);--column-stroke-color:var(--text-emphasized-color,#000);--column-text-color:var(--text-emphasized-color,#000)}@media (prefers-color-scheme:dark){body:not(.light-mode) .column-container_afc440{--column-background-color:var(--background-color,#000);--column-stroke-color:var(--text-emphasized-color,#fff);--column-text-color:var(--text-emphasized-color,#fff);color-scheme:dark;color:var(--column-text-color)}body:not(.light-mode) .column-container_afc440 .timescale{color:#000}body:not(.light-mode) .column-container_afc440 svg pattern image{filter:invert()}}body.dark-mode .column-container_afc440{--column-background-color:var(--background-color,#000);--column-stroke-color:var(--text-emphasized-color,#fff);--column-text-color:var(--text-emphasized-color,#fff);color-scheme:dark;color:var(--column-text-color)}body.dark-mode .column-container_afc440 .timescale{color:#000}body.dark-mode .column-container_afc440 svg pattern image{filter:invert()}.column-container_afc440 .column{flex-direction:row;height:fit-content;display:flex;position:relative}.column-container_afc440 .unit{stroke:var(--column-stroke-color);stroke-width:1px}.column-container_afc440 .selection-overlay{fill:var(--selection-overlay-color,red);fill-opacity:var(--selection-overlay-opacity,.5)}.column-container_afc440 g.lithology-column use.frame{stroke:var(--column-stroke-color);pointer-events:none;stroke-width:1.5px!important}.column-container_afc440 .unit-label{text-align:center}.column-container_afc440 .col-note-label{margin:1px 0;font-size:10px;line-height:9px;border-left:none!important}.column-container_afc440 g.height-range{display:none}.column-container_afc440 .note-inner{border:none;padding:1px}.column-container_afc440 .frame rect{fill:#0000}.column-container_afc440 .default-buttons{width:100%;margin:0 -10px}.column-container_afc440 div.section{flex-direction:row;display:flex}.column-container_afc440 .section .divisions .unit{cursor:pointer}.column-container_afc440 .timescale{width:calc((1.5em + 1.5px)*var(--timescale-level-count,4));--timescale-level-size:1.5em}.timescale-column_afc440{position:relative}.section-main_afc440{margin-bottom:-4px;position:relative}.section-units-container_afc440,.main-column_afc440{position:relative}.unconformity-labels_afc440{pointer-events:none;position:absolute;top:0;left:0}.unconformity_afc440{text-align:center;justify-content:center;align-items:center;font-size:.8em;display:flex;position:absolute;top:0}.unconformity_afc440.giga_afc440{font-size:1em;font-weight:800}.unconformity_afc440.mega_afc440{font-size:.9em;font-weight:700}.unconformity_afc440.large_afc440{font-weight:600}.unconformity_afc440.small_afc440{font-weight:300}.unconformity-text_afc440{width:var(--column-width);color:var(--column-stroke-color);--unit-font-style:normal}
2
- /*# sourceMappingURL=column-views.d9bbd6fb.css.map */
@@ -1 +0,0 @@
1
- {"mappings":"ACAA,uOAWE,mCACE,qQAOI,qEAEA,kFAIN,8PAOE,8DAIF,0EAIE,sGAOA,kFAKA,qIAIF,yIAKA,uDAGF,gH,qD,6D,gDAgBE,oE,qE,kE,4H,2C,0D,sEA6BF,+EAOE,qI,+DAWE,gEAMF,kD,kD","sources":["column-views.d9bbd6fb.css","packages/column-views/src/column.module.sass"],"sourcesContent":[".column-container_afc440, body.light-mode .column-container_afc440 {\n --column-background-color: var(--background-color, #fff);\n --column-stroke-color: var(--text-emphasized-color, #000);\n --column-text-color: var(--text-emphasized-color, #000);\n}\n\n@media (prefers-color-scheme: dark) {\n body:not(.light-mode) .column-container_afc440 {\n --column-background-color: var(--background-color, #000);\n --column-stroke-color: var(--text-emphasized-color, #fff);\n --column-text-color: var(--text-emphasized-color, #fff);\n color-scheme: dark;\n color: var(--column-text-color);\n }\n\n body:not(.light-mode) .column-container_afc440 .timescale {\n color: #000;\n }\n\n body:not(.light-mode) .column-container_afc440 svg pattern image {\n filter: invert();\n }\n}\n\nbody.dark-mode .column-container_afc440 {\n --column-background-color: var(--background-color, #000);\n --column-stroke-color: var(--text-emphasized-color, #fff);\n --column-text-color: var(--text-emphasized-color, #fff);\n color-scheme: dark;\n color: var(--column-text-color);\n}\n\nbody.dark-mode .column-container_afc440 .timescale {\n color: #000;\n}\n\nbody.dark-mode .column-container_afc440 svg pattern image {\n filter: invert();\n}\n\n.column-container_afc440 .column {\n flex-direction: row;\n height: fit-content;\n display: flex;\n position: relative;\n}\n\n.column-container_afc440 .unit {\n stroke: var(--column-stroke-color);\n stroke-width: 1px;\n}\n\n.column-container_afc440 .selection-overlay {\n fill: var(--selection-overlay-color, red);\n fill-opacity: var(--selection-overlay-opacity, .5);\n}\n\n.column-container_afc440 g.lithology-column use.frame {\n stroke: var(--column-stroke-color);\n pointer-events: none;\n stroke-width: 1.5px !important;\n}\n\n.column-container_afc440 .unit-label {\n text-align: center;\n}\n\n.column-container_afc440 .col-note-label {\n margin: 1px 0;\n font-size: 10px;\n line-height: 9px;\n border-left: none !important;\n}\n\n.column-container_afc440 g.height-range {\n display: none;\n}\n\n.column-container_afc440 .note-inner {\n border: none;\n padding: 1px;\n}\n\n.column-container_afc440 .frame rect {\n fill: #0000;\n}\n\n.column-container_afc440 .default-buttons {\n width: 100%;\n margin: 0 -10px;\n}\n\n.column-container_afc440 div.section {\n flex-direction: row;\n display: flex;\n}\n\n.column-container_afc440 .section .divisions .unit {\n cursor: pointer;\n}\n\n.column-container_afc440 .timescale {\n width: calc((1.5em + 1.5px) * var(--timescale-level-count, 4));\n --timescale-level-size: 1.5em;\n}\n\n.timescale-column_afc440 {\n position: relative;\n}\n\n.section-main_afc440 {\n margin-bottom: -4px;\n position: relative;\n}\n\n.section-units-container_afc440, .main-column_afc440 {\n position: relative;\n}\n\n.unconformity-labels_afc440 {\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.unconformity_afc440 {\n text-align: center;\n justify-content: center;\n align-items: center;\n font-size: .8em;\n display: flex;\n position: absolute;\n top: 0;\n}\n\n.unconformity_afc440.giga_afc440 {\n font-size: 1em;\n font-weight: 800;\n}\n\n.unconformity_afc440.mega_afc440 {\n font-size: .9em;\n font-weight: 700;\n}\n\n.unconformity_afc440.large_afc440 {\n font-weight: 600;\n}\n\n.unconformity_afc440.small_afc440 {\n font-weight: 300;\n}\n\n.unconformity-text_afc440 {\n width: var(--column-width);\n color: var(--column-stroke-color);\n --unit-font-style: normal;\n}\n/*# sourceMappingURL=column-views.d9bbd6fb.css.map */\n",".column-container, body:global(.light-mode) .column-container\n --column-background-color: var(--background-color, #fff)\n --column-stroke-color: var(--text-emphasized-color, #000)\n --column-text-color: var(--text-emphasized-color, #000)\n\n/* We have to duplicate the dark mode styles here\n because we want to set them either if the preferred\n color scheme is dark OR if dark mode is explicitly enabled.\n If dark mode is explicitly enabled, we want to override\n the media query. */\n@media (prefers-color-scheme: dark)\n body:not(:global(.light-mode)) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\nbody:global(.dark-mode) .column-container\n --column-background-color: var(--background-color, #000)\n --column-stroke-color: var(--text-emphasized-color, #fff)\n --column-text-color: var(--text-emphasized-color, #fff)\n color-scheme: dark\n color: var(--column-text-color)\n :global\n .timescale\n color: #000\n svg pattern image\n filter: invert(100%)\n\n.column-container :global\n .column\n display: flex\n flex-direction: row\n position: relative\n height: fit-content\n\n .unit\n stroke: var(--column-stroke-color)\n stroke-width: 1px\n\n .selection-overlay\n fill: var(--selection-overlay-color, red)\n fill-opacity: var(--selection-overlay-opacity, 0.5)\n\n g.lithology-column use.frame\n stroke: var(--column-stroke-color)\n stroke-width: 1.5px !important\n pointer-events: none\n\n.column-container :global .unit-label\n text-align: center\n\n.column-container :global .col-note-label\n font-size: 10px\n line-height: 9px\n border-left: none !important\n margin: 1px 0\n\n.column-container :global g.height-range\n display: none\n\n.column-container :global .note-inner\n border: none\n padding: 1px\n\n.column-container :global .frame rect\n fill: transparent\n\n.column-container :global .default-buttons\n width: 100%\n margin: 0 -10px\n\n.column-container :global div.section\n display: flex\n flex-direction: row\n\n.column-container :global .section .divisions .unit\n cursor: pointer\n\n.column-container :global(.timescale)\n width: calc(calc(1.5em + 1.5px) * var(--timescale-level-count, 4))\n --timescale-level-size: 1.5em\n\n.timescale-column\n position: relative\n\n.section-main\n position: relative\n margin-bottom: -4px\n\n.section-units-container\n position: relative\n\n.main-column\n position: relative\n\n.unconformity-labels\n position: absolute\n top: 0\n left: 0\n pointer-events: none\n\n\n.unconformity\n text-align: center\n position: absolute\n top: 0px\n display: flex\n justify-content: center\n align-items: center\n font-size: 0.8em\n &.giga\n font-weight: 800\n font-size: 1em\n &.mega\n font-weight: 600\n font-weight: 700\n font-size: 0.9em\n &.large\n font-weight: 600\n &.small\n font-weight: 300\n\n\n.unconformity-text\n width: var(--column-width)\n color: var(--column-stroke-color)\n --unit-font-style: normal\n\n\n"],"names":[],"version":3,"file":"column-views.d9bbd6fb.css.map","sourceRoot":"../../../../"}