react-cheminfo 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/README.md +13 -3
  2. package/lib/overlay/core/index.d.ts +2 -2
  3. package/lib/overlay/core/index.d.ts.map +1 -1
  4. package/lib/overlay/core/index.js +1 -1
  5. package/lib/overlay/core/index.js.map +1 -1
  6. package/lib/overlay/core/overlayMarks.d.ts +20 -5
  7. package/lib/overlay/core/overlayMarks.d.ts.map +1 -1
  8. package/lib/overlay/core/overlayMarks.js +31 -5
  9. package/lib/overlay/core/overlayMarks.js.map +1 -1
  10. package/lib/overlay/ui/OverlayLegendMark.js +5 -0
  11. package/lib/overlay/ui/OverlayLegendMark.js.map +1 -1
  12. package/lib/projection/core/index.d.ts +4 -4
  13. package/lib/projection/core/index.d.ts.map +1 -1
  14. package/lib/projection/core/index.js +2 -2
  15. package/lib/projection/core/index.js.map +1 -1
  16. package/lib/projection/core/projectionCopy.d.ts +2 -0
  17. package/lib/projection/core/projectionCopy.d.ts.map +1 -1
  18. package/lib/projection/core/projectionCopy.js +1 -0
  19. package/lib/projection/core/projectionCopy.js.map +1 -1
  20. package/lib/projection/core/projectionGroupings.d.ts +44 -0
  21. package/lib/projection/core/projectionGroupings.d.ts.map +1 -0
  22. package/lib/projection/core/projectionGroupings.js +132 -0
  23. package/lib/projection/core/projectionGroupings.js.map +1 -0
  24. package/lib/projection/core/projectionOptions.d.ts +16 -6
  25. package/lib/projection/core/projectionOptions.d.ts.map +1 -1
  26. package/lib/projection/core/projectionOptions.js +7 -1
  27. package/lib/projection/core/projectionOptions.js.map +1 -1
  28. package/lib/projection/core/projectionPanelWords.d.ts +6 -0
  29. package/lib/projection/core/projectionPanelWords.d.ts.map +1 -1
  30. package/lib/projection/core/projectionPanelWords.js +4 -0
  31. package/lib/projection/core/projectionPanelWords.js.map +1 -1
  32. package/lib/projection/core/projectionSamples.d.ts +63 -32
  33. package/lib/projection/core/projectionSamples.d.ts.map +1 -1
  34. package/lib/projection/core/projectionSamples.js +1 -80
  35. package/lib/projection/core/projectionSamples.js.map +1 -1
  36. package/lib/projection/core/projectionStrings.d.ts +2 -0
  37. package/lib/projection/core/projectionStrings.d.ts.map +1 -1
  38. package/lib/projection/core/projectionStrings.js +10 -1
  39. package/lib/projection/core/projectionStrings.js.map +1 -1
  40. package/lib/projection/core/resolveProjectionOptions.d.ts +8 -3
  41. package/lib/projection/core/resolveProjectionOptions.d.ts.map +1 -1
  42. package/lib/projection/core/resolveProjectionOptions.js +58 -5
  43. package/lib/projection/core/resolveProjectionOptions.js.map +1 -1
  44. package/lib/projection/ui/ProjectionBar.d.ts +1 -1
  45. package/lib/projection/ui/ProjectionBar.d.ts.map +1 -1
  46. package/lib/projection/ui/ProjectionBar.js +3 -1
  47. package/lib/projection/ui/ProjectionBar.js.map +1 -1
  48. package/lib/projection/ui/ProjectionGroupingPickers.d.ts +38 -0
  49. package/lib/projection/ui/ProjectionGroupingPickers.d.ts.map +1 -0
  50. package/lib/projection/ui/ProjectionGroupingPickers.js +33 -0
  51. package/lib/projection/ui/ProjectionGroupingPickers.js.map +1 -0
  52. package/lib/projection/ui/ProjectionMapControls.d.ts +6 -7
  53. package/lib/projection/ui/ProjectionMapControls.d.ts.map +1 -1
  54. package/lib/projection/ui/ProjectionMapControls.js +11 -9
  55. package/lib/projection/ui/ProjectionMapControls.js.map +1 -1
  56. package/lib/projection/ui/ProjectionMapLegend.d.ts.map +1 -1
  57. package/lib/projection/ui/ProjectionMapLegend.js +1 -1
  58. package/lib/projection/ui/ProjectionMapLegend.js.map +1 -1
  59. package/lib/projection/ui/ProjectionMapMore.d.ts +2 -2
  60. package/lib/projection/ui/ProjectionMapMore.d.ts.map +1 -1
  61. package/lib/projection/ui/ProjectionMapMore.js +7 -5
  62. package/lib/projection/ui/ProjectionMapMore.js.map +1 -1
  63. package/lib/projection/ui/ProjectionMapTab.d.ts +15 -6
  64. package/lib/projection/ui/ProjectionMapTab.d.ts.map +1 -1
  65. package/lib/projection/ui/ProjectionMapTab.js +11 -7
  66. package/lib/projection/ui/ProjectionMapTab.js.map +1 -1
  67. package/lib/projection/ui/ProjectionPairsMore.d.ts +3 -7
  68. package/lib/projection/ui/ProjectionPairsMore.d.ts.map +1 -1
  69. package/lib/projection/ui/ProjectionPairsMore.js +4 -5
  70. package/lib/projection/ui/ProjectionPairsMore.js.map +1 -1
  71. package/lib/projection/ui/ProjectionPairsTab.d.ts.map +1 -1
  72. package/lib/projection/ui/ProjectionPairsTab.js +2 -2
  73. package/lib/projection/ui/ProjectionPairsTab.js.map +1 -1
  74. package/lib/projection/ui/ProjectionPanel.d.ts +1 -1
  75. package/lib/projection/ui/ProjectionPanel.d.ts.map +1 -1
  76. package/lib/projection/ui/ProjectionPanel.js +1 -1
  77. package/lib/projection/ui/ProjectionPanel.js.map +1 -1
  78. package/lib/projection/ui/ProjectionReadout.d.ts +7 -1
  79. package/lib/projection/ui/ProjectionReadout.d.ts.map +1 -1
  80. package/lib/projection/ui/ProjectionReadout.js +19 -7
  81. package/lib/projection/ui/ProjectionReadout.js.map +1 -1
  82. package/lib/projection/ui/ProjectionSpaceControls.d.ts +3 -5
  83. package/lib/projection/ui/ProjectionSpaceControls.d.ts.map +1 -1
  84. package/lib/projection/ui/ProjectionSpaceControls.js +9 -7
  85. package/lib/projection/ui/ProjectionSpaceControls.js.map +1 -1
  86. package/lib/projection/ui/ProjectionSpaceMore.d.ts +2 -2
  87. package/lib/projection/ui/ProjectionSpaceMore.d.ts.map +1 -1
  88. package/lib/projection/ui/ProjectionSpaceMore.js +5 -4
  89. package/lib/projection/ui/ProjectionSpaceMore.js.map +1 -1
  90. package/lib/projection/ui/ProjectionSpaceTab.d.ts +11 -3
  91. package/lib/projection/ui/ProjectionSpaceTab.d.ts.map +1 -1
  92. package/lib/projection/ui/ProjectionSpaceTab.js +7 -4
  93. package/lib/projection/ui/ProjectionSpaceTab.js.map +1 -1
  94. package/lib/projection/ui/ProjectionViewer.d.ts.map +1 -1
  95. package/lib/projection/ui/ProjectionViewer.js +1 -0
  96. package/lib/projection/ui/ProjectionViewer.js.map +1 -1
  97. package/lib/projection/ui/projectionBarReadings.d.ts +4 -1
  98. package/lib/projection/ui/projectionBarReadings.d.ts.map +1 -1
  99. package/lib/projection/ui/projectionBarReadings.js +14 -4
  100. package/lib/projection/ui/projectionBarReadings.js.map +1 -1
  101. package/lib/projection/ui/projectionBarSlots.d.ts +4 -2
  102. package/lib/projection/ui/projectionBarSlots.d.ts.map +1 -1
  103. package/lib/projection/ui/projectionBarSlots.js +3 -7
  104. package/lib/projection/ui/projectionBarSlots.js.map +1 -1
  105. package/lib/projection/ui/projectionMapChoices.d.ts +31 -6
  106. package/lib/projection/ui/projectionMapChoices.d.ts.map +1 -1
  107. package/lib/projection/ui/projectionMapChoices.js +58 -9
  108. package/lib/projection/ui/projectionMapChoices.js.map +1 -1
  109. package/lib/projection/ui/projectionMapChrome.d.ts +3 -9
  110. package/lib/projection/ui/projectionMapChrome.d.ts.map +1 -1
  111. package/lib/projection/ui/projectionMapChrome.js +41 -27
  112. package/lib/projection/ui/projectionMapChrome.js.map +1 -1
  113. package/lib/projection/ui/projectionMapCorner.d.ts +25 -0
  114. package/lib/projection/ui/projectionMapCorner.d.ts.map +1 -0
  115. package/lib/projection/ui/projectionMapCorner.js +46 -0
  116. package/lib/projection/ui/projectionMapCorner.js.map +1 -0
  117. package/lib/projection/ui/projectionMapModel.d.ts +9 -18
  118. package/lib/projection/ui/projectionMapModel.d.ts.map +1 -1
  119. package/lib/projection/ui/projectionMapModel.js +14 -39
  120. package/lib/projection/ui/projectionMapModel.js.map +1 -1
  121. package/lib/projection/ui/projectionMapView.d.ts +3 -1
  122. package/lib/projection/ui/projectionMapView.d.ts.map +1 -1
  123. package/lib/projection/ui/projectionMapView.js +9 -4
  124. package/lib/projection/ui/projectionMapView.js.map +1 -1
  125. package/lib/projection/ui/projectionSelectionSentence.d.ts +10 -0
  126. package/lib/projection/ui/projectionSelectionSentence.d.ts.map +1 -0
  127. package/lib/projection/ui/projectionSelectionSentence.js +18 -0
  128. package/lib/projection/ui/projectionSelectionSentence.js.map +1 -0
  129. package/lib/projection/ui/projectionStateApi.d.ts +47 -0
  130. package/lib/projection/ui/projectionStateApi.d.ts.map +1 -0
  131. package/lib/projection/ui/projectionStateApi.js +9 -0
  132. package/lib/projection/ui/projectionStateApi.js.map +1 -0
  133. package/lib/projection/ui/projectionTabModels.js +1 -1
  134. package/lib/projection/ui/projectionTabModels.js.map +1 -1
  135. package/lib/projection/ui/useProjectionState.d.ts +1 -29
  136. package/lib/projection/ui/useProjectionState.d.ts.map +1 -1
  137. package/lib/projection/ui/useProjectionState.js +13 -5
  138. package/lib/projection/ui/useProjectionState.js.map +1 -1
  139. package/lib/scatter/core/index.d.ts +1 -0
  140. package/lib/scatter/core/index.d.ts.map +1 -1
  141. package/lib/scatter/core/index.js +1 -0
  142. package/lib/scatter/core/index.js.map +1 -1
  143. package/lib/scatter/core/pointShape.d.ts +18 -0
  144. package/lib/scatter/core/pointShape.d.ts.map +1 -0
  145. package/lib/scatter/core/pointShape.js +70 -0
  146. package/lib/scatter/core/pointShape.js.map +1 -0
  147. package/lib/scatter/ui/ScatterPlot.d.ts.map +1 -1
  148. package/lib/scatter/ui/ScatterPlot.js +3 -2
  149. package/lib/scatter/ui/ScatterPlot.js.map +1 -1
  150. package/lib/scatter/ui/ScatterPointLayer.d.ts +14 -1
  151. package/lib/scatter/ui/ScatterPointLayer.d.ts.map +1 -1
  152. package/lib/scatter/ui/ScatterPointLayer.js +15 -3
  153. package/lib/scatter/ui/ScatterPointLayer.js.map +1 -1
  154. package/lib/scatter/ui/scatterFigureProps.d.ts +13 -0
  155. package/lib/scatter/ui/scatterFigureProps.d.ts.map +1 -1
  156. package/lib/scatter/ui/scatterMarkGlyph.d.ts +2 -1
  157. package/lib/scatter/ui/scatterMarkGlyph.d.ts.map +1 -1
  158. package/lib/scatter/ui/scatterMarkGlyph.js +7 -1
  159. package/lib/scatter/ui/scatterMarkGlyph.js.map +1 -1
  160. package/lib/scatter3d/ui/ScatterCloud.d.ts.map +1 -1
  161. package/lib/scatter3d/ui/ScatterCloud.js +2 -1
  162. package/lib/scatter3d/ui/ScatterCloud.js.map +1 -1
  163. package/package.json +1 -1
  164. package/src/overlay/core/index.ts +6 -2
  165. package/src/overlay/core/overlayMarks.ts +51 -6
  166. package/src/overlay/ui/OverlayLegendMark.tsx +5 -0
  167. package/src/projection/core/index.ts +11 -3
  168. package/src/projection/core/projectionCopy.ts +3 -0
  169. package/src/projection/core/projectionGroupings.ts +174 -0
  170. package/src/projection/core/projectionOptions.ts +18 -7
  171. package/src/projection/core/projectionPanelWords.ts +10 -0
  172. package/src/projection/core/projectionSamples.ts +62 -120
  173. package/src/projection/core/projectionStrings.ts +12 -1
  174. package/src/projection/core/resolveProjectionOptions.ts +66 -4
  175. package/src/projection/ui/ProjectionBar.tsx +4 -2
  176. package/src/projection/ui/ProjectionGroupingPickers.tsx +91 -0
  177. package/src/projection/ui/ProjectionMapControls.tsx +29 -32
  178. package/src/projection/ui/ProjectionMapLegend.tsx +1 -1
  179. package/src/projection/ui/ProjectionMapMore.tsx +14 -4
  180. package/src/projection/ui/ProjectionMapTab.tsx +27 -9
  181. package/src/projection/ui/ProjectionPairsMore.tsx +12 -21
  182. package/src/projection/ui/ProjectionPairsTab.tsx +5 -2
  183. package/src/projection/ui/ProjectionPanel.tsx +7 -3
  184. package/src/projection/ui/ProjectionReadout.tsx +28 -8
  185. package/src/projection/ui/ProjectionSpaceControls.tsx +20 -27
  186. package/src/projection/ui/ProjectionSpaceMore.tsx +12 -3
  187. package/src/projection/ui/ProjectionSpaceTab.tsx +23 -6
  188. package/src/projection/ui/ProjectionViewer.tsx +1 -0
  189. package/src/projection/ui/projectionBarReadings.ts +24 -8
  190. package/src/projection/ui/projectionBarSlots.tsx +10 -9
  191. package/src/projection/ui/projectionMapChoices.ts +71 -14
  192. package/src/projection/ui/projectionMapChrome.ts +55 -30
  193. package/src/projection/ui/projectionMapCorner.ts +67 -0
  194. package/src/projection/ui/projectionMapModel.ts +20 -59
  195. package/src/projection/ui/projectionMapView.ts +15 -8
  196. package/src/projection/ui/projectionSelectionSentence.ts +22 -0
  197. package/src/projection/ui/projectionStateApi.ts +57 -0
  198. package/src/projection/ui/projectionTabModels.ts +1 -1
  199. package/src/projection/ui/useProjectionState.ts +33 -37
  200. package/src/scatter/core/index.ts +1 -0
  201. package/src/scatter/core/pointShape.ts +80 -0
  202. package/src/scatter/ui/ScatterPlot.tsx +4 -1
  203. package/src/scatter/ui/ScatterPointLayer.tsx +39 -11
  204. package/src/scatter/ui/scatterFigureProps.ts +13 -0
  205. package/src/scatter/ui/scatterMarkGlyph.tsx +9 -1
  206. package/src/scatter3d/ui/ScatterCloud.tsx +3 -0
