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
@@ -15,12 +15,15 @@ import { formatProjectionValue } from "./projectionFormat.js";
15
15
  * @returns The card.
16
16
  */
17
17
  export function ProjectionReadout(props) {
18
- const { index, result, samples, groups, xAxis, yAxis, zAxis, x, y, boxWidth, boxHeight, formatValue = formatProjectionValue, maxRows = 12, pinned = false, onUnpin, testId, } = props;
18
+ const { index, result, samples, groups, colorBy, xAxis, yAxis, zAxis, x, y, boxWidth, boxHeight, formatValue = formatProjectionValue, maxRows = 12, pinned = false, onUnpin, testId, } = props;
19
19
  const drawn = useMemo(() => (zAxis === undefined ? [xAxis, yAxis] : [xAxis, yAxis, zAxis]), [xAxis, yAxis, zAxis]);
20
- const rows = useMemo(() => readoutRows(index, result, samples, groups, drawn, formatValue), [drawn, formatValue, groups, index, result, samples]);
21
- return (_jsx(OverlayReadout, { x: x, y: y, boxWidth: boxWidth, boxHeight: boxHeight, title: samples.ids[index] ?? '', rows: rows, maxRows: maxRows, pinned: pinned, onUnpin: onUnpin, testId: testId }));
20
+ const rows = useMemo(() => readoutRows(index, result, samples, drawn, formatValue, {
21
+ groups,
22
+ colorBy,
23
+ }), [colorBy, drawn, formatValue, groups, index, result, samples]);
24
+ return (_jsx(OverlayReadout, { x: x, y: y, boxWidth: boxWidth, boxHeight: boxHeight, title: samples.labels?.[index] ?? samples.ids[index] ?? '', rows: rows, maxRows: maxRows, pinned: pinned, onUnpin: onUnpin, testId: testId }));
22
25
  }
23
- function readoutRows(index, result, samples, groups, drawn, formatValue) {
26
+ function readoutRows(index, result, samples, drawn, formatValue, coloured) {
24
27
  const rows = [];
25
28
  const { axes, scores } = result;
26
29
  const known = index >= 0 && index < scores.rows;
@@ -33,9 +36,18 @@ function readoutRows(index, result, samples, groups, drawn, formatValue) {
33
36
  value: formatValue(known ? scores.get(index, axis) : Number.NaN),
34
37
  });
35
38
  }
