@macrostrat/column-views 1.0.3 → 2.0.1

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 (258) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/esm/{data-area.daff8da0.js → column-views.062d164a.js} +1 -1
  3. package/dist/esm/{data-area.daff8da0.js.map → column-views.062d164a.js.map} +1 -1
  4. package/dist/esm/{data-provider.1506eb64.js → column-views.07521ce6.js} +1 -1
  5. package/dist/esm/column-views.07521ce6.js.map +1 -0
  6. package/dist/esm/column-views.134b2e2a.js +9 -0
  7. package/dist/esm/column-views.134b2e2a.js.map +1 -0
  8. package/dist/esm/{selection-popover.module.0a701258.css → column-views.16cc7a58.css} +11 -8
  9. package/dist/esm/column-views.16cc7a58.css.map +1 -0
  10. package/dist/esm/column-views.1c589cc4.js +141 -0
  11. package/dist/esm/column-views.1c589cc4.js.map +1 -0
  12. package/dist/esm/column-views.1ece326b.js +420 -0
  13. package/dist/esm/column-views.1ece326b.js.map +1 -0
  14. package/dist/esm/column-views.1edc7300.js +40 -0
  15. package/dist/esm/column-views.1edc7300.js.map +1 -0
  16. package/dist/esm/column-views.240ef158.css +159 -0
  17. package/dist/esm/column-views.240ef158.css.map +1 -0
  18. package/dist/esm/column-views.25471fe0.css +111 -0
  19. package/dist/esm/column-views.25471fe0.css.map +1 -0
  20. package/dist/esm/column-views.28ee5f43.js +288 -0
  21. package/dist/esm/column-views.28ee5f43.js.map +1 -0
  22. package/dist/esm/column-views.30646469.js +118 -0
  23. package/dist/esm/column-views.30646469.js.map +1 -0
  24. package/dist/esm/column-views.338a7a83.css +134 -0
  25. package/dist/esm/column-views.338a7a83.css.map +1 -0
  26. package/dist/esm/column-views.33dbc778.js +95 -0
  27. package/dist/esm/column-views.33dbc778.js.map +1 -0
  28. package/dist/esm/column-views.343b5aa2.js +98 -0
  29. package/dist/esm/column-views.343b5aa2.js.map +1 -0
  30. package/dist/esm/column-views.34636ec7.js +104 -0
  31. package/dist/esm/column-views.34636ec7.js.map +1 -0
  32. package/dist/esm/column-views.3465c8ad.js +16 -0
  33. package/dist/esm/column-views.3465c8ad.js.map +1 -0
  34. package/dist/esm/column-views.39657bbf.js +55 -0
  35. package/dist/esm/column-views.39657bbf.js.map +1 -0
  36. package/dist/esm/column-views.3b972a9b.css +4 -0
  37. package/dist/esm/{composite.module.69a38fd1.css.map → column-views.3b972a9b.css.map} +1 -1
  38. package/dist/esm/column-views.3bec70d6.js +167 -0
  39. package/dist/esm/column-views.3bec70d6.js.map +1 -0
  40. package/dist/esm/column-views.3de4dc43.js +66 -0
  41. package/dist/esm/column-views.3de4dc43.js.map +1 -0
  42. package/dist/esm/{column.db058031.js → column-views.3f4db8cb.js} +8 -8
  43. package/dist/esm/column-views.3f4db8cb.js.map +1 -0
  44. package/dist/esm/column-views.40c1f361.js +206 -0
  45. package/dist/esm/column-views.40c1f361.js.map +1 -0
  46. package/dist/esm/{composite.module.0638e7ee.js → column-views.40cd59b5.js} +1 -1
  47. package/dist/esm/{composite.module.0638e7ee.js.map → column-views.40cd59b5.js.map} +1 -1
  48. package/dist/esm/column-views.4637f4ce.js +46 -0
  49. package/dist/esm/column-views.4637f4ce.js.map +1 -0
  50. package/dist/esm/column-views.4c4c5bac.js +163 -0
  51. package/dist/esm/column-views.4c4c5bac.js.map +1 -0
  52. package/dist/esm/column-views.4d374a35.js +19 -0
  53. package/dist/esm/column-views.4d374a35.js.map +1 -0
  54. package/dist/esm/column-views.57c4ddf3.js +125 -0
  55. package/dist/esm/column-views.57c4ddf3.js.map +1 -0
  56. package/dist/esm/column-views.58b82432.js +58 -0
  57. package/dist/esm/column-views.58b82432.js.map +1 -0
  58. package/dist/esm/column-views.5b2635fd.js +13 -0
  59. package/dist/esm/column-views.5b2635fd.js.map +1 -0
  60. package/dist/esm/column-views.5c02fee2.js +258 -0
  61. package/dist/esm/column-views.5c02fee2.js.map +1 -0
  62. package/dist/esm/column-views.5cc09c1d.js +152 -0
  63. package/dist/esm/column-views.5cc09c1d.js.map +1 -0
  64. package/dist/esm/{names.f6a4e9a4.js → column-views.650bd9f5.js} +5 -5
  65. package/dist/esm/column-views.650bd9f5.js.map +1 -0
  66. package/dist/esm/column-views.68409161.js +89 -0
  67. package/dist/esm/column-views.68409161.js.map +1 -0
  68. package/dist/esm/column-views.6a954628.js +70 -0
  69. package/dist/esm/column-views.6a954628.js.map +1 -0
  70. package/dist/esm/column-views.6c670c13.css +26 -0
  71. package/dist/esm/column-views.6c670c13.css.map +1 -0
  72. package/dist/esm/column-views.6d6b73b4.js +55 -0
  73. package/dist/esm/column-views.6d6b73b4.js.map +1 -0
  74. package/dist/esm/column-views.86c4b36f.js +222 -0
  75. package/dist/esm/column-views.86c4b36f.js.map +1 -0
  76. package/dist/esm/column-views.88de2cee.js +9 -0
  77. package/dist/esm/column-views.88de2cee.js.map +1 -0
  78. package/dist/esm/{resolvers.b5c82b78.js → column-views.8dd877af.js} +16 -3
  79. package/dist/esm/column-views.8dd877af.js.map +1 -0
  80. package/dist/esm/column-views.8e51206e.js +143 -0
  81. package/dist/esm/column-views.8e51206e.js.map +1 -0
  82. package/dist/esm/{column.module.7f47d25a.js → column-views.94b5cca1.js} +1 -1
  83. package/dist/esm/{column.module.7f47d25a.js.map → column-views.94b5cca1.js.map} +1 -1
  84. package/dist/esm/column-views.9804efda.js +75 -0
  85. package/dist/esm/column-views.9804efda.js.map +1 -0
  86. package/dist/esm/column-views.9bdd477a.js +57 -0
  87. package/dist/esm/column-views.9bdd477a.js.map +1 -0
  88. package/dist/esm/column-views.9ced149e.js +98 -0
  89. package/dist/esm/column-views.9ced149e.js.map +1 -0
  90. package/dist/esm/{column.module.cbb072df.css → column-views.a7be0a4a.css} +1 -1
  91. package/dist/esm/{column.module.cbb072df.css.map → column-views.a7be0a4a.css.map} +1 -1
  92. package/dist/esm/column-views.a98214b2.js +9 -0
  93. package/dist/esm/column-views.a98214b2.js.map +1 -0
  94. package/dist/esm/column-views.aa9fcdba.js +221 -0
  95. package/dist/esm/column-views.aa9fcdba.js.map +1 -0
  96. package/dist/esm/{isotopes-column.7cb5cc45.js → column-views.ac9fb5e1.js} +3 -3
  97. package/dist/esm/{isotopes-column.7cb5cc45.js.map → column-views.ac9fb5e1.js.map} +1 -1
  98. package/dist/esm/column-views.b2e5f1d9.js +11 -0
  99. package/dist/esm/column-views.b2e5f1d9.js.map +1 -0
  100. package/dist/esm/column-views.b775c0a3.js +112 -0
  101. package/dist/esm/column-views.b775c0a3.js.map +1 -0
  102. package/dist/esm/column-views.beb54e95.js +39 -0
  103. package/dist/esm/column-views.beb54e95.js.map +1 -0
  104. package/dist/esm/{core.4db8e452.js → column-views.c58aad3f.js} +15 -16
  105. package/dist/esm/column-views.c58aad3f.js.map +1 -0
  106. package/dist/esm/{carbon-isotopes.3b502a9e.js → column-views.d1ad48eb.js} +4 -4
  107. package/dist/esm/{carbon-isotopes.3b502a9e.js.map → column-views.d1ad48eb.js.map} +1 -1
  108. package/dist/esm/column-views.dc42f5d0.js +48 -0
  109. package/dist/esm/column-views.dc42f5d0.js.map +1 -0
  110. package/dist/esm/column-views.dff52504.js +22 -0
  111. package/dist/esm/column-views.dff52504.js.map +1 -0
  112. package/dist/esm/column-views.e2b9c23c.css +33 -0
  113. package/dist/esm/column-views.e2b9c23c.css.map +1 -0
  114. package/dist/esm/column-views.e40b8bfb.css +14 -0
  115. package/dist/esm/column-views.e40b8bfb.css.map +1 -0
  116. package/dist/esm/column-views.e77b9d6b.js +170 -0
  117. package/dist/esm/column-views.e77b9d6b.js.map +1 -0
  118. package/dist/esm/column-views.ea237aa8.js +52 -0
  119. package/dist/esm/column-views.ea237aa8.js.map +1 -0
  120. package/dist/esm/column-views.edf77621.js +22 -0
  121. package/dist/esm/column-views.edf77621.js.map +1 -0
  122. package/dist/esm/column-views.f1efcc2c.js +9 -0
  123. package/dist/esm/column-views.f1efcc2c.js.map +1 -0
  124. package/dist/esm/column-views.f2e5a72f.js +66 -0
  125. package/dist/esm/column-views.f2e5a72f.js.map +1 -0
  126. package/dist/esm/column-views.f71ec4b4.js +127 -0
  127. package/dist/esm/column-views.f71ec4b4.js.map +1 -0
  128. package/dist/esm/column-views.f9dab157.js +3 -0
  129. package/dist/esm/column-views.f9dab157.js.map +1 -0
  130. package/dist/esm/column-views.fa6f3292.js +215 -0
  131. package/dist/esm/column-views.fa6f3292.js.map +1 -0
  132. package/dist/esm/column-views.fc2b4611.js +9 -0
  133. package/dist/esm/column-views.fc2b4611.js.map +1 -0
  134. package/dist/esm/index.d.ts +797 -130
  135. package/dist/esm/index.d.ts.map +1 -1
  136. package/dist/esm/index.js +13 -9
  137. package/dist/esm/index.js.map +1 -1
  138. package/dist/node/index.js +1 -1
  139. package/dist/node/index.js.map +1 -1
  140. package/package.json +29 -13
  141. package/src/age-axis.module.sass +27 -0
  142. package/src/age-axis.ts +82 -19
  143. package/src/age-model-overlay.module.sass +11 -0
  144. package/src/age-model-overlay.ts +73 -0
  145. package/src/carbon-isotopes/column.ts +4 -2
  146. package/src/carbon-isotopes/core.ts +9 -6
  147. package/src/carbon-isotopes/data-provider.ts +3 -3
  148. package/src/column.module.sass +58 -49
  149. package/src/column.ts +149 -135
  150. package/src/correlation-chart/hash-string.ts +57 -0
  151. package/src/correlation-chart/index.ts +2 -0
  152. package/src/correlation-chart/main.module.sass +122 -0
  153. package/src/correlation-chart/main.ts +305 -0
  154. package/src/correlation-chart/prepare-data.ts +217 -0
  155. package/src/correlation-chart/stories/correlation-chart.stories.ts +192 -0
  156. package/src/correlation-chart/stories/stories.module.sass +18 -0
  157. package/src/correlation-chart/unconformity-line.module.sass +8 -0
  158. package/src/correlation-chart/unconformity-line.ts +25 -0
  159. package/src/data-provider/base.ts +388 -0
  160. package/src/data-provider/column-nav.ts +53 -0
  161. package/src/data-provider/fetch.ts +231 -0
  162. package/src/data-provider/index.ts +4 -0
  163. package/src/data-provider/store.ts +72 -0
  164. package/src/index.ts +5 -3
  165. package/src/maps/_shared/index.ts +2 -0
  166. package/src/maps/_shared/inset-map.stories.ts +20 -0
  167. package/src/maps/_shared/inset-map.ts +87 -0
  168. package/src/maps/_shared/styles.ts +57 -0
  169. package/src/maps/column-correlation/column-correlation-map.stories.ts +96 -0
  170. package/src/maps/column-correlation/core.ts +225 -0
  171. package/src/maps/column-correlation/index.ts +2 -0
  172. package/src/maps/column-correlation/state.ts +192 -0
  173. package/src/maps/column-navigation/index.ts +2 -0
  174. package/src/maps/column-navigation/mapbox/column-navigation-map.stories.ts +102 -0
  175. package/src/maps/column-navigation/mapbox/index.ts +219 -0
  176. package/src/maps/column-navigation/mapbox/keyboard-navigation.ts +119 -0
  177. package/src/maps/column-navigation/mapbox/state.ts +109 -0
  178. package/src/maps/column-navigation/svg/column-navigation-svg-map.stories.ts +46 -0
  179. package/src/{map → maps/column-navigation/svg}/index.ts +18 -6
  180. package/src/{map → maps/column-navigation/svg}/layers.ts +28 -109
  181. package/src/maps/column-navigation/utils/keyboard-navigation.ts +58 -0
  182. package/src/maps/index.ts +3 -0
  183. package/src/prepare-units/composite-scale.ts +353 -0
  184. package/src/prepare-units/helpers.ts +226 -0
  185. package/src/prepare-units/index.ts +177 -0
  186. package/src/prepare-units/utils.ts +98 -0
  187. package/src/section.ts +264 -84
  188. package/src/unit-details/index.ts +2 -215
  189. package/src/unit-details/{index.module.sass → panel.module.sass} +39 -8
  190. package/src/unit-details/panel.ts +523 -0
  191. package/src/{selection-popover.module.sass → unit-details/popover.module.sass} +4 -2
  192. package/src/unit-details/popover.ts +82 -0
  193. package/src/units/boxes.module.sass +16 -0
  194. package/src/units/boxes.ts +243 -90
  195. package/src/units/colors.ts +64 -0
  196. package/src/units/composite.ts +157 -152
  197. package/src/units/index.ts +76 -9
  198. package/src/units/names.ts +8 -4
  199. package/src/units/resolvers.ts +12 -1
  200. package/src/units/selection.ts +115 -101
  201. package/src/units/types.ts +5 -16
  202. package/dist/esm/age-axis.64c509ee.js +0 -41
  203. package/dist/esm/age-axis.64c509ee.js.map +0 -1
  204. package/dist/esm/boxes.13968b76.js +0 -164
  205. package/dist/esm/boxes.13968b76.js.map +0 -1
  206. package/dist/esm/boxes.module.28873d08.css +0 -4
  207. package/dist/esm/boxes.module.28873d08.css.map +0 -1
  208. package/dist/esm/boxes.module.605bdcd6.js +0 -13
  209. package/dist/esm/boxes.module.605bdcd6.js.map +0 -1
  210. package/dist/esm/column.8dd26e1a.js +0 -149
  211. package/dist/esm/column.8dd26e1a.js.map +0 -1
  212. package/dist/esm/column.db058031.js.map +0 -1
  213. package/dist/esm/column.module.039d872c.css +0 -151
  214. package/dist/esm/column.module.039d872c.css.map +0 -1
  215. package/dist/esm/column.module.e632868a.js +0 -19
  216. package/dist/esm/column.module.e632868a.js.map +0 -1
  217. package/dist/esm/composite.608a4ca2.js +0 -153
  218. package/dist/esm/composite.608a4ca2.js.map +0 -1
  219. package/dist/esm/composite.module.69a38fd1.css +0 -4
  220. package/dist/esm/core.4db8e452.js.map +0 -1
  221. package/dist/esm/data-provider.1506eb64.js.map +0 -1
  222. package/dist/esm/helpers.8a03cfc7.js +0 -94
  223. package/dist/esm/helpers.8a03cfc7.js.map +0 -1
  224. package/dist/esm/index.module.0844afd8.css +0 -65
  225. package/dist/esm/index.module.0844afd8.css.map +0 -1
  226. package/dist/esm/index.module.24fe3a2e.js +0 -37
  227. package/dist/esm/index.module.24fe3a2e.js.map +0 -1
  228. package/dist/esm/layers.ad5fd25d.js +0 -231
  229. package/dist/esm/layers.ad5fd25d.js.map +0 -1
  230. package/dist/esm/map.7aa26f17.js +0 -82
  231. package/dist/esm/map.7aa26f17.js.map +0 -1
  232. package/dist/esm/names.f6a4e9a4.js.map +0 -1
  233. package/dist/esm/providers.cd1e652f.js +0 -25
  234. package/dist/esm/providers.cd1e652f.js.map +0 -1
  235. package/dist/esm/resolvers.b5c82b78.js.map +0 -1
  236. package/dist/esm/section.cc1b1100.js +0 -118
  237. package/dist/esm/section.cc1b1100.js.map +0 -1
  238. package/dist/esm/selection-popover.17d1bd55.js +0 -60
  239. package/dist/esm/selection-popover.17d1bd55.js.map +0 -1
  240. package/dist/esm/selection-popover.module.0a701258.css.map +0 -1
  241. package/dist/esm/selection-popover.module.e22f5183.js +0 -22
  242. package/dist/esm/selection-popover.module.e22f5183.js.map +0 -1
  243. package/dist/esm/selection.bbf26d0e.js +0 -117
  244. package/dist/esm/selection.bbf26d0e.js.map +0 -1
  245. package/dist/esm/store.25eaa168.js +0 -18
  246. package/dist/esm/store.25eaa168.js.map +0 -1
  247. package/dist/esm/types.f016e032.js +0 -18
  248. package/dist/esm/types.f016e032.js.map +0 -1
  249. package/dist/esm/unit-details.56ff8b70.js +0 -209
  250. package/dist/esm/unit-details.56ff8b70.js.map +0 -1
  251. package/dist/esm/units.361088d4.js +0 -42
  252. package/dist/esm/units.361088d4.js.map +0 -1
  253. package/src/helpers.ts +0 -133
  254. package/src/providers.ts +0 -34
  255. package/src/selection-popover.ts +0 -71
  256. package/src/store.ts +0 -12
  257. package/src/units/units.scss +0 -16
  258. /package/src/{map → maps/column-navigation/svg}/animated.ts +0 -0
