@macrostrat/column-views 2.2.1 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/esm/{column-views.df34441c.js → column-views.058c0083.js} +5 -5
  3. package/dist/esm/{column-views.df34441c.js.map → column-views.058c0083.js.map} +1 -1
  4. package/dist/esm/{column-views.2e854496.js → column-views.11ae78f7.js} +3 -3
  5. package/dist/esm/{column-views.2e854496.js.map → column-views.11ae78f7.js.map} +1 -1
  6. package/dist/esm/{column-views.faacfc3c.js → column-views.1e579112.js} +3 -3
  7. package/dist/esm/{column-views.faacfc3c.js.map → column-views.1e579112.js.map} +1 -1
  8. package/dist/esm/{column-views.8284c3a9.js → column-views.218e8f5d.js} +5 -5
  9. package/dist/esm/{column-views.8284c3a9.js.map → column-views.218e8f5d.js.map} +1 -1
  10. package/dist/esm/{column-views.bbc77227.js → column-views.30950997.js} +2 -2
  11. package/dist/esm/{column-views.bbc77227.js.map → column-views.30950997.js.map} +1 -1
  12. package/dist/esm/{column-views.f0b0fc56.js → column-views.35efe006.js} +2 -2
  13. package/dist/esm/{column-views.f0b0fc56.js.map → column-views.35efe006.js.map} +1 -1
  14. package/dist/esm/{column-views.418f948f.js → column-views.43beafa3.js} +6 -6
  15. package/dist/esm/{column-views.418f948f.js.map → column-views.43beafa3.js.map} +1 -1
  16. package/dist/esm/{column-views.b29f8718.js → column-views.44d3797a.js} +2 -2
  17. package/dist/esm/{column-views.b29f8718.js.map → column-views.44d3797a.js.map} +1 -1
  18. package/dist/esm/{column-views.29a551f6.js → column-views.52ad973a.js} +21 -15
  19. package/dist/esm/column-views.52ad973a.js.map +1 -0
  20. package/dist/esm/{column-views.60365cdb.js → column-views.5456a1ee.js} +2 -2
  21. package/dist/esm/{column-views.60365cdb.js.map → column-views.5456a1ee.js.map} +1 -1
  22. package/dist/esm/{column-views.81bddbee.js → column-views.66ccfc44.js} +3 -3
  23. package/dist/esm/{column-views.81bddbee.js.map → column-views.66ccfc44.js.map} +1 -1
  24. package/dist/esm/{column-views.469a4952.js → column-views.6ce8cb61.js} +3 -3
  25. package/dist/esm/{column-views.469a4952.js.map → column-views.6ce8cb61.js.map} +1 -1
  26. package/dist/esm/{column-views.413217dc.js → column-views.6d63971b.js} +2 -2
  27. package/dist/esm/{column-views.413217dc.js.map → column-views.6d63971b.js.map} +1 -1
  28. package/dist/esm/{column-views.e17f00d3.js → column-views.7243e77d.js} +2 -2
  29. package/dist/esm/{column-views.e17f00d3.js.map → column-views.7243e77d.js.map} +1 -1
  30. package/dist/esm/{column-views.382c486d.js → column-views.729a6728.js} +3 -3
  31. package/dist/esm/{column-views.382c486d.js.map → column-views.729a6728.js.map} +1 -1
  32. package/dist/esm/{column-views.7683bb52.js → column-views.75e5aebe.js} +5 -5
  33. package/dist/esm/{column-views.7683bb52.js.map → column-views.75e5aebe.js.map} +1 -1
  34. package/dist/esm/{column-views.748dce47.js → column-views.76a220c4.js} +2 -2
  35. package/dist/esm/{column-views.748dce47.js.map → column-views.76a220c4.js.map} +1 -1
  36. package/dist/esm/{column-views.b08d82e6.js → column-views.77e22590.js} +2 -2
  37. package/dist/esm/{column-views.b08d82e6.js.map → column-views.77e22590.js.map} +1 -1
  38. package/dist/esm/{column-views.0265cf7f.js → column-views.7b4a1f15.js} +15 -10
  39. package/dist/esm/column-views.7b4a1f15.js.map +1 -0
  40. package/dist/esm/{column-views.d86555b0.js → column-views.7c95c3d7.js} +2 -2
  41. package/dist/esm/{column-views.d86555b0.js.map → column-views.7c95c3d7.js.map} +1 -1
  42. package/dist/esm/{column-views.e1bc3cfa.js → column-views.7d69838d.js} +2 -2
  43. package/dist/esm/{column-views.e1bc3cfa.js.map → column-views.7d69838d.js.map} +1 -1
  44. package/dist/esm/{column-views.cae1a6a1.js → column-views.7faf00ed.js} +3 -3
  45. package/dist/esm/{column-views.cae1a6a1.js.map → column-views.7faf00ed.js.map} +1 -1
  46. package/dist/esm/{column-views.0ce9b697.js → column-views.817752b6.js} +3 -3
  47. package/dist/esm/{column-views.0ce9b697.js.map → column-views.817752b6.js.map} +1 -1
  48. package/dist/esm/{column-views.41e5f0dc.js → column-views.833c2b74.js} +2 -2
  49. package/dist/esm/{column-views.41e5f0dc.js.map → column-views.833c2b74.js.map} +1 -1
  50. package/dist/esm/{column-views.adec2e4c.js → column-views.9dd25b5b.js} +3 -3
  51. package/dist/esm/{column-views.adec2e4c.js.map → column-views.9dd25b5b.js.map} +1 -1
  52. package/dist/esm/{column-views.4ed90896.js → column-views.abf6aedd.js} +41 -10
  53. package/dist/esm/column-views.abf6aedd.js.map +1 -0
  54. package/dist/esm/{column-views.8b623b27.js → column-views.ad080c0e.js} +2 -2
  55. package/dist/esm/{column-views.8b623b27.js.map → column-views.ad080c0e.js.map} +1 -1
  56. package/dist/esm/{column-views.c3495702.js → column-views.aeb61926.js} +2 -2
  57. package/dist/esm/{column-views.c3495702.js.map → column-views.aeb61926.js.map} +1 -1
  58. package/dist/esm/{column-views.c2fbcba8.js → column-views.b0e6c0b3.js} +4 -4
  59. package/dist/esm/{column-views.c2fbcba8.js.map → column-views.b0e6c0b3.js.map} +1 -1
  60. package/dist/esm/{column-views.a3fabf0f.js → column-views.c44febd0.js} +9 -6
  61. package/dist/esm/column-views.c44febd0.js.map +1 -0
  62. package/dist/esm/column-views.cc733361.js.map +1 -1
  63. package/dist/esm/{column-views.787d7696.js → column-views.d2214a99.js} +3 -3
  64. package/dist/esm/{column-views.787d7696.js.map → column-views.d2214a99.js.map} +1 -1
  65. package/dist/esm/{column-views.abeab9aa.js → column-views.d6d6df77.js} +3 -3
  66. package/dist/esm/{column-views.abeab9aa.js.map → column-views.d6d6df77.js.map} +1 -1
  67. package/dist/esm/{column-views.e33ac5c9.css → column-views.e93478c3.css} +7 -2
  68. package/dist/esm/column-views.e93478c3.css.map +1 -0
  69. package/dist/esm/{column-views.53722d0a.js → column-views.ee525e88.js} +8 -8
  70. package/dist/esm/{column-views.53722d0a.js.map → column-views.ee525e88.js.map} +1 -1
  71. package/dist/esm/{column-views.2eceafb5.js → column-views.ef88c46c.js} +2 -2
  72. package/dist/esm/{column-views.2eceafb5.js.map → column-views.ef88c46c.js.map} +1 -1
  73. package/dist/esm/{column-views.2aef5df8.js → column-views.faa4e06d.js} +4 -4
  74. package/dist/esm/{column-views.2aef5df8.js.map → column-views.faa4e06d.js.map} +1 -1
  75. package/dist/esm/index.d.ts +4 -1
  76. package/dist/esm/index.d.ts.map +1 -1
  77. package/dist/esm/index.js +10 -10
  78. package/dist/node/{column-views.6919fd2a.js → column-views.003348f6.js} +2 -2
  79. package/dist/node/{column-views.6919fd2a.js.map → column-views.003348f6.js.map} +1 -1
  80. package/dist/node/{column-views.a1e29a15.js → column-views.05cfc627.js} +2 -2
  81. package/dist/node/{column-views.a1e29a15.js.map → column-views.05cfc627.js.map} +1 -1
  82. package/dist/node/column-views.0beae29d.js +2 -0
  83. package/dist/node/column-views.0beae29d.js.map +1 -0
  84. package/dist/node/{column-views.54363c13.js → column-views.105c28fa.js} +2 -2
  85. package/dist/node/{column-views.54363c13.js.map → column-views.105c28fa.js.map} +1 -1
  86. package/dist/node/{column-views.45a03acc.js → column-views.1ac9e2ed.js} +2 -2
  87. package/dist/node/{column-views.45a03acc.js.map → column-views.1ac9e2ed.js.map} +1 -1
  88. package/dist/node/{column-views.abe0a664.js → column-views.1c567bfd.js} +2 -2
  89. package/dist/node/{column-views.abe0a664.js.map → column-views.1c567bfd.js.map} +1 -1
  90. package/dist/node/{column-views.93febe9b.js → column-views.21a73236.js} +2 -2
  91. package/dist/node/{column-views.93febe9b.js.map → column-views.21a73236.js.map} +1 -1
  92. package/dist/node/{column-views.6099a3a9.js → column-views.22c2d45b.js} +2 -2
  93. package/dist/node/{column-views.6099a3a9.js.map → column-views.22c2d45b.js.map} +1 -1
  94. package/dist/node/{column-views.0e7ac946.js → column-views.2901b649.js} +2 -2
  95. package/dist/node/{column-views.0e7ac946.js.map → column-views.2901b649.js.map} +1 -1
  96. package/dist/node/{column-views.29483479.js → column-views.2d00d842.js} +2 -2
  97. package/dist/node/{column-views.29483479.js.map → column-views.2d00d842.js.map} +1 -1
  98. package/dist/node/{column-views.f0f5cefd.js → column-views.38835c99.js} +2 -2
  99. package/dist/node/{column-views.f0f5cefd.js.map → column-views.38835c99.js.map} +1 -1
  100. package/dist/node/{column-views.57dd069c.js → column-views.3913cd0f.js} +2 -2
  101. package/dist/node/{column-views.57dd069c.js.map → column-views.3913cd0f.js.map} +1 -1
  102. package/dist/node/{column-views.f7d72702.js → column-views.39c21f22.js} +2 -2
  103. package/dist/node/{column-views.f7d72702.js.map → column-views.39c21f22.js.map} +1 -1
  104. package/dist/node/{column-views.588b02a1.js → column-views.420b60d2.js} +2 -2
  105. package/dist/node/{column-views.588b02a1.js.map → column-views.420b60d2.js.map} +1 -1
  106. package/dist/node/{column-views.ae9536b3.js → column-views.4ce5f5e4.js} +2 -2
  107. package/dist/node/{column-views.ae9536b3.js.map → column-views.4ce5f5e4.js.map} +1 -1
  108. package/dist/node/column-views.52cc4dd0.js +2 -0
  109. package/dist/node/column-views.52cc4dd0.js.map +1 -0
  110. package/dist/node/column-views.60b5663d.js +2 -0
  111. package/dist/node/column-views.60b5663d.js.map +1 -0
  112. package/dist/node/{column-views.554d44a7.js → column-views.61dc64bc.js} +2 -2
  113. package/dist/node/{column-views.554d44a7.js.map → column-views.61dc64bc.js.map} +1 -1
  114. package/dist/node/{column-views.4b4c214a.js → column-views.67fed1f5.js} +2 -2
  115. package/dist/node/{column-views.4b4c214a.js.map → column-views.67fed1f5.js.map} +1 -1
  116. package/dist/node/{column-views.fcdc74c4.js → column-views.7faaf6c8.js} +2 -2
  117. package/dist/node/{column-views.fcdc74c4.js.map → column-views.7faaf6c8.js.map} +1 -1
  118. package/dist/node/{column-views.07c503d3.js → column-views.a08b0c9f.js} +2 -2
  119. package/dist/node/column-views.a08b0c9f.js.map +1 -0
  120. package/dist/node/{column-views.f1ad131a.js → column-views.a19be00f.js} +2 -2
  121. package/dist/node/{column-views.f1ad131a.js.map → column-views.a19be00f.js.map} +1 -1
  122. package/dist/node/{column-views.ebe61439.js → column-views.a281d5bb.js} +2 -2
  123. package/dist/node/{column-views.ebe61439.js.map → column-views.a281d5bb.js.map} +1 -1
  124. package/dist/node/{column-views.19a84c01.js → column-views.a9576bac.js} +2 -2
  125. package/dist/node/{column-views.19a84c01.js.map → column-views.a9576bac.js.map} +1 -1
  126. package/dist/node/{column-views.6b8424fd.js → column-views.ae22e8b1.js} +2 -2
  127. package/dist/node/{column-views.6b8424fd.js.map → column-views.ae22e8b1.js.map} +1 -1
  128. package/dist/node/{column-views.ce5904a6.js → column-views.ae54d3e1.js} +2 -2
  129. package/dist/node/{column-views.ce5904a6.js.map → column-views.ae54d3e1.js.map} +1 -1
  130. package/dist/node/{column-views.44952ae6.js → column-views.b12f8c81.js} +2 -2
  131. package/dist/node/{column-views.44952ae6.js.map → column-views.b12f8c81.js.map} +1 -1
  132. package/dist/node/{column-views.db4ccacc.js → column-views.b6943236.js} +2 -2
  133. package/dist/node/{column-views.db4ccacc.js.map → column-views.b6943236.js.map} +1 -1
  134. package/dist/node/{column-views.32344397.js → column-views.bde2dfa8.js} +2 -2
  135. package/dist/node/{column-views.32344397.js.map → column-views.bde2dfa8.js.map} +1 -1
  136. package/dist/node/{column-views.d4545f9f.js → column-views.c3c15cc2.js} +2 -2
  137. package/dist/node/{column-views.d4545f9f.js.map → column-views.c3c15cc2.js.map} +1 -1
  138. package/dist/node/{column-views.108db52e.js → column-views.d08e4328.js} +2 -2
  139. package/dist/node/{column-views.108db52e.js.map → column-views.d08e4328.js.map} +1 -1
  140. package/dist/node/{column-views.0201566d.js → column-views.db47fe3c.js} +2 -2
  141. package/dist/node/{column-views.0201566d.js.map → column-views.db47fe3c.js.map} +1 -1
  142. package/dist/node/{column-views.e803e4ae.css → column-views.ddc6184e.css} +2 -2
  143. package/dist/node/column-views.ddc6184e.css.map +1 -0
  144. package/dist/node/column-views.e1813308.js +2 -0
  145. package/dist/node/column-views.e1813308.js.map +1 -0
  146. package/dist/node/{column-views.94c84716.js → column-views.f2ee436e.js} +2 -2
  147. package/dist/node/{column-views.94c84716.js.map → column-views.f2ee436e.js.map} +1 -1
  148. package/dist/node/{column-views.5a8bc8e3.js → column-views.f6ac1161.js} +2 -2
  149. package/dist/node/{column-views.5a8bc8e3.js.map → column-views.f6ac1161.js.map} +1 -1
  150. package/dist/node/index.js +1 -1
  151. package/dist/node/index.js.map +1 -1
  152. package/package.json +1 -1
  153. package/src/column.module.sass +7 -5
  154. package/src/column.ts +25 -6
  155. package/src/data-provider/store.ts +48 -5
  156. package/src/data-provider/unit-selection.ts +1 -0
  157. package/src/section.ts +9 -4
  158. package/src/unit-details/panel.ts +2 -1
  159. package/dist/esm/column-views.0265cf7f.js.map +0 -1
  160. package/dist/esm/column-views.29a551f6.js.map +0 -1
  161. package/dist/esm/column-views.4ed90896.js.map +0 -1
  162. package/dist/esm/column-views.a3fabf0f.js.map +0 -1
  163. package/dist/esm/column-views.e33ac5c9.css.map +0 -1
  164. package/dist/node/column-views.07c503d3.js.map +0 -1
  165. package/dist/node/column-views.18d54bbb.js +0 -2
  166. package/dist/node/column-views.18d54bbb.js.map +0 -1
  167. package/dist/node/column-views.1a3c399e.js +0 -2
  168. package/dist/node/column-views.1a3c399e.js.map +0 -1
  169. package/dist/node/column-views.312db572.js +0 -2
  170. package/dist/node/column-views.312db572.js.map +0 -1
  171. package/dist/node/column-views.92e29010.js +0 -2
  172. package/dist/node/column-views.92e29010.js.map +0 -1
  173. package/dist/node/column-views.e803e4ae.css.map +0 -1
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/column-views/src/column.ts"],"sourcesContent":["import { ColumnAxisType } from \"@macrostrat/column-components\";\nimport { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n Box,\n extractPadding,\n Padding,\n useDarkMode,\n} from \"@macrostrat/ui-components\";\nimport classNames from \"classnames\";\nimport {\n RefObject,\n useRef,\n HTMLAttributes,\n useCallback,\n CSSProperties,\n ComponentType,\n} from \"react\";\nimport styles from \"./column.module.sass\";\nimport { UnitComponent } from \"./units\";\nimport {\n UnitSelectionProvider,\n UnitKeyboardNavigation,\n useUnitSelectionDispatch,\n} from \"./data-provider\";\n\nimport {\n Identifier,\n ReferencesField,\n UnitSelectionPopover,\n} from \"./unit-details\";\nimport {\n MacrostratColumnDataProvider,\n useCompositeScale,\n useMacrostratColumnData,\n} from \"./data-provider\";\nimport {\n SectionSharedProps,\n CompositeTimescale,\n SectionsColumn,\n} from \"./section\";\nimport { ApproximateHeightAxis, CompositeAgeAxis } from \"./age-axis\";\nimport {\n MergeSectionsMode,\n usePreparedColumnUnits,\n HybridScaleType,\n ColumnHeightScaleOptions,\n} from \"./prepare-units\";\nimport { UnitLong } from \"@macrostrat/api-types\";\nimport { NonIdealState } from \"@blueprintjs/core\";\nimport { DataField } from \"@macrostrat/data-components\";\nimport { ScaleContinuousNumeric } from \"d3-scale\";\n\nconst h = hyperStyled(styles);\n\ninterface BaseColumnProps extends SectionSharedProps {\n className?: string;\n showLabelColumn?: boolean;\n keyboardNavigation?: boolean;\n showLabels?: boolean;\n maxInternalColumns?: number;\n // Timescale properties\n showTimescale?: boolean;\n timescaleLevels?: number | [number, number];\n unconformityLabels?: boolean | UnconformityLabelPlacement;\n onMouseOver?: (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n ) => void;\n}\n\nexport type UnconformityLabelPlacement = \"minimal\" | \"prominent\" | \"none\";\n\nexport interface ColumnProps\n extends Padding, BaseColumnProps, ColumnHeightScaleOptions {\n // Macrostrat units\n units: UnitLong[];\n t_age?: number;\n b_age?: number;\n t_pos?: number;\n b_pos?: number;\n mergeSections?: MergeSectionsMode;\n showUnitPopover?: boolean;\n allowUnitSelection?: boolean;\n selectedUnit?: number | null;\n onUnitSelected?: (unitID: number | null, unit: any) => void;\n // Unconformity height in pixels\n unconformityHeight?: number;\n scale?: ScaleContinuousNumeric<number, number>;\n}\n\nexport function Column(props: ColumnProps) {\n const {\n showUnitPopover = false,\n keyboardNavigation = false,\n mergeSections,\n onUnitSelected,\n selectedUnit,\n children,\n units: rawUnits,\n t_age,\n b_age,\n t_pos,\n b_pos,\n unconformityHeight = 30,\n targetUnitHeight = 20,\n pixelScale,\n minPixelScale = 0.2,\n minSectionHeight = 50,\n collapseSmallUnconformities = true,\n allowUnitSelection,\n hybridScale,\n scale,\n axisType,\n ...rest\n } = props;\n const ref = useRef<HTMLElement>();\n // Selected item position\n\n /* Make pixelScale and targetUnitHeight mutually exclusive. PixelScale implies\n * standardization of scales in all sections */\n let _targetUnitHeight = targetUnitHeight;\n let _minSectionHeight = minSectionHeight;\n let _minPixelScale = minPixelScale;\n if (pixelScale != null) {\n _targetUnitHeight = null;\n _minSectionHeight = 0;\n _minPixelScale = pixelScale;\n }\n\n // Handle special cases for hybrid scales (WIP, we need to regularize this)\n let _axisType = axisType ?? ColumnAxisType.AGE;\n let ageAxisComponent = CompositeAgeAxis;\n if (\n hybridScale?.type === HybridScaleType.ApproximateHeight &&\n _axisType != ColumnAxisType.AGE\n ) {\n // Use approximate height axis for non-age columns if a non-age axis type is requested\n ageAxisComponent = ApproximateHeightAxis;\n _axisType = ColumnAxisType.AGE;\n }\n\n const { sections, units, totalHeight } = usePreparedColumnUnits(rawUnits, {\n axisType: _axisType,\n t_age,\n b_age,\n t_pos,\n b_pos,\n mergeSections,\n targetUnitHeight: _targetUnitHeight,\n unconformityHeight,\n pixelScale,\n minPixelScale: _minPixelScale,\n minSectionHeight: _minSectionHeight,\n collapseSmallUnconformities,\n // TODO: consider unifying scale and hybridScale options\n scale,\n hybridScale,\n });\n\n if (sections.length === 0) {\n return h(\n \"div.column-container.empty\",\n h(NonIdealState, {\n title: \"Empty column\",\n description: \"No sections found in this column.\",\n icon: \"warning-sign\",\n }),\n );\n }\n\n let main: any = h(\n ColumnInner,\n { columnRef: ref, ageAxisComponent, ...rest },\n [\n children,\n h.if(showUnitPopover)(UnitSelectionPopover),\n h.if(keyboardNavigation)(UnitKeyboardNavigation, { units }),\n ],\n );\n\n /* By default, unit selection is disabled. However, if any related props are passed,\n we enable it.\n */\n let _allowUnitSelection = allowUnitSelection ?? false;\n if (showUnitPopover || selectedUnit != null || onUnitSelected != null) {\n _allowUnitSelection = true;\n }\n\n if (_allowUnitSelection) {\n main = h(\n UnitSelectionProvider,\n {\n columnRef: ref,\n onUnitSelected,\n selectedUnit,\n units,\n },\n main,\n );\n }\n\n return h(\n MacrostratColumnDataProvider,\n { units, sections, totalHeight, axisType: _axisType },\n main,\n );\n}\n\ninterface ColumnInnerProps extends BaseColumnProps {\n columnRef: RefObject<HTMLElement>;\n ageAxisComponent?: ComponentType;\n}\n\nfunction ColumnInner(props: ColumnInnerProps) {\n const padding = extractPadding(props);\n\n // TODO: integrate padding vars more closely with the rest of the spacing (right now padding is a bit ad-hoc)\n const paddingVars: any = {\n \"--column-padding-top\": `${padding.paddingTop}px`,\n \"--column-padding-bottom\": `${padding.paddingBottom}px`,\n \"--column-padding-left\": `${padding.paddingLeft}px`,\n \"--column-padding-right\": `${padding.paddingRight}px`,\n };\n\n const {\n unitComponent = UnitComponent,\n unconformityLabels = \"minimal\",\n showLabels = true,\n width: _width = 300,\n columnWidth: _columnWidth = 150,\n showLabelColumn: _showLabelColumn = true,\n className,\n columnRef,\n clipUnits = false,\n children,\n showTimescale,\n timescaleLevels,\n maxInternalColumns,\n onMouseOver,\n ageAxisComponent = CompositeAgeAxis,\n } = props;\n\n const { axisType } = useMacrostratColumnData();\n\n // Coalesce unconformity label setting to a boolean\n let _timescaleUnconformityLabels = false;\n let _sectionUnconformityLabels = false;\n if (unconformityLabels === true || unconformityLabels === \"prominent\") {\n _sectionUnconformityLabels = true;\n } else if (unconformityLabels === \"minimal\") {\n _timescaleUnconformityLabels = true;\n }\n\n let width = _width;\n let columnWidth = _columnWidth;\n if (columnWidth > width) {\n columnWidth = width;\n }\n let showLabelColumn = _showLabelColumn;\n if (columnWidth > width - 10) {\n showLabelColumn = false;\n }\n\n let _showTimescale = showTimescale ?? true;\n if (timescaleLevels != null) {\n _showTimescale = true;\n }\n _showTimescale = axisType == ColumnAxisType.AGE && _showTimescale;\n\n return h(\n ColumnContainer,\n {\n ...useMouseEventHandlers(onMouseOver),\n style: paddingVars,\n className,\n },\n h(\"div.column\", { ref: columnRef }, [\n h(ageAxisComponent),\n h.if(_showTimescale)(CompositeTimescale, {\n levels: timescaleLevels,\n unconformityLabels: _timescaleUnconformityLabels,\n }),\n h(SectionsColumn, {\n unitComponent,\n showLabels,\n width,\n columnWidth,\n showLabelColumn,\n clipUnits,\n unconformityLabels: _sectionUnconformityLabels,\n maxInternalColumns,\n }),\n children,\n ]),\n );\n}\n\ntype ColumnMouseOverHandler = (\n unit: UnitLong | null,\n height: number | null,\n evt: MouseEvent,\n) => void;\n\nfunction useMouseEventHandlers(\n _onMouseOver: ColumnMouseOverHandler | null = null,\n) {\n /** Click event handler */\n\n // Click handler for unit selection\n const dispatch = useUnitSelectionDispatch();\n const onClick = useCallback(\n (evt) => {\n dispatch?.(null, null, evt as any);\n },\n [dispatch],\n );\n\n /** Hover event handlers */\n const scale = useCompositeScale();\n\n const onMouseOver = useCallback(\n (evt) => {\n const height = scale.invert(\n evt.clientY - evt.currentTarget.getBoundingClientRect().top,\n );\n _onMouseOver?.(null, height, evt);\n },\n [scale, _onMouseOver],\n );\n\n const onMouseOut = useCallback(() => {\n _onMouseOver?.(null, null, null);\n }, [_onMouseOver]);\n\n if (_onMouseOver == null) {\n return {\n onClick,\n onMouseOver: undefined,\n onMouseMove: undefined,\n onMouseOut: undefined,\n };\n }\n\n return { onMouseOver, onMouseMove: onMouseOver, onMouseOut, onClick };\n}\n\nexport interface ColumnContainerProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n style?: CSSProperties;\n}\n\nexport function ColumnContainer(props: ColumnContainerProps) {\n const { className, ...rest } = props;\n const darkMode = useDarkMode();\n\n return h(Box, {\n className: classNames(\n className,\n {\n \"dark-mode\": darkMode?.isEnabled ?? false,\n },\n \"column-container\",\n ),\n ...rest,\n });\n}\n\nexport function ColumnBasicInfo({\n data,\n showColumnID = true,\n showReferences = true,\n}) {\n if (data == null) return null;\n return h(\"div.column-info\", [\n h(\"div.column-title-row\", [\n h(\"h2\", data.col_name),\n h.if(showColumnID)(\"h4\", h(Identifier, { id: data.col_id })),\n ]),\n h(DataField, { row: true, label: \"Group\", value: data.col_group }),\n h.if(showReferences)(ReferencesField, {\n refs: data.refs,\n inline: false,\n row: false,\n className: \"column-refs\",\n }),\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.52ad973a.js.map"}
@@ -1,4 +1,4 @@
1
- import {IsotopesDataset as $d71d096cfe00860f$export$c69bd0285aa5d775, IsotopesColumn as $d71d096cfe00860f$export$5d8aa8022c284748} from "./column-views.0ce9b697.js";
1
+ import {IsotopesDataset as $d71d096cfe00860f$export$c69bd0285aa5d775, IsotopesColumn as $d71d096cfe00860f$export$5d8aa8022c284748} from "./column-views.817752b6.js";
2
2
  import {MeasurementDataContext as $5dbb619f2c7bef60$export$c644ef985ce7a4c4, MeasurementDataProvider as $5dbb619f2c7bef60$export$5f01d5b342a89841, useMeasurementData as $5dbb619f2c7bef60$export$8a0335fd9ff72150} from "./column-views.a7c5ae16.js";