36
- const group = groups.entries[groups.groupOf[index] ?? -1];
37
- if (group !== undefined) {
38
- rows.push({ label: groups.label, value: group.label, color: group.color });
39
+ // Every grouping is written, the one the dots are coloured by with its
40
+ // colour: a card naming only the colour's group would hide the very
41
+ // grouping the shapes stand for.
42
+ const { groups, colorBy } = coloured;
43
+ for (const grouping of samples.groupings ?? []) {
44
+ const value = grouping.groups[index];
45
+ if (value === undefined)
46
+ continue;
47
+ const group = grouping.id === colorBy
48
+ ? groups.entries[groups.groupOf[index] ?? -1]
49
+ : undefined;
50
+ rows.push({ label: grouping.label, value, color: group?.color });
39
51
  }
40
52
  if (known && samples.fields !== undefined) {
41
53
  for (const field of samples.fields(index)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionReadout.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionReadout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionReadout.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionReadout.tsx"],"names":[],"mappings":"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"}
@@ -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 cloud's controls are drawn from, wherever in the bar they sit. */
7
8
  export interface ProjectionSpaceControlsProps {
@@ -11,14 +12,11 @@ export interface ProjectionSpaceControlsProps {
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. */
15
- groupLabel: string;
16
15
  /**
17
- * Whether the samples carry groups at all. Without them the shells stand for
16
+ * Every grouping the samples carry. Without one the shells stand for
18
17
  * nothing, so their control is greyed rather than removed.
19
- * @default false
20
18
  */
21
- hasGroups?: boolean;
19
+ groupings: readonly ProjectionGrouping[];
22
20
  /**
23
21
  * What the settings currently read, built once for the bar and handed down.
24
22
  * @default [] — nothing is written, which is what the cog's panel wants
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionSpaceControls.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAOtE,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;AAUpE,8EAA8E;AAC9E,MAAM,WAAW,4BAA4B;IAC3C,sEAAsE;IACtE,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,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACxC;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,YAAY,CAuEd"}
1
+ {"version":3,"file":"ProjectionSpaceControls.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAOtE,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;AASpE,8EAA8E;AAC9E,MAAM,WAAW,4BAA4B;IAC3C,sEAAsE;IACtE,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;;;OAGG;IACH,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACxC;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAClC,YAAY,CAuEd"}
@@ -4,9 +4,10 @@ import { OverlaySegmented } from "../../overlay/ui/OverlaySegmented.js";
4
4
  import { OverlaySelect } from "../../overlay/ui/OverlaySelect.js";
5
5
  import { OverlayToggle } from "../../overlay/ui/OverlayToggle.js";
6
6
  import { OverlayValueMenu } from "../../overlay/ui/OverlayValueMenu.js";
7
+ import { NO_GROUPING } from "../core/projectionOptions.js";
8
+ import { ProjectionColourPicker } from "./ProjectionGroupingPickers.js";
7
9
  import { projectionChipSettings } from "./projectionBarReadings.js";
8
10
  import { ellipseChoices, ellipseKey, ellipseSize, } from "./projectionEllipse.js";
9
- import { projectionColourChoices } from "./projectionMapChoices.js";
10
11
  import { projectionCloudGestureChoices } from "./projectionWordChoices.js";
11
12
  /**
12
13
  * The cloud settings a reader changes while looking at the picture.
@@ -26,13 +27,14 @@ import { projectionCloudGestureChoices } from "./projectionWordChoices.js";
26
27
  * @returns The controls.
27
28
  */
28
29
  export function ProjectionSpaceControls(props) {
29
- const { options, onChange, copy, groupLabel, hasGroups = false } = props;
30
+ const { options, onChange, copy, groupings } = props;
30
31
  const { readings = NO_READINGS, tier = 'full' } = props;
31
32
  const { bar, help, outline, reason } = copy;
32
- const uncoloured = !hasGroups || options.colorBy === 'none';
33
+ const hasGroups = groupings.length > 0;
34
+ const uncoloured = !hasGroups || options.colorBy === NO_GROUPING;
33
35
  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 }) })] }));
34
36
  if (tier === 'chip' || tier === 'tiny') {
35
- return (_jsxs(_Fragment, { children: [_jsx(OverlayChip, { label: bar.settings, settings: projectionChipSettings(readings), children: _jsx(SpaceSettings, { options: options, onChange: onChange, copy: copy, groupLabel: groupLabel, hasGroups: hasGroups }) }), names] }));
37
+ return (_jsxs(_Fragment, { children: [_jsx(OverlayChip, { label: bar.settings, settings: projectionChipSettings(readings), children: _jsx(SpaceSettings, { options: options, onChange: onChange, copy: copy, groupings: groupings }) }), names] }));
36
38
  }
37
39
  return (_jsxs(_Fragment, { children: [_jsx(OverlayValueMenu, { label: help.cloudGesture.title, keyWord: bar.key.cloudGesture, showKey: tier === 'full', value: options.cloudGesture, options: projectionCloudGestureChoices(copy), onChange: (cloudGesture) => onChange({ cloudGesture }) }), _jsx(OverlayValueMenu, { label: help.ellipse.title, keyWord: bar.key.ellipse, showKey: tier === 'full', value: ellipseKey(options.ellipse), disabled: uncoloured, disabledReason: reason.uncolouredShells, options: ellipseChoices(options.ellipse, outline, 'space'), onChange: (value) => onChange({ ellipse: ellipseSize(value) }) }), names] }));
38
40
  }
