@milaboratories/graph-maker 1.1.168 → 1.1.170

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 (69) hide show
  1. package/dist/GraphMaker/constantsCommon.d.ts +3 -0
  2. package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
  3. package/dist/GraphMaker/constantsCommon.js +9 -6
  4. package/dist/GraphMaker/constantsCommon.js.map +1 -1
  5. package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.d.ts.map +1 -1
  6. package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.js +60 -56
  7. package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.js.map +1 -1
  8. package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.d.ts.map +1 -1
  9. package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.js +86 -58
  10. package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  11. package/dist/GraphMaker/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +109 -112
  12. package/dist/GraphMaker/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  13. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +20 -0
  14. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  15. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js +19 -15
  16. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  17. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +3 -3
  18. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +8 -8
  19. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  20. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js +23 -23
  21. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  22. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/BubbleSettingsImpl.js +19 -14
  23. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/BubbleSettingsImpl.js.map +1 -1
  24. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js +132 -132
  25. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js.map +1 -1
  26. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js +53 -53
  27. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js.map +1 -1
  28. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js.map +1 -1
  29. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js +7 -7
  30. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js.map +1 -1
  31. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js +49 -83
  32. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js.map +1 -1
  33. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +51 -34
  34. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
  35. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
  36. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +2 -2
  37. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
  38. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  39. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsCanvas.js.map +1 -1
  40. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsSvg.js.map +1 -1
  41. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/index.js.map +1 -1
  42. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js +31 -31
  43. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js.map +1 -1
  44. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +20 -20
  45. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  46. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +12 -12
  47. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
  48. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/SvgCells.js +14 -14
  49. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/SvgCells.js.map +1 -1
  50. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/tooltipUtils.js +14 -14
  51. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/tooltipUtils.js.map +1 -1
  52. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/fillCellsData.js +244 -0
  53. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/fillCellsData.js.map +1 -0
  54. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +28 -214
  55. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
  56. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getDendrograms.js +26 -26
  57. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getDendrograms.js.map +1 -1
  58. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +8 -8
  59. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
  60. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  61. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/Lasso.js +98 -103
  62. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/Lasso.js.map +1 -1
  63. package/dist/node_modules/@milaboratories/miplots4/dist/types/bubble.js +23 -12
  64. package/dist/node_modules/@milaboratories/miplots4/dist/types/bubble.js.map +1 -1
  65. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetOrGroupKey.js +7 -0
  66. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetOrGroupKey.js.map +1 -0
  67. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +165 -95
  68. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -1
  69. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"bubble.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/types/bubble.ts"],"sourcesContent":["import {\n ColumnNameSchema,\n FrameTypeSchema,\n LegendPositionSchema,\n TitlePositionSchema,\n} from './common';\nimport {z} from 'zod';\n\nconst axisCommonSchema = {\n title: z.optional(z.string()),\n showTicks: z.optional(z.boolean()),\n showTitle: z.optional(z.boolean()),\n showAxisLabels: z.optional(z.boolean()),\n axisLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n};\n\n//const InheritAesSchema = z.object({type: z.literal('grouping'), value: z.string()}); // link to aes mapped to column\n\nexport const BubblesSettingsSchema = z.object({\n type: z.literal('bubble'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n cellSize: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n frame: z.optional(z.object({type: z.optional(FrameTypeSchema)})),\n facetSettings: z.optional(\n z.object({\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n })\n ),\n valueSize: ColumnNameSchema,\n valueColor: ColumnNameSchema,\n xColumn: ColumnNameSchema,\n yColumn: ColumnNameSchema,\n normalization: z.optional(z.object({\n direction: z.enum(['row', 'column']),\n method: z.enum(['standardScaling', 'meanNormalization']),\n colorRange: z.optional(z.array(z.number())),\n sizeRange: z.optional(z.array(z.number())),\n })),\n xAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['top', 'bottom'])),\n })),\n yAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['left', 'right'])),\n })),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n aes: z.optional(z.object({\n colorsList: z.optional(z.array(z.string())),\n minRadius: z.optional(z.number()),\n maxRadius: z.optional(z.number()),\n cellStrokeColor: z.optional(z.string()),\n emptyCellColor: z.optional(z.string()),\n })),\n tooltips: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n content: z.optional(z.array(ColumnNameSchema)),\n })\n ),\n NAValueAs: z.optional(z.union([z.number(), z.null()])),\n});\n\nexport type BubbleSettings = z.infer<typeof BubblesSettingsSchema>;\n"],"names":["axisCommonSchema","z","BubblesSettingsSchema","TitlePositionSchema","LegendPositionSchema","FrameTypeSchema","ColumnNameSchema"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"bubble.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/types/bubble.ts"],"sourcesContent":["import {\n ColumnNameSchema,\n FrameTypeSchema,\n LegendPositionSchema,\n TitlePositionSchema,\n} from './common';\nimport { z } from 'zod';\n\nconst axisCommonSchema = {\n title: z.optional(z.string()),\n showTicks: z.optional(z.boolean()),\n showTitle: z.optional(z.boolean()),\n showAxisLabels: z.optional(z.boolean()),\n axisLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n};\n\n//const InheritAesSchema = z.object({type: z.literal('grouping'), value: z.string()}); // link to aes mapped to column\n\nexport const BubblesSettingsSchema = z.object({\n type: z.literal('bubble'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n cellSize: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n frame: z.optional(z.object({ type: z.optional(FrameTypeSchema) })),\n facetSettings: z.optional(\n z.object({\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n })\n ),\n valueSize: ColumnNameSchema,\n valueColor: ColumnNameSchema,\n xColumn: ColumnNameSchema,\n yColumn: ColumnNameSchema,\n xGroupBy: z.optional(z.array(ColumnNameSchema)),\n yGroupBy: z.optional(z.array(ColumnNameSchema)),\n keysOrder: z.optional( // x, y, grouping, facet keys in user's order\n z.record(z.string(), z.array(z.string()))\n ),\n normalization: z.optional(z.object({\n direction: z.enum(['row', 'column']),\n method: z.enum(['standardScaling', 'meanNormalization']),\n colorRange: z.optional(z.array(z.number())),\n sizeRange: z.optional(z.array(z.number())),\n })),\n aggregation: z.optional(z.object({\n x: z.optional(z.boolean()),\n y: z.optional(z.boolean()),\n method: z.optional(z.enum(['min', 'max', 'mean', 'median'])),\n })),\n xAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['top', 'bottom'])),\n })),\n yAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['left', 'right'])),\n })),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n aes: z.optional(z.object({\n colorsList: z.optional(z.array(z.string())),\n minRadius: z.optional(z.number()),\n maxRadius: z.optional(z.number()),\n cellStrokeColor: z.optional(z.string()),\n emptyCellColor: z.optional(z.string()),\n })),\n tooltips: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n content: z.optional(z.array(ColumnNameSchema)),\n })\n ),\n NAValueAs: z.optional(z.union([z.number(), z.null()])),\n});\n\nexport type BubbleSettings = z.infer<typeof BubblesSettingsSchema>;\n"],"names":["axisCommonSchema","z","BubblesSettingsSchema","TitlePositionSchema","LegendPositionSchema","FrameTypeSchema","ColumnNameSchema"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ function r(e) {
2
+ return e.length ? e.join("_") : "null";
3
+ }
4
+ export {
5
+ r as getFacetOrGroupKey
6
+ };
7
+ //# sourceMappingURL=getFacetOrGroupKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFacetOrGroupKey.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/utils/getFacetOrGroupKey.ts"],"sourcesContent":["export function getFacetOrGroupKey(values: unknown[]): string {\n if (!values.length) {\n return 'null';\n }\n return values.join('_');\n}"],"names":["getFacetOrGroupKey","values"],"mappings":"AAAO,SAASA,EAAmBC,GAA2B;AAC1D,SAAKA,EAAO,SAGLA,EAAO,KAAK,GAAG,IAFX;AAGf;","x_google_ignoreList":[0]}
@@ -1,16 +1,18 @@
1
- import k from "../../_virtual/canonicalize.js";
2
- import { ControllerBase as M } from "../ControllerBase.js";
3
- import { ComponentController as w } from "../ComponentController.js";
4
- import { AxisId as J, columnOrAxisIdFromString as C, isColumnId as c } from "../../spec.js";
5
- import { createLinkerMap as U, createMultipliesByMap as Z, getFiltersFromStates as $, getAxesSpecsFromSources as H, getLinkerColumnsForSource as T, getColumnOrAxisValueLabelsId as b, getColumnOrAxisLabel as x, getColumnOrAxisSpec as K, getFormat as X } from "../../utils.js";
6
- var Y = Object.defineProperty, G = (m, e, t) => e in m ? Y(m, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : m[e] = t, j = (m, e, t) => G(m, typeof e != "symbol" ? e + "" : e, t);
1
+ import M from "../../_virtual/canonicalize.js";
2
+ import { ControllerBase as V } from "../ControllerBase.js";
3
+ import { ComponentController as v } from "../ComponentController.js";
4
+ import { AxisId as T, columnOrAxisIdFromString as w, isColumnId as p } from "../../spec.js";
5
+ import { createLinkerMap as J, createMultipliesByMap as U, getFiltersFromStates as Z, getAxesSpecsFromSources as H, getLinkerColumnsForSource as N, getColumnOrAxisValueLabelsId as C, getColumnOrAxisLabel as g, getColumnOrAxisSpec as K, getFormat as X } from "../../utils.js";
6
+ var Y = Object.defineProperty, Q = (m, e, t) => e in m ? Y(m, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : m[e] = t, j = (m, e, t) => Q(m, typeof e != "symbol" ? e + "" : e, t);
7
7
  const te = {
8
8
  type: "bubble",
9
9
  components: {
10
10
  valueSize: { type: "simple", selectorStates: [] },
11
11
  valueColor: { type: "simple", selectorStates: [] },
12
12
  x: { type: "simple", selectorStates: [] },
13
+ xGroupBy: { type: "simple", selectorStates: [] },
13
14
  y: { type: "simple", selectorStates: [] },
15
+ yGroupBy: { type: "simple", selectorStates: [] },
14
16
  filters: { type: "filter", selectorStates: [] },
15
17
  tabBy: { type: "filter", selectorStates: [] },
16
18
  facetBy: { type: "simple", selectorStates: [] },
@@ -18,23 +20,23 @@ const te = {
18
20
  },
19
21
  dividedAxes: {}
20
22
  };
21
- function O(m, e) {
23
+ function P(m, e) {
22
24
  if (!e.length)
23
25
  return [];
24
- const t = e.map((l) => C(l)), y = Object.values(m.columnsData)[0].length, r = [];
25
- for (let l = 0; l < y; l++) {
26
- const u = t.map((p) => {
27
- const d = p.toCanonicalString();
28
- return c(p) ? m.columnsData[d][l] : m.axesData[d][l];
26
+ const t = e.map((s) => w(s)), c = Object.values(m.columnsData)[0].length, n = [];
27
+ for (let s = 0; s < c; s++) {
28
+ const i = t.map((S) => {
29
+ const d = S.toCanonicalString();
30
+ return p(S) ? m.columnsData[d][s] : m.axesData[d][s];
29
31
  }).join(", ");
30
- r.push(u);
32
+ n.push(i);
31
33
  }
32
- return r;
34
+ return n;
33
35
  }
34
- class oe extends M {
36
+ class oe extends V {
35
37
  constructor() {
36
38
  super({
37
- valueSize: new w({
39
+ valueSize: new v({
38
40
  componentName: "valueSize",
39
41
  allowedTypes: ["Int", "Long", "Double", "Float"],
40
42
  strictlyDependsOnParents: !0,
@@ -46,7 +48,7 @@ class oe extends M {
46
48
  required: !0
47
49
  }
48
50
  }),
49
- valueColor: new w({
51
+ valueColor: new v({
50
52
  componentName: "valueColor",
51
53
  allowedTypes: ["Int", "Long", "Double", "Float"],
52
54
  strictlyDependsOnParents: !0,
@@ -58,7 +60,7 @@ class oe extends M {
58
60
  required: !0
59
61
  }
60
62
  }),
61
- x: new w({
63
+ x: new v({
62
64
  componentName: "x",
63
65
  allowedTypes: ["Int", "String", "Long"],
64
66
  strictlyDependsOnParents: !0,
@@ -71,7 +73,29 @@ class oe extends M {
71
73
  columnsAllowed: !1
72
74
  }
73
75
  }),
74
- y: new w({
76
+ xGroupBy: new v({
77
+ componentName: "xGroupBy",
78
+ allowedTypes: ["Int", "String", "Long"],
79
+ strictlyDependsOnParents: !0,
80
+ parentComponents: ["valueSize", "valueColor"],
81
+ settings: {
82
+ dimensionConsumer: !0,
83
+ multipleSelectors: !0,
84
+ axesAllowed: !0,
85
+ columnsAllowed: !0
86
+ },
87
+ dependsOn: ["x"],
88
+ checkSourceBySpec: (e, t) => {
89
+ const c = /* @__PURE__ */ new Set([
90
+ ...t.components.x.selectorStates.map((n) => n.selectedSource),
91
+ ...t.components.xGroupBy.selectorStates.map((n) => n.selectedSource)
92
+ ]);
93
+ return "kind" in e && e.kind === "PColumn" ? T.fromAxesSpec(e.axesSpec).every(
94
+ (n) => c.has(n.toCanonicalString())
95
+ ) : !0;
96
+ }
97
+ }),
98
+ y: new v({
75
99
  componentName: "y",
76
100
  allowedTypes: ["Int", "String", "Long"],
77
101
  strictlyDependsOnParents: !0,
@@ -84,7 +108,29 @@ class oe extends M {
84
108
  columnsAllowed: !1
85
109
  }
86
110
  }),
87
- tooltipContent: new w({
111
+ yGroupBy: new v({
112
+ componentName: "yGroupBy",
113
+ allowedTypes: ["Int", "String", "Long"],
114
+ strictlyDependsOnParents: !0,
115
+ parentComponents: ["valueSize", "valueColor"],
116
+ settings: {
117
+ dimensionConsumer: !0,
118
+ multipleSelectors: !0,
119
+ axesAllowed: !0,
120
+ columnsAllowed: !0
121
+ },
122
+ dependsOn: ["y"],
123
+ checkSourceBySpec: (e, t) => {
124
+ const c = /* @__PURE__ */ new Set([
125
+ ...t.components.x.selectorStates.map((n) => n.selectedSource),
126
+ ...t.components.xGroupBy.selectorStates.map((n) => n.selectedSource)
127
+ ]);
128
+ return "kind" in e && e.kind === "PColumn" ? T.fromAxesSpec(e.axesSpec).every(
129
+ (n) => c.has(n.toCanonicalString())
130
+ ) : !0;
131
+ }
132
+ }),
133
+ tooltipContent: new v({
88
134
  componentName: "tooltipContent",
89
135
  allowedTypes: ["String", "Int", "Long", "Float", "Double"],
90
136
  strictlyDependsOnParents: !0,
@@ -95,7 +141,7 @@ class oe extends M {
95
141
  multipleSelectors: !0
96
142
  }
97
143
  }),
98
- facetBy: new w({
144
+ facetBy: new v({
99
145
  componentName: "facetBy",
100
146
  allowedTypes: ["String", "Int", "Long"],
101
147
  strictlyDependsOnParents: !0,
@@ -107,7 +153,7 @@ class oe extends M {
107
153
  }
108
154
  })
109
155
  }, {
110
- filters: new w({
156
+ filters: new v({
111
157
  componentName: "filters",
112
158
  allowedTypes: ["String", "Int", "Long", "Double", "Long"],
113
159
  strictlyDependsOnParents: !0,
@@ -119,7 +165,7 @@ class oe extends M {
119
165
  multipleSelectors: !0
120
166
  }
121
167
  }),
122
- tabBy: new w({
168
+ tabBy: new v({
123
169
  componentName: "tabBy",
124
170
  allowedTypes: ["String", "Int"],
125
171
  strictlyDependsOnParents: !0,
@@ -135,130 +181,154 @@ class oe extends M {
135
181
  getMustBeConsumedAxes(e, t) {
136
182
  if (!e.components.valueColor.selectorStates.length)
137
183
  return /* @__PURE__ */ new Set();
138
- const y = e.components.valueColor.selectorStates[0].selectedSource, r = t.get(y);
139
- return !r || r.kind !== "column" ? /* @__PURE__ */ new Set() : new Set(r.spec.axesSpec.map((l) => J.fromAxisSpec(l).toCanonicalString()));
184
+ const c = e.components.valueColor.selectorStates[0].selectedSource, n = t.get(c);
185
+ return !n || n.kind !== "column" ? /* @__PURE__ */ new Set() : new Set(n.spec.axesSpec.map((s) => T.fromAxisSpec(s).toCanonicalString()));
140
186
  }
141
187
  async createDataByColumns(e, t) {
142
- var y, r;
143
- const l = (y = t.components.valueColor.selectorStates[0]) == null ? void 0 : y.selectedSource, u = (r = t.components.valueSize.selectorStates[0]) == null ? void 0 : r.selectedSource;
144
- if (!l || !u)
188
+ var c, n;
189
+ const s = (c = t.components.valueColor.selectorStates[0]) == null ? void 0 : c.selectedSource, i = (n = t.components.valueSize.selectorStates[0]) == null ? void 0 : n.selectedSource;
190
+ if (!s || !i)
145
191
  throw Error("Value column is not valid");
146
- const p = C(l), d = C(u);
147
- if (!p || !d || !c(p) && !c(d))
192
+ const S = w(s), d = w(i);
193
+ if (!S || !d || !p(S) && !p(d))
148
194
  throw Error("Value column is not valid");
149
- const n = {
195
+ const r = {
150
196
  type: "columns",
151
- id: k(t.components) ?? "",
197
+ id: M(t.components) ?? "",
152
198
  values: {}
153
- }, A = await U(e), D = await Z(e), f = [
199
+ }, B = await J(e), A = await U(e), b = [
154
200
  ...t.components.filters.selectorStates,
155
201
  ...t.components.tabBy.selectorStates
156
- ], P = $(f), B = f.map((o) => C(o.selectedSource)).filter(c), L = [p, d].filter(c), g = L.map((o) => o.toCanonicalString()), h = await H(e, g), a = [
202
+ ], h = Z(b), O = b.map((a) => w(a.selectedSource)).filter(p), D = [S, d].filter(p), x = D.map((a) => a.toCanonicalString()), L = await H(e, x), G = [
157
203
  t.components.facetBy,
158
204
  t.components.x,
159
205
  t.components.y,
206
+ t.components.xGroupBy,
207
+ t.components.yGroupBy,
160
208
  t.components.tooltipContent
161
- ], S = [], v = [];
162
- for (const { selectedSource: o } of f)
163
- v.push(...await T(
209
+ ], f = [], o = [];
210
+ for (const { selectedSource: a } of b)
211
+ o.push(...await N(
164
212
  e,
213
+ B,
165
214
  A,
166
- D,
167
- h,
168
- o
215
+ L,
216
+ a
169
217
  ));
170
- for (const o of a)
171
- for (const { selectedSource: s } of o.selectorStates) {
172
- S.push(C(s)), v.push(...await T(
218
+ for (const a of G)
219
+ for (const { selectedSource: u } of a.selectorStates) {
220
+ f.push(w(u)), o.push(...await N(
173
221
  e,
222
+ B,
174
223
  A,
175
- D,
176
- h,
177
- s
224
+ L,
225
+ u
178
226
  ));
179
- const F = await b(e, s, g);
180
- F && S.push(F);
227
+ const k = await C(e, u, x);
228
+ k && f.push(k);
181
229
  }
182
- const i = await e.pFrameProvider.getTableOuterJoin(
183
- [...L, ...v, ...B],
184
- S,
185
- P,
230
+ const l = await e.pFrameProvider.getTableOuterJoin(
231
+ [...D, ...o, ...O],
232
+ f,
233
+ h,
186
234
  !0
187
235
  );
188
- S.forEach((o) => {
189
- const s = o.toCanonicalString();
190
- n.values[s] = c(o) ? i.columnsData[s] : i.axesData[s];
191
- }), n.values[l] = c(p) ? i.columnsData[l] : i.axesData[l], n.values[u] = c(d) ? i.columnsData[u] : i.axesData[u];
192
- const z = t.components.x.selectorStates.map((o) => o.selectedSource), N = z.join(", "), E = await Promise.all(z.map(
193
- async (o) => {
194
- var s;
195
- return ((s = await b(e, o, g)) == null ? void 0 : s.toCanonicalString()) ?? o;
236
+ f.forEach((a) => {
237
+ const u = a.toCanonicalString();
238
+ r.values[u] = p(a) ? l.columnsData[u] : l.axesData[u];
239
+ }), r.values[s] = p(S) ? l.columnsData[s] : l.axesData[s], r.values[i] = p(d) ? l.columnsData[i] : l.axesData[i];
240
+ const y = t.components.x.selectorStates.concat(t.components.xGroupBy.selectorStates).map((a) => a.selectedSource), z = y.join(", "), F = await Promise.all(y.map(
241
+ async (a) => {
242
+ var u;
243
+ return ((u = await C(e, a, x)) == null ? void 0 : u.toCanonicalString()) ?? a;
196
244
  }
197
245
  ));
198
- n.values[N] = O(i, z), n.values.xLabels = O(i, E);
199
- const I = t.components.y.selectorStates.map((o) => o.selectedSource), V = I.join(", "), q = await Promise.all(I.map(
200
- async (o) => {
201
- var s;
202
- return ((s = await b(e, o, g)) == null ? void 0 : s.toCanonicalString()) ?? o;
246
+ r.values[z] = P(l, y), r.values.xLabels = P(l, F);
247
+ const I = t.components.y.selectorStates.concat(t.components.yGroupBy.selectorStates).map((a) => a.selectedSource), E = I.join(", "), q = await Promise.all(I.map(
248
+ async (a) => {
249
+ var u;
250
+ return ((u = await C(e, a, x)) == null ? void 0 : u.toCanonicalString()) ?? a;
203
251
  }
204
252
  ));
205
- return n.values[V] = O(i, I), n.values.yLabels = O(i, q), { byColumns: n };
253
+ return r.values[E] = P(l, I), r.values.yLabels = P(l, q), { byColumns: r };
206
254
  }
207
255
  async createChartSettings(e, t) {
208
- var y, r;
209
- const l = (y = t.components.valueColor.selectorStates[0]) == null ? void 0 : y.selectedSource, u = (r = t.components.valueSize.selectorStates[0]) == null ? void 0 : r.selectedSource;
210
- if (!l || !u)
256
+ var c, n;
257
+ const s = (c = t.components.valueColor.selectorStates[0]) == null ? void 0 : c.selectedSource, i = (n = t.components.valueSize.selectorStates[0]) == null ? void 0 : n.selectedSource;
258
+ if (!s || !i)
211
259
  throw Error("Value column is not valid");
212
- const p = C(l), d = C(u);
213
- if (!c(p) && !c(d))
260
+ const S = w(s), d = w(i);
261
+ if (!p(S) && !p(d))
214
262
  throw Error("Value column is not valid");
215
- const n = [p, d].filter(c).map((a) => a.toCanonicalString()), A = {
263
+ const r = [S, d].filter(p).map((o) => o.toCanonicalString()), B = {
216
264
  type: "column",
217
- value: l,
218
- label: await x(e, l, [])
219
- }, D = {
265
+ value: s,
266
+ label: await g(e, s, [])
267
+ }, A = {
220
268
  type: "column",
221
- value: u,
222
- label: await x(e, u, [])
223
- }, f = t.components.x.selectorStates.map(({ selectedSource: a }) => a).join(", "), P = t.components.y.selectorStates.map(({ selectedSource: a }) => a).join(", "), B = await Promise.all(t.components.facetBy.selectorStates.map(async (a) => {
224
- var S;
269
+ value: i,
270
+ label: await g(e, i, [])
271
+ }, b = t.components.x.selectorStates.concat(t.components.xGroupBy.selectorStates).map(({ selectedSource: o }) => w(o)).map((o) => o.toCanonicalString()).join(", "), h = t.components.y.selectorStates.concat(t.components.yGroupBy.selectorStates).map(({ selectedSource: o }) => w(o)).map((o) => o.toCanonicalString()).join(", "), O = await Promise.all(
272
+ t.components.xGroupBy.selectorStates.map(async (o) => {
273
+ var l;
274
+ return {
275
+ type: "column",
276
+ label: await g(e, o.selectedSource, r),
277
+ value: o.selectedSource,
278
+ valueLabels: ((l = await C(e, o.selectedSource, r)) == null ? void 0 : l.toCanonicalString()) ?? o.selectedSource
279
+ };
280
+ })
281
+ ), D = await Promise.all(
282
+ t.components.yGroupBy.selectorStates.map(async (o) => {
283
+ var l;
284
+ return {
285
+ type: "column",
286
+ label: await g(e, o.selectedSource, r),
287
+ value: o.selectedSource,
288
+ valueLabels: ((l = await C(e, o.selectedSource, r)) == null ? void 0 : l.toCanonicalString()) ?? o.selectedSource
289
+ };
290
+ })
291
+ ), x = await Promise.all(t.components.facetBy.selectorStates.map(async (o) => {
292
+ var l;
225
293
  return {
226
294
  type: "column",
227
- value: ((S = await b(e, a.selectedSource, n)) == null ? void 0 : S.toCanonicalString()) ?? a.selectedSource
295
+ value: ((l = await C(e, o.selectedSource, r)) == null ? void 0 : l.toCanonicalString()) ?? o.selectedSource
228
296
  };
229
- })), L = (await Promise.all(t.components.x.selectorStates.map((a) => x(e, a.selectedSource, n)))).join(", "), g = (await Promise.all(t.components.y.selectorStates.map((a) => x(e, a.selectedSource, n)))).join(", "), h = await Promise.all(
230
- t.components.tooltipContent.selectorStates.map(async (a) => {
231
- var S;
232
- const v = a.selectedSource, i = await K(e, v, n);
297
+ })), L = (await Promise.all(t.components.x.selectorStates.map((o) => g(e, o.selectedSource, r)))).join(", "), G = (await Promise.all(t.components.y.selectorStates.map((o) => g(e, o.selectedSource, r)))).join(", "), f = await Promise.all(
298
+ t.components.tooltipContent.selectorStates.map(async (o) => {
299
+ var l;
300
+ const y = o.selectedSource, z = await K(e, y, r);
233
301
  return {
234
302
  type: "column",
235
- label: await x(e, v, n) || v,
236
- value: v,
237
- valueLabels: ((S = await b(e, v, n)) == null ? void 0 : S.toCanonicalString()) ?? v,
238
- format: X(i)
303
+ label: await g(e, y, r) || y,
304
+ value: y,
305
+ valueLabels: ((l = await C(e, y, r)) == null ? void 0 : l.toCanonicalString()) ?? y,
306
+ format: X(z)
239
307
  };
240
308
  })
241
309
  );
242
310
  return {
243
311
  type: "bubble",
244
- valueColor: A,
245
- valueSize: D,
312
+ valueColor: B,
313
+ valueSize: A,
246
314
  xColumn: {
247
315
  type: "column",
248
- value: f,
316
+ value: b,
249
317
  label: L,
250
318
  valueLabels: "xLabels"
251
319
  },
252
320
  yColumn: {
253
321
  type: "column",
254
- value: P,
255
- label: g,
322
+ value: h,
323
+ label: G,
256
324
  valueLabels: "yLabels"
257
325
  },
258
- facetBy: B,
326
+ facetBy: x,
327
+ xGroupBy: O,
328
+ yGroupBy: D,
259
329
  tooltips: {
260
330
  show: !0,
261
- content: h
331
+ content: f
262
332
  }
263
333
  };
264
334
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bubble.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/bubble.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n DataByColumns,\n InputStateParent,\n} from '../../common';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore} from '../../store';\nimport {\n createLinkerMap, createMultipliesByMap, getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates, getFormat, getLinkerColumnsForSource,\n OptionsInfo,\n} from '../../utils';\nimport {AxisId, ColumnId} from '../../spec';\nimport type {ColumnsProvider} from '../../pframe/ColumnsProvider';\n\nexport interface BubbleUIState extends InputStateParent<'bubble'> {\n type: 'bubble';\n components: {\n valueSize: ComponentStateSimple;\n valueColor: ComponentStateSimple;\n x: ComponentStateSimple;\n y: ComponentStateSimple;\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n };\n}\n\nexport const InitialBubbleState: BubbleUIState = {\n type: 'bubble',\n components: {\n valueSize: {type: 'simple', selectorStates: []},\n valueColor: {type: 'simple', selectorStates: []},\n x: {type: 'simple', selectorStates: []},\n y: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n tooltipContent: {type: 'simple', selectorStates: []},\n },\n dividedAxes: {},\n};\n\nfunction getMultiSourceColumn(data: Awaited<ReturnType<ColumnsProvider['getTableOuterJoin']>>, selectedSources: string[]) {\n if (!selectedSources.length) {\n return [];\n }\n const selectedIds = selectedSources.map(str => columnOrAxisIdFromString(str));\n const n = Object.values(data.columnsData)[0].length;\n const result: string[] = [];\n for (let i = 0; i < n; i++) {\n const value = selectedIds\n .map((id) => {\n const key = id.toCanonicalString();\n return isColumnId(id)\n ? data.columnsData[key][i]\n : data.axesData[key][i];\n })\n .join(', ');\n result.push(value);\n }\n return result;\n}\n\nexport class BubbleStateController extends ControllerBase<BubbleUIState> {\n dataInputs = ['valueSize', 'valueColor'];\n dontAllowUnfilteredHighCardinality = true;\n constructor() {\n super({\n valueSize: new ComponentController<BubbleUIState, 'valueSize'>({\n componentName: 'valueSize',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueColor'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n }\n }),\n valueColor: new ComponentController<BubbleUIState, 'valueColor'>({\n componentName: 'valueColor',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n },\n }),\n x: new ComponentController<BubbleUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n },\n }),\n y: new ComponentController<BubbleUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n },\n }),\n tooltipContent: new ComponentController<BubbleUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n facetBy: new ComponentController<BubbleUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n })\n }, {\n filters: new ComponentController<BubbleUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n tabBy: new ComponentController<BubbleUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n });\n }\n\n getMustBeConsumedAxes(state: BubbleUIState, optionsInfo: OptionsInfo): Set<string> {\n if (!state.components.valueColor.selectorStates.length) {\n return new Set<string>();\n }\n const sourceId = state.components.valueColor.selectorStates[0].selectedSource;\n const data = optionsInfo.get(sourceId);\n if (!data || data.kind !== 'column') {\n return new Set<string>();\n }\n return new Set(data.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString()))\n }\n\n async createDataByColumns(store: DataStore, state: BubbleUIState): Promise<PlotDataAndSettings['data']> {\n const valueColorColumnIdString = state.components.valueColor.selectorStates[0]?.selectedSource;\n const valueSizeColumnIdString = state.components.valueSize.selectorStates[0]?.selectedSource;\n if (!valueColorColumnIdString || !valueSizeColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColorColumnId = columnOrAxisIdFromString(valueColorColumnIdString);\n const valueSizeColumnId = columnOrAxisIdFromString(valueSizeColumnIdString);\n if ((!valueColorColumnId || !valueSizeColumnId) || !isColumnId(valueColorColumnId) && !isColumnId(valueSizeColumnId)) {\n throw Error('Value column is not valid');\n }\n const dataByColumns: DataByColumns = {\n type: 'columns',\n id: canonicalize(state.components) ?? '',\n values: {},\n };\n\n const linkerMap = await createLinkerMap(store);\n const multipliesByMap = await createMultipliesByMap(store);\n\n const filterSelectedStates = [\n ...state.components.filters.selectorStates,\n ...state.components.tabBy.selectorStates\n ]\n // filters for column/axes data requests\n const filters = getFiltersFromStates(filterSelectedStates);\n const filterColumns = filterSelectedStates.map(s => columnOrAxisIdFromString(s.selectedSource)).filter(isColumnId);\n\n const primaryColumns = ([valueColorColumnId, valueSizeColumnId]).filter(isColumnId);\n const parentSources = primaryColumns.map((v) => v.toCanonicalString());\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n const inputs = [\n state.components.facetBy,\n state.components.x,\n state.components.y,\n state.components.tooltipContent\n ];\n const secondarySources: (ColumnId | AxisId)[] = []; // primary sources are the only value column\n const linkerColumns:ColumnId[] = [];\n\n for (const {selectedSource} of filterSelectedStates) {\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n }\n\n for (const input of inputs) {\n for (const {selectedSource} of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n const labelsColumnId = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n if (labelsColumnId) {\n secondarySources.push(labelsColumnId);\n }\n }\n }\n\n const data = await store.pFrameProvider.getTableOuterJoin(\n [...primaryColumns, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n true\n );\n\n secondarySources.forEach(item => {\n const key = item.toCanonicalString();\n dataByColumns.values[key] = isColumnId(item)\n ? data.columnsData[key]\n : data.axesData[key];\n });\n dataByColumns.values[valueColorColumnIdString] = isColumnId(valueColorColumnId)\n ? data.columnsData[valueColorColumnIdString]\n : data.axesData[valueColorColumnIdString]\n dataByColumns.values[valueSizeColumnIdString] = isColumnId(valueSizeColumnId)\n ? data.columnsData[valueSizeColumnIdString]\n : data.axesData[valueSizeColumnIdString]\n\n const xAxes = state.components.x.selectorStates.map(state => state.selectedSource);\n const xKey = xAxes.join(', ');\n const xAxesLabeled = await Promise.all(xAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id,\n ));\n dataByColumns.values[xKey] = getMultiSourceColumn(data, xAxes);\n dataByColumns.values.xLabels = getMultiSourceColumn(data, xAxesLabeled);\n\n // y column should contain yGroup axes\n const yAxes = state.components.y.selectorStates.map(state => state.selectedSource);\n const yKey = yAxes.join(', ');\n const yAxesLabeled = await Promise.all(yAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id,\n ));\n dataByColumns.values[yKey] = getMultiSourceColumn(data, yAxes);\n dataByColumns.values.yLabels = getMultiSourceColumn(data, yAxesLabeled);\n\n return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: BubbleUIState): Promise<Record<string, unknown>> {\n const valueColorColumnIdString = state.components.valueColor.selectorStates[0]?.selectedSource;\n const valueSizeColumnIdString = state.components.valueSize.selectorStates[0]?.selectedSource;\n if (!valueColorColumnIdString || !valueSizeColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColorColumnId = columnOrAxisIdFromString(valueColorColumnIdString);\n const valueSizeColumnId = columnOrAxisIdFromString(valueSizeColumnIdString);\n if (!isColumnId(valueColorColumnId) && !isColumnId(valueSizeColumnId)) {\n throw Error('Value column is not valid');\n }\n\n const parentSources = ([valueColorColumnId, valueSizeColumnId]).filter(isColumnId).map((v) => v.toCanonicalString());\n const valueColor = {\n type: 'column',\n value: valueColorColumnIdString,\n label: await getColumnOrAxisLabel(store, valueColorColumnIdString, []),\n };\n const valueSize = {\n type: 'column',\n value: valueSizeColumnIdString,\n label: await getColumnOrAxisLabel(store, valueSizeColumnIdString, []),\n };\n const xAxes = state.components.x.selectorStates.map(({selectedSource}) => selectedSource)\n const xKey = xAxes.join(', ');\n\n const yAxes = state.components.y.selectorStates.map(({selectedSource}) => selectedSource)\n const yKey = yAxes.join(', ');\n\n const facetBy = await Promise.all(state.components.facetBy.selectorStates.map(async selectorState => ({\n type: 'column',\n value:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n })));\n\n const xAxisTitle = (await Promise.all(state.components.x.selectorStates\n .map(state => getColumnOrAxisLabel(store, state.selectedSource, parentSources))))\n .join(', ');\n const yAxisTitle = (await Promise.all(state.components.y.selectorStates\n .map(state => getColumnOrAxisLabel(store, state.selectedSource, parentSources))))\n .join(', ');\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n return {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, source, parentSources)) || source,\n value: source,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: getFormat(spec)\n };\n })\n );\n\n return {\n type: 'bubble',\n valueColor: valueColor,\n valueSize: valueSize,\n xColumn: {\n type: 'column',\n value: xKey,\n label: xAxisTitle,\n valueLabels: 'xLabels'\n },\n yColumn: {\n type: 'column',\n value: yKey,\n label: yAxisTitle,\n valueLabels: 'yLabels'\n },\n facetBy,\n tooltips: {\n show: true,\n content: tooltipContent\n }\n };\n }\n}\n"],"names":["InitialBubbleState","getMultiSourceColumn","data","selectedSources","selectedIds","str","columnOrAxisIdFromString","n","result","i","value","id","key","isColumnId","BubbleStateController","ControllerBase","ComponentController","__publicField","state","optionsInfo","sourceId","s","AxisId","store","valueColorColumnIdString","_a","valueSizeColumnIdString","_b","valueColorColumnId","valueSizeColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","multipliesByMap","createMultipliesByMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","primaryColumns","parentSources","v","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","linkerColumns","selectedSource","getLinkerColumnsForSource","input","labelsColumnId","getColumnOrAxisValueLabelsId","item","xAxes","xKey","xAxesLabeled","yAxes","yKey","yAxesLabeled","valueColor","getColumnOrAxisLabel","valueSize","facetBy","selectorState","xAxisTitle","yAxisTitle","tooltipContent","source","spec","getColumnOrAxisSpec","getFormat"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"bubble.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/bubble.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n DataByColumns,\n InputStateParent,\n} from '../../common';\nimport { ControllerBase, PlotDataAndSettings } from '../ControllerBase';\nimport { ComponentController } from '../ComponentController';\nimport { columnOrAxisIdFromString, isColumnId } from '../../spec';\nimport type { DataStore } from '../../store';\nimport {\n createLinkerMap, createMultipliesByMap, getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates, getFormat, getLinkerColumnsForSource,\n OptionsInfo,\n} from '../../utils';\nimport { AxisId, ColumnId } from '../../spec';\nimport type { ColumnsProvider } from '../../pframe/ColumnsProvider';\n\nexport interface BubbleUIState extends InputStateParent<'bubble'> {\n type: 'bubble';\n components: {\n valueSize: ComponentStateSimple;\n valueColor: ComponentStateSimple;\n x: ComponentStateSimple;\n xGroupBy: ComponentStateSimple;\n y: ComponentStateSimple;\n yGroupBy: ComponentStateSimple;\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n };\n}\n\nexport const InitialBubbleState: BubbleUIState = {\n type: 'bubble',\n components: {\n valueSize: { type: 'simple', selectorStates: [] },\n valueColor: { type: 'simple', selectorStates: [] },\n x: { type: 'simple', selectorStates: [] },\n xGroupBy: { type: 'simple', selectorStates: [] },\n y: { type: 'simple', selectorStates: [] },\n yGroupBy: { type: 'simple', selectorStates: [] },\n filters: { type: 'filter', selectorStates: [] },\n tabBy: { type: 'filter', selectorStates: [] },\n facetBy: { type: 'simple', selectorStates: [] },\n tooltipContent: { type: 'simple', selectorStates: [] },\n },\n dividedAxes: {},\n};\n\nfunction getMultiSourceColumn(data: Awaited<ReturnType<ColumnsProvider['getTableOuterJoin']>>, selectedSources: string[]) {\n if (!selectedSources.length) {\n return [];\n }\n const selectedIds = selectedSources.map(str => columnOrAxisIdFromString(str));\n const n = Object.values(data.columnsData)[0].length;\n const result: string[] = [];\n for (let i = 0; i < n; i++) {\n const value = selectedIds\n .map((id) => {\n const key = id.toCanonicalString();\n return isColumnId(id)\n ? data.columnsData[key][i]\n : data.axesData[key][i];\n })\n .join(', ');\n result.push(value);\n }\n return result;\n}\n\nexport class BubbleStateController extends ControllerBase<BubbleUIState> {\n dataInputs = ['valueSize', 'valueColor'];\n dontAllowUnfilteredHighCardinality = true;\n constructor() {\n super({\n valueSize: new ComponentController<BubbleUIState, 'valueSize'>({\n componentName: 'valueSize',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueColor'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n }\n }),\n valueColor: new ComponentController<BubbleUIState, 'valueColor'>({\n componentName: 'valueColor',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n },\n }),\n x: new ComponentController<BubbleUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n },\n }),\n xGroupBy: new ComponentController<BubbleUIState, 'xGroupBy'>({\n componentName: 'xGroupBy',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n dependsOn: ['x'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.x.selectorStates.map(s => s.selectedSource),\n ...state.components.xGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return true;\n },\n }),\n y: new ComponentController<BubbleUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n },\n }),\n yGroupBy: new ComponentController<BubbleUIState, 'yGroupBy'>({\n componentName: 'yGroupBy',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n dependsOn: ['y'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.x.selectorStates.map(s => s.selectedSource),\n ...state.components.xGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return true;\n },\n }),\n tooltipContent: new ComponentController<BubbleUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n facetBy: new ComponentController<BubbleUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n })\n }, {\n filters: new ComponentController<BubbleUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n tabBy: new ComponentController<BubbleUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['valueSize', 'valueColor'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n });\n }\n\n getMustBeConsumedAxes(state: BubbleUIState, optionsInfo: OptionsInfo): Set<string> {\n if (!state.components.valueColor.selectorStates.length) {\n return new Set<string>();\n }\n const sourceId = state.components.valueColor.selectorStates[0].selectedSource;\n const data = optionsInfo.get(sourceId);\n if (!data || data.kind !== 'column') {\n return new Set<string>();\n }\n return new Set(data.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString()))\n }\n\n async createDataByColumns(store: DataStore, state: BubbleUIState): Promise<PlotDataAndSettings['data']> {\n const valueColorColumnIdString = state.components.valueColor.selectorStates[0]?.selectedSource;\n const valueSizeColumnIdString = state.components.valueSize.selectorStates[0]?.selectedSource;\n if (!valueColorColumnIdString || !valueSizeColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColorColumnId = columnOrAxisIdFromString(valueColorColumnIdString);\n const valueSizeColumnId = columnOrAxisIdFromString(valueSizeColumnIdString);\n if ((!valueColorColumnId || !valueSizeColumnId) || !isColumnId(valueColorColumnId) && !isColumnId(valueSizeColumnId)) {\n throw Error('Value column is not valid');\n }\n const dataByColumns: DataByColumns = {\n type: 'columns',\n id: canonicalize(state.components) ?? '',\n values: {},\n };\n\n const linkerMap = await createLinkerMap(store);\n const multipliesByMap = await createMultipliesByMap(store);\n\n const filterSelectedStates = [\n ...state.components.filters.selectorStates,\n ...state.components.tabBy.selectorStates\n ]\n // filters for column/axes data requests\n const filters = getFiltersFromStates(filterSelectedStates);\n const filterColumns = filterSelectedStates.map(s => columnOrAxisIdFromString(s.selectedSource)).filter(isColumnId);\n\n const primaryColumns = ([valueColorColumnId, valueSizeColumnId]).filter(isColumnId);\n const parentSources = primaryColumns.map((v) => v.toCanonicalString());\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n const inputs = [\n state.components.facetBy,\n state.components.x,\n state.components.y,\n state.components.xGroupBy,\n state.components.yGroupBy,\n state.components.tooltipContent\n ];\n const secondarySources: (ColumnId | AxisId)[] = []; // primary sources are the only value column\n const linkerColumns: ColumnId[] = [];\n\n for (const { selectedSource } of filterSelectedStates) {\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n }\n\n for (const input of inputs) {\n for (const { selectedSource } of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n const labelsColumnId = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n if (labelsColumnId) {\n secondarySources.push(labelsColumnId);\n }\n }\n }\n\n const data = await store.pFrameProvider.getTableOuterJoin(\n [...primaryColumns, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n true\n );\n\n secondarySources.forEach(item => {\n const key = item.toCanonicalString();\n dataByColumns.values[key] = isColumnId(item)\n ? data.columnsData[key]\n : data.axesData[key];\n });\n dataByColumns.values[valueColorColumnIdString] = isColumnId(valueColorColumnId)\n ? data.columnsData[valueColorColumnIdString]\n : data.axesData[valueColorColumnIdString]\n dataByColumns.values[valueSizeColumnIdString] = isColumnId(valueSizeColumnId)\n ? data.columnsData[valueSizeColumnIdString]\n : data.axesData[valueSizeColumnIdString]\n\n const xAxes = state.components.x.selectorStates\n .concat(state.components.xGroupBy.selectorStates)\n .map(state => state.selectedSource);\n const xKey = xAxes.join(', ');\n const xAxesLabeled = await Promise.all(xAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id,\n ));\n dataByColumns.values[xKey] = getMultiSourceColumn(data, xAxes);\n dataByColumns.values.xLabels = getMultiSourceColumn(data, xAxesLabeled);\n\n // y column should contain yGroup axes\n const yAxes = state.components.y.selectorStates\n .concat(state.components.yGroupBy.selectorStates)\n .map(state => state.selectedSource);\n const yKey = yAxes.join(', ');\n const yAxesLabeled = await Promise.all(yAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id,\n ));\n dataByColumns.values[yKey] = getMultiSourceColumn(data, yAxes);\n dataByColumns.values.yLabels = getMultiSourceColumn(data, yAxesLabeled);\n\n return { byColumns: dataByColumns };\n }\n\n async createChartSettings(store: DataStore, state: BubbleUIState): Promise<Record<string, unknown>> {\n const valueColorColumnIdString = state.components.valueColor.selectorStates[0]?.selectedSource;\n const valueSizeColumnIdString = state.components.valueSize.selectorStates[0]?.selectedSource;\n if (!valueColorColumnIdString || !valueSizeColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColorColumnId = columnOrAxisIdFromString(valueColorColumnIdString);\n const valueSizeColumnId = columnOrAxisIdFromString(valueSizeColumnIdString);\n if (!isColumnId(valueColorColumnId) && !isColumnId(valueSizeColumnId)) {\n throw Error('Value column is not valid');\n }\n\n const parentSources = ([valueColorColumnId, valueSizeColumnId]).filter(isColumnId).map((v) => v.toCanonicalString());\n const valueColor = {\n type: 'column',\n value: valueColorColumnIdString,\n label: await getColumnOrAxisLabel(store, valueColorColumnIdString, []),\n };\n const valueSize = {\n type: 'column',\n value: valueSizeColumnIdString,\n label: await getColumnOrAxisLabel(store, valueSizeColumnIdString, []),\n };\n const xAxes = state.components.x.selectorStates\n .concat(state.components.xGroupBy.selectorStates)\n .map(({selectedSource}) => columnOrAxisIdFromString(selectedSource))\n .map(id => id.toCanonicalString());\n const xKey = xAxes.join(', ');\n\n const yAxes = state.components.y.selectorStates\n .concat(state.components.yGroupBy.selectorStates)\n .map(({selectedSource}) => columnOrAxisIdFromString(selectedSource))\n .map(id => id.toCanonicalString());\n const yKey = yAxes.join(', ');\n\n const xGroupBy = await Promise.all(\n state.components.xGroupBy.selectorStates.map(async selectorState => ({\n type: 'column',\n label: await getColumnOrAxisLabel(store, selectorState.selectedSource, parentSources),\n value: selectorState.selectedSource,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n }))\n );\n const yGroupBy = await Promise.all(\n state.components.yGroupBy.selectorStates.map(async selectorState => ({\n type: 'column',\n label: await getColumnOrAxisLabel(store, selectorState.selectedSource, parentSources),\n value: selectorState.selectedSource,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n }))\n );\n\n const facetBy = await Promise.all(state.components.facetBy.selectorStates.map(async selectorState => ({\n type: 'column',\n value:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n })));\n\n const xAxisTitle = (await Promise.all(state.components.x.selectorStates\n .map(state => getColumnOrAxisLabel(store, state.selectedSource, parentSources))))\n .join(', ');\n const yAxisTitle = (await Promise.all(state.components.y.selectorStates\n .map(state => getColumnOrAxisLabel(store, state.selectedSource, parentSources))))\n .join(', ');\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n return {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, source, parentSources)) || source,\n value: source,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: getFormat(spec)\n };\n })\n );\n\n return {\n type: 'bubble',\n valueColor: valueColor,\n valueSize: valueSize,\n xColumn: {\n type: 'column',\n value: xKey,\n label: xAxisTitle,\n valueLabels: 'xLabels'\n },\n yColumn: {\n type: 'column',\n value: yKey,\n label: yAxisTitle,\n valueLabels: 'yLabels'\n },\n facetBy,\n xGroupBy,\n yGroupBy,\n tooltips: {\n show: true,\n content: tooltipContent\n }\n };\n }\n}\n"],"names":["InitialBubbleState","getMultiSourceColumn","data","selectedSources","selectedIds","str","columnOrAxisIdFromString","n","result","i","value","id","key","isColumnId","BubbleStateController","ControllerBase","ComponentController","spec","state","allowedAxes","s","AxisId","__publicField","optionsInfo","sourceId","store","valueColorColumnIdString","_a","valueSizeColumnIdString","_b","valueColorColumnId","valueSizeColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","multipliesByMap","createMultipliesByMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","primaryColumns","parentSources","v","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","linkerColumns","selectedSource","getLinkerColumnsForSource","input","labelsColumnId","getColumnOrAxisValueLabelsId","item","xAxes","xKey","xAxesLabeled","yAxes","yKey","yAxesLabeled","valueColor","getColumnOrAxisLabel","valueSize","xGroupBy","selectorState","yGroupBy","facetBy","xAxisTitle","yAxisTitle","tooltipContent","source","getColumnOrAxisSpec","getFormat"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/graph-maker",
3
- "version": "1.1.168",
3
+ "version": "1.1.170",
4
4
  "type": "module",
5
5
  "main": "dist/lib.js",
6
6
  "types": "dist/lib.d.ts",
@@ -37,8 +37,8 @@
37
37
  "dependencies": {
38
38
  "@ag-grid-community/core": "^32.3.3",
39
39
  "@milaboratories/helpers": "^1.6.15",
40
- "@milaboratories/miplots4": "^1.0.151",
41
- "@milaboratories/pf-plots": "^1.1.40",
40
+ "@milaboratories/miplots4": "^1.0.153",
41
+ "@milaboratories/pf-plots": "^1.1.41",
42
42
  "@platforma-sdk/model": "^1.43.29",
43
43
  "@platforma-sdk/ui-vue": "^1.42.36",
44
44
  "@types/d3-hierarchy": "^3.1.7",