@@ -2,6 +2,7 @@ import type { ReactElement } from 'react';
2
2
  import type { OverlayTier } from '../../overlay/core/overlayTiers.ts';
3
3
  import type { ProjectionCopy } from '../core/projectionCopy.ts';
4
4
  import type { ProjectionOptions } from '../core/projectionOptions.ts';
5
+ import type { ProjectionGrouping } from '../core/projectionSamples.ts';
5
6
  import type { ProjectionReading } from './projectionBarReadings.ts';
6
7
  /** What the map's controls are drawn from, wherever in the bar they sit. */
7
8
  export interface ProjectionMapControlsProps {
@@ -11,15 +12,13 @@ export interface ProjectionMapControlsProps {
11
12
  onChange: (patch: Partial<ProjectionOptions>) => void;
12
13
  /** The words the bar writes, already merged over the defaults. */
13
14
  copy: ProjectionCopy;
14
- /** What the set of groups is called, which is what `Colour by` offers. */
15
- groupLabel: string;
16
15
  /**
17
- * Whether the samples carry groups at all. Without them the colour and the
18
- * outlines stand for nothing, so their controls are greyed rather than
19
- * removed: a reader who cannot find a control assumes the figure has none.
20
- * @default false
16
+ * Every grouping the samples carry, which is what `Colour by` offers.
17
+ * Without one the colour and the outlines stand for nothing, so their
18
+ * controls are greyed rather than removed: a reader who cannot find a
19
+ * control assumes the figure has none.
21
20
  */
22
- hasGroups?: boolean;
21
+ groupings: readonly ProjectionGrouping[];
23
22
  /**
24
23
  * What the two settings currently read, with the figure's own colours. They
25
24
  * are built once for the bar and handed down rather than spelled again here,
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionMapControls.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAMtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAYpE,4EAA4E;AAC5E,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACtD,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACxC;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,YAAY,CA+Ed"}
1
+ {"version":3,"file":"ProjectionMapControls.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAKtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAapE,4EAA4E;AAC5E,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACtD,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB;;;;;OAKG;IACH,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACxC;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,YAAY,CAiFd"}
@@ -1,12 +1,13 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { OverlayChip } from "../../overlay/ui/OverlayChip.js";
3
- import { OverlaySegmented } from "../../overlay/ui/OverlaySegmented.js";
4
3
  import { OverlaySelect } from "../../overlay/ui/OverlaySelect.js";
5
4
  import { OverlayToggle } from "../../overlay/ui/OverlayToggle.js";
6
5
  import { OverlayValueMenu } from "../../overlay/ui/OverlayValueMenu.js";
6
+ import { NO_GROUPING } from "../core/projectionOptions.js";
7
+ import { ProjectionColourPicker } from "./ProjectionGroupingPickers.js";
7
8
  import { projectionChipSettings } from "./projectionBarReadings.js";
8
9
  import { ellipseChoices, ellipseKey, ellipseSize, } from "./projectionEllipse.js";
9
- import { projectionColourChoices, projectionOutlineChoices, } from "./projectionMapChoices.js";
10
+ import { projectionColourChoices, projectionColourPatch, projectionOutlineChoices, } from "./projectionMapChoices.js";
10
11
  /**
11
12
  * The map settings a reader changes while looking at the picture.
12
13
  *
@@ -37,16 +38,17 @@ import { projectionColourChoices, projectionOutlineChoices, } from "./projection
37
38
  * @returns The controls.
38
39
  */
39
40
  export function ProjectionMapControls(props) {
40
- const { options, onChange, copy, groupLabel, hasGroups = false } = props;
41
+ const { options, onChange, copy, groupings } = props;
41
42
  const { readings = NO_READINGS, tier = 'full' } = props;
42
43
  const { bar, help, reason } = copy;
43
- const uncoloured = !hasGroups || options.colorBy === 'none';
44
- const settings = (_jsx(MapSettings, { options: options, onChange: onChange, copy: copy, groupLabel: groupLabel, hasGroups: hasGroups }));
44
+ const hasGroups = groupings.length > 0;
45
+ const uncoloured = !hasGroups || options.colorBy === NO_GROUPING;
46
+ const settings = (_jsx(MapSettings, { options: options, onChange: onChange, copy: copy, groupings: groupings }));
45
47
  const names = (_jsxs(_Fragment, { children: [_jsx(OverlayToggle, { label: bar.switches.showGroupLabels, help: help.showGroupLabels, icon: GROUP_LABELS_GLYPH, hideLabel: true, checked: options.showGroupLabels, disabled: uncoloured, onChange: (showGroupLabels) => onChange({ showGroupLabels }) }), _jsx(OverlayToggle, { label: bar.switches.showIds, help: help.showIds, icon: IDS_GLYPH, hideLabel: true, checked: options.showIds, onChange: (showIds) => onChange({ showIds }) })] }));
46
48
  if (tier === 'chip' || tier === 'tiny') {
47
49
  return (_jsxs(_Fragment, { children: [_jsx(OverlayChip, { label: bar.settings, settings: projectionChipSettings(readings), disabled: !hasGroups, children: settings }), names] }));
48
50
  }
49
- return (_jsxs(_Fragment, { children: [_jsx(OverlayValueMenu, { label: help.colorBy.title, keyWord: bar.key.colorBy, showKey: tier === 'full', value: options.colorBy, swatches: swatchesOf(readings), disabled: !hasGroups, disabledReason: reason.noGroups, options: projectionColourChoices(groupLabel, bar.uncoloured), onChange: (colorBy) => onChange({ colorBy }) }), _jsx(OverlayValueMenu, { label: help.ellipse.title, keyWord: bar.key.ellipse, showKey: tier === 'full', value: ellipseKey(options.ellipse), disabled: uncoloured, disabledReason: reason.uncolouredOutlines, options: projectionOutlineChoices(options, copy), onChange: (value) => onChange({ ellipse: ellipseSize(value) }) }), names] }));
51
+ return (_jsxs(_Fragment, { children: [_jsx(OverlayValueMenu, { label: help.colorBy.title, keyWord: bar.key.colorBy, showKey: tier === 'full', value: options.colorBy, swatches: swatchesOf(readings), disabled: !hasGroups, disabledReason: reason.noGroups, options: projectionColourChoices(groupings, bar.uncoloured), onChange: (colorBy) => onChange(projectionColourPatch(options, colorBy)) }), _jsx(OverlayValueMenu, { label: help.ellipse.title, keyWord: bar.key.ellipse, showKey: tier === 'full', value: ellipseKey(options.ellipse), disabled: uncoloured, disabledReason: reason.uncolouredOutlines, options: projectionOutlineChoices(options, copy), onChange: (value) => onChange({ ellipse: ellipseSize(value) }) }), names] }));
50
52
  }
51
53
  /**
52
54
  * The figure's own colours, from whichever setting decides them.
@@ -71,9 +73,9 @@ function swatchesOf(readings) {
71
73
  * @returns The captioned controls.
72
74
  */
73
75
  function MapSettings(props) {
74
- const { options, onChange, copy, groupLabel, hasGroups } = props;
75
- const { bar, help, outline } = copy;
76
- return (_jsxs(_Fragment, { children: [_jsx(OverlaySegmented, { label: help.colorBy.title, help: help.colorBy, value: options.colorBy, disabled: !hasGroups, options: projectionColourChoices(groupLabel, bar.uncoloured), onChange: (colorBy) => onChange({ colorBy }) }), _jsx(OverlaySelect, { label: help.ellipse.title, help: help.ellipse, value: ellipseKey(options.ellipse), disabled: !hasGroups || options.colorBy === 'none', options: ellipseChoices(options.ellipse, outline), onChange: (value) => onChange({ ellipse: ellipseSize(value) }) })] }));
76
+ const { options, onChange, copy, groupings } = props;
77
+ const { help, outline } = copy;
78
+ return (_jsxs(_Fragment, { children: [_jsx(ProjectionColourPicker, { label: help.colorBy.title, options: options, onChange: onChange, copy: copy, groupings: groupings }), _jsx(OverlaySelect, { label: help.ellipse.title, help: help.ellipse, value: ellipseKey(options.ellipse), disabled: groupings.length === 0 || options.colorBy === NO_GROUPING, options: ellipseChoices(options.ellipse, outline), onChange: (value) => onChange({ ellipse: ellipseSize(value) }) })] }));
77
79
  }
78
80
  /**
79
81
  * The two glyphs the switches ride as.
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionMapControls.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapControls.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionMapControls.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapControls.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionMapLegend.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAOlE,8CAA8C;AAC9C,UAAU,wBAAwB;IAChC,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvC,6DAA6D;IAC7D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,0CAA0C;IAC1C,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAoBd"}
1
+ {"version":3,"file":"ProjectionMapLegend.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAI7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAMlE,8CAA8C;AAC9C,UAAU,wBAAwB;IAChC,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvC,6DAA6D;IAC7D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,0CAA0C;IAC1C,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAoBd"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { OverlayLegend } from "../../overlay/ui/OverlayLegend.js";
3
- import { projectionMapCorner } from "./projectionMapModel.js";
3
+ import { projectionMapCorner } from "./projectionMapCorner.js";
4
4
  import { PROJECTION_PLOT_AREA_STYLE, PROJECTION_PLOT_ROOM, } from "./projectionTabStyles.js";
5
5
  /**
6
6
  * The key, floating in the emptiest corner of the plot itself.
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionMapLegend.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapLegend.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAoC,CAAC;AAGnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAoBlC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzE,MAAM,SAAS,GACb,KAAK,GAAG,oBAAoB,CAAC,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC;IACjE,MAAM,UAAU,GACd,MAAM,GAAG,oBAAoB,CAAC,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAClE,MAAM,MAAM,GAAG,mBAAmB,CAChC,KAAK,EACL,OAAO,EACP,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EACtB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CACxB,CAAC;IAEF,OAAO,CACL,cAAK,KAAK,EAAE,0BAA0B,YACpC,KAAC,aAAa,IAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,GAChE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ProjectionMapLegend.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapLegend.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAoC,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAoBlC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzE,MAAM,SAAS,GACb,KAAK,GAAG,oBAAoB,CAAC,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC;IACjE,MAAM,UAAU,GACd,MAAM,GAAG,oBAAoB,CAAC,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAClE,MAAM,MAAM,GAAG,mBAAmB,CAChC,KAAK,EACL,OAAO,EACP,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EACtB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CACxB,CAAC;IAEF,OAAO,CACL,cAAK,KAAK,EAAE,0BAA0B,YACpC,KAAC,aAAa,IAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,GAChE,CACP,CAAC;AACJ,CAAC"}
@@ -19,8 +19,8 @@ interface ProjectionMapMoreProps extends ProjectionMapControlsProps {
19
19
  onClearSelection: () => void;
20
20
  }
21
21
  /**
22
- * What the map keeps behind the cog: the axes, the dot size, what a drag does,
23
- * and the three buttons that act rather than change.
22
+ * What the map keeps behind the cog: the axes, the dot size and shape, what a
23
+ * drag does, and the three buttons that act rather than change.
24
24
  *
25
25
  * Five settings is where a flat list stops being scannable, so they are filed
26
26
  * under three headings — the two directions of the picture, the marks drawn in
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionMapMore.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapMore.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAU1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAI9E,0EAA0E;AAC1E,UAAU,sBAAuB,SAAQ,0BAA0B;IACjE,8EAA8E;IAC9E,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,+CAA+C;IAC/C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CA0F7E"}
1
+ {"version":3,"file":"ProjectionMapMore.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapMore.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAW1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAIpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAI9E,0EAA0E;AAC1E,UAAU,sBAAuB,SAAQ,0BAA0B;IACjE,8EAA8E;IAC9E,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,+CAA+C;IAC/C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CAkG7E"}
@@ -6,12 +6,14 @@ import { OverlayPanel } from "../../overlay/ui/OverlayPanel.js";
6
6
  import { OverlaySegmented } from "../../overlay/ui/OverlaySegmented.js";
7
7
  import { OverlaySelect } from "../../overlay/ui/OverlaySelect.js";
8
8
  import { OverlayToggle } from "../../overlay/ui/OverlayToggle.js";
9
+ import { NO_GROUPING } from "../core/projectionOptions.js";
9
10
  import { PROJECTION_TAB_DEFAULTS } from "../core/projectionTabDefaults.js";
11
+ import { ProjectionShapePicker } from "./ProjectionGroupingPickers.js";
10
12
  import { projectionAxisChoices } from "./projectionAxisChoices.js";
11
13
  import { projectionSelectModeChoices } from "./projectionWordChoices.js";
12
14
  /**
13
- * What the map keeps behind the cog: the axes, the dot size, what a drag does,
14
- * and the three buttons that act rather than change.
15
+ * What the map keeps behind the cog: the axes, the dot size and shape, what a
16
+ * drag does, and the three buttons that act rather than change.
15
17
  *
16
18
  * Five settings is where a flat list stops being scannable, so they are filed
17
19
  * under three headings — the two directions of the picture, the marks drawn in
@@ -30,12 +32,12 @@ import { projectionSelectModeChoices } from "./projectionWordChoices.js";
30
32
  * @returns The panel behind the cog.
31
33
  */
32
34
  export function ProjectionMapMore(props) {
33
- const { result, options, onChange, copy, hasGroups = false } = props;
35
+ const { result, options, onChange, copy, groupings } = props;
34
36
  const { selectedCount = 0, onZoomToSelection } = props;
35
37
  const { onResetView, onClearSelection } = props;
36
38
  const { action, help, panel, reason, tab } = copy;
37
39
  const nothingPicked = selectedCount === 0;
38
- const uncoloured = !hasGroups || options.colorBy === 'none';
39
- return (_jsxs(OverlayPanel, { title: tab.map, onReset: () => onChange(PROJECTION_TAB_DEFAULTS.map), actions: _jsxs(_Fragment, { children: [_jsx(OverlayAction, { text: action.zoomToSelection, icon: "zoom-to-fit", disabled: nothingPicked, onClick: onZoomToSelection }), _jsx(OverlayAction, { text: action.resetView, icon: "reset", onClick: onResetView }), _jsx(OverlayAction, { text: action.clearSelection, icon: "cross", disabled: nothingPicked, onClick: onClearSelection })] }), children: [_jsxs(OverlayGroup, { label: panel.section.axes, divider: false, children: [_jsx(OverlaySelect, { label: panel.name.xAxis, help: help.xAxis, value: String(options.xAxis), options: projectionAxisChoices(result, [options.yAxis], reason.axisTakenOnMap), onChange: (value) => onChange({ xAxis: Number(value) }) }), _jsx(OverlaySelect, { label: panel.name.yAxis, help: help.yAxis, value: String(options.yAxis), options: projectionAxisChoices(result, [options.xAxis], reason.axisTakenOnMap), onChange: (value) => onChange({ yAxis: Number(value) }) })] }), _jsxs(OverlayGroup, { label: panel.section.drawing, children: [_jsx(OverlayNumber, { label: panel.name.pointRadius, help: help.pointRadius, value: options.pointRadius, min: 1, max: 12, step: 0.5, digits: 1, unit: "px", onChange: (pointRadius) => onChange({ pointRadius }) }), _jsx(OverlayToggle, { label: panel.name.showGroupMeans, help: help.showGroupMeans, checked: options.showGroupMeans, disabled: uncoloured, onChange: (showGroupMeans) => onChange({ showGroupMeans }) })] }), _jsx(OverlayGroup, { label: panel.section.selecting, children: _jsx(OverlaySegmented, { label: panel.name.selectMode, help: help.selectMode, value: options.selectMode, options: projectionSelectModeChoices(copy), onChange: (selectMode) => onChange({ selectMode }) }) })] }));
40
+ const uncoloured = groupings.length === 0 || options.colorBy === NO_GROUPING;
41
+ return (_jsxs(OverlayPanel, { title: tab.map, onReset: () => onChange(PROJECTION_TAB_DEFAULTS.map), actions: _jsxs(_Fragment, { children: [_jsx(OverlayAction, { text: action.zoomToSelection, icon: "zoom-to-fit", disabled: nothingPicked, onClick: onZoomToSelection }), _jsx(OverlayAction, { text: action.resetView, icon: "reset", onClick: onResetView }), _jsx(OverlayAction, { text: action.clearSelection, icon: "cross", disabled: nothingPicked, onClick: onClearSelection })] }), children: [_jsxs(OverlayGroup, { label: panel.section.axes, divider: false, children: [_jsx(OverlaySelect, { label: panel.name.xAxis, help: help.xAxis, value: String(options.xAxis), options: projectionAxisChoices(result, [options.yAxis], reason.axisTakenOnMap), onChange: (value) => onChange({ xAxis: Number(value) }) }), _jsx(OverlaySelect, { label: panel.name.yAxis, help: help.yAxis, value: String(options.yAxis), options: projectionAxisChoices(result, [options.xAxis], reason.axisTakenOnMap), onChange: (value) => onChange({ yAxis: Number(value) }) })] }), _jsxs(OverlayGroup, { label: panel.section.drawing, children: [_jsx(OverlayNumber, { label: panel.name.pointRadius, help: help.pointRadius, value: options.pointRadius, min: 1, max: 12, step: 0.5, digits: 1, unit: "px", onChange: (pointRadius) => onChange({ pointRadius }) }), _jsx(ProjectionShapePicker, { label: panel.name.shapeBy, options: options, onChange: onChange, copy: copy, groupings: groupings, rows: result.scores.rows }), _jsx(OverlayToggle, { label: panel.name.showGroupMeans, help: help.showGroupMeans, checked: options.showGroupMeans, disabled: uncoloured, onChange: (showGroupMeans) => onChange({ showGroupMeans }) })] }), _jsx(OverlayGroup, { label: panel.section.selecting, children: _jsx(OverlaySegmented, { label: panel.name.selectMode, help: help.selectMode, value: options.selectMode, options: projectionSelectModeChoices(copy), onChange: (selectMode) => onChange({ selectMode }) }) })] }));
40
42
  }
41
43
  //# sourceMappingURL=ProjectionMapMore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionMapMore.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapMore.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionMapMore.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapMore.tsx"],"names":[],"mappings":"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"}
@@ -5,15 +5,23 @@ import type { SelectionChange } from '../../scatter/ui/useScatterSelection.ts';
5
5
  import type { ProjectionCopy } from '../core/projectionCopy.ts';
6
6
  import type { ProjectionOptions } from '../core/projectionOptions.ts';
7
7
  import type { ProjectionResult } from '../core/projectionResult.ts';
8
- import type { ResolvedProjectionGroups } from '../core/projectionSamples.ts';
8
+ import type { ResolvedProjectionGroups, ResolvedProjectionShapes } from '../core/projectionSamples.ts';
9
9
  import type { SelectionReport } from './ProjectionMapCaption.tsx';
10
10
  import type { ProjectionMapChrome } from './projectionMapChrome.ts';
11
11
  /** What {@link ProjectionMapTab} needs. */
12
12
  interface ProjectionMapTabProps {
13
13
  /** What the run produced, whatever produced it. */
14
14
  result: ProjectionResult;
15
- /** The groups, resolved once by the viewer so every tab colours alike. */
15
+ /**
16
+ * The grouping the dots are coloured by, resolved once by the viewer so every
17
+ * tab colours alike; empty while the colour stands for nothing.
18
+ */
16
19
  groups: ResolvedProjectionGroups;
20
+ /**
21
+ * The grouping the dots are shaped by, resolved once by the viewer.
22
+ * @default null — every dot is a disc
23
+ */
24
+ shapes?: ResolvedProjectionShapes | null;
17
25
  /** What the map is showing, already resolved against `result`. */
18
26
  options: ProjectionOptions;
19
27
  /** The words the map writes, already merged over the defaults. */
@@ -25,7 +33,7 @@ interface ProjectionMapTabProps {
25
33
  * "Sample ID" setting to write beside its dot.
26
34
  * @default undefined — the setting has nothing to write and draws nothing
27
35
  */
28
- ids?: readonly string[];
36
+ names?: readonly string[];
29
37
  /** Width of the figure, in pixels. */
30
38
  width: number;
31
39
  /** Height of the figure, in pixels. */
@@ -90,9 +98,10 @@ interface ProjectionMapTabProps {
90
98
  * The map: one dot per sample, an outline per group, and a key floating in the
91
99
  * emptiest corner of the plot.
92
100
  *
93
- * Colour stands for the group and for nothing else, and a selected dot keeps
94
- * its colour and gains a ring — recolouring it would trade the answer the
95
- * reader came for against the question they have just asked. A sample the
101
+ * Colour stands for one grouping and shape, when there is a second, for that
102
+ * one, and a selected dot keeps both and gains a ring — recolouring it would
103
+ * trade the answer the reader came for against the question they have just
104
+ * asked. A sample the
96
105
  * model was built from is drawn filled and one placed into the finished model
97
106
  * afterwards is drawn hollow, because the second kind can land anywhere and
98
107
  * its landing far out is the finding rather than a fault.
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionMapTab.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAUpE,2CAA2C;AAC3C,UAAU,qBAAqB;IAC7B,mDAAmD;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB,0EAA0E;IAC1E,MAAM,EAAE,wBAAwB,CAAC;IACjC,kEAAkE;IAClE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB,0EAA0E;IAC1E,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;;OAIG;IACH,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACvD;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAqF3E"}
1
+ {"version":3,"file":"ProjectionMapTab.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAWpE,2CAA2C;AAC3C,UAAU,qBAAqB;IAC7B,mDAAmD;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;OAGG;IACH,MAAM,EAAE,wBAAwB,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACzC,kEAAkE;IAClE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB,0EAA0E;IAC1E,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACvD;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAyF3E"}
@@ -1,17 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo, useState } from 'react';
3
3
  import { ScatterPlot } from "../../scatter/ui/ScatterPlot.js";
4
+ import { NO_GROUPING } from "../core/projectionOptions.js";
4
5
  import { ProjectionMapCaption } from "./ProjectionMapCaption.js";
5
6
  import { ProjectionMapLegend } from "./ProjectionMapLegend.js";
6
7
  import { ProjectionSurface } from "./ProjectionSurface.js";
7
- import { MINIMUM_OUTLINE_POINTS, projectionAxisTitle, projectionMapCloud, projectionMapDomain, projectionMapMarkers, projectionScatterGroups, } from "./projectionMapModel.js";
8
+ import { MINIMUM_OUTLINE_POINTS, projectionAxisTitle, projectionMapCloud, projectionMapDomain, projectionMapMarkers, projectionScatterGroups, projectionScatterShapes, } from "./projectionMapModel.js";
8
9
  /**
9
10
  * The map: one dot per sample, an outline per group, and a key floating in the
10
11
  * emptiest corner of the plot.
11
12
  *
12
- * Colour stands for the group and for nothing else, and a selected dot keeps
13
- * its colour and gains a ring — recolouring it would trade the answer the
14
- * reader came for against the question they have just asked. A sample the
13
+ * Colour stands for one grouping and shape, when there is a second, for that
14
+ * one, and a selected dot keeps both and gains a ring — recolouring it would
15
+ * trade the answer the reader came for against the question they have just
16
+ * asked. A sample the
15
17
  * model was built from is drawn filled and one placed into the finished model
16
18
  * afterwards is drawn hollow, because the second kind can land anywhere and
17
19
  * its landing far out is the finding rather than a fault.
@@ -24,7 +26,8 @@ import { MINIMUM_OUTLINE_POINTS, projectionAxisTitle, projectionMapCloud, projec
24
26
  */
25
27
  export function ProjectionMapTab(props) {
26
28
  const { result, groups, options, copy, chrome, width, height } = props;
27
- const { ids, selected, viewport = null, report = null } = props;
29
+ const { names, shapes = null, selected } = props;
30
+ const { viewport = null, report = null } = props;
28
31
  const { onSelectionChange, onHoverChange, hoverCard } = props;
29
32
  const { onPointDoubleClick } = props;
30
33
  const { onViewportChange, wheelZoom, touchLasso, testId } = props;
@@ -35,9 +38,10 @@ export function ProjectionMapTab(props) {
35
38
  const cloud = useMemo(() => projectionMapCloud(scores, xAxis, yAxis), [scores, xAxis, yAxis]);
36
39
  const xDomain = useMemo(() => projectionMapDomain(scores, xAxis), [scores, xAxis]);
37
40
  const yDomain = useMemo(() => projectionMapDomain(scores, yAxis), [scores, yAxis]);
38
- const colored = colorBy === 'group' && groups.entries.length > 0;
41
+ const shapeList = useMemo(() => projectionScatterShapes(shapes), [shapes]);
42
+ const colored = colorBy !== NO_GROUPING && groups.entries.length > 0;
39
43
  const ellipse = colored ? outlines : null;
40
- return (_jsx(ScatterPlot, { x: cloud.x, y: cloud.y, width: width, height: height, xAxis: { domain: xDomain, label: projectionAxisTitle(result, xAxis) }, yAxis: { domain: yDomain, label: projectionAxisTitle(result, yAxis) }, groupOf: colored ? groups.groupOf : undefined, groups: colored ? projectionScatterGroups(groups) : undefined, ellipse: ellipse, ellipseMinimumPoints: MINIMUM_OUTLINE_POINTS, showGroupMeans: colored && showGroupMeans, showGroupLabels: colored && showGroupLabels, pointLabels: showIds ? ids : undefined, markers: projectionMapMarkers(markers ?? NO_MARKERS, groups, xAxis, yAxis), pointRadius: pointRadius, outlinedFrom: fittedCount, selected: selected, viewport: viewport, onViewportChange: onViewportChange, wheelZoom: wheelZoom, onSelectionChange: onSelectionChange, selectMode: selectMode, onHoverChange: onHoverChange, onPointDoubleClick: onPointDoubleClick, onLassoChange: setDrawing, touchLasso: touchLasso, testId: testId, overlay: _jsxs(ProjectionSurface, { children: [chrome.entries.length === 0 ? null : (_jsx(ProjectionMapLegend, { title: chrome.title, entries: chrome.entries, cloud: cloud, xDomain: viewport?.x ?? xDomain, yDomain: viewport?.y ?? yDomain, width: width, height: height })), _jsx(ProjectionMapCaption, { report: report, copy: copy, mode: selectMode, drawing: drawing }), hoverCard] }) }));
44
+ return (_jsx(ScatterPlot, { x: cloud.x, y: cloud.y, width: width, height: height, xAxis: { domain: xDomain, label: projectionAxisTitle(result, xAxis) }, yAxis: { domain: yDomain, label: projectionAxisTitle(result, yAxis) }, groupOf: colored ? groups.groupOf : undefined, groups: colored ? projectionScatterGroups(groups) : undefined, shapeOf: shapes?.shapeOf, shapes: shapeList, ellipse: ellipse, ellipseMinimumPoints: MINIMUM_OUTLINE_POINTS, showGroupMeans: colored && showGroupMeans, showGroupLabels: colored && showGroupLabels, pointLabels: showIds ? names : undefined, markers: projectionMapMarkers(markers ?? NO_MARKERS, groups, xAxis, yAxis), pointRadius: pointRadius, outlinedFrom: fittedCount, selected: selected, viewport: viewport, onViewportChange: onViewportChange, wheelZoom: wheelZoom, onSelectionChange: onSelectionChange, selectMode: selectMode, onHoverChange: onHoverChange, onPointDoubleClick: onPointDoubleClick, onLassoChange: setDrawing, touchLasso: touchLasso, testId: testId, overlay: _jsxs(ProjectionSurface, { children: [chrome.entries.length === 0 ? null : (_jsx(ProjectionMapLegend, { title: chrome.title, entries: chrome.entries, cloud: cloud, xDomain: viewport?.x ?? xDomain, yDomain: viewport?.y ?? yDomain, width: width, height: height })), _jsx(ProjectionMapCaption, { report: report, copy: copy, mode: selectMode, drawing: drawing }), hoverCard] }) }));
41
45
  }
42
46
  const NO_MARKERS = [];
43
47
  //# sourceMappingURL=ProjectionMapTab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionMapTab.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionMapTab.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionMapTab.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ReactElement } from 'react';
2
2
  import type { ProjectionCopy } from '../core/projectionCopy.ts';
3
3
  import type { ProjectionOptions } from '../core/projectionOptions.ts';
4
+ import type { ProjectionGrouping } from '../core/projectionSamples.ts';
4
5
  /** What the grid keeps behind the cog is drawn from. */
5
6
  interface ProjectionPairsMoreProps {
6
7
  /** What the grid is showing, already resolved against the result. */
@@ -9,17 +10,12 @@ interface ProjectionPairsMoreProps {
9
10
  onChange: (patch: Partial<ProjectionOptions>) => void;
10
11
  /** The words the bar writes, already merged over the defaults. */
11
12
  copy: ProjectionCopy;
12
- /** What the set of groups is called, which is what `Colour by` offers. */
13
- groupLabel: string;
13
+ /** Every grouping the samples carry, which is what `Colour by` offers. */
14
+ groupings: readonly ProjectionGrouping[];
14
15
  /** How many components the run produced, which caps the grid. */
15
16
  axisCount: number;
16
17
  /** Width of the figure, in pixels, which caps it again. */
17
18
  width: number;
18
- /**
19
- * Whether the samples carry groups at all.
20
- * @default false
21
- */
22
- hasGroups?: boolean;
23
19
  }
24
20
  /**
25
21
  * What the grid keeps behind the cog: how many components it lays out, what
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionPairsMore.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPairsMore.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAMtC,wDAAwD;AACxD,UAAU,wBAAwB;IAChC,qEAAqE;IACrE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACtD,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAwCd"}
1
+ {"version":3,"file":"ProjectionPairsMore.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPairsMore.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAMvE,wDAAwD;AACxD,UAAU,wBAAwB;IAChC,qEAAqE;IACrE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACtD,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB,0EAA0E;IAC1E,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAuCd"}
@@ -1,9 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { OverlayNumber } from "../../overlay/ui/OverlayNumber.js";
3
3
  import { OverlayPanel } from "../../overlay/ui/OverlayPanel.js";
4
- import { OverlaySegmented } from "../../overlay/ui/OverlaySegmented.js";
5
4
  import { PROJECTION_TAB_DEFAULTS } from "../core/projectionTabDefaults.js";
6
- import { projectionColourChoices } from "./projectionMapChoices.js";
5
+ import { ProjectionColourPicker } from "./ProjectionGroupingPickers.js";
7
6
  import { projectionPairsCeiling } from "./projectionPairsCeiling.js";
8
7
  /**
9
8
  * What the grid keeps behind the cog: how many components it lays out, what
@@ -21,10 +20,10 @@ import { projectionPairsCeiling } from "./projectionPairsCeiling.js";
21
20
  * @returns The panel behind the cog.
22
21
  */
23
22
  export function ProjectionPairsMore(props) {
24
- const { options, onChange, copy, groupLabel, hasGroups = false } = props;
23
+ const { options, onChange, copy, groupings } = props;
25
24
  const { axisCount, width } = props;
26
- const { bar, help, panel, tab } = copy;
25
+ const { help, panel, tab } = copy;
27
26
  const ceiling = projectionPairsCeiling(axisCount, width);
28
- return (_jsxs(OverlayPanel, { title: tab.pairs, onReset: () => onChange(PROJECTION_TAB_DEFAULTS.pairs), children: [_jsx(OverlayNumber, { label: panel.name.pairCount, help: help.pairCount, value: options.pairCount, min: ceiling.min, max: ceiling.max, onChange: (pairCount) => onChange({ pairCount }) }), _jsx(OverlaySegmented, { label: panel.name.colorBy, help: help.colorBy, value: options.colorBy, disabled: !hasGroups, options: projectionColourChoices(groupLabel, bar.uncoloured), onChange: (colorBy) => onChange({ colorBy }) }), _jsx(OverlayNumber, { label: panel.name.pointRadius, help: help.pointRadius, value: options.pointRadius, min: 1, max: 12, step: 0.5, digits: 1, unit: "px", onChange: (pointRadius) => onChange({ pointRadius }) })] }));
27
+ return (_jsxs(OverlayPanel, { title: tab.pairs, onReset: () => onChange(PROJECTION_TAB_DEFAULTS.pairs), children: [_jsx(OverlayNumber, { label: panel.name.pairCount, help: help.pairCount, value: options.pairCount, min: ceiling.min, max: ceiling.max, onChange: (pairCount) => onChange({ pairCount }) }), _jsx(ProjectionColourPicker, { label: panel.name.colorBy, options: options, onChange: onChange, copy: copy, groupings: groupings }), _jsx(OverlayNumber, { label: panel.name.pointRadius, help: help.pointRadius, value: options.pointRadius, min: 1, max: 12, step: 0.5, digits: 1, unit: "px", onChange: (pointRadius) => onChange({ pointRadius }) })] }));
29
28
  }
30
29
  //# sourceMappingURL=ProjectionPairsMore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionPairsMore.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPairsMore.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAuC,CAAC;AAMzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAuBrE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IACzE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,OAAO,GAAG,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEzD,OAAO,CACL,MAAC,YAAY,IACX,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,aAEtD,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAC3B,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,KAAK,EAAE,OAAO,CAAC,SAAS,EACxB,GAAG,EAAE,OAAO,CAAC,GAAG,EAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAChB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,GAChD,EACF,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EACzB,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,KAAK,EAAE,OAAO,CAAC,OAAO,EACtB,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,EAC5D,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,GAC5C,EACF,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAC7B,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,KAAK,EAAE,OAAO,CAAC,WAAW,EAC1B,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,EAAE,EACP,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,CAAC,EACT,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,GACpD,IACW,CAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ProjectionPairsMore.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPairsMore.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAmC,CAAC;AAIjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAiC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAkBrE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACrD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,OAAO,GAAG,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEzD,OAAO,CACL,MAAC,YAAY,IACX,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,aAEtD,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAC3B,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,KAAK,EAAE,OAAO,CAAC,SAAS,EACxB,GAAG,EAAE,OAAO,CAAC,GAAG,EAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAChB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,GAChD,EACF,KAAC,sBAAsB,IACrB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EACzB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,GACpB,EACF,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAC7B,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,KAAK,EAAE,OAAO,CAAC,WAAW,EAC1B,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,EAAE,EACP,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,CAAC,EACT,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,GACpD,IACW,CAChB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionPairsTab.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPairsTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAU1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAM7E,6CAA6C;AAC7C,UAAU,uBAAuB;IAC/B,6BAA6B;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,4DAA4D;IAC5D,MAAM,EAAE,wBAAwB,CAAC;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CA+Cd"}
1
+ {"version":3,"file":"ProjectionPairsTab.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPairsTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAU1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAM7E,6CAA6C;AAC7C,UAAU,uBAAuB;IAC/B,6BAA6B;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,4DAA4D;IAC5D,MAAM,EAAE,wBAAwB,CAAC;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CA+Cd"}
@@ -5,7 +5,7 @@ import { ScatterMatrix } from "../../scatter/ui/ScatterMatrix.js";
5
5
  import { SCATTER_MATRIX_MOST_AXES } from "../../scatter/ui/scatterMatrixLayout.js";
6
6
  import { fillCopy } from "../core/fillCopy.js";
7
7
  import { PROJECTION_COPY } from "../core/projectionCopy.js";
8
- import { DEFAULT_PROJECTION_OPTIONS } from "../core/projectionOptions.js";
8
+ import { DEFAULT_PROJECTION_OPTIONS, NO_GROUPING, } from "../core/projectionOptions.js";
9
9
  import { ProjectionSurface } from "./ProjectionSurface.js";
10
10
  import { MINIMUM_OUTLINE_POINTS } from "./projectionMapModel.js";
11
11
  import { PROJECTION_TAB_HEIGHT } from "./projectionTabStyles.js";
@@ -30,7 +30,7 @@ export function ProjectionPairsTab(props) {
30
30
  const { width = 0, height = PROJECTION_TAB_HEIGHT, selected } = props;
31
31
  const axes = useMemo(() => result.axes.map((axis) => ({ name: axis.name, share: axis.share })), [result.axes]);
32
32
  const inks = useMemo(() => groups.entries.map(({ id, label, color }) => ({ id, label, color })), [groups]);
33
- const colored = options.colorBy === 'group' && inks.length > 0;
33
+ const colored = options.colorBy !== NO_GROUPING && inks.length > 0;
34
34
  return (_jsx("div", { style: { minHeight: height }, "data-testid": testId, children: _jsx(ScatterMatrix, { scores: result.scores, axes: axes, count: Math.min(options.pairCount, SCATTER_MATRIX_MOST_AXES), width: width, groupOf: colored ? groups.groupOf : undefined, groups: colored ? inks : undefined, ellipse: colored ? options.ellipse : null, ellipseMinimumPoints: MINIMUM_OUTLINE_POINTS, selected: selected, pointRadius: Math.max(1, options.pointRadius - CROWDED_CELL), onSelectPair: onSelectPair, overlay: colored ? (_jsx(ProjectionSurface, { children: _jsx(OverlayLegend, { placement: "top-right", title: fillCopy(copy.legend.mapNoEllipse, {
35
35
  groups: groups.label,
36
36
  }), entries: legendEntries(groups) }) })) : undefined }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionPairsTab.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPairsTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionPairsTab.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPairsTab.tsx"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import type { ProjectionCopy } from '../core/projectionCopy.ts';
3
3
  import type { ProjectionResult } from '../core/projectionResult.ts';
4
4
  import type { ProjectionSamples } from '../core/projectionSamples.ts';
5
5
  import type { ProjectionMapView } from './projectionMapView.ts';
6
+ import type { ProjectionStateApi } from './projectionStateApi.ts';
6
7
  import type { ProjectionModels } from './projectionTabModels.ts';
7
8
  import type { ProjectionVariableTrack } from './projectionVariablesModel.ts';
8
9
  import type { ProjectionSampleOpen } from './projectionViewerProps.ts';
9
- import type { ProjectionStateApi } from './useProjectionState.ts';
10
10
  /** What {@link ProjectionPanel} needs. */
11
11
  interface ProjectionPanelProps {
12
12
  /** The tab, the options and the selection every tab shares. */
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionPanel.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,OAAO,CAAC;AAIxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAQtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,0CAA0C;AAC1C,UAAU,oBAAoB;IAC5B,+DAA+D;IAC/D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,mDAAmD;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB,wBAAwB;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,gBAAgB,CAAC;IACzB,iEAAiE;IACjE,GAAG,EAAE,iBAAiB,CAAC;IACvB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CA8JzE"}
1
+ {"version":3,"file":"ProjectionPanel.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,OAAO,CAAC;AAIxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAQtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,0CAA0C;AAC1C,UAAU,oBAAoB;IAC5B,+DAA+D;IAC/D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,mDAAmD;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB,wBAAwB;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,gBAAgB,CAAC;IACzB,iEAAiE;IACjE,GAAG,EAAE,iBAAiB,CAAC;IACvB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAkKzE"}
@@ -55,7 +55,7 @@ export function ProjectionPanel(props) {
55
55
  return;
56
56
  onSampleDoubleClick({ ...point, id });
57
57
  };
58
- return (_jsxs("div", { ref: box, id: panelId, role: strip ? 'tabpanel' : undefined, "aria-labelledby": strip ? `${baseId}-${state.tab}` : undefined, onPointerMove: trackPointer, children: [state.tab === 'pairs' ? (_jsx(ProjectionPairsTab, { result: result, groups: state.groups, options: state.options, copy: copy, width: width, height: height, selected: state.selected, onSelectPair: state.selectPair })) : null, state.tab === 'variables' ? (_jsx(ProjectionVariablesTab, { profiles: models.profiles, options: state.options, copy: copy, sampleName: models.sampleName, width: width, height: height, onTrackVariable: onTrackVariable, formatValue: formatValue })) : null, state.tab === 'shares' ? (_jsx(ProjectionSharesTab, { result: result, shares: models.shares, copy: copy, width: width, height: height })) : null, state.tab === 'space' ? (_jsx(ProjectionSpaceTab, { result: result, groups: state.groups, options: state.options, copy: copy, chrome: map.spaceChrome, ids: samples.ids, width: width, height: height, selected: state.selected, camera: map.camera, onCameraChange: map.setCamera, zoom: map.zoom, onZoomChange: map.setZoom, wheelZoom: wheelZoom, report: map.report, onSelectionChange: map.settle, onHoverChange: noteHover, onPointDoubleClick: openSample, hoverCard: anchor.index < 0 ? null : (_jsx(ProjectionReadout, { index: anchor.index, result: result, samples: samples, groups: state.groups, xAxis: state.options.xAxis, yAxis: state.options.yAxis, zAxis: state.options.zAxis, x: anchor.x, y: anchor.y, boxWidth: width, boxHeight: height, formatValue: formatValue })) })) : null, state.tab === 'map' ? (_jsx(ProjectionMapTab, { result: result, groups: state.groups, options: state.options, copy: copy, chrome: map.chrome, ids: samples.ids, viewport: map.viewport, onViewportChange: map.setViewport, wheelZoom: wheelZoom, report: map.report, width: width, height: height, selected: state.selected, onSelectionChange: map.settle, onHoverChange: noteHover, onPointDoubleClick: openSample, touchLasso: touchLasso, hoverCard: anchor.index < 0 ? null : (_jsx(ProjectionReadout, { index: anchor.index, result: result, samples: samples, groups: state.groups, xAxis: state.options.xAxis, yAxis: state.options.yAxis, x: anchor.x, y: anchor.y, boxWidth: width, boxHeight: height, formatValue: formatValue })) })) : null] }));
58
+ return (_jsxs("div", { ref: box, id: panelId, role: strip ? 'tabpanel' : undefined, "aria-labelledby": strip ? `${baseId}-${state.tab}` : undefined, onPointerMove: trackPointer, children: [state.tab === 'pairs' ? (_jsx(ProjectionPairsTab, { result: result, groups: state.groups, options: state.options, copy: copy, width: width, height: height, selected: state.selected, onSelectPair: state.selectPair })) : null, state.tab === 'variables' ? (_jsx(ProjectionVariablesTab, { profiles: models.profiles, options: state.options, copy: copy, sampleName: models.sampleName, width: width, height: height, onTrackVariable: onTrackVariable, formatValue: formatValue })) : null, state.tab === 'shares' ? (_jsx(ProjectionSharesTab, { result: result, shares: models.shares, copy: copy, width: width, height: height })) : null, state.tab === 'space' ? (_jsx(ProjectionSpaceTab, { result: result, groups: state.groups, options: state.options, copy: copy, chrome: map.spaceChrome, shapes: state.shapes, names: samples.labels ?? samples.ids, width: width, height: height, selected: state.selected, camera: map.camera, onCameraChange: map.setCamera, zoom: map.zoom, onZoomChange: map.setZoom, wheelZoom: wheelZoom, report: map.report, onSelectionChange: map.settle, onHoverChange: noteHover, onPointDoubleClick: openSample, hoverCard: anchor.index < 0 ? null : (_jsx(ProjectionReadout, { index: anchor.index, result: result, samples: samples, groups: state.groups, colorBy: state.options.colorBy, xAxis: state.options.xAxis, yAxis: state.options.yAxis, zAxis: state.options.zAxis, x: anchor.x, y: anchor.y, boxWidth: width, boxHeight: height, formatValue: formatValue })) })) : null, state.tab === 'map' ? (_jsx(ProjectionMapTab, { result: result, groups: state.groups, options: state.options, copy: copy, chrome: map.chrome, shapes: state.shapes, names: samples.labels ?? samples.ids, viewport: map.viewport, onViewportChange: map.setViewport, wheelZoom: wheelZoom, report: map.report, width: width, height: height, selected: state.selected, onSelectionChange: map.settle, onHoverChange: noteHover, onPointDoubleClick: openSample, touchLasso: touchLasso, hoverCard: anchor.index < 0 ? null : (_jsx(ProjectionReadout, { index: anchor.index, result: result, samples: samples, groups: state.groups, colorBy: state.options.colorBy, xAxis: state.options.xAxis, yAxis: state.options.yAxis, x: anchor.x, y: anchor.y, boxWidth: width, boxHeight: height, formatValue: formatValue })) })) : null] }));
59
59
  }
60
60
  /** Where the pointer is before it has been anywhere. */
61
61
  const NOWHERE = { x: 0, y: 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionPanel.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionPanel.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionPanel.tsx"],"names":[],"mappings":"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"}
@@ -9,8 +9,14 @@ interface ProjectionReadoutProps {
9
9
  result: ProjectionResult;
10
10
  /** Who the rows are. */
11
11
  samples: ProjectionSamples;
12
- /** The groups as the figure draws them, for the row's group and its colour. */
12
+ /** The grouping the figure is coloured by, for the colour of the row's group. */
13
13
  groups: ResolvedProjectionGroups;
14
+ /**
15
+ * Which grouping colours the figure, so the row of that grouping carries the
16
+ * colour its dot is drawn in.
17
+ * @default undefined — no row carries a colour
18
+ */
19
+ colorBy?: string;
14
20
  /** Which axis is drawn horizontally, from 0. */
15
21
  xAxis: number;
16
22
  /** Which axis is drawn vertically. */
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionReadout.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionReadout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EACV,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAItC,sDAAsD;AACtD,UAAU,sBAAsB;IAC9B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,EAAE,gBAAgB,CAAC;IACzB,wBAAwB;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,+EAA+E;IAC/E,MAAM,EAAE,wBAAwB,CAAC;IACjC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,CAAC,EAAE,MAAM,CAAC;IACV,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;IACV,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CA2C7E"}
1
+ {"version":3,"file":"ProjectionReadout.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionReadout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EACV,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAItC,sDAAsD;AACtD,UAAU,sBAAsB;IAC9B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,EAAE,gBAAgB,CAAC;IACzB,wBAAwB;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iFAAiF;IACjF,MAAM,EAAE,wBAAwB,CAAC;IACjC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,CAAC,EAAE,MAAM,CAAC;IACV,6DAA6D;IAC7D,CAAC,EAAE,MAAM,CAAC;IACV,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CAgD7E"}