@@ -42,9 +44,9 @@ export function ProjectionSpaceControls(props) {
42
44
  * @returns The captioned controls.
43
45
  */
44
46
  function SpaceSettings(props) {
45
- const { options, onChange, copy, groupLabel, hasGroups } = props;
46
- const { bar, help, outline } = copy;
47
- return (_jsxs(_Fragment, { children: [_jsx(OverlaySegmented, { label: help.cloudGesture.title, help: help.cloudGesture, value: options.cloudGesture, options: projectionCloudGestureChoices(copy), onChange: (cloudGesture) => onChange({ cloudGesture }) }), _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, 'space'), onChange: (value) => onChange({ ellipse: ellipseSize(value) }) })] }));
47
+ const { options, onChange, copy, groupings } = props;
48
+ const { help, outline } = copy;
49
+ return (_jsxs(_Fragment, { children: [_jsx(OverlaySegmented, { label: help.cloudGesture.title, help: help.cloudGesture, value: options.cloudGesture, options: projectionCloudGestureChoices(copy), onChange: (cloudGesture) => onChange({ cloudGesture }) }), _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, 'space'), onChange: (value) => onChange({ ellipse: ellipseSize(value) }) })] }));
48
50
  }
49
51
  /** The two glyphs the name switches ride as, the same pair the map uses. */
50
52
  const GROUP_LABELS_GLYPH = 'tag';
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionSpaceControls.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceControls.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionSpaceControls.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceControls.tsx"],"names":[],"mappings":"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"}
@@ -17,8 +17,8 @@ interface ProjectionSpaceMoreProps extends ProjectionSpaceControlsProps {
17
17
  onClearSelection: () => void;
18
18
  }
19
19
  /**
20
- * What the cloud keeps behind the cog: its three axes, the dot size, and what
21
- * the two drags do.
20
+ * What the cloud keeps behind the cog: its three axes, the dot size and shape,
21
+ * and what the two drags do.
22
22
  *
23
23
  * It is the map's panel with one picker more and one action fewer. There is no
24
24
  * "zoom to selection" here, because a box has no frame to draw round a crowd:
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionSpaceMore.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceMore.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,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAOlF,8EAA8E;AAC9E,UAAU,wBAAyB,SAAQ,4BAA4B;IACrE,gFAAgF;IAChF,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CA+Fd"}
1
+ {"version":3,"file":"ProjectionSpaceMore.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceMore.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAU1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAIpE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAOlF,8EAA8E;AAC9E,UAAU,wBAAyB,SAAQ,4BAA4B;IACrE,gFAAgF;IAChF,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAuGd"}
@@ -6,11 +6,12 @@ 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 { PROJECTION_TAB_DEFAULTS } from "../core/projectionTabDefaults.js";
9
+ import { ProjectionShapePicker } from "./ProjectionGroupingPickers.js";
9
10
  import { projectionAxisChoices } from "./projectionAxisChoices.js";
10
11
  import { projectionCloudGestureChoices, projectionSelectModeChoices, } from "./projectionWordChoices.js";
11
12
  /**
12
- * What the cloud keeps behind the cog: its three axes, the dot size, and what
13
- * the two drags do.
13
+ * What the cloud keeps behind the cog: its three axes, the dot size and shape,
14
+ * and what the two drags do.
14
15
  *
15
16
  * It is the map's panel with one picker more and one action fewer. There is no
16
17
  * "zoom to selection" here, because a box has no frame to draw round a crowd:
@@ -21,10 +22,10 @@ import { projectionCloudGestureChoices, projectionSelectModeChoices, } from "./p
21
22
  * @returns The panel behind the cog.
22
23
  */
