@macrostrat/column-views 2.4.3 → 3.0.0

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 (658) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/age-axis.cjs +123 -0
  3. package/dist/age-axis.cjs.map +1 -0
  4. package/dist/age-axis.d.ts +33 -0
  5. package/dist/age-axis.js +123 -0
  6. package/dist/age-axis.js.map +1 -0
  7. package/dist/age-axis.module.sass.cjs +18 -0
  8. package/dist/age-axis.module.sass.cjs.map +1 -0
  9. package/dist/age-axis.module.sass.js +18 -0
  10. package/dist/age-axis.module.sass.js.map +1 -0
  11. package/dist/age-model-overlay.cjs +48 -0
  12. package/dist/age-model-overlay.cjs.map +1 -0
  13. package/dist/age-model-overlay.d.ts +24 -0
  14. package/dist/age-model-overlay.js +48 -0
  15. package/dist/age-model-overlay.js.map +1 -0
  16. package/dist/age-model-overlay.module.sass.cjs +8 -0
  17. package/dist/age-model-overlay.module.sass.cjs.map +1 -0
  18. package/dist/age-model-overlay.module.sass.js +8 -0
  19. package/dist/age-model-overlay.module.sass.js.map +1 -0
  20. package/dist/column-views.css +685 -0
  21. package/dist/column.cjs +247 -0
  22. package/dist/column.cjs.map +1 -0
  23. package/dist/column.d.ts +44 -0
  24. package/dist/column.js +247 -0
  25. package/dist/column.js.map +1 -0
  26. package/dist/column.module.sass.cjs +33 -0
  27. package/dist/column.module.sass.cjs.map +1 -0
  28. package/dist/column.module.sass.js +33 -0
  29. package/dist/column.module.sass.js.map +1 -0
  30. package/dist/correlation-chart/hash-string.cjs +46 -0
  31. package/dist/correlation-chart/hash-string.cjs.map +1 -0
  32. package/dist/correlation-chart/hash-string.d.ts +3 -0
  33. package/dist/correlation-chart/hash-string.js +46 -0
  34. package/dist/correlation-chart/hash-string.js.map +1 -0
  35. package/dist/correlation-chart/index.d.ts +2 -0
  36. package/dist/correlation-chart/main.cjs +202 -0
  37. package/dist/correlation-chart/main.cjs.map +1 -0
  38. package/dist/correlation-chart/main.d.ts +15 -0
  39. package/dist/correlation-chart/main.js +202 -0
  40. package/dist/correlation-chart/main.js.map +1 -0
  41. package/dist/correlation-chart/main.module.sass.cjs +28 -0
  42. package/dist/correlation-chart/main.module.sass.cjs.map +1 -0
  43. package/dist/correlation-chart/main.module.sass.js +28 -0
  44. package/dist/correlation-chart/main.module.sass.js.map +1 -0
  45. package/dist/correlation-chart/prepare-data.cjs +62 -0
  46. package/dist/correlation-chart/prepare-data.cjs.map +1 -0
  47. package/dist/correlation-chart/prepare-data.d.ts +52 -0
  48. package/dist/correlation-chart/prepare-data.js +62 -0
  49. package/dist/correlation-chart/prepare-data.js.map +1 -0
  50. package/dist/correlation-chart/stories/utils.d.ts +6 -0
  51. package/dist/correlation-chart/unconformity-line.d.ts +3 -0
  52. package/dist/data-provider/base.cjs +349 -0
  53. package/dist/data-provider/base.cjs.map +1 -0
  54. package/dist/data-provider/base.d.ts +65 -0
  55. package/dist/data-provider/base.js +349 -0
  56. package/dist/data-provider/base.js.map +1 -0
  57. package/dist/data-provider/column-nav.cjs +36 -0
  58. package/dist/data-provider/column-nav.cjs.map +1 -0
  59. package/dist/data-provider/column-nav.d.ts +13 -0
  60. package/dist/data-provider/column-nav.js +36 -0
  61. package/dist/data-provider/column-nav.js.map +1 -0
  62. package/dist/data-provider/core.cjs +56 -0
  63. package/dist/data-provider/core.cjs.map +1 -0
  64. package/dist/data-provider/core.d.ts +31 -0
  65. package/dist/data-provider/core.js +56 -0
  66. package/dist/{esm/column-views.67804ce5.js.map → data-provider/core.js.map} +1 -1
  67. package/dist/data-provider/fetch.cjs +210 -0
  68. package/dist/data-provider/fetch.cjs.map +1 -0
  69. package/dist/data-provider/fetch.d.ts +27 -0
  70. package/dist/data-provider/fetch.js +210 -0
  71. package/dist/data-provider/fetch.js.map +1 -0
  72. package/dist/data-provider/index.d.ts +5 -0
  73. package/dist/data-provider/store.cjs +107 -0
  74. package/dist/data-provider/store.cjs.map +1 -0
  75. package/dist/data-provider/store.d.ts +34 -0
  76. package/dist/data-provider/store.js +107 -0
  77. package/dist/data-provider/store.js.map +1 -0
  78. package/dist/data-provider/unit-selection.cjs +225 -0
  79. package/dist/data-provider/unit-selection.cjs.map +1 -0
  80. package/dist/data-provider/unit-selection.d.ts +49 -0
  81. package/dist/data-provider/unit-selection.js +225 -0
  82. package/dist/data-provider/unit-selection.js.map +1 -0
  83. package/dist/facets/carbon-isotopes/data-area.cjs +64 -0
  84. package/dist/facets/carbon-isotopes/data-area.cjs.map +1 -0
  85. package/dist/facets/carbon-isotopes/data-area.d.ts +13 -0
  86. package/dist/facets/carbon-isotopes/data-area.js +64 -0
  87. package/dist/facets/carbon-isotopes/data-area.js.map +1 -0
  88. package/dist/facets/carbon-isotopes/data-provider.cjs +20 -0
  89. package/dist/facets/carbon-isotopes/data-provider.cjs.map +1 -0
  90. package/dist/facets/carbon-isotopes/data-provider.d.ts +4 -0
  91. package/dist/facets/carbon-isotopes/data-provider.js +20 -0
  92. package/dist/facets/carbon-isotopes/data-provider.js.map +1 -0
  93. package/dist/facets/carbon-isotopes/index.d.ts +2 -0
  94. package/dist/facets/carbon-isotopes/isotopes-column.cjs +174 -0
  95. package/dist/facets/carbon-isotopes/isotopes-column.cjs.map +1 -0
  96. package/dist/facets/carbon-isotopes/isotopes-column.d.ts +19 -0
  97. package/dist/facets/carbon-isotopes/isotopes-column.js +174 -0
  98. package/dist/facets/carbon-isotopes/isotopes-column.js.map +1 -0
  99. package/dist/facets/carbon-isotopes/isotopes-column.module.sass.cjs +15 -0
  100. package/dist/facets/carbon-isotopes/isotopes-column.module.sass.cjs.map +1 -0
  101. package/dist/facets/carbon-isotopes/isotopes-column.module.sass.js +15 -0
  102. package/dist/facets/carbon-isotopes/isotopes-column.module.sass.js.map +1 -0
  103. package/dist/facets/detrital-zircon/index.cjs +108 -0
  104. package/dist/facets/detrital-zircon/index.cjs.map +1 -0
  105. package/dist/facets/detrital-zircon/index.d.ts +24 -0
  106. package/dist/facets/detrital-zircon/index.js +108 -0
  107. package/dist/facets/detrital-zircon/index.js.map +1 -0
  108. package/dist/facets/detrital-zircon/index.module.sass.cjs +11 -0
  109. package/dist/facets/detrital-zircon/index.module.sass.cjs.map +1 -0
  110. package/dist/facets/detrital-zircon/index.module.sass.js +11 -0
  111. package/dist/facets/detrital-zircon/index.module.sass.js.map +1 -0
  112. package/dist/facets/detrital-zircon/provider.cjs +22 -0
  113. package/dist/facets/detrital-zircon/provider.cjs.map +1 -0
  114. package/dist/facets/detrital-zircon/provider.d.ts +31 -0
  115. package/dist/facets/detrital-zircon/provider.js +22 -0
  116. package/dist/facets/detrital-zircon/provider.js.map +1 -0
  117. package/dist/facets/fossils/index.cjs +120 -0
  118. package/dist/facets/fossils/index.cjs.map +1 -0
  119. package/dist/facets/fossils/index.d.ts +7 -0
  120. package/dist/facets/fossils/index.js +120 -0
  121. package/dist/facets/fossils/index.js.map +1 -0
  122. package/dist/facets/fossils/provider.cjs +99 -0
  123. package/dist/facets/fossils/provider.cjs.map +1 -0
  124. package/dist/facets/fossils/provider.d.ts +29 -0
  125. package/dist/facets/fossils/provider.js +99 -0
  126. package/dist/facets/fossils/provider.js.map +1 -0
  127. package/dist/facets/fossils/taxon-ranges.cjs +145 -0
  128. package/dist/facets/fossils/taxon-ranges.cjs.map +1 -0
  129. package/dist/facets/fossils/taxon-ranges.d.ts +3 -0
  130. package/dist/facets/fossils/taxon-ranges.js +145 -0
  131. package/dist/facets/fossils/taxon-ranges.js.map +1 -0
  132. package/dist/facets/fossils/taxon-ranges.module.sass.cjs +13 -0
  133. package/dist/facets/fossils/taxon-ranges.module.sass.cjs.map +1 -0
  134. package/dist/facets/fossils/taxon-ranges.module.sass.js +13 -0
  135. package/dist/facets/fossils/taxon-ranges.module.sass.js.map +1 -0
  136. package/dist/facets/index.d.ts +4 -0
  137. package/dist/facets/measurements/base.cjs +128 -0
  138. package/dist/facets/measurements/base.cjs.map +1 -0
  139. package/dist/facets/measurements/base.d.ts +46 -0
  140. package/dist/facets/measurements/base.js +128 -0
  141. package/dist/facets/measurements/base.js.map +1 -0
  142. package/dist/facets/measurements/base.module.sass.cjs +8 -0
  143. package/dist/facets/measurements/base.module.sass.cjs.map +1 -0
  144. package/dist/facets/measurements/base.module.sass.js +8 -0
  145. package/dist/facets/measurements/base.module.sass.js.map +1 -0
  146. package/dist/facets/measurements/index.d.ts +2 -0
  147. package/dist/facets/measurements/sgp.cjs +62 -0
  148. package/dist/facets/measurements/sgp.cjs.map +1 -0
  149. package/dist/facets/measurements/sgp.d.ts +3 -0
  150. package/dist/facets/measurements/sgp.js +62 -0
  151. package/dist/facets/measurements/sgp.js.map +1 -0
  152. package/dist/index.cjs +164 -0
  153. package/dist/index.cjs.map +1 -0
  154. package/dist/index.d.ts +11 -0
  155. package/dist/index.js +164 -0
  156. package/dist/index.js.map +1 -0
  157. package/dist/maps/_shared/index.d.ts +2 -0
  158. package/dist/maps/_shared/inset-map.cjs +69 -0
  159. package/dist/maps/_shared/inset-map.cjs.map +1 -0
  160. package/dist/maps/_shared/inset-map.d.ts +16 -0
  161. package/dist/maps/_shared/inset-map.js +69 -0
  162. package/dist/maps/_shared/inset-map.js.map +1 -0
  163. package/dist/maps/_shared/styles.cjs +68 -0
  164. package/dist/maps/_shared/styles.cjs.map +1 -0
  165. package/dist/maps/_shared/styles.d.ts +2 -0
  166. package/dist/maps/_shared/styles.js +68 -0
  167. package/dist/maps/_shared/styles.js.map +1 -0
  168. package/dist/maps/column-correlation/core.cjs +185 -0
  169. package/dist/maps/column-correlation/core.cjs.map +1 -0
  170. package/dist/maps/column-correlation/core.d.ts +9 -0
  171. package/dist/maps/column-correlation/core.js +185 -0
  172. package/dist/maps/column-correlation/core.js.map +1 -0
  173. package/dist/maps/column-correlation/index.d.ts +2 -0
  174. package/dist/maps/column-correlation/state.cjs +129 -0
  175. package/dist/maps/column-correlation/state.cjs.map +1 -0
  176. package/dist/maps/column-correlation/state.d.ts +31 -0
  177. package/dist/maps/column-correlation/state.js +129 -0
  178. package/dist/maps/column-correlation/state.js.map +1 -0
  179. package/dist/maps/column-navigation/index.d.ts +2 -0
  180. package/dist/maps/column-navigation/mapbox/index.cjs +175 -0
  181. package/dist/maps/column-navigation/mapbox/index.cjs.map +1 -0
  182. package/dist/maps/column-navigation/mapbox/index.d.ts +17 -0
  183. package/dist/maps/column-navigation/mapbox/index.js +175 -0
  184. package/dist/maps/column-navigation/mapbox/index.js.map +1 -0
  185. package/dist/maps/column-navigation/mapbox/keyboard-navigation.cjs +99 -0
  186. package/dist/maps/column-navigation/mapbox/keyboard-navigation.cjs.map +1 -0
  187. package/dist/maps/column-navigation/mapbox/keyboard-navigation.d.ts +31 -0
  188. package/dist/maps/column-navigation/mapbox/keyboard-navigation.js +99 -0
  189. package/dist/maps/column-navigation/mapbox/keyboard-navigation.js.map +1 -0
  190. package/dist/maps/column-navigation/mapbox/state.cjs +71 -0
  191. package/dist/maps/column-navigation/mapbox/state.cjs.map +1 -0
  192. package/dist/maps/column-navigation/mapbox/state.d.ts +23 -0
  193. package/dist/maps/column-navigation/mapbox/state.js +71 -0
  194. package/dist/maps/column-navigation/mapbox/state.js.map +1 -0
  195. package/dist/maps/column-navigation/svg/animated.d.ts +1 -0
  196. package/dist/maps/column-navigation/svg/index.cjs +92 -0
  197. package/dist/maps/column-navigation/svg/index.cjs.map +1 -0
  198. package/dist/maps/column-navigation/svg/index.d.ts +9 -0
  199. package/dist/maps/column-navigation/svg/index.js +93 -0
  200. package/dist/maps/column-navigation/svg/index.js.map +1 -0
  201. package/dist/maps/column-navigation/svg/layers.cjs +175 -0
  202. package/dist/maps/column-navigation/svg/layers.cjs.map +1 -0
  203. package/dist/maps/column-navigation/svg/layers.d.ts +54 -0
  204. package/dist/maps/column-navigation/svg/layers.js +175 -0
  205. package/dist/maps/column-navigation/svg/layers.js.map +1 -0
  206. package/dist/maps/column-navigation/utils/keyboard-navigation.cjs +50 -0
  207. package/dist/maps/column-navigation/utils/keyboard-navigation.cjs.map +1 -0
  208. package/dist/maps/column-navigation/utils/keyboard-navigation.d.ts +10 -0
  209. package/dist/maps/column-navigation/utils/keyboard-navigation.js +50 -0
  210. package/dist/maps/column-navigation/utils/keyboard-navigation.js.map +1 -0
  211. package/dist/maps/index.d.ts +3 -0
  212. package/dist/notes.cjs +41 -0
  213. package/dist/notes.cjs.map +1 -0
  214. package/dist/notes.d.ts +12 -0
  215. package/dist/notes.js +41 -0
  216. package/dist/notes.js.map +1 -0
  217. package/dist/prepare-units/composite-scale.cjs +284 -0
  218. package/dist/prepare-units/composite-scale.cjs.map +1 -0
  219. package/dist/prepare-units/composite-scale.d.ts +19 -0
  220. package/dist/prepare-units/composite-scale.js +284 -0
  221. package/dist/prepare-units/composite-scale.js.map +1 -0
  222. package/dist/prepare-units/dynamic-scales.cjs +190 -0
  223. package/dist/prepare-units/dynamic-scales.cjs.map +1 -0
  224. package/dist/prepare-units/dynamic-scales.d.ts +13 -0
  225. package/dist/prepare-units/dynamic-scales.js +190 -0
  226. package/dist/prepare-units/dynamic-scales.js.map +1 -0
  227. package/dist/prepare-units/helpers.cjs +198 -0
  228. package/dist/prepare-units/helpers.cjs.map +1 -0
  229. package/dist/prepare-units/helpers.d.ts +10 -0
  230. package/dist/prepare-units/helpers.js +198 -0
  231. package/dist/prepare-units/helpers.js.map +1 -0
  232. package/dist/prepare-units/index.cjs +130 -0
  233. package/dist/prepare-units/index.cjs.map +1 -0
  234. package/dist/prepare-units/index.d.ts +10 -0
  235. package/dist/prepare-units/index.js +131 -0
  236. package/dist/prepare-units/index.js.map +1 -0
  237. package/dist/prepare-units/types.cjs +16 -0
  238. package/dist/prepare-units/types.cjs.map +1 -0
  239. package/dist/prepare-units/types.d.ts +99 -0
  240. package/dist/prepare-units/types.js +16 -0
  241. package/dist/prepare-units/types.js.map +1 -0
  242. package/dist/prepare-units/utils.cjs +99 -0
  243. package/dist/prepare-units/utils.cjs.map +1 -0
  244. package/dist/prepare-units/utils.d.ts +39 -0
  245. package/dist/prepare-units/utils.js +99 -0
  246. package/dist/prepare-units/utils.js.map +1 -0
  247. package/dist/section.cjs +269 -0
  248. package/dist/section.cjs.map +1 -0
  249. package/dist/section.d.ts +45 -0
  250. package/dist/section.js +269 -0
  251. package/dist/section.js.map +1 -0
  252. package/dist/unit-details/index.d.ts +3 -0
  253. package/dist/unit-details/modal-panel.cjs +57 -0
  254. package/dist/unit-details/modal-panel.cjs.map +1 -0
  255. package/dist/unit-details/modal-panel.d.ts +1 -0
  256. package/dist/unit-details/modal-panel.js +57 -0
  257. package/dist/unit-details/modal-panel.js.map +1 -0
  258. package/dist/unit-details/panel.cjs +627 -0
  259. package/dist/unit-details/panel.cjs.map +1 -0
  260. package/dist/unit-details/panel.d.ts +87 -0
  261. package/dist/unit-details/panel.js +627 -0
  262. package/dist/unit-details/panel.js.map +1 -0
  263. package/dist/unit-details/panel.module.sass.cjs +42 -0
  264. package/dist/unit-details/panel.module.sass.cjs.map +1 -0
  265. package/dist/unit-details/panel.module.sass.js +42 -0
  266. package/dist/unit-details/panel.module.sass.js.map +1 -0
  267. package/dist/unit-details/popover.cjs +81 -0
  268. package/dist/unit-details/popover.cjs.map +1 -0
  269. package/dist/unit-details/popover.d.ts +9 -0
  270. package/dist/unit-details/popover.js +81 -0
  271. package/dist/unit-details/popover.js.map +1 -0
  272. package/dist/unit-details/popover.module.sass.cjs +10 -0
  273. package/dist/unit-details/popover.module.sass.cjs.map +1 -0
  274. package/dist/unit-details/popover.module.sass.js +10 -0
  275. package/dist/unit-details/popover.module.sass.js.map +1 -0
  276. package/dist/units/boxes.cjs +187 -0
  277. package/dist/units/boxes.cjs.map +1 -0
  278. package/dist/units/boxes.d.ts +54 -0
  279. package/dist/units/boxes.js +187 -0
  280. package/dist/units/boxes.js.map +1 -0
  281. package/dist/units/boxes.module.sass.cjs +11 -0
  282. package/dist/units/boxes.module.sass.cjs.map +1 -0
  283. package/dist/units/boxes.module.sass.js +11 -0
  284. package/dist/units/boxes.module.sass.js.map +1 -0
  285. package/dist/units/colors.cjs +52 -0
  286. package/dist/units/colors.cjs.map +1 -0
  287. package/dist/units/colors.d.ts +7 -0
  288. package/dist/units/colors.js +52 -0
  289. package/dist/units/colors.js.map +1 -0
  290. package/dist/units/composite.cjs +157 -0
  291. package/dist/units/composite.cjs.map +1 -0
  292. package/dist/units/composite.d.ts +39 -0
  293. package/dist/units/composite.js +157 -0
  294. package/dist/units/composite.js.map +1 -0
  295. package/dist/units/composite.module.sass.cjs +7 -0
  296. package/dist/units/composite.module.sass.cjs.map +1 -0
  297. package/dist/units/composite.module.sass.js +7 -0
  298. package/dist/units/composite.module.sass.js.map +1 -0
  299. package/dist/units/index.cjs +117 -0
  300. package/dist/units/index.cjs.map +1 -0
  301. package/dist/units/index.d.ts +40 -0
  302. package/dist/units/index.js +118 -0
  303. package/dist/units/index.js.map +1 -0
  304. package/dist/units/names.cjs +72 -0
  305. package/dist/units/names.cjs.map +1 -0
  306. package/dist/units/names.d.ts +33 -0
  307. package/dist/units/names.js +72 -0
  308. package/dist/units/names.js.map +1 -0
  309. package/dist/units/resolvers.cjs +114 -0
  310. package/dist/units/resolvers.cjs.map +1 -0
  311. package/dist/units/resolvers.d.ts +3 -0
  312. package/dist/units/resolvers.js +114 -0
  313. package/dist/units/resolvers.js.map +1 -0
  314. package/dist/units/types.d.ts +16 -0
  315. package/package.json +52 -55
  316. package/src/facets/measurements/sgp.ts +10 -3
  317. package/src/unit-details/popover.module.sass +3 -3
  318. package/dist/esm/column-views.006d5180.js +0 -97
  319. package/dist/esm/column-views.006d5180.js.map +0 -1
  320. package/dist/esm/column-views.052498a6.js +0 -93
  321. package/dist/esm/column-views.052498a6.js.map +0 -1
  322. package/dist/esm/column-views.079119f4.js +0 -17
  323. package/dist/esm/column-views.079119f4.js.map +0 -1
  324. package/dist/esm/column-views.0b3c0d18.js +0 -322
  325. package/dist/esm/column-views.0b3c0d18.js.map +0 -1
  326. package/dist/esm/column-views.0ed9da35.js +0 -141
  327. package/dist/esm/column-views.0ed9da35.js.map +0 -1
  328. package/dist/esm/column-views.0faf79a9.js +0 -142
  329. package/dist/esm/column-views.0faf79a9.js.map +0 -1
  330. package/dist/esm/column-views.16cc7a58.css +0 -37
  331. package/dist/esm/column-views.16cc7a58.css.map +0 -1
  332. package/dist/esm/column-views.17a70358.js +0 -16
  333. package/dist/esm/column-views.17a70358.js.map +0 -1
  334. package/dist/esm/column-views.19539293.js +0 -86
  335. package/dist/esm/column-views.19539293.js.map +0 -1
  336. package/dist/esm/column-views.1af3ec1f.js +0 -139
  337. package/dist/esm/column-views.1af3ec1f.js.map +0 -1
  338. package/dist/esm/column-views.1cd55918.js +0 -206
  339. package/dist/esm/column-views.1cd55918.js.map +0 -1
  340. package/dist/esm/column-views.22ec902b.js +0 -34
  341. package/dist/esm/column-views.22ec902b.js.map +0 -1
  342. package/dist/esm/column-views.2a0010a3.js +0 -15
  343. package/dist/esm/column-views.2a0010a3.js.map +0 -1
  344. package/dist/esm/column-views.2c45a7b5.js +0 -25
  345. package/dist/esm/column-views.2c45a7b5.js.map +0 -1
  346. package/dist/esm/column-views.321af3ae.css +0 -59
  347. package/dist/esm/column-views.321af3ae.css.map +0 -1
  348. package/dist/esm/column-views.334c3947.js +0 -75
  349. package/dist/esm/column-views.334c3947.js.map +0 -1
  350. package/dist/esm/column-views.33796541.js +0 -88
  351. package/dist/esm/column-views.33796541.js.map +0 -1
  352. package/dist/esm/column-views.337b40a2.js +0 -199
  353. package/dist/esm/column-views.337b40a2.js.map +0 -1
  354. package/dist/esm/column-views.338a7a83.css +0 -134
  355. package/dist/esm/column-views.338a7a83.css.map +0 -1
  356. package/dist/esm/column-views.33d35a44.js +0 -118
  357. package/dist/esm/column-views.33d35a44.js.map +0 -1
  358. package/dist/esm/column-views.3465c8ad.js +0 -16
  359. package/dist/esm/column-views.3465c8ad.js.map +0 -1
  360. package/dist/esm/column-views.362aae9a.js +0 -113
  361. package/dist/esm/column-views.362aae9a.js.map +0 -1
  362. package/dist/esm/column-views.3b972a9b.css +0 -4
  363. package/dist/esm/column-views.3b972a9b.css.map +0 -1
  364. package/dist/esm/column-views.3de4dc43.js +0 -66
  365. package/dist/esm/column-views.3de4dc43.js.map +0 -1
  366. package/dist/esm/column-views.40cd59b5.js +0 -13
  367. package/dist/esm/column-views.40cd59b5.js.map +0 -1
  368. package/dist/esm/column-views.4252a555.js +0 -248
  369. package/dist/esm/column-views.4252a555.js.map +0 -1
  370. package/dist/esm/column-views.45c70ba4.js +0 -38
  371. package/dist/esm/column-views.45c70ba4.js.map +0 -1
  372. package/dist/esm/column-views.47b7d9ca.js +0 -206
  373. package/dist/esm/column-views.47b7d9ca.js.map +0 -1
  374. package/dist/esm/column-views.47ca059d.js +0 -225
  375. package/dist/esm/column-views.47ca059d.js.map +0 -1
  376. package/dist/esm/column-views.4d374a35.js +0 -19
  377. package/dist/esm/column-views.4d374a35.js.map +0 -1
  378. package/dist/esm/column-views.54c1f382.css +0 -23
  379. package/dist/esm/column-views.54c1f382.css.map +0 -1
  380. package/dist/esm/column-views.562db43a.css +0 -148
  381. package/dist/esm/column-views.562db43a.css.map +0 -1
  382. package/dist/esm/column-views.5e1c216f.js +0 -180
  383. package/dist/esm/column-views.5e1c216f.js.map +0 -1
  384. package/dist/esm/column-views.60e97132.js +0 -20
  385. package/dist/esm/column-views.60e97132.js.map +0 -1
  386. package/dist/esm/column-views.636d6553.js +0 -343
  387. package/dist/esm/column-views.636d6553.js.map +0 -1
  388. package/dist/esm/column-views.64f6ddd3.js +0 -9
  389. package/dist/esm/column-views.64f6ddd3.js.map +0 -1
  390. package/dist/esm/column-views.6519a353.js +0 -9
  391. package/dist/esm/column-views.6519a353.js.map +0 -1
  392. package/dist/esm/column-views.67804ce5.js +0 -68
  393. package/dist/esm/column-views.6992ca88.js +0 -25
  394. package/dist/esm/column-views.6992ca88.js.map +0 -1
  395. package/dist/esm/column-views.6a954628.js +0 -70
  396. package/dist/esm/column-views.6a954628.js.map +0 -1
  397. package/dist/esm/column-views.6c670c13.css +0 -26
  398. package/dist/esm/column-views.6c670c13.css.map +0 -1
  399. package/dist/esm/column-views.6cff6659.js +0 -11
  400. package/dist/esm/column-views.6cff6659.js.map +0 -1
  401. package/dist/esm/column-views.6d6b73b4.js +0 -55
  402. package/dist/esm/column-views.6d6b73b4.js.map +0 -1
  403. package/dist/esm/column-views.6f9511d1.css +0 -25
  404. package/dist/esm/column-views.6f9511d1.css.map +0 -1
  405. package/dist/esm/column-views.6fff7602.js +0 -94
  406. package/dist/esm/column-views.6fff7602.js.map +0 -1
  407. package/dist/esm/column-views.70387120.js +0 -9
  408. package/dist/esm/column-views.70387120.js.map +0 -1
  409. package/dist/esm/column-views.708140ab.css +0 -36
  410. package/dist/esm/column-views.708140ab.css.map +0 -1
  411. package/dist/esm/column-views.74837922.js +0 -112
  412. package/dist/esm/column-views.74837922.js.map +0 -1
  413. package/dist/esm/column-views.76fb9948.js +0 -169
  414. package/dist/esm/column-views.76fb9948.js.map +0 -1
  415. package/dist/esm/column-views.7bfb4318.js +0 -161
  416. package/dist/esm/column-views.7bfb4318.js.map +0 -1
  417. package/dist/esm/column-views.7dc53f1b.js +0 -168
  418. package/dist/esm/column-views.7dc53f1b.js.map +0 -1
  419. package/dist/esm/column-views.85df21ec.js +0 -567
  420. package/dist/esm/column-views.85df21ec.js.map +0 -1
  421. package/dist/esm/column-views.87c589b7.js +0 -72
  422. package/dist/esm/column-views.87c589b7.js.map +0 -1
  423. package/dist/esm/column-views.8da2b857.js +0 -81
  424. package/dist/esm/column-views.8da2b857.js.map +0 -1
  425. package/dist/esm/column-views.8fb37de7.js +0 -9
  426. package/dist/esm/column-views.8fb37de7.js.map +0 -1
  427. package/dist/esm/column-views.905ddea0.js +0 -9
  428. package/dist/esm/column-views.905ddea0.js.map +0 -1
  429. package/dist/esm/column-views.9512c5d5.js +0 -240
  430. package/dist/esm/column-views.9512c5d5.js.map +0 -1
  431. package/dist/esm/column-views.9905b91c.js +0 -11
  432. package/dist/esm/column-views.9905b91c.js.map +0 -1
  433. package/dist/esm/column-views.9b77388d.js +0 -41
  434. package/dist/esm/column-views.9b77388d.js.map +0 -1
  435. package/dist/esm/column-views.a4f394fe.js +0 -127
  436. package/dist/esm/column-views.a4f394fe.js.map +0 -1
  437. package/dist/esm/column-views.a7c5ae16.js +0 -25
  438. package/dist/esm/column-views.a7c5ae16.js.map +0 -1
  439. package/dist/esm/column-views.aa9ede4d.js +0 -206
  440. package/dist/esm/column-views.aa9ede4d.js.map +0 -1
  441. package/dist/esm/column-views.b2142cd8.js +0 -13
  442. package/dist/esm/column-views.b2142cd8.js.map +0 -1
  443. package/dist/esm/column-views.b7cf0da2.js +0 -60
  444. package/dist/esm/column-views.b7cf0da2.js.map +0 -1
  445. package/dist/esm/column-views.b88d4bbe.js +0 -61
  446. package/dist/esm/column-views.b88d4bbe.js.map +0 -1
  447. package/dist/esm/column-views.beb54e95.js +0 -39
  448. package/dist/esm/column-views.beb54e95.js.map +0 -1
  449. package/dist/esm/column-views.c750a6df.js +0 -9
  450. package/dist/esm/column-views.c750a6df.js.map +0 -1
  451. package/dist/esm/column-views.cb1cc9f2.js +0 -134
  452. package/dist/esm/column-views.cb1cc9f2.js.map +0 -1
  453. package/dist/esm/column-views.cb6fc808.css +0 -54
  454. package/dist/esm/column-views.cb6fc808.css.map +0 -1
  455. package/dist/esm/column-views.cc733361.js +0 -55
  456. package/dist/esm/column-views.cc733361.js.map +0 -1
  457. package/dist/esm/column-views.ce000969.js +0 -187
  458. package/dist/esm/column-views.ce000969.js.map +0 -1
  459. package/dist/esm/column-views.d5e788e8.js +0 -31
  460. package/dist/esm/column-views.d5e788e8.js.map +0 -1
  461. package/dist/esm/column-views.d7740949.js +0 -152
  462. package/dist/esm/column-views.d7740949.js.map +0 -1
  463. package/dist/esm/column-views.d7e6bf67.js +0 -70
  464. package/dist/esm/column-views.d7e6bf67.js.map +0 -1
  465. package/dist/esm/column-views.dac0a3bb.js +0 -149
  466. package/dist/esm/column-views.dac0a3bb.js.map +0 -1
  467. package/dist/esm/column-views.dc42f5d0.js +0 -48
  468. package/dist/esm/column-views.dc42f5d0.js.map +0 -1
  469. package/dist/esm/column-views.e13a0a76.js +0 -138
  470. package/dist/esm/column-views.e13a0a76.js.map +0 -1
  471. package/dist/esm/column-views.e40b8bfb.css +0 -14
  472. package/dist/esm/column-views.e40b8bfb.css.map +0 -1
  473. package/dist/esm/column-views.e93478c3.css +0 -194
  474. package/dist/esm/column-views.e93478c3.css.map +0 -1
  475. package/dist/esm/column-views.ea08f667.js +0 -218
  476. package/dist/esm/column-views.ea08f667.js.map +0 -1
  477. package/dist/esm/column-views.edf77621.js +0 -22
  478. package/dist/esm/column-views.edf77621.js.map +0 -1
  479. package/dist/esm/column-views.f9dab157.js +0 -3
  480. package/dist/esm/column-views.f9dab157.js.map +0 -1
  481. package/dist/esm/column-views.fcf25ec6.js +0 -76
  482. package/dist/esm/column-views.fcf25ec6.js.map +0 -1
  483. package/dist/esm/column-views.fe42d2fc.js +0 -134
  484. package/dist/esm/column-views.fe42d2fc.js.map +0 -1
  485. package/dist/esm/index.d.ts +0 -1008
  486. package/dist/esm/index.d.ts.map +0 -1
  487. package/dist/esm/index.js +0 -27
  488. package/dist/esm/index.js.map +0 -1
  489. package/dist/node/column-views.012fa10c.js +0 -2
  490. package/dist/node/column-views.012fa10c.js.map +0 -1
  491. package/dist/node/column-views.048fdcaf.js +0 -2
  492. package/dist/node/column-views.048fdcaf.js.map +0 -1
  493. package/dist/node/column-views.04a72b35.js +0 -2
  494. package/dist/node/column-views.04a72b35.js.map +0 -1
  495. package/dist/node/column-views.0619e2da.js +0 -2
  496. package/dist/node/column-views.0619e2da.js.map +0 -1
  497. package/dist/node/column-views.0840b115.css +0 -2
  498. package/dist/node/column-views.0840b115.css.map +0 -1
  499. package/dist/node/column-views.0af5912d.js +0 -2
  500. package/dist/node/column-views.0af5912d.js.map +0 -1
  501. package/dist/node/column-views.0bd15ee4.js +0 -2
  502. package/dist/node/column-views.0bd15ee4.js.map +0 -1
  503. package/dist/node/column-views.0d254fd3.js +0 -2
  504. package/dist/node/column-views.0d254fd3.js.map +0 -1
  505. package/dist/node/column-views.109cb0c8.js +0 -2
  506. package/dist/node/column-views.109cb0c8.js.map +0 -1
  507. package/dist/node/column-views.1261be59.js +0 -2
  508. package/dist/node/column-views.1261be59.js.map +0 -1
  509. package/dist/node/column-views.15b5cecc.js +0 -2
  510. package/dist/node/column-views.15b5cecc.js.map +0 -1
  511. package/dist/node/column-views.183745c0.js +0 -2
  512. package/dist/node/column-views.183745c0.js.map +0 -1
  513. package/dist/node/column-views.2e2158f5.js +0 -2
  514. package/dist/node/column-views.2e2158f5.js.map +0 -1
  515. package/dist/node/column-views.306acd3f.js +0 -2
  516. package/dist/node/column-views.306acd3f.js.map +0 -1
  517. package/dist/node/column-views.31153f29.js +0 -2
  518. package/dist/node/column-views.31153f29.js.map +0 -1
  519. package/dist/node/column-views.31da008b.js +0 -2
  520. package/dist/node/column-views.31da008b.js.map +0 -1
  521. package/dist/node/column-views.3a079e34.css +0 -2
  522. package/dist/node/column-views.3a079e34.css.map +0 -1
  523. package/dist/node/column-views.40e758b3.js +0 -2
  524. package/dist/node/column-views.40e758b3.js.map +0 -1
  525. package/dist/node/column-views.41876859.js +0 -2
  526. package/dist/node/column-views.41876859.js.map +0 -1
  527. package/dist/node/column-views.4a28d695.js +0 -2
  528. package/dist/node/column-views.4a28d695.js.map +0 -1
  529. package/dist/node/column-views.4ec769a6.js +0 -2
  530. package/dist/node/column-views.4ec769a6.js.map +0 -1
  531. package/dist/node/column-views.50a992d3.css +0 -2
  532. package/dist/node/column-views.50a992d3.css.map +0 -1
  533. package/dist/node/column-views.51fbed89.js +0 -2
  534. package/dist/node/column-views.51fbed89.js.map +0 -1
  535. package/dist/node/column-views.5987bc26.js +0 -2
  536. package/dist/node/column-views.5987bc26.js.map +0 -1
  537. package/dist/node/column-views.5a9331a9.js +0 -2
  538. package/dist/node/column-views.5a9331a9.js.map +0 -1
  539. package/dist/node/column-views.5bb858c9.js +0 -2
  540. package/dist/node/column-views.5bb858c9.js.map +0 -1
  541. package/dist/node/column-views.5c1b0eeb.css +0 -2
  542. package/dist/node/column-views.5c1b0eeb.css.map +0 -1
  543. package/dist/node/column-views.5cbada24.js +0 -2
  544. package/dist/node/column-views.5cbada24.js.map +0 -1
  545. package/dist/node/column-views.5fcd2be6.js +0 -2
  546. package/dist/node/column-views.5fcd2be6.js.map +0 -1
  547. package/dist/node/column-views.672b683c.js +0 -2
  548. package/dist/node/column-views.672b683c.js.map +0 -1
  549. package/dist/node/column-views.6a0a35e7.js +0 -2
  550. package/dist/node/column-views.6a0a35e7.js.map +0 -1
  551. package/dist/node/column-views.6a4c2100.css +0 -2
  552. package/dist/node/column-views.6a4c2100.css.map +0 -1
  553. package/dist/node/column-views.6a9da051.js +0 -2
  554. package/dist/node/column-views.6a9da051.js.map +0 -1
  555. package/dist/node/column-views.6bba8c57.js +0 -2
  556. package/dist/node/column-views.6bba8c57.js.map +0 -1
  557. package/dist/node/column-views.75ba0464.css +0 -2
  558. package/dist/node/column-views.75ba0464.css.map +0 -1
  559. package/dist/node/column-views.78b2d234.js +0 -2
  560. package/dist/node/column-views.78b2d234.js.map +0 -1
  561. package/dist/node/column-views.7b6e7d82.js +0 -2
  562. package/dist/node/column-views.7b6e7d82.js.map +0 -1
  563. package/dist/node/column-views.7b9bd06e.css +0 -2
  564. package/dist/node/column-views.7b9bd06e.css.map +0 -1
  565. package/dist/node/column-views.7d45bbeb.js +0 -2
  566. package/dist/node/column-views.7d45bbeb.js.map +0 -1
  567. package/dist/node/column-views.7f9c7448.js +0 -2
  568. package/dist/node/column-views.7f9c7448.js.map +0 -1
  569. package/dist/node/column-views.82cf7c0d.js +0 -2
  570. package/dist/node/column-views.82cf7c0d.js.map +0 -1
  571. package/dist/node/column-views.869c7199.js +0 -2
  572. package/dist/node/column-views.869c7199.js.map +0 -1
  573. package/dist/node/column-views.8bee789c.js +0 -2
  574. package/dist/node/column-views.8bee789c.js.map +0 -1
  575. package/dist/node/column-views.90c36c0b.js +0 -2
  576. package/dist/node/column-views.90c36c0b.js.map +0 -1
  577. package/dist/node/column-views.951e3e9a.js +0 -2
  578. package/dist/node/column-views.951e3e9a.js.map +0 -1
  579. package/dist/node/column-views.95411f1b.js +0 -2
  580. package/dist/node/column-views.95411f1b.js.map +0 -1
  581. package/dist/node/column-views.9cb13e51.css +0 -2
  582. package/dist/node/column-views.9cb13e51.css.map +0 -1
  583. package/dist/node/column-views.a0969fc8.js +0 -2
  584. package/dist/node/column-views.a0969fc8.js.map +0 -1
  585. package/dist/node/column-views.a2476e39.js +0 -2
  586. package/dist/node/column-views.a2476e39.js.map +0 -1
  587. package/dist/node/column-views.a8f5ee28.js +0 -2
  588. package/dist/node/column-views.a8f5ee28.js.map +0 -1
  589. package/dist/node/column-views.ad60c02f.js +0 -2
  590. package/dist/node/column-views.ad60c02f.js.map +0 -1
  591. package/dist/node/column-views.add5e42b.js +0 -2
  592. package/dist/node/column-views.add5e42b.js.map +0 -1
  593. package/dist/node/column-views.aff55599.js +0 -2
  594. package/dist/node/column-views.aff55599.js.map +0 -1
  595. package/dist/node/column-views.b169b4b5.css +0 -2
  596. package/dist/node/column-views.b169b4b5.css.map +0 -1
  597. package/dist/node/column-views.b2e5f823.js +0 -2
  598. package/dist/node/column-views.b2e5f823.js.map +0 -1
  599. package/dist/node/column-views.b57e5e6e.js +0 -2
  600. package/dist/node/column-views.b57e5e6e.js.map +0 -1
  601. package/dist/node/column-views.b762c9a8.js +0 -2
  602. package/dist/node/column-views.b762c9a8.js.map +0 -1
  603. package/dist/node/column-views.ba9108fe.js +0 -2
  604. package/dist/node/column-views.ba9108fe.js.map +0 -1
  605. package/dist/node/column-views.c16a19fb.js +0 -2
  606. package/dist/node/column-views.c16a19fb.js.map +0 -1
  607. package/dist/node/column-views.c3097d9a.js +0 -2
  608. package/dist/node/column-views.c3097d9a.js.map +0 -1
  609. package/dist/node/column-views.c4c15e2b.js +0 -2
  610. package/dist/node/column-views.c4c15e2b.js.map +0 -1
  611. package/dist/node/column-views.c651b684.js +0 -2
  612. package/dist/node/column-views.c651b684.js.map +0 -1
  613. package/dist/node/column-views.c968a185.css +0 -2
  614. package/dist/node/column-views.c968a185.css.map +0 -1
  615. package/dist/node/column-views.ccfb9afb.css +0 -2
  616. package/dist/node/column-views.ccfb9afb.css.map +0 -1
  617. package/dist/node/column-views.cdcce702.js +0 -2
  618. package/dist/node/column-views.cdcce702.js.map +0 -1
  619. package/dist/node/column-views.cf41a6d7.js +0 -2
  620. package/dist/node/column-views.cf41a6d7.js.map +0 -1
  621. package/dist/node/column-views.d22bf15c.js +0 -2
  622. package/dist/node/column-views.d22bf15c.js.map +0 -1
  623. package/dist/node/column-views.d737de1e.js +0 -2
  624. package/dist/node/column-views.d737de1e.js.map +0 -1
  625. package/dist/node/column-views.da902c44.js +0 -2
  626. package/dist/node/column-views.da902c44.js.map +0 -1
  627. package/dist/node/column-views.db3377d8.js +0 -2
  628. package/dist/node/column-views.db3377d8.js.map +0 -1
  629. package/dist/node/column-views.dbb4a46b.js +0 -2
  630. package/dist/node/column-views.dbb4a46b.js.map +0 -1
  631. package/dist/node/column-views.ddc6184e.css +0 -2
  632. package/dist/node/column-views.ddc6184e.css.map +0 -1
  633. package/dist/node/column-views.e0e20136.js +0 -2
  634. package/dist/node/column-views.e0e20136.js.map +0 -1
  635. package/dist/node/column-views.e2562224.js +0 -2
  636. package/dist/node/column-views.e2562224.js.map +0 -1
  637. package/dist/node/column-views.e6720522.js +0 -2
  638. package/dist/node/column-views.e6720522.js.map +0 -1
  639. package/dist/node/column-views.e7e26765.js +0 -2
  640. package/dist/node/column-views.e7e26765.js.map +0 -1
  641. package/dist/node/column-views.e93b3bdb.js +0 -2
  642. package/dist/node/column-views.e93b3bdb.js.map +0 -1
  643. package/dist/node/column-views.ebb44b7d.js +0 -2
  644. package/dist/node/column-views.ebb44b7d.js.map +0 -1
  645. package/dist/node/column-views.ec0087a2.js +0 -2
  646. package/dist/node/column-views.ec0087a2.js.map +0 -1
  647. package/dist/node/column-views.eea80478.js +0 -2
  648. package/dist/node/column-views.eea80478.js.map +0 -1
  649. package/dist/node/column-views.f2e82230.js +0 -2
  650. package/dist/node/column-views.f2e82230.js.map +0 -1
  651. package/dist/node/column-views.fb3ed7cc.js +0 -2
  652. package/dist/node/column-views.fb3ed7cc.js.map +0 -1
  653. package/dist/node/column-views.fcb243a2.js +0 -2
  654. package/dist/node/column-views.fcb243a2.js.map +0 -1
  655. package/dist/node/column-views.fea32686.js +0 -2
  656. package/dist/node/column-views.fea32686.js.map +0 -1
  657. package/dist/node/index.js +0 -2
  658. package/dist/node/index.js.map +0 -1