@@ -1,94 +0,0 @@
1
- import {group as $9eVFr$group} from "d3-array";
2
- import {compareAgeRanges as $9eVFr$compareAgeRanges, AgeRangeRelationship as $9eVFr$AgeRangeRelationship} from "@macrostrat/stratigraphy-utils";
3
-
4
-
5
-
6
- const $2c60de495788ce61$var$dt = 0.001;
7
- function $2c60de495788ce61$var$unitsOverlap(a, b) {
8
- const rel = (0, $9eVFr$compareAgeRanges)($2c60de495788ce61$var$unitAgeRange(a), $2c60de495788ce61$var$unitAgeRange(b), 0.001);
9
- return rel != (0, $9eVFr$AgeRangeRelationship).Disjoint;
10
- }
11
- function $2c60de495788ce61$var$unitAgeRange(unit) {
12
- return [
13
- unit.b_age,
14
- unit.t_age
15
- ];
16
- }
17
- function $2c60de495788ce61$export$9f8a901d6936c6b6(unit, i, divisions) {
18
- const overlappingUnits = divisions.filter((d)=>d.unit_id != unit.unit_id && $2c60de495788ce61$var$unitsOverlap(unit, d));
19
- let bottomOverlap = false;
20
- for (const d of overlappingUnits)if (d.b_age < unit.b_age + $2c60de495788ce61$var$dt) bottomOverlap = true;
21
- let column = 0;
22
- if (overlappingUnits.length == 1) column = 1;
23
- return {
24
- ...unit,
25
- bottomOverlap: bottomOverlap,
26
- column: column,
27
- overlappingUnits: overlappingUnits.map((d)=>d.unit_id)
28
- };
29
- }
30
- function $2c60de495788ce61$export$55543e159517d62d(units) {
31
- let divisions = units.map($2c60de495788ce61$export$9f8a901d6936c6b6);
32
- for (let d of divisions){
33
- const overlappingUnits = divisions.filter((u)=>d.overlappingUnits.includes(u.unit_id));
34
- const maxNOverlapping = Math.max(Math.max(...d.overlappingUnits.map((uid)=>divisions.find((u)=>u.unit_id == uid).overlappingUnits.length), 0));
35
- //d.maxNOverlapping = maxNOverlapping;
36
- // Overlapping columns
37
- const columns = overlappingUnits.map((d)=>d.column);
38
- if (columns.includes(d.column)) {
39
- let col = 0;
40
- // Go through columns to find a better index
41
- while(columns.includes(col))col++;
42
- d.column = col;
43
- }
44
- }
45
- return divisions;
46
- }
47
- function $2c60de495788ce61$export$dfbd00399d639b4c(units) {
48
- let groups = Array.from((0, $9eVFr$group)(units, (d)=>d.section_id));
49
- return groups.map(([section_id, units])=>{
50
- const t_age = Math.min(...units.map((d)=>d.t_age));
51
- const b_age = Math.max(...units.map((d)=>d.b_age));
52
- return {
53
- section_id: section_id,
54
- t_age: t_age,
55
- b_age: b_age,
56
- units: units
57
- };
58
- });
59
- }
60
- function $2c60de495788ce61$export$ec445c47b6e5d2d(sections) {
61
- /** Columns can have sections that overlap in time. Here, we merge overlapping
62
- * sections into a single section to correctly render gap-bound packages.
63
- */ const [firstSection, ...rest] = sections;
64
- const newSections = [
65
- firstSection
66
- ];
67
- for (const section of rest){
68
- const lastSection = newSections[newSections.length - 1];
69
- if (lastSection.b_age < section.t_age || lastSection.t_age > section.b_age) {
70
- // No overlap, add the section as normal
71
- newSections.push(section);
72
- continue;
73
- }
74
- // Overlap, merge the sections
75
- lastSection.section_id = [
76
- ...$2c60de495788ce61$export$d0c8ecbd4ed8940c(lastSection.section_id),
77
- ...$2c60de495788ce61$export$d0c8ecbd4ed8940c(section.section_id)
78
- ];
79
- lastSection.units.push(...section.units);
80
- lastSection.b_age = Math.max(lastSection.b_age, section.b_age);
81
- lastSection.t_age = Math.min(lastSection.t_age, section.t_age);
82
- }
83
- return newSections;
84
- }
85
- function $2c60de495788ce61$export$d0c8ecbd4ed8940c(x) {
86
- if (Array.isArray(x)) return x;
87
- return [
88
- x
89
- ];
90
- }
91
-
92
-
93
- export {$2c60de495788ce61$export$9f8a901d6936c6b6 as extendDivision, $2c60de495788ce61$export$55543e159517d62d as preprocessUnits, $2c60de495788ce61$export$dfbd00399d639b4c as groupUnitsIntoSections, $2c60de495788ce61$export$ec445c47b6e5d2d as _mergeOverlappingSections, $2c60de495788ce61$export$d0c8ecbd4ed8940c as ensureArray};
94
- //# sourceMappingURL=helpers.8a03cfc7.js.map
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/column-views/src/helpers.ts"],"sourcesContent":["import { BaseUnit, UnitLong } from \"@macrostrat/api-types\";\nimport { IUnit } from \"./units\";\nimport { SectionInfo } from \"./section\";\nimport { group } from \"d3-array\";\nimport {\n AgeRange,\n compareAgeRanges,\n AgeRangeRelationship,\n} from \"@macrostrat/stratigraphy-utils\";\n\nconst dt = 0.001;\n\nfunction unitsOverlap<T extends BaseUnit>(a: T, b: T) {\n const rel = compareAgeRanges(unitAgeRange(a), unitAgeRange(b), 0.001);\n return rel != AgeRangeRelationship.Disjoint;\n}\n\nfunction unitAgeRange<T extends BaseUnit>(unit: T): AgeRange {\n return [unit.b_age, unit.t_age];\n}\n\ninterface ExtUnit extends UnitLong {\n bottomOverlap: boolean;\n overlappingUnits: number[];\n column?: number;\n}\n\nexport function extendDivision(\n unit: UnitLong,\n i: number,\n divisions: UnitLong[]\n): ExtUnit {\n const overlappingUnits = divisions.filter(\n (d) => d.unit_id != unit.unit_id && unitsOverlap(unit, d)\n );\n let bottomOverlap = false;\n for (const d of overlappingUnits) {\n if (d.b_age < unit.b_age + dt) bottomOverlap = true;\n }\n\n let column = 0;\n if (overlappingUnits.length == 1) {\n column = 1;\n }\n\n return {\n ...unit,\n bottomOverlap,\n column,\n overlappingUnits: overlappingUnits.map((d) => d.unit_id),\n };\n}\n\nexport function preprocessUnits(units: UnitLong[]) {\n let divisions = units.map(extendDivision);\n for (let d of divisions) {\n const overlappingUnits = divisions.filter((u) =>\n d.overlappingUnits.includes(u.unit_id)\n );\n\n const maxNOverlapping = Math.max(\n Math.max(\n ...d.overlappingUnits.map(\n (uid) =>\n divisions.find((u) => u.unit_id == uid).overlappingUnits.length\n ),\n 0\n )\n );\n\n //d.maxNOverlapping = maxNOverlapping;\n\n // Overlapping columns\n const columns = overlappingUnits.map((d) => d.column);\n\n if (columns.includes(d.column)) {\n let col = 0;\n // Go through columns to find a better index\n while (columns.includes(col)) {\n col++;\n }\n d.column = col;\n }\n }\n\n return divisions;\n}\n\nexport function groupUnitsIntoSections(units: IUnit[]): SectionInfo[] {\n let groups = Array.from(group(units, (d) => d.section_id));\n return groups.map(([section_id, units]) => {\n const t_age = Math.min(...units.map((d) => d.t_age));\n const b_age = Math.max(...units.map((d) => d.b_age));\n return { section_id, t_age, b_age, units };\n });\n}\n\nexport function _mergeOverlappingSections(\n sections: SectionInfo[]\n): SectionInfo[] {\n /** Columns can have sections that overlap in time. Here, we merge overlapping\n * sections into a single section to correctly render gap-bound packages.\n */\n const [firstSection, ...rest] = sections;\n const newSections = [firstSection];\n for (const section of rest) {\n const lastSection = newSections[newSections.length - 1];\n if (\n lastSection.b_age < section.t_age ||\n lastSection.t_age > section.b_age\n ) {\n // No overlap, add the section as normal\n newSections.push(section);\n continue;\n }\n // Overlap, merge the sections\n lastSection.section_id = [\n ...ensureArray(lastSection.section_id),\n ...ensureArray(section.section_id),\n ];\n lastSection.units.push(...section.units);\n lastSection.b_age = Math.max(lastSection.b_age, section.b_age);\n lastSection.t_age = Math.min(lastSection.t_age, section.t_age);\n }\n return newSections;\n}\n\nexport function ensureArray<T>(x: T | T[]): T[] {\n if (Array.isArray(x)) {\n return x;\n }\n return [x];\n}\n"],"names":[],"version":3,"file":"helpers.8a03cfc7.js.map"}
@@ -1,65 +0,0 @@
1
- .Mnh6ea_legend-panel-header {
2
- border-bottom: 1px solid var(--panel-rule-color);
3
- background-color: var(--panel-secondary-background-color);
4
- z-index: 50;
5
- justify-content: space-between;
6
- align-items: baseline;
7
- gap: 1em;
8
- margin: -1em -1em 0;
9
- padding: .5em 1em;
10
- display: flex;
11
- position: sticky;
12
- top: 0;
13
- }
14
-
15
- .Mnh6ea_legend-panel-header code {
16
- color: var(--secondary-color);
17
- font-size: .9em;
18
- }
19
-
20
- .Mnh6ea_legend-panel-header .Mnh6ea_spacer {
21
- flex: 1;
22
- }
23
-
24
- .Mnh6ea_legend-panel-header button {
25
- line-height: 1.5;
26
- transform: translateY(2px);
27
- }
28
-
29
- .Mnh6ea_legend-panel-header h3 {
30
- margin: 0 0 .5em;
31
- font-size: 1.1em;
32
- }
33
-
34
- .Mnh6ea_unit-details-content {
35
- margin-top: 1em;
36
- margin-bottom: -.5em;
37
- position: relative;
38
- }
39
-
40
- .Mnh6ea_proportion, .Mnh6ea_sep, .Mnh6ea_no-units {
41
- color: var(--secondary-color);
42
- font-size: .9em;
43
- font-style: italic;
44
- }
45
-
46
- .Mnh6ea_strat-name-id, .Mnh6ea_unit-id {
47
- font-family: var(--monospace-font);
48
- color: var(--secondary-color);
49
- font-size: .9em;
50
- }
51
-
52
- .Mnh6ea_strat-name-id:before, .Mnh6ea_unit-id:before {
53
- content: "#";
54
- color: var(--tertiary-color);
55
- }
56
-
57
- .Mnh6ea_color-swatch {
58
- border: 1px solid var(--panel-rule-color);
59
- border-radius: .2em;
60
- width: 1em;
61
- height: 1em;
62
- margin-right: .2em;
63
- display: inline-block;
64
- }
65
- /*# sourceMappingURL=index.module.0844afd8.css.map */
@@ -1 +0,0 @@
1
- {"mappings":"AAAA;;;;;;;;;;;;;;AAYE;;;;;AAGA;;;;AAEA;;;;;AAIA;;;;;AAIF;;;;;;AAKA;;;;;;AAKA;;;;;;AAKE;;;;;AAIF","sources":["packages/column-views/src/unit-details/index.module.sass"],"sourcesContent":[".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 margin: -1em -1em 0\n padding: 0.5em 1em\n z-index: 50\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 h3\n margin: 0 0 0.5em\n font-size: 1.1em\n\n.unit-details-content\n position: relative\n margin-top: 1em\n margin-bottom: -0.5em\n\n.proportion, .sep, .no-units\n color: var(--secondary-color)\n font-style: italic\n font-size: 0.9em\n\n.strat-name-id, .unit-id\n font-family: var(--monospace-font)\n color: var(--secondary-color)\n font-size: 0.9em\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"],"names":[],"version":3,"file":"index.module.0844afd8.css.map"}
@@ -1,37 +0,0 @@
1
-
2
- function $parcel$export(e, n, v, s) {
3
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
4
- }
5
- var $051e16c544ec71c3$exports = {};
6
-
7
- $parcel$export($051e16c544ec71c3$exports, "color-swatch", () => $051e16c544ec71c3$export$def51519e6441a17, (v) => $051e16c544ec71c3$export$def51519e6441a17 = v);
8
- $parcel$export($051e16c544ec71c3$exports, "legend-panel-header", () => $051e16c544ec71c3$export$ce652ed9af8e3365, (v) => $051e16c544ec71c3$export$ce652ed9af8e3365 = v);
9
- $parcel$export($051e16c544ec71c3$exports, "no-units", () => $051e16c544ec71c3$export$aff88130074c0d5f, (v) => $051e16c544ec71c3$export$aff88130074c0d5f = v);
10
- $parcel$export($051e16c544ec71c3$exports, "proportion", () => $051e16c544ec71c3$export$5a14da41381fe262, (v) => $051e16c544ec71c3$export$5a14da41381fe262 = v);
11
- $parcel$export($051e16c544ec71c3$exports, "sep", () => $051e16c544ec71c3$export$5aee1a5bd9743d8f, (v) => $051e16c544ec71c3$export$5aee1a5bd9743d8f = v);
12
- $parcel$export($051e16c544ec71c3$exports, "spacer", () => $051e16c544ec71c3$export$8cc075c801fd6817, (v) => $051e16c544ec71c3$export$8cc075c801fd6817 = v);
13
- $parcel$export($051e16c544ec71c3$exports, "strat-name-id", () => $051e16c544ec71c3$export$3ab27000c02e6186, (v) => $051e16c544ec71c3$export$3ab27000c02e6186 = v);
14
- $parcel$export($051e16c544ec71c3$exports, "unit-details-content", () => $051e16c544ec71c3$export$1c30616b5f94c6bc, (v) => $051e16c544ec71c3$export$1c30616b5f94c6bc = v);
15
- $parcel$export($051e16c544ec71c3$exports, "unit-id", () => $051e16c544ec71c3$export$e22f189945dfce76, (v) => $051e16c544ec71c3$export$e22f189945dfce76 = v);
16
- var $051e16c544ec71c3$export$def51519e6441a17;
17
- var $051e16c544ec71c3$export$ce652ed9af8e3365;
18
- var $051e16c544ec71c3$export$aff88130074c0d5f;
19
- var $051e16c544ec71c3$export$5a14da41381fe262;
20
- var $051e16c544ec71c3$export$5aee1a5bd9743d8f;
21
- var $051e16c544ec71c3$export$8cc075c801fd6817;
22
- var $051e16c544ec71c3$export$3ab27000c02e6186;
23
- var $051e16c544ec71c3$export$1c30616b5f94c6bc;
24
- var $051e16c544ec71c3$export$e22f189945dfce76;
25
- $051e16c544ec71c3$export$def51519e6441a17 = `Mnh6ea_color-swatch`;
26
- $051e16c544ec71c3$export$ce652ed9af8e3365 = `Mnh6ea_legend-panel-header`;
27
- $051e16c544ec71c3$export$aff88130074c0d5f = `Mnh6ea_no-units`;
28
- $051e16c544ec71c3$export$5a14da41381fe262 = `Mnh6ea_proportion`;
29
- $051e16c544ec71c3$export$5aee1a5bd9743d8f = `Mnh6ea_sep`;
30
- $051e16c544ec71c3$export$8cc075c801fd6817 = `Mnh6ea_spacer`;
31
- $051e16c544ec71c3$export$3ab27000c02e6186 = `Mnh6ea_strat-name-id`;
32
- $051e16c544ec71c3$export$1c30616b5f94c6bc = `Mnh6ea_unit-details-content`;
33
- $051e16c544ec71c3$export$e22f189945dfce76 = `Mnh6ea_unit-id`;
34
-
35
-
36
- export {$051e16c544ec71c3$exports as default};
37
- //# sourceMappingURL=index.module.24fe3a2e.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;;;AAAA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AARA,4CAAiC,CAAC,mBAAmB,CAAC;AACtD,4CAAwC,CAAC,0BAA0B,CAAC;AACpE,4CAA6B,CAAC,eAAe,CAAC;AAC9C,4CAA+B,CAAC,iBAAiB,CAAC;AAClD,4CAAwB,CAAC,UAAU,CAAC;AACpC,4CAA2B,CAAC,aAAa,CAAC;AAC1C,4CAAkC,CAAC,oBAAoB,CAAC;AACxD,4CAAyC,CAAC,2BAA2B,CAAC;AACtE,4CAA4B,CAAC,cAAc,CAAC","sources":["packages/column-views/src/unit-details/index.module.sass"],"sourcesContent":[".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 margin: -1em -1em 0\n padding: 0.5em 1em\n z-index: 50\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 h3\n margin: 0 0 0.5em\n font-size: 1.1em\n\n.unit-details-content\n position: relative\n margin-top: 1em\n margin-bottom: -0.5em\n\n.proportion, .sep, .no-units\n color: var(--secondary-color)\n font-style: italic\n font-size: 0.9em\n\n.strat-name-id, .unit-id\n font-family: var(--monospace-font)\n color: var(--secondary-color)\n font-size: 0.9em\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"],"names":[],"version":3,"file":"index.module.24fe3a2e.js.map"}
@@ -1,231 +0,0 @@
1
- import $eaw9D$macrostrathyper from "@macrostrat/hyper";
2
- import {FeatureLayer as $eaw9D$FeatureLayer, Feature as $eaw9D$Feature, MapContext as $eaw9D$MapContext} from "@macrostrat/svg-map-components";
3
- import {useAPIResult as $eaw9D$useAPIResult, useKeyHandler as $eaw9D$useKeyHandler} from "@macrostrat/ui-components";
4
- import $eaw9D$chromajs from "chroma-js";
5
- import {geoCentroid as $eaw9D$geoCentroid} from "d3-geo";
6
- import {geoVoronoi as $eaw9D$geoVoronoi} from "d3-geo-voronoi";
7
- import {useContext as $eaw9D$useContext, useMemo as $eaw9D$useMemo} from "react";
8
- import {feature as $eaw9D$feature} from "topojson-client";
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
- const $347c34ac01fb689b$var$defaultStyle = {
19
- fill: "rgb(239, 180, 249)",
20
- stroke: "magenta"
21
- };
22
- function $347c34ac01fb689b$export$2254347cd20e6080(props) {
23
- const { style: style = $347c34ac01fb689b$var$defaultStyle, ...params } = props;
24
- const res = (0, $eaw9D$useAPIResult)("/measurements", {
25
- ...params,
26
- format: "geojson",
27
- response: "light"
28
- });
29
- if (res == null) return null;
30
- return (0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
31
- useCanvas: false,
32
- style: style,
33
- features: res.features.filter((d)=>d.properties.unit_id != null)
34
- });
35
- }
36
- function $347c34ac01fb689b$export$4ad66a3119e1afaa(res) {
37
- try {
38
- const { data: data } = res.success;
39
- const { features: f } = (0, $eaw9D$feature)(data, data.objects.output);
40
- return f;
41
- } catch (err) {
42
- console.error(err);
43
- return [];
44
- }
45
- }
46
- function $347c34ac01fb689b$export$f177ff57c101017a(props) {
47
- const { features: features, onClick: onClick, color: color = "rgba(150,150,150, 1)", singleFeature: singleFeature = true } = props;
48
- const c = (0, $eaw9D$chromajs)(color);
49
- return (0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
50
- className: "columns",
51
- useCanvas: onClick == null,
52
- style: {
53
- fill: c.alpha(0.2).css(),
54
- stroke: c.alpha(0.4).css()
55
- }
56
- }, features.map((f)=>{
57
- return (0, $eaw9D$macrostrathyper)((0, $eaw9D$Feature), {
58
- id: f.id ?? f.properties.col_id,
59
- onClick: onClick,
60
- feature: f
61
- });
62
- }));
63
- }
64
- var $347c34ac01fb689b$var$MacrostratStatusCode = /*#__PURE__*/ function(MacrostratStatusCode) {
65
- MacrostratStatusCode["InProcess"] = "in process";
66
- return MacrostratStatusCode;
67
- }($347c34ac01fb689b$var$MacrostratStatusCode || {});
68
- function $347c34ac01fb689b$var$normalize(angle) {
69
- if (angle > Math.PI) angle -= 2 * Math.PI;
70
- else if (angle <= -Math.PI) angle += 2 * Math.PI;
71
- return angle;
72
- }
73
- function $347c34ac01fb689b$var$buildTriangulation(features) {
74
- console.log("Computing triangulation");
75
- const centroids = features.map((0, $eaw9D$geoCentroid));
76
- const tri = (0, $eaw9D$geoVoronoi)(centroids);
77
- return {
78
- centroids: centroids,
79
- tri: tri
80
- };
81
- }
82
- function $347c34ac01fb689b$var$buildKeyMapping(neighbors, centroids, currentIndex, projection) {
83
- if (neighbors == null) return;
84
- const currentCentroid = projection(centroids[currentIndex]);
85
- let edgeAngles = neighbors.map((index)=>{
86
- const centroid = projection(centroids[index]);
87
- const dx = centroid[0] - currentCentroid[0];
88
- const dy = centroid[1] - currentCentroid[1];
89
- return {
90
- col_index: index,
91
- angle: Math.atan2(dy, dx)
92
- };
93
- });
94
- edgeAngles.sort((d)=>d.angle);
95
- function closestAngle(num) {
96
- // Find closest angle in array of neighbors
97
- let curr = edgeAngles[0];
98
- for (let next of edgeAngles)if (Math.abs($347c34ac01fb689b$var$normalize(num - next.angle)) < Math.abs($347c34ac01fb689b$var$normalize(num - curr.angle))) curr = next;
99
- return curr.col_index;
100
- }
101
- return {
102
- 37: closestAngle(Math.PI),
103
- 38: closestAngle(3 * Math.PI / 2),
104
- 39: closestAngle(0),
105
- 40: closestAngle(Math.PI / 2)
106
- };
107
- }
108
- function $347c34ac01fb689b$export$8c41dd563753848(props) {
109
- /** Keyboard navigation of columns using a Delaunay triangulation */ const { features: features = [], col_id: col_id = null, onChange: onChange, showLayers: showLayers = false, ...projectArgs } = props;
110
- const { projection: projection } = (0, $eaw9D$useContext)((0, $eaw9D$MapContext));
111
- const { centroids: centroids, tri: tri } = (0, $eaw9D$useMemo)(()=>$347c34ac01fb689b$var$buildTriangulation(features), [
112
- features
113
- ]);
114
- const currentIndex = (0, $eaw9D$useMemo)(()=>{
115
- return features.findIndex((d)=>d.properties.col_id == col_id);
116
- }, [
117
- features,
118
- col_id
119
- ]);
120
- const neighbors = tri.delaunay.neighbors[currentIndex];
121
- const keyMapping = (0, $eaw9D$useMemo)(()=>{
122
- return $347c34ac01fb689b$var$buildKeyMapping(neighbors, centroids, currentIndex, projection);
123
- }, [
124
- neighbors,
125
- currentIndex
126
- ]);
127
- (0, $eaw9D$useKeyHandler)((event)=>{
128
- const nextColumnIx = keyMapping[event.keyCode];
129
- if (nextColumnIx == null) return;
130
- const { col_id: col_id } = features[nextColumnIx].properties;
131
- // @ts-ignore
132
- onChange({
133
- col_id: col_id,
134
- ...projectArgs
135
- });
136
- }, [
137
- keyMapping
138
- ]);
139
- if (neighbors == null) return null;
140
- const neighborFeatures = neighbors.map((d)=>features[d]);
141
- return (0, $eaw9D$macrostrathyper).if(showLayers)([
142
- (0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
143
- features: tri.links().features,
144
- useCanvas: false,
145
- style: {
146
- stroke: "purple",
147
- fill: "transparent"
148
- }
149
- }),
150
- (0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
151
- features: neighborFeatures,
152
- useCanvas: false,
153
- style: {
154
- stroke: "rgb(93, 101, 212)",
155
- strokeWidth: 3,
156
- fill: "rgba(93, 101, 212, 0.5)"
157
- }
158
- })
159
- ]);
160
- }
161
- function $347c34ac01fb689b$var$processGeoJSON(res) {
162
- return $347c34ac01fb689b$var$processGeoJSONBare(res?.success?.data);
163
- }
164
- function $347c34ac01fb689b$var$processGeoJSONBare(res) {
165
- return res?.features;
166
- }
167
- const $347c34ac01fb689b$var$processors = {
168
- topojson: $347c34ac01fb689b$export$4ad66a3119e1afaa,
169
- geojson: $347c34ac01fb689b$var$processGeoJSON,
170
- geojson_bare: $347c34ac01fb689b$var$processGeoJSONBare
171
- };
172
- function $347c34ac01fb689b$export$6b70218db02fa4ce({ apiRoute: apiRoute = "/columns", status_code: status_code, project_id: project_id, format: format = "topojson" }) {
173
- let all = undefined;
174
- if (status_code == null && project_id == null) all = true;
175
- const processor = $347c34ac01fb689b$var$processors[format];
176
- return (0, $eaw9D$useAPIResult)(apiRoute, {
177
- format: format,
178
- all: all,
179
- status_code: status_code,
180
- project_id: project_id
181
- }, processor);
182
- }
183
- const $347c34ac01fb689b$export$f02cc02ad0e0bba3 = (props)=>{
184
- const { apiRoute: apiRoute = "/columns", onChange: onChange, col_id: col_id = null, status_code: status_code, project_id: project_id, color: color, filterColumns: filterColumns, showDebugLayers: showDebugLayers = false, format: format = "topojson" } = props;
185
- let features = $347c34ac01fb689b$export$6b70218db02fa4ce({
186
- apiRoute: apiRoute,
187
- status_code: status_code,
188
- project_id: project_id,
189
- format: format
190
- });
191
- if (features == null) return null;
192
- if (filterColumns != null) features = features.filter(filterColumns);
193
- return (0, $eaw9D$macrostrathyper)([
194
- (0, $eaw9D$macrostrathyper)($347c34ac01fb689b$export$8c41dd563753848, {
195
- features: features,
196
- col_id: col_id,
197
- onChange: onChange,
198
- status_code: status_code,
199
- project_id: project_id,
200
- showLayers: showDebugLayers
201
- }),
202
- (0, $eaw9D$macrostrathyper)($347c34ac01fb689b$export$f177ff57c101017a, {
203
- features: features,
204
- onClick: onChange,
205
- color: color
206
- })
207
- ]);
208
- };
209
- const $347c34ac01fb689b$export$4d8f6e6df85d9012 = (props)=>{
210
- return (0, $eaw9D$macrostrathyper)($347c34ac01fb689b$export$f02cc02ad0e0bba3, {
211
- apiRoute: "/defs/columns",
212
- ...props
213
- });
214
- };
215
- const $347c34ac01fb689b$export$b9d912252344e099 = (props)=>{
216
- const { feature: feature } = props;
217
- return (0, $eaw9D$macrostrathyper)((0, $eaw9D$FeatureLayer), {
218
- features: [
219
- feature
220
- ],
221
- style: {
222
- fill: "rgba(255,0,0,0.4)",
223
- stroke: "rgba(255,0,0,0.6)",
224
- strokeWidth: 2
225
- }
226
- });
227
- };
228
-
229
-
230
- export {$347c34ac01fb689b$export$2254347cd20e6080 as MeasurementsLayer, $347c34ac01fb689b$export$4ad66a3119e1afaa as processTopoJSON, $347c34ac01fb689b$export$f177ff57c101017a as ColumnFeatures, $347c34ac01fb689b$export$8c41dd563753848 as ColumnKeyboardNavigation, $347c34ac01fb689b$export$6b70218db02fa4ce as useColumnData, $347c34ac01fb689b$export$f02cc02ad0e0bba3 as Columns, $347c34ac01fb689b$export$4d8f6e6df85d9012 as ColumnCenters, $347c34ac01fb689b$export$b9d912252344e099 as CurrentColumn};
231
- //# sourceMappingURL=layers.ad5fd25d.js.map
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/column-views/src/map/layers.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n Feature,\n FeatureLayer,\n MapContext,\n} from \"@macrostrat/svg-map-components\";\nimport { useAPIResult, useKeyHandler } from \"@macrostrat/ui-components\";\nimport chroma from \"chroma-js\";\nimport { ExtendedFeature, geoCentroid } from \"d3-geo\";\nimport { geoVoronoi } from \"d3-geo-voronoi\";\nimport { FeatureCollection, GeometryCollection, Polygon } from \"geojson\";\nimport { useContext, useEffect, useMemo } from \"react\";\nimport { feature } from \"topojson-client\";\n\nconst defaultStyle = {\n fill: \"rgb(239, 180, 249)\",\n stroke: \"magenta\",\n};\n\nexport function MeasurementsLayer(props) {\n const { style = defaultStyle, ...params } = props;\n const res: any = useAPIResult(\"/measurements\", {\n ...params,\n format: \"geojson\",\n response: \"light\",\n });\n if (res == null) return null;\n\n return h(FeatureLayer, {\n useCanvas: false,\n style,\n features: res.features.filter((d) => d.properties.unit_id != null),\n });\n}\n\ntype ColumnProps = { col_id: number };\n\ntype ColumnFeature = ExtendedFeature<Polygon, ColumnProps>;\n\nfunction 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}\nfunction ColumnFeatures(props) {\n const {\n features,\n onClick,\n color = \"rgba(150,150,150, 1)\",\n singleFeature = true,\n } = props;\n\n const c = chroma(color);\n\n return h(\n FeatureLayer,\n {\n className: \"columns\",\n useCanvas: onClick == null,\n style: {\n fill: c.alpha(0.2).css(),\n stroke: c.alpha(0.4).css(),\n },\n },\n features.map((f) => {\n return h(Feature, {\n id: f.id ?? f.properties.col_id,\n onClick,\n feature: f,\n });\n })\n );\n}\n\nenum MacrostratStatusCode {\n InProcess = \"in process\",\n}\n\ninterface ColumnNavProps {\n col_id: number;\n status_code?: MacrostratStatusCode;\n project_id?: number;\n onChange(col_id: number): void;\n}\n\ninterface KeyboardNavProps extends ColumnNavProps {\n features: ColumnFeature[];\n showLayers: boolean;\n}\n\nfunction normalize(angle) {\n if (angle > Math.PI) {\n angle -= 2 * Math.PI;\n } else if (angle <= -Math.PI) {\n angle += 2 * Math.PI;\n }\n return angle;\n}\n\nfunction buildTriangulation(features) {\n console.log(\"Computing triangulation\");\n const centroids = features.map(geoCentroid);\n const tri = geoVoronoi(centroids);\n return { centroids, tri };\n}\n\nfunction buildKeyMapping(neighbors, centroids, currentIndex, projection) {\n if (neighbors == null) return;\n\n const currentCentroid = projection(centroids[currentIndex]);\n\n let edgeAngles = neighbors.map((index) => {\n const centroid = projection(centroids[index]);\n const dx = centroid[0] - currentCentroid[0];\n const dy = centroid[1] - currentCentroid[1];\n return { col_index: index, angle: Math.atan2(dy, dx) };\n });\n\n edgeAngles.sort((d) => d.angle);\n\n function closestAngle(num) {\n // Find closest angle in array of neighbors\n let curr = edgeAngles[0];\n for (let next of edgeAngles) {\n if (\n Math.abs(normalize(num - next.angle)) <\n Math.abs(normalize(num - curr.angle))\n ) {\n curr = next;\n }\n }\n return curr.col_index;\n }\n\n return {\n 37: closestAngle(Math.PI), // left\n 38: closestAngle((3 * Math.PI) / 2), // up\n 39: closestAngle(0), // right\n 40: closestAngle(Math.PI / 2), // down\n };\n}\n\nfunction ColumnKeyboardNavigation(props: KeyboardNavProps) {\n /** Keyboard navigation of columns using a Delaunay triangulation */\n const {\n features = [],\n col_id = null,\n onChange,\n showLayers = false,\n ...projectArgs\n } = props;\n const { projection } = useContext(MapContext);\n const { centroids, tri } = useMemo(\n () => buildTriangulation(features),\n [features]\n );\n\n const currentIndex = useMemo(() => {\n return features.findIndex((d) => d.properties.col_id == col_id);\n }, [features, col_id]);\n\n const neighbors = tri.delaunay.neighbors[currentIndex];\n\n const keyMapping = useMemo(() => {\n return buildKeyMapping(neighbors, centroids, currentIndex, projection);\n }, [neighbors, currentIndex]);\n\n useKeyHandler(\n (event) => {\n const nextColumnIx = keyMapping[event.keyCode];\n if (nextColumnIx == null) return;\n const { col_id } = features[nextColumnIx].properties;\n\n // @ts-ignore\n onChange({ col_id, ...projectArgs });\n },\n [keyMapping]\n );\n\n if (neighbors == null) return null;\n const neighborFeatures = neighbors.map((d) => features[d]);\n\n return h.if(showLayers)([\n h(FeatureLayer, {\n features: tri.links().features,\n useCanvas: false,\n style: {\n stroke: \"purple\",\n fill: \"transparent\",\n },\n }),\n h(FeatureLayer, {\n features: neighborFeatures,\n useCanvas: false,\n style: {\n stroke: \"rgb(93, 101, 212)\",\n strokeWidth: 3,\n fill: \"rgba(93, 101, 212, 0.5)\",\n },\n }),\n\n //h(FeatureLayer, {features: tri.centers, useCanvas: false})\n ]);\n}\n\nfunction processGeoJSON(res) {\n return processGeoJSONBare(res?.success?.data);\n}\n\nfunction processGeoJSONBare(res) {\n return res?.features;\n}\n\nconst processors = {\n topojson: processTopoJSON,\n geojson: processGeoJSON,\n geojson_bare: processGeoJSONBare,\n};\n\nfunction useColumnData({\n apiRoute = \"/columns\",\n status_code,\n project_id,\n format = \"topojson\",\n}) {\n let all: boolean = undefined;\n if (status_code == null && project_id == null) {\n all = true;\n }\n\n const processor = processors[format];\n\n return useAPIResult(\n apiRoute,\n { format, all, status_code, project_id },\n processor\n );\n}\n\ninterface ColumnExtraInfo {\n apiRoute?: string;\n color?: string;\n filterColumns?(d: ColumnFeature): boolean;\n showDebugLayers?: boolean;\n format?: \"topojson\" | \"geojson\";\n}\n\nconst Columns = (props: ColumnNavProps & ColumnExtraInfo) => {\n const {\n apiRoute = \"/columns\",\n onChange,\n col_id = null,\n status_code,\n project_id,\n color,\n filterColumns,\n showDebugLayers = false,\n format = \"topojson\",\n } = props;\n\n let features: any[] = useColumnData({\n apiRoute,\n status_code,\n project_id,\n format,\n }) as any;\n\n if (features == null) return null;\n\n if (filterColumns != null) {\n features = features.filter(filterColumns);\n }\n\n return h([\n h(ColumnKeyboardNavigation, {\n features,\n col_id,\n onChange,\n status_code,\n project_id,\n showLayers: showDebugLayers,\n }),\n h(ColumnFeatures, { features, onClick: onChange, color }),\n ]);\n};\n\nconst ColumnCenters = (props: ColumnNavProps) => {\n return h(Columns, { apiRoute: \"/defs/columns\", ...props });\n};\n\nconst CurrentColumn = (props) => {\n const { feature } = props;\n return h(FeatureLayer, {\n features: [feature],\n style: {\n fill: \"rgba(255,0,0,0.4)\",\n stroke: \"rgba(255,0,0,0.6)\",\n strokeWidth: 2,\n },\n });\n};\n\nexport {\n Columns,\n CurrentColumn,\n processTopoJSON,\n ColumnCenters,\n ColumnFeatures,\n ColumnKeyboardNavigation,\n useColumnData,\n};\n"],"names":[],"version":3,"file":"layers.ad5fd25d.js.map"}
@@ -1,82 +0,0 @@
1
- import {Columns as $347c34ac01fb689b$export$f02cc02ad0e0bba3, CurrentColumn as $347c34ac01fb689b$export$b9d912252344e099, MeasurementsLayer as $347c34ac01fb689b$export$2254347cd20e6080, processTopoJSON as $347c34ac01fb689b$export$4ad66a3119e1afaa, ColumnFeatures as $347c34ac01fb689b$export$f177ff57c101017a, ColumnKeyboardNavigation as $347c34ac01fb689b$export$8c41dd563753848, useColumnData as $347c34ac01fb689b$export$6b70218db02fa4ce, ColumnCenters as $347c34ac01fb689b$export$4d8f6e6df85d9012} from "./layers.ad5fd25d.js";
2
- import {useRef as $kMgW8$useRef} from "react";
3
- import $kMgW8$macrostrathyper from "@macrostrat/hyper";
4
- import {Globe as $kMgW8$Globe, LandLayer as $kMgW8$LandLayer} from "@macrostrat/svg-map-components";
5
- import {geoCentroid as $kMgW8$geoCentroid} from "d3-geo";
6
- import {useElementSize as $kMgW8$useElementSize} from "@macrostrat/ui-components";
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
- function $157bdadaa2bcfcf5$export$c4313db718750a5a(props) {
15
- const { center: center, children: children, style: style, margin: margin, className: className, allowZoom: allowZoom, ...rest } = props;
16
- let { scale: scale } = props;
17
- const ref = (0, $kMgW8$useRef)(null);
18
- const sz = (0, $kMgW8$useElementSize)(ref);
19
- const { width: width, height: height } = sz ?? {
20
- width: 0,
21
- height: 0
22
- };
23
- if (scale == null) scale = Math.min(width, height) + 2 * margin;
24
- let zoomScaleExtent = null;
25
- if (allowZoom) zoomScaleExtent = [
26
- 0.1 * Math.min(width, height),
27
- 2 * Math.max(width, height)
28
- ];
29
- return (0, $kMgW8$macrostrathyper)("div.map-area", {
30
- ref: ref,
31
- style: style,
32
- className: className
33
- }, [
34
- (0, $kMgW8$macrostrathyper)((0, $kMgW8$Globe), {
35
- width: width,
36
- height: height,
37
- margin: margin,
38
- center: center,
39
- allowDrag: true,
40
- allowZoom: allowZoom,
41
- keepNorthUp: true,
42
- zoomScaleExtent: zoomScaleExtent,
43
- ...rest,
44
- scale: scale
45
- }, [
46
- (0, $kMgW8$macrostrathyper)((0, $kMgW8$LandLayer)),
47
- children
48
- ])
49
- ]);
50
- }
51
- const $157bdadaa2bcfcf5$export$d9144ecbc6b090c5 = (props)=>{
52
- const { currentColumn: currentColumn, setCurrentColumn: setCurrentColumn, children: children, style: style, margin: margin = 10, scale: scale, className: className, showInProcessColumns: showInProcessColumns = false, ...rest } = props;
53
- const columnCenter = (0, $kMgW8$geoCentroid)(currentColumn);
54
- return (0, $kMgW8$macrostrathyper)($157bdadaa2bcfcf5$export$c4313db718750a5a, {
55
- center: columnCenter,
56
- style: style,
57
- margin: margin,
58
- scale: scale,
59
- className: className
60
- }, [
61
- children,
62
- (0, $kMgW8$macrostrathyper)((0, $347c34ac01fb689b$export$f02cc02ad0e0bba3), {
63
- onChange: setCurrentColumn,
64
- col_id: currentColumn?.properties.col_id,
65
- ...rest
66
- }),
67
- (0, $kMgW8$macrostrathyper).if(showInProcessColumns)((0, $347c34ac01fb689b$export$f02cc02ad0e0bba3), {
68
- onChange: setCurrentColumn,
69
- col_id: currentColumn?.properties.col_id,
70
- status_code: "in process",
71
- color: "rgba(200,150,150, 0.5)",
72
- ...rest
73
- }),
74
- (0, $kMgW8$macrostrathyper).if(currentColumn != null)((0, $347c34ac01fb689b$export$b9d912252344e099), {
75
- feature: currentColumn
76
- })
77
- ]);
78
- };
79
-
80
-
81
- export {$157bdadaa2bcfcf5$export$c4313db718750a5a as ResizableMapFrame, $157bdadaa2bcfcf5$export$d9144ecbc6b090c5 as ColumnNavigatorMap, $347c34ac01fb689b$export$2254347cd20e6080 as MeasurementsLayer, $347c34ac01fb689b$export$4ad66a3119e1afaa as processTopoJSON, $347c34ac01fb689b$export$f177ff57c101017a as ColumnFeatures, $347c34ac01fb689b$export$8c41dd563753848 as ColumnKeyboardNavigation, $347c34ac01fb689b$export$6b70218db02fa4ce as useColumnData, $347c34ac01fb689b$export$f02cc02ad0e0bba3 as Columns, $347c34ac01fb689b$export$4d8f6e6df85d9012 as ColumnCenters, $347c34ac01fb689b$export$b9d912252344e099 as CurrentColumn};
82
- //# sourceMappingURL=map.7aa26f17.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;;;;;AAOA,SAAS,0CAAkB,KAAK;IAC9B,MAAM,UAAE,MAAM,YAAE,QAAQ,SAAE,KAAK,UAAE,MAAM,aAAE,SAAS,aAAE,SAAS,EAAE,GAAG,MAAM,GACtE;IACF,IAAI,SAAE,KAAK,EAAE,GAAG;IAChB,MAAM,MAAM,CAAA,GAAA,aAAK,EAAE;IACnB,MAAM,KAAK,CAAA,GAAA,qBAAa,EAAE;IAC1B,MAAM,SAAE,KAAK,UAAE,MAAM,EAAE,GAAG,MAAM;QAAE,OAAO;QAAG,QAAQ;IAAE;IACtD,IAAI,SAAS,MACX,QAAQ,KAAK,GAAG,CAAC,OAAO,UAAU,IAAI;IAGxC,IAAI,kBAAkB;IAEtB,IAAI,WACF,kBAAkB;QAChB,MAAM,KAAK,GAAG,CAAC,OAAO;QACtB,IAAI,KAAK,GAAG,CAAC,OAAO;KACrB;IAGH,OAAO,CAAA,GAAA,sBAAA,EAAE,gBAAgB;aAAE;eAAK;mBAAO;IAAU,GAAG;QAClD,CAAA,GAAA,sBAAA,EACE,CAAA,GAAA,YAAI,GACJ;mBACE;oBACA;oBACA;oBACA;YACA,WAAW;uBACX;YACA,aAAa;6BACb;YACA,GAAG,IAAI;mBACP;QACF,GACA;YAAC,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,gBAAQ;YAAI;SAAS;KAE3B;AACH;AAEA,MAAM,4CAAqB,CAAC;IAC1B,MAAM,iBACJ,aAAa,oBACb,gBAAgB,YAChB,QAAQ,SACR,KAAK,UACL,SAAS,WACT,KAAK,aACL,SAAS,wBACT,uBAAuB,OACvB,GAAG,MACJ,GAAG;IAEJ,MAAM,eAAe,CAAA,GAAA,kBAAU,EAAE;IAEjC,OAAO,CAAA,GAAA,sBAAA,EACL,2CACA;QAAE,QAAQ;eAAc;gBAAO;eAAQ;mBAAO;IAAU,GACxD;QACE;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAM,GAAG;YACT,UAAU;YACV,QAAQ,eAAe,WAAW;YAClC,GAAG,IAAI;QACT;QACA,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,sBAAsB,CAAA,GAAA,yCAAM,GAAG;YAClC,UAAU;YACV,QAAQ,eAAe,WAAW;YAClC,aAAa;YACb,OAAO;YACP,GAAG,IAAI;QACT;QACA,CAAA,GAAA,sBAAA,EAAE,EAAE,CAAC,iBAAiB,MAAM,CAAA,GAAA,yCAAY,GAAG;YAAE,SAAS;QAAc;KACrE;AAEL","sources":["packages/column-views/src/map/index.ts"],"sourcesContent":["import { useRef } from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { Globe, LandLayer } from \"@macrostrat/svg-map-components\";\nimport { geoCentroid } from \"d3-geo\";\nimport { useElementSize } from \"@macrostrat/ui-components\";\nimport { Columns, CurrentColumn } from \"./layers\";\n\nfunction ResizableMapFrame(props) {\n const { center, children, style, margin, className, allowZoom, ...rest } =\n props;\n let { scale } = props;\n const ref = useRef(null);\n const sz = useElementSize(ref);\n const { width, height } = sz ?? { width: 0, height: 0 };\n if (scale == null) {\n scale = Math.min(width, height) + 2 * margin;\n }\n\n let zoomScaleExtent = null;\n\n if (allowZoom) {\n zoomScaleExtent = [\n 0.1 * Math.min(width, height),\n 2 * Math.max(width, height),\n ];\n }\n\n return h(\"div.map-area\", { ref, style, className }, [\n h(\n Globe,\n {\n width,\n height,\n margin,\n center,\n allowDrag: true,\n allowZoom,\n keepNorthUp: true,\n zoomScaleExtent,\n ...rest,\n scale,\n },\n [h(LandLayer), children]\n ),\n ]);\n}\n\nconst ColumnNavigatorMap = (props) => {\n const {\n currentColumn,\n setCurrentColumn,\n children,\n style,\n margin = 10,\n scale,\n className,\n showInProcessColumns = false,\n ...rest\n } = props;\n\n const columnCenter = geoCentroid(currentColumn);\n\n return h(\n ResizableMapFrame,\n { center: columnCenter, style, margin, scale, className },\n [\n children,\n h(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n ...rest,\n }),\n h.if(showInProcessColumns)(Columns, {\n onChange: setCurrentColumn,\n col_id: currentColumn?.properties.col_id,\n status_code: \"in process\",\n color: \"rgba(200,150,150, 0.5)\",\n ...rest,\n }),\n h.if(currentColumn != null)(CurrentColumn, { feature: currentColumn }),\n ]\n );\n};\n\nexport * from \"./layers\";\nexport { ColumnNavigatorMap, ResizableMapFrame };\n"],"names":[],"version":3,"file":"map.7aa26f17.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;;;AA4BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,MAAM,CAAA,GAAA,yCAAgB,EAAE;IAC9B,OAAO;QACL,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;QACvB,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;QAC3B,MAAM;QACN,IAAI,IAAI,OAAO;IACjB;AACF;AAEA,MAAM,4CAAsB,CAAC;IAC3B,OAAO,IAAI,SAAS,CACjB,OAAO,CAAC,OAAO,UACf,OAAO,CAAC,MAAM,aACd,OAAO,CAAC,MAAM;AACnB;AAEA,SAAS,sCAAgB,KAAoB;IAC3C,MAAM,MAAM,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,oBAAY;IACnC,MAAM,QACJ,IAAI,iBACJ,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,KAAK,WACjB,GAAG,MACJ,GAAG;IAEJ,MAAM,SAAE,KAAK,EAAE,GAAG;IAElB,MAAM,sBAAsB,CAAA,GAAA,kBAAU,EACpC,CAAC;QACC,IAAI,iBAAiB,GAAG,OAAO;QAC/B,MAAM,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM;QACxD,OAAO,KAAK;IACd,GACA;QAAC;QAAO;KAAc;IAGxB,IAAI,aAAa,MAAM,OAAO;IAC9B,MAAM,QAAoB,UACvB,MAAM,CAAC,kBACP,GAAG,CAAC,CAAC,IAAa,0CAAgB,GAAG;YAAE,UAAU,IAAI,QAAQ;QAAC,IAC9D,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpC,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAQ3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,gBAAgB,CAAC;QACrB,MAAM,QAAE,IAAI,EAAE,GAAG;QACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;IACxD;IAEA,OAAO,CAAA,GAAA,sBAAA,EAAE,2CAAgB;QACvB,eAAe,iBAAiB;QAChC,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useContext, useCallback } from \"react\";\nimport {\n ColumnContext,\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit, transformAxisType } from \"./types\";\nimport React from \"react\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n}\n\ntype UnitNote = {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n};\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType }\n): UnitNote {\n const { axisType } = opts;\n\n const key = transformAxisType(axisType);\n return {\n height: div[`b_${key}`],\n top_height: div[`t_${key}`],\n data: div,\n id: div.unit_id,\n };\n}\n\nconst defaultNameFunction = (div) => {\n return div.unit_name\n .replace(\"Mbr\", \"Member\")\n .replace(\"Fm\", \"Formation\")\n .replace(\"Gp\", \"Group\");\n};\n\nfunction UnitDataColumn_(props: UnitDataProps) {\n const ctx = useContext(ColumnContext);\n const {\n left,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n minimumHeight = 0,\n divisions = ctx?.divisions,\n ...rest\n } = props;\n\n const { scale } = ctx;\n\n const minimumHeightFilter = useCallback(\n (d) => {\n if (minimumHeight == 0) return true;\n const dy = Math.abs(scale(d.top_height) - scale(d.height));\n return dy > minimumHeight;\n },\n [scale, minimumHeight]\n );\n\n if (divisions == null) return null;\n const notes: UnitNote[] = divisions\n .filter(shouldRenderNote)\n .map((d: IUnit) => noteForDivision(d, { axisType: ctx.axisType }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left || 0})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const NoteComponent = (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n };\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? NoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"names.f6a4e9a4.js.map"}
@@ -1,25 +0,0 @@
1
- import $axBsV$macrostrathyper from "@macrostrat/hyper";
2
- import {ColumnProvider as $axBsV$ColumnProvider, ColumnAxisType as $axBsV$ColumnAxisType} from "@macrostrat/column-components";
3
- import {APIProvider as $axBsV$APIProvider} from "@macrostrat/ui-components";
4
-
5
-
6
-
7
-
8
- function $29bf41d89292aad4$export$9e42f9b6e0d67c7d(props) {
9
- // A column provider specialized the Macrostrat API
10
- return (0, $axBsV$macrostrathyper)((0, $axBsV$ColumnProvider), {
11
- axisType: (0, $axBsV$ColumnAxisType).AGE,
12
- ...props
13
- });
14
- }
15
- function $29bf41d89292aad4$export$3098013bc6cc316d({ children: children, useDev: useDev = false, baseURL: baseURL }) {
16
- baseURL ??= useDev ? "https://dev2.macrostrat.org/api/v2" : "https://macrostrat.org/api/v2";
17
- return (0, $axBsV$macrostrathyper)((0, $axBsV$APIProvider), {
18
- baseURL: baseURL,
19
- unwrapResponse: (res)=>res.success.data
20
- }, children);
21
- }
22
-
23
-
24
- export {$29bf41d89292aad4$export$9e42f9b6e0d67c7d as MacrostratColumnProvider, $29bf41d89292aad4$export$3098013bc6cc316d as MacrostratAPIProvider};
25
- //# sourceMappingURL=providers.cd1e652f.js.map
@@ -1 +0,0 @@
1
- {"mappings":";;;;;;;AAKO,SAAS,0CAAyB,KAAK;IAC5C,mDAAmD;IACnD,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,qBAAa,GAAG;QAAE,UAAU,CAAA,GAAA,qBAAa,EAAE,GAAG;QAAE,GAAG,KAAK;IAAC;AACpE;AAQO,SAAS,0CAAsB,YACpC,QAAQ,UACR,SAAS,gBACT,OAAO,EACU;IACjB,YAAY,SACR,uCACA;IAEJ,OAAO,CAAA,GAAA,sBAAA,EACL,CAAA,GAAA,kBAAU,GACV;iBACE;QACA,gBAAgB,CAAC,MAAQ,IAAI,OAAO,CAAC,IAAI;IAC3C,GACA;AAEJ","sources":["packages/column-views/src/providers.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { ColumnProvider, ColumnAxisType } from \"@macrostrat/column-components\";\nimport { APIProvider } from \"@macrostrat/ui-components\";\nimport { ReactNode } from \"react\";\n\nexport function MacrostratColumnProvider(props) {\n // A column provider specialized the Macrostrat API\n return h(ColumnProvider, { axisType: ColumnAxisType.AGE, ...props });\n}\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://dev2.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"],"names":[],"version":3,"file":"providers.cd1e652f.js.map"}
@@ -1 +0,0 @@
1
- {"mappings":"AAAA,MAAM,oCAAc;IAClB,sBAAsB;IACtB,eAAe;IACf,WAAW;IACX,kBAAkB;IAClB,aAAa;IACb,MAAM;IACN,WAAW;IACX,MAAM;IACN,uBAAuB;IACvB,OAAO;IACP,WAAW;IACX,UAAU;IACV,cAAc;IACd,WAAW;IACX,qBAAqB;IACrB,WAAW;IACX,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,MAAM;IACN,OAAO;IACP,mBAAmB;IACnB,OAAO;IACP,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;IACN,SAAS;IACT,MAAM;IACN,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,WAAW;IACX,QAAQ;IACR,UAAU;IACV,cAAc;IACd,WAAW;IACX,WAAW;AACb;AAEA,MAAM,4CAAY,CAAC;IACjB,IAAI,QAAQ,EAAE,IAAI;IAClB,IAAI,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAM,EAAE,IAAI,EAAE,IAAI,CAAC;IACjD,MAAM,IAAI,CAAC,CAAC,GAAG,IAAM,EAAE,IAAI,GAAG,EAAE,IAAI;IAEpC,+DAA+D;IAE/D,IAAI,MAAM;IAEV,6BAA6B;IAC7B,IAAI,EAAE,SAAS,IAAI,QACjB,OAAO;IAET,IAAI,EAAE,SAAS,IAAI,mBACjB,OAAO;IAGT,KAAK,MAAM,KAAK,MAAO;QACrB,IAAI,EAAE,IAAI,IAAI,aAAa;YACzB,8BAA8B;YAC9B,IAAI,SAAS,QAAQ,CAAC,SACpB,OAAO;YAET,IAAI,SAAS,QAAQ,CAAC,WACpB,OAAO;YAET,IAAI,SAAS,QAAQ,CAAC,UACpB,OAAO;YAET,IAAI,SAAS,QAAQ,CAAC,UACpB,OAAO;QAEX;QAEA,IAAI,EAAE,IAAI,IAAI,gBAAgB;YAC5B,8BAA8B;YAC9B,IAAI,SAAS,QAAQ,CAAC,YACpB,OAAO;QAEX;QAEA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAClB,OAAO;QAET,MAAM,iCAAW,CAAC,EAAE,IAAI,CAAC;QACzB,IAAI,OAAO,MACT,OAAO;QAGT,IAAI,EAAE,IAAI,IAAI,YACZ,OAAO;IAEX;IACA,OAAO;AACT;AAEA,MAAM,qCAAe;IACnB,OAAO;IACP,OAAO;AACT;AAEA,MAAM,4CAAe,CAAC;IACpB,OAAO,kCAAY,CAAC,GAAG,IAAI,CAAC,IAAI;AAClC","sources":["packages/column-views/src/units/resolvers.ts"],"sourcesContent":["const symbolIndex = {\n \"dolomite-limestone\": 641,\n lime_mudstone: 627,\n sandstone: 607,\n \"quartz arenite\": 607,\n litharenite: 608,\n sand: 608,\n siltstone: 616,\n silt: 616,\n \"dolomitic siltstone\": 616,\n shale: 620,\n limestone: 627,\n dolomite: 642,\n conglomerate: 602,\n carbonate: 627,\n \"dolomite-mudstone\": 642,\n dolostone: 642,\n mudstone: 620,\n \"sandy-dolomite\": 645,\n quartzite: 702,\n halite: 668,\n basalt: 717,\n rhyolite: 722,\n andesite: 723,\n till: 681,\n loess: 684,\n \"calcareous ooze\": 653,\n chalk: 626,\n gravel: 601,\n plutonic: 721,\n granite: 719,\n clay: 660,\n syenite: 722,\n tuff: 711,\n volcanic: 725,\n metamorphic: 707,\n volcaniclastic: 714,\n migmatite: 709,\n gneiss: 708,\n tonalite: 727,\n granodiorite: 725,\n monzonite: 723,\n argillite: 624,\n};\n\nconst resolveID = (d: any) => {\n let liths = d.lith;\n let environs = d.environ.map((d) => d.name).join(\" \");\n liths.sort((a, b) => b.prop - a.prop);\n\n //console.log(d, d.unit_name, liths.map(d => d.name), environs)\n\n let sym = null;\n\n // overrides for IODP columns\n if (d.unit_name == \"clay\") {\n return \"650\";\n }\n if (d.unit_name == \"calcareous clay\") {\n return \"651\";\n }\n\n for (const k of liths) {\n if (k.name == \"sandstone\") {\n // Special cases for sandstone\n if (environs.includes(\"dune\")) {\n return \"609\";\n }\n if (environs.includes(\"marine\")) {\n return \"608\";\n }\n if (environs.includes(\"shore\")) {\n return \"611\";\n }\n if (environs.includes(\"loess\")) {\n return \"686\";\n }\n }\n\n if (k.name == \"conglomerate\") {\n // Special cases for sandstone\n if (environs.includes(\"fluvial\")) {\n return \"603\";\n }\n }\n\n if (k.name.includes(\"tuff\")) {\n return \"711\";\n }\n sym = symbolIndex[k.name];\n if (sym != null) {\n return sym;\n }\n\n if (k.type == \"volcanic\") {\n return \"725\";\n }\n }\n return sym;\n};\n\nconst patternScale = {\n \"609\": 1.5,\n \"603\": 1.5,\n};\n\nconst scalePattern = (id) => {\n return patternScale[`${id}`] ?? 1;\n};\n\nexport { resolveID, scalePattern };\n"],"names":[],"version":3,"file":"resolvers.b5c82b78.js.map"}