23
24
  export function ProjectionSpaceMore(props) {
24
- const { result, options, onChange, copy } = props;
25
+ const { result, options, onChange, copy, groupings } = props;
25
26
  const { selectedCount = 0, onResetView, onClearSelection } = props;
26
27
  const { action, help, panel, reason, tab } = copy;
27
28
  const nothingPicked = selectedCount === 0;
28
- return (_jsxs(OverlayPanel, { title: tab.space, onReset: () => onChange(PROJECTION_TAB_DEFAULTS.space), actions: _jsxs(_Fragment, { children: [_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, options.zAxis], reason.axisTakenInSpace), onChange: (value) => onChange({ xAxis: Number(value) }) }), _jsx(OverlaySelect, { label: panel.name.yAxis, help: help.yAxis, value: String(options.yAxis), options: projectionAxisChoices(result, [options.xAxis, options.zAxis], reason.axisTakenInSpace), onChange: (value) => onChange({ yAxis: Number(value) }) }), _jsx(OverlaySelect, { label: panel.name.zAxis, help: help.zAxis, value: String(options.zAxis), options: projectionAxisChoices(result, [options.xAxis, options.yAxis], reason.axisTakenInSpace), onChange: (value) => onChange({ zAxis: Number(value) }) })] }), _jsx(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(OverlayGroup, { label: panel.section.handling, children: _jsx(OverlaySegmented, { label: panel.name.cloudGesture, help: help.cloudGesture, value: options.cloudGesture, options: projectionCloudGestureChoices(copy), onChange: (cloudGesture) => onChange({ cloudGesture }) }) }), _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 }) }) })] }));
29
+ return (_jsxs(OverlayPanel, { title: tab.space, onReset: () => onChange(PROJECTION_TAB_DEFAULTS.space), actions: _jsxs(_Fragment, { children: [_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, options.zAxis], reason.axisTakenInSpace), onChange: (value) => onChange({ xAxis: Number(value) }) }), _jsx(OverlaySelect, { label: panel.name.yAxis, help: help.yAxis, value: String(options.yAxis), options: projectionAxisChoices(result, [options.xAxis, options.zAxis], reason.axisTakenInSpace), onChange: (value) => onChange({ yAxis: Number(value) }) }), _jsx(OverlaySelect, { label: panel.name.zAxis, help: help.zAxis, value: String(options.zAxis), options: projectionAxisChoices(result, [options.xAxis, options.yAxis], reason.axisTakenInSpace), onChange: (value) => onChange({ zAxis: 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(OverlayGroup, { label: panel.section.handling, children: _jsx(OverlaySegmented, { label: panel.name.cloudGesture, help: help.cloudGesture, value: options.cloudGesture, options: projectionCloudGestureChoices(copy), onChange: (cloudGesture) => onChange({ cloudGesture }) }) }), _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 }) }) })] }));
29
30
  }
30
31
  //# sourceMappingURL=ProjectionSpaceMore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionSpaceMore.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceMore.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionSpaceMore.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceMore.tsx"],"names":[],"mappings":"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"}