3
3
 
4
4
 
@@ -6,4 +6,4 @@ import {MeasurementDataContext as $5dbb619f2c7bef60$export$c644ef985ce7a4c4, Mea
6
6
 
7
7
 
8
8
  export {$d71d096cfe00860f$export$c69bd0285aa5d775 as IsotopesDataset, $d71d096cfe00860f$export$5d8aa8022c284748 as IsotopesColumn, $5dbb619f2c7bef60$export$c644ef985ce7a4c4 as MeasurementDataContext, $5dbb619f2c7bef60$export$5f01d5b342a89841 as MeasurementDataProvider, $5dbb619f2c7bef60$export$8a0335fd9ff72150 as useMeasurementData};
9
- //# sourceMappingURL=column-views.60365cdb.js.map
9
+ //# sourceMappingURL=column-views.5456a1ee.js.map
@@ -1 +1 @@
1
- {"mappings":"","sources":["packages/column-views/src/facets/carbon-isotopes/index.ts"],"sourcesContent":["export * from \"./isotopes-column\";\nexport * from \"./data-provider\";\n"],"names":[],"version":3,"file":"column-views.60365cdb.js.map"}
1
+ {"mappings":"","sources":["packages/column-views/src/facets/carbon-isotopes/index.ts"],"sourcesContent":["export * from \"./isotopes-column\";\nexport * from \"./data-provider\";\n"],"names":[],"version":3,"file":"column-views.5456a1ee.js.map"}
@@ -1,6 +1,6 @@
1
1
  import {resolveID as $d3e69bd163d41f63$export$7be7d732f3de9464, scalePattern as $d3e69bd163d41f63$export$e8deec7b02ce51eb} from "./column-views.006d5180.js";
2
- import {useLithologies as $774a5efa27d1c77b$export$4d18a90c945d129f} from "./column-views.2eceafb5.js";
3
- import {useUnitSelectionTarget as $61771df184788970$export$cbbec12b1451fe7d} from "./column-views.a3fabf0f.js";
2
+ import {useLithologies as $774a5efa27d1c77b$export$4d18a90c945d129f} from "./column-views.ef88c46c.js";
3
+ import {useUnitSelectionTarget as $61771df184788970$export$cbbec12b1451fe7d} from "./column-views.c44febd0.js";
4
4
  import "./column-views.6c670c13.css";
5
5
  import $lClM8$columnviews4d374a35js from "./column-views.4d374a35.js";
6
6
  import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.54f8b909.js";
@@ -203,4 +203,4 @@ function $d254716a820e9c85$export$5d1cdfabe8dc8085(props) {
203
203
 
204
204
 
205
205
  export {$d254716a820e9c85$export$d54fdbabca27e53 as MinimalUnit, $d254716a820e9c85$export$1d8b9ae22d404866 as Unit, $d254716a820e9c85$export$b4f0ca233b98f9af as LabeledUnit, $d254716a820e9c85$export$5d1cdfabe8dc8085 as UnitBoxes};
206
- //# sourceMappingURL=column-views.81bddbee.js.map
206
+ //# sourceMappingURL=column-views.66ccfc44.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/column-views/src/units/boxes.ts"],"sourcesContent":["import {\n ColumnAxisType,\n ColumnContext,\n ColumnLayoutContext,\n ForeignObject,\n PatternDefsProvider,\n useColumn,\n useGeologicPattern,\n zigZagBoxPath,\n} from \"@macrostrat/column-components\";\nimport { SizeAwareLabel, Clickable } from \"@macrostrat/ui-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport { forwardRef, ReactNode, useContext, useMemo } from \"react\";\nimport { resolveID, scalePattern } from \"./resolvers\";\nimport { useUnitSelectionTarget, useLithologies } from \"../data-provider\";\nimport { IUnit } from \"./types\";\nimport styles from \"./boxes.module.sass\";\nimport classNames from \"classnames\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { getMixedUnitColor } from \"./colors\";\nimport type { RectBounds } from \"./types\";\n\nconst h = hyper.styled(styles);\n\ninterface UnitRectOptions {\n widthFraction?: number;\n axisType?: ColumnAxisType;\n // Padding to create overflow for zig-zags or other ornamented edges\n padding?: number;\n}\n\ninterface UnitProps extends Clickable, Partial<RectBounds>, UnitRectOptions {\n division: IUnit;\n resolveID?(IUnit): string;\n UUID?: string;\n defaultFill?: string;\n widthFraction?: number;\n children?: ReactNode;\n className?: string;\n fill?: string;\n backgroundColor?: string;\n patternColor?: string;\n patternID?: string | number;\n}\n\nexport interface LabeledUnitProps\n extends UnitRectOptions, Clickable, Partial<RectBounds> {\n division: IUnit;\n patternID?: string | number;\n label: string;\n onLabelUpdated?(label: string, shown: boolean);\n halfWidth?: boolean;\n showLabel?: boolean;\n backgroundColor?: string;\n}\n\nfunction useUnitRect(\n division: IUnit,\n options: UnitRectOptions = {},\n): RectBounds {\n const {\n widthFraction = 1,\n axisType = ColumnAxisType.AGE,\n padding = 0,\n } = options;\n const { scale } = useContext(ColumnContext);\n const { width } = useContext(ColumnLayoutContext);\n\n const [bottomHeight, topHeight] = getUnitHeightRange(division, axisType);\n\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2,\n };\n}\n\nexport function MinimalUnit(props) {\n const {\n division: d,\n children,\n className,\n widthFraction = 1,\n axisType: _, // not sure why this is brought in...\n nColumns: __,\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const lithMap = useLithologies();\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n };\n\n const backgroundColor = getMixedUnitColor(d, lithMap, null, false);\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor,\n },\n },\n [\n h(\"rect.unit.background\", {\n ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick,\n }),\n h.if(selected)(\"rect.selection-overlay\", bounds),\n ],\n );\n}\n\nfunction Unit(props: UnitProps) {\n const {\n division: d,\n children,\n fill,\n defaultFill = \"transparent\",\n className,\n widthFraction = 1,\n backgroundColor,\n patternColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom,\n };\n const _patternID = patternID ?? resolveID(d);\n let _fill = fill ?? useGeologicPattern(_patternID, defaultFill);\n\n const hasBackgroundColor = backgroundColor != null;\n\n const _className = classNames(className, { colored: hasBackgroundColor });\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n },\n },\n [\n h(UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick,\n className: \"background\",\n }),\n h(UnitRect, {\n ref,\n ...bounds,\n fill: _fill,\n //mask,\n onClick,\n className: \"unit\",\n }),\n h.if(selected)(UnitRect, { ...bounds, className: \"selection-overlay\" }),\n //defs,\n children,\n ],\n );\n}\n\ninterface UnitRectProps {\n x: number;\n y: number;\n width: number;\n height: number;\n className: string;\n // Used to determine if the rect should have a zig-zag edge on the top or bottom\n overflowTop?: boolean;\n overflowBottom?: boolean;\n [key: string]: any;\n}\n\nconst UnitRect = forwardRef((props: UnitRectProps, ref) => {\n const {\n x,\n y,\n width,\n height,\n overflowTop = false,\n overflowBottom = false,\n ...rest\n } = props;\n\n if (!overflowTop && !overflowBottom) {\n return h(\"rect\", {\n x,\n y,\n width,\n height,\n ref,\n ...rest,\n });\n } else {\n const d = zigZagBoxPath(x, y, width, height, overflowTop, overflowBottom);\n return h(\"path\", {\n d,\n ref,\n ...rest,\n });\n }\n});\n\nfunction LabeledUnit(props: LabeledUnitProps) {\n const {\n division,\n label,\n onLabelUpdated,\n widthFraction,\n showLabel = true,\n backgroundColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const bounds = {\n ...useUnitRect(division, { widthFraction, axisType }),\n ...baseBounds,\n };\n const { width, height } = bounds;\n return h(\n Unit,\n {\n className: \"labeled-unit\",\n division,\n backgroundColor,\n patternID,\n ...bounds,\n },\n [\n h.if(showLabel)(\n ForeignObject,\n { ...bounds, className: \"unit-label-container\" },\n h(SizeAwareLabel, {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: { width, height },\n label,\n onVisibilityChanged(viz) {\n onLabelUpdated(label, viz);\n },\n }),\n ),\n ],\n );\n}\n\nfunction UnitBoxes<T>(props: {\n unitComponent: React.FunctionComponent<{ division: T }>;\n unitComponentProps?: any;\n transformDivisions?(divisions: T[]): T[];\n transformDivision?: (\n division: any,\n index: number,\n divisions: any[],\n ) => T | null;\n}) {\n const { unitComponent = Unit, unitComponentProps = {} } = props;\n const { divisions } = useContext(ColumnContext);\n\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n\n const children = useMemo(() => {\n return divisions.map((division: any, i) => {\n // @ts-ignore\n return h(unitComponent, {\n division,\n key: division.unit_id,\n ...unitComponentProps,\n });\n });\n }, [divisions, unitComponent, unitComponentProps]);\n\n return h(\n PatternDefsProvider,\n { resolveID, scalePattern },\n h(\"g.divisions\", children),\n );\n}\n\nexport { LabeledUnit, Unit, UnitBoxes, UnitProps };\n"],"names":[],"version":3,"file":"column-views.81bddbee.js.map"}
1
+ {"mappings":"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","sources":["packages/column-views/src/units/boxes.ts"],"sourcesContent":["import {\n ColumnAxisType,\n ColumnContext,\n ColumnLayoutContext,\n ForeignObject,\n PatternDefsProvider,\n useColumn,\n useGeologicPattern,\n zigZagBoxPath,\n} from \"@macrostrat/column-components\";\nimport { SizeAwareLabel, Clickable } from \"@macrostrat/ui-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport { forwardRef, ReactNode, useContext, useMemo } from \"react\";\nimport { resolveID, scalePattern } from \"./resolvers\";\nimport { useUnitSelectionTarget, useLithologies } from \"../data-provider\";\nimport { IUnit } from \"./types\";\nimport styles from \"./boxes.module.sass\";\nimport classNames from \"classnames\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { getMixedUnitColor } from \"./colors\";\nimport type { RectBounds } from \"./types\";\n\nconst h = hyper.styled(styles);\n\ninterface UnitRectOptions {\n widthFraction?: number;\n axisType?: ColumnAxisType;\n // Padding to create overflow for zig-zags or other ornamented edges\n padding?: number;\n}\n\ninterface UnitProps extends Clickable, Partial<RectBounds>, UnitRectOptions {\n division: IUnit;\n resolveID?(IUnit): string;\n UUID?: string;\n defaultFill?: string;\n widthFraction?: number;\n children?: ReactNode;\n className?: string;\n fill?: string;\n backgroundColor?: string;\n patternColor?: string;\n patternID?: string | number;\n}\n\nexport interface LabeledUnitProps\n extends UnitRectOptions, Clickable, Partial<RectBounds> {\n division: IUnit;\n patternID?: string | number;\n label: string;\n onLabelUpdated?(label: string, shown: boolean);\n halfWidth?: boolean;\n showLabel?: boolean;\n backgroundColor?: string;\n}\n\nfunction useUnitRect(\n division: IUnit,\n options: UnitRectOptions = {},\n): RectBounds {\n const {\n widthFraction = 1,\n axisType = ColumnAxisType.AGE,\n padding = 0,\n } = options;\n const { scale } = useContext(ColumnContext);\n const { width } = useContext(ColumnLayoutContext);\n\n const [bottomHeight, topHeight] = getUnitHeightRange(division, axisType);\n\n const y = scale(topHeight);\n const height = Math.abs(scale(bottomHeight) - y);\n\n return {\n x: width * (1 - widthFraction) - padding,\n y: y - padding,\n height: height + padding * 2,\n width: widthFraction * width + padding * 2,\n };\n}\n\nexport function MinimalUnit(props) {\n const {\n division: d,\n children,\n className,\n widthFraction = 1,\n axisType: _, // not sure why this is brought in...\n nColumns: __,\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const lithMap = useLithologies();\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n };\n\n const backgroundColor = getMixedUnitColor(d, lithMap, null, false);\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n \"--column-stroke-color\": backgroundColor,\n },\n },\n [\n h(\"rect.unit.background\", {\n ref,\n ...bounds,\n fill: backgroundColor,\n fillOpacity: 0.8,\n stroke: backgroundColor,\n onClick,\n }),\n h.if(selected)(\"rect.selection-overlay\", bounds),\n ],\n );\n}\n\nfunction Unit(props: UnitProps) {\n const {\n division: d,\n children,\n fill,\n defaultFill = \"transparent\",\n className,\n widthFraction = 1,\n backgroundColor,\n patternColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n\n const hasOverflowTop = d.t_clip_pos != null;\n const hasOverflowBottom = d.b_clip_pos != null;\n\n const bounds = {\n ...useUnitRect(d, { widthFraction, axisType }),\n ...baseBounds,\n overflowTop: hasOverflowTop,\n overflowBottom: hasOverflowBottom,\n };\n const _patternID = patternID ?? resolveID(d);\n let _fill = fill ?? useGeologicPattern(_patternID, defaultFill);\n\n const hasBackgroundColor = backgroundColor != null;\n\n const _className = classNames(className, { colored: hasBackgroundColor });\n\n const [ref, selected, onClick] = useUnitSelectionTarget(d);\n\n return h(\n \"g.unit\",\n {\n className: _className,\n style: {\n \"--column-unit-background-color\": backgroundColor,\n },\n },\n [\n h(UnitRect, {\n ...bounds,\n fill: backgroundColor,\n onClick,\n className: \"background\",\n }),\n h(UnitRect, {\n ref,\n ...bounds,\n fill: _fill,\n //mask,\n onClick,\n className: \"unit\",\n }),\n h.if(selected)(UnitRect, { ...bounds, className: \"selection-overlay\" }),\n //defs,\n children,\n ],\n );\n}\n\ninterface UnitRectProps {\n x: number;\n y: number;\n width: number;\n height: number;\n className: string;\n // Used to determine if the rect should have a zig-zag edge on the top or bottom\n overflowTop?: boolean;\n overflowBottom?: boolean;\n [key: string]: any;\n}\n\nconst UnitRect = forwardRef((props: UnitRectProps, ref) => {\n const {\n x,\n y,\n width,\n height,\n overflowTop = false,\n overflowBottom = false,\n ...rest\n } = props;\n\n if (!overflowTop && !overflowBottom) {\n return h(\"rect\", {\n x,\n y,\n width,\n height,\n ref,\n ...rest,\n });\n } else {\n const d = zigZagBoxPath(x, y, width, height, overflowTop, overflowBottom);\n return h(\"path\", {\n d,\n ref,\n ...rest,\n });\n }\n});\n\nfunction LabeledUnit(props: LabeledUnitProps) {\n const {\n division,\n label,\n onLabelUpdated,\n widthFraction,\n showLabel = true,\n backgroundColor,\n patternID,\n axisType: _, // not sure why this is brought in...\n ...baseBounds\n } = props;\n\n const { axisType } = useColumn();\n const bounds = {\n ...useUnitRect(division, { widthFraction, axisType }),\n ...baseBounds,\n };\n const { width, height } = bounds;\n return h(\n Unit,\n {\n className: \"labeled-unit\",\n division,\n backgroundColor,\n patternID,\n ...bounds,\n },\n [\n h.if(showLabel)(\n ForeignObject,\n { ...bounds, className: \"unit-label-container\" },\n h(SizeAwareLabel, {\n className: \"unit-overlay\",\n labelClassName: \"unit-label\",\n style: { width, height },\n label,\n onVisibilityChanged(viz) {\n onLabelUpdated(label, viz);\n },\n }),\n ),\n ],\n );\n}\n\nfunction UnitBoxes<T>(props: {\n unitComponent: React.FunctionComponent<{ division: T }>;\n unitComponentProps?: any;\n transformDivisions?(divisions: T[]): T[];\n transformDivision?: (\n division: any,\n index: number,\n divisions: any[],\n ) => T | null;\n}) {\n const { unitComponent = Unit, unitComponentProps = {} } = props;\n const { divisions } = useContext(ColumnContext);\n\n if (divisions.length == 0) {\n console.warn(\"No divisions found in column context\");\n return null;\n }\n\n const children = useMemo(() => {\n return divisions.map((division: any, i) => {\n // @ts-ignore\n return h(unitComponent, {\n division,\n key: division.unit_id,\n ...unitComponentProps,\n });\n });\n }, [divisions, unitComponent, unitComponentProps]);\n\n return h(\n PatternDefsProvider,\n { resolveID, scalePattern },\n h(\"g.divisions\", children),\n );\n}\n\nexport { LabeledUnit, Unit, UnitBoxes, UnitProps };\n"],"names":[],"version":3,"file":"column-views.66ccfc44.js.map"}
@@ -1,9 +1,9 @@
1
- import {ColumnCorrelationMap as $dcd183b733f66144$export$8e7d97509e84cc49} from "./column-views.f0b0fc56.js";
2
- import {ColumnCorrelationProvider as $74e211dc185c20b4$export$72ffe141ebf87ef1, useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-views.413217dc.js";
1
+ import {ColumnCorrelationMap as $dcd183b733f66144$export$8e7d97509e84cc49} from "./column-views.35efe006.js";
2
+ import {ColumnCorrelationProvider as $74e211dc185c20b4$export$72ffe141ebf87ef1, useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-views.6d63971b.js";
3
3
 
4
4
 
5
5
 
6
6
 
7
7
 
8
8
  export {$dcd183b733f66144$export$8e7d97509e84cc49 as ColumnCorrelationMap, $74e211dc185c20b4$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $74e211dc185c20b4$export$21398703d3a9bb4d as useCorrelationMapStore};
9
- //# sourceMappingURL=column-views.469a4952.js.map
9
+ //# sourceMappingURL=column-views.6ce8cb61.js.map
@@ -1 +1 @@
1
- {"mappings":"","sources":["packages/column-views/src/maps/column-correlation/index.ts"],"sourcesContent":["export * from \"./core\";\nexport * from \"./state\";\n"],"names":[],"version":3,"file":"column-views.469a4952.js.map"}
1
+ {"mappings":"","sources":["packages/column-views/src/maps/column-correlation/index.ts"],"sourcesContent":["export * from \"./core\";\nexport * from \"./state\";\n"],"names":[],"version":3,"file":"column-views.6ce8cb61.js.map"}
@@ -1,4 +1,4 @@
1
- import {useMacrostratColumns as $774a5efa27d1c77b$export$81eaae0b474404fd} from "./column-views.2eceafb5.js";
1
+ import {useMacrostratColumns as $774a5efa27d1c77b$export$81eaae0b474404fd} from "./column-views.ef88c46c.js";
2
2
  import {create as $i7Wch$create, useStore as $i7Wch$useStore} from "zustand";
3
3
  import {lineIntersect as $i7Wch$lineIntersect} from "@turf/line-intersect";
4
4
  import $i7Wch$turfdistance from "@turf/distance";
@@ -115,4 +115,4 @@ function $74e211dc185c20b4$var$sorted(data, accessor) {
115
115
 
116
116
 
117
117
  export {$74e211dc185c20b4$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $74e211dc185c20b4$export$21398703d3a9bb4d as useCorrelationMapStore};
118
- //# sourceMappingURL=column-views.413217dc.js.map
118
+ //# sourceMappingURL=column-views.6d63971b.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/column-views/src/maps/column-correlation/state.ts"],"sourcesContent":["import { LineString, Point } from \"geojson\";\nimport { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecord } from \"@macrostrat/api-types\";\n// Turf intersection\nimport { lineIntersect } from \"@turf/line-intersect\";\nimport distance from \"@turf/distance\";\nimport { nearestPointOnLine } from \"@turf/nearest-point-on-line\";\nimport { centroid } from \"@turf/centroid\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { createComputed } from \"zustand-computed\";\nimport { useMacrostratColumns } from \"../../data-provider/base\";\n\nexport interface CorrelationMapInput {\n columns: ColumnGeoJSONRecord[];\n focusedLine: LineString | null;\n}\n\nexport interface CorrelationMapStore extends CorrelationMapInput {\n onClickMap: (event: mapboxgl.MapMouseEvent, point: Point) => void;\n}\n\nexport interface CorrelationProviderProps extends CorrelationMapInput {\n projectID?: number;\n inProcess?: boolean;\n columns: ColumnGeoJSONRecord[] | null;\n children: ReactNode;\n onSelectColumns?: (\n columns: FocusedColumnGeoJSONRecord[],\n line: LineString | null,\n ) => void;\n}\n\nconst CorrelationStoreContext =\n createContext<StoreApi<CorrelationMapStore> | null>(null);\n\ntype ComputedStore = {\n focusedColumns: FocusedColumnGeoJSONRecord[];\n};\n\n/** A computed store that will automatically update when the state changes */\nconst computed = createComputed((state: CorrelationMapStore): ComputedStore => {\n return {\n // We compute the focused columns based on columns and focusedLine\n focusedColumns: buildCorrelationColumns(state.columns, state.focusedLine),\n };\n}) as any;\n\nexport function ColumnCorrelationProvider({\n children,\n columns,\n projectID,\n inProcess,\n focusedLine,\n onSelectColumns,\n}: CorrelationProviderProps) {\n const [store] = useState(() => {\n return create<CorrelationMapStore & ComputedStore>(\n computed((set, get): CorrelationMapStore => {\n return {\n focusedLine,\n columns: null,\n onClickMap(event: mapboxgl.MapMouseEvent, point: Point) {\n const state = get();\n // Check if shift key is pressed\n const shiftKeyPressed = event.originalEvent.shiftKey;\n let existingCoords = state.focusedLine?.coordinates ?? [];\n\n if (existingCoords.length >= 2 && !shiftKeyPressed) {\n // Reset the line to zero length\n existingCoords = [];\n }\n set({\n focusedLine: {\n type: \"LineString\",\n coordinates: [...existingCoords, point.coordinates],\n },\n });\n },\n };\n }),\n );\n });\n\n // Set up the store\n /** TODO: move the fetching of all columns to within the map */\n const _columns = useMacrostratColumns(projectID, inProcess);\n useEffect(() => {\n if (_columns != null) {\n store.setState({ columns: _columns });\n }\n }, [_columns]);\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n const focusedColumns = useStore(store, (state) => state.focusedColumns);\n const _focusedLine = useStore(store, (state) => state.focusedLine);\n\n useEffect(() => {\n onSelectColumns?.(focusedColumns, _focusedLine);\n }, [focusedColumns, _focusedLine]);\n\n return h(CorrelationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useCorrelationMapStore(\n selector: (state: CorrelationMapStore & ComputedStore) => any,\n) {\n const storeApi = useContext(CorrelationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing CorrelationMapProvider\");\n }\n return useStore(storeApi, selector);\n}\n\nfunction buildCorrelationColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n if (columns == null || line == null || line.coordinates.length < 2) {\n return [];\n }\n return orderColumnsByDistance(\n computeIntersectingColumns(columns, line),\n line,\n );\n}\n\nfunction computeIntersectingColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): ColumnGeoJSONRecord[] {\n if (columns == null || line == null) {\n return [];\n }\n\n return columns.filter((col) => {\n const poly = col.geometry;\n\n // Some in-process datasets seem to have null geometries\n if (poly == null) return false;\n if (poly.type != \"Polygon\" && poly.type != \"MultiPolygon\") return false;\n\n const intersection = lineIntersect(line, poly);\n return intersection.features.length > 0;\n });\n}\n\ninterface FocusedColumnGeoJSONRecord extends ColumnGeoJSONRecord {\n properties: {\n centroid: Point;\n nearestPointOnLine: Point;\n distanceAlongLine: number;\n } & ColumnGeoJSONRecord[\"properties\"];\n}\n\nfunction orderColumnsByDistance(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n const centroids = columns.map((col) => centroid(col.geometry));\n const projectedPoints = centroids.map((point) =>\n nearestPointOnLine(line, point),\n );\n const distances = projectedPoints.map((point) =>\n distance(point.geometry.coordinates, line.coordinates[0]),\n );\n\n let newColumns = columns.map((col, i) => {\n return {\n ...col,\n properties: {\n ...col.properties,\n centroid: centroids[i],\n nearestPointOnLine: projectedPoints[i],\n distanceAlongLine: distances[i],\n },\n };\n });\n\n return sorted(newColumns, (d) => d.properties.distanceAlongLine);\n}\n\nfunction sorted(data, accessor: (d) => number) {\n return data.sort((a, b) => accessor(a) - accessor(b));\n}\n"],"names":[],"version":3,"file":"column-views.413217dc.js.map"}
1
+ {"mappings":"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","sources":["packages/column-views/src/maps/column-correlation/state.ts"],"sourcesContent":["import { LineString, Point } from \"geojson\";\nimport { create, StoreApi, useStore } from \"zustand\";\nimport type { ColumnGeoJSONRecord } from \"@macrostrat/api-types\";\n// Turf intersection\nimport { lineIntersect } from \"@turf/line-intersect\";\nimport distance from \"@turf/distance\";\nimport { nearestPointOnLine } from \"@turf/nearest-point-on-line\";\nimport { centroid } from \"@turf/centroid\";\nimport {\n createContext,\n useState,\n useContext,\n ReactNode,\n useEffect,\n} from \"react\";\nimport h from \"@macrostrat/hyper\";\nimport { createComputed } from \"zustand-computed\";\nimport { useMacrostratColumns } from \"../../data-provider/base\";\n\nexport interface CorrelationMapInput {\n columns: ColumnGeoJSONRecord[];\n focusedLine: LineString | null;\n}\n\nexport interface CorrelationMapStore extends CorrelationMapInput {\n onClickMap: (event: mapboxgl.MapMouseEvent, point: Point) => void;\n}\n\nexport interface CorrelationProviderProps extends CorrelationMapInput {\n projectID?: number;\n inProcess?: boolean;\n columns: ColumnGeoJSONRecord[] | null;\n children: ReactNode;\n onSelectColumns?: (\n columns: FocusedColumnGeoJSONRecord[],\n line: LineString | null,\n ) => void;\n}\n\nconst CorrelationStoreContext =\n createContext<StoreApi<CorrelationMapStore> | null>(null);\n\ntype ComputedStore = {\n focusedColumns: FocusedColumnGeoJSONRecord[];\n};\n\n/** A computed store that will automatically update when the state changes */\nconst computed = createComputed((state: CorrelationMapStore): ComputedStore => {\n return {\n // We compute the focused columns based on columns and focusedLine\n focusedColumns: buildCorrelationColumns(state.columns, state.focusedLine),\n };\n}) as any;\n\nexport function ColumnCorrelationProvider({\n children,\n columns,\n projectID,\n inProcess,\n focusedLine,\n onSelectColumns,\n}: CorrelationProviderProps) {\n const [store] = useState(() => {\n return create<CorrelationMapStore & ComputedStore>(\n computed((set, get): CorrelationMapStore => {\n return {\n focusedLine,\n columns: null,\n onClickMap(event: mapboxgl.MapMouseEvent, point: Point) {\n const state = get();\n // Check if shift key is pressed\n const shiftKeyPressed = event.originalEvent.shiftKey;\n let existingCoords = state.focusedLine?.coordinates ?? [];\n\n if (existingCoords.length >= 2 && !shiftKeyPressed) {\n // Reset the line to zero length\n existingCoords = [];\n }\n set({\n focusedLine: {\n type: \"LineString\",\n coordinates: [...existingCoords, point.coordinates],\n },\n });\n },\n };\n }),\n );\n });\n\n // Set up the store\n /** TODO: move the fetching of all columns to within the map */\n const _columns = useMacrostratColumns(projectID, inProcess);\n useEffect(() => {\n if (_columns != null) {\n store.setState({ columns: _columns });\n }\n }, [_columns]);\n\n // Kind of an awkward way to do this but we need to allow the selector to run\n const focusedColumns = useStore(store, (state) => state.focusedColumns);\n const _focusedLine = useStore(store, (state) => state.focusedLine);\n\n useEffect(() => {\n onSelectColumns?.(focusedColumns, _focusedLine);\n }, [focusedColumns, _focusedLine]);\n\n return h(CorrelationStoreContext.Provider, { value: store }, children);\n}\n\nexport function useCorrelationMapStore(\n selector: (state: CorrelationMapStore & ComputedStore) => any,\n) {\n const storeApi = useContext(CorrelationStoreContext);\n if (storeApi == null) {\n throw new Error(\"Missing CorrelationMapProvider\");\n }\n return useStore(storeApi, selector);\n}\n\nfunction buildCorrelationColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n if (columns == null || line == null || line.coordinates.length < 2) {\n return [];\n }\n return orderColumnsByDistance(\n computeIntersectingColumns(columns, line),\n line,\n );\n}\n\nfunction computeIntersectingColumns(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): ColumnGeoJSONRecord[] {\n if (columns == null || line == null) {\n return [];\n }\n\n return columns.filter((col) => {\n const poly = col.geometry;\n\n // Some in-process datasets seem to have null geometries\n if (poly == null) return false;\n if (poly.type != \"Polygon\" && poly.type != \"MultiPolygon\") return false;\n\n const intersection = lineIntersect(line, poly);\n return intersection.features.length > 0;\n });\n}\n\ninterface FocusedColumnGeoJSONRecord extends ColumnGeoJSONRecord {\n properties: {\n centroid: Point;\n nearestPointOnLine: Point;\n distanceAlongLine: number;\n } & ColumnGeoJSONRecord[\"properties\"];\n}\n\nfunction orderColumnsByDistance(\n columns: ColumnGeoJSONRecord[],\n line: LineString,\n): FocusedColumnGeoJSONRecord[] {\n const centroids = columns.map((col) => centroid(col.geometry));\n const projectedPoints = centroids.map((point) =>\n nearestPointOnLine(line, point),\n );\n const distances = projectedPoints.map((point) =>\n distance(point.geometry.coordinates, line.coordinates[0]),\n );\n\n let newColumns = columns.map((col, i) => {\n return {\n ...col,\n properties: {\n ...col.properties,\n centroid: centroids[i],\n nearestPointOnLine: projectedPoints[i],\n distanceAlongLine: distances[i],\n },\n };\n });\n\n return sorted(newColumns, (d) => d.properties.distanceAlongLine);\n}\n\nfunction sorted(data, accessor: (d) => number) {\n return data.sort((a, b) => accessor(a) - accessor(b));\n}\n"],"names":[],"version":3,"file":"column-views.6d63971b.js.map"}
@@ -1,4 +1,4 @@
1
- import {BaseMeasurementsColumn as $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d, TruncatedList as $c6d9d48b3424a44c$export$653e47a7a0da0f0d} from "./column-views.faacfc3c.js";
1
+ import {BaseMeasurementsColumn as $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d, TruncatedList as $c6d9d48b3424a44c$export$653e47a7a0da0f0d} from "./column-views.1e579112.js";
2
2
  import $fqcIO$macrostrathyper from "@macrostrat/hyper";
3
3
  import {useAPIResult as $fqcIO$useAPIResult} from "@macrostrat/ui-components";
4
4
 
@@ -34,4 +34,4 @@ function $6ff130029901daab$var$SGPSamplesNote(props) {
34
34
 
35
35
 
36
36
  export {$6ff130029901daab$export$c49cf57576706bab as SGPMeasurementsColumn};
37
- //# sourceMappingURL=column-views.e17f00d3.js.map
37
+ //# sourceMappingURL=column-views.7243e77d.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;AAIA,SAAS,iCAAW,UAAE,MAAM,EAAE;IAC5B,MAAM,MAAM,CAAA,GAAA,mBAAW,EACrB,sDACA;QACE,QAAQ,CAAC,GAAG,EAAE,QAAQ;IACxB,GACA,CAAC,IAAM;IAET,OAAO;AACT;AAEO,SAAS,0CAAsB,YAAE,QAAQ,SAAE,QAAQ,WAAW;IACnE,MAAM,OAAO,iCAAW;QAAE,QAAQ;IAAS;IAE3C,IAAI,QAAQ,MAAM,OAAO;IAEzB,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAqB,GAAG;cAC/B;QACA,eAAe;IACjB;AACF;AAEA,SAAS,qCAAe,KAAK;IAC3B,MAAM,QAAE,IAAI,EAAE,GAAG;IACjB,MAAM,cAAc,MAAM,MAAM;IAEhC,IAAI,eAAe,QAAQ,YAAY,MAAM,KAAK,GAAG,OAAO;IAE5D,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAY,GAAG;QACtB,WAAW;QACX,MAAM;QACN,cAAc,CAAC,IAAM,CAAA,GAAA,sBAAA,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI;IAC5C;AACF","sources":["packages/column-views/src/facets/measurements/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport { BaseMeasurementsColumn, TruncatedList } from \"../base-sample-column\";\n\nfunction useSGPData({ col_id }) {\n const res = useAPIResult(\n \"https://dev.macrostrat.org/api/pg/sgp_unit_matches\",\n {\n col_id: `eq.${col_id}`,\n },\n (d) => d,\n );\n return res;\n}\n\nexport function SGPMeasurementsColumn({ columnID, color = \"magenta\" }) {\n const data = useSGPData({ col_id: columnID });\n\n if (data == null) return null;\n\n return h(BaseMeasurementsColumn, {\n data,\n noteComponent: SGPSamplesNote,\n });\n}\n\nfunction SGPSamplesNote(props) {\n const { note } = props;\n const sgp_samples = note?.data?.sgp_samples;\n\n if (sgp_samples == null || sgp_samples.length === 0) return null;\n\n return h(TruncatedList, {\n className: \"sgp-samples\",\n data: sgp_samples,\n itemRenderer: (p) => h(\"span\", p.data.name),\n });\n}\n"],"names":[],"version":3,"file":"column-views.e17f00d3.js.map"}
1
+ {"mappings":";;;;;;;AAIA,SAAS,iCAAW,UAAE,MAAM,EAAE;IAC5B,MAAM,MAAM,CAAA,GAAA,mBAAW,EACrB,sDACA;QACE,QAAQ,CAAC,GAAG,EAAE,QAAQ;IACxB,GACA,CAAC,IAAM;IAET,OAAO;AACT;AAEO,SAAS,0CAAsB,YAAE,QAAQ,SAAE,QAAQ,WAAW;IACnE,MAAM,OAAO,iCAAW;QAAE,QAAQ;IAAS;IAE3C,IAAI,QAAQ,MAAM,OAAO;IAEzB,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAqB,GAAG;cAC/B;QACA,eAAe;IACjB;AACF;AAEA,SAAS,qCAAe,KAAK;IAC3B,MAAM,QAAE,IAAI,EAAE,GAAG;IACjB,MAAM,cAAc,MAAM,MAAM;IAEhC,IAAI,eAAe,QAAQ,YAAY,MAAM,KAAK,GAAG,OAAO;IAE5D,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAY,GAAG;QACtB,WAAW;QACX,MAAM;QACN,cAAc,CAAC,IAAM,CAAA,GAAA,sBAAA,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI;IAC5C;AACF","sources":["packages/column-views/src/facets/measurements/index.ts"],"sourcesContent":["import h from \"@macrostrat/hyper\";\nimport { useAPIResult } from \"@macrostrat/ui-components\";\nimport { BaseMeasurementsColumn, TruncatedList } from \"../base-sample-column\";\n\nfunction useSGPData({ col_id }) {\n const res = useAPIResult(\n \"https://dev.macrostrat.org/api/pg/sgp_unit_matches\",\n {\n col_id: `eq.${col_id}`,\n },\n (d) => d,\n );\n return res;\n}\n\nexport function SGPMeasurementsColumn({ columnID, color = \"magenta\" }) {\n const data = useSGPData({ col_id: columnID });\n\n if (data == null) return null;\n\n return h(BaseMeasurementsColumn, {\n data,\n noteComponent: SGPSamplesNote,\n });\n}\n\nfunction SGPSamplesNote(props) {\n const { note } = props;\n const sgp_samples = note?.data?.sgp_samples;\n\n if (sgp_samples == null || sgp_samples.length === 0) return null;\n\n return h(TruncatedList, {\n className: \"sgp-samples\",\n data: sgp_samples,\n itemRenderer: (p) => h(\"span\", p.data.name),\n });\n}\n"],"names":[],"version":3,"file":"column-views.7243e77d.js.map"}
@@ -1,7 +1,7 @@
1
1
  import "./column-views.16cc7a58.css";
2
2
  import $bBNCV$columnviewsedf77621js from "./column-views.edf77621.js";
3
- import {useSelectedUnit as $61771df184788970$export$f0dd93f90aa8e5da, useUnitSelectionStore as $61771df184788970$export$b220b1d3591dc9e5} from "./column-views.a3fabf0f.js";
4
- import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.8284c3a9.js";
3
+ import {useSelectedUnit as $61771df184788970$export$f0dd93f90aa8e5da, useUnitSelectionStore as $61771df184788970$export$b220b1d3591dc9e5} from "./column-views.c44febd0.js";
4
+ import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.218e8f5d.js";
5
5
  import $bBNCV$macrostrathyper from "@macrostrat/hyper";
6
6
  import {Popover as $bBNCV$Popover} from "@blueprintjs/core";
7
7
 
@@ -68,4 +68,4 @@ function $a9bcb536274d1bf9$export$db1115efab13710d() {
68
68
 
69
69
 
70
70
  export {$a9bcb536274d1bf9$export$6716aecc2c9afbe2 as UnitDetailsPopover, $a9bcb536274d1bf9$export$db1115efab13710d as UnitSelectionPopover};
71
- //# sourceMappingURL=column-views.382c486d.js.map
71
+ //# sourceMappingURL=column-views.729a6728.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;AAMA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAErB,SAAS,0CAAmB,SACjC,KAAK,YACL,QAAQ,mBACR,kBAAkB,IAKnB;IACC,MAAM,UAAU,wBAAE,0CAAoB;IAEtC,OAAO,wBACL,oBACA;eACE;IACF,GACA,wBACE,CAAA,GAAA,cAAM,GACN,aAAa;IACb;iBACE;QACA,QAAQ;QACR,WAAW;QACX,UAAU;QACV,WAAW;YACT,iBAAiB;gBAAE,SAAS;oBAAE,SAAS;gBAAgB;YAAE;QAC3D;IACF,GACA,wBAAE;AAGR;AAEA,SAAS,yCAAmB,YAAE,QAAQ,EAAE;IACtC,OAAO,wBACL,OACA;QACE,SAAQ,CAAC;YACP,yCAAyC;YACzC,EAAE,eAAe;QACnB;IACF,GACA;AAEJ;AAEO,SAAS;IACd,MAAM,OAAO,CAAA,GAAA,yCAAc;IAC3B,MAAM,aAAa,CAAA,GAAA,yCAAoB,EAAE,CAAC,QAAU,MAAM,cAAc;IACxE,MAAM,WAAW,CAAA,GAAA,yCAAoB,EAAE,CAAC,QAAU,MAAM,eAAe;IACvE,IAAI,QAAQ,MACV,OAAO;IAGT,OAAO,wBACL,8BACA,wBACE,2CACA;QACE,OAAO;YACL,UAAU;YACV,KAAK,UAAU,KAAK;YACpB,OAAO,UAAU,SAAS;YAC1B,MAAM,UAAU,KAAK;YACrB,QAAQ,UAAU,UAAU;QAC9B;IACF,GACA,wBAAE,CAAA,GAAA,yCAAe,GAAG;cAClB;QACA,0BAA0B;QAC1B,WAAW;QACX,cAAc,CAAC;YACb,QAAQ,GAAG,CAAC,6BAA6B;YACzC,WAAW,IAAI,MAAM;QACvB;IACF;AAGN","sources":["packages/column-views/src/unit-details/popover.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport { Popover } from \"@blueprintjs/core\";\nimport styles from \"./popover.module.sass\";\nimport { useSelectedUnit, useUnitSelectionStore } from \"../data-provider\";\nimport { UnitDetailsPanel } from \"./panel\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPopover({\n style,\n children,\n viewportPadding = 20,\n}: {\n style: object;\n viewportPadding?: number;\n children: React.ReactNode;\n}) {\n const content = h(InteractionBarrier, children);\n\n return h(\n \"div.popover-main\",\n {\n style,\n },\n h(\n Popover,\n // @ts-ignore\n {\n content,\n isOpen: true,\n usePortal: false,\n position: \"right\",\n modifiers: {\n preventOverflow: { options: { padding: viewportPadding } },\n },\n },\n h(\"span.popover-target\"),\n ),\n );\n}\n\nfunction InteractionBarrier({ children }) {\n return h(\n \"div\",\n {\n onClick(e) {\n // Stop events from leaking to the parent\n e.stopPropagation();\n },\n },\n children,\n );\n}\n\nexport function UnitSelectionPopover() {\n const unit = useSelectedUnit();\n const selectUnit = useUnitSelectionStore((state) => state.onUnitSelected);\n const position = useUnitSelectionStore((state) => state.overlayPosition);\n if (unit == null) {\n return null;\n }\n\n return h(\n \"div.unit-popover-container\",\n h(\n UnitDetailsPopover,\n {\n style: {\n position: \"absolute\",\n top: position?.y ?? 0,\n width: position?.width ?? 100,\n left: position?.x ?? 0,\n height: position?.height ?? 100,\n },\n },\n h(UnitDetailsPanel, {\n unit,\n showLithologyProportions: true,\n className: \"legend-panel\",\n onSelectUnit: (id: number) => {\n console.log(\"Selected unit in popover:\", id);\n selectUnit(id, null, null);\n },\n }),\n ),\n );\n}\n"],"names":[],"version":3,"file":"column-views.382c486d.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;AAMA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAErB,SAAS,0CAAmB,SACjC,KAAK,YACL,QAAQ,mBACR,kBAAkB,IAKnB;IACC,MAAM,UAAU,wBAAE,0CAAoB;IAEtC,OAAO,wBACL,oBACA;eACE;IACF,GACA,wBACE,CAAA,GAAA,cAAM,GACN,aAAa;IACb;iBACE;QACA,QAAQ;QACR,WAAW;QACX,UAAU;QACV,WAAW;YACT,iBAAiB;gBAAE,SAAS;oBAAE,SAAS;gBAAgB;YAAE;QAC3D;IACF,GACA,wBAAE;AAGR;AAEA,SAAS,yCAAmB,YAAE,QAAQ,EAAE;IACtC,OAAO,wBACL,OACA;QACE,SAAQ,CAAC;YACP,yCAAyC;YACzC,EAAE,eAAe;QACnB;IACF,GACA;AAEJ;AAEO,SAAS;IACd,MAAM,OAAO,CAAA,GAAA,yCAAc;IAC3B,MAAM,aAAa,CAAA,GAAA,yCAAoB,EAAE,CAAC,QAAU,MAAM,cAAc;IACxE,MAAM,WAAW,CAAA,GAAA,yCAAoB,EAAE,CAAC,QAAU,MAAM,eAAe;IACvE,IAAI,QAAQ,MACV,OAAO;IAGT,OAAO,wBACL,8BACA,wBACE,2CACA;QACE,OAAO;YACL,UAAU;YACV,KAAK,UAAU,KAAK;YACpB,OAAO,UAAU,SAAS;YAC1B,MAAM,UAAU,KAAK;YACrB,QAAQ,UAAU,UAAU;QAC9B;IACF,GACA,wBAAE,CAAA,GAAA,yCAAe,GAAG;cAClB;QACA,0BAA0B;QAC1B,WAAW;QACX,cAAc,CAAC;YACb,QAAQ,GAAG,CAAC,6BAA6B;YACzC,WAAW,IAAI,MAAM;QACvB;IACF;AAGN","sources":["packages/column-views/src/unit-details/popover.ts"],"sourcesContent":["import hyper from \"@macrostrat/hyper\";\nimport { Popover } from \"@blueprintjs/core\";\nimport styles from \"./popover.module.sass\";\nimport { useSelectedUnit, useUnitSelectionStore } from \"../data-provider\";\nimport { UnitDetailsPanel } from \"./panel\";\n\nconst h = hyper.styled(styles);\n\nexport function UnitDetailsPopover({\n style,\n children,\n viewportPadding = 20,\n}: {\n style: object;\n viewportPadding?: number;\n children: React.ReactNode;\n}) {\n const content = h(InteractionBarrier, children);\n\n return h(\n \"div.popover-main\",\n {\n style,\n },\n h(\n Popover,\n // @ts-ignore\n {\n content,\n isOpen: true,\n usePortal: false,\n position: \"right\",\n modifiers: {\n preventOverflow: { options: { padding: viewportPadding } },\n },\n },\n h(\"span.popover-target\"),\n ),\n );\n}\n\nfunction InteractionBarrier({ children }) {\n return h(\n \"div\",\n {\n onClick(e) {\n // Stop events from leaking to the parent\n e.stopPropagation();\n },\n },\n children,\n );\n}\n\nexport function UnitSelectionPopover() {\n const unit = useSelectedUnit();\n const selectUnit = useUnitSelectionStore((state) => state.onUnitSelected);\n const position = useUnitSelectionStore((state) => state.overlayPosition);\n if (unit == null) {\n return null;\n }\n\n return h(\n \"div.unit-popover-container\",\n h(\n UnitDetailsPopover,\n {\n style: {\n position: \"absolute\",\n top: position?.y ?? 0,\n width: position?.width ?? 100,\n left: position?.x ?? 0,\n height: position?.height ?? 100,\n },\n },\n h(UnitDetailsPanel, {\n unit,\n showLithologyProportions: true,\n className: \"legend-panel\",\n onSelectUnit: (id: number) => {\n console.log(\"Selected unit in popover:\", id);\n selectUnit(id, null, null);\n },\n }),\n ),\n );\n}\n"],"names":[],"version":3,"file":"column-views.729a6728.js.map"}
@@ -1,9 +1,9 @@
1
- import {defaultNameFunction as $bc17276da4abb183$export$c9757aeb43a67df0, UnitNamesColumn as $bc17276da4abb183$export$594d19cdd88f8c16} from "./column-views.e1bc3cfa.js";
2
- import {LabeledUnit as $d254716a820e9c85$export$b4f0ca233b98f9af, UnitBoxes as $d254716a820e9c85$export$5d1cdfabe8dc8085} from "./column-views.81bddbee.js";
1
+ import {defaultNameFunction as $bc17276da4abb183$export$c9757aeb43a67df0, UnitNamesColumn as $bc17276da4abb183$export$594d19cdd88f8c16} from "./column-views.7d69838d.js";
2
+ import {LabeledUnit as $d254716a820e9c85$export$b4f0ca233b98f9af, UnitBoxes as $d254716a820e9c85$export$5d1cdfabe8dc8085} from "./column-views.66ccfc44.js";
3
3
  import "./column-views.3b972a9b.css";
4
4
  import $1PjJ0$columnviews40cd59b5js from "./column-views.40cd59b5.js";
5
- import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4ed90896.js";
6
- import {useUnitSelectionDispatch as $61771df184788970$export$77a278d5ca56e309} from "./column-views.a3fabf0f.js";
5
+ import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.abf6aedd.js";
6
+ import {useUnitSelectionDispatch as $61771df184788970$export$77a278d5ca56e309} from "./column-views.c44febd0.js";
7
7
  import {hyperStyled as $1PjJ0$hyperStyled} from "@macrostrat/hyper";
8
8
  import {LithologyColumn as $1PjJ0$LithologyColumn, SVG as $1PjJ0$SVG, ColumnContext as $1PjJ0$ColumnContext} from "@macrostrat/column-components";
9
9
  import {createContext as $1PjJ0$createContext, useState as $1PjJ0$useState, useRef as $1PjJ0$useRef, useCallback as $1PjJ0$useCallback, useContext as $1PjJ0$useContext, useEffect as $1PjJ0$useEffect} from "react";
@@ -135,4 +135,4 @@ function $8c8238faa5cde49c$export$6cc7a9df4edde18(props) {
135
135
 
136
136
 
137
137
  export {$8c8238faa5cde49c$export$e4e89ab6c86ac513 as LabelTrackerProvider, $8c8238faa5cde49c$export$f613830566442374 as TrackedLabeledUnit, $8c8238faa5cde49c$export$1dfa200d57964eee as CompositeUnitComponent, $8c8238faa5cde49c$export$a6684360fef0406e as CompositeUnitsColumn, $8c8238faa5cde49c$export$d8c3f2fdd653a082 as AnnotatedUnitsColumn, $8c8238faa5cde49c$export$13984e34afdbb040 as SectionLabelsColumn, $8c8238faa5cde49c$export$6cc7a9df4edde18 as ColumnNotesProvider};
138
- //# sourceMappingURL=column-views.7683bb52.js.map
138
+ //# sourceMappingURL=column-views.75e5aebe.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/column-views/src/units/composite.ts"],"sourcesContent":["import { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n SVG,\n ColumnContext,\n} from \"@macrostrat/column-components\";\nimport { defaultNameFunction, UnitNamesColumn } from \"./names\";\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n useEffect,\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 interface CompositeColumnScale {\n (val: number): number;\n copy(): CompositeColumnScale;\n domain(): number[];\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":[],"version":3,"file":"column-views.7683bb52.js.map"}
1
+ {"mappings":"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","sources":["packages/column-views/src/units/composite.ts"],"sourcesContent":["import { hyperStyled } from \"@macrostrat/hyper\";\nimport {\n LithologyColumn,\n SVG,\n ColumnContext,\n} from \"@macrostrat/column-components\";\nimport { defaultNameFunction, UnitNamesColumn } from \"./names\";\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useCallback,\n useEffect,\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 interface CompositeColumnScale {\n (val: number): number;\n copy(): CompositeColumnScale;\n domain(): number[];\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":[],"version":3,"file":"column-views.75e5aebe.js.map"}
@@ -1,7 +1,7 @@
1
1
  import {useDetritalMeasurements as $9f310bd6e88a58bc$export$1b0cf9c36f060135} from "./column-views.05586d1f.js";
2
2
  import $d4hxx$columnviews2c45a7b5js from "./column-views.2c45a7b5.js";
3
3
  import "./column-views.403a7b48.css";
4
- import {BaseMeasurementsColumn as $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d} from "./column-views.faacfc3c.js";
4
+ import {BaseMeasurementsColumn as $c6d9d48b3424a44c$export$ce5c4f2fdf4e644d} from "./column-views.1e579112.js";
5
5
  import {usePlotArea as $d4hxx$usePlotArea, DetritalSpectrumPlot as $d4hxx$DetritalSpectrumPlot, DetritalSeries as $d4hxx$DetritalSeries} from "@macrostrat/data-components";
6
6
  import $d4hxx$macrostrathyper from "@macrostrat/hyper";
7
7
  import {useMemo as $d4hxx$useMemo} from "react";
@@ -92,4 +92,4 @@ function $715dd5fedd79146a$export$1b3047373cd1c8c7(props) {
92
92
 
93
93
 
94
94
  export {$715dd5fedd79146a$export$f176396e104db8d5 as DetritalColumn, $715dd5fedd79146a$export$1b3047373cd1c8c7 as DetritalGroup};
95
- //# sourceMappingURL=column-views.748dce47.js.map
95
+ //# sourceMappingURL=column-views.76a220c4.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;AAaA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAgB5B,MAAM,qCAAe,CAAC,KAAO,CAAC,IAAM,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO;AAE9D,SAAS,0CAAe,YAAE,QAAQ,SAAE,QAAQ,WAAW;IACrD,MAAM,OAAO,CAAA,GAAA,yCAAsB,EAAE;QAAE,QAAQ;IAAS;IAExD,MAAM,QAAQ;IACd,MAAM,cAAc;IAEpB,MAAM,gBAAgB,QAAQ;IAE9B,MAAM,gBAAgB,CAAA,GAAA,cAAM,EAAE;QAC5B,OAAO,CAAC;YACN,OAAO,wBAAE,2CAAe;gBACtB,OAAO;gBACP,QAAQ;uBACR;gBACA,GAAG,KAAK;YACV;QACF;IACF,GAAG;QAAC;QAAO;KAAM;IAEjB,OAAO,wBAAE,CAAA,GAAA,yCAAqB,GAAG;cAC/B;uBACA;QACA,WAAW,CAAC,IAAM,CAAC,CAAC,EAAE,CAAC,OAAO;sBAC9B;IACF;AACF;AAEA,SAAS,sCAAgB,QAAE,IAAI,EAAE;IAC/B,MAAM,UAAE,MAAM,UAAE,MAAM,EAAE,GAAG,CAAA,GAAA,kBAAU;IAErC,MAAM,SAAE,KAAK,SAAE,KAAK,EAAE,GAAG;IACzB,MAAM,IAAI,OAAO;IACjB,MAAM,KAAK,OAAO;IAElB,OAAO,wBAAE,yBAAyB;WAAE;QAAG,OAAO,KAAK;QAAG,GAAG;gBAAG;IAAO;AACrE;AAEA,SAAS,0CAAc,KAAwB;IAC7C,MAAM,QAAE,IAAI,SAAE,KAAK,UAAE,MAAM,SAAE,KAAK,WAAE,OAAO,EAAE,GAAG;IAChD,MAAM,QAAE,IAAI,QAAE,IAAI,EAAE,GAAG;IAEvB,MAAM,SAAS;IAEf,MAAM,aAAa,SAAS,SAAS;IACrC,MAAM,iBAAiB,aAAa;IAEpC,OAAO,wBACL,sBACA;QAAE,WAAW,CAAA,GAAA,iBAAS,EAAE;YAAE,aAAa;QAAe;IAAG,GACzD;QACE,wBACE,CAAA,GAAA,2BAAmB,GACnB;mBAAE;YAAO,aAAa;YAAQ,gBAAgB;YAAM,eAAe;QAAG,GACtE;YACE,wBAAE,EAAE,CAAC,QAAQ,MAAM,uCAAiB;sBAAE;YAAK;YAC3C,KAAK,GAAG,CAAC,CAAC;gBACR,OAAO,wBAAE,CAAA,GAAA,qBAAa,GAAG;oBACvB,WAAW;oBACX,MAAM,EAAE,aAAa;oBACrB,OAAO;gBACT;YACF;SACD;KAEJ;AAEL","sources":["packages/column-views/src/facets/detrital-zircon/index.ts"],"sourcesContent":["import {\n DetritalSpectrumPlot,\n DetritalSeries,\n usePlotArea,\n} from \"@macrostrat/data-components\";\nimport type { IUnit } from \"../../units/types\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useDetritalMeasurements, MeasurementInfo } from \"./provider\";\nimport { useMemo } from \"react\";\nimport styles from \"./index.module.sass\";\nimport classNames from \"classnames\";\nimport { BaseMeasurementsColumn } from \"../base-sample-column\";\n\nconst h = hyper.styled(styles);\n\ninterface DetritalItemProps {\n note: {\n data: MeasurementInfo[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\nconst matchingUnit = (dz) => (d) => d.unit_id == dz[0].unit_id;\n\nfunction DetritalColumn({ columnID, color = \"magenta\" }) {\n const data = useDetritalMeasurements({ col_id: columnID });\n\n const width = 400;\n const paddingLeft = 40;\n\n const spectrumWidth = width - paddingLeft;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(DetritalGroup, {\n width: spectrumWidth,\n height: 40,\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n return h(BaseMeasurementsColumn, {\n data,\n noteComponent,\n getUnitID: (d) => d[0].unit_id,\n matchingUnit,\n });\n}\n\nfunction DepositionalAge({ unit }) {\n const { xScale, height } = usePlotArea();\n\n const { t_age, b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n\n return h(\"rect.depositional-age\", { x, width: x1 - x, y: 0, height });\n}\n\nfunction DetritalGroup(props: DetritalItemProps) {\n const { note, width, height, color, spacing } = props;\n const { data, unit } = note;\n\n const _color = color;\n\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n\n return h(\n \"div.detrital-group\",\n { className: classNames({ \"hide-axis\": hideAxisLabels }) },\n [\n h(\n DetritalSpectrumPlot,\n { width, innerHeight: height, showAxisLabels: true, paddingBottom: 40 },\n [\n h.if(unit != null)(DepositionalAge, { unit }),\n data.map((d) => {\n return h(DetritalSeries, {\n bandwidth: 20,\n data: d.measure_value,\n color: _color,\n });\n }),\n ],\n ),\n ],\n );\n}\n\nexport { DetritalColumn, DetritalGroup };\n"],"names":[],"version":3,"file":"column-views.748dce47.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;AAaA,MAAM,0BAAI,CAAA,GAAA,sBAAI,EAAE,MAAM,CAAC,CAAA,GAAA,uEAAK;AAgB5B,MAAM,qCAAe,CAAC,KAAO,CAAC,IAAM,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO;AAE9D,SAAS,0CAAe,YAAE,QAAQ,SAAE,QAAQ,WAAW;IACrD,MAAM,OAAO,CAAA,GAAA,yCAAsB,EAAE;QAAE,QAAQ;IAAS;IAExD,MAAM,QAAQ;IACd,MAAM,cAAc;IAEpB,MAAM,gBAAgB,QAAQ;IAE9B,MAAM,gBAAgB,CAAA,GAAA,cAAM,EAAE;QAC5B,OAAO,CAAC;YACN,OAAO,wBAAE,2CAAe;gBACtB,OAAO;gBACP,QAAQ;uBACR;gBACA,GAAG,KAAK;YACV;QACF;IACF,GAAG;QAAC;QAAO;KAAM;IAEjB,OAAO,wBAAE,CAAA,GAAA,yCAAqB,GAAG;cAC/B;uBACA;QACA,WAAW,CAAC,IAAM,CAAC,CAAC,EAAE,CAAC,OAAO;sBAC9B;IACF;AACF;AAEA,SAAS,sCAAgB,QAAE,IAAI,EAAE;IAC/B,MAAM,UAAE,MAAM,UAAE,MAAM,EAAE,GAAG,CAAA,GAAA,kBAAU;IAErC,MAAM,SAAE,KAAK,SAAE,KAAK,EAAE,GAAG;IACzB,MAAM,IAAI,OAAO;IACjB,MAAM,KAAK,OAAO;IAElB,OAAO,wBAAE,yBAAyB;WAAE;QAAG,OAAO,KAAK;QAAG,GAAG;gBAAG;IAAO;AACrE;AAEA,SAAS,0CAAc,KAAwB;IAC7C,MAAM,QAAE,IAAI,SAAE,KAAK,UAAE,MAAM,SAAE,KAAK,WAAE,OAAO,EAAE,GAAG;IAChD,MAAM,QAAE,IAAI,QAAE,IAAI,EAAE,GAAG;IAEvB,MAAM,SAAS;IAEf,MAAM,aAAa,SAAS,SAAS;IACrC,MAAM,iBAAiB,aAAa;IAEpC,OAAO,wBACL,sBACA;QAAE,WAAW,CAAA,GAAA,iBAAS,EAAE;YAAE,aAAa;QAAe;IAAG,GACzD;QACE,wBACE,CAAA,GAAA,2BAAmB,GACnB;mBAAE;YAAO,aAAa;YAAQ,gBAAgB;YAAM,eAAe;QAAG,GACtE;YACE,wBAAE,EAAE,CAAC,QAAQ,MAAM,uCAAiB;sBAAE;YAAK;YAC3C,KAAK,GAAG,CAAC,CAAC;gBACR,OAAO,wBAAE,CAAA,GAAA,qBAAa,GAAG;oBACvB,WAAW;oBACX,MAAM,EAAE,aAAa;oBACrB,OAAO;gBACT;YACF;SACD;KAEJ;AAEL","sources":["packages/column-views/src/facets/detrital-zircon/index.ts"],"sourcesContent":["import {\n DetritalSpectrumPlot,\n DetritalSeries,\n usePlotArea,\n} from \"@macrostrat/data-components\";\nimport type { IUnit } from \"../../units/types\";\nimport hyper from \"@macrostrat/hyper\";\nimport { useDetritalMeasurements, MeasurementInfo } from \"./provider\";\nimport { useMemo } from \"react\";\nimport styles from \"./index.module.sass\";\nimport classNames from \"classnames\";\nimport { BaseMeasurementsColumn } from \"../base-sample-column\";\n\nconst h = hyper.styled(styles);\n\ninterface DetritalItemProps {\n note: {\n data: MeasurementInfo[];\n unit?: IUnit;\n };\n spacing?: {\n below?: number;\n above?: number;\n };\n width?: number;\n height?: number;\n color?: string;\n}\n\nconst matchingUnit = (dz) => (d) => d.unit_id == dz[0].unit_id;\n\nfunction DetritalColumn({ columnID, color = \"magenta\" }) {\n const data = useDetritalMeasurements({ col_id: columnID });\n\n const width = 400;\n const paddingLeft = 40;\n\n const spectrumWidth = width - paddingLeft;\n\n const noteComponent = useMemo(() => {\n return (props) => {\n return h(DetritalGroup, {\n width: spectrumWidth,\n height: 40,\n color,\n ...props,\n });\n };\n }, [width, color]);\n\n return h(BaseMeasurementsColumn, {\n data,\n noteComponent,\n getUnitID: (d) => d[0].unit_id,\n matchingUnit,\n });\n}\n\nfunction DepositionalAge({ unit }) {\n const { xScale, height } = usePlotArea();\n\n const { t_age, b_age } = unit;\n const x = xScale(t_age);\n const x1 = xScale(b_age);\n\n return h(\"rect.depositional-age\", { x, width: x1 - x, y: 0, height });\n}\n\nfunction DetritalGroup(props: DetritalItemProps) {\n const { note, width, height, color, spacing } = props;\n const { data, unit } = note;\n\n const _color = color;\n\n const spaceBelow = spacing?.below ?? 100;\n const hideAxisLabels = spaceBelow < 60;\n\n return h(\n \"div.detrital-group\",\n { className: classNames({ \"hide-axis\": hideAxisLabels }) },\n [\n h(\n DetritalSpectrumPlot,\n { width, innerHeight: height, showAxisLabels: true, paddingBottom: 40 },\n [\n h.if(unit != null)(DepositionalAge, { unit }),\n data.map((d) => {\n return h(DetritalSeries, {\n bandwidth: 20,\n data: d.measure_value,\n color: _color,\n });\n }),\n ],\n ),\n ],\n );\n}\n\nexport { DetritalColumn, DetritalGroup };\n"],"names":[],"version":3,"file":"column-views.76a220c4.js.map"}
@@ -1,4 +1,4 @@
1
- import {ColumnNavigationMap as $9d5d216fa2057b5b$export$821baedf611249f3} from "./column-views.2e854496.js";
1
+ import {ColumnNavigationMap as $9d5d216fa2057b5b$export$821baedf611249f3} from "./column-views.11ae78f7.js";
2
2
  import {ResizableMapFrame as $e6046e00d2c8a163$export$c4313db718750a5a, ColumnNavigationSVGMap as $e6046e00d2c8a163$export$9595c40c7a4c4f7b, MeasurementsLayer as $93f116a6493b17c3$export$2254347cd20e6080, ColumnFeatures as $93f116a6493b17c3$export$f177ff57c101017a, ColumnKeyboardNavigation as $93f116a6493b17c3$export$8c41dd563753848, Columns as $93f116a6493b17c3$export$f02cc02ad0e0bba3, ColumnCenters as $93f116a6493b17c3$export$4d8f6e6df85d9012, CurrentColumn as $93f116a6493b17c3$export$b9d912252344e099} from "./column-views.c92a359e.js";
3
3
 
4
4
 
@@ -6,4 +6,4 @@ import {ResizableMapFrame as $e6046e00d2c8a163$export$c4313db718750a5a, ColumnNa
6
6
 
7
7
 
8
8
  export {$9d5d216fa2057b5b$export$821baedf611249f3 as ColumnNavigationMap, $e6046e00d2c8a163$export$c4313db718750a5a as ResizableMapFrame, $e6046e00d2c8a163$export$9595c40c7a4c4f7b as ColumnNavigationSVGMap, $93f116a6493b17c3$export$2254347cd20e6080 as MeasurementsLayer, $93f116a6493b17c3$export$f177ff57c101017a as ColumnFeatures, $93f116a6493b17c3$export$8c41dd563753848 as ColumnKeyboardNavigation, $93f116a6493b17c3$export$f02cc02ad0e0bba3 as Columns, $93f116a6493b17c3$export$4d8f6e6df85d9012 as ColumnCenters, $93f116a6493b17c3$export$b9d912252344e099 as CurrentColumn};
9
- //# sourceMappingURL=column-views.b08d82e6.js.map
9
+ //# sourceMappingURL=column-views.77e22590.js.map
@@ -1 +1 @@
1
- {"mappings":"","sources":["packages/column-views/src/maps/column-navigation/index.ts"],"sourcesContent":["export * from \"./mapbox\";\nexport * from \"./svg\";\n"],"names":[],"version":3,"file":"column-views.b08d82e6.js.map"}
1
+ {"mappings":"","sources":["packages/column-views/src/maps/column-navigation/index.ts"],"sourcesContent":["export * from \"./mapbox\";\nexport * from \"./svg\";\n"],"names":[],"version":3,"file":"column-views.77e22590.js.map"}
@@ -1,9 +1,9 @@
1
- import {CompositeUnitsColumn as $8c8238faa5cde49c$export$a6684360fef0406e, LabelTrackerProvider as $8c8238faa5cde49c$export$e4e89ab6c86ac513, SectionLabelsColumn as $8c8238faa5cde49c$export$13984e34afdbb040} from "./column-views.7683bb52.js";
1
+ import {CompositeUnitsColumn as $8c8238faa5cde49c$export$a6684360fef0406e, LabelTrackerProvider as $8c8238faa5cde49c$export$e4e89ab6c86ac513, SectionLabelsColumn as $8c8238faa5cde49c$export$13984e34afdbb040} from "./column-views.75e5aebe.js";
2
2
  import $7zu8d$columnviewscc733361js from "./column-views.cc733361.js";
3
- import "./column-views.e33ac5c9.css";
4
- import {MacrostratColumnProvider as $774a5efa27d1c77b$export$9e42f9b6e0d67c7d, useMacrostratBaseURL as $774a5efa27d1c77b$export$33b1392d23dde04} from "./column-views.2eceafb5.js";
5
- import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.4ed90896.js";
6
- import {Duration as $448b24baeef3b229$export$3b11bc38611c5941} from "./column-views.8284c3a9.js";
3
+ import "./column-views.e93478c3.css";
4
+ import {MacrostratColumnProvider as $774a5efa27d1c77b$export$9e42f9b6e0d67c7d, useMacrostratBaseURL as $774a5efa27d1c77b$export$33b1392d23dde04} from "./column-views.ef88c46c.js";
5
+ import {useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d, useMacrostratUnits as $d5074f164411387e$export$6fb40844db555b2} from "./column-views.abf6aedd.js";
6
+ import {Duration as $448b24baeef3b229$export$3b11bc38611c5941} from "./column-views.218e8f5d.js";
7
7
  import {useMemo as $7zu8d$useMemo} from "react";
8
8
  import {useMacrostratIntervals as $7zu8d$useMacrostratIntervals, Timescale as $7zu8d$Timescale, TimescaleOrientation as $7zu8d$TimescaleOrientation} from "@macrostrat/timescale";
9
9
  import {SVG as $7zu8d$SVG, ColumnAxisType as $7zu8d$ColumnAxisType} from "@macrostrat/column-components";
@@ -28,7 +28,7 @@ function $7d0f52717c0de7e1$export$38cb0ab5af8f50d7(props) {
28
28
  const { unconformityLabels: unconformityLabels = true, unitComponent: unitComponent, unitComponentProps: unitComponentProps, showLabels: showLabels = true, width: width = 300, columnWidth: columnWidth = 150, showLabelColumn: showLabelColumn = true, clipUnits: clipUnits = true, maxInternalColumns: maxInternalColumns } = props;
29
29
  const units = (0, $d5074f164411387e$export$6fb40844db555b2)();
30
30
  // Get a unique key for the column
31
- const key = units[0]?.unit_id;
31
+ const key = units[0]?.col_id;
32
32
  return $7d0f52717c0de7e1$var$h((0, $8c8238faa5cde49c$export$e4e89ab6c86ac513), {
33
33
  units: units,
34
34
  key: key
@@ -205,22 +205,27 @@ function $7d0f52717c0de7e1$export$e12e53eeee198b99(props) {
205
205
  function $7d0f52717c0de7e1$var$Unconformity({ upperAge: upperAge, lowerAge: lowerAge, style: style, axisType: axisType, verbose: verbose = false }) {
206
206
  if (upperAge == null || lowerAge == null) return null;
207
207
  const ageGap = Math.abs(upperAge - lowerAge);
208
+ let maximumFractionDigits = 0;
208
209
  let className = null;
209
210
  if (ageGap > 1000) className = "giga";
210
211
  else if (ageGap > 100) className = "mega";
211
212
  else if (ageGap > 10) className = "large";
212
- else if (ageGap < 1) className = "small";
213
+ else if (ageGap < 1) {
214
+ className = "small";
215
+ maximumFractionDigits = 2;
216
+ } else maximumFractionDigits = 1;
213
217
  let val;
214
218
  if (axisType === (0, $7zu8d$ColumnAxisType).DEPTH || axisType === (0, $7zu8d$ColumnAxisType).HEIGHT) {
215
219
  const _txt = ageGap.toLocaleString("en-US", {
216
- maximumFractionDigits: 2
220
+ maximumFractionDigits: maximumFractionDigits
217
221
  });
218
222
  val = $7d0f52717c0de7e1$var$h((0, $7zu8d$Value), {
219
223
  value: _txt,
220
224
  unit: "m"
221
225
  });
222
226
  } else val = $7d0f52717c0de7e1$var$h((0, $448b24baeef3b229$export$3b11bc38611c5941), {
223
- value: ageGap
227
+ value: ageGap,
228
+ maximumFractionDigits: maximumFractionDigits
224
229
  });
225
230
  let prefix = null;
226
231
  if (verbose) prefix = $7d0f52717c0de7e1$var$h([
@@ -240,4 +245,4 @@ function $7d0f52717c0de7e1$var$Unconformity({ upperAge: upperAge, lowerAge: lowe
240
245
 
241
246
 
242
247
  export {$7d0f52717c0de7e1$export$38cb0ab5af8f50d7 as SectionsColumn, $7d0f52717c0de7e1$export$e12e53eeee198b99 as UnconformityLabels, $7d0f52717c0de7e1$export$db2df5a73a6fbe10 as CompositeTimescale, $7d0f52717c0de7e1$export$463f46772c64d403 as CompositeTimescaleCore};
243
- //# sourceMappingURL=column-views.0265cf7f.js.map
248
+ //# sourceMappingURL=column-views.7b4a1f15.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/column-views/src/section.ts"],"sourcesContent":["import {\n CompositeUnitsColumn,\n LabelTrackerProvider,\n SectionLabelsColumn,\n} from \"./units\";\nimport { ReactNode, FunctionComponent, useMemo } from \"react\";\nimport {\n Timescale,\n TimescaleOrientation,\n useMacrostratIntervals,\n} from \"@macrostrat/timescale\";\nimport { ColumnAxisType, SVG } from \"@macrostrat/column-components\";\nimport hyper from \"@macrostrat/hyper\";\nimport styles from \"./column.module.sass\";\nimport {\n useMacrostratColumnData,\n useMacrostratUnits,\n MacrostratColumnProvider,\n useMacrostratBaseURL,\n} from \"./data-provider\";\nimport { Duration } from \"./unit-details\";\nimport { Value } from \"@macrostrat/data-components\";\nimport type { ExtUnit, PackageScaleLayoutData } from \"./prepare-units/types\";\n\nconst h = hyper.styled(styles);\n\nexport interface SectionSharedProps {\n unitComponent?: FunctionComponent<any>;\n unitComponentProps?: any;\n showLabels?: boolean;\n width?: number;\n columnWidth?: number;\n children?: ReactNode;\n showLabelColumn?: boolean;\n axisType?: ColumnAxisType;\n className?: string;\n clipUnits?: boolean;\n maxInternalColumns?: number;\n // Space between sections\n verticalSpacing?: number;\n // Whether to render unconformity labels\n unconformityLabels?: boolean;\n}\n\nexport interface SectionProps extends SectionSharedProps {\n units: ExtUnit[];\n scaleInfo: PackageScaleLayoutData;\n}\n\nexport function SectionsColumn(props: SectionSharedProps) {\n const {\n unconformityLabels = true,\n unitComponent,\n unitComponentProps,\n showLabels = true,\n width = 300,\n columnWidth = 150,\n showLabelColumn = true,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const units = useMacrostratUnits();\n\n // Get a unique key for the column\n const key = units[0]?.col_id;\n\n return h(LabelTrackerProvider, { units, key }, [\n h(SectionUnitsColumn, {\n width: columnWidth,\n unitComponent,\n unitComponentProps,\n showLabels,\n clipUnits,\n maxInternalColumns,\n unconformityLabels,\n }),\n h.if(showLabelColumn)(SectionLabelsColumn, {\n width: width - columnWidth,\n }),\n ]);\n}\n\nfunction SectionUnitsColumn(props: SectionSharedProps) {\n const {\n width,\n showLabels,\n unitComponent,\n unitComponentProps,\n clipUnits,\n maxInternalColumns,\n axisType,\n unconformityLabels = true,\n } = props;\n\n const { sections, totalHeight } = useMacrostratColumnData();\n\n const scaleData: PackageScaleLayoutData[] = sections.map((section) => {\n return section.scaleInfo;\n });\n\n const innerWidth = width - 2;\n\n return h(\"div.section-units-container\", { style: { width } }, [\n h(\n SVG,\n {\n className: \"sections\",\n height: totalHeight,\n innerWidth,\n paddingH: 1,\n },\n sections.map((group) => {\n const { units, scaleInfo, section_id } = group;\n\n const key = `section-${section_id}`;\n return h(\n SectionUnits,\n {\n units,\n scaleInfo,\n key,\n unitComponent,\n unitComponentProps,\n showLabels,\n width: innerWidth,\n clipUnits,\n maxInternalColumns,\n }, // This unconformity is with the section _above_\n );\n }),\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width,\n sections: scaleData,\n verbose: false,\n }),\n ]);\n}\n\nfunction SectionUnits(props: SectionProps) {\n // Section with \"squishy\" timescale\n const {\n units,\n scaleInfo,\n unitComponent,\n showLabels = true,\n width = 300,\n unitComponentProps,\n className,\n clipUnits = true,\n maxInternalColumns,\n } = props;\n\n const { domain, pixelScale, pixelHeight, scale } = scaleInfo;\n\n /** Ensure that we can arrange units into the maximum number\n * of columns defined by unitComponentProps, but that we don't\n * use more than necessary.\n */\n const _unitComponentProps = useMemo(() => {\n return {\n ...unitComponentProps,\n nColumns: Math.min(\n maxInternalColumns ?? Math.floor(width / 10),\n unitComponentProps?.nColumns ?? Infinity,\n Math.max(...units.map((d) => d.column)) + 1,\n ),\n //axisType,\n };\n }, [units, unitComponentProps, maxInternalColumns, width]);\n\n const style = {\n \"--section-height\": `${pixelHeight}px`,\n \"--section-width\": `${width}px`,\n };\n\n return h(\n \"g.section\",\n { className, style, transform: `translate(0 ${scaleInfo.offset})` },\n h(\n MacrostratColumnProvider,\n {\n units,\n domain,\n pixelScale, // Actually pixels per myr,\n scale,\n },\n h(CompositeUnitsColumn, {\n width,\n showLabels,\n unitComponent,\n unitComponentProps: _unitComponentProps,\n clipToFrame: clipUnits,\n }),\n ),\n );\n}\n\ninterface CompositeTimescaleProps {\n levels?: [number, number] | number;\n unconformityLabels?: boolean;\n}\n\nexport function CompositeTimescale(props: CompositeTimescaleProps) {\n const { sections } = useMacrostratColumnData();\n const sectionScales = sections.map((section) => {\n return section.scaleInfo;\n });\n\n return h(CompositeTimescaleCore, {\n packages: sectionScales,\n ...props,\n });\n}\n\ntype CompositeTimescaleCoreProps = CompositeTimescaleProps & {\n packages: PackageScaleLayoutData[];\n};\n\nexport function CompositeTimescaleCore(props: CompositeTimescaleCoreProps) {\n const { levels = 3, packages, unconformityLabels = false } = props;\n\n // Use intervals from Macrostrat API\n const baseURL = useMacrostratBaseURL();\n const intervals = useMacrostratIntervals(baseURL);\n\n let _levels: [number, number];\n if (typeof levels === \"number\") {\n // If levels is a number, use the most common starting level\n _levels = [2, Math.max(2 + Math.min(levels, 5) - 1, 1)];\n } else {\n _levels = levels;\n }\n\n const nCols = _levels[1] - _levels[0] + 1;\n\n return h(\"div.timescale-column\", [\n h(\n \"div.timescales\",\n packages.map((group) => {\n const { pixelHeight, paddingTop, key, scale } = group;\n return h(\n \"div.timescale-container\",\n { style: { paddingTop, \"--timescale-level-count\": nCols }, key },\n [\n h(Timescale, {\n orientation: TimescaleOrientation.VERTICAL,\n length: pixelHeight,\n levels: _levels,\n absoluteAgeScale: true,\n showAgeAxis: false,\n scale,\n intervals,\n }),\n ],\n );\n }),\n ),\n h.if(unconformityLabels)(UnconformityLabels, {\n width: \"100%\",\n sections: packages,\n className: \"unconformity-labels\",\n axisType: ColumnAxisType.AGE,\n }),\n ]);\n}\n\nexport function UnconformityLabels(props: {\n width: string | number;\n sections: PackageScaleLayoutData[];\n axisType?: ColumnAxisType;\n className?: string;\n verbose?: boolean;\n}) {\n const { width, sections, className, axisType, verbose } = props;\n\n return h(\n \"div.unconformity-labels\",\n {\n style: {\n width,\n },\n className,\n },\n sections.map((scaleInfo, i) => {\n const lastGroup = sections[i - 1];\n const top = scaleInfo.offset - scaleInfo.paddingTop;\n const upperAge = lastGroup?.domain[0];\n const lowerAge = scaleInfo.domain[1];\n return h(Unconformity, {\n axisType,\n upperAge,\n lowerAge,\n style: {\n width,\n height: scaleInfo.paddingTop,\n top,\n },\n verbose,\n });\n }),\n );\n}\n\nfunction Unconformity({\n upperAge,\n lowerAge,\n style,\n axisType,\n verbose = false,\n}) {\n if (upperAge == null || lowerAge == null) {\n return null;\n }\n\n const ageGap = Math.abs(upperAge - lowerAge);\n\n let maximumFractionDigits = 0;\n\n let className: string = null;\n if (ageGap > 1000) {\n className = \"giga\";\n } else if (ageGap > 100) {\n className = \"mega\";\n } else if (ageGap > 10) {\n className = \"large\";\n } else if (ageGap < 1) {\n className = \"small\";\n maximumFractionDigits = 2;\n } else {\n maximumFractionDigits = 1;\n }\n\n let val: ReactNode;\n if (axisType === ColumnAxisType.DEPTH || axisType === ColumnAxisType.HEIGHT) {\n const _txt = ageGap.toLocaleString(\"en-US\", { maximumFractionDigits });\n val = h(Value, { value: _txt, unit: \"m\" });\n } else {\n val = h(Duration, { value: ageGap, maximumFractionDigits });\n }\n\n let prefix: ReactNode = null;\n if (verbose) {\n prefix = h([\" \", h(\"span.prefix\", \" gap\")]);\n }\n\n return h(\"div.unconformity\", { style, className }, [\n h(\"div.unconformity-inner\", h(\"div.unconformity-text\", [val, prefix])),\n ]);\n}\n"],"names":[],"version":3,"file":"column-views.7b4a1f15.js.map"}
@@ -1,4 +1,4 @@
1
- import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.8284c3a9.js";
1
+ import {UnitDetailsPanel as $448b24baeef3b229$export$fbd245232df17557} from "./column-views.218e8f5d.js";
2
2
  import {Button as $fodo6$Button} from "@blueprintjs/core";
3
3
  import {useKeyHandler as $fodo6$useKeyHandler} from "@macrostrat/ui-components";
4
4
  import $fodo6$macrostrathyper from "@macrostrat/hyper";
@@ -57,4 +57,4 @@ function $d418ca9cbe9b0f3c$export$cfdbe8496aa51962(props) {
57
57
 
58
58
 
59
59
  export {$d418ca9cbe9b0f3c$export$cfdbe8496aa51962 as UnitDetailsPanelWithNavigation};
60
- //# sourceMappingURL=column-views.d86555b0.js.map
60
+ //# sourceMappingURL=column-views.7c95c3d7.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;AAKO,SAAS,0CAA+B,KAAK;IAClD,MAAM,YAAE,QAAQ,aAAE,SAAS,gBAAE,YAAY,gBAAE,YAAY,YAAE,QAAQ,EAAE,GAAG,MAAM,GAC1E;IAEF,MAAM,KAAK,UAAU,UACnB,CAAC,OAAS,KAAK,OAAO,KAAK,cAAc;IAG3C,MAAM,SAAS;QACb,IAAI,KAAK;QACT,IAAI,KAAK;IACX;IAEA,CAAA,GAAA,oBAAY,EACV,CAAC;QACC,MAAM,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,SAAS,MAAM,EAAE;QAC/D,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO;QACrC,MAAM,eAAe;IACvB,GACA;QAAC;QAAU;KAAG;IAGhB,IAAI,gBAAgB,MAAM,OAAO;IAEjC,MAAM,UAAU,CAAA,GAAA,sBAAA,EAAE;QAChB,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO;YACjB;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO,SAAS,MAAM,GAAG;YACnC;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;KACD;IAED,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAe,GAAG;QACzB,MAAM;QACN,SAAQ,KAAK;YACX,aAAa;QACf;mBACA;iBACA;QACA,0BAA0B;QAC1B,YAAY;QACZ,aAAa;kBACb;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/unit-details/modal-panel.ts"],"sourcesContent":["import { Button } from \"@blueprintjs/core\";\nimport { UnitDetailsPanel } from \"./panel\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nexport function UnitDetailsPanelWithNavigation(props) {\n const { unitData, className, selectedUnit, onSelectUnit, features, ...rest } =\n props;\n\n const ix = unitData?.findIndex(\n (unit) => unit.unit_id === selectedUnit?.unit_id,\n );\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= unitData.length) return;\n onSelectUnit(unitData[nextIx].unit_id);\n event.stopPropagation();\n },\n [unitData, ix],\n );\n\n if (selectedUnit == null) return null;\n\n const actions = h([\n h(Button, {\n icon: \"arrow-up\",\n disabled: ix === 0,\n onClick() {\n onSelectUnit(unitData[ix - 1]?.unit_id);\n },\n }),\n h(Button, {\n icon: \"arrow-down\",\n disabled: ix === unitData.length - 1,\n onClick() {\n onSelectUnit(unitData[ix + 1]?.unit_id);\n },\n }),\n ]);\n\n return h(UnitDetailsPanel, {\n unit: selectedUnit,\n onClose(event) {\n onSelectUnit(null);\n },\n className,\n actions,\n showLithologyProportions: true,\n selectUnit: onSelectUnit,\n columnUnits: unitData,\n features,\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.d86555b0.js.map"}
1
+ {"mappings":";;;;;;;;;AAKO,SAAS,0CAA+B,KAAK;IAClD,MAAM,YAAE,QAAQ,aAAE,SAAS,gBAAE,YAAY,gBAAE,YAAY,YAAE,QAAQ,EAAE,GAAG,MAAM,GAC1E;IAEF,MAAM,KAAK,UAAU,UACnB,CAAC,OAAS,KAAK,OAAO,KAAK,cAAc;IAG3C,MAAM,SAAS;QACb,IAAI,KAAK;QACT,IAAI,KAAK;IACX;IAEA,CAAA,GAAA,oBAAY,EACV,CAAC;QACC,MAAM,SAAS,MAAM,CAAC,MAAM,OAAO,CAAC;QACpC,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,SAAS,MAAM,EAAE;QAC/D,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO;QACrC,MAAM,eAAe;IACvB,GACA;QAAC;QAAU;KAAG;IAGhB,IAAI,gBAAgB,MAAM,OAAO;IAEjC,MAAM,UAAU,CAAA,GAAA,sBAAA,EAAE;QAChB,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO;YACjB;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;QACA,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,aAAK,GAAG;YACR,MAAM;YACN,UAAU,OAAO,SAAS,MAAM,GAAG;YACnC;gBACE,aAAa,QAAQ,CAAC,KAAK,EAAE,EAAE;YACjC;QACF;KACD;IAED,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,yCAAe,GAAG;QACzB,MAAM;QACN,SAAQ,KAAK;YACX,aAAa;QACf;mBACA;iBACA;QACA,0BAA0B;QAC1B,YAAY;QACZ,aAAa;kBACb;QACA,GAAG,IAAI;IACT;AACF","sources":["packages/column-views/src/unit-details/modal-panel.ts"],"sourcesContent":["import { Button } from \"@blueprintjs/core\";\nimport { UnitDetailsPanel } from \"./panel\";\nimport { useKeyHandler } from \"@macrostrat/ui-components\";\nimport h from \"@macrostrat/hyper\";\n\nexport function UnitDetailsPanelWithNavigation(props) {\n const { unitData, className, selectedUnit, onSelectUnit, features, ...rest } =\n props;\n\n const ix = unitData?.findIndex(\n (unit) => unit.unit_id === selectedUnit?.unit_id,\n );\n\n const keyMap = {\n 38: ix - 1,\n 40: ix + 1,\n };\n\n useKeyHandler(\n (event) => {\n const nextIx = keyMap[event.keyCode];\n if (nextIx == null || nextIx < 0 || nextIx >= unitData.length) return;\n onSelectUnit(unitData[nextIx].unit_id);\n event.stopPropagation();\n },\n [unitData, ix],\n );\n\n if (selectedUnit == null) return null;\n\n const actions = h([\n h(Button, {\n icon: \"arrow-up\",\n disabled: ix === 0,\n onClick() {\n onSelectUnit(unitData[ix - 1]?.unit_id);\n },\n }),\n h(Button, {\n icon: \"arrow-down\",\n disabled: ix === unitData.length - 1,\n onClick() {\n onSelectUnit(unitData[ix + 1]?.unit_id);\n },\n }),\n ]);\n\n return h(UnitDetailsPanel, {\n unit: selectedUnit,\n onClose(event) {\n onSelectUnit(null);\n },\n className,\n actions,\n showLithologyProportions: true,\n selectUnit: onSelectUnit,\n columnUnits: unitData,\n features,\n ...rest,\n });\n}\n"],"names":[],"version":3,"file":"column-views.7c95c3d7.js.map"}
@@ -1,5 +1,5 @@
1
1
  import {getUnitHeightRange as $b6657fba8924a702$export$70e712e2ac0237a} from "./column-views.54f8b909.js";
2
- import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.4ed90896.js";
2
+ import {useCompositeScale as $d5074f164411387e$export$a7fc62995ec4f76, useMacrostratColumnData as $d5074f164411387e$export$f8509b7cce386c7d} from "./column-views.abf6aedd.js";
3
3
  import $5ZBll$macrostrathyper from "@macrostrat/hyper";
4
4
  import $5ZBll$react, {useCallback as $5ZBll$useCallback, useMemo as $5ZBll$useMemo} from "react";
5
5
  import {NotesColumn as $5ZBll$NotesColumn} from "@macrostrat/column-components";
@@ -66,4 +66,4 @@ function $bc17276da4abb183$export$594d19cdd88f8c16(props) {
66
66
 
67
67
 
68
68
  export {$bc17276da4abb183$export$2f2e65a797f8fc1e as noteForDivision, $bc17276da4abb183$export$c9757aeb43a67df0 as defaultNameFunction, $bc17276da4abb183$export$6316e673796ccb55 as UnitDataColumn, $bc17276da4abb183$export$594d19cdd88f8c16 as UnitNamesColumn};
69
- //# sourceMappingURL=column-views.e1bc3cfa.js.map
69
+ //# sourceMappingURL=column-views.7d69838d.js.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;AA+BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,OAAO;gBACL;oBACA;QACA,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,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAClD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAC9B,MAAM,QACJ,OAAO,kBACP,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,OACZ,GAAG,MACJ,GAAG;IAEJ,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;sBAAE;QAAS,IAChD,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAS3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,uBAAuB,CAAA,GAAA,cAAM,EACjC,IAAM,CAAC;YACL,MAAM,QAAE,IAAI,EAAE,GAAG;YACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;QACxD,GACA;QAAC;KAAgB;IAGnB,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 { useCallback, useMemo } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit } from \"./types\";\nimport React from \"react\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { CompositeColumnScale } from \"./composite\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\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 scale?: CompositeColumnScale;\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 [height, top_height] = getUnitHeightRange(div, axisType);\n\n return {\n height,\n top_height,\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 { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\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 }))\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\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const defaultNoteComponent = useMemo(\n () => (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n },\n [nameForDivision],\n );\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? defaultNoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"column-views.e1bc3cfa.js.map"}
1
+ {"mappings":";;;;;;;;;;;AA+BA,SAAS,0CACP,GAAU,EACV,IAAkC;IAElC,MAAM,YAAE,QAAQ,EAAE,GAAG;IAErB,MAAM,CAAC,QAAQ,WAAW,GAAG,CAAA,GAAA,wCAAiB,EAAE,KAAK;IAErD,OAAO;gBACL;oBACA;QACA,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,YAAE,QAAQ,SAAE,KAAK,EAAE,GAAG,CAAA,GAAA,yCAAsB;IAClD,MAAM,QAAQ,CAAA,GAAA,wCAAgB;IAC9B,MAAM,QACJ,OAAO,kBACP,aAAa,oBACb,mBAAmB,CAAC,MAA8B,IAAc,qBAChE,gBAAgB,cAChB,YAAY,OACZ,GAAG,MACJ,GAAG;IAEJ,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;sBAAE;QAAS,IAChD,MAAM,CAAC;IAEV,OAAO,CAAA,GAAA,sBAAA,EAAE,CAAA,GAAA,kBAAU,GAAG;QACpB,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,UAAU;uBACV;eACA;QACA,cAAc;YACZ,aAAa;QACf;QACA,GAAG,IAAI;IACT;AACF;AAEA,MAAM,4CAAiB,CAAA,GAAA,YAAI,EAAE,IAAI,CAAC;AAS3B,SAAS,0CAAgB,KAAqB;IACnD,MAAM,mBACJ,kBAAkB,0DAClB,aAAa,EACb,GAAG,MACJ,GAAG;IAEJ,MAAM,uBAAuB,CAAA,GAAA,cAAM,EACjC,IAAM,CAAC;YACL,MAAM,QAAE,IAAI,EAAE,GAAG;YACjB,OAAO,CAAA,GAAA,sBAAA,EAAE,oBAAoB,gBAAgB,KAAK,IAAI;QACxD,GACA;QAAC;KAAgB;IAGnB,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 { useCallback, useMemo } from \"react\";\nimport {\n ColumnAxisType,\n NotesColumn,\n NotesColumnProps,\n} from \"@macrostrat/column-components\";\nimport type { ColumnDivision } from \"@macrostrat/column-components\";\nimport { IUnit } from \"./types\";\nimport React from \"react\";\nimport { getUnitHeightRange } from \"../prepare-units/utils\";\nimport { CompositeColumnScale } from \"./composite\";\nimport { useCompositeScale, useMacrostratColumnData } from \"../data-provider\";\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 scale?: CompositeColumnScale;\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 [height, top_height] = getUnitHeightRange(div, axisType);\n\n return {\n height,\n top_height,\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 { axisType, units } = useMacrostratColumnData();\n const scale = useCompositeScale();\n const {\n left = 0,\n noteComponent,\n shouldRenderNote = (note: ColumnDivision | IUnit, i: number) => true,\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 }))\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\ninterface UnitNamesProps extends UnitDataProps {\n nameForDivision?(obj: IUnit): string;\n paddingLeft?: number;\n width: number;\n onClickNote?: (note: any) => void;\n}\n\nexport function UnitNamesColumn(props: UnitNamesProps) {\n const {\n nameForDivision = defaultNameFunction,\n noteComponent,\n ...rest\n } = props;\n\n const defaultNoteComponent = useMemo(\n () => (props) => {\n const { note } = props;\n return h(\"p.col-note-label\", nameForDivision(note.data));\n },\n [nameForDivision],\n );\n\n return h(UnitDataColumn, {\n noteComponent: noteComponent ?? defaultNoteComponent,\n ...rest,\n });\n}\n\nexport type { UnitNamesProps };\nexport { defaultNameFunction, noteForDivision, UnitDataColumn };\n"],"names":[],"version":3,"file":"column-views.7d69838d.js.map"}
@@ -1,5 +1,5 @@
1
- import {ColumnNavigationMap as $9d5d216fa2057b5b$export$821baedf611249f3, ResizableMapFrame as $e6046e00d2c8a163$export$c4313db718750a5a, ColumnNavigationSVGMap as $e6046e00d2c8a163$export$9595c40c7a4c4f7b, MeasurementsLayer as $93f116a6493b17c3$export$2254347cd20e6080, ColumnFeatures as $93f116a6493b17c3$export$f177ff57c101017a, ColumnKeyboardNavigation as $93f116a6493b17c3$export$8c41dd563753848, Columns as $93f116a6493b17c3$export$f02cc02ad0e0bba3, ColumnCenters as $93f116a6493b17c3$export$4d8f6e6df85d9012, CurrentColumn as $93f116a6493b17c3$export$b9d912252344e099} from "./column-views.b08d82e6.js";
2
- import {ColumnCorrelationMap as $dcd183b733f66144$export$8e7d97509e84cc49, ColumnCorrelationProvider as $74e211dc185c20b4$export$72ffe141ebf87ef1, useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-views.469a4952.js";
1
+ import {ColumnNavigationMap as $9d5d216fa2057b5b$export$821baedf611249f3, ResizableMapFrame as $e6046e00d2c8a163$export$c4313db718750a5a, ColumnNavigationSVGMap as $e6046e00d2c8a163$export$9595c40c7a4c4f7b, MeasurementsLayer as $93f116a6493b17c3$export$2254347cd20e6080, ColumnFeatures as $93f116a6493b17c3$export$f177ff57c101017a, ColumnKeyboardNavigation as $93f116a6493b17c3$export$8c41dd563753848, Columns as $93f116a6493b17c3$export$f02cc02ad0e0bba3, ColumnCenters as $93f116a6493b17c3$export$4d8f6e6df85d9012, CurrentColumn as $93f116a6493b17c3$export$b9d912252344e099} from "./column-views.77e22590.js";
2
+ import {ColumnCorrelationMap as $dcd183b733f66144$export$8e7d97509e84cc49, ColumnCorrelationProvider as $74e211dc185c20b4$export$72ffe141ebf87ef1, useCorrelationMapStore as $74e211dc185c20b4$export$21398703d3a9bb4d} from "./column-views.6ce8cb61.js";
3
3
  import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0, buildColumnsStyle as $1dbfddc9637b572c$export$d2995719c3a4ae17} from "./column-views.a94e99a2.js";
4
4
 
5
5
 
@@ -8,4 +8,4 @@ import {InsetMap as $5593f90ffec284da$export$1e8149fc0d15fed0, buildColumnsStyle
8
8
 
9
9
 
10
10
  export {$9d5d216fa2057b5b$export$821baedf611249f3 as ColumnNavigationMap, $e6046e00d2c8a163$export$c4313db718750a5a as ResizableMapFrame, $e6046e00d2c8a163$export$9595c40c7a4c4f7b as ColumnNavigationSVGMap, $93f116a6493b17c3$export$2254347cd20e6080 as MeasurementsLayer, $93f116a6493b17c3$export$f177ff57c101017a as ColumnFeatures, $93f116a6493b17c3$export$8c41dd563753848 as ColumnKeyboardNavigation, $93f116a6493b17c3$export$f02cc02ad0e0bba3 as Columns, $93f116a6493b17c3$export$4d8f6e6df85d9012 as ColumnCenters, $93f116a6493b17c3$export$b9d912252344e099 as CurrentColumn, $dcd183b733f66144$export$8e7d97509e84cc49 as ColumnCorrelationMap, $74e211dc185c20b4$export$72ffe141ebf87ef1 as ColumnCorrelationProvider, $74e211dc185c20b4$export$21398703d3a9bb4d as useCorrelationMapStore, $5593f90ffec284da$export$1e8149fc0d15fed0 as InsetMap, $1dbfddc9637b572c$export$d2995719c3a4ae17 as buildColumnsStyle};
11
- //# sourceMappingURL=column-views.cae1a6a1.js.map
11
+ //# sourceMappingURL=column-views.7faf00ed.js.map
@@ -1 +1 @@
1
- {"mappings":"","sources":["packages/column-views/src/maps/index.ts"],"sourcesContent":["export * from \"./column-navigation\";\nexport * from \"./column-correlation\";\nexport * from \"./_shared\";\n"],"names":[],"version":3,"file":"column-views.cae1a6a1.js.map"}
1
+ {"mappings":"","sources":["packages/column-views/src/maps/index.ts"],"sourcesContent":["export * from \"./column-navigation\";\nexport * from \"./column-correlation\";\nexport * from \"./_shared\";\n"],"names":[],"version":3,"file":"column-views.7faf00ed.js.map"}