@@ -0,0 +1,157 @@
1
+ import { hyperStyled } from "@macrostrat/hyper";
2
+ import { ColumnContext, LithologyColumn, SVG } from "@macrostrat/column-components";
3
+ import { defaultNameFunction, UnitNamesColumn } from "./names.js";
4
+ import { useEffect, useContext, useState, useRef, useCallback, createContext } from "react";
5
+ import { LabeledUnit, UnitBoxes } from "./boxes.js";
6
+ import styles from "./composite.module.sass.js";
7
+ import { useUnitSelectionDispatch } from "../data-provider/unit-selection.js";
8
+ import { useMacrostratColumnData, useCompositeScale } from "../data-provider/store.js";
9
+ const h = hyperStyled(styles);
10
+ const LabelTrackerContext = createContext(null);
11
+ const UnlabeledDivisionsContext = createContext(null);
12
+ const findMacrostratUnitID = (u) => u.unit_id;
13
+ function LabelTrackerProvider(props) {
14
+ const { children, units, findUnitID = findMacrostratUnitID } = props;
15
+ const [unlabeledDivisions, setUnlabeledDivisions] = useState(null);
16
+ const labelTrackerRef = useRef({});
17
+ const trackLabelVisibility = useCallback(
18
+ (div, visible) => {
19
+ const id = findUnitID(div);
20
+ labelTrackerRef.current[id] = visible;
21
+ if (Object.keys(labelTrackerRef.current).length == units.length) {
22
+ setUnlabeledDivisions(
23
+ // @ts-ignore
24
+ units.filter((d) => {
25
+ const id2 = findUnitID(d);
26
+ return labelTrackerRef.current[id2] == false;
27
+ })
28
+ );
29
+ }
30
+ },
31
+ [labelTrackerRef, units, findUnitID]
32
+ );
33
+ const value = trackLabelVisibility;
34
+ return h(
35
+ LabelTrackerContext.Provider,
36
+ { value },
37
+ h(
38
+ UnlabeledDivisionsContext.Provider,
39
+ { value: unlabeledDivisions },
40
+ children
41
+ )
42
+ );
43
+ }
44
+ function TrackedLabeledUnit({
45
+ division,
46
+ nameForDivision = defaultNameFunction,
47
+ ...rest
48
+ }) {
49
+ const trackLabelVisibility = useContext(LabelTrackerContext);
50
+ return h(LabeledUnit, {
51
+ division,
52
+ label: nameForDivision(division),
53
+ onLabelUpdated(label, visible) {
54
+ trackLabelVisibility?.(division, visible);
55
+ },
56
+ ...rest
57
+ });
58
+ }
59
+ const CompositeUnitComponent = TrackedLabeledUnit;
60
+ function CompositeUnitsColumn(props) {
61
+ const {
62
+ width,
63
+ unitComponent = TrackedLabeledUnit,
64
+ unitComponentProps,
65
+ clipToFrame,
66
+ ...rest
67
+ } = props;
68
+ return h(LithologyColumn, { width, clipToFrame }, [
69
+ h(UnitBoxes, {
70
+ unitComponent,
71
+ unitComponentProps,
72
+ ...rest
73
+ })
74
+ ]);
75
+ }
76
+ function AnnotatedUnitsColumn(props) {
77
+ useEffect(() => {
78
+ console.warn(
79
+ "AnnotatedUnitsColumn is deprecated and currently renders a no-op for transition purposes"
80
+ );
81
+ }, []);
82
+ return null;
83
+ }
84
+ function SectionLabelsColumn(props) {
85
+ const {
86
+ width = 300,
87
+ noteMode = "unlabeled",
88
+ labelOffset = 30,
89
+ noteComponent,
90
+ shouldRenderNote
91
+ } = props;
92
+ const { totalHeight, axisType } = useMacrostratColumnData();
93
+ const _compositeScale = useCompositeScale();
94
+ const unlabeledUnits = useContext(UnlabeledDivisionsContext);
95
+ const unitsToLabel = noteMode == "unlabeled" ? unlabeledUnits : void 0;
96
+ const selectUnit = useUnitSelectionDispatch();
97
+ return h("div.section-labels-column", [
98
+ h(
99
+ ColumnNotesProvider,
100
+ {
101
+ units: [],
102
+ scale: _compositeScale,
103
+ totalHeight,
104
+ axisType
105
+ },
106
+ h(
107
+ SVG,
108
+ {
109
+ height: totalHeight,
110
+ innerWidth: width - 4,
111
+ paddingH: 1,
112
+ paddingLeft: 3
113
+ },
114
+ h(UnitNamesColumn, {
115
+ divisions: unitsToLabel,
116
+ paddingLeft: labelOffset,
117
+ width,
118
+ noteComponent,
119
+ shouldRenderNote,
120
+ scale: _compositeScale,
121
+ onClickNote(note) {
122
+ selectUnit(note.data, null, null);
123
+ }
124
+ })
125
+ )
126
+ )
127
+ ]);
128
+ }
129
+ function ColumnNotesProvider(props) {
130
+ const { children, scale, totalHeight, pixelScale } = props;
131
+ const { axisType } = useMacrostratColumnData();
132
+ return h(
133
+ ColumnContext.Provider,
134
+ {
135
+ value: {
136
+ divisions: [],
137
+ scale,
138
+ scaleClamped: scale,
139
+ pixelHeight: totalHeight,
140
+ pixelsPerMeter: pixelScale,
141
+ axisType,
142
+ zoom: 1
143
+ }
144
+ },
145
+ children
146
+ );
147
+ }
148
+ export {
149
+ AnnotatedUnitsColumn,
150
+ ColumnNotesProvider,
151
+ CompositeUnitComponent,
152
+ CompositeUnitsColumn,
153
+ LabelTrackerProvider,
154
+ SectionLabelsColumn,
155
+ TrackedLabeledUnit
156
+ };
157
+ //# sourceMappingURL=composite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite.js","sources":["../../src/units/composite.ts"],"sourcesContent":["import { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n ColumnContext,\n LithologyColumn,\n SVG,\n} from \"@macrostrat/column-components\";\nimport { defaultNameFunction, UnitNamesColumn } from \"./names\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { BaseUnit } from \"@macrostrat/api-types\";\nimport { LabeledUnit, UnitBoxes } from \"./boxes\";\nimport styles from \"./composite.module.sass\";\nimport {\n useCompositeScale,\n useMacrostratColumnData,\n useUnitSelectionDispatch,\n} from \"../data-provider\";\n\nconst h = hyperStyled(styles);\n\ninterface LabelTracker {\n [key: number]: boolean;\n}\n\nconst LabelTrackerContext = createContext(null);\nconst UnlabeledDivisionsContext = createContext(null);\n\nconst findMacrostratUnitID = (u) => u.unit_id;\n\nexport function LabelTrackerProvider(props) {\n /** Tracker for units to handle state for whether their labels fit inline or not.\n * Designed to work for single or composite columns.\n */\n const { children, units, findUnitID = findMacrostratUnitID } = props;\n const [unlabeledDivisions, setUnlabeledDivisions] = useState<\n BaseUnit[] | null\n >(null);\n const labelTrackerRef = useRef<LabelTracker>({});\n const trackLabelVisibility = useCallback(\n (div, visible) => {\n const id = findUnitID(div);\n labelTrackerRef.current[id] = visible;\n if (Object.keys(labelTrackerRef.current).length == units.length) {\n setUnlabeledDivisions(\n // @ts-ignore\n units.filter((d) => {\n const id = findUnitID(d);\n return labelTrackerRef.current[id] == false;\n }),\n );\n }\n },\n [labelTrackerRef, units, findUnitID],\n );\n\n const value = trackLabelVisibility;\n return h(\n LabelTrackerContext.Provider,\n { value },\n h(\n UnlabeledDivisionsContext.Provider,\n { value: unlabeledDivisions },\n children,\n ),\n );\n}\n\nfunction TrackedLabeledUnit({\n division,\n nameForDivision = defaultNameFunction,\n ...rest\n}) {\n const trackLabelVisibility = useContext(LabelTrackerContext);\n return h(LabeledUnit, {\n division,\n label: nameForDivision(division),\n onLabelUpdated(label, visible) {\n // If there is al LabelTrackerContext, update the label visibility\n trackLabelVisibility?.(division, visible);\n },\n ...rest,\n });\n}\n\nexport const CompositeUnitComponent = TrackedLabeledUnit;\n\ntype BaseUnitProps = {\n width: number;\n showLabels?: boolean;\n columnWidth?: number;\n clipToFrame?: boolean;\n};\n\ntype ICompositeUnitProps = BaseUnitProps & {\n gutterWidth?: number;\n labelOffset?: number;\n paddingLeft?: number;\n nameForDivision?: (division: BaseUnit) => string;\n children?: React.ReactNode;\n unitComponent?: React.FC<any>;\n unitComponentProps?: any;\n noteMode?: \"labeled\" | \"unlabeled\";\n showLabelColumn?: boolean;\n noteComponent?: React.FC<any>;\n shouldRenderNote?: (d: any) => boolean;\n};\n\ninterface CompositeUnitProps {\n unitComponent: React.FC<any>;\n unitComponentProps?: any;\n width: number;\n showLabels?: boolean;\n clipToFrame?: boolean;\n}\n\nexport function CompositeUnitsColumn(props: CompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const {\n width,\n unitComponent = TrackedLabeledUnit,\n unitComponentProps,\n clipToFrame,\n ...rest\n } = props;\n\n return h(LithologyColumn, { width, clipToFrame }, [\n h(UnitBoxes, {\n unitComponent,\n unitComponentProps,\n ...rest,\n }),\n ]);\n}\n\nexport function AnnotatedUnitsColumn(props: ICompositeUnitProps) {\n useEffect(() => {\n console.warn(\n \"AnnotatedUnitsColumn is deprecated and currently renders a no-op for transition purposes\",\n );\n }, []);\n return null;\n}\n\nexport function SectionLabelsColumn(props: ICompositeUnitProps) {\n // Section with \"squishy\" time scale\n const {\n width = 300,\n noteMode = \"unlabeled\",\n labelOffset = 30,\n noteComponent,\n shouldRenderNote,\n } = props;\n\n const { totalHeight, axisType } = useMacrostratColumnData();\n const _compositeScale = useCompositeScale();\n\n const unlabeledUnits = useContext(UnlabeledDivisionsContext);\n const unitsToLabel = noteMode == \"unlabeled\" ? unlabeledUnits : undefined;\n\n const selectUnit = useUnitSelectionDispatch();\n\n return h(\"div.section-labels-column\", [\n h(\n ColumnNotesProvider,\n {\n units: [],\n scale: _compositeScale,\n totalHeight,\n axisType,\n },\n h(\n SVG,\n {\n height: totalHeight,\n innerWidth: width - 4,\n paddingH: 1,\n paddingLeft: 3,\n },\n h(UnitNamesColumn, {\n divisions: unitsToLabel,\n paddingLeft: labelOffset,\n width,\n noteComponent,\n shouldRenderNote,\n scale: _compositeScale,\n onClickNote(note) {\n selectUnit(note.data, null, null);\n },\n }),\n ),\n ),\n ]);\n}\n\nexport function ColumnNotesProvider(props) {\n // A fake column axis provider that allows scales to cross\n const { children, scale, totalHeight, pixelScale } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n return h(\n ColumnContext.Provider,\n {\n value: {\n divisions: [],\n scale,\n scaleClamped: scale,\n pixelHeight: totalHeight,\n pixelsPerMeter: pixelScale,\n axisType,\n zoom: 1,\n },\n },\n children,\n );\n}\n\nexport { TrackedLabeledUnit, ICompositeUnitProps };\n"],"names":["id"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const styles = {
4
+ "unit-label": "_unit-label_tidbs_1"
5
+ };
6
+ exports.default = styles;
7
+ //# sourceMappingURL=composite.module.sass.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite.module.sass.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,7 @@
1
+ const styles = {
2
+ "unit-label": "_unit-label_tidbs_1"
3
+ };
4
+ export {
5
+ styles as default
6
+ };
7
+ //# sourceMappingURL=composite.module.sass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite.module.sass.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const h = require("@macrostrat/hyper");
4
+ const columnComponents = require("@macrostrat/column-components");
5
+ const names = require("./names.cjs");
6
+ const boxes = require("./boxes.cjs");
7
+ const uiComponents = require("@macrostrat/ui-components");
8
+ const colors = require("./colors.cjs");
9
+ const composite = require("./composite.cjs");
10
+ const React = require("react");
11
+ const resolvers = require("./resolvers.cjs");
12
+ const base = require("../data-provider/base.cjs");
13
+ function UnitsColumn({ width = 100 }) {
14
+ return h(columnComponents.LithologyColumn, { width }, h(boxes.UnitBoxes));
15
+ }
16
+ function SimpleUnitsColumn(props) {
17
+ const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;
18
+ return h([
19
+ h(UnitsColumn, {
20
+ width: columnWidth
21
+ }),
22
+ h(names.UnitNamesColumn, {
23
+ transform: `translate(${columnWidth + gutterWidth})`,
24
+ paddingLeft: labelOffset,
25
+ width: width - columnWidth - gutterWidth
26
+ })
27
+ ]);
28
+ }
29
+ function BasicUnitComponent({ division, ...rest }) {
30
+ return h(UnitComponent, {
31
+ division,
32
+ ...rest,
33
+ backgroundColor: division.color,
34
+ patternID: division.patternID
35
+ });
36
+ }
37
+ function UnitComponent({ division, nColumns = 2, ...rest }) {
38
+ const width = rest.width ?? columnComponents.useColumnLayout()?.width;
39
+ const nOverlappingUnits = division.overlappingUnits?.length ?? 0;
40
+ const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;
41
+ const columnIx = (division.column ?? 0) % _nColumns;
42
+ const reducedWidth = width / _nColumns;
43
+ const x = columnIx * width / _nColumns;
44
+ return h(composite.TrackedLabeledUnit, {
45
+ division,
46
+ ...rest,
47
+ width: reducedWidth,
48
+ x
49
+ });
50
+ }
51
+ function useUnitColor(unit, opts = {}) {
52
+ const lithMap = base.useLithologies();
53
+ const inDarkMode = uiComponents.useInDarkMode();
54
+ const { asBackground = true } = opts;
55
+ return React.useMemo(() => {
56
+ if (unit == null || lithMap == null) return null;
57
+ return colors.getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);
58
+ }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);
59
+ }
60
+ function ColoredUnitComponent(props) {
61
+ const backgroundColor = useUnitColor(props.division);
62
+ const patternID = React.useMemo(() => {
63
+ return resolvers.resolveID(props.division);
64
+ }, [props.division?.unit_id]);
65
+ const fill = columnComponents.useGeologicPattern(patternID);
66
+ return h(UnitComponent, {
67
+ fill,
68
+ backgroundColor,
69
+ ...props
70
+ });
71
+ }
72
+ function useUnitColorByEnvironment(unit, opts = {}) {
73
+ const environmentMap = base.useEnvironments();
74
+ const lithMap = base.useLithologies();
75
+ const inDarkMode = uiComponents.useInDarkMode();
76
+ const { asBackground = true } = opts;
77
+ return React.useMemo(() => {
78
+ if (unit == null || environmentMap == null) return null;
79
+ let c = colors.getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {
80
+ key: "environ",
81
+ id_key: "environ_id"
82
+ });
83
+ if (c != null) {
84
+ return c;
85
+ }
86
+ return colors.getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);
87
+ }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);
88
+ }
89
+ function EnvironmentColoredUnitComponent(props) {
90
+ const backgroundColor = useUnitColorByEnvironment(props.division);
91
+ const patternID = React.useMemo(() => {
92
+ return resolvers.resolveID(props.division);
93
+ }, [props.division?.unit_id]);
94
+ const fill = columnComponents.useGeologicPattern(patternID);
95
+ return h(UnitComponent, {
96
+ fill,
97
+ backgroundColor,
98
+ ...props
99
+ });
100
+ }
101
+ exports.getMixedUnitColor = colors.getMixedUnitColor;
102
+ exports.AnnotatedUnitsColumn = composite.AnnotatedUnitsColumn;
103
+ exports.ColumnNotesProvider = composite.ColumnNotesProvider;
104
+ exports.CompositeUnitComponent = composite.CompositeUnitComponent;
105
+ exports.CompositeUnitsColumn = composite.CompositeUnitsColumn;
106
+ exports.LabelTrackerProvider = composite.LabelTrackerProvider;
107
+ exports.SectionLabelsColumn = composite.SectionLabelsColumn;
108
+ exports.TrackedLabeledUnit = composite.TrackedLabeledUnit;
109
+ exports.BasicUnitComponent = BasicUnitComponent;
110
+ exports.ColoredUnitComponent = ColoredUnitComponent;
111
+ exports.EnvironmentColoredUnitComponent = EnvironmentColoredUnitComponent;
112
+ exports.SimpleUnitsColumn = SimpleUnitsColumn;
113
+ exports.UnitComponent = UnitComponent;
114
+ exports.UnitsColumn = UnitsColumn;
115
+ exports.useUnitColor = useUnitColor;
116
+ exports.useUnitColorByEnvironment = useUnitColorByEnvironment;
117
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/units/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { UnitNamesColumn } from \"./names\";\nimport { ICompositeUnitProps } from \"./composite\";\nimport { UnitBoxes, UnitProps } from \"./boxes\";\nimport { useColumnLayout } from \"@macrostrat/column-components\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { TrackedLabeledUnit } from \"./composite\";\nimport { useEnvironments, useLithologies } from \"../data-provider\";\nimport { useMemo } from \"react\";\nimport { resolveID } from \"./resolvers\";\nimport { Lithology } from \"@macrostrat/api-types\";\n\nexport * from \"./composite\";\nexport * from \"./types\";\nexport * from \"./colors\";\n\nexport function UnitsColumn({ width = 100 }) {\n /*\n A column showing units with USGS color fill\n */\n return h(LithologyColumn, { width }, h(UnitBoxes));\n}\n\nexport function SimpleUnitsColumn(props: ICompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;\n\n return h([\n h(UnitsColumn, {\n width: columnWidth,\n }),\n h(UnitNamesColumn, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n }),\n ]);\n}\n\nexport function BasicUnitComponent({ division, ...rest }) {\n /** A unit that allows directly setting colors and patterns. */\n\n return h(UnitComponent, {\n division,\n ...rest,\n backgroundColor: division.color,\n patternID: division.patternID,\n });\n}\n\nexport function UnitComponent({ division, nColumns = 2, ...rest }) {\n const width = rest.width ?? useColumnLayout()?.width;\n\n const nOverlappingUnits = division.overlappingUnits?.length ?? 0;\n const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;\n const columnIx = (division.column ?? 0) % _nColumns;\n const reducedWidth = width / _nColumns;\n const x = (columnIx * width) / _nColumns;\n\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: reducedWidth,\n x,\n });\n}\n\ninterface UnitColorOptions {\n asBackground?: boolean;\n}\n\nexport function useUnitColor(unit, opts: UnitColorOptions = {}): string | null {\n /** Get the color for a unit based on its lithology */\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || lithMap == null) return null;\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);\n}\n\nexport function ColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColor(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nexport function useUnitColorByEnvironment(\n unit,\n opts: UnitColorOptions = {},\n): string | null {\n /** Get the color for a unit based on its lithology */\n const environmentMap = useEnvironments();\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || environmentMap == null) return null;\n let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {\n key: \"environ\",\n id_key: \"environ_id\",\n });\n if (c != null) {\n return c;\n }\n // Fallback to lithology color if no environment color is found\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);\n}\n\nexport function EnvironmentColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColorByEnvironment(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nfunction getPatternID(\n liths: Array<Lithology>,\n lithMap: Map<number, Lithology>,\n): string | null {\n if (lithMap == null || liths == null || liths.length == 0) {\n return null;\n }\n const patternIDs = new Set<string>();\n for (const lith of liths) {\n const lithData = lithMap.get(lith.lith_id);\n if (lithData) {\n patternIDs.add(`${lithData.fill}`);\n }\n }\n let id = patternIDs.values()[0];\n if (id == \"0\") return null;\n return id;\n}\n"],"names":["LithologyColumn","UnitBoxes","UnitNamesColumn","useColumnLayout","TrackedLabeledUnit","useLithologies","useInDarkMode","useMemo","getMixedUnitColor","resolveID","useGeologicPattern","useEnvironments"],"mappings":";;;;;;;;;;;;AAqBO,SAAS,YAAY,EAAE,QAAQ,OAAO;AAI3C,SAAO,EAAEA,iBAAAA,iBAAiB,EAAE,SAAS,EAAEC,MAAAA,SAAS,CAAC;AACnD;AAEO,SAAS,kBAAkB,OAA4B;AAK5D,QAAM,EAAE,aAAa,OAAO,cAAc,GAAG,cAAc,OAAO;AAElE,SAAO,EAAE;AAAA,IACP,EAAE,aAAa;AAAA,MACb,OAAO;AAAA,IAAA,CACR;AAAA,IACD,EAAEC,MAAAA,iBAAiB;AAAA,MACjB,WAAW,aAAa,cAAc,WAAW;AAAA,MACjD,aAAa;AAAA,MACb,OAAO,QAAQ,cAAc;AAAA,IAAA,CAC9B;AAAA,EAAA,CACF;AACH;AAEO,SAAS,mBAAmB,EAAE,UAAU,GAAG,QAAQ;AAGxD,SAAO,EAAE,eAAe;AAAA,IACtB;AAAA,IACA,GAAG;AAAA,IACH,iBAAiB,SAAS;AAAA,IAC1B,WAAW,SAAS;AAAA,EAAA,CACrB;AACH;AAEO,SAAS,cAAc,EAAE,UAAU,WAAW,GAAG,GAAG,QAAQ;AACjE,QAAM,QAAQ,KAAK,SAASC,iBAAAA,gBAAA,GAAmB;AAE/C,QAAM,oBAAoB,SAAS,kBAAkB,UAAU;AAC/D,QAAM,YAAY,qBAAqB,IAAI,IAAI;AAC/C,QAAM,YAAY,SAAS,UAAU,KAAK;AAC1C,QAAM,eAAe,QAAQ;AAC7B,QAAM,IAAK,WAAW,QAAS;AAE/B,SAAO,EAAEC,UAAAA,oBAAoB;AAAA,IAC3B;AAAA,IACA,GAAG;AAAA,IACH,OAAO;AAAA,IACP;AAAA,EAAA,CACD;AACH;AAMO,SAAS,aAAa,MAAM,OAAyB,IAAmB;AAE7E,QAAM,UAAUC,KAAAA,eAAA;AAChB,QAAM,aAAaC,aAAAA,cAAA;AACnB,QAAM,EAAE,eAAe,KAAA,IAAS;AAEhC,SAAOC,MAAAA,QAAQ,MAAM;AACnB,QAAI,QAAQ,QAAQ,WAAW,KAAM,QAAO;AAC5C,WAAOC,OAAAA,kBAAkB,MAAM,SAAS,YAAY,YAAY;AAAA,EAClE,GAAG,CAAC,MAAM,SAAS,SAAS,YAAY,YAAY,CAAC;AACvD;AAEO,SAAS,qBAAqB,OAAO;AAG1C,QAAM,kBAAkB,aAAa,MAAM,QAAQ;AAEnD,QAAM,YAAYD,MAAAA,QAAQ,MAAM;AAC9B,WAAOE,UAAAA,UAAU,MAAM,QAAQ;AAAA,EACjC,GAAG,CAAC,MAAM,UAAU,OAAO,CAAC;AAE5B,QAAM,OAAOC,iBAAAA,mBAAmB,SAAS;AAEzC,SAAO,EAAE,eAAe;AAAA,IACtB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,CACJ;AACH;AAEO,SAAS,0BACd,MACA,OAAyB,IACV;AAEf,QAAM,iBAAiBC,KAAAA,gBAAA;AACvB,QAAM,UAAUN,KAAAA,eAAA;AAChB,QAAM,aAAaC,aAAAA,cAAA;AACnB,QAAM,EAAE,eAAe,KAAA,IAAS;AAEhC,SAAOC,MAAAA,QAAQ,MAAM;AACnB,QAAI,QAAQ,QAAQ,kBAAkB,KAAM,QAAO;AACnD,QAAI,IAAIC,OAAAA,kBAAkB,MAAM,gBAAgB,YAAY,cAAc;AAAA,MACxE,KAAK;AAAA,MACL,QAAQ;AAAA,IAAA,CACT;AACD,QAAI,KAAK,MAAM;AACb,aAAO;AAAA,IACT;AAEA,WAAOA,OAAAA,kBAAkB,MAAM,SAAS,YAAY,YAAY;AAAA,EAClE,GAAG,CAAC,MAAM,SAAS,gBAAgB,SAAS,YAAY,YAAY,CAAC;AACvE;AAEO,SAAS,gCAAgC,OAAO;AAGrD,QAAM,kBAAkB,0BAA0B,MAAM,QAAQ;AAEhE,QAAM,YAAYD,MAAAA,QAAQ,MAAM;AAC9B,WAAOE,UAAAA,UAAU,MAAM,QAAQ;AAAA,EACjC,GAAG,CAAC,MAAM,UAAU,OAAO,CAAC;AAE5B,QAAM,OAAOC,iBAAAA,mBAAmB,SAAS;AAEzC,SAAO,EAAE,eAAe;AAAA,IACtB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,CACJ;AACH;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,40 @@
1
+ import { ICompositeUnitProps } from './composite';
2
+ export * from './composite';
3
+ export * from './types';
4
+ export * from './colors';
5
+ export declare function UnitsColumn({ width }: {
6
+ width?: number;
7
+ }): import('react').FunctionComponentElement<import('@macrostrat/column-components').LithologyColumnProps>;
8
+ export declare function SimpleUnitsColumn(props: ICompositeUnitProps): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
9
+ export declare function BasicUnitComponent({ division, ...rest }: {
10
+ [x: string]: any;
11
+ division: any;
12
+ }): import('react').FunctionComponentElement<{
13
+ [x: string]: any;
14
+ division: any;
15
+ nColumns?: number;
16
+ }>;
17
+ export declare function UnitComponent({ division, nColumns, ...rest }: {
18
+ [x: string]: any;
19
+ division: any;
20
+ nColumns?: number;
21
+ }): import('react').FunctionComponentElement<{
22
+ [x: string]: any;
23
+ division: any;
24
+ nameForDivision?: (div: any) => any;
25
+ }>;
26
+ interface UnitColorOptions {
27
+ asBackground?: boolean;
28
+ }
29
+ export declare function useUnitColor(unit: any, opts?: UnitColorOptions): string | null;
30
+ export declare function ColoredUnitComponent(props: any): import('react').FunctionComponentElement<{
31
+ [x: string]: any;
32
+ division: any;
33
+ nColumns?: number;
34
+ }>;
35
+ export declare function useUnitColorByEnvironment(unit: any, opts?: UnitColorOptions): string | null;
36
+ export declare function EnvironmentColoredUnitComponent(props: any): import('react').FunctionComponentElement<{
37
+ [x: string]: any;
38
+ division: any;
39
+ nColumns?: number;
40
+ }>;
@@ -0,0 +1,118 @@
1
+ import h from "@macrostrat/hyper";
2
+ import { useGeologicPattern, useColumnLayout, LithologyColumn } from "@macrostrat/column-components";
3
+ import { UnitNamesColumn } from "./names.js";
4
+ import { UnitBoxes } from "./boxes.js";
5
+ import { useInDarkMode } from "@macrostrat/ui-components";
6
+ import { getMixedUnitColor } from "./colors.js";
7
+ import { TrackedLabeledUnit } from "./composite.js";
8
+ import { AnnotatedUnitsColumn, ColumnNotesProvider, CompositeUnitComponent, CompositeUnitsColumn, LabelTrackerProvider, SectionLabelsColumn } from "./composite.js";
9
+ import { useMemo } from "react";
10
+ import { resolveID } from "./resolvers.js";
11
+ import { useLithologies, useEnvironments } from "../data-provider/base.js";
12
+ function UnitsColumn({ width = 100 }) {
13
+ return h(LithologyColumn, { width }, h(UnitBoxes));
14
+ }
15
+ function SimpleUnitsColumn(props) {
16
+ const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;
17
+ return h([
18
+ h(UnitsColumn, {
19
+ width: columnWidth
20
+ }),
21
+ h(UnitNamesColumn, {
22
+ transform: `translate(${columnWidth + gutterWidth})`,
23
+ paddingLeft: labelOffset,
24
+ width: width - columnWidth - gutterWidth
25
+ })
26
+ ]);
27
+ }
28
+ function BasicUnitComponent({ division, ...rest }) {
29
+ return h(UnitComponent, {
30
+ division,
31
+ ...rest,
32
+ backgroundColor: division.color,
33
+ patternID: division.patternID
34
+ });
35
+ }
36
+ function UnitComponent({ division, nColumns = 2, ...rest }) {
37
+ const width = rest.width ?? useColumnLayout()?.width;
38
+ const nOverlappingUnits = division.overlappingUnits?.length ?? 0;
39
+ const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;
40
+ const columnIx = (division.column ?? 0) % _nColumns;
41
+ const reducedWidth = width / _nColumns;
42
+ const x = columnIx * width / _nColumns;
43
+ return h(TrackedLabeledUnit, {
44
+ division,
45
+ ...rest,
46
+ width: reducedWidth,
47
+ x
48
+ });
49
+ }
50
+ function useUnitColor(unit, opts = {}) {
51
+ const lithMap = useLithologies();
52
+ const inDarkMode = useInDarkMode();
53
+ const { asBackground = true } = opts;
54
+ return useMemo(() => {
55
+ if (unit == null || lithMap == null) return null;
56
+ return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);
57
+ }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);
58
+ }
59
+ function ColoredUnitComponent(props) {
60
+ const backgroundColor = useUnitColor(props.division);
61
+ const patternID = useMemo(() => {
62
+ return resolveID(props.division);
63
+ }, [props.division?.unit_id]);
64
+ const fill = useGeologicPattern(patternID);
65
+ return h(UnitComponent, {
66
+ fill,
67
+ backgroundColor,
68
+ ...props
69
+ });
70
+ }
71
+ function useUnitColorByEnvironment(unit, opts = {}) {
72
+ const environmentMap = useEnvironments();
73
+ const lithMap = useLithologies();
74
+ const inDarkMode = useInDarkMode();
75
+ const { asBackground = true } = opts;
76
+ return useMemo(() => {
77
+ if (unit == null || environmentMap == null) return null;
78
+ let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {
79
+ key: "environ",
80
+ id_key: "environ_id"
81
+ });
82
+ if (c != null) {
83
+ return c;
84
+ }
85
+ return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);
86
+ }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);
87
+ }
88
+ function EnvironmentColoredUnitComponent(props) {
89
+ const backgroundColor = useUnitColorByEnvironment(props.division);
90
+ const patternID = useMemo(() => {
91
+ return resolveID(props.division);
92
+ }, [props.division?.unit_id]);
93
+ const fill = useGeologicPattern(patternID);
94
+ return h(UnitComponent, {
95
+ fill,
96
+ backgroundColor,
97
+ ...props
98
+ });
99
+ }
100
+ export {
101
+ AnnotatedUnitsColumn,
102
+ BasicUnitComponent,
103
+ ColoredUnitComponent,
104
+ ColumnNotesProvider,
105
+ CompositeUnitComponent,
106
+ CompositeUnitsColumn,
107
+ EnvironmentColoredUnitComponent,
108
+ LabelTrackerProvider,
109
+ SectionLabelsColumn,
110
+ SimpleUnitsColumn,
111
+ TrackedLabeledUnit,
112
+ UnitComponent,
113
+ UnitsColumn,
114
+ getMixedUnitColor,
115
+ useUnitColor,
116
+ useUnitColorByEnvironment
117
+ };
118
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/units/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n useGeologicPattern,\n} from \"@macrostrat/column-components\";\nimport { UnitNamesColumn } from \"./names\";\nimport { ICompositeUnitProps } from \"./composite\";\nimport { UnitBoxes, UnitProps } from \"./boxes\";\nimport { useColumnLayout } from \"@macrostrat/column-components\";\nimport { useInDarkMode } from \"@macrostrat/ui-components\";\nimport { getMixedUnitColor } from \"./colors\";\nimport { TrackedLabeledUnit } from \"./composite\";\nimport { useEnvironments, useLithologies } from \"../data-provider\";\nimport { useMemo } from \"react\";\nimport { resolveID } from \"./resolvers\";\nimport { Lithology } from \"@macrostrat/api-types\";\n\nexport * from \"./composite\";\nexport * from \"./types\";\nexport * from \"./colors\";\n\nexport function UnitsColumn({ width = 100 }) {\n /*\n A column showing units with USGS color fill\n */\n return h(LithologyColumn, { width }, h(UnitBoxes));\n}\n\nexport function SimpleUnitsColumn(props: ICompositeUnitProps) {\n /*\n A column with units and names either\n overlapping or offset to the right\n */\n const { columnWidth, width, gutterWidth = 0, labelOffset = 30 } = props;\n\n return h([\n h(UnitsColumn, {\n width: columnWidth,\n }),\n h(UnitNamesColumn, {\n transform: `translate(${columnWidth + gutterWidth})`,\n paddingLeft: labelOffset,\n width: width - columnWidth - gutterWidth,\n }),\n ]);\n}\n\nexport function BasicUnitComponent({ division, ...rest }) {\n /** A unit that allows directly setting colors and patterns. */\n\n return h(UnitComponent, {\n division,\n ...rest,\n backgroundColor: division.color,\n patternID: division.patternID,\n });\n}\n\nexport function UnitComponent({ division, nColumns = 2, ...rest }) {\n const width = rest.width ?? useColumnLayout()?.width;\n\n const nOverlappingUnits = division.overlappingUnits?.length ?? 0;\n const _nColumns = nOverlappingUnits == 0 ? 1 : nColumns;\n const columnIx = (division.column ?? 0) % _nColumns;\n const reducedWidth = width / _nColumns;\n const x = (columnIx * width) / _nColumns;\n\n return h(TrackedLabeledUnit, {\n division,\n ...rest,\n width: reducedWidth,\n x,\n });\n}\n\ninterface UnitColorOptions {\n asBackground?: boolean;\n}\n\nexport function useUnitColor(unit, opts: UnitColorOptions = {}): string | null {\n /** Get the color for a unit based on its lithology */\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || lithMap == null) return null;\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, lithMap, inDarkMode, asBackground]);\n}\n\nexport function ColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColor(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nexport function useUnitColorByEnvironment(\n unit,\n opts: UnitColorOptions = {},\n): string | null {\n /** Get the color for a unit based on its lithology */\n const environmentMap = useEnvironments();\n const lithMap = useLithologies();\n const inDarkMode = useInDarkMode();\n const { asBackground = true } = opts;\n\n return useMemo(() => {\n if (unit == null || environmentMap == null) return null;\n let c = getMixedUnitColor(unit, environmentMap, inDarkMode, asBackground, {\n key: \"environ\",\n id_key: \"environ_id\",\n });\n if (c != null) {\n return c;\n }\n // Fallback to lithology color if no environment color is found\n return getMixedUnitColor(unit, lithMap, inDarkMode, asBackground);\n }, [unit?.unit_id, environmentMap, lithMap, inDarkMode, asBackground]);\n}\n\nexport function EnvironmentColoredUnitComponent(props) {\n /** A unit component that is colored using a mixture of lithologies.\n * This is a separate component because it depends on more providers/contexts to determine coloring. */\n const backgroundColor = useUnitColorByEnvironment(props.division);\n\n const patternID = useMemo(() => {\n return resolveID(props.division); // ?? getPatternID(props.division.lith, lithMap);\n }, [props.division?.unit_id]);\n\n const fill = useGeologicPattern(patternID);\n\n return h(UnitComponent, {\n fill,\n backgroundColor,\n ...props,\n });\n}\n\nfunction getPatternID(\n liths: Array<Lithology>,\n lithMap: Map<number, Lithology>,\n): string | null {\n if (lithMap == null || liths == null || liths.length == 0) {\n return null;\n }\n const patternIDs = new Set<string>();\n for (const lith of liths) {\n const lithData = lithMap.get(lith.lith_id);\n if (lithData) {\n patternIDs.add(`${lithData.fill}`);\n }\n }\n let id = patternIDs.values()[0];\n if (id == \"0\") return null;\n return id;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const h = require("@macrostrat/hyper");
4
+ const React = require("react");
5
+ const columnComponents = require("@macrostrat/column-components");
6
+ const store = require("../data-provider/store.cjs");
7
+ const utils = require("../prepare-units/utils.cjs");
8
+ function noteForDivision(div, opts) {
9
+ const { axisType } = opts;
10
+ const [height, top_height] = utils.getUnitHeightRange(div, axisType);
11
+ const nameForDivision = opts.nameForDivision ?? defaultNameFunction;
12
+ return {
13
+ height,
14
+ top_height,
15
+ data: div,
16
+ id: div.unit_id,
17
+ note: nameForDivision(div)
18
+ };
19
+ }
20
+ const defaultNameFunction = (div) => {
21
+ return div.unit_name.replace("Mbr", "Member").replace("Fm", "Formation").replace("Gp", "Group");
22
+ };
23
+ function UnitDataColumn_(props) {
24
+ const { axisType, units } = store.useMacrostratColumnData();
25
+ const scale = store.useCompositeScale();
26
+ const {
27
+ left = 0,
28
+ noteComponent,
29
+ shouldRenderNote = (note, i) => true,
30
+ nameForDivision,
31
+ minimumHeight = 0,
32
+ divisions = units,
33
+ ...rest
34
+ } = props;
35
+ const minimumHeightFilter = React.useCallback(
36
+ (d) => {
37
+ if (minimumHeight == 0) return true;
38
+ const dy = Math.abs(scale(d.top_height) - scale(d.height));
39
+ return dy > minimumHeight;
40
+ },
41
+ [scale, minimumHeight]
42
+ );
43
+ if (divisions == null) return null;
44
+ const notes = divisions.filter(shouldRenderNote).map((d) => noteForDivision(d, { axisType, nameForDivision })).filter(minimumHeightFilter);
45
+ return h(columnComponents.NotesColumn, {
46
+ transform: `translate(${left})`,
47
+ editable: false,
48
+ noteComponent,
49
+ notes,
50
+ forceOptions: {
51
+ nodeSpacing: 1
52
+ },
53
+ ...rest
54
+ });
55
+ }
56
+ const UnitDataColumn = React.memo(UnitDataColumn_);
57
+ function UnitNameNote(props) {
58
+ const { note } = props;
59
+ return h("p.col-note-label", note.note);
60
+ }
61
+ function UnitNamesColumn(props) {
62
+ const { noteComponent = UnitNameNote, ...rest } = props;
63
+ return h(UnitDataColumn, {
64
+ noteComponent,
65
+ ...rest
66
+ });
67
+ }
68
+ exports.UnitDataColumn = UnitDataColumn;
69
+ exports.UnitNamesColumn = UnitNamesColumn;
70
+ exports.defaultNameFunction = defaultNameFunction;
71
+ exports.noteForDivision = noteForDivision;
72
+ //# sourceMappingURL=names.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.cjs","sources":["../../src/units/names.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useCallback } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n type ColumnDivision,\n type NoteData,\n type NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { IUnit } from \"./types\";\nimport React from \"react\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\nimport {\n type CompositeColumnScale,\n getUnitHeightRange,\n} from \"../prepare-units\";\n\ninterface UnitDataProps extends NotesColumnProps {\n left?: number;\n transform?: string;\n nameForDivision?(obj: IUnit): string;\n noteComponent?: React.ComponentType<any>;\n shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;\n divisions?: IUnit[];\n minimumHeight?: number;\n scale?: CompositeColumnScale;\n}\n\ninterface UnitNote extends NoteData {\n height: number;\n top_height: number;\n data: IUnit;\n id: number;\n}\n\nfunction noteForDivision(\n div: IUnit,\n opts: { axisType: ColumnAxisType; nameForDivision?: (obj: IUnit) => string },\n): UnitNote {\n const { axisType } = opts;\n\n const [height, top_height] = getUnitHeightRange(div, axisType);\n\n const nameForDivision = opts.nameForDivision ?? defaultNameFunction;\n\n return {\n height,\n top_height,\n data: div,\n id: div.unit_id,\n note: nameForDivision(div),\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 { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\n nameForDivision,\n minimumHeight = 0,\n divisions = units,\n ...rest\n } = props;\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, nameForDivision }))\n .filter(minimumHeightFilter);\n\n return h(NotesColumn, {\n transform: `translate(${left})`,\n editable: false,\n noteComponent,\n notes,\n forceOptions: {\n nodeSpacing: 1,\n },\n ...rest,\n });\n}\n\nconst UnitDataColumn = React.memo(UnitDataColumn_);\n\nexport interface UnitNamesProps extends UnitDataProps {\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nfunction UnitNameNote(props: { note: UnitNote }) {\n const { note } = props;\n return h(\"p.col-note-label\", note.note);\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const { noteComponent = UnitNameNote, ...rest } = props;\n return h(UnitDataColumn, {\n noteComponent,\n ...rest,\n });\n}\n\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":["getUnitHeightRange","useMacrostratColumnData","useCompositeScale","useCallback","NotesColumn"],"mappings":";;;;;;;AAmCA,SAAS,gBACP,KACA,MACU;AACV,QAAM,EAAE,aAAa;AAErB,QAAM,CAAC,QAAQ,UAAU,IAAIA,MAAAA,mBAAmB,KAAK,QAAQ;AAE7D,QAAM,kBAAkB,KAAK,mBAAmB;AAEhD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,IAAI,IAAI;AAAA,IACR,MAAM,gBAAgB,GAAG;AAAA,EAAA;AAE7B;AAEA,MAAM,sBAAsB,CAAC,QAAQ;AACnC,SAAO,IAAI,UACR,QAAQ,OAAO,QAAQ,EACvB,QAAQ,MAAM,WAAW,EACzB,QAAQ,MAAM,OAAO;AAC1B;AAEA,SAAS,gBAAgB,OAAsB;AAC7C,QAAM,EAAE,UAAU,MAAA,IAAUC,8BAAA;AAC5B,QAAM,QAAQC,MAAAA,kBAAA;AACd,QAAM;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,IACA,mBAAmB,CAAC,MAA8B,MAAc;AAAA,IAChE;AAAA,IACA,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,GAAG;AAAA,EAAA,IACD;AAEJ,QAAM,sBAAsBC,MAAAA;AAAAA,IAC1B,CAAC,MAAM;AACL,UAAI,iBAAiB,EAAG,QAAO;AAC/B,YAAM,KAAK,KAAK,IAAI,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,CAAC;AACzD,aAAO,KAAK;AAAA,IACd;AAAA,IACA,CAAC,OAAO,aAAa;AAAA,EAAA;AAGvB,MAAI,aAAa,KAAM,QAAO;AAC9B,QAAM,QAAoB,UACvB,OAAO,gBAAgB,EACvB,IAAI,CAAC,MAAa,gBAAgB,GAAG,EAAE,UAAU,gBAAA,CAAiB,CAAC,EACnE,OAAO,mBAAmB;AAE7B,SAAO,EAAEC,iBAAAA,aAAa;AAAA,IACpB,WAAW,aAAa,IAAI;AAAA,IAC5B,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,cAAc;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,IAEf,GAAG;AAAA,EAAA,CACJ;AACH;AAEA,MAAM,iBAAiB,MAAM,KAAK,eAAe;AAQjD,SAAS,aAAa,OAA2B;AAC/C,QAAM,EAAE,SAAS;AACjB,SAAO,EAAE,oBAAoB,KAAK,IAAI;AACxC;AAEO,SAAS,gBAAgB,OAAuB;AACrD,QAAM,EAAE,gBAAgB,cAAc,GAAG,SAAS;AAClD,SAAO,EAAE,gBAAgB;AAAA,IACvB;AAAA,IACA,GAAG;AAAA,EAAA,CACJ;AACH;;;;;"}
@@ -0,0 +1,33 @@
1
+ import { ColumnAxisType, ColumnDivision, NoteData, NotesColumnProps } from '@macrostrat/column-components';
2
+ import { IUnit } from './types';
3
+ import { default as React } from 'react';
4
+ import { CompositeColumnScale } from '../prepare-units';
5
+ interface UnitDataProps extends NotesColumnProps {
6
+ left?: number;
7
+ transform?: string;
8
+ nameForDivision?(obj: IUnit): string;
9
+ noteComponent?: React.ComponentType<any>;
10
+ shouldRenderNote?(div: ColumnDivision | IUnit, index: number): boolean;
11
+ divisions?: IUnit[];
12
+ minimumHeight?: number;
13
+ scale?: CompositeColumnScale;
14
+ }
15
+ interface UnitNote extends NoteData {
16
+ height: number;
17
+ top_height: number;
18
+ data: IUnit;
19
+ id: number;
20
+ }
21
+ declare function noteForDivision(div: IUnit, opts: {
22
+ axisType: ColumnAxisType;
23
+ nameForDivision?: (obj: IUnit) => string;
24
+ }): UnitNote;
25
+ declare const defaultNameFunction: (div: any) => any;
26
+ declare const UnitDataColumn: React.NamedExoticComponent<UnitDataProps>;
27
+ export interface UnitNamesProps extends UnitDataProps {
28
+ paddingLeft?: number;
29
+ width: number;
30
+ onClickNote?: (note: any) => void;
31
+ }
32
+ export declare function UnitNamesColumn(props: UnitNamesProps): import('react').FunctionComponentElement<UnitDataProps>;
33
+ export { defaultNameFunction, noteForDivision, UnitDataColumn };