@@ -5,15 +5,23 @@ import type { OrbitCamera } from '../../scatter3d/core/orbitCamera.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 ProjectionSpaceTab} needs. */
12
12
  interface ProjectionSpaceTabProps {
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 cloud is showing, already resolved against `result`. */
18
26
  options: ProjectionOptions;
19
27
  /** The words the cloud writes, already merged over the defaults. */
@@ -24,7 +32,7 @@ interface ProjectionSpaceTabProps {
24
32
  * What each sample is called, in the score matrix's row order.
25
33
  * @default undefined — the setting has nothing to write and draws nothing
26
34
  */
27
- ids?: readonly string[];
35
+ names?: readonly string[];
28
36
  /** Width of the figure, in pixels. */
29
37
  width: number;
30
38
  /** Height of the figure, in pixels. */
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionSpaceTab.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,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;AAQpE,6CAA6C;AAC7C,UAAU,uBAAuB;IAC/B,mDAAmD;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB,0EAA0E;IAC1E,MAAM,EAAE,wBAAwB,CAAC;IACjC,oEAAoE;IACpE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,oEAAoE;IACpE,IAAI,EAAE,cAAc,CAAC;IACrB,0EAA0E;IAC1E,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;OAGG;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,2EAA2E;IAC3E,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC;;;OAGG;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,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CA6Ed"}
1
+ {"version":3,"file":"ProjectionSpaceTab.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,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;AASpE,6CAA6C;AAC7C,UAAU,uBAAuB;IAC/B,mDAAmD;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;OAGG;IACH,MAAM,EAAE,wBAAwB,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACzC,oEAAoE;IACpE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,oEAAoE;IACpE,IAAI,EAAE,cAAc,CAAC;IACrB,0EAA0E;IAC1E,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;OAGG;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,2EAA2E;IAC3E,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC;;;OAGG;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,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,YAAY,CAiFd"}
@@ -1,10 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
3
  import { ScatterCloud } from "../../scatter3d/ui/ScatterCloud.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 { projectionAxisTitle, projectionMapCloud, projectionScatterGroups, } from "./projectionMapModel.js";
8
+ import { projectionAxisTitle, projectionMapCloud, projectionScatterGroups, projectionScatterShapes, } from "./projectionMapModel.js";
8
9
  import { MINIMUM_SHELL_POINTS } from "./projectionSpaceModel.js";
9
10
  /**
10
11
  * The cloud: the same samples as the map, in a box the reader can turn.
@@ -26,7 +27,8 @@ import { MINIMUM_SHELL_POINTS } from "./projectionSpaceModel.js";
26
27
  */
27
28
  export function ProjectionSpaceTab(props) {
28
29
  const { result, groups, options, copy, chrome, width, height } = props;
29
- const { ids, selected, report = null, camera, zoom } = props;
30
+ const { names, shapes = null, selected } = props;
31
+ const { report = null, camera, zoom } = props;
30
32
  const { onCameraChange, onZoomChange, wheelZoom } = props;
31
33
  const { onSelectionChange, onHoverChange, hoverCard, testId } = props;
32
34
  const { onPointDoubleClick } = props;
@@ -36,8 +38,9 @@ export function ProjectionSpaceTab(props) {
36
38
  const { ellipse: shells } = options;
37
39
  const flat = useMemo(() => projectionMapCloud(scores, xAxis, yAxis), [scores, xAxis, yAxis]);
38
40
  const depth = useMemo(() => projectionMapCloud(scores, zAxis, zAxis).x, [scores, zAxis]);
39
- const colored = colorBy === 'group' && groups.entries.length > 0;
40
- return (_jsx("div", { style: { position: 'relative' }, "data-testid": testId, children: _jsx(ScatterCloud, { x: flat.x, y: flat.y, z: depth, width: width, height: height, xLabel: axisName(result, xAxis), yLabel: axisName(result, yAxis), zLabel: axisName(result, zAxis), groupOf: colored ? groups.groupOf : undefined, groups: colored ? projectionScatterGroups(groups) : undefined, ellipsoid: colored ? shells : null, ellipsoidMinimumPoints: MINIMUM_SHELL_POINTS, showGroupLabels: colored && showGroupLabels, pointLabels: showIds ? ids : undefined, pointRadius: pointRadius, outlinedFrom: fittedCount, selected: selected, onSelectionChange: onSelectionChange, selectMode: selectMode, onHoverChange: onHoverChange, onPointDoubleClick: onPointDoubleClick, gesture: cloudGesture, camera: camera, onCameraChange: onCameraChange, zoom: zoom, onZoomChange: onZoomChange, wheelZoom: wheelZoom, overlay: _jsxs(ProjectionSurface, { children: [chrome.entries.length === 0 ? null : (_jsx(ProjectionMapLegend, { title: chrome.title, entries: chrome.entries, cloud: flat, xDomain: CUBE_DOMAIN, yDomain: CUBE_DOMAIN, width: width, height: height })), _jsx(ProjectionMapCaption, { report: report, copy: copy, mode: selectMode, drawing: false }), hoverCard] }) }) }));
41
+ const shapeList = useMemo(() => projectionScatterShapes(shapes), [shapes]);
42
+ const colored = colorBy !== NO_GROUPING && groups.entries.length > 0;
43
+ return (_jsx("div", { style: { position: 'relative' }, "data-testid": testId, children: _jsx(ScatterCloud, { x: flat.x, y: flat.y, z: depth, width: width, height: height, xLabel: axisName(result, xAxis), yLabel: axisName(result, yAxis), zLabel: axisName(result, zAxis), groupOf: colored ? groups.groupOf : undefined, groups: colored ? projectionScatterGroups(groups) : undefined, shapeOf: shapes?.shapeOf, shapes: shapeList, ellipsoid: colored ? shells : null, ellipsoidMinimumPoints: MINIMUM_SHELL_POINTS, showGroupLabels: colored && showGroupLabels, pointLabels: showIds ? names : undefined, pointRadius: pointRadius, outlinedFrom: fittedCount, selected: selected, onSelectionChange: onSelectionChange, selectMode: selectMode, onHoverChange: onHoverChange, onPointDoubleClick: onPointDoubleClick, gesture: cloudGesture, camera: camera, onCameraChange: onCameraChange, zoom: zoom, onZoomChange: onZoomChange, wheelZoom: wheelZoom, overlay: _jsxs(ProjectionSurface, { children: [chrome.entries.length === 0 ? null : (_jsx(ProjectionMapLegend, { title: chrome.title, entries: chrome.entries, cloud: flat, xDomain: CUBE_DOMAIN, yDomain: CUBE_DOMAIN, width: width, height: height })), _jsx(ProjectionMapCaption, { report: report, copy: copy, mode: selectMode, drawing: false }), hoverCard] }) }) }));
41
44
  }
42
45
  /**
43
46
  * What an arm of the frame is called.
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionSpaceTab.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceTab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionSpaceTab.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceTab.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionViewer.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAazD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAyE3E"}
1
+ {"version":3,"file":"ProjectionViewer.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAazD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CA0E3E"}
@@ -57,6 +57,7 @@ export function ProjectionViewer(props) {
57
57
  result,
58
58
  copy,
59
59
  groups: state.groups,
60
+ shapes: state.shapes,
60
61
  options: state.options,
61
62
  selected: state.selected,
62
63
  onSettle: state.settleSelection,
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionViewer.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionViewer.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionViewer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IACtE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,qBAAqB,EAAE,GAAG,KAAK,CAAC;IAC5E,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,EAAE,WAAW,GAAG,qBAAqB,EAAE,QAAQ,GAAG,YAAY,EAAE,GACpE,KAAK,CAAC;IAER,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IAElE,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,oBAAoB,CAAC;QAC/B,MAAM;QACN,IAAI;QACJ,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,eAAe;KAChC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,MAAM,QAAQ,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAEpC,OAAO,CACL,eACE,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,cAAc,CAAC,mBAAmB,EAAE,SAAS,CAAC,iBAC5C,MAAM,EACnB,KAAK,EAAE,YAAY,aAEnB,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,GACZ,EACF,KAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,GACpB,IACE,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;;;GAMG;AACH,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,KAAK,EAAE,MAAM;CACmB,CAAC"}
@@ -42,7 +42,10 @@ interface ProjectionReadingsInput {
42
42
  copy: ProjectionCopy;
43
43
  /** What the figure is showing, already made safe against the result. */
44
44
  options: ProjectionOptions;
45
- /** The groups as every figure draws them, whose colours the map writes. */
45
+ /**
46
+ * The grouping the figures are coloured by, whose colours the map writes;
47
+ * empty while nothing colours them.
48
+ */
46
49
  groups: ResolvedProjectionGroups;
47
50
  }
48
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarReadings.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,2DAA2D;AAC3D,UAAU,uBAAuB;IAC/B,yEAAyE;IACzE,GAAG,EAAE,aAAa,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,wEAAwE;IACxE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2EAA2E;IAC3E,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,uBAAuB,GAC7B,SAAS,iBAAiB,EAAE,CAoD9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,OAAO,EAAE,cAAc,GACtB,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACrC,SAAS,kBAAkB,EAAE,CAU/B"}
1
+ {"version":3,"file":"projectionBarReadings.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,2DAA2D;AAC3D,UAAU,uBAAuB;IAC/B,yEAAyE;IACzE,GAAG,EAAE,aAAa,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,wEAAwE;IACxE,OAAO,EAAE,iBAAiB,CAAC;IAC3B;;;OAGG;IACH,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,uBAAuB,GAC7B,SAAS,iBAAiB,EAAE,CAmD9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,OAAO,EAAE,cAAc,GACtB,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACrC,SAAS,kBAAkB,EAAE,CAU/B"}
@@ -8,6 +8,7 @@
8
8
  * `Colour by species` and folding the bar at the wrong width.
9
9
  */
10
10
  import { chartShare } from "../../chart/core/chartLabels.js";
11
+ import { NO_GROUPING } from "../core/projectionOptions.js";
11
12
  import { ellipseCoverageText } from "./projectionEllipse.js";
12
13
  /**
13
14
  * What the tab showing writes at the far end of the bar.
@@ -37,7 +38,7 @@ export function projectionBarReadings(input) {
37
38
  ];
38
39
  }
39
40
  if (tab === 'space') {
40
- const coverage = options.colorBy === 'group' && groups.entries.length > 0
41
+ const coverage = isColoured(options, groups)
41
42
  ? ellipseCoverageText(options.ellipse, 'space')
42
43
  : '';
43
44
  return [
@@ -108,11 +109,11 @@ export function projectionChipSettings(readings) {
108
109
  * Empty while the colour stands for nothing, so a bar that says `Nothing`
109
110
  * does not carry a row of dots contradicting it.
110
111
  * @param options - What the figure is showing.
111
- * @param groups - The groups as every figure draws them.
112
+ * @param groups - The grouping the figures are coloured by.
112
113
  * @returns The colours, in the order the figure draws them.
113
114
  */
114
115
  function projectionGroupColors(options, groups) {
115
- if (options.colorBy !== 'group')
116
+ if (!isColoured(options, groups))
116
117
  return NO_COLORS;
117
118
  const colors = [];
118
119
  for (const entry of groups.entries)
@@ -134,7 +135,7 @@ function projectionGroupColors(options, groups) {
134
135
  */
135
136
  function mapReadings(copy, options, groups) {
136
137
  const { bar, help } = copy;
137
- const colored = options.colorBy === 'group';
138
+ const colored = isColoured(options, groups);
138
139
  const coverage = ellipseCoverageText(options.ellipse);
139
140
  return [
140
141
  {
@@ -150,6 +151,15 @@ function mapReadings(copy, options, groups) {
150
151
  },
151
152
  ];
152
153
  }
154
+ /**
155
+ * Whether the colour stands for a grouping at all.
156
+ * @param options - What the figure is showing.
157
+ * @param groups - The grouping the figures are coloured by.
158
+ * @returns `true` when the dots are painted by group.
159
+ */
160
+ function isColoured(options, groups) {
161
+ return options.colorBy !== NO_GROUPING && groups.entries.length > 0;
162
+ }
153
163
  /** No colours at all, which is what an uncoloured map paints. */
154
164
  const NO_COLORS = [];
155
165
  //# sourceMappingURL=projectionBarReadings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarReadings.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectionBarReadings.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ 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
5
  import type { ProjectionResult } from '../core/projectionResult.ts';
6
- import type { ResolvedProjectionGroups } from '../core/projectionSamples.ts';
6
+ import type { ProjectionGrouping, ResolvedProjectionGroups } from '../core/projectionSamples.ts';
7
7
  import type { ProjectionTab } from '../core/projectionTabs.ts';
8
8
  import type { ProjectionReading } from './projectionBarReadings.ts';
9
9
  import type { ProjectionMapView } from './projectionMapView.ts';
@@ -31,8 +31,10 @@ interface ProjectionBarSlotsInput {
31
31
  map: ProjectionMapView;
32
32
  /** Every option, already made safe against the result. */
33
33
  options: ProjectionOptions;
34
- /** The groups as every figure draws them. */
34
+ /** The grouping the figures are coloured by; empty while nothing colours them. */
35
35
  groups: ResolvedProjectionGroups;
36
+ /** Every grouping the samples carry, which the pickers choose between. */
37
+ groupings: readonly ProjectionGrouping[];
36
38
  /** The selected rows, as indices. */
37
39
  selected: readonly number[];
38
40
  /** Width of the viewer, in pixels. */
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarSlots.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAY/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAMhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,gDAAgD;AAChD,UAAU,kBAAkB;IAC1B,0EAA0E;IAC1E,GAAG,EAAE,SAAS,CAAC;IACf,8DAA8D;IAC9D,IAAI,EAAE,SAAS,CAAC;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+DAA+D;AAC/D,UAAU,uBAAuB;IAC/B,uBAAuB;IACvB,GAAG,EAAE,aAAa,CAAC;IACnB,6BAA6B;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,mCAAmC;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,wCAAwC;IACxC,MAAM,EAAE,gBAAgB,CAAC;IACzB,sDAAsD;IACtD,GAAG,EAAE,iBAAiB,CAAC;IACvB,0DAA0D;IAC1D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,6CAA6C;IAC7C,MAAM,EAAE,wBAAwB,CAAC;IACjC,qCAAqC;IACrC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,2DAA2D;IAC3D,IAAI,EAAE,WAAW,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CA8EpB"}
1
+ {"version":3,"file":"projectionBarSlots.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAY/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAMhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,gDAAgD;AAChD,UAAU,kBAAkB;IAC1B,0EAA0E;IAC1E,GAAG,EAAE,SAAS,CAAC;IACf,8DAA8D;IAC9D,IAAI,EAAE,SAAS,CAAC;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+DAA+D;AAC/D,UAAU,uBAAuB;IAC/B,uBAAuB;IACvB,GAAG,EAAE,aAAa,CAAC;IACnB,6BAA6B;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,mCAAmC;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,wCAAwC;IACxC,MAAM,EAAE,gBAAgB,CAAC;IACzB,sDAAsD;IACtD,GAAG,EAAE,iBAAiB,CAAC;IACvB,0DAA0D;IAC1D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,kFAAkF;IAClF,MAAM,EAAE,wBAAwB,CAAC;IACjC,0EAA0E;IAC1E,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC,qCAAqC;IACrC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,2DAA2D;IAC3D,IAAI,EAAE,WAAW,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CA0EpB"}
@@ -23,14 +23,12 @@ import { projectionPairsInfo, projectionSharesInfo, projectionVariablesInfo, } f
23
23
  */
24
24
  export function projectionBarSlots(input) {
25
25
  const { tab, result, copy, models, map, readings, tier } = input;
26
- const { options, groups, selected, width, onChange } = input;
27
- const hasGroups = groups.entries.length > 0;
28
- const colored = options.colorBy === 'group' && hasGroups;
29
- const shared = { options, onChange, copy, groupLabel: groups.label };
26
+ const { options, groups, groupings, selected, width, onChange } = input;
27
+ const colored = groups.entries.length > 0;
28
+ const shared = { options, onChange, copy, groupings };
30
29
  if (tab === 'pairs') {
31
30
  const pairs = {
32
31
  ...shared,
33
- hasGroups,
34
32
  axisCount: result.axes.length,
35
33
  width,
36
34
  };
@@ -44,7 +42,6 @@ export function projectionBarSlots(input) {
44
42
  const space = {
45
43
  ...shared,
46
44
  result,
47
- hasGroups,
48
45
  selectedCount: selected.length,
49
46
  onResetView: map.resetSpaceView,
50
47
  onClearSelection: map.clearSelection,
@@ -83,7 +80,6 @@ export function projectionBarSlots(input) {
83
80
  const forMap = {
84
81
  ...shared,
85
82
  result,
86
- hasGroups,
87
83
  selectedCount: selected.length,
88
84
  onZoomToSelection: map.zoomToSelection,
89
85
  onResetView: map.resetView,
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarSlots.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarSlots.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectionBarSlots.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarSlots.tsx"],"names":[],"mappings